Extrinsic/Intrinsic difference between raw calibration and reported by librealsense

Required Info

Camera Model
D410

Firmware Version
<IP_ADDRESS>

Operating System & Version
Ubuntu 18.04.5

Kernel Version (Linux Only)
4.15.0-122-generic

Platform
Thinkpad T480

SDK Version
2.50.0-0~realsense0.6128

Language
C++

Segment
Robot

Issue Description
I'm calibrating the Realsense sensor using a custom calibration mechanism using the raw IR stream (Y16 at full resolution 15fps). The calibration results are good. Our setup also include an external high resolution RGB camera. During this calibration, I'm also calibrating the intrinsic and extrinsic (left IR to RGB) of this camera.
From what I understood, the asic is reprojecting both left and right images inside a virtual plan and thus the intrinsic reported by the API are different than a simple "resolution conversion" from the raw calibration. But I need to know if the extrinsic from my RGB camera to the left imager should change too? If yes, how can I correct the extrinsic left IR to RGB for this change so I can capture only one datasets in order to calibrate both the realsense and my RGB camera ?

Hi @shphilippe  My knowledge of linking the depth of a RealSense camera to an external non-RealSense RGB cam via intrinsics / extrinsics is limited, so thanks in advance for your patience.
Typically when this subject has been discussed in past cases, it has been recommended that the synchronization with an external RGB camera is performed in C++ using software_device().  Examples of this are at https://github.com/IntelRealSense/librealsense/issues/4202 and https://github.com/IntelRealSense/librealsense/issues/8389 and https://github.com/IntelRealSense/librealsense/issues/10067

We do have a custom synchronization using the external sync signal and the kernel timestamp of each frame. The synchronization is not an issue (we did verify it using a fast moving target). What I want to know is does the ASIC change the world center between the IR left raw calibration and the IR left depth point (ie: is there any homography between the two, if yes, which one).

The left infrared sensor is always pixel-perfect aligned and calibrated with the depth map, as described in point 2 of the section of Intel's camera tuning guide linked to below.
https://dev.intelrealsense.com/docs/tuning-depth-cameras-for-best-performance#section-use-the-left-color-camera

Is it true even for the unrectified RAW IR? This document describe the rectified stream.

It should be, as left infrared and depth are originating from the same physical imaging sensor component.

There is a case that references homography and rectified / unrectified at https://github.com/IntelRealSense/librealsense/issues/1526 if you have not seen it already.
Within that discussion, advice given by a RealSense team member at https://github.com/IntelRealSense/librealsense/issues/1526#issuecomment-393144555 states: "Rectification is done by the ASIC and introduces a homography transformation from Y16 to Y8 view.  It does not affect the distortion model of the frame, just reprojecting them into a shared virtual plane".
Other than that case though, I am not familiar with the subject of homography and so do not have anything that I can add regarding that particular question, unfortunately.

Thanks for the link to the github comment. It's what I was afraid of. I thus needs more help from Intel in order to know how I can I adjust my extrinsic computed on the Y16 stream to compensate for this and be able to compute one extrinsic that I can use on the depth stream. Who should I contact at Intel ?

I am the point of contact for your case.  I will continue to do my best to assist your queries.
I conducted further research in regard to extrinsic adjustment, and I wonder whether an SDK instruction called rs2_override_extrinsics() that is used for depth to RGB calibration may meet your needs.
https://intelrealsense.github.io/librealsense/doxygen/rs__sensor_8h.html#a00bb482ae06e11340711221eb3e07e67
The SDK's rs_sensor.h file provides an example of its use.
https://github.com/IntelRealSense/librealsense/blob/master/include/librealsense2/h/rs_sensor.h#L486
I will be happy to continue this support discussion when I return in 7 hours from the time of writing this.

I'm not sure to understand how to use this function, I'm not looking to override any calibration inside the SDK.
I'm using a D410 sensor, which do not have any RGB camera.
I'm doing my own realsense calibration using Y16 IR stream from left and right camera at 1920x1080.
While doing so, I'm capturing also an external RGB sensor images.
I compute the following:
D410 Left Intrinsic from Y16@1920x1080
D410 Right Intrinsic from Y16@1920x1080
D410 Extrinsic (left->right) from both Y16@1920x1080
RGB sensor intrinsic (unrelated to the SDK/Intel).
Extrinsic D410 Left (from Y16@1920x1080) -> RGB sensor
Then I use Intel.Realsense.CustomRW to write the D410 Left Intrinsic, D410 Right Intrinsic and D410 Extrinsic inside the D410. After testing this calibration, it's in our case a better calibration than the one I can get from the Intel OEM calibration target.
When I use the D410 in the product, I get a depth stream from it a 640x480. This depth stream has the exact same position ("Pixel perfect") than the left IR at Y8 (rectified IR). I want to align the external RGB camera with the depth stream. I thus need the following transformation: Depth Stream -> external RGB sensor, but I only have D410 Left (from Y16@1920x1080) -> RGB sensor.
Thus, Intel need to tell (or provide a binary which compute it) how to transform the extrinsic "D410 Left (from Y16@1920x1080) -> external RGB sensor" to "D410 Left (from Y8@1920x1080) -> external RGB sensor".
This basically boil down to: I have rotation matrix + translation vector computed in Y16 frame. How can I transform them so they are valid in Y8/Depth frame ?

Finding the extrinsics between multiple cameras is typically not a straightforward problem to solve.  A couple of ways that it has been approached with RealSense are to point the cameras at fiducial marker images to perform alignment and calibration between them, or to arrange the cameras around a chessboard / checkerboard image to calculate the extrinsics between the cameras.
Fiducial markers

Chessboard - demonstrated by SDK 'box_dimensioner_multicam' Python example
https://github.com/IntelRealSense/librealsense/tree/master/wrappers/python/examples/box_dimensioner_multicam
https://dev.intelrealsense.com/docs/box-measurement-and-multi-camera-calibration

When the cameras have been positioned close to each other and facing in the same direction (such as when mounted on the same bracket), another approach that has been taken to finding the extrinsics between them is demonstrated by a Python script for the SDK that was designed to calculate the extrinsics between D435 and T265 RealSense cameras.
https://github.com/IntelRealSense/librealsense/commit/acb0bbd0efb10ecf81343209d83aeb6cb30e23a2#diff-d17bb35407d5baa40b3af64e8fe9fbef1c6cfb571502c275143d782914a0bd6f

Another approach may be to use Y8 instead of Y16 and perform an undistort operation to undo the distortion model.  OpenCV has undistort capabilities if you wish to investigate that possibility, as the SDK does not have an undistortion feature.
https://docs.opencv.org/4.5.2/dc/dbb/tutorial_py_calibration.html
A RealSense user in the link below tried an OpenCV undistort of a RealSense image but found that it made little difference though.
https://github.com/IntelRealSense/librealsense/issues/3880

Ultimately though, if your custom calibration system is producing good results already then it may not be necessary to seek to implement further measures unless you have a requirement in your project to precisely document every detail of how it works.

I'm not asking on how to find the extrinsic. I'm using a charuco board + custom opencv based code. I must use our own calibration for both the realsense sensor and our RGB camera. In order to speed up factory calibration (our own, not the one of intel), I don't want to perform one calibration in Y16 for the intel realsense and one additional on Y8 for the external camera extrinsic. So I'm calibrating everything on Y16 with the same set of images.
What I'm asking is based on extrinsic computed with the Y16 stream, how to convert them to extrinsic that I can use on the Depth/Y8 stream. The D410 is doing an homography between both stream which impact any extrinsic computed relative to this stream. I need to know which correction I should apply to the extrinsic.
We are ready to sign any NDA if needed or use binary code. It looks like this discussion is going nowhere. I'm asking about a specific information from Intel, and I keep getting a generic answer, how can I get in contact with an engineer which will understand my question ?

If you email me your full contact details at the email address below then I will pass them to Intel so that they can be directed onward to the appropriate person.  I am not involved in the NDA registration process and so will not be able to provide updates about the progress of your application or a time estimate for processing of your application.
Please include in the email your full name, email address, telephone number, and also a company name, postal address and website address if you represent a company.
<EMAIL_ADDRESS>

I have received your email containing your contact details and passed the details to Intel to forward to the persons responsible for NDA registration.   Thanks very much for your patience!

Thanks, closing.


Add a formula for LLVM 3.8.0

This is a copy of the existing llvm37 formula with some minor changes required for 3.8.

Install is failing: http://bot.brew.sh/job/Homebrew Versions Pull Requests/1264/version=el_capitan/testReport/junit/brew-test-bot/el_capitan/install_homebrew_versions_llvm38/
Did it work for you locally?

The autoconf build system has been deprecated in 3.8 so this seems as good a time as any to convert the formula to use CMake?

@jenshnielsen the autoconf build system is deprecated in 3.8 and will be removed in 3.9. It's quite a complicated homebrew build so I'm not sure if I'm the right person to make the switch.
@mikemcquaid it was mid-build when I submitted the PR - sorry about that. I'll fix it ASAP.

I could fix the install error with the following patch:
diff --git a/Library/Formula/llvm.rb b/Library/Formula/llvm.rb
index 9ff0156..e4b33f1 100644
--- a/Library/Formula/llvm.rb
+++ b/Library/Formula/llvm.rb
@@ -205,15 +219,9 @@ class Llvm < Formula

     if build.with? "clang"
       (share/"clang/tools").install Dir["tools/clang/tools/scan-{build,view}"]
