Issues when porting STUNSERVER to other distros

So I've got a situation where I'm using an AWS Code Pipeline to build and deploy the stun server. The code is being built within an Ubuntu container, and then deployed to an Amazon Linux EC2 instance.
The code builds fine, but when I port the stunserver executable over to the EC2 instance and attempt to run it, the server can't run because it can't find libcrypto.so.1.0.0 in the /usr/lib64 folder. If I build directly on the EC2 instance, everything runs fine. I do not want to do the building of the server on the production system.
LDD gives me the following:
ldd /opt/stunserver/stunserver
linux-vdso.so.1 =>  (0x00007ffddd3b6000)
libcrypto.so.1.0.0 => not found
libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00007f6f145e3000)
libm.so.6 => /lib64/libm.so.6 (0x00007f6f142e1000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f6f140cb000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f6f13eae000)
libc.so.6 => /lib64/libc.so.6 (0x00007f6f13aec000)
/lib64/ld-linux-x86-64.so.2 (0x0000555a1b111000)
STRACE goes looking for the libcrypto.so.1.0.0 in /usr/lib64 but it doesn't exist (only libcrypto.so exists as a link).
Is there something obvious I'm missing here?

The LDD output of the stunserver executable when I build it on the system is as follows:
ldd stunserver
linux-vdso.so.1 =>  (0x00007ffd87fce000)
libcrypto.so.10 => /lib64/libcrypto.so.10 (0x00007f2868939000)
libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00007f2868634000)
libm.so.6 => /lib64/libm.so.6 (0x00007f2868331000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f286811b000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f2867eff000)
libc.so.6 => /lib64/libc.so.6 (0x00007f2867b3c000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f2867938000)
libz.so.1 => /lib64/libz.so.1 (0x00007f2867722000)
/lib64/ld-linux-x86-64.so.2 (0x0000563dbe488000)
Even if I build, then go run the stunserver executable I brought over from the build server, it still fails.

So it seems if I build on the EC2 instance I end up with a dependency on libcrypto.so.10 instead of libcrypto.so.1.0.0.
How can I fix this without building on my production ec2 instance?

I solved this by retargeting my build to use an amazon standard linux container and do the build in that instead of the Ubuntu image provided by default.

Hi James,
I've been busy today and have not been able to look at this until now.  But
it seems like you got unblocked, so I'm happy that you found a workaround.
This isn't a problem unique to the stunserver codebase, but pretty much any
software compiled on one distro of Linux and attempting to run on another.
In this case, there was a difference in the version of OpenSSL (libcrypto)
you linked against and the version on the target machine.  I suspect you
built against OpenSSL 1.0, but the target machine only had OpenSSL 1.1.
That's just a guess.  Or it was just a missing symlink on the target
machine.
Another option would have been be to update the Makefiles in "server" and
"client" to use static linking. I think that's just passing -static as a
compiler/linker flag. Binary would be bigger, but more likely to run on a
different machine.
If you think there's a way to make the code better for these scenarios,
please let me know.
jrs
On Mon, Jul 24, 2017 at 11:40 AM, James Renaud<EMAIL_ADDRESS>wrote:

I solved this by retargeting my build to use an amazon standard linux
container and do the build in that instead of the Ubuntu image provided by
default.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/jselbie/stunserver/issues/22#issuecomment-317516141,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AA7ZFx7Ei4rcwvIlb33DDlzw3uKwnEnSks5sROUMgaJpZM4OhQUs
.


Add CAC migration to get access to support APIs

Summary
I added a migration for my CAC so I could utilize the support API in other environments.

Warnings

:warning:
Please add the JIRA issue key to the PR title (e.g. MB-123)

  Generated by :no_entry_sign: dangerJS against 111ce1085b7e24c7afddd0fb8cd34319d071168e


What's wrong with my syntax highlighting grammar injection?

Sorry this is not a bug. I would like to ask you for some help regarding the grammar injection syntax as I couldn't find any relevant resources.
I am following codeblock.json for a simple grammar injection in markdown.
There is a small problem with the above code - As long as there is a string superjs appear in the fenced code block, the remaining would always be rendered as superjs, which would break fenced code block syntax highlighting for other embedded languages.
```json
{
   "foo": "superjs"
}
```

I would like to fix it by following https://github.com/Microsoft/vscode/blob/master/extensions/markdown/syntaxes/markdown.tmLanguage
"fileTypes": [],
"injectionSelector": "text.html.markdown",
"patterns": [
    {
        "include": "#fenced_code_block_superjs"
    }
],
"repository": {
    "fenced_code_block_superjs": {
        "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(superjs)(\\s+[^`~]*)?$)",
        "beginCaptures": {
            "3": {
                "name": "punctuation.definition.markdown"
            },
            "5": {
                "name": "fenced_code.block.language"
            },
            "6": {
                "name": "fenced_code.block.language.attributes"
            }
        },
        "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
        "endCaptures": {
            "3": {
                "name": "punctuation.definition.markdown"
            }
        },
        "name": "markup.fenced_code.block.markdown",
        "patterns": [
            {
                "begin": "(^|\\G)(\\s*)(.*)",
                "contentName": "meta.embedded.block.superjs",
                "patterns": [
                    {
                        "include": "source.js"
                    }
                ],
                "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)"
            }
        ]
    }
},
"scopeName": "markdown.superjs.codeblock"

However it doesn't work, and I don't know how to debug it either.
The related stackoverflow post:
https://stackoverflow.com/questions/47418275/whats-wrong-with-my-syntax-highlighting-grammar-injection

nvm, it is the rule priority issue.

@colinfang how did you fix it? Facing exactly the same issue now. If your extension is public, a link to its source would help!

Found your answer here: https://stackoverflow.com/a/47502368/1818285 :tada:
The example in this repo looks outdated indeed.


Enable Periodic assessment for VM with API REST

Hello,
I find a way to enable Periodic assessment for azure VM and also change patch orchestration to "Customer Managed Schedules (Preview)" with the API REST in Powershell with this :
$subscriptionId = "mySubscription"
$resourceGroup = "myRG"
$virtualMachine = "myVM"
$apiUrl = "https://management.azure.com/subscriptions/$subscriptionId/resourceGroups/$resourceGroup/providers/Microsoft.Compute/virtualMachines/$($virtualMachine)?api-version=2023-03-01"
$body = "{
"properties": {
"osProfile": {
"windowsConfiguration": {
"provisionVMAgent": true,
"enableAutomaticUpdates": true,
"patchSettings": {
"patchMode": "AutomaticByPlatform",
"assessmentMode": "AutomaticByPlatform",
"automaticByPlatformSettings":{
"bypassPlatformSafetyChecksOnUserSchedule":true
}
}
}
}
}
}"
$response = Invoke-RestMethod -Method PATCH -Uri $apiUrl -Body $body -Headers @{Authorization = "bearer $($token.Token)" } -ContentType "application/json"
I think it could be great if you can update the documentation for other people, so they know that they can also use the API :).
ALAGARAJAH Kowsigan
Document Details
⚠ Do not edit this section. It is required for learn.microsoft.com ➟ GitHub issue linking.

ID: c5db0049-b91b-310d-e7bb-2942e6735e4a
Version Independent ID: ad024046-fd02-aecb-d142-192b36ec17f8
Content: Enable periodic assessment using policy
Content Source: articles/update-center/periodic-assessment-at-scale.md
Service: update-management-center
GitHub Login: @SnehaSudhirG
Microsoft Alias: sudhirsneha

@AKowsigan Thanks for your comment! We will review and provide an update as appropriate.

@AKowsigan My hero of the day! Thanks a lot for this github entry.
@KrishnaG-MSFT Can you please provide a documentation about this github entry?
Thanks a lot <3

Thanks for your dedication to our documentation. Unfortunately, at this time we have been unable to review your issue in a timely manner and we sincerely apologize for the delayed response. The requested updates have not been made since the creation of this issue, and the timeline for resolution may vary based on resourcing, so we've created an internal work item to incorporate your suggestions. We are closing this issue for now, but feel free to comment here as necessary. #please-close


Access to page methods within section

Now sections are threaded as elements with some other elements in it but this approach makes unable to use page methods inside sections: wait_until { login_button? } will raise NoMethodError: undefined method 'wait_until' for Watir::HTMLElement
From stackoverflow:

In the short term, you could work around the issue by calling wait_until directly against the Watir::Browser, which is returned by the page object's browser method:
browser.wait_until { login_button? }

But I think sections should be treated as PageObjects with all related methods

Hi. I have run into this issue too. Browser which was used for PageObject initialization is not available in @browser variable ( inside page section class ), but can be accessed with @browser.browser instead.
So @browser inside PageSection is actually an instance of Watir::HTMLElement. This seems like a bug that should be fixed.

Do you have code to reproduce this?

Yes. I have created minimal example that reproduces it:
page_section.zip
 $ rspec spec/test_spec.rb
page.ddg_header.browser is: #<Watir::HTMLElement: located: false; {:id=>"header_wrapper"}>
page.ddg_header.browser.browser is: #<Watir::Browser:0x..f958b67bbcb8d8eae url="https://duckduckgo.com/?q=search&ia=web" title="search at DuckDuckGo">
page.ddg_header.browser.browser.browser is: #<Watir::Browser:0x..f958b67bbcb8d8eae url="https://duckduckgo.com/?q=search&ia=web" title="search at DuckDuckGo">
.


Errors not indicated

Hello! I noticed that whenever there are errors lately, there doesn't seem to be any indicators at the end after finishing the creation of epub? Thanks!

I redid the info/error output recently and used a lot of search-and-replace to do this so there are probably a lot of mistakes like this, thanks for reporting. Having said this, I'm not quite sure what kind of errors after finishing you are referring to. The only error or reports which gets printed after the EPUB should be failed chapters.

I redid the info/error output recently and used a lot of search-and-replace to do this so there are probably a lot of mistakes like this, thanks for reporting. Having said this, I'm not quite sure what kind of errors after finishing you are referring to. The only error or reports which gets printed after the EPUB should be failed chapters.

Oh some errors I get is chapter container not found. Before it would indicate at the end that the chapter is not downloaded.

Oh some errors I get is chapter container not found. Before it would indicate at the end that the chapter is not downloaded.