-      if build.head?
-        inreplace "#{share}/clang/tools/scan-build/bin/scan-build", "$RealBin/bin/clang", "#{bin}/clang"
-        bin.install_symlink share/"clang/tools/scan-build/bin/scan-build", share/"clang/tools/scan-view/bin/scan-view"
-        man1.install_symlink share/"clang/tools/scan-build/man/scan-build.1"
-      else
-        inreplace "#{share}/clang/tools/scan-build/scan-build", "$RealBin/bin/clang", "#{bin}/clang"
-        bin.install_symlink share/"clang/tools/scan-build/scan-build", share/"clang/tools/scan-view/scan-view"
-        man1.install_symlink share/"clang/tools/scan-build/scan-build.1"
-      end
+      inreplace "#{share}/clang/tools/scan-build/bin/scan-build", "$RealBin/bin/clang", "#{bin}/clang"
+      bin.install_symlink share/"clang/tools/scan-build/bin/scan-build", share/"clang/tools/scan-view/bin/scan-view"
+      man1.install_symlink share/"clang/tools/scan-build/man/scan-build.1"
     end

     # install llvm python bindings

This should be good to go.

Looks good now. Merged.
Thank you for your contribution to Homebrew!
For future reference, we prefer to version bumps to be in a single commit, with comment formatted "formulaname X.Y.Z". I squashed the commits when pulling here, but you can squash them yourself when submitting by doing git rebase -i master, and the git push --force <your-remote-name>.

Autoclose didn't work because I manually squashed the commits on pull.
Closed in b39e77d2dc7a534aabb3a21e62553f77c9a90afe.

@apjanke good to know. Thanks!

The autoconf build system has been deprecated in 3.8 so this seems as good a time as any to convert the formula to use CMake?

We've already switched in the core. Just need some poor willing soul to volunteer to deal with all the Versions LLVM that should ideally be using CMake instead now :smile_cat:. If someone wanted to do it the core llvm formula provides a good base to work off of.

What needs to be done to update llvm to 3.8 in core?

Everything else that uses it needs to be compatible, which isn't the case yet. Our hands are tied there by various upstreams, sadly. In the nearish future we'll have a slightly more elegant solution but not there yet.


Processing JWT groups in OIDC provider

Using Helidon 2.0-SNAPSHOT with OIDC and I am trying to get the @RolesAllowed annotations working. I can see that the user groups are being returned by the OIDC provider, however, the groups are not being translated into roles in the Subject. Comparing io.helidon.security.providers.oidc.OidcProvider against io.helidon.microprofile.jwt.auth.JwtAuthProvider I can see that the latter has these additional lines of code:
Optional<List<String>> userGroups = jwt.userGroups();
userGroups.ifPresent(groups -> groups.forEach(group -> subjectBuilder.addGrant(Role.create(group))));

Not sure if #478 would fix this.

Ok, I'm a little bit confused on the difference between JwtAuthProvider and JwtProvider and how to correctly configure the corresponding Maven dependencies. I think it is as follows:
JWT:
		<dependency>
			<groupId>io.helidon.security.providers</groupId>
			<artifactId>helidon-security-providers-jwt</artifactId>
		</dependency>

OIDC:
		<dependency>
			<groupId>io.helidon.microprofile</groupId>
			<artifactId>helidon-microprofile-oidc</artifactId>
		</dependency>

JWT Auth is the one that confuses me a little as helidon-microprofile-jwt-auth-cdi is automatically included as part of the io.helidon.microprofile.bundles:helidon-microprofile dependency. The above two OIDC and JWT dependencies aren't.
		<dependency>
			<groupId>io.helidon.microprofile.jwt</groupId>
			<artifactId>helidon-microprofile-jwt-auth</artifactId>
		</dependency>

I believe I can get OIDC and JWT to work, however, both need the additional code to map groups to roles. I can't get the JWT-Auth provider to work - only this one has the group to role mapping code.

@tomas-langer?

Jwt Auth provider is an implementation of a MicroProfile specification.
The other providers are general security providers that work both in SE and in MP.
I think we can add this line of code to all our JWT providers (e.g. if groups claim exists, use it).

Yes please, that would be great. BTW, I do plan to use MP JWT-Auth as my application is based on Helidon-MP - I assume that would be the recommendation?

That really depends on what you want to achieve. If you have security resolved in your infrastructure (e.g. redirection to login page etc.) and you have a JWT in each header, then the MP JWT-Auth is the simplest way to go.
If you need to do some advanced stuff (e.g. you want to redirect to login page from Helidon, or you want to use Oracle IDCS to obtain roles, propagate tokens, or create new tokens for outbound), then you would use one of the providers we have.


Create large transaction test cases for mempool testing

When we add wallet support, and start generating transactions, we need to test large transaction sizes. (We already test large block sizes in #482.)
Since Sapling, the maximum block and transaction size is 2,000,000 bytes (MAX). (Note that the maximum size of a transaction is actually slightly lower, because the block also contains a block header, and a transaction count compact size field.)
Mempool transaction parsing:
Tests with new test cases:

[ ] a MAX size transaction
[ ] a (MAX+1) size transaction

Tests on existing test cases:

[ ] a transaction that's the largest size that will fit in a MAX size block
[ ] a transaction that's 1 byte larger than the largest size that will fit in a MAX size block

These blocks and transactions should use the latest block and transaction formats (Blossom or Heartwood).
We created the transaction/block test cases during #482, but we need to add mempool tests for them. Our property tests may already cover these cases, but they are edge cases, so we'd like to be sure.

This was done ages ago.


build: investigate adopting unbuild

unbuild looks very similar to what I have in my custom build/compile script and the setup relying on Rollup in general, so it should be easy to add it to the project and get everything up and running.
Would be great if I could do the same with release script...

Well, it kinda works, but I don't like both the structure and contents of the output.
This is unbuilds output:
dist
├── combinators.cjs
├── combinators.d.ts
├── combinators.mjs
├── index.cjs
├── index.d.ts
├── index.mjs
├── parsers.cjs
├── parsers.d.ts
├── parsers.mjs
├── shared
│   ├── sigma.10b342a7.cjs
│   ├── sigma.43d65138.mjs
│   ├── sigma.5b596d0d.mjs
│   ├── sigma.94258330.mjs
│   ├── sigma.ab9be28c.cjs
│   └── sigma.be89adfb.cjs
├── state-ae4ad3e7.d.ts
├── until-f0b91e10.d.ts
└── whitespace-2b57f09e.d.ts

1 directory, 18 files

And this is what my script outputs:
dist
├── combinators.cjs
├── combinators.cjs.map
├── combinators.d.ts
├── combinators.mjs
├── combinators.mjs.map
├── index.cjs
├── index.cjs.map
├── index.d.ts
├── index.mjs
├── index.mjs.map
├── parsers.cjs
├── parsers.cjs.map
├── parsers.d.ts
├── parsers.mjs
└── parsers.mjs.map

0 directories, 15 files

Call me a petty person, but I don't want *.d.ts files be tree-shaked and chunked like that... So I'm gonna stick with the current setup for now. :/


runtime or cmd/compile: runtime:cpu124 test crash or stall when GO_GCFLAGS=-N -l

See https://build.golang.org/log/31b6cd65ea1aaaff0fef5061ae74ecf354fc52e9 (linux-amd64-noopt)
But it happens, and is easy to repro on other platforms when compiling with "-N -l" options.
##### GOMAXPROCS=2 runtime -cpu=1,2,4
fatal error: unexpected signal during runtime execution
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x44363c]

goroutine 58526 [running]:
runtime.throw(0x66323d, 0x2a)
	/tmp/workdir/go/src/runtime/panic.go:566 +0x95 fp=0xc420171d28 sp=0xc420171d08
runtime.sigpanic()
	/tmp/workdir/go/src/runtime/sigpanic_unix.go:12 +0x2cc fp=0xc420171d80 sp=0xc420171d28
runtime.stackcacherelease(0x7ffb828abd18, 0x41dd00)
	/tmp/workdir/go/src/runtime/stack.go:283 +0x8c fp=0xc420171dd0 sp=0xc420171d80
runtime.stackfree(0xc42028f800, 0xc42028ffe0, 0x800)
	/tmp/workdir/go/src/runtime/stack.go:447 +0x15f fp=0xc420171e28 sp=0xc420171dd0
runtime.shrinkstack(0xc4201b9380)
	/tmp/workdir/go/src/runtime/stack.go:1081 +0x71 fp=0xc420171e50 sp=0xc420171e28
runtime.markrootFreeGStacks()
	/tmp/workdir/go/src/runtime/mgcmark.go:286 +0x81 fp=0xc420171e88 sp=0xc420171e50
runtime.markroot(0xc42001c728, 0xc400000002)
	/tmp/workdir/go/src/runtime/mgcmark.go:177 +0x1ee fp=0xc420171f00 sp=0xc420171e88
runtime.gcDrain(0xc42001c728, 0x6)
	/tmp/workdir/go/src/runtime/mgcmark.go:956 +0xab fp=0xc420171f38 sp=0xc420171f00
runtime.gcBgMarkWorker(0xc42001b500)
	/tmp/workdir/go/src/runtime/mgc.go:1451 +0x4ad fp=0xc420171fa8 sp=0xc420171f38
runtime.goexit()
	/tmp/workdir/go/src/runtime/asm_amd64.s:2060 +0x1 fp=0xc420171fb0 sp=0xc420171fa8
created by runtime.gcBgMarkStartWorkers
	/tmp/workdir/go/src/runtime/mgc.go:1342 +0x98

/cc @aclements

Yup, it just started from the landing of https://go-review.googlesource.com/#/c/23391/, as the dashboard tells.

Duplicate of #15853, which I'm looking at now. (The subject of that one is somewhat incorrect; I'll fix that.)


Add terraform code to provision WRI ODP infrastructure

This PR adds the terraform scripts needed to provision the infrastructure for wri odp
The description of files and features added is given below.
We can compare with old infrastructure and look into integrating improvements in to it as well.
NOTE: The information given below has been pushed as a README as well
Remote State and State Locking
The Terraform setup employs a remote backend for storing the state file. The remote state storage configuration is defined in the backend.tf file.
Additionally, to ensure safe and concurrent access to the Terraform state, the state locking feature is enabled, leveraging DynamoDB for this purpose.
Directory Structure
The Terraform setup is organized into two main directories:

env: This directory contains environment-specific files (e.g., dev, staging, prod) that use the modules located in the k8s-infrastructure directory. Environment variables are passed from this directory to the modules in k8s-infrastructure.

k8s-infrastructure: This directory contains various modules for infrastructure provisioning. These modules are called from the main.tf file within the k8s-infrastructure directory, utilizing the variables provided by the env/<env_name> folder, where terraform plan and terraform apply commands are executed.

IAM Service Account
An IAM Service Account user for Terraform is added without console access, with least privilege permissions (only the permissions required for provisioning the needed components). It is created to provision the architecture with tags like "Purpose: Terraform Automation" and "Application: WRI ODP" to help differentiate between different service accounts.
k8s-infrastructure Modules
The k8s-infrastructure directory contains several modules, each responsible for specific infrastructure provisioning tasks. Below, we provide detailed explanations for each module:
ecr
The ecr module is used for storing built Docker images, which are essential for deploying applications in your Kubernetes cluster. It ensures a reliable and versioned repository for your container images.
The module contains the following files with their functionalities:

main.tf: This adds a private ECR registry with IMMUTABLE images.

eks
The eks module is responsible for provisioning and managing an Amazon Elastic Kubernetes Service (EKS) cluster. EKS provides a scalable and managed Kubernetes environment, making it easier to deploy, manage, and scale containerized applications.
The module contains the following files with their functionalities:

main.tf: It uses the module terraform-aws-modules/eks/aws for provisioning the EKS cluster with one managed node group.

Uses IAM Roles for Service Accounts (IRSA) to grant roles to applications running in the EKS cluster.
Managed node group (i.e., node group 1) with "t3.xlarge" instance type, tagged with the deployed environment.

iam.tf: We create an IAM role with access to EKS with necessary permissions.

Provide Describe Cluster access to the role to access the cluster.
IAM role (eks-admin) is created, which is bound to the Kubernetes system masters RBAC group to allow full access to the Kubernetes API.
With trusted_role_arn, every user can assume the role if the user has needed policies attached to it.
Allow users to assume a role that has access to EKS.
Enable the EKS cluster manage_aws_auth_configmap and allow the role we just created in the aws_auth_roles (i.e., mapping eks-admin role with the Kubernetes system master RBAC group).

autoscaler-iam.tf and autoscaler-manifest.tf: Uses OIDC provider for IAM role service account.

Adds Cluster autoscaler to automatically scale the EKS cluster using the manifest files.

csi-driver-iam.tf and csi-driver-addons.tf: Add EBS CSI driver as an add-on to ensure that we can attach volumes to the pods along with the user permissions needed for the IAM role.
helm.tf: Deploys nginx ingress controller and cert-manager.

rds
The rds module handles the provisioning of a PostgreSQL database server. This database server is crucial for your applications, providing a secure and scalable storage solution for data.
The module contains the following files with their functionalities:

main.tf: To create a PostgreSQL instance depending on the values provided to it via environment variables.

s3
The s3 module manages the provisioning of backend storage using Amazon S3. This storage is utilized by your applications to store and retrieve various data types, such as static assets, logs, and backups.
The module contains the following files with their functionalities:

main.tf: Creates a private bucket for storing backend files for the WRI ODP.

vpc
The vpc module takes care of provisioning a Virtual Private Cloud (VPC) and network policies for your entire infrastructure. It ensures a secure and isolated network environment for your Kubernetes cluster and associated resources.
The module contains the following files with their functionalities:

main.tf: Uses the open-source module terraform-aws-modules/vpc/aws to deploy the VPC.

Uses a single NAT gateway and enables DNS hostname and DNS support.
Tags the VPC with the environment name.
Adds a security group to allow traffic to the RDS instance on port 5432.

Each of these modules plays a crucial role in building and maintaining your Kubernetes-based infrastructure. In the following sections, we will delve into the specific configurations and usage of each module.
Usage
How to deploy

Clone the repository locally and ensure that you have the credentials for the Terraform user already set up in your environment.

Navigate to the env directory corresponding to your working environment (e.g., cd env/dev).

Add the necessary environment variables in .auto.tfvars.

Run terraform plan. For example, if you are in the env/dev directory, run terraform plan after adding .auto.tfvars.

Run terraform apply once everything in the plan seems satisfactory.

These steps will allow you to deploy and manage the infrastructure efficiently.

Merging this PR as it's been approved.
I will open another PR to address the Postgres version issue,


Fix the metadata flags test flake

Explicitly close the socket in the test case to ensure the connectivity state transition from CONNECTING into TRANSIENT FAILURE.
The root cause might originated from a behavior change in Core. A bisect might be able to find it, but probably not worth it (the change could be legit for other cases). This PR should fix it within Python wrapper.
Fixes https://github.com/grpc/grpc/issues/22760

INFO: Elapsed time: 5980.388s, Critical Path: 68.72s
INFO: 40006 processes: 40006 linux-sandbox.
INFO: Build completed, 2 tests FAILED, 20007 total actions
//src/python/grpcio_tests/tests/unit:_metadata_flags_test.python2       TIMEOUT in 6 out of 10000 in 60.1s
//src/python/grpcio_tests/tests/unit:_metadata_flags_test.python3       TIMEOUT in 3 out of 10000 in 60.1s
  Stats over 10000 runs: max = 60.1s, min = 3.0s, avg = 3.5s, dev = 1.0s

Flake rate is around 0.045% (9/20000). @gnossen PTALA.

Known failures: https://github.com/grpc/grpc/issues/22875 https://github.com/grpc/grpc/issues/22691


Incorrect step (Make the application executable) in the guide

The step says CountryConfiguration.class is passed as an argument to the run() method
but the code is passing Application.class as argument to the run method.

lookup method parameter type is CountryClient but the parameter is named as quoteClient

The paragraph "This application is hard coded to look up symbol 'MSFT' which correspond to Microsoft Corporation. Towards the end of this guide, you’ll see how to plug in a different symbol without editing the code." does not belong to this guide.

I think the guide was cleaned up a while ago to remove references to the old domain (quotes).


AttributeError: 'Config' object has no attribute 'isolated_build_env'