Check out the new update and tell me what you think!

Check out the new update and tell me what you think!

Check out the new update and tell me what you think!

Wow, it's a really good improvement! :) We could download failed chapters without downloading from the beginning! Thank you very much!

Check out the new update and tell me what you think!

Wow, it's a really good improvement! :) We could download failed chapters without downloading from the beginning! Thank you very much!


fix(controller): don't reset expiresAt field on startup

Restarting a controller reset the expiresAt field, preventing images from expiring at the right time.

:tada: This PR is included in version 1.5.0-beta.1 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:

:tada: This PR is included in version 1.5.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


mobile: fixing explicit flow control bugs.

When deferring the error for the explicit flow control case, we didn't close the stream, which could result in attempting to send data to the weak pointer (now an ENVOY_BUG)
When deferring an error, we also never actually sent it.  Now forwarding it on unless the response is complete.
Risk Level: n/a (mobile only)
Testing: new tests
Docs Changes: n/a
Release Notes: n/a

@RyanTheOptimist this has explicit mobile LGTM so I just need envoy maintainer LGTM for the minor Envoy test framework change (though feel free to review the whole thing iff you have time)


Critical vulnerability in Wasp's use of outdated Mailgun library

Wasp's built-in use of Mailgun appears to be outdated and it introduces a critical vulnerability per NPM.
The specific dependency that is the issue is<EMAIL_ADDRESS>netmask  <=2.0.0
Severity: critical
Improper parsing of octal bytes in netmask - https://github.com/advisories/GHSA-4c7m-wxvm-r7gc
netmask npm package mishandles octal input data - https://github.com/advisories/GHSA-pch5-whg9-qr2r
No fix available
node_modules/pac-resolver/node_modules/netmask
The dependency is nested in wasp's SDK per below:
└─┬<EMAIL_ADDRESS>-> ./.wasp/out/sdk/wasp
└─┬<EMAIL_ADDRESS>└─┬<EMAIL_ADDRESS>└─┬<EMAIL_ADDRESS>└─┬<EMAIL_ADDRESS>└─┬<EMAIL_ADDRESS>└──<EMAIL_ADDRESS>ts-mailgun is not actively maintained.
The correct fix therefore seems to be updating the sdk to use the mailgun.js library which is actively maintained.

@infomiho i think this is meant for the wasp repo but thought i'd ping you here first.

Since Wasp 0.15.0, we are no longer using the ts-mailgun library for handling sending emails with Mailgun: https://github.com/wasp-lang/wasp/pull/2303


Add v0.11.0 bundle from release to OLM catalog in main

What does this PR do?
Adds the bundle for v0.11.0 to the OLM catalog and updates channel.yaml to include it as an entry.
What issues does this PR fix or reference?
Necessary manual step in release process that I had forgotten when v0.11 was released.
Is it tested? How?
N/A
PR Checklist

[ ] E2E tests pass (when PR is ready, comment /test v8-devworkspace-operator-e2e, v8-che-happy-path to trigger)

[ ] v8-devworkspace-operator-e2e: DevWorkspace e2e test
[ ] v8-che-happy-path: Happy path for verification integration with Che

/test v8-devworkspace-operator-e2e


fix: Check exporter installed before healthcheck

Fixes #190
The error happens because the service.py::check_installed function (called as a decorator for the various exporter service helper methods) would return False when the exporter isn't installed. This would cause the exception to be raised from update_status --> restart_exporter since the health check would fail.
Also fixed some typos and re-ordered the redfish credential validation check in the update status handler so that the blocked status message for it comes before the one for missing cos-agent relation.
Note: I really wanted to do
if self._stored.exporter_installed and not self.exporter.check_active():  # type: ignore[truthy-function]

but then the linter complains that the line is too long. Would appreciate any advice on having a single if condition but also ignoring that specific linter rule.

Will fix unit tests after rebasing changes from #191 once it's merged.

It doesn't seem to me that I will fix the issue.. Have you test if it can fix the issue ?
Since the validation of redfish config did not remove from install or upgrade event, there's still possibility that operator deploys the charm with incorrect credential and causing the exporter not being installed.

Good thing you brought this up. So I did check initially and the hook didn't fail for the charm and no exceptions were raised. So I thought the code was good. But upon checking once more carefully, another issue comes up. With the latest change, even after I configure the redfish creds, the status doesn't change from BlockedStatus with invalid redfish creds message. This might be because the ActiveStatus is not being reached at the end of the update status hook and it keeps looping when exporter_installed is not set. So I might have to revert that change.
^ @Pjack

This commit just cleans up the unit test names and docstrings since many of them were incorrect.

I've also added an extra check in test_install_redfish_enabled_with_incorrect_credential to make sure that the exporter is installed when when there's wrong redfish credentials.

The code and logic looks good to me .
I would like to confirm where should we validate this behavior?
1. config or credential is invalid

2. User change the configuration or provide correct credential.

3. Verify if the charm will become active state again.

Maybe in hardware-indendent functional test?

It would probably be in the hardware dependent functional tests if the redfish creds are invalid and we want to test that after the correct config is provided, the charm is in active status. Currently we only have the test to check if we're able to query the redfish metrics.
If you're talking about any hardware independent config (exporter log level, port etc.), we already have functional tests for the behavior you've mentioned. But we do need to make some changes to verify that the charm is active afterwards. Currently it just verifies if the config is correctly changed in the underlying file.
It would be good to have another refactoring PR for the functional tests as well so we can follow through on these requirements.

I'm a little bit lost with the PR title, description and the bug that points the fix.
The bug description says:

This is because the blocked status message for invalid redfish creds has been overwritten by the missing relation message while executing the update status hook.

I'm not seeing any changes in the update status hook.
What are we fixing by removing the validation of the exporter configs on the install hook?

Sorry about the confusion. We made some findings over the course the PR due to which we had to change the originally intended fix. Plus, the logic is a bit tricky to follow. I've made some changes to the PR description that hopefully clarifies your doubts. If not, feel free to respond with any questions and I'll try my best to address them.


RucioInjector  checking unnecessary conditions to create Container Rules

Impact of the bug
WMAgent
Describe the bug
It's not really a bug, but an outdated behavior. RucioInjectorPoller will create rules only for containers whose blocks have been uploaded to DBS. Apparently, this behavior was needed with PhEDExInjector, but makes no sense for Rucio as it causes an unnecessary delays in transfers.
How to reproduce it
Create a new container whose blocks are not uploaded to DBS, and define a subscription for it on the database. The subscription/rule will not be created as the status of files within the container will be bsbuffer_file.status = 'NOTUPLOAD'
Expected behavior
RucioInjector should create container rules as soon as the container subscription/rule is properly defined in the database. i.e:
dbsbuffer_dataset_subscription.subscribed = 0
dbsbuffer_dataset.path != 'bogus'
Additional context
None

Looking into GetUnsubscribedDatasets.py I see that the query also check that dbsbuffer_file.in_phedex = 1. I'm guessing this column is not meaningful anymore. If that's the case, it can also be removed.

Thanks for creating and owning this issue, German. As I said on slack, having data already injected in DBS was a pre-requirement for creating PhEDEx subscriptions, that's why that extra condition is there.
With Rucio in production, we no longer need that. In my opinion, we should only make container-level rules - from the RucioInjector - once at least one file has been injected into Rucio in_phedex=1. This also answers your second question regarding the database column, it's very much needed (it keeps track of files injected into Rucio), however at some point we will probably have to rename it.


Feature request.

Online Service to added: mega.nz
Found this awesome github repo: "https://github.com/t3rm1n4l/go-mega"
It is written in go, and all the basic functionality of rclone is already made; hope you can create a wrapper for it.

Thanks for finding that.
However there is a ticket about mega.nz already #163 so can you add your support to that please?
Thanks
Nick


No limit to the array inputs in "Multiple security rules" template

Hello,
I tried to deploy the example template at: https://raw.githubusercontent.com/Azure/azure-docs-json-samples/master/azure-resource-manager/multipleinstance/multiplesecurityrules.json
I wanted to execute it, however it keeps on asking for inputs. How do I stop it? If I press enter again to stop the array, it throws me this error.
New-AzureRmResourceGroupDeployment : 9:21:51 PM - Error: Code=InvalidTemplate; Message=Deployment template language expression evaluation failed: 'The language expression
property 'name' can't be evaluated.'. Please see https://aka.ms/arm-template-expressions for usage details.
At line:1 char:1

New-AzureRmResourceGroupDeployment -Name ExampleDeployment10 -Resourc ...

  + CategoryInfo          : NotSpecified: (:) [New-AzureRmResourceGroupDeployment], Exception
  + FullyQualifiedErrorId : Microsoft.Azure.Commands.ResourceManager.Cmdlets.Implementation.NewAzureResourceGroupDeploymentCmdlet

New-AzureRmResourceGroupDeployment : The deployment validation failed
At line:1 char:1

New-AzureRmResourceGroupDeployment -Name ExampleDeployment10 -Resourc ...

  + CategoryInfo          : CloseError: (:) [New-AzureRmResourceGroupDeployment], InvalidOperationException
  + FullyQualifiedErrorId : Microsoft.Azure.Commands.ResourceManager.Cmdlets.Implementation.NewAzureResourceGroupDeploymentCmdlet

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

ID: 7e71b5b6-0a86-b261-4fb3-e31ca6a12ec3
Version Independent ID: ab404f2d-5eb8-4e7e-fc37-ad785dcf852f
Content: Deploy multiple instances of Azure resources
Content Source: articles/azure-resource-manager/resource-group-create-multiple.md
Service: azure-resource-manager
GitHub Login: @tfitzmac
Microsoft Alias: tomfitz

@Shloeb - I am guessing this is related to the format of the parameter you are providing. You can link to to a parameter file. Here is the expected format


Memory usage analysis

before

testing...

after

seems ok, ultra-dict didnt eats memory after test done. -- i am afraid it allocates memory and did't release thus the server will oom finally.
if you have any thoughts to test it plz let me know, i want to use ultra-dict in our prod env but afraid something went wrong.

btw it is my test script:
# -*- coding: utf-8 -*-
import time
from functools import wraps
from typing import Dict, List

import pytest
from UltraDict import UltraDict

def timing(f):
    @wraps(f)
    async def wrap(*args, **kw):
        ts = int(time.time() * 1000)
        result = await f(*args, **kw)
        te = int(time.time() * 1000)
        print(f'{f.__name__} took: {te-ts} mil-sec to load {len(result.keys())}')
        return result
    return wrap

@timing
async def load_into_default_dict(input: List[List]) -> Dict:
    """load input data into default dict

    Args:
        input (List[List]): _description_

    Returns:
        Dict: dict
    """
    default_dict = {}
    for row in input:
        default_dict.update({row[0]: row[1]})
    return default_dict

@timing
async def load_into_ultra_dict(input: List[List]) -> object:
    """load input data into ultra dict

    Args:
        input (List[List]): _description_

    Returns:
        object: UltraDict
    """
    ultra_dict = UltraDict(buffer_size=len(input))
    for row in input:
        ultra_dict[row[0]] = row[1]
    return ultra_dict

@pytest.mark.asyncio
async def test_ultra_dict() -> None:
    """test ultra-dict perm and correctness
    """
    lines = []
    with open('./domain_status.txt', 'r') as file:
        for line in file:
            parts = line.strip().split('\t')
            lines.append([parts[0], int(parts[1])])

    normal_dict = await load_into_default_dict(lines)
    udict = await load_into_ultra_dict(lines)

    # compare normal dict value with ultra-dict value for key
    for key in normal_dict:
        assert normal_dict.get(key) == udict.get(key)

One hint: In the main branch, there are a few bugs regarding release of shared memory buffers in some situations. This is fixed in the dev branch.


2 grouped webaudio-switches that can both be off

Any ideas on how I can have 2 webaudio-switches that are mutually exclusive, and there is a way of turning them both OFF?  For exxample by clicking on a switch that is on, it will go off (without turning the other switch on).
I am implementing a synthesizer and there is are two lights and I need

light 1 on
light 2 on
both lights off

This code from the doco gives me mutually exclusive buttons
<webaudio-switch id="radioA" src="img/switch_toggle.png" type="radio" group="radio1" width="54" height="54" value="1" tooltip="Radio-A"></webaudio-switch>
<webaudio-switch id="radioB" src="img/switch_toggle.png" type="radio" group="radio1" width="54" height="54" tooltip="Radio-B"></webaudio-switch&bt;
<webaudio-switch id="radioC" src="img/switch_toggle.png" type="radio" group="radio1" width="54" height="54" tooltip="Radio-C"></webaudio-switch>

Radio type switch. In this mode, only one switch is activated in the group.

but I also need a mode where both switches are off.  Any ideas?
Thanks.

For now, there is no option about that.
But following code may be a help.
<webaudio-switch id="radioA" type="toggle" group="a" value="1"></webaudio-switch>
<webaudio-switch id="radioB" type="toggle" group="a"></webaudio-switch>
<webaudio-switch id="radioB" type="toggle" group="a"></webaudio-switch>

In current implementation,
type="toggle" means on/off toggle the pressed switch.
type="radio" means pressed switch is on anyway.
and the group attribute means automatic off when other switch in the group is on.
then the "toggle" and group combination will do desired operation.
this is not officially defined behavior but I think it is useful.

That works and solves my problem - thanks very much!
P.S. Thanks for making this library - its  great.


Unmatched quote character causes code to be colored as a string

Paste following line into VSCode with the extension installed
vboxmanage list vms|lines|str trim -c '"' -a|split column " " name uid

Notice everything after '"' (double quote enclosed in single quotes) is highlighted in green as if it were a string

Just noticed this. sorry. I'm open to fixes. I'm not very good at typescript.

should be fixed with #73


[Feature][UI Next] Fix a few bug with workflow manage

Purpose of the pull request
Please refer to the main issue #8070

Codecov Report

Merging #8360 (4f0c35d) into dev (b0dbc33) will decrease coverage by 0.03%.
The diff coverage is n/a.

@@             Coverage Diff              @@
##                dev    #8360      +/-   ##
============================================
- Coverage     45.34%   45.31%   -0.04%
+ Complexity     3999     3996       -3
============================================
  Files           680      680
  Lines         26456    26456
  Branches       2848     2848
============================================
- Hits          11997    11988       -9
- Misses        13326    13337      +11
+ Partials       1133     1131       -2

Impacted Files
Coverage Δ

...he/dolphinscheduler/common/enums/SqoopJobType.java
0.00% <0.00%> (-88.89%)
:arrow_down:

...inscheduler/common/task/sqoop/SqoopParameters.java
74.00% <0.00%> (-2.00%)
:arrow_down:

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 b0dbc33...4f0c35d. Read the comment docs.

PTAL @songjianet


Add relative route support

League's $router->map always rewrites the route to an absolute path. I've added that logic to the createServerRequest so relative routes can now be supported.

A real example would something like calling the routes from the app itself, since absolute routes can be troublesome.
In our project we are working with APIPlatform and need sometimes to call the apps' routes itself and these must be relative.

You are converting a relative path anyway to an absolute path.

Coming back from long time ago: The conversion of the relative to absolute is necessary, since the given path of $request->getUri() is going to be overriden by your used library of league to absolute. In order for your library to work with relative pathes, I am going to prepend a slash anyway, so it kind of doesn't matter anymore, if the URI is relative or not. In my eyes this is a bugfix.
Does this explanation makes the intention more clear?


fractional scaling causes daemon to fail to start

monitor=eDP-1,highrr,auto,1.25:
hyprswitch init

(process:45218): GLib-GIO-CRITICAL **: 21:48:38.638: g_application_set_application_id: assertion 'application_id == NULL || g_application_id_is_valid (application_id)' failed
Segmentation fault (core dumped)
[ble: exit 139]

monitor=eDP-1,highrr,auto,1:
hyprswitch init

launches successfully

That's weird, I also use fractional scaling.
What hyprland and what hyprswitch version are you running?

can you add the -vv flag to hyprswitch and send the full output

hyprswitch init -vv

Error: Failed to parse command line arguments

Caused by:
    error: unexpected argument '-v' found

    Usage: hyprswitch init [OPTIONS]

    For more information, try '--help'.

What Hyprland version are you on?

It started with Hyprland 0.43, but continued when I rolled back to 0.42.
Hyprswitch is 2.1.3-1

Both Versions affected?

Yes, I am experiencing the issue on both versions.

Can you test what happens when you start the daemon without fractional scaling and activate it afterwards

This could be a gtk issue, as hyprswitch never uses anything regarding scaling on monitors.
But I can't really help you with this

Thanks for your time. I'll update if I figure out what it is.

You could try if the 3.0.0 alpha somehow fixes the problem (it uses a newer version of the evtl bindings, but this should probably not fix it)
You can install it with cargo

@coyotepunk05 any updates, did you try any other gtk apps?
You could try to see if the gtk4-leyer-shell is the problem, eww also uses it to display its UI (where I got the idea from), so you could try to launch it and see if it also fails

It resolved itself with an update to Hyprland a couple days ago. It must have been an issue with Hyprland that was preventing it from launching. I'm not sure what specific change caused it.


Error regarding FRAGMENT TIMECODE using RTSP