I'm getting the following error when calling tox:
➜ tox
.tox create<EMAIL_ADDRESS>Traceback (most recent call last):
  File<EMAIL_ADDRESS>line 8, in <module>
    sys.exit(cmdline())
  File<EMAIL_ADDRESS>line 44, in cmdline
    main(args)
  File<EMAIL_ADDRESS>line 69, in main
    exit_code = session.runcommand()
  File<EMAIL_ADDRESS>line 187, in runcommand
    return provision_tox(provision_tox_venv, self.config.args)
  File<EMAIL_ADDRESS>line 10, in provision_tox
    ensure_meta_env_up_to_date(provision_venv)
  File<EMAIL_ADDRESS>line 24, in ensure_meta_env_up_to_date
    if provision_venv.setupenv():
  File<EMAIL_ADDRESS>line 628, in setupenv
    status = self.update(action=action)
  File<EMAIL_ADDRESS>line 275, in update
    self.hook.tox_testenv_install_deps(action=action, venv=self)
  File<EMAIL_ADDRESS>line 286, in __call__
    return self._hookexec(self, self.get_hookimpls(), kwargs)
  File<EMAIL_ADDRESS>line 93, in _hookexec
    return self._inner_hookexec(hook, methods, kwargs)
  File<EMAIL_ADDRESS>line 84, in <lambda>
    self._inner_hookexec = lambda hook, methods, kwargs: hook.multicall(
  File<EMAIL_ADDRESS>line 208, in _multicall
    return outcome.get_result()
  File<EMAIL_ADDRESS>line 80, in get_result
    raise ex[1].with_traceback(ex[2])
  File<EMAIL_ADDRESS>line 187, in _multicall
    res = hook_impl.function(*args)
  File<EMAIL_ADDRESS>line 73, in tox_testenv_install_deps
    poetry = utilities.check_preconditions(venv, action)
  File<EMAIL_ADDRESS>line 139, in check_preconditions
    if action.name == venv.envconfig.config.isolated_build_env:
AttributeError: 'Config' object has no attribute 'isolated_build_env'

my tox config looks like this:
[tox]
envlist = {py3611,py37,py38}-{cover,nocov}-{linux,windows}
isolated_build=true
requires =
    tox-poetry-dev-dependencies
    tox-wheel

[gh-actions]
python =
    3.8: py38
    3.6: py3611
    3.7: py37

[gh-actions:env]
PLATFORM =
    ubuntu-latest: linux
    windows-latest: windows

[testenv]
poetry_experimental_add_locked_dependencies = True
poetry_add_dev_dependencies = True
wheel =
    cover: false
    nocover: true
setenv =
    APPDATA = "''"
whitelist_externals = echo
commands =
    echo {env:APPDATA}
    pytest

[testenv:package]
skip_install = True
deps =
    twine
commands =
    python3 -m poetry build
    python3 -m twine check dist/*

Am I potentially doing something bad in my config? I tried looking for similar error messages but couldn't find anything with isolated_build_env in there.

@bastienboutonnet Thanks for reporting this error! Could you share what version of tox and what version of the plugin you're using?

@bastienboutonnet Thanks for reporting this error! Could you share what version of tox and what version of the plugin you're using?

Of course! Sorry for not doing this earlier:
tox                        3.21.0
tox-poetry-installer       0.6.1

Of course! Sorry for not doing this earlier:
tox                        3.21.0
tox-poetry-installer       0.6.1

Thank you! I notice you're using tox 3.21 there, which was just released a few days ago. I haven't had a chance to test the plugin with 3.21 yet so I'm not sure if it works properly. If it doesn't then it's possible there's a bug in tox itself, but I'm not sure. I should be able to take a look at reproducing this bug either tomorrow or Monday evening, but my first instinct would be to suggest downgrading to tox 3.20 and see if the problem persists.

Thank you! I notice you're using tox 3.21 there, which was just released a few days ago. I haven't had a chance to test the plugin with 3.21 yet so I'm not sure if it works properly. If it doesn't then it's possible there's a bug in tox itself, but I'm not sure. I should be able to take a look at reproducing this bug either tomorrow or Monday evening, but my first instinct would be to suggest downgrading to tox 3.20 and see if the problem persists.

Hi again @enpaul downgrading to 3.20.0 did the trick so it looks like somewhere between 3.20 and 3.21 something might have "broken".
I'll keep watching this issue as I'm curious to know when I might be able to use the latest version of tox (not that I need anything in 3.21 but I like to stay up to date with most packages).

Hi again @enpaul downgrading to 3.20.0 did the trick so it looks like somewhere between 3.20 and 3.21 something might have "broken".
I'll keep watching this issue as I'm curious to know when I might be able to use the latest version of tox (not that I need anything in 3.21 but I like to stay up to date with most packages).

Taking a closer look at this, I'm actually not convinced this is a problem with 3.21.x. I was just able to repro it on 3.20.1. I think the problem is actually related to the usage of the Tox requires option. I believe the .tox environment (the provisioned env Tox creates for itself when using either requires or minversion) does not populate the isolated_build_env setting in its config. I think the solution is add another precondition to check for whether the current env is the provision_tox_env before checking for isolated_build_env.

Taking a closer look at this, I'm actually not convinced this is a problem with 3.21.x. I was just able to repro it on 3.20.1. I think the problem is actually related to the usage of the Tox requires option. I believe the .tox environment (the provisioned env Tox creates for itself when using either requires or minversion) does not populate the isolated_build_env setting in its config. I think the solution is add another precondition to check for whether the current env is the provision_tox_env before checking for isolated_build_env.

@bastienboutonnet Thanks for your patience while I got this figured out! The recent tox-poetry-installer 0.6.2 update should fix this problem. When you get a chance could you try updating and see if that fixes the issue?

@bastienboutonnet Thanks for your patience while I got this figured out! The recent tox-poetry-installer 0.6.2 update should fix this problem. When you get a chance could you try updating and see if that fixes the issue?

Hi @enpaul thanks a lot for following up! I upgraded both tox and tox-poetry-installer and it all seems to work 🥳

Hi @enpaul thanks a lot for following up! I upgraded both tox and tox-poetry-installer and it all seems to work 🥳


Connect-MicrosoftTeams new version 2.0.0

I have recently downloaded the latest version of MicrosoftTeams and I'm still having difficulties trying to connect to my tenant.
Using PowerShell 7.1 I'm able to connect just calling Connect-MicrosoftTeams that uses MFA. However I'm unable to connect using  AppID and CertificateThumbprint.
Connect-MicrosoftTeams -TenantId $TenantId -ApplicationId $AppId -CertificateThumbprint:$Thumbprint
or AadAccessToken
#Sign in with Service Principal
$graphToken = az account get-access-token --resource-type aad-graph | ConvertFrom-Json
Connect-MicrosoftTeams -AadAccessToken:$($graphToken.accessToken) -AccountId:$UPN -TenantId:$TenantID

It seems to connect, but any following calls such as Get-CsTeamsMeetingPolicy -Identity Global throws an error message.
ParentContainsErrorRecordException: .\PowerShell\Modules\MicrosoftTeams\2.0.0\netcoreapp2.1\SfBORemotePowershellModule.psm1:13118:13
 Line |
13118 |              $steppablePipeline = $scriptCmd.GetSteppablePipeline($myI …
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      | Exception calling "GetSteppablePipeline" with "1" argument(s): "Exception calling "GetRemoteNewCsOnlineSession" with "1" argument(s): "Run either Connect-MicrosoftTeams or
      | new-csonlinesession before running cmdlets.""

I want to be able write a script that is done via app only Service Principal. I'm unable to find documentation on how to do this, or what permissions are required for an app only Service Principal.

I'm getting the same issue, is there any update on this?

Hello @pmatthews05 Paul, please see here https://github.com/MicrosoftDocs/office-docs-powershell/issues/7464#issuecomment-811248583 and https://github.com/MicrosoftDocs/office-docs-powershell/issues/7469

Hello @pmatthews05 Paul, please see here #7464 (comment) and #7469

@get-itips I'm not sure why you keep pointing people to other issues where people are pointing out the exact same issue, and there is no resolution. This keeps going around in circles, and what is MEANT to be a working solution is not working at all for the CS side of the commands
Can we please get an actual update on what is happening with the teams powershell module? First I'd suggest starting by using some actual words explaining what API permissions are required so we can make this thing work!

Hello @pmatthews05 Paul, please see here #7464 (comment) and #7469

@get-itips I'm not sure why you keep pointing people to other issues where people are pointing out the exact same issue, and there is no resolution. This keeps going around in circles, and what is MEANT to be a working solution is not working at all for the CS side of the commands
Can we please get an actual update on what is happening with the teams powershell module? First I'd suggest starting by using some actual words explaining what API permissions are required so we can make this thing work!

Hello @awill4457 Alex how are you? I can understand, however here we are limited to deal with documentation issues/feedback, not product ones, besides that, I am already trying to pass this message on to the product team behind the module. Thank you

@get-itips fair enough that you deal only with the documentation, however perhaps the documentation should contain a link to where to raise an issue about the product as well as issue with the documentation.
It appears from the links you have put there is definitely a problem with the product connecting with Service Principal, which is a problem with the product.
The issue I have with the documentation then is that I do not know what permissions I need to give an Service Principal.

@get-itips fair enough that you deal only with the documentation, however perhaps the documentation should contain a link to where to raise an issue about the product as well as issue with the documentation.

Hello Paul, I sent this feedback to the team behind Docs.

It appears from the links you have put there is definitely a problem with the product connecting with Service Principal, which is a problem with the product.
The issue I have with the documentation then is that I do not know what permissions I need to give an Service Principal.

Paul, I could get some information from the team behind the module, they are aware of this and are working on it. Hope this information helps you.

Hello @get-itips ,
hope you're doing well!
I am facing the same issue. Can you get any info from the team behind the module about when a fix could be available? A rough indicator if we are talking about days, weeks or months would be very valuable!
Thank you!

Hello @get-itips ,
hope you're doing well!
I am facing the same issue. Can you get any info from the team behind the module about when a fix could be available? A rough indicator if we are talking about days, weeks or months would be very valuable!
Thank you!

I am sorry, I am afraid I have no more information than that.
@yogkumgit please close this issue.

@get-itips And me! And me! Same issue =( Looks like the whole MicrosoftTeams module is screwed...

@yogkumgit please close this issue.


Display icon size and color HTML code

Replaces the 64x64 label with a label that displays the icon's size.

Makes the color info label also show the color's HTML code.

Thanks!


sbt-spark-package;0.2.4: not found

Hi,
I'm was running sbt assembly on this project but I got this error:
sbt.ResolveException: unresolved dependency: org.spark-packages#sbt-spark-package;0.2.4: not found
Thanks :+1:

The SBT tool for building isn't supported anymore after moving to Maven. I forgot to delete it. Now I removed it from the repo. Please use Maven for building.


Fix vulkaninfo on win32 to use existing console

The vulkaninfo utility is compiled as /SUBSYSTEM:APPLICATION but
attempts to allocate its own console and print to it. Not only
does this appear to be unreliable (sometimes no output is printed),
it is unnecessary if the utility is compiled as /SUBSYSTEM:CONSOLE.
This removes unnecessary console manipulation code. By using
/SUBSYSTEM:CONSOLE, the ordinary main() entrypoint function can be
used.
The console is still enlarged if it was opened exclusively for the
process by detecting whether it was so opened. Likewise, the process
still sleeps forever if the console is exclusive to the process.
The process behaves like a normal command line process when executed
from the command line.
IMPORTANT: I don't know how you generate the .vcxproj files included
in the SDK, as I can't find them here, but you need to change them
from /SUBSYSTEM:APPLICATION to /SUBSYSTEM:CONSOLE in line with this
change.
Fixes lunarg issue 350.

Thanks Hugo!  This is a nice improvement.  The change looks good overall.  There is just one issue with the Linux build to deal with.  I have posted a comment in the diff regarding the issue, if you want to fix it yourself.  Otherwise, I can check out your change locally and add the necessary adjustments.
The Visual Studio project files are generated by CMake.  In the demos/CMakeLists.txt file you should find an 'add_executable' macro for vulkaninfo, which contains a WIN32 argument.  The WIN32 is what triggers CMake to generate the project with /SUBSYSTEM:WINDOWS.  Removing it should generate a project file that uses /SUBSYTEM:CONSOLE.

Whoops, how did I miss that. Fixed, and cmake updated.

Fixed. Sorry for the repeated broken code on Linux, I don't have this codebase prepared for building on Linux.

This fix has been merged to the master branch.


Remove node-sass from package.json as grunt-sass includes it

Recreating #75.

The tests have passed. LGTM.


Rule blocked: CORERULES-20

Links to related JIRA Tickets

https://jira.cdisc.org/projects/CORERULES/issues/CORERULES-20

Rule Information

Standard: SDTMIG
Rule ID: 3-4
Rule Description:

Condition: Multiple informed consents obtained and DSDECOD = 'INFORMED CONSENT OBTAINED'
Rule: For each subject, earliest DSSTDTC = DM.RFICDTC
Describe the bug
The present_on_multiple_rows_within operator returns true for all rows if one value is present on multiple rows with the grouping target.
Expected behavior
Instead it should return true for records where the value that appears on multiple rows within the target variable and false otherwise.
Ex. Testing with the attached rule and dataset should return errors for rows: 1,2, 6,7, 12, 13
cg0068-tests.zip

The validation is complete. The issue is good to close. The engine now successfully implements the acceptance criteria.It returns true for records where the values appears on multiple rows within the target variable and false otherwise. A screenshot showing the test run and correct output in the report is attached below

VALIDATION SUMMARY
Validation Methodology
The validation process incorporated rigorous testing methodologies to ensure the accuracy and reliability of the system. This included:
Unit Testing:
Unit Testing was done to verify the implementation of the Acceptance criteria. Unit tests were designed to test the made changes using edge cases. All those tests were then run using pytest to verify compliance with acceptance criteria.
Rules Engine:
The rules engine test (in core.py) functionality was utilized to run a validation against the failing rule logic and a dataset. .
Code Review:
The code changes in the code files were reviewed and were found to be in accordance with the Acceptance criteria. Also, the code was reviewed for following:

Code Quality Evaluation
Logic and Functionality Review
Error Handling and Exception Handling Assessment
Security Considerations

Regression Testing:
Regression tests were run to validate that the changes did not affect any functionality of the overall system.
Test Execution:
The tests were executed in the following order:
Code Review: The code for all the changed files was reviewed first to check the proper implementation of the Acceptance criteria.
Unit Tests: The unit tests were run using the following command in the terminal from the root of the project
python -m pytests path/to/the/test/files
Rules Engine: The failing rule logic in the PR was validated against a  dataset using test function from core,py file of the Rules Engine. The generated report was then utilized to validate that the engine works as expected
Regression Tests: The regression tests were then run to confirm that the changes in engine did not break any other part of the implementation
Results:
After successful running of unit, Rule Engine test, regression tests and careful validation, the issue was found to be good to close as the Acceptance criteria was fulfilled and all validations passed.
Deviations and Non-conformances:
No deviations or non-conformances were observed.
Summary of Findings:
Test Results: All tests conducted during the validation process passed successfully, indicating that the system functions as intended and meets the specified requirements. The tests covered various scenarios and edge cases, providing confidence in the system's reliability and correctness.
Unit Regression: The unit regression tests were executed, and no regressions or issues were identified. This indicates that the changes made during the development or modification of the system did not introduce any unintended side effects or break existing functionality.
Code Reviews: The code reviews conducted by both development and QA teams were completed, and no major issues or concerns were identified. The code adheres to coding standards and best practices, demonstrating good code quality, readability, and maintainability.


Duplicate control-header / control-origin

Hello,
I try to use this bundle for configure my api. But i have a problem since 2 weeks, and i didn't found any solution. Sorry for the inconvenience.
My last configuration is :
Project on server : Debian 8 / nginx / php-fpm
Server side : Symfony 3.0 with FosUserBundle/ FOSRestBundle/ NelmioApiDocBundle / NelmioCorsBundle/ LexikJWTAuthenticationBundle / JMSSerializer
My config.yml :
# FosUserBundle Configuration
fos_user:
    db_driver: orm
    firewall_name: main
    user_class: UserBundle\Entity\User
    group:
        group_class: UserBundle\Entity\Group
        form:
            type: UserBundle\Form\Type\GroupFormType
    profile:
        form:
            type: UserBundle\Form\Type\ProfileFormType

# FOSRestBundle Configuration
fos_rest:
    param_fetcher_listener: true
    body_listener: true
    format_listener: true
    view:
        view_response_listener: 'force'
        formats:
            xml: true
            json : true
        templating_formats:
            html: true
        force_redirects:
            html: true
        failed_validation: HTTP_BAD_REQUEST
        default_engine: twig
    routing_loader:
        default_format: json

# LexikJWTAuthenticationBundle Configuration
lexik_jwt_authentication:
    private_key_path: %jwt_private_key_path%
    public_key_path:  %jwt_public_key_path%
    pass_phrase:      %jwt_key_pass_phrase%
    token_ttl:        %jwt_token_ttl%

# JMSSerializer Configuration
jms_serializer:
    metadata:
        auto_detection: true

# NelmioCorsBundle Configuration
nelmio_cors:
    defaults:
        allow_credentials: true
        allow_origin: []
        allow_headers: []
        allow_methods: []
        expose_headers: []
        max_age: 0
        hosts: []
        origin_regex: false
    paths:
        '^/api/':
            allow_origin: ['*']
            allow_headers: ['Origin', 'Content-Type', 'X-Requested-With', 'Accept']
            allow_methods: ['POST', 'PUT', 'GET', 'DELETE', 'OPTIONS']
            max_age: 3600

My security.yml :
api_doc:
    pattern: ^/api/doc
    anonymous: true

api_login:
    pattern:  ^/api/login
    provider: fos_userbundle
    stateless: true
    anonymous: true
    form_login:
        check_path:     /api/login_check
        require_previous_session: false
        username_parameter: username
        password_parameter: password
        success_handler:          lexik_jwt_authentication.handler.authentication_success
        failure_handler:          lexik_jwt_authentication.handler.authentication_failure

api:
    pattern:   ^/api
    stateless: true
    provider: fos_userbundle
    lexik_jwt:
        authorization_header:
            enabled: true
            prefix:  Bearer
        query_parameter:
            enabled: true
            name:    Bearer
        throw_exceptions:        true
        create_entry_point:      true

## Main firewall
main:
    pattern: ^/
    form_login:
        provider: fos_userbundle
        csrf_token_generator: security.csrf.token_manager
        login_path: fos_user_security_login
        check_path: fos_user_security_check
        remember_me: true
        default_target_path: lgb_onepage_home
    logout:
        path:   fos_user_security_logout
        target: lgb_onepage_home
    anonymous: true
    remember_me:
        secret:      %secret%
        lifetime: 604800 # 1 week in seconds
        path:     /
        domain:   ~ # Defaults to the current domain from $_SERVER
        #                secure:   true
        httponly: true

access_control:
    - { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/register, role: ROLE_ADMIN }
    - { path: ^/resetting, role: ROLE_ADMIN }
    - { path: ^/intranet/, role: ROLE_USER }
    - { path: ^/api/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/api/doc, roles: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/api,       roles: [IS_AUTHENTICATED_FULLY, ROLE_ADMIN] }

And for my client, i use Ionic with angular JS on base project (with skeleton tabs for have a valid login form) :
My config :
.config(function ($stateProvider, $urlRouterProvider, localStorageServiceProvider, $httpProvider) {
    $stateProvider...;

    // if none of the above states are matched, use this as the fallback
    $urlRouterProvider.otherwise('/app/playlists');

    localStorageServiceProvider
        .setPrefix('lgb-preorder');

    $httpProvider.defaults.headers.common = {};
    $httpProvider.defaults.headers.post = {};
    $httpProvider.defaults.headers.put = {};
    $httpProvider.defaults.headers.patch = {};
});

and my function (doesn't work):
$scope.doLogin = function () {

            var loginData = {
                username: this.login.username,
                password: this.login.password
            };

            $http({
                url: 'http://sub.domain.com/app_dev.php/api/login_check',
                method: 'POST',
                data: loginData,
                headers: {'Content-Type': 'application/json'}
            })
                .success(function (data) {
                    console.log("Success -- login ok with ", data);
                })
                .error(function (error) {
                    console.log("ERROR -- login fail with ", error);
                });
        };

Error send is :
XMLHttpRequest cannot load http://sub.domain.com/app_dev.php/api/login_check. Response to preflight request doesn't pass access control check: The 'Access-Control-Allow-Origin' header contains multiple values '*, http://localhost:8100', but only one is allowed. Origin 'http://localhost:8100' is therefore not allowed access.

it seems because my http request have 2 definitions of Access-Control-Allow-Headers and Access-Control-Allow-Origin :
Request URL:http://sub.domain.com/app_dev.php/api/login_check
Request Method:OPTIONS
Status Code:200 OK
Remote Address:x.x.x.x:80
Response Headers
view source
Access-Control-Allow-Credentials:true
Access-Control-Allow-Headers:Origin, X-Requested-With, Content-Type, Accept
Access-Control-Allow-Headers:origin, content-type, x-requested-with, accept
Access-Control-Allow-Methods:POST, PUT, GET, DELETE, OPTIONS
Access-Control-Allow-Origin:http://localhost:8100
Access-Control-Allow-Origin:*
Access-Control-Max-Age:3600

but why ???____???
It seems i have 2 different handler, nelmio and one other, and each put an Access-Control-Allow-Headers / Access-Control-Allow-Origin. The others access-control are OK.
If anyone have an idea, its really appreciated. Thanx for your help.

Anyone have an idea ?? :s

up, if someone have an idea ??

up, i continue to search a solution .. If anyone have an idea

last up, i didn't find any solution currently. I search about nginx configuration, may be its a conflict between nginx vhost and this bundle

I can confirm that if Nginx is also configured to send the CORS headers, there are duplicates created. I removed the Nginx CORS config and the bundle works as expected.

I can confirm that if Nginx is also configured to send the CORS headers, there are duplicates created. I removed the Nginx CORS config and the bundle works as expected. An idea is to have the bundle check for the headers and create a warning if duplicates are present.

Can confirm, had exactly same problem.

+1

+1
Symfony: 5.3.15
Nelmiocors: 2.2.0

The bundle is asf ar as I know never setting duplicate headers, so if you're +1ing here, please give more details or look at what else you have running in your application. Try to look in the symfony profiler for what event listeners you have running after the CorsListener. Do you have symfony http cache in place or something? Just adding +1 will not help anyone that's for sure.

An idea is to have the bundle check for the headers and create a warning if duplicates are present.

The bundle cannot do this check, if you configure your web server to also send CORS headers back in the response what happens is this:

web server gets a request
forwards to php
PHP runs, Symfony runs, NelmioCorsBundle adds headers
web server gets back a response
web server adds duplicate headers
web server sends the response back to client

As you can see, the PHP code has no chance to ever see what the web server is doing, so cannot act on that. Only the server admins/application developers can do this. Please learn how your stack works.


My balance is visible on the message explorer site but not in the Firefly wallet

Issue description
I did transfer a certain amount of IOTA from BITRUE to the Firefly wallet. However, the balance is not visible in the wallet. While I could confirm that the balance was received on the address on the message explorer website.
The  network shows as disconnected in the wallet and I do get an error message when trying to find the balance: error.node.chrysalis.NodeInactive.
Firefly version
v1.20
OS details
Windows 10 Enterprise
Can the issue be reliably reproduced?
Yes
Steps to reproduce the issue

Login
All settings
Balance finder
Find balance
Search balance

Expected behaviour
Show Balance
Actual behaviour
No Balance is shown, 0Mi.
Errors
error.node.chrysalis.NodeInactive.

Hello,
I think this is most likely a bug in Firefly. This will be fixed with the new release. In the meantime you can try to create a new profile and restore your profile with your 24 words. If you use a ledger then use the ledger to restore your profile.

Thanks a lot. When you say create a new profile, you mean deleting the existing one and using the backup?

Yeah just try to create a new profile with your backup file. The other profile hab ne deleted after you have successfully restored your wallet

@shudai79 Could you solve your issue?

No, I still have the same issue. Even with the new version 1.3. What should I do?

The network does not stay connected.

Tue, 21 Dec 2021 23:06:55 GMT
ClientError: error sending request for url (https://chrysalis-nodes.iota.cafe/api/v1/info): operation timed out
Tue, 21 Dec 2021 23:06:45 GMT
ClientError: error sending request for url (https://chrysalis-nodes.iota.org/api/v1/info): error trying to connect: dns error: This is usually a temporary error during hostname resolution and means that the local server did not receive a response from an authoritative server. (os error 11002)
Tue, 21 Dec 2021 23:06:45 GMT
ClientError: error sending request for url (https://chrysalis-nodes.iota.org/api/v1/info): error trying to connect: dns error: This is usually a temporary error during hostname resolution and means that the local server did not receive a response from an authoritative server. (os error 11002)
Tue, 21 Dec 2021 23:06:45 GMT
ClientError: error sending request for url (https://chrysalis-nodes.iota.org/api/v1/info): error trying to connect: dns error: This is usually a temporary error during hostname resolution and means that the local server did not receive a response from an authoritative server. (os error 11002)
Tue, 21 Dec 2021 23:06:44 GMT
ClientError: error sending request for url (https://chrysalis-nodes.iota.org/api/v1/info): error trying to connect: dns error: This is usually a temporary error during hostname resolution and means that the local server did not receive a response from an authoritative server. (os error 11002)
Tue, 21 Dec 2021 23:06:35 GMT
ClientError: error sending request for url (https://chrysalis-nodes.iota.cafe/api/v1/info): error trying to connect: dns error: No such host is known. (os error 11001)
Tue, 21 Dec 2021 23:06:35 GMT
ClientError: error sending request for url (https://chrysalis-nodes.iota.org/api/v1/info): error trying to connect: dns error: No such host is known. (os error 11001)
Tue, 21 Dec 2021 23:06:35 GMT
ClientError: error sending request for url (https://chrysalis-nodes.iota.org/api/v1/info): error trying to connect: dns error: No such host is known. (os error 11001)

Can you try to change the node to
https://mainnet-node.tanglebay.com

@shudai79 Were you able to resolve your issue? But it looks like there is a DNS error from your OS.

I'm closing this down, since the issue is outdated. If it is still present in the current Firefly version (1.6.5), please reopen it!


Add MM Short Hookshot to logic and other logic changes

Adds all known instances of where the MM Short Hookshot can be used
Adds some Ice Arrow logic to Woodfall Temple and Stone Tower Temple
Adds a few more instances of Goron Bomb Jump
Adds 8 new tricks, 4 for each game
-- OOT Child Domain Entry with Cucco
-- OOT Adult Domain Entry with Hover Boots
-- OOT Cross River of Sand with Nothing
-- OOT Drain Water Temple with Longshot
-- MM Precise Short Hookshot Usage
-- MM Backflip over Deku Palace Guards
-- MM Enter Pirate Fortress Interior with Hookshot from Boats
-- MM Inverted Stone Tower Temple Long Jump to Death Armos

Reason for removing the fight reqs for the Wizzrobe is because no matter which direction you come from, you will always have something to defeat the Wizzrobe with. Getting the check you can deku void or death warp to return to the room entrance/dungeon entrance respectively.


Troubleshoot Fireblocks wallet issues

Background
Major clients using Fireblock haven't been able to start bridge transactions.
Some users get stuck loading Fireblocks from the wallet selection. Select "Connect wallet" -> "All Wallets" -> Search for Fireblocks:

In the "Mobile" tab, they see this screen loading forever:

In the Webapp tab, they see this screen with no other prompts:

Users who have been able to connect see an infinite loop of "Checking approval" spinning in the UI when they click "Send". This stops after a few moments and the "Send" button reappears.
Tasks

[ ] Fix Fireblocks being able to connect to Mobile/Webapp
[ ] Fix transactions not popping up when bridge transaction is sent

Tried Fireblocks mobile connection with Android app. After selecting "Link Device" -> scan QR code, got this error: "Unknown QR code, This QR code does not belong to Fireblocks"

Tried Fireblocks webapp connection. After opening the link in the popup "Continue in Fireblocks", it opens a link to https://console.fireblocks.io/v2/wc?uri=wc%3A6f8704012a756520ede2c32733c9c164551c31da9b28bc4fe8dccfeefa55b8b3%402%3Frelay-protocol%3Dirn%26symKey%3D3b1c20435c0ab4ba1c62ca6929d99d36c262e15da4fca11bb56bee25225a977d with a login screen. Since I've only been able to get a sandbox environment at https://sandbox.fireblocks.io/v2/web3, this login page doesn't work.

Next step:
@just-a-node
try to work with both Walletconnect and Fireblocks support
continue working with Fireblocks support team

Call with BTCapital:

Seeing an "allowance" error in the console causing a revert exception error on the UI
Tried approving ezETH directly to the Lockbox via Etherscan and then sending the bridge transaction after approval had been completed - same results
Tried bridging ETH on the same path - this worked fine

Call with BTCapital:

Seeing an "allowance" error in the console causing a revert exception error on the UI
Tried approving ezETH directly to the Lockbox via Etherscan and then sending the bridge transaction after approval had been completed - same results
Tried bridging ETH on the same path - this worked fine

We have raised the issue with the Fireblocks and asked them to dig into Maven's backend logs to see if the "Fireblocks doesn't support the dApp's requested asset (100)" error is present and if there's any additional troubleshooting support they can help with from their side.
We have also asked Maven + BTCapital to raise support tickets.
Attempting to reproduce this from our own setup + Firebase console has not been successful.

moving to backlog... will need to check again


Broken thumbnail image

Hello!
is it possible to remove these ugly icons when the thumbnail images have been unlinked?

Thank you!

hi this should be fixed in the latest version, the broken thumbnails are automatically hided, once update, you shouldn't see this anymore, let me know if it doesn't work for you

Awesome!!


Reorganization of branches

Hello all,
There has been some confusion recently about which branch of this API Janus performers should be conforming to. To alleviate that confusion I am proposing a new organization for the branches here on Github and also for the documentation at libjanus.org.
The reorganization will be as follows. The master branch will become the stable branch that everyone should be compatible with. A new branch (will be called phase 2 at the moment) will contain API changes and updates planned for the next phase of the program. When the program moves into the next phase that branch will be merged into master and a new branch will be made to accept new changes for the following phase of the program. Only critical bug fixes will ever be merged into master once it is declared stable. We will also maintain an archive of the previous versions of the API under appropriately labelled branches.
The documentation at libjanus.org will be automatically generated using doxygen from the master branch here. At some point in the future we would like to add functionality to the page that allows you to select which branch's documentation you would like to view (and indicates which branch you are currently viewing). Until you see that please assume the documentation is for the master branch only!
I am planning on making these changes next Wednesday (Nov 4) unless there are issues. If you do have issues please respond in this thread so that we can all discuss them.
-Jordan

This is finally committed and now reflected in the branch structure


Exporting collections names

I'm trying to construct postscript expression to include Zotero collection name the item belongs to. But simple:
 if (item.collections) reference.add({ name: 'coll', value: item.collections });

as a result gives some - I suppose - ID's of collections concatenated in one string:
  coll = {29RZVFBNEBJEX6H9VC4E2SB43CXKTH742YEX6VUS}
  coll = {3CXKTH74KCTN247F}
  coll = {AF44D2WE2YEX6VUSKCTN247F}
  coll = {3CXKTH74KCTN247F}
  coll = {8S2TIGZ4VC4E2SB42YEX6VUSKCTN247F}
  coll = {3CXKTH74M4DDFV4X2YEX6VUS}

How to get the "friendly" names of the collections? Similarly, like for keywords (tags) export?
The bug report ID is: 62SKTAMA-euc
Darek

This should do it:
if (Translator.BetterBibLaTeX) {
  var ityear = Zotero.BetterBibTeX.parseDate(item.date).year;
  reference.add({ name: 'zoterolocal', value: 'zotero://select/items/@' + item.citationKey });
  if (item.uri) reference.add({ name: 'zoterouri', value: item.uri });
  if (item.date) reference.add({ name: 'year', value: `${ityear}`});
  if (item.DOI) reference.add({ name: 'doiuri', value: 'https://doi.org/' + item.DOI });

  if (item.collections) reference.add({ name: 'coll', value: item.collections.map(coll => Translator.collections[coll].name), sep: ', ' });
}

When add is passed an array value, it concatenates the elements using the sep parameter (which is blank by default). You can see what Translator.collections looks like by exporting in BBT JSON format.

@retorquere, it does not work. The "coll" field does not appear in exported file.
Report ID: 5ELY2X3X-euc

5ELY2X3X-euc does not contain any collections.

@retorquere, i tried again. In postscript I put two lines, one exporting collections IDs, second - translated collection names:
if (Translator.BetterBibLaTeX) {
	var ityear = Zotero.BetterBibTeX.parseDate(item.date).year;
	reference.add({ name: 'zoterolocal', value: 'zotero://select/items/@' + item.citationKey });
	if (item.uri) reference.add({ name: 'zoterouri', value: item.uri });
	if (item.date) reference.add({ name: 'year', value: `${ityear}`});
	if (item.DOI) reference.add({ name: 'doiuri', value: 'https://doi.org/' + item.DOI });
	if (item.collections) reference.add({ name: 'coll', value: item.collections });
	if (item.collections) reference.add({ name: 'coll2', value: item.collections.map(coll2 => Translator.collections[coll2].name), sep: ', ' });
}

The IDs are exported, the names - not.
Report ID: KBVT4UGR-euc
And here is generated BibLaTex file:
__test4.bib.txt

Shit, it's a caching issue. I'll have to disable the cache if you're accessing the collections, because what actually turns up in the output is dependent on the collection tree you're exporting.
For now, you will have to clear the cache before export, and change the line to:
if (item.collections) reference.add({ name: 'coll2', value: item.collections.map(coll => Translator.collections[coll]?.name).filter(coll => coll), sep: ', ' });

But as far as I can tell, you are exporting the collection these items sit in themselves, and Zotero does not make that "root collection" available to translators. Only collections somewhere under the collection you are exporting are passed to the translator.
I'll get a fix for the caching problem.

@retorquere, I have:

added the line to the postscript field. It got orange; removing the question mark from [coll]?.name) corrected the problem, but I'm not sure if it's ok.
cleared the cache (preferences -> BBT -> Advanced -> Export -> Reset cache)
exported some collection with subcollections, then - exported some manually selected items.
in both cases still no effect: collections ID's are exported, collections names - not.

And I usually export entire library (manually selecting items without some scratch and temporary items), not collections. I do not know, if it matters.
Report ID: FZPD7GHM-euc

Huh, strange, I thought I had tested that, but my postscript didn't have it, and it indeed does not compile (which is what the orange means).
Try
if (item.collections) reference.add({ name: 'coll', value: item.collections.filter(coll => Translator.collections[coll]).map(coll => Translator.collections[coll].name), sep: ', ' });

when the postscript is orange, the last compilable version remains active.
Is FZPD7GHM-euc from your entire library?

@retorquere, now it works. Thank you!
Here are the results of some tests. Exports 1-3 are is done after reseting the cache:

Exporting entire library (clicking on the library in the left pane):
collections are exported.
Exporting one of the collections (with subcollections):
subcollections are exported, top-level collection - not.
Exporting manually selected items (clicking on the references pane):
no collections are exported.
Exporting manually selected items WITHOUT resteting the cache:
collections are exported.

In all the cases above, parent collection of the subcollection item belongs to is not exported, unless item is explicitly assigned also to parent collection.

Is FZPD7GHM-euc from your entire library?

No, it's from one of the subcollections. Entire library counts more than 3000 items. I have a quite elaborated collections tree, treating them as hierarchical, categorized tags.

@retorquere, now it works. Thank you!
Here are the results of some tests. Exports 1-3 are is done after reseting the cache:
1. Exporting entire library (clicking on the library in the left pane):
   collections are exported.

Correct, and as intended by Zotero. Nothing I can do about this.

2. Exporting one of the collections (with subcollections):
   subcollections are exported, top-level collection - not.

Correct, and as intended by Zotero. Nothing I can do about this.

3. Exporting manually selected items (clicking on the references pane):
   no collections are exported.

Correct, and as intended by Zotero. Nothing I can do about this.

4. Exporting manually selected items WITHOUT resteting the cache:
   collections are exported.

This is a bug that I am working on to fix. It should behave as point 3.

In all the cases above, parent collection of the subcollection item belongs to is not exported, unless item is explicitly assigned also to parent collection.

I don't understand what you're expressing here, sorry.
FZPD7GHM-euc does not contain collections, so if all is right, this should either be a collection with no further subcollections, or manually selected items.

I don't understand what you're expressing here, sorry.

Does not matter, just tried to show behaviour of the Zotero when exporting collections. For now the postrscript works almost perfectly, just have to remember to clear the cache manually.
Thank you!

I'm still looking to get a fix out, but try this for the interim:
if (Translator.BetterBibLaTeX) {
  var ityear = Zotero.BetterBibTeX.parseDate(item.date).year;
  reference.add({ name: 'zoterolocal', value: 'zotero://select/items/@' + item.citationKey });
  if (item.uri) reference.add({ name: 'zoterouri', value: item.uri });
  if (item.date) reference.add({ name: 'year', value: `${ityear}`});
  if (item.DOI) reference.add({ name: 'doiuri', value: 'https://doi.org/' + item.DOI });

  if (item.collections) reference.add({ name: 'coll', value: item.collections.filter(coll => Translator.collections[coll]).map(coll => Translator.collections[coll].name), sep: ', ' });
  return false // this instructs BBT to not cache the item
}

The fix I'm working on will automate that if you access item.collections in the postscript

return false // this instructs BBT to not cache the item

Seems this fix works. Exported, changed the item collections, exported again. Collections are updated.

It's not a fix, really, rather a workaround. A fix is building.

:robot: this is your friendly neighborhood build bot announcing test build <IP_ADDRESS>30 ("fine-grained cache disabler")
Install in Zotero by downloading test build <IP_ADDRESS>30, opening the Zotero "Tools" menu, selecting "Add-ons", open the gear menu in the top right, and select "Install Add-on From File...".

7130 should not require the return false

Also has a much more precise and fine-grained cache disabler.

The test build works ok. The collections are updated without manually resetting the cache.


Migrate for Golang and Beego ?

Migrate APP for Golang and Beego Framework, simple, fast
No Apache, No NodeJS, No PHP, No Python, No Composer, http built
http://beego.me/
http://beego.me/video
https://www.youtube.com/watch?v=w7RziV_Sn-g
Sqlite:
http://beego.me/docs/mvc/model/orm.md
Redis:
http://beego.me/docs/module/cache.md
https://github.com/astaxie/beego/blob/master/cache/redis/redis.go
http://hobbyisthacker.com/

Thanks for the suggestion. After looking into beego, it seems like serious overkill.  Linux Dash only requires the backend language to be a router to bash files. No need for a framework for such a specific, single-purpose task.


Roll Engine from ed25e8f01efe to 5bfb8b2a942d (1 revision)

https://github.com/flutter/engine/compare/ed25e8f01efe...5bfb8b2a942d
2021-07-12<EMAIL_ADDRESS>Windows: Fix AltGr key causing CtrlLeft to hang (flutter/engine#27266)
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Please CC<EMAIL_ADDRESS>on the revert to ensure that a human
is aware of the problem.
To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Commit queue failed; closing this roll.


Reduce bundle size

Thanks for the great library. We are using it in our products.
One thing I did notice was the large bundle size.
Metro does not currently implement tree shaking.Only lodash.foreach is used, but all code is bundled.
Changing to lodash.foreach will reduce the bundle size.
This change reduces the bundle size by approximately 70 kb.

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


D&D 3.0.0 system compatibility

Right now this module is partially compatible with the new dnd system. Specifically resources are gone on the new character sheet, if you need to create a new resource named "Spell Points" you must switch to the legacy character sheet. After the resource is created you can switch back to the new character sheet and it should work.
I've not tested everything but for now this could be a way around to keep using this module.
Resources will be handled by "Items" from now on, so I will need to change the inner logic of the module. No ETA.
I checked on the official channels and right now many modules are not compatible with d&d 3.0.0+ system. I suggest to wait a litte before updating your current campaign.
Remember to backup your world data anyway.

I'm just happy you are working on it. This module is so crucial to my games.

I'd like to highlight an issue with migration to D&D v3. It used to be pretty easy to use effects to manipulate resources, it isn't as easy to use effects to add or remove max charges from an item. This means items won't cover all the use cases that resources cover now. I'd request during this migration attention is brought to continue supporting legacy resources for spell point tracking while possible.

Hi, I don't know much about programming, for me it's a real dark magic. I'll just describe the problem. We are playing on dnd5e v3.0.3 using the Tidy sheet. I created a resource called Spell Points and turned on automatic calculations, then updated the server and edited the class items, but nothing was applied. The value of the resource did not change, but spells still consumed slots. I'm probably doing something wrong, I would be extremely grateful for your help.

Hi, I don't know much about programming, for me it's a real dark magic. I'll just describe the problem. We are playing on dnd5e v3.0.3 using the Tidy sheet. I created a resource called Spell Points and turned on automatic calculations, then updated the server and edited the class items, but nothing was applied. The value of the resource did not change, but spells still consumed slots. I'm probably doing something wrong, I would be extremely grateful for your help.

UPD: Wrong! Spell Points are spent, but do not change independently based on level.

I'd like to highlight an issue with migration to D&D v3. It used to be pretty easy to use effects to manipulate resources, it isn't as easy to use effects to add or remove max charges from an item. This means items won't cover all the use cases that resources cover now. I'd request during this migration attention is brought to continue supporting legacy resources for spell point tracking while possible.

I know, but I'm not in charge of dnd v3 development, also being the resources now "deprecated" this means that sooner or later they will disappear for good. So I cannot count on "legacy resources" to keep the module working in the future. We also don't know if the "items as resources" will become easier to manage in the future. I'm still evaluating other "long term" alternatives.

@Battenhatch, @Vilonight, @FrankIsAtank
Hello,
I've had some time this weekend to try the item approach, it's at the following link.
https://github.com/misthero/dnd5e-spellpoints/archive/refs/heads/dev/dndV3-testing.zip
It is not finished if you wanna help debugging it it would be helpful.
This version now works without resources but using a spell points item. The item itself is in a compendium added to the module, you just need to drag it on the character sheet that needs the spell points.
I advise to backup your world or create a new fresh world before trying the module to avoid messing with your current campaigns.

Oh, thank you!! I've been waiting for this one, I gave it a brief test just now and it seemed to work wonderfully. There's only two slight flaws I noted, neither serious:

This might be out of your hands, but the Spell Points resource bar on the new v3 sheets extends beyond its bounds if your current is higher than your max. Not that this'd ever be the case.

When adding the feature to the first character sheet, it popped up asking me if I wanted to remove the old resource and when I clicked yes, I received the Foundry error message 'TypeError: SpellPoints.removeOldResource is not a function'.

It may get more extensive testing by us come this weekend, but I cast a few spells and didn't notice any unwanted behaviour.
If I may have a minor suggestion, it'd be nice if the description of the compendium item included some of the rules text. How many points a spell of each level casts given that doesn't seem to display anywhere, what spell points you have at each level etc. I can and have put that on myself, of course, but it may be a nice default.

thankyou @Aleswall  for your feedback and taking your time helping me to debug. I will soon release the final version.

I can fix that forcing the value to be equal the max when it happen to be higher.
that should be fixed in the final version.

about entering the points gained per level and the spell costs is a nice idea, but the module allow any formula to be entered along with the default DMG variant rule.
I could just add the default, what do you think?

I think the default is fair, others can always change it if they wish but Spell Points aren't included in any of the SRD rule materials that come with the D&D 5e system so I think it'd be nice to include somewhere. It could always be a journal, but those are so tucked away and easy to miss.
I'll likely do it myself solely so my players can know what spells cost what; they don't have that memorised yet.

v2.0 is officially released ok foundry ,you should get the update soon

Hi @misthero
Getting into updating my characters, I notice that it sets recovery to Short Rest. This should be Long Rest, right?

Hi @misthero Getting into updating my characters, I notice that it sets recovery to Short Rest. This should be Long Rest, right?
edit: Otherwise, seems to be working great!

sorry, you are right, the import function is not importing the recovery configuration, you should be able to edit that with the new cog button anyway:

or if you configure the item uses recovery to long rest "before" dragging it on the character sheets, it will keep the long rest once dropped on the sheet.

there is a setting in the module configuration to allow warlocks to use spell points, by default it is disabled since warlocks cannot use spell points according to the variant rule on the DMG.
did you check that?

Ah! No, I didn't! All good now :)

hi,
I was using the mixed (opt in) feature of this module to use it only on one character in a party. After the update, all of the characters use spell points, instead of only that one player that had it enabled before. As I've checked I'm pretty sure this is the part of the code in the previous version that made sure the character is using mixed mode. I've checked the settings a couple of times, but I couldn't find a way to enable it.
Is there a way to still use that feature in the new 2.0 version?

hi, I was using the mixed (opt in) feature of this module to use it only on one character in a party. After the update, all of the characters use spell points, instead of only that one player that had it enabled before. As I've checked I'm pretty sure this is the part of the code in the previous version that made sure the character is using mixed mode. I've checked the settings a couple of times, but I couldn't find a way to enable it. Is there a way to still use that feature in the new 2.0 version?

In version 2 you give the "Spell Points Item" to characters who needs spell points. If not they don't use spellpoints, the mixed mode has been removed since now you can only use spellpoints if you have the item in your character sheet.

Is there a way you could provide a (universal) flag or something that can be accessed by active effects (especially DAE) to increase the maximum amount of spell points? At the current moment, there exists only @scale.(classname).scale-value as a method, which works fine for set classes, but you can't increase that with a universal active effect.
Before 3.0, you could simply increase resource,primary.max (as an example). So perhaps a flag that is like resource.spell-points.max or something, that is linked to the items maximum?

hi, I was using the mixed (opt in) feature of this module to use it only on one character in a party. After the update, all of the characters use spell points, instead of only that one player that had it enabled before. As I've checked I'm pretty sure this is the part of the code in the previous version that made sure the character is using mixed mode. I've checked the settings a couple of times, but I couldn't find a way to enable it. Is there a way to still use that feature in the new 2.0 version?

In version 2 you give the "Spell Points Item" to characters who needs spell points. If not they don't use spellpoints, so it's like having mixed mode always on. That's why the mixed mode has been removed since now you can only use spellpoints if you have the item in your character sheet.

I keep getting an error telling me that characters don't have spell points when I try to cast spells even though they have never had the spell points item. Alos on an unrelated note, is there an easy way to get other resources bars like the spell points one? I'd love on for KI.

Also getting a similar error, not sure if its this specifically

Actually, looks like it only errors out when adding new spellcasting types / progression that 3.1 allowed


Replace commas in BPF program name

bpf_prog_load does not accept commas in the program name, which may cause failures when attaching, e.g. to BEGIN,END. This fixes the issue by replacing commas by dots, which are accepted.
Fixes #2294.

Checklist

[ ] Language changes are updated in man/adoc/bpftrace.adoc and if needed in docs/reference_guide.md
[ ] User-visible and non-trivial changes updated in CHANGELOG.md
[ ] The new behaviour is covered by tests

a small regression test for it would be nice, can see this special probe combination being an issue in the future

Done.


[TE] Move wrapper classes under api to common

Today, the api and common packages share utilities across the thirdeye modules and there is not much distinction between them. This PR tries to merge the two packages into one.
Going forward, we will start to use the api folder/package to document all the internal and external facing apis which will help us bring some code structure into the endpoints supported by ThirdEye.

Thanks for the effort. But afaik, anomaly detection libs have heavy dependencies on thirdeye.api package.Those references will be broken by this change.

I will update their libraries.


Make react-rails default way to load reactjs

Current approach got some drawback

reactjs is no longer a single bundle now, there are "react.js" & "react-dom.js"
We need to ship new gem as new reactjs version released thus react-latest could make sense.

So the proposed approach will be delegating the actual source management to react-rails which is kept up to date as newer version of react released.
It would be a one line require both in opal and ruby to get react source properly included.
require "react/react-source"

For the ruby part, the "react/react-source" will add asset path from react-rails. And for opal part, it will load react-server.js and react.js properly.
Deprecation warning for all the required source from source folder will be shown properly suggesting which version of react-rails they should installed. (according to https://github.com/reactjs/react-rails/blob/master/VERSIONS.md)

I thought I did fix this???

So there is two parts of this issue:

Stop shipping reactrb with reactjs sources start with deprecation msgs in react-latest.js, react-vXX.js
Make react-rails a runtime dependency, so user only need to require react/react-source if they want to opt-in without adding another line in Gemfile.
Wrap "react-rails" path setup to react/react-source given that the current usage suggestion of react-rails only work on Rails environment.

okay, but I thought the first part was done?  Is that right?  I cant remember :-)

Seems like no, we only provide warning if user haven't got reactjs setup currently.

okay so we don't provide any react.js file?

We still provide reactjs source by using the copy from react-rails.
Mitch VanDuyn<EMAIL_ADDRESS>於 2016年10月7日週五 上午11:57 寫道：

okay so we don't provide any react.js file?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/reactrb/reactrb/issues/169#issuecomment-252147702,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAzRJY8qKxbx14Xy83hA1IwUcslk6wnTks5qxcMigaJpZM4KOwkV
.

I will send a PR for the installation page on the doc site before making next release. @barriehadfield is there any doc I missed requires update?
@catmando  Does reactrb-rails-generator or any other gems need update too ?

@loicboutet - can you see if @zetachang's PR effects the generator (I am thinking not, as the generator will just pull the latest version, but perhaps we should test?)

@zetachang you are right, that is the only page that will need to be updated. Depending on what you do, I might need to change the showcase tutorial but I will handle that after your PR. Please message me in Gitter when you are ready as I miss Github mentions.

So as this is released in 0-9, I am going to close it.


feat(core): add copy&rename to error_context layer

Mostly LGTM, but bindings/c has been changed unintendedly. Maybe need to sync with main branch?

Rollback done.