Hello
When I run the gstreamer app I received these kind of errors, repeatedly (with my Mac camera it doesn't happen), but when I run this with an external camera connected thru Ethernet using RTSP protocol is when I get this error… this seems to be a frame timeset error, not sure if this has to be with the bandwith or this is some problem with the gstreamer application itself
I’ve done some research , and it’s mentioned that this fixes the problem (in green):
“
https://github.com/awslabs/amazon-kinesis-video-streams-producer-sdk-cpp/issues/185
I was able to resolve my issue by passing the width, height, and framerate:
./kinesis_video_gstreamer_sample_app test -w 640 -h 480 -f 15
“
I also tried the -w -h -f from below, but didn’t solve the problem (it’s also on the log file I’m attaching)…
8c8590c030e3:kinesis-video-native-build diegoli$ ./kinesis_video_gstreamer_sample_app LiveRekognitionVideoAnalysisBlog "rtsp://<IP_ADDRESS>:554/profile4/media.smp" -w 640 -h 480 -f 15
Here is the special part from the log from my machine
logs_13Jun_DiegoMachine.log
with the error:
./kinesis_video_gstreamer_sample_app LiveRekognitionVideoAnalysisBlog "rtsp://<IP_ADDRESS>:554/profile4/media.smp"
[DEBUG][2019-06-13 15:13:19] Curl post body write function for stream: LiveRekognitionVideoAnalysisBlog and upload handle: 0 returned: {"EventType":"RECEIVED","FragmentTimecode":0,"FragmentNumber":"91343852333182185060225948131993454139249370214"}
[DEBUG][2019-06-13 15:13:19] fragmentAckReceivedHandler invoked
[WARN ][2019-06-13 15:13:19] Reporting fragment ack received. Ack timecode 0
[DEBUG][2019-06-13 15:13:19] Wrote 16372 bytes to Kinesis Video. Upload stream handle: 0
[DEBUG][2019-06-13 15:13:19] Curl post body write function for stream: LiveRekognitionVideoAnalysisBlog and upload handle: 0 returned:{"EventType":"ERROR","FragmentTimecode":387,"FragmentNumber":"91343852333182185065177708289134975337538652475","ErrorCode":"FRAGMENT_TIMECODE_LESSER_THAN_PREVIOUS","ErrorId":4004}
Enclosed the log file.
Could you please help me?
Thanks
Diego

Can you apply this patch while in native-build directory and see if it helps? thanks
patch.txt

Hi, What is the procedure to apply this patch? Could you please send me the steps? And how to verify it was successfully applied?
Thanks!

you can navigate to the kinesis-video-native-build directory, run git apply /path/to/patch.txt, then run make. Then you can use the same command to start streaming and verify if the same error occurs or not.

@dolivera130 have you had a chance to try Felix's suggestion?

Closing this issue for now. Feel free to reopen/create new issue in the future.


[SPARK-45412][PYTHON][CONNECT][FOLLOW-UP] Remove unnecessary check

What changes were proposed in this pull request?
Remove unnecessary check
Why are the changes needed?
https://github.com/apache/spark/pull/43215 already validates the plan in __init__
Does this PR introduce any user-facing change?
no
How was this patch tested?
ci
Was this patch authored or co-authored using generative AI tooling?
no

@beliefer thanks for review, all tests passed.
would you like to have a try to merge this one?

thanks, merging to master!


Communication on IPV6

On the above comments - "After enabling a service endpoint, the source IP addresses of virtual machines in the subnet switch. The source IP addresses switch from using public IPv4 addresses to using their private IPv4 address when communicating with the service from that subnet."
The communication when enabling a service endpoint switches to IPv6 communication not the private IPv4 address. If you are allowing the traffic on a storage account firewall for example, you will see the IPv6 address blocked in the logs

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

ID: 1eb0407d-f4a5-6059-488d-fd082915c675
Version Independent ID: 7c2fb429-743c-aea0-f1d5-de6dc2e62e8e
Content: Azure virtual network service endpoints
Content Source: articles/virtual-network/virtual-network-service-endpoints-overview.md
Service: virtual-network
GitHub Login: @sumeetmittal
Microsoft Alias: sumi

@samgoudie Thanks for the question. We are investigating the issue and will update you shortly.

@samgoudie , Appreciate your patience. Service Endpoints work by encapsulating the traffic from within the VNet to the destination (Azure Storage in this case), in a proprietary IPv6 packet.
The IPv6 header in this case contains some internal information used to identify the source and authenticate with the Storage account being accessed.
This encapsulation also ensures that the traffic does not leave the Azure network and is optimally routed within our network.
This IPv6 is however internal to Azure and is an internal implementation for Service Endpoints and does not interfere with the customer's data plane traffic or access / modify the content of packets in any way.
You ware unlikely to see the IP family switching from the portal either, but likely see it in any packet captures on the network.
We are closing this issue for now. If there are further questions regarding this matter, please reply and we will gladly continue the discussion.


Upgrade to cylc 6.10.2 and rose 2015.06.1

resolution_fixed   |    by<EMAIL_ADDRESS>
With vn10.5 rose stem requires rose 2015.06.0 (https://code.metoffice.gov.uk/trac/um/ticket/1876).
Upgrade to cylc 6.10.2 and rose 2015.06.1

Issue migrated from trac:281 at 2024-01-31 18:25:16 +1100

<EMAIL_ADDRESS>changed _comment0 which not transferred by tractive

<EMAIL_ADDRESS>set owner to mrd599

<EMAIL_ADDRESS>commented

Testing on accessdev-test shows no problems.
rose stem --group=nightly

runs correctly with the current trunk (fcm extract fails with rose 2015.05.0).

<EMAIL_ADDRESS>set resolution to fixed

<EMAIL_ADDRESS>commented

Rose bush behaved erratically after the upgrade but fixed with apache restart. For some reason this didn't happen on accessdev-test.

<EMAIL_ADDRESS>changed status from assigned to closed


Postgres error on db:migrate

Edge RefineryCMS, Rails 3.1.3

NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index "refinery_roles_pkey" for table "refinery_roles"
-> 0.0515s
rake aborted!
An error has occurred, this and all later migrations canceled:

PGError: ERROR:  current transaction is aborted, commands ignored until end of transaction block
:             SELECT COUNT(*)
FROM pg_tables
WHERE tablename = $1
AND schemaname = ANY (current_schemas(false))

Can you say what you ran to get this please?

As in, the steps before bundle exec rake db:migrate

Steps how described in this guide:
http://refinerycms.com/guides/attaching-refinery-cms-to-an-existing-rails-application
Except these commands were used for generating and migrations copying (as described in Google Group):
rails g refinery:cms
rake railties:install:migrations

That guide is for Refinery CMS 1.0.x. To use edge add
gem 'refinerycms', :git => 'git://github.com/resolve/refinerycms.git'

to your Gemfile, bundle install, rails g refinery:cms, rake railties:install:migrations and then try rake db:migarte (it worked for me using PG).

Yes, exactly these steps I made as you described. And gem was added with :git

I can't reproduce and Travis-CI tests pass on postgresql so please reopen this issue if you can make a clean test application that reproduces this bug and upload it to github :-) Thanks!


Change query for globalusage from filename to picture id

Names with underscore _ create problems.

This query for user "Rodhullandemu" fails. Possibly because of filenames

Closed in https://github.com/rene78/PopComPics/commit/9cc8177ab2a867ce456ba39538eeae3e23a3b8df


Break operand-result ties for constant operands

We won't create such ties deliberately, but they can come from
multiple rounds of canonicalization. For example, if we have
linalg.fill to prepare the initial result tensor for subtensor_insert,
the linalg.fill may be folded into a constant. Then the
subtensor_insert op will have a tie between the initial
output tensor and its resultant tensor.
In IREE, operand-result tying indicates that we can use the same
buffer. This is unlikely to happen if the operand is constant,
though: constants are typically collected into a dense buffer
that is read only. So having such kind of ties can mess up buffer
allocation in later stages: we will try to reuse the buffer for
the constant in a read-write fashion, which is incorrect. This
becomes a problem with constant pooling after
https://github.com/google/iree/commit/4f86152fda78b7afd2351d4af5b2c85b73805dcf.
Along the way, fixed two other indexing issues related to operand-
result ties.

(#5492 is the issue I'm using to track the DFA work, and #5472 is blocked on the same(ish) copy-on-write requiring behavior)

https://github.com/google/iree/pull/6174 superseded this.


can not get good result when training from Scratch

Thanks for your great work. I use https://github.com/ubisoft/ubisoft-laforge-animation-dataset to train from sractch.
the reading bvh data code is referred by
from fairmotion.data import bvh

motion = bvh.load(BVH_FILENAME)

positions = motion.positions(local=False)  # (frames, joints, 3)
velocities = positions[1:] - positions[:-1]
orientations = motion.rotations(local=False)[..., :, :2].reshape(-1, 22, _6)

I only adjust 22 to 21 because new. dataset has 21 joint.
here is my last epoch logger
237m 45s (-   0m 00s) (140 100.0%) | Recon: 1.618e-02 | KL: 2.287e-07 | PP: 0.000e+00;
And then, I play it by gym with your code in random work mode. the result is not normal, can you give me some advices.

https://user-images.githubusercontent.com/30514838/168982267-bbcdaa5f-4c60-4962-b1a2-c0d118967742.mp4

Hi, I am also doing the same thing like you. But I am still struggling with the mocap.npz : 0-3 : root delta x, delta y, delta facing. How do u get these data?

@renrenzsbbb  Thanks for taking interest in our work.  For the dataset you are using, you will need to do some hyperparameter tuning.  The recon loss should be on the order of 1e-3 or 1e-4, and the KL loss should be roughly on the same scale.  You could try tuning the beta of the VAE.


coverage fails with 'yul if statement had no body'

Component
Forge
Have you ensured that all of these are up to date?

[X] Foundry
[X] Foundryup

What version of Foundry are you on?
forge 0.2.0 (9b2d95d 2022-06-23T00:22:22.617534Z)
What command(s) is the bug in?
forge coverage
Operating System
macOS (Apple Silicon)
Describe the bug
First, so glad to see coverage shipped, thanks @onbjerg!
This is possibly related to #1968, but I'm opening a fresh issue to keep things clean. Below I will discuss the issue in the context of the Optimism monorepo, but I've also created a minimal repro example here.
Issue:
When I run forge coverage in this dir of our repo, it fails with yul if statement had no body.
I searched through all of the assembly block in solidity code within that directory, and could only find one instance of a yul if statement, which does look like it has a body.
What's odd is that I was unable to get past the issue by rewriting it as a switch/case statement (which did work OK in the minimal repro I linked above). So perhaps the issue is in a dependency (I will go check now).

Interesting, I'll take a look. Perhaps the AST for YulIf is read wrong. Will just note here (as I've done for other coverage issues) that coverage is not dependable right now since there are a lot of edge cases and some missing features :) Thanks for taking it for a spin

Ok I figured it out - essentially I had moved the body data from one part of the underlying data structure to another part. The original place where it was residing was not super strongly typed so I had no idea :smile: Will submit a fix shortly

Will just note here (as I've done for other coverage issues) that coverage is not dependable right now since there are a lot of edge cases and some missing features :) Thanks for taking it for a spin

Certainly! We're excited about this feature, and very happy to help improve it. Thanks for the quick response! :)


Move to toArray when saving/updating.

Move to toArray when saving/updating.

Not available for queries.


Issue with lowercase content-disposition in multipart form

Issue Info
Platform Name - flutter
Platform version - 1.12.13+hotfix.9
Dio Version - 3.0.9
Issue Description and Steps
I have a form multipart request that fails in the server with a 400 (Unable to get name from form-data). I've found the root cause:
The body contains the parts separated by 'boundaries':

----dio-boundary-1767347126
content-disposition: form-data; name="message"
The message
----dio-boundary-1767347126
content-disposition: form-data; name="callback"
false
----dio-boundary-1767347126--

Probably related to issue 641, the 'content-disposition' tags are sent in lowercase.
Inspecting this request with CharlesProxy and changing content-disposition to Content-Disposition results in the server returning a 200 as expected.
So the body should be:

----dio-boundary-1767347126
Content-Disposition: form-data; name="message"
The message
----dio-boundary-1767347126
Content-Disposition: form-data; name="preferCallBack"
false
----dio-boundary-1767347126--

The Mulesoft backend I'm working with expects 'Content-Disposition' to extract the fields:
https://help.mulesoft.com/s/article/Attachments-being-lost-in-a-Multipart-Mixed

Possible duplicate of https://github.com/flutterchina/dio/issues/641

Possible duplicate of https://github.com/flutterchina/dio/issues/641

Still an issue, please check the linked PR for a fix.

I got the same problem, is there a solution?

Still an issue, please check the linked PR for a fix.

I got the same problem, is there a solution?

I got the same problem, is there a solution?


nonnegative check for harmonic mean and small variable/string fixes

Description
Harmonic mean should always have positive entry so added error if it doesn't. If there's a better way to check based on the current code structure let me know. Also, small variable/string fixes.
Type of change

[ ] New feature (backwards compatible)
[ ] New feature (breaking API changes)
[ ] Bug fix
[x] Other (Documentation, CI, ...)

Contribution checklist

[ ] Add our license to new files.
[x] Check that your code adheres to our coding style.
[ ] Write unittests.
[x] Run the unittests and check that they’re passing.
[x] Run the benchmarks to make sure your change doesn’t introduce a regression.

 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.Xhuliano Brace seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.

Thanks! Atoms that require non-negative inputs still work with expressions of unknown sign. They just impose the constraint that their input is >= 0. So I'm not sure the approach here is what we want.

Closing for now, will re-vist when I have time


Silence pathfinder.jl in tests

We have near silent tests apart from the info statements in our pathfinder wrappers. It would be nice to silence these to make the test output easier to read. From a skim it seems like using Logging.jl might be the way to do this.

Or Suppressor.jl?

Yeah I looked at that and it looked like a good option. I assumed that the base option was the way to go but not totally clear on the +/-s

Yeah I looked at that and it looked like a good option. I assumed that the base option was the way to go but not totally clear on the +/-s

I think the only negative of Suppressor.jl is that its an extra dep; it does exactly what we want: silence some warnings in test that we otherwise want in general usage. I'm sure there is a why of intercepting log messages and downgrading them in tests, but Suppressor is pretty light weight and easy to use.
Personally, I think its worth having as a dep for the Test env.


Can I use TaskingAI to provide an already created Assistant to others in the form of a webpage?

I would like to generate a separate interface, like the chatGPT interface, for an Assistant's Playground to be used by others for testing. How can I do this, and do the developers have plans to accommodate this feature?
I would be very appreciated if you can help me out, TaskingAI is indeed a great tool to create LLM apps.     Thanks!

Thanks for the suggestion Hapluckyy. Currently, after a user finished configuring an assistant, the assistant can be accessed outside TaskingAI with the following two methods: through the Python SDK or through the REST API. At the moment, we do not support to share your assistant directly with a link as GPTs do. That's because we see ourselves as a developer tool, and we prioritized the features that really facilitates developers' works.
But your suggestion is great, as this will help users to share their cases and may inspire each other. We will implement this, but with relatively lower priority. Please keep an eye on our cloud platform for updates.
BTW, could you tell me the motivation or scenario of why you need this feature. This will help us better understand user needs. Thanks.

The "Retrieval" created by TaskingAI indeed offers a high level of programmability, allowing developers like us to incorporate many of our own ideas and integrate various RAG algorithms. We greatly appreciate the work done by the TaskingAI team.
However, after creating the LLM app, I currently require a visual interface to provide to others for testing and feedback, in order to evaluate the quality of "Assistants" 's outputs and make improvements to my app. The current mainstream LLM UI interfaces are still based on the OpenAI API. Here is an example that I am currently using:
https://github.com/ChatGPTNextWeb/ChatGPT-Next-Web
Following the creation of "Assistants" using "Retrieval", there have been several challenges in integrating the UI interface due to the difference in API formats between TaskingAI-API and OpenAI-API.
If TaskingAI Team can provide a dedicated user testing interface directly through TaskingAI's management interface, which can be accessed via a separate URL, or alternatively, offer an API endpoint in the OpenAI-API format to invoke Assistant, either of these solutions would help me address the current challenges I'm facing.
I'm also very excited about accessing LLM apps designed by other developers and showcasing my own designed LLM app to promote the TaskingAI tool. TaskingAI is indeed a great project that offers a high degree of programming freedom, making it easy to bring my ideas to life.

By the way, can I offer you guys a cup of coffee?  Are there any ways to express my gratitude?  TaskingAI is indeed a Great Work!

A management feature currently undergoing is to invite people to your space and projects. Invited users can access and test your assistants. There will also be permission management for different roles. I think this feature will also meet your requirement?
A great THANK YOU for the kind words! Your recognition is already a great motivation for us. We will launch paid plans for our cloud platforms soon. You may select a paid plan or stick with the free plan based on your needs. Please stay tuned.


No such file or directory: './data/datafiles/esc_train_data_1.json'

Hi Yuan,
I downloaded the model and try to test it with the esc50 data. I tried to run run_esc.sh, but got error for no such file. I download the master.zip, unzip and put it in ./data/ESC-50-master/. I check the run and prep scripts and havn't found any code that makes the directory or download files for ./data/datafiles/
Is it a file or data I suppose to download or the file is auomatically generated?
Ningkun

Hi Ningkun,
Maybe I forgot to create an empty directory ./data/datafiles/ , but in here the code does automatically generate json files.
Could you manually create an empty directory ./data/datafiles/ and re-run prep_esc50.py? Please let me know if this solves the problem. Thanks!
-Yuan

Hi Yuan,
Thanks for the quick reply.
I manually created the ./data/datafile/ directory and the script is working without no such file error

Great to know and thanks for reporting this issue, I have fixed the bug in prep_esc50.py.
-Yuan


Canvas Panel method makeChoice is not defined on load

The makeChoice method appears to be defined asynchronously on canvas panels, and it's not clear how await it.
The issue seems to be worse in Firefox, but have also seen it on Chrome and Safari.
See codepen: https://codepen.io/hbalenda/pen/ZEoZPjN

There is a choice event that you can listen to, that will be fired when there are available choices.
cp.addEventListener('choice', (ev) => {
  isMakeChoiceLoaded();
});

The event passed in has a ev.detail property with the following shape:
interface SingleChoice {
    type: 'single-choice';
    label?: InternationalString;
    items: Array<{
        id: string;
        label?: InternationalString;
        selected?: true;
    }>;
}


Support JSDoc @augments tag

Fixes #12428
cc @mhegazy  @billti

you will need to port this to release-2.1


Fix typo mistake: achievements

closes #ISSUE-NO
What does this PR do?
Fix typo mistake only
Description of Task to be completed?
How can this be manually tested?
Any background context you want to provide?
What is the relevant issue link?
Screenshots (if appropriate)
Questions:

Thank you @longqua69 for your contribution 👍


What is the right way to theme this dark?

Nice software. Curious what the proper way to theme it is.

the proper way would be to strip the custom theme and let the system do it


Cargo.lock: update the latest version of pprof-rs

Signed-off-by: Lonng<EMAIL_ADDRESS>
What have you changed?
The pprof-rs contains BUG and update to the latest version contained BUG fix.
What is the type of the changes?

/merge

/test

/test

/run-cherry-picker


Typo "Azure data factory"→"Azure Data Factory"

https://docs.microsoft.com/en-us/azure/data-factory/tutorial-incremental-copy-lastmodified-copy-data-tool

@hyoshioka0128 : Thanks for your contribution! The author(s) have been notified to review your proposed change.

@hyoshioka0128 : Thanks for your contribution! The author(s) have been notified to review your proposed change.

The original is correct because the string refers to an instance of Azure Data Factory. For the Azure service Azure Data Factory, capitalize "Data Factory" only when referring to the Azure service name. Thanks! We'll close this pull request.

The original is correct because the string refers to an instance of Azure Data Factory. For the Azure service Azure Data Factory, capitalize "Data Factory" only when referring to the Azure service name. Thanks! We'll close this pull request.


GH-3011: Support enforced consumer rebalance

Fixes: #3011
Kafka consumer API supports an enforced rebalance. Provide an option via the message listener container to trigger this operation.

...and cherry-picked to 3.1.x as https://github.com/spring-projects/spring-kafka/commit/e518f1ace98446dd71e220e086a62f7cf8eaae36 after minor conflict resolution.


Sticky buttons

The styled edge-ml buttons are stuck in their "selected" state after clicking on them.

This is appprently a feature of bootstrap: https://github.com/twbs/bootstrap/issues/12364
I've changed the style to make it look less like an eyesore, but the button that has the focus is still distinguishable (5% brightness difference only).
with focus:

without:


CharSeq method list

[x] subSeq
[x] length
[x] isEmpty
[x] capitalize
[x] toUpperCase
[x] toLowerCase
[x] split
[x] reverse
[x] swapcase
[x] forEachChar
[x] forEachCharWithIndex
[x] forEachByte
[x] forEachByteWithIndex
[x] eachCodePoint
[x] forEachLine
[x] forEachLineWithIndex
[x] startsWith
[x] endsWith
[x] replaceAll
[x] replaceFirst
[x] lines
[x] trim
[x] matches
[x] partition
[x] rpartition
[x] charAt
[x] scan
[x] compareTo
[x] compareToIgnoreCase
[x] characterSequence
[x] byteSequence
[x] of
[x] prepend
[x] concat

All complete. Once we find new methods to fill, we make other issues.


view module,One month per page, vertical scrolling, adaptive height.

Library information:

Version: last
View

Question:
One month per page, vertical scrolling, adaptive height.

In View module,When I set the height to 'wrap_content,' orientation to 'vertical,' and scrollPaged to 'true,' the height occupies the entire page. I only want the height to fit exactly one month

We have a similar setup in the Example1Fragment in the sample app and it works as expected

We have a similar setup in the Example1Fragment in the sample app and it works as expected

Thanks for your reply.
No,it's different,vertical orientation,it's height will fill the page,i just wanna show one month on view

I was able to achieve this using Example1Fragment with a little bit of work. I have changed the calendar background color to show the content wrapping behavior:
Result:
https://github.com/kizitonwose/Calendar/assets/15170090/4f88a545-f65b-42c4-a85a-49c29d2520f6
XML:
    <com.kizitonwose.calendar.view.CalendarView
        android:id="@+id/exOneCalendar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/example_3_blue"
        app:cv_orientation="vertical"
        app:cv_daySize="square"
        app:cv_scrollPaged="true"
        app:cv_dayViewResource="@layout/example_1_calendar_day" />

Code:
exOneCalendar.monthScrollListener = {
    val weekHeight = exOneCalendar.width / 7
    // If OutDateStyle is EndOfGrid, you could simply multiply weekHeight by 6.
    val visibleMonthHeight = weekHeight *
        exOneCalendar.findFirstVisibleMonth()?.weekDays.orEmpty().count()
    // Animate calendar height changes.
    val animator = ValueAnimator.ofInt(exOneCalendar.height, visibleMonthHeight)
    animator.addUpdateListener { anim ->
        exOneCalendar.updateLayoutParams {
            height = anim.animatedValue as Int
        }
        // A bug is causing the month calendar to not redraw its children
        // with the updated height during animation, this is a workaround.
        exOneCalendar.children.forEach { child ->
            child.requestLayout()
        }
    }
    animator.duration = 100
    animator.start()
}

I was able to achieve this using Example1Fragment with a little bit of work. I have changed the calendar background color to show the content wrapping behavior:
Result:
rec.mp4
XML:
    <com.kizitonwose.calendar.view.CalendarView
        android:id="@+id/exOneCalendar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/example_3_blue"
        app:cv_orientation="vertical"
        app:cv_daySize="square"
        app:cv_scrollPaged="true"
        app:cv_dayViewResource="@layout/example_1_calendar_day" />

Code:
exOneCalendar.monthScrollListener = {
    val weekHeight = exOneCalendar.width / 7
    // If OutDateStyle is EndOfGrid, you could simply multiply weekHeight by 6.
    val visibleMonthHeight = weekHeight *
        exOneCalendar.findFirstVisibleMonth()?.weekDays.orEmpty().count()
    // Animate calendar height changes.
    val animator = ValueAnimator.ofInt(exOneCalendar.height, visibleMonthHeight)
    animator.addUpdateListener { anim ->
        exOneCalendar.updateLayoutParams {
            height = anim.animatedValue as Int
        }
        // A bug is causing the month calendar to not redraw its children
        // with the updated height during animation, this is a workaround.
        exOneCalendar.children.forEach { child ->
            child.requestLayout()
        }
    }
    animator.duration = 100
    animator.start()
}

Thank you very much for your patient assistance. in your demo, I successfully adapted height.Although there are still some issues in my app, at least your code is functional

when I set calendarView's height to wrap_content in NestedScrollView, it doesn't work (crash)

Could you please send me the XML to reproduce this using Example1Fragment?

Could you please send me the XML to reproduce this using Example1Fragment?

<com.google.android.material.appbar.AppBarLayout
    android:id="@+id/exOneAppBarLayout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@color/example_1_bg_light"
<EMAIL_ADDRESS>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:padding="14dp">

        <TextView
            android:id="@+id/exOneYearText"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textColor="@color/example_1_white_light"
            android:textSize="24sp"
            tools:text="2019" />

        <TextView
            android:id="@+id/exOneMonthText"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:singleLine="true"
            android:fontFamily="sans-serif-light"
            android:textColor="@color/example_1_white"
            android:textSize="32sp"
            android:ellipsize="marquee"
            tools:text="April" />

    </LinearLayout>

    <include
        android:id="@+id/legendLayout"
        layout="@layout/calendar_day_legend_container"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:layout_marginBottom="10dp" />

</com.google.android.material.appbar.AppBarLayout>

<androidx.core.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="match_parent">

    <com.kizitonwose.calendar.view.CalendarView
        android:id="@+id/exOneCalendar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:cv_orientation="vertical"
        app:cv_daySize="square"
        app:cv_scrollPaged="true"
        app:cv_dayViewResource="@layout/example_1_calendar_day" />

    <com.kizitonwose.calendar.view.WeekCalendarView
        android:id="@+id/exOneWeekCalendar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:cv_dayViewResource="@layout/example_1_calendar_day" />

    <CheckBox
        android:id="@+id/weekModeCheckBox"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom|center_horizontal"
        android:layout_marginBottom="20dp"
        android:buttonTint="@color/example_1_white"
        android:padding="2dp"
        android:text="@string/week_mode"
        android:textColor="@color/example_1_white"
        android:textSize="18sp" />

</FrameLayout>

</androidx.core.widget.NestedScrollView>

it didn't crash in fragment1,but App lag when navigate to fragment1,and crash in my app

I guess,Because the RecyclerView has a 'wrap_content' height and is wrapped inside a NestedScrollView, it leads to an unlimited increase in its height during the initial load, resulting in an OutOfMemoryError. It doesn't crash immediately.

I guess,Because the RecyclerView has a 'wrap_content' height and is wrapped inside a NestedScrollView, it leads to an unlimited increase in its height during the initial load, resulting in an OutOfMemoryError. It doesn't crash immediately.

Perhaps your demo has a relatively small memory footprint,so it didn't crash

Does this also happen if you set a fixed height on the CalendarView in XML?

Reference in
yes,fixed height is ok

As the height will be calculated dynamically using the logic discussed here, maybe it is okay to use a fixed height in XML?

As the height will be calculated dynamically using the logic discussed here, maybe it is okay to use a fixed height in XML?

ok,thanks : )


Changing GridContainer's columns variable, resets the scaling of all its children

Godot version
4.1 stable
System information
Artix (tl;dr: Arch Linux) - Vulkan
Issue description
I try to scale down the gridContainer children, and at the same time change GridContainer's columns to accomodate the change, visually (more columns can fit in the same space with smaller items)
Scaling prevents columns changing, and vice versa.
See MRP.

As for my use-case, I basically want to zoom out/in cards in a grid container, I don't think that's rare for a game - to scale up/down items in a grid container.
Steps to reproduce
Create a GridContainer with many control node children In the same frame, try to scale down those control nodes, then change the columns variable of GridContainer. The columns variable remains true but the scale of the control nodes is reverted! If you don't change the column variable, the scale down is preserved.
Minimal reproduction project
Press Enter to test ("ui_accept")
Note that scale should be halved, yet it is not. Columns are changed ofc.
Now, open CardsPanel.gd and comment out either line 22 or 43.
Run again, press Enter. Scale is halved, but ofc no columns change (since they are commented out)
grid-container-bug-MRP.zip

You can't change position, size, or scale of children within a container. Container fully controls and resets those properties. The moment that you make the container update anything about itself, you see this happening. This is not a bug, it's just what containers are designed to do.

You can't change position, size, rotation, or scale of children within a container. Container fully controls and resets those properties. The moment that you make the container update anything about itself, you see this happening. This is not a bug, it's just what containers are designed to do.

@YuriSizov I can change the scale of gridcontainer's children just fine though. The bug is when on the same frame I change the columns variable.

@TheYellowArchitect Yes, you can change them, but you shouldn't do that. There is no way to prevent you from doing it. Both public API and internal API use the same methods. When containers override these properties, they call the same setters. That is, however, expected and documented, and the entire point of containers. There is no bug.

Even when the gridcontainer's size changes (viewport change signal trigger), the gridcontainer items' scales are not reset.

Every container does it whenever they need to update they layout of their children, see fit_child_in_rect. It's called, resetting rotation and scale, and overriding the rect, when the size of the node changes too. I'm not sure what you mean by "viewport change signal".

That said, how would you solve my use-case

As always, if you need to animate children of containers the recommended way is to use an intermediate control that takes the exact amount of space your item would normally take.
You can also write a custom container.

Alright, thank you for the answer, I will look into both of these solutions.

I wish I knew how, there is no tutorial anywhere for this, and I assume I have to touch C++ to get something worthy. I will try the other 2 solutions first

You don't need to touch C++. It's a fully supported part of the scripting. It's briefly mentioned here. Basically what you need to do is to extend Container and then handle the NOTIFICATION_SORT_CHILDREN notification. Use the aforementioned fit_child_in_rect to update children.
Implement _get_minimum_size too if you need custom logic for determining container's own minimum size (say, children contribute to it, like in BoxContainer). If you need to handle size flags with your container, make sure to implement _get_allowed_size_flags_horizontal/vertical too.
Here's an example of a custom container: https://github.com/GDQuest/learn-gdscript/blob/main/ui/components/Revealer.gd

Thanks. I figured out how to make custom container and got it mostly working, so with 1 more hour of work I would finish it. But the father's ScrollContainer scroll bar doesn't show anywhere nor can I scroll, so I will pause this for now and try the original 2 solutions you mentioned.


Look at the platform to decide how to choose API

Details

The shouldUseStaging variable will be false by default and in production App user does not have access to the toggle hence they cannot switch Prod app to use Staging API.
In case of Android and iOS, the Config file is not accessible in staging build (we use production env during building), therefore we need to rely only on the staging toggle in this case and that is why we add this platform specific check.
Fixed Issues

$ https://github.com/Expensify/App/issues/11561
Tests

I have tested locally by building the app in simulator with env.staging and also with the .env.production. Then I used the toggle in settings (for staging) and confirmed the API went to staging servers

Internal tests

Copy the contents from the .env.production to your .env file

Run the iOS and Android app and it should show as Staging

Make sure the toggle for staging api is turned on

Performs some actions in the app

Go to logs and search for the most recent actions by this account

Make sure the servers these request hit are staging servers

Go back to the settings and switch to production API

Repeat and confirm in the logs the request are hitting the production servers

Run the app in dektop with staging env

Confirm the correct servers are hit based on the toggle value

[x] Verify that no errors appear in the JS console

Offline tests

No offline tests required
QA Steps

[ ] Verify that no errors appear in the JS console

Open the iOS and Android staging app

Make sure the toggle for staging api is turned on

Performs some actions in the app

Go to logs and search for the most recent actions by this account

Make sure the servers these request hit are staging servers

Go back to the settings and switch to production API

Repeat and confirm in the logs the request are hitting the production servers

Run the staging web

By checkling the logs, confirm the correct servers are being hit based on what stage the toggle is at

PR Author Checklist

[x] I linked the correct issue in the ### Fixed Issues section above

[x] I wrote clear testing steps that cover the changes made in this PR

[x] I added steps for local testing in the Tests section
[x] I added steps for the expected offline behavior in the Offline steps section
[x] I added steps for Staging and/or Production testing in the QA steps section
[x] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[x] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[x] I included screenshots or videos for tests on all platforms

[x] I ran the tests on all platforms & verified they passed on:

[x] iOS / native
[x] Android / native
[x] iOS / Safari
[x] Android / Chrome
[x] MacOS / Chrome
[x] MacOS / Desktop

[x] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)

[x] I followed proper code patterns (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product was added in all src/languages/* files
[x] I verified any copy / text that was added to the app is correct English and approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers

[x] I followed the guidelines as stated in the Review Guidelines

[x] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)

[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)

[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such

[x] I verified that if a function's arguments changed that all usages have also been updated correctly

[x] If a new component is created I verified that:

[x] A similar component doesn't exist in the codebase
[x] All props are defined accurately and each prop has a /** comment above it */
[x] The file is named correctly
[x] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[x] The only data being stored in the state is data necessary for rendering and nothing else
[x] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[x] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[x] All JSX used for rendering exists in the render method
[x] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG)

[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)

[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.

[x] I have checked off every checkbox in the PR author checklist, including those that don't apply to this PR.

PR Reviewer Checklist
The reviewer will copy/paste it into a new comment and complete it after the author checklist is completed

[ ] I have verified the author checklist is complete (all boxes are checked off).
[ ] I verified the correct issue is linked in the ### Fixed Issues section above
[ ] I verified testing steps are clear and they cover the changes made in this PR

[ ] I verified the steps for local testing are in the Tests section
[ ] I verified the steps for expected offline behavior are in the Offline steps section
[ ] I verified the steps for Staging and/or Production testing are in the QA steps section
[ ] I verified the steps cover any possible failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[ ] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[ ] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[ ] I checked that screenshots or videos are included for tests on all platforms
[ ] I included screenshots or videos for tests on all platforms
[ ] I verified tests pass on all platforms & I tested again on:

[ ] iOS / native
[ ] Android / native
[ ] iOS / Safari
[ ] Android / Chrome
[ ] MacOS / Chrome
[ ] MacOS / Desktop

[ ] If there are any errors in the console that are unrelated to this PR, I either fixed them (preferred) or linked to where I reported them in Slack
[ ] I verified proper code patterns were followed (see Reviewing the code)

[ ] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick).
[ ] I verified that comments were added to code that is not self explanatory
[ ] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[ ] I verified any copy / text shown in the product was added in all src/languages/* files
[ ] I verified any copy / text that was added to the app is correct English and approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[ ] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[ ] I verified the JSDocs style guidelines (in STYLE.md) were followed

[ ] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[ ] I verified that this PR follows the guidelines as stated in the Review Guidelines
[ ] I verified other components that can be impacted by these changes have been tested, and I retested again (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar have been tested & I retested again)
[ ] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[ ] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[ ] I verified that if a function's arguments changed that all usages have also been updated correctly
[ ] If a new component is created I verified that:

[ ] A similar component doesn't exist in the codebase
[ ] All props are defined accurately and each prop has a /** comment above it */
[ ] The file is named correctly
[ ] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[ ] The only data being stored in the state is data necessary for rendering and nothing else
[ ] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[ ] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[ ] All JSX used for rendering exists in the render method
[ ] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[ ] If a new CSS style is added I verified that:

[ ] A similar style doesn't already exist
[ ] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG)

[ ] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[ ] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[ ] I have checked off every checkbox in the PR reviewer checklist, including those that don't apply to this PR.

Screenshots

Web

Cannot build web locally pointing to Staging, done in Desktop and worked fine. See below.
Mobile Web - Chrome

Mobile Web - Safari

Desktop

Desktop Staging, you can see the time and the logs at the same time on the staging servers

Switching to production the logs confirm we are hitting production

iOS

Android

Desktop Staging, you can see the time and the logs at the same time on the staging servers

Switching to production the logs confirm we are hitting production

@roryabraham @AndrewGable @MariaHCD I have confirmed locally this works as expected. If you could give it a test as well that would be great. Thank you!

Testing this now.

Localhost is giving CORS errors on web.

Localhost is giving CORS errors on the web. I think that is fine.

Yes that is expected, staging env should work in desktop though.
@parasharrajat how do you normally test the web when you have App PRs which need to point to staging?

I use the desktop build to verify.

Running tests in a few minutes.

Android
https://user-images.githubusercontent.com/24370807/203456293-a3ef21c9-7347-4e76-b92f-86b4a3a40203.mp4
iOS
https://user-images.githubusercontent.com/24370807/203457818-1c036798-d704-4b41-ae27-5e678e2488bd.mp4
Desktop | Web
https://user-images.githubusercontent.com/24370807/203460792-a895541b-5b14-43bf-81be-58696e159239.mp4
https://user-images.githubusercontent.com/24370807/203460797-14ce2695-484f-46a6-aeab-b7e5349cd6ac.mp4

@parasharrajat Thanks for the testing! Updated and fixed.

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.

I think this PR is causing issues. Requests made on dev seem to be going straight to staging. When I try to log in with a dev account the request fails (and goes to staging). Using a staging account works fine.
https://user-images.githubusercontent.com/22219519/203850369-ce2aff96-8551-4bb4-a0e1-3656905540c6.mov

Yep, confirmed that reverting this PR resolves the issue. I think the problem is that for native we rely on the value of stagingServerToggleState alone and we default it to true here, but we don't have this key available until after we sign in and have turned the Use staging server switch on/off

I'm gonna revert this now since it's preventing us from investigating other deploy blockers.

Aha, I missed that.

Understandably so since you can't access the dev API.

Sorry for not catching this after one of the refactors, a new PR is here https://github.com/Expensify/App/pull/13029 still WIP though

This was reverted no need for QA

🚀 Deployed to staging by @luacmartins in version: 1.2.32-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by @luacmartins in version: 1.2.32-2 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
failure ❌

🕸 web 🕸
success ✅

🚀 Deployed to production by @luacmartins in version: 1.2.32-2 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅


Fatal Exception: java.lang.NoSuchMethodError: no non-static method "Lcom/facebook/react/turbomodule/core/CallInvokerHolderImpl

Description
App works fine in development, but crashes in Android (production), see below for crashlytics stacktrace:
React Native version:
System:
    OS: macOS 11.2.3
    CPU: (8) x64 Intel(R) Core(TM) i5-1038NG7 CPU @ 2.00GHz
    Memory: 400.78 MB / 16.00 GB
    Shell: 5.8 - /bin/zsh
  Binaries:
    Node: 15.11.0 - /usr/local/bin/node
    Yarn: 1.22.10 - /usr/local/bin/yarn
    npm: 7.6.0 - /usr/local/bin/npm
    Watchman: Not Found
  Managers:
    CocoaPods: 1.10.1 - /Users/anand/.gem/ruby/2.6.0/bin/pod
  SDKs:
    iOS SDK:
      Platforms: iOS 14.4, DriverKit 20.2, macOS 11.1, tvOS 14.3, watchOS 7.2
    Android SDK:
      API Levels: 29, 30
      Build Tools: 29.0.2, 30.0.3
      System Images: android-30 | Google APIs Intel x86 Atom
      Android NDK: 23.0.7196353-beta2
  IDEs:
    Android Studio: 4.1 AI-201.87<IP_ADDRESS>42882
    Xcode: 12.4/12D4e - /usr/bin/xcodebuild
  Languages:
    Java: 11.0.10 - /usr/bin/javac
  npmPackages:
    @react-native-community/cli: Not Found
    react: 17.0.1 => 17.0.1
    react-native: 0.64.0 => 0.64.0
    react-native-macos: Not Found
  npmGlobalPackages:
    *react-native*: Not Found

Steps To Reproduce
Provide a detailed list of steps that reproduce the issue.

Build app for production
Release in Google play store
Open the app after installing from play store

Expected Results
App should work without crashing
Snack, code example, screenshot, or link to a repository:
Fatal Exception: java.lang.NoSuchMethodError: no non-static method "Lcom/facebook/react/turbomodule/core/CallInvokerHolderImpl;.<init>(Lcom/facebook/jni/HybridData;)V"
       at com.facebook.react.bridge.CatalystInstanceImpl.getJSCallInvokerHolder(CatalystInstanceImpl.java)
       at com.facebook.react.bridge.CatalystInstanceImpl.getJSCallInvokerHolder(CatalystInstanceImpl.java)
       at com.swmansion.reanimated.NativeProxy.<init>(NativeProxy.java:7)
       at com.swmansion.reanimated.NodesManager.initWithContext(NodesManager.java:2)
       at com.swmansion.reanimated.ReanimatedJSIModulePackage.getJSIModules(ReanimatedJSIModulePackage.java:12)
       at com.facebook.react.ReactInstanceManager.createReactContext(ReactInstanceManager.java:104)
       at com.facebook.react.ReactInstanceManager.access$1100(ReactInstanceManager.java)
       at com.facebook.react.ReactInstanceManager$5.run(ReactInstanceManager.java:68)
       at java.lang.Thread.run(Thread.java:923)

Same problem, debug works well, release variant crashes immediately.
Logcat:
2021-04-04 00:38:55.903 7424-7450/? E/AndroidRuntime: FATAL EXCEPTION: create_react_context     Process: com.dmncnt, PID: 7424     java.lang.NoSuchMethodError: no non-static method "Lcom/facebook/react/turbomodule/core/CallInvokerHolderImpl;.<init>(Lcom/facebook/jni/HybridData;)V"         at com.facebook.react.bridge.CatalystInstanceImpl.getJSCallInvokerHolder(Native Method)         at com.facebook.react.bridge.CatalystInstanceImpl.getJSCallInvokerHolder(Unknown Source:0)         at com.swmansion.reanimated.NativeProxy.<init>(Unknown Source:7)         at com.swmansion.reanimated.c.v(Unknown Source:2)         at com.swmansion.reanimated.d.getJSIModules(Unknown Source:12)         at com.facebook.react.o.p(Unknown Source:104)         at com.facebook.react.o.c(Unknown Source:0)         at com.facebook.react.o$e.run(Unknown Source:68)         at java.lang.Thread.run(Thread.java:923)

Reverting MainApplication.java fixed the issue.

What do you mean by reverting?

Turned out it was problem with proguard.
Noted here

Turned out it was problem with proguard.
Noted here
proguard rule
-keep class com.facebook.react.turbomodule.** { *; }

RN : 0.55.4
Not work with me. Here my Proguard-rule
Add project specific ProGuard rules here.
By default, the flags in this file are appended to flags specified
in /usr/local/Cellar/android-sdk/24.3.3/tools/proguard/proguard-android.txt
You can edit the include path and order by changing the proguardFiles
directive in build.gradle.

For more details, see
http://developer.android.com/guide/developing/tools/proguard.html
Add any project specific keep options here:
If your project uses WebView with JS, uncomment the following
and specify the fully qualified class name to the JavaScript interface
class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
public *;
#}
Disabling obfuscation is useful if you collect stack traces from production crashes
(unless you are using a system that supports de-obfuscate the stack traces).
React Native
Keep our interfaces so they can be used by other ProGuard rules.
See http://sourceforge.net/p/proguard/bugs/466/
-keep,allowobfuscation @interface com.facebook.proguard.annotations.DoNotStrip
-keep,allowobfuscation @interface com.facebook.proguard.annotations.KeepGettersAndSetters
-keep,allowobfuscation @interface com.facebook.common.internal.DoNotStrip
Do not strip any method/class that is annotated with @DoNotStrip
-keep @com.facebook.proguard.annotations.DoNotStrip class *
-keep @com.facebook.common.internal.DoNotStrip class *
-keepclassmembers class * {
@com.facebook.proguard.annotations.DoNotStrip *;
@com.facebook.common.internal.DoNotStrip *;
}
-keepclassmembers @com.facebook.proguard.annotations.KeepGettersAndSetters class * {
void set*(**);
*** get();
}
-keep class * extends com.facebook.react.bridge.JavaScriptModule { ; }
-keep class com.facebook.react.turbomodule.* { *; }
-keep class * extends com.facebook.react.bridge.NativeModule { *; }
-keepclassmembers,includedescriptorclasses class * { native ; }
-keepclassmembers class *  { @com.facebook.react.uimanager.UIProp ; }
-keepclassmembers class *  { @com.facebook.react.uimanager.annotations.ReactProp ; }
-keepclassmembers class *  { @com.facebook.react.uimanager.annotations.ReactPropGroup ; }
-keep class com.facebook.react.cxxbridge.ModuleRegistryHolder { *; }
-keep class com.facebook.react.bridge.ExecutorToken { *; }
-keep class com.facebook.react.bridge.CatalystInstanceImpl { *; }
-keep class com.facebook.react.bridge.JavaScriptExecutor { *; }
-keep class com.facebook.react.bridge.queue.NativeRunnable { *; }
-keep class com.facebook.react.bridge.ReadableType { *; }
-dontwarn com.facebook.react.**
TextLayoutBuilder uses a non-public Android constructor within StaticLayout.
See libs/proxy/src/main/java/com/facebook/fbui/textlayoutbuilder/proxy for details.
-dontwarn android.text.StaticLayout
okhttp
-keepattributes Signature
-keepattributes Annotation
-keep class okhttp3.** { ; }
-keep interface okhttp3.* { ; }
-dontwarn okhttp3.*
okio
-keep class sun.misc.Unsafe { ; }
-dontwarn java.nio.file.
-dontwarn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement
-dontwarn okio.**
-keep class io.invertase.firebase.** { ; }
-dontwarn io.invertase.firebase.*

@bachbonglong if you're unable to find exact rule, try to turn it off completely.

@bachbonglong if you're unable to find exact rule, try to turn it off completely.

Yes, Im try to turn it off but still not work

Yes, Im try to turn it off but still not work

So then that's not caused by proguard.
Try checking logcat logs.

Thanks @PrimulaX, I did turned off my proguard in android/app/build.gradle and  it  worked
def enableProguardInReleaseBuilds = false

Proguard rule change worked for me. In my case it was coming from reanimated though. This helped me:
# prevent reanimated from crashing
-keep class com.swmansion.reanimated.layoutReanimation.** { *; }


Telegram integration

any plans for integrating telegram on this ?

No plans. Neither of the devs use telegram, so we need to run out of Discord features and bugs before we head that way. Closing this as it dups https://github.com/Notifiarr/website/issues/22


Add experimental DataDrivenTile3DLayer

Thanks for putting this up! I will try to discuss the experimental-layers module in today's OpenJS meeting and make sure we have some consensus.


fss

@Bodo1445,
Thanks for your contribution.
To ensure that the project team has proper rights to use your work, please complete the Contribution License Agreement at https://cla.microsoft.com.
It will cover your contributions to all Microsoft-managed open source projects.
Thanks,
Microsoft Pull Request Bot

@Bodo1445
What is "fss"?
What is the purpose of this PR? (there is not description)

I'll close this because it its current shape we cannot do anything with this.


More small tweaks to My History

[ ] Match reds and greens for up and down price action (same shades of red and green as in the markets)
[ ] Color all the trailing zeros the same. The greyed out zeros aren't intuitive and disrupt the look
[ ] Look at logic for color change (I would assume that red means the price has gone down relative to the previous trade and green means it has gone up. There are some inconsistencies apparent in the screenshot below.

The market history colors don't indicate price change, they indicate whether the triggering order was an ask or a bid. That's why it used the same colors as the depth chart and orderbook.
The trailing zeros: you want them white?

I get the ask or bid. Still would be nice if we used more standard colors but I'm not too hung up on it.
I would make every digit in the numbers the same color....or maybe this is a precedent I'm not familiar with?

It used to be that way and it was very hard to read the numbers, I find it's much better this way. It's inspired by Coinbase's exchange, but it has to work a bit differently since we have so many assets with different precisions and valuations..

OK,
How about this as a compromise. I think the odd colored zero's need to be less visible. If you look at coinbase, the contrast with waay down.
Coinbase:

Us:

Might as well match the reds and greens to Coinbase for everything?

I don't see why we can't have our own colors. I'll make the zeros less prominent at least.

Closing and letting this be handled by #538


Track weekly progress

Hey there, this is great, thanks. After using it for a while, there were two things I personally wished it could do:
Personally, I calibrate my working hours more on a weekly basis to see where I'm at.
Could something like a weekly tracker happen in the future?
In addition to that: would it be possible to show a simple number of the overage / missing hours from the last period (so month, currently)?
If those things aren't a fit for the project, feel free to just say so 😅

Seems like an interesting idea! Wouldn't mind trying something like this in future. But can't make any promises!

In addition to that: would it be possible to show a simple number of the overage / missing hours from the last period (so month, currently)?
This seems like doable in near future. A similar feature to show stats has been on my mind. I'll see what I can do.

Thanks.

Hey, that's both great to hear =)
Thanks for your work.

Any updates?  Would really love this feature as I operate on a weekly basis, not daily.


Added script for starting mapintel

Pull Request Guide
Checklist
Please check the following:

[x ] You have checked the Pull Request guidelines.
[ ] Tests for bug fixes or new features have been added.
[ ] Docs have been added or updated.

Type
What kind of change does this Pull Request introduce?

[ ] fix: Bug fix.
[x] feat: New feature implementation.
[ ] build: Build system or external dependencies changes.
[ ] ci: CI configuration files and scripts changes.
[ ] docs: Documentation improvements.
[ ] perf: Performance improvement.
[ ] refactor: Code refactor.
[ ] test: Test additions or corrections.
[ ] other

Current behaviour
Describe the current behaviour or provide a link to an issue.
What is the new behavior?
Describe the new behaviour.
Does this Pull Request introduce a breaking change?

[ ] Yes
[ ] No

Other information
Provide any other information.

You need also to git pull --rebase from the master.

unctions that wrap the models to the corresponfing service.

The wrappers arent universal though, shouldnt the specific code for statring the app be held separate to the more general code that includes the services?

Do you know why this is happening. It seems to cause an error in an autogenerated file in the venv, but without that file nothing happens when I run mapintel start. The second image is the file in the venv

Not sure I understood, if I run mapintel start now, with this code, shouldnt "hello!" be printed?

Not sure I understood, if I run mapintel start now, with this code, shouldnt "hello!" be printed?

No, unless you have registered somehow mapintel as shell command. For example it can be done through console_scripts.

It would be nice of course not to include the python src/cli.py part. This can be done using console_scripts.

Basically wait I will fix it, test it and update the branch.

I tested and it works as expected with the commands python src/mapintel/cli.py init or python src/mapintel/cli.py start.

Sorry I was writing the wrong path before. We would obviously prefer to avoid the python src/mapintel/cli.py part and replace it with mapintel command. It can be done through console_scripts. Dont worry about it at the moment.

Ok now I have them running, I have to leave now, but I should be able to finish it tomorrow

Why do we need the file to be pushed to the repo?

For the initial data, but I guess it could be fetched from somewhere else

You should have them locally and provide them through the command mapintel init command.

ahh yes sorry ofc

I cant figure out how to pass a list and lsit of dicts in cli, I tried in python. Shouldnt json.dumps format it correctly? It doesnt like that there are multiple string I think.

Why don't you pass the path to the json file that contains the documents?

Now it should work, not sure why it complains about conflicts,all those files should just be replaced with the new ones

Yes sure, but for 3. I am not sure how to do it? As you need the API running while you populate it with models.

I mean, instead of spawning a process and run some CLI commands, can't we do the same through the Python API?

For both the start and init or only the init?

For both of them.

The issue I am having is that when I try to start the API it stops running the following code, it waits until the API is stopped and then runs the following code.

Ok I would say to do your best to cleanup the repo and we will see how to handle the remaining issues.

Regarding moving the functions to appropriate files, I don't know if having it in the source make sense as its somewhat separate to the rest of the functionality. I can split it into smaller files if that makes it more manageable to understand?

pdm formatting

Dont worry about the rest. Please push it to check it.

I forgot to rebase.... Sorry, how do I avoid creating conflicts?

Try git pull --rebase origin start_task from your local branch start_task. Then git rebase --skip in each conflict.

Should I commit my changes first, it says it cannot rebase

Even better git stash. Delete your local start_task branch and git switch start_task to recreate it from remote. Then git stash pop.

Wouldnt I lose my local changes if I stash and then switch?

No but you can rename your local branch just to make sure you do not loose your work :p

Ok should have pushed the correct code now

I have made some changes. Please check that the implementation is still correct.

I didnt test it, but the changes seem to be all just code reformatting so it should be good. It doesn't work currently though as the thread thing in the start command is still an issue


Eliminate blank line at end of Dockerfile

cf. https://github.com/ocurrent/obuilder/issues/65
The continuation to a blank line generates a warning from docker - easiest just to eliminate the problem here!

I don't think the ocaml-ci failure is mine?

Thanks!