Keep users signed in with refresh token

Hi,
I'm trying to set up a mobile app where users only need to sign in once.  After that, every time the splash screen loads, the client calls oktaSdk.refreshTokens(), which allows us to get a new access token for the resource server.  On the Okta portal, I have Authorization Code and Refresh Token checked off for allowed grant types.
However, if I login and then restart the app and wait for approximately 2 hours, and then call oktaSdk.refreshTokens(), I get the following error: PlatformException(RefreshToken_Error, User not logged in, cannot refresh, Optional(flutter_okta_sdk.FlutterOktaError(message: "User not logged in, cannot refresh")), null).  From this error, I get the impression that Okta is automatically signing out users after some inactivity (even though we have already written our tokens to secureStorage)?
I'm wondering:

Is it possible with this package to allow users to only sign in once and only have to sign back in if they click to sign out, similar to how most mobile apps work like Facebook, Instagram, etc?
If it is possible, how would the flow look like to make this possible?

Also, regardless of your response, this package has honestly been a game changer in speeding up development for my mobile app.  Thanks so much for creating this plug in!

Hello @tonywu1999 . Thank you for raising this issue.
I think the first question we have to make, is if the native SDK allows this behavior (I think it does). If so, I'm pretty sure we can implement it as well.
The idea behind this library, is to just be a bridge between the native Okta's SDK (for both Android and iOS), and not add any extra logic to complement the original SDK.
Do you have a sample repo where we can reproduce the issue ?

Hi,
Yes, here is a sample repo that I just created that reproduces this issue:
https://github.com/tonywu1999/okta_sample
To reproduce the issue, on the iPhone, first login through the authorize button, then with iPhone multitask, close out of the app window.  Then try to run the app again in roughly 2 hours, and it'll say User not logged in, cannot refresh
Thanks so much.  Let me know if you run into any issues.  Also in the repo, you'll have to put your own okta credentials in services/AuthService.dart

I did some debugging and saw a FlutterSecureStorage object.
FlutterSecureStorage secureStorage = FlutterSecureStorage();
Map<String, String> allValues = await secureStorage.readAll();
print(allValues);

After logging in and getting access token, I print allValues and it's an empty map.  Is that supposed to happen?

Hi,
So I found the cause to the problem, at least for iOS (I haven't checked if this is a problem on Android yet)
https://github.com/sonikro/flutter-okta-sdk/blob/def6777e5a4cb355b8fefff2aa316e65166547e2/ios/Classes/SwiftFlutterOktaSdkPlugin.swift#L208
After restarting the app and waiting for an hour, we open the app and call createConfig, but we cannot set up self.stateManager = OktaOidcStateManager.readFromSecureStorage(for: oktaOidc.configuration) because the accessToken returns nil from expiring.  Thus, after that, if we call refreshTokens, stateManager is nil because we never got it from secureStorage in createConfig
I can submit a PR where instead of checking if accessToken is nil, we can check if refreshToken is nil.  What do you think of that?

@tonywu1999 , thank you so much for your contribution. I've published the new version as 1.0.0-dev.7.
You can install it with
flutter pub add flutter_okta_sdk

@sonikro , I just checked this morning and the new published version works.
Thanks so much!


containers for Wochenende

Apptainer containers and also Dockerfiles for Wochenende and haybaler are available here:
https://drive.google.com/drive/folders/1mdSuS1RdYSMQN5SnNuArXZ-1a7GxvNzO?usp=drive_link
TODO - The config and installation will be updated and the tool tested with these containers soon.
Apptainer is the successor to singularity and should be more reliable over time than conda environments.

Update: Apptainer containers and Dockerfiles are also available here (together with the newest reference database for human-associated airway metagenomes) :
https://drive.google.com/drive/folders/1q1btJCxtU15XXqfA-iCyNwgKgQq0SrG4?usp=sharing


WIP: Add new subcommand 'ios' for downloading betas

This would add a new ios subcommand, which lists all devices the current iOS beta is available for:
$ xcode-install ios
iPad 7 (4G679)
[...]

Passing a specific device would download the beta for that device:
$ xcode-install ios 'iPad 7 (4G679)'

I am wondering if that is the best way to present that functionality and also if this should rather be a separate tool than a subcommand.

Might also be nice if it extracted the IPA from the ZIP/DMG mess.

Coverage increased (+1.32%) to 66.99% when pulling d647bd4e68e002587d9edfd5874443bed011ef5f on ios-beta-downloads into f35257c60ab29384e52bc48411c09defb259183b on master.

Considering there is also tvOS now and the growing functionality of xcode-install, this should really be a separate tool.

Closing this as it is not something I'm going to add to xcode-install for now.


Recipe does not build anymore.

This feedstock was created last week https://github.com/conda-forge/staged-recipes/pull/11387 . I haven't changed anything since but it doesn't seem to build any more. If I run build python build-locally.py I get an error :
  File "/home/conda/feedstock_root/build_artifacts/dolang_1588511042266/test_tmp/run_test.py", line 2, in <module>
    import dolang
ModuleNotFoundError: No module named 'dolang'
Tests failed for dolang-0.0.8-py_0.tar.bz2 - moving package to /home/conda/feedstock_root/build_artifacts/broken
WARNING:conda_build.build:Tests failed for dolang-0.0.8-py_0.tar.bz2 - moving package to /home/conda/feedstock_root/build_artifacts/broken
WARNING conda_build.build:tests_failed(2751): Tests failed for dolang-0.0.8-py_0.tar.bz2 - moving package to /home/conda/feedstock_root/build_artifacts/broken
TESTS FAILED: dolang-0.0.8-py_0.tar.bz2
Traceback (most recent call last):
  File "build-locally.py", line 63, in <module>
    main()
  File "build-locally.py", line 59, in main
    run_docker_build(ns)
  File "build-locally.py", line 19, in run_docker_build
    subprocess.check_call([script])
  File "/usr/lib/python3.7/subprocess.py", line 363, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['.scripts/run_docker_build.sh']' returned non-zero exit status 1.

If I look at build_artifacts the package created does not contain a dolang module within site_packages.
This package uses a pyproject.toml file and has poetry as a build dependency. I believe the expected behavior is that pip install ... is supposed to defer to poetry for the build step according to pep517. This is what happens on my laptop.
Last week, according to the for for my PR's CI, the versions were:
pip:                20.0.2-py_2               conda-forge
poetry:             1.0.5-py38_0              conda-forge

When I used the build-locally command (my recipe has been rerendered), I get:
pip:                20.1-pyh9f0ad1d_0         conda-forge
poetry:             1.0.5-py38_0              conda-forge

Maybe there is a regression in pip 20.1 ?

specifying pip=20.0.2 in meta.yaml seems to do the trick.

Unfortunately I can't replicate the bug outside of the docker environment. Outside of it, any combination of pip and poetry seems to work fine.


[ConstraintSystem] Properly cache type for literal initialization coe…

…rcions
Since original implicit coercion expression is preserved in AST
it needs to have its simplified type cached in the constraint
system in order for AST to get the correct type when solution
is fully applied.
Resolves: rdar://problem/45415874

@swift-ci please test

@swift-ci please test source compatibility

@swift-ci please test

@swift-ci please test source compatibility

Thanks @xedin!


Create slides and samples for concurrency basics

This PR addresses a subset of the topics listed in #81 .

Goroutines
Processes, Threads and OS Scheduling
Go Scheduler / Runtime

https://pr84-dot-gotraining-testing.appspot.com/gocourse-2019-05-melbourne.slide#79

Resolved all comments. Thanks


hotfix/add-uvx-to-circleci-image

Add uvx binary to circle image (in addition to uv)
Why
Previous installation method via pip installed both the uv and uvx binaries. Our COPY --from replacement only copied the uv binary. This PR adds the uvx binary as well.
uvx is currenlty used in build & publish commands in noosinv when choosing the uv installer. Won't be necessary in the future though, because uv is already working on implementing those commands directly inside uv.

@CodiumAI-Agent /describe

Title
hotfix/add-uvx-to-circleci-image

User description
Add uvx binary to circle image (in addition to uv)
Why
Previous installation method via pip installed both the uv and uvx binaries. Our COPY --from replacement only copied the uv binary. This PR adds the uvx binary as well.
uvx is currenlty used in build & publish commands in noosinv when choosing the uv installer. Won't be necessary in the future though, because uv is already working on implementing those commands directly inside uv.

PR Type
enhancement

Description

Added the uvx binary to the CircleCI Docker image to ensure compatibility with build and publish commands.
The uvx binary is now copied alongside the uv binary from the source image.

Changes walkthrough 📝
Relevant filesEnhancement

DockerfileAdd `uvx` binary to CircleCI Docker image

docker/circleci/Dockerfile
Added the uvx binary to the CircleCI Docker image.  Ensured both uv and uvx binaries are copied from the source image.

+1/-0

💡 PR-Agent usage:
Comment /help on the PR to get a list of all available PR-Agent tools and their descriptions

@CodiumAI-Agent /review

@CodiumAI-Agent /improve

PR Code Suggestions ✨

CategorySuggestion                                                                                ScoreBest practice

Ensure version consistency between uv and uvx

Ensure that the version of uvx matches the version of uv to maintain compatibility and avoid potential issues with mismatched versions.
docker/circleci/Dockerfile [39-40]
+COPY --from=ghcr.io/astral-sh/uv:0.4.1 /uv /usr/local/bin/uv
+COPY --from=ghcr.io/astral-sh/uv:0.4.1 /uvx /usr/local/bin/uvx

-

Suggestion importance[1-10]: 8
Why: The suggestion is valid as it emphasizes the importance of maintaining version consistency between uv and uvx, which can prevent compatibility issues. This is a best practice that enhances the reliability of the Docker image.
8


Feature request: also add .js extension for .d.ts file

change
// main.d.ts
import { appRouter } from './routers';

to
// main.d.ts
import { appRouter } from './routers/index.js';

@GervinFung Hi， any idea about this?

Hi @xiaoxiangmoe, it will be easy to add this, but I am a bit confused, is this necessary? Why do u need to change the path and what can u do after changing the path?

@GervinFung this is necessary.
If we want to release an npm library with package.json "type": "module". And library user use it with tsconfig "moduleResolution": "nodenext". tsc will not recognize './routers', but it will recognize './routers/index.js'.

Can u give me a mini-project for me to try?

https://github.com/xiaoxiangmoe/ts-add-js-extension-library-type-error
Here is a example.
Also, please run it in mac or linux, beacause ts-add-js-extension is not support windows now.

Hey @xiaoxiangmoe, I pushed latest update to here, would u like to try it out before I publish it? Thanks!

=============

WARNING: You are currently running a version of TypeScript which is not officially supported by @typescript-eslint/typescript-estree.

You may find that it works just fine, or you may not.

SUPPORTED TYPESCRIPT VERSIONS: >=3.3.1 <5.0.0

YOUR TYPESCRIPT VERSION: 5.0.2

Please only submit bug reports when using the officially supported version.

=============

Maybe we should update @typescript-eslint/typescript-estree version

Also, this new version seems not working for me. I'll create a demo to show it latter.

I update @typescript-eslint/typescript-estree version and I also find another bug here.
https://github.com/xiaoxiangmoe/ts-add-js-extension-library-type-error
see demo nodenext-type-error

Hi, I create a PR to fix it.

@GervinFung I try it out. It works well in my mac and linux. Thanks

@GervinFung I try it out. It works well in my mac and linux. Thanks

U pointed out the problem, I only merge and publish it. Also, I learnt something new too, so, thank you


camel-quarkus-csimple package not exists but presented in documentation

In camel-quarkus documentation https://camel.apache.org/camel-quarkus/latest/reference/extensions/csimple.html we can found maven dependency org.apache.camel.quarkus:camel-quarkus-csimple but maven central does not present this package.
<dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-csimple</artifactId>
</dependency>

Yes it's incorrect for the 1.5.0 release where csimple support is integrated into camel-quarkus-core. For the upcoming 1.6.0 release there will be a dedicated camel-quarkus-csimple extension. See related notes in https://github.com/apache/camel-quarkus/pull/2103 & https://github.com/apache/camel-quarkus/issues/2098.

Yes it's incorrect for the 1.5.0 release where csimple support is integrated into camel-quarkus-core. For the upcoming 1.6.0 release there will be a dedicated camel-quarkus-csimple extension. See related notes in https://github.com/apache/camel-quarkus/pull/2103 & https://github.com/apache/camel-quarkus/issues/2098.

When I call quarkus:build I got exception
[error]: Build step org.apache.camel.quarkus.core.deployment.CSimpleRouteDefinitionProcessor#configureCSimpleLanguage threw an exception: java.lang.NoClassDefFoundError: org/apache/camel/language/csimple/CSimpleLanguage

How I can exclude CSimpleRouteDefinitionProcessor (If I use LambdaRouteBuilder)? Or any other solution to solve this problem?
ps: Sorry that this question is not directly related to issue topic.

When I call quarkus:build I got exception
[error]: Build step org.apache.camel.quarkus.core.deployment.CSimpleRouteDefinitionProcessor#configureCSimpleLanguage threw an exception: java.lang.NoClassDefFoundError: org/apache/camel/language/csimple/CSimpleLanguage

How I can exclude CSimpleRouteDefinitionProcessor (If I use LambdaRouteBuilder)? Or any other solution to solve this problem?
ps: Sorry that this question is not directly related to issue topic.

If you're not using csimple, try setting the following in application.properties:
quarkus.camel.native.csimple.on-build-time-analysis-failure = ignore

If you're not using csimple, try setting the following in application.properties:
quarkus.camel.native.csimple.on-build-time-analysis-failure = ignore

/CC @ppalaga

/CC @ppalaga

Yes, sorry, @mrk-andreev there is nothing better to recommend for Camel Quarkus 1.5.0 than quarkus.camel.native.csimple.on-build-time-analysis-failure = ignore. We have moved the CSimple stuff to a separate extension exactly to solve issues like you mention.

Yes, sorry, @mrk-andreev there is nothing better to recommend for Camel Quarkus 1.5.0 than quarkus.camel.native.csimple.on-build-time-analysis-failure = ignore. We have moved the CSimple stuff to a separate extension exactly to solve issues like you mention.

quarkus.camel.native.csimple.on-build-time-analysis-failure = ignore does not solve this problem.  Class CSimpleLanguage can not be founded by org.apache.camel.quarkus.core.deployment.CSimpleRouteDefinitionProcessor. So may be problem in wrong dependencies version in my pom.xml.
I solved this problem when I downgraded camel to 1.4.0 :(

quarkus.camel.native.csimple.on-build-time-analysis-failure = ignore does not solve this problem.  Class CSimpleLanguage can not be founded by org.apache.camel.quarkus.core.deployment.CSimpleRouteDefinitionProcessor. So may be problem in wrong dependencies version in my pom.xml.
I solved this problem when I downgraded camel to 1.4.0 :(

Could you please attach a reproducer?

Could you please attach a reproducer?

@ppalaga
https://github.com/mrk-andreev/example-quarkus-csimple-bug

@ppalaga
https://github.com/mrk-andreev/example-quarkus-csimple-bug

You have a mix of camel and camel-quarkus versions because quarkus-universe-bom:10.0.5.Final is aligned with camel-quarkus 1.4.0.
$ mvn dependency:tree | grep camel
[INFO] +- org.apache.camel.quarkus:camel-quarkus-log:jar:1.5.0:compile
[INFO] |  \- org.apache.camel:camel-log:jar:3.6.0:compile
[INFO] |     \- org.apache.camel:camel-support:jar:3.6.0:compile
[INFO] +- org.apache.camel.quarkus:camel-quarkus-core:jar:1.5.0:compile
[INFO] |  +- org.apache.camel.quarkus:camel-quarkus-support-common:jar:1.4.0:compile
[INFO] |  +- org.apache.camel:camel-base:jar:3.6.0:compile
[INFO] |  |  +- org.apache.camel:camel-api:jar:3.6.0:compile
[INFO] |  |  +- org.apache.camel:camel-management-api:jar:3.6.0:compile
[INFO] |  |  \- org.apache.camel:camel-util:jar:3.6.0:compile
[INFO] |  +- org.apache.camel:camel-componentdsl:jar:3.6.0:compile
[INFO] |  +- org.apache.camel:camel-core-catalog:jar:3.6.0:compile
[INFO] |  |  \- org.apache.camel:camel-tooling-model:jar:3.6.0:compile
[INFO] |  |     \- org.apache.camel:camel-util-json:jar:3.6.0:compile
[INFO] |  +- org.apache.camel:camel-core-engine:jar:3.6.0:compile
[INFO] |  +- org.apache.camel:camel-core-languages:jar:3.6.0:compile
[INFO] |  +- org.apache.camel:camel-core-processor:jar:3.7.0:compile
[INFO] |  |  \- org.apache.camel:camel-base-engine:jar:3.7.0:compile
[INFO] |  +- org.apache.camel:camel-endpointdsl:jar:3.6.0:compile
[INFO] |  \- org.apache.camel:camel-microprofile-config:jar:3.6.0:compile
[INFO] +- org.apache.camel.quarkus:camel-quarkus-timer:jar:1.5.0:compile
[INFO] |  \- org.apache.camel:camel-timer:jar:3.6.0:compile
[INFO] +- org.apache.camel.quarkus:camel-quarkus-main:jar:1.5.0:compile
[INFO] |  \- org.apache.camel:camel-main:jar:3.6.0:compile

Try importing camel-quarkus-bom before the quarkus-platform-bom in dependencyManagement like:
  <dependencyManagement>
    <dependencies>
      <dependency>
          <groupId>org.apache.camel.quarkus</groupId>
          <artifactId>camel-quarkus-bom</artifactId>
          <version>${quarkus.camel.version}</version>
          <type>pom</type>
          <scope>import</scope>
      </dependency>
      <dependency>
        <groupId>${quarkus.platform.group-id}</groupId>
        <artifactId>${quarkus.platform.artifact-id}</artifactId>
        <version>${quarkus.platform.version}</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
    </dependencies>
  </dependencyManagement>

You have a mix of camel and camel-quarkus versions because quarkus-universe-bom:10.0.5.Final is aligned with camel-quarkus 1.4.0.
$ mvn dependency:tree | grep camel
[INFO] +- org.apache.camel.quarkus:camel-quarkus-log:jar:1.5.0:compile
[INFO] |  \- org.apache.camel:camel-log:jar:3.6.0:compile
[INFO] |     \- org.apache.camel:camel-support:jar:3.6.0:compile
[INFO] +- org.apache.camel.quarkus:camel-quarkus-core:jar:1.5.0:compile
[INFO] |  +- org.apache.camel.quarkus:camel-quarkus-support-common:jar:1.4.0:compile
[INFO] |  +- org.apache.camel:camel-base:jar:3.6.0:compile
[INFO] |  |  +- org.apache.camel:camel-api:jar:3.6.0:compile
[INFO] |  |  +- org.apache.camel:camel-management-api:jar:3.6.0:compile
[INFO] |  |  \- org.apache.camel:camel-util:jar:3.6.0:compile
[INFO] |  +- org.apache.camel:camel-componentdsl:jar:3.6.0:compile
[INFO] |  +- org.apache.camel:camel-core-catalog:jar:3.6.0:compile
[INFO] |  |  \- org.apache.camel:camel-tooling-model:jar:3.6.0:compile
[INFO] |  |     \- org.apache.camel:camel-util-json:jar:3.6.0:compile
[INFO] |  +- org.apache.camel:camel-core-engine:jar:3.6.0:compile
[INFO] |  +- org.apache.camel:camel-core-languages:jar:3.6.0:compile
[INFO] |  +- org.apache.camel:camel-core-processor:jar:3.7.0:compile
[INFO] |  |  \- org.apache.camel:camel-base-engine:jar:3.7.0:compile
[INFO] |  +- org.apache.camel:camel-endpointdsl:jar:3.6.0:compile
[INFO] |  \- org.apache.camel:camel-microprofile-config:jar:3.6.0:compile
[INFO] +- org.apache.camel.quarkus:camel-quarkus-timer:jar:1.5.0:compile
[INFO] |  \- org.apache.camel:camel-timer:jar:3.6.0:compile
[INFO] +- org.apache.camel.quarkus:camel-quarkus-main:jar:1.5.0:compile
[INFO] |  \- org.apache.camel:camel-main:jar:3.6.0:compile

Try importing camel-quarkus-bom before the quarkus-platform-bom in dependencyManagement like:
  <dependencyManagement>
    <dependencies>
      <dependency>
          <groupId>org.apache.camel.quarkus</groupId>
          <artifactId>camel-quarkus-bom</artifactId>
          <version>${quarkus.camel.version}</version>
          <type>pom</type>
          <scope>import</scope>
      </dependency>
      <dependency>
        <groupId>${quarkus.platform.group-id}</groupId>
        <artifactId>${quarkus.platform.artifact-id}</artifactId>
        <version>${quarkus.platform.version}</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
    </dependencies>
  </dependencyManagement>

Thanks, that works! You are cool!

Thanks, that works! You are cool!

Issues like this one happening from time to time is a clear sign that we are lacking on documentation about dependency management. Let me file a new issue for that.

Issues like this one happening from time to time is a clear sign that we are lacking on documentation about dependency management. Let me file a new issue for that.

Filed https://github.com/apache/camel-quarkus/issues/2136 please feel free to review/improve the text

Filed https://github.com/apache/camel-quarkus/issues/2136 please feel free to review/improve the text


How to use aacgmv2 beyond 2025

Dear Dr Burrell,
Please can I ask if you are able to assist to adapt aacgmv2 for dates from 2025 until 2032, as required for a project I am working on?
On my attempt to run aacgmv2 for dates in 2025, I get the following error:
raise RuntimeError("cannot set time for {:}: {:}".format(dtime, err))
RuntimeError: cannot set time for 2025-01-01 00:00:00+00:00: AACGM_v2_SetDateTime returned error code -1
I understand that the AACCM-v2 coefficients have been generated until 2025 and that the above error results from line 1082 in the C-library aacgmlib_v2.c:
if ((fyear < IGRF_FIRST_EPOCH) || (fyear >= IGRF_LAST_EPOCH + 5.)) {
AACGM_v2_errmsg(1);
return (-1);
}
I am assuming that the variable IGRF_LAST_EPOCH must equate to the start of 2020, however I am unable to find where IGRF_LAST_EPOCH is defined or inputted in the C Library.
Please can I ask on how I can adapt the current code or coefficient data files to enable aacgmv2 from 2025 until 2032?
Kind regards,
Yasir

Hi @Yas979, we won't be able to go further in the future until a new version of the IGRF coefficients are released.  In the meantime, I'd recommend just using the latest available year.

Hi @aburrell, thanks so much for the quick reply.

Hi @aburrell,
I have attempted to extend files the different .txt files in the aacgmv2 folders to include years up to 2035 and likewise made extra copies of the coefficient files. However, I'm still unable to run aacgmv2 for dates further than 2025.
I realise the module _aacgmv2.set_datetime must set the maximum date allowed and was hoping to see how this time is set and if there is a certain input I could change somewhere or if it is hardcoded. However, as I am unable to open _aacgmv2.cpython-36m-x186_64-linux-gnu.so I am not able to proceed any further.
Please can I ask if you are aware of how the maximum date of 2025 is set within the aacgmv2 and if there is anyway to change this?
Thanks,
Yasir

This is defined in the C code, so not something I'd recommend changing.  The best thing to do would be to just not increment your time (set the max date and don't cycle it further in your processing).

Thanks @aburrell. Yep, for now I reset all years equal to or above 2025 to 2024 and hope this will do. Best, Yasir


is this still alive?

hello @adtsegaye
Are you still working on amharic corpora? Looking to implement amharic in spaCy and was looking for some good Amharic copora
You have done great work I see!
thanks

I am not currently into this kind of thing, all the data is available to the repository bellow.
spaCy sounds good, let me know your progress and we might collaborate.
https://github.com/adtsegaye/Amharic-English-Machine-Translation-Corpus

Thanks, I have submitted an amharic support in spacy, will let you know progress. Thanks


Whatsie eats up available ram during syncing.

If I let it run, it will exhaust all available RAM.
Version 2.2350.1

I've ran in to this as well after updating about a week ago (on manjaro, whatsie is at 4.14.2-1 now). Additionally I can't send new messages anymore either, which worked fine before.

exactly my case since today.
It eats about 9GB of RAM, it does not send my posts nor sync new posts.  However, today I did not update the app.
Whatsapp version 2.2405.4.
Whatsie version 4.14.2 from Flathub.
OpenSuSE Leap 15.5 with KDE and NVidia graphic board.


Company mode

Some way for wide scope based on company name, ASN or something

May I suggest my brand new tool, hacker-scoper? 😁


Use buildsystem info to get the ros_package_name

Releted with this issue https://github.com/ros2/rviz/issues/47

Linux
Linux-aarch64
Windows

@clalancette the windows build is failing. I tried to reproduce this locally,
if I use ament_cmake and set manually add_definitions(-DROS_PACKAGE_NAME=\"${PROJECT_NAME}\") The compilation is fine,
but with ament_cmake_ros I'm getting these errors:
16:28:24 LINK : fatal error LNK1181: cannot open input file 'Release\rviz_rendering_test_utils.lib' [C:\ci\ws\build\rviz_rendering\billboard_line_test_target.vcxproj]

16:28:24   Building Custom Rule C:/ci/ws/src/ros2/rviz/rviz_rendering/CMakeLists.txt

16:28:24   covariance_visual_test.cpp

16:28:24 LINK : fatal error LNK1181: cannot open input file 'Release\rviz_rendering_test_utils.lib' [C:\ci\ws\build\rviz_rendering\covariance_visual_test_target.vcxproj]

16:28:24   Building Custom Rule C:/ci/ws/src/ros2/rviz/rviz_rendering/CMakeLists.txt

any thoughts?

any thoughts?

With ament_cmake_ros, the libraries should be getting built as shared objects by default.  What is weird about the above is it seems like rviz_rendering_test_utils.lib is getting built statically somehow (that should be a .dll).  I guess you could try explicitly adding the SHARED keyword to the add_library(rviz_rendering_test_utils) call, but it really should not be necessary.

I think I solved with the visibility

Windows

Linux
Linux-aarch64
Windows


Move contributing guidelines to CONTRIBUTING.md

Github has a method for documenting contributing guidelines documented in help. The pull request migrates the contribution guidelines to that process.
It's a migration rather than a duplication so the guidelines only need to be maintained in one place.

I'm not sure what do with this selenium error at the moment. It looks unrelated to the change I made... https://travis-ci.org/HewlettPackard/grommet/builds/68516737

yup it is unrelated. For those interested in why it is failing, check out this link: http://docs.travis-ci.com/user/pull-requests/

The most important restriction for pull requests is about secure environment variables, or rather, any data that’s encrypted with our encryption feature. Pull requests sent from forked repositories don’t have this data available in their builds. All data that’s considered confidential will not be added to the build’s environment.

If your build relies on these to run, for instance to run Selenium tests with Sauce Labs, your build needs to take this into account. You won’t be able to run these tests for pull requests from external contributors.

Thanks for your contribution @mattfarina


IMPORT ERROR

🖥 Please paste the output of following commands

conda info -a (only if you have conda)
conda list (only if you have conda)
pip freeze

# Paste your output here:

python -c "import poliastro.testing; poliastro.testing.test()"

# Paste your output here:

🎯 Goal

💡 Possible solutions

📋  Steps to solve the problem

Comment below about what you've started working on.
Add, commit, push your changes
Submit a pull request and add this in comments - Addresses #<put issue number here>
Ask for a review in comments section of pull request
Celebrate your contribution to this project 🎉

Hi @davepitch, I assume you didn't have time to work on this issue anymore so I'm closing. Please feel free to comment further if you still need assistance, or open a new one.


Median of two sorted Arrays

Finding median of two sorted array
we will have two sorted arrays of size N and M respectively and element in array can be duplicated.
we will find median of array without merging the two arrays.
eg:
A = [1, 4, 5]
B = [2, 3]
merged : [1,2,3,4,5]
output : 3
If we merge the job is so simple. In this case TC O(N+M) , SC O(N+M)
but I will apply binary search instead of two pointer and will do it in TC O(log(max-min)*(logm+logn)), SC O(1).
Motivation
Finding median is important in many applications and if we do it without using no space and less time it would be best.
hey! @bhav09 may I start working on this issue in JAVA. I am GSSOC'21 Participant.

Good luck @IShahnawazShaikh :)

@bhav09  sir can i work on this issue in c++ language . I am also a GSSOC'21 participant.

Hey @vabhv1903, it has already been assigned. You can open a new issue on a new topic that you would like to contribute and if it is not in the repo ie unique; we will assign the task to you. Happy learning!

Thanks @bhav09 sir I am on it


⚠ Bofrost.lu has degraded performance

In f8fad82, Bofrost.lu (https://www.bofrost.lu) experienced degraded performance:

HTTP code: 200
Response time: 2300 ms

Resolved: Bofrost.lu performance has improved in ff63309 after 11 minutes.


Sync main and dev

Description
Syncing main and dev after manage operational layers fix was merged.

@Rachael-E seems to be happy enough with this latest PR!


Sometimes lock not realeased after leaving using block

At first I suspected that there is a deadlock. But I don't know why because I find no reason in my code. Then I added some logs. Then I find out after sometime, the lock is not released even after leaving the using block.
This is the only one method that uses the lock:
        public async Task<T> GetAsync(TimeSpan ttl)
        {
            var lockid = Interlocked.Increment(ref lockID);
            Common.Log.Verbose($"GetAsync entering lock {GetHashCode()}.{lockid} {new StackTrace(1, true)}");

            if ((bool)_lock.GetPrivateFieldOrProperty("_taken"))
            {
                Common.Log.Warning("[ValueCache2] GetAsync: will wait for lock");
                Common.Log.Verbose($"GetAsync leaving lock {lockid}");
                return await DoGet(ttl);
            }

            using (await _lock.LockAsync())
            {
                Common.Log.Verbose($"GetAsync leaving lock {lockid}");
                return await DoGet(ttl);
            }
        }

This is the log:
2020-08-21 14:10:16.316 [VERB] GetAsync entering lock 33189039.4560    at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine)
   at co.b(TimeSpan A_0)
   at cu.j[a](Func`1 A_0, UInt32 A_1, Object[] A_2) in C:\code\quant\Iwala\Api\Api.cs:line 98
   at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine)
   at cu.j[a](Func`1 A_0, UInt32 A_1, Object[] A_2)
   ...
2020-08-21 14:10:16.316 [VERB] GetAsync leaving lock 4560
   ...
2020-08-21 14:10:19.343 [VERB] GetAsync entering lock 33189039.4561    at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine)
   at co.b(TimeSpan A_0)
   at cu.j[a](Func`1 A_0, UInt32 A_1, Object[] A_2) in C:\code\quant\Iwala\Api\Api.cs:line 98
   at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine)
   at cu.j[a](Func`1 A_0, UInt32 A_1, Object[] A_2)
   at cu.j(UInt32 A_0) in C:\code\quant\Iwala\Api\Api.cs:line 132
   at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine)
   at cu.j(UInt32 A_0)
  ...
2020-08-21 14:10:19.343 [WARN] [ValueCache2] GetAsync: will wait for lock
2020-08-21 14:10:19.343 [VERB] GetAsync leaving lock 4561
   ...
2020-08-21 14:10:21.364 [VERB] GetAsync entering lock 33189039.4562    at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine)
   at co.b(TimeSpan A_0)
   at cu.j[a](Func`1 A_0, UInt32 A_1, Object[] A_2) in C:\code\quant\Iwala\Api\Api.cs:line 98
   at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine)
   at cu.j[a](Func`1 A_0, UInt32 A_1, Object[] A_2)
   ...
2020-08-21 14:10:21.364 [WARN] [ValueCache2] GetAsync: will wait for lock
2020-08-21 14:10:21.364 [VERB] GetAsync leaving lock 4562

After that, the lock is not never released. The log always prints will wait for lock.

Sorry. It is my fault. DoGet() sometimes never return. I should print log after that call.


QMapShack.app v1.3.1

added sha check sum.

Looks good. Can you please squash your commits?

commits are squashed now.

Thank you.


NECO-136: can use as a Java SDK

Changes

added "doOutput" value.

Tests

See the ticket.

I saw NECO-175 and I cannot find any problem.
I'm going to merge this pull request.


Lwjgl 4 GitHub

Question
I can’t find a GitHub for lwjgl 4 lwjgl 3 says you backported I am looking out of interest not a good Java dev so it would be for fun

It's not available yet. I'm still experimenting, but I'll push the branch when there's enough interesting functionality to test.

Ok just wanted to look at the code figured there was not funtional yet

It's not available yet. I'm still experimenting, but I'll push the branch when there's enough interesting functionality to test.

still would be nice to be able to follow it


OpenVMS python3 and +xterm_save features

Thank you all for the 9.1 release.
I have tested on VAX, Alpha, Itanium and x86_64 OpenVMS platforms - and 9.1 builds and works well.
Meanwhile, I have realized, that the Unix and OpenVMS make files are not fully aligned, therefore, I corrected that cosmetics issue. I have also added the python3 support, as well as the xterm_save feature.
Please review.
Thank you... and happy New year :)

There were a few trailing whitespaces in Make_vms.mms. I have fixed them now locally, please make sure to check this next time.

I will. Thank you very much.


Support boot2docker (and its tcp + ssl thing)

This branch makes it so that hoosegow can use the environment variables set by boot2docker shellinit. It does this by not setting Docker.url if no connection parameters are provided. This lets the docker-api gem figure out where to connect, which should be right most of the time. This branch also bumps the docker-api gem version: 1.15 is where it learned to use boot2docker over TLS (https://github.com/swipely/docker-api/pull/210), and 1.19 has a fix for attached containers (https://github.com/swipely/docker-api/pull/251).
cc @mastahyeti

:+1:


"too many block arguments" error when multiple constructors of the same class take block arguments

class C
  def initialize(&f : String, Int32 ->)
  end

  def initialize(&f : Symbol ->)
  end
end

C.new { |a, b| }

Error in line 9: instantiating 'C.class#new()'
in line 9: too many block arguments (given 2, expected maximum 1)

This is the expected behavior. The second definition overrides the first one.
The block signature does not participate in the signature of the method, it only matters if there is or not a block.
When a method yields multiple arguments, the caller can discard some or all of them.

Duplicate of #5090


[FEATURES] Show number files of the underlying file system in the status of dataset

What feature you'd like to add:
Currently we can show the total size of the dataset
kubectl get dataset hadoop
NAME     UFS TOTAL SIZE   CACHED   CACHE CAPACITY   CACHED PERCENTAGE   PHASE   AGE
hadoop   390.2MiB         0B       4GiB             0%                  Bound   55m

We'd like to show the file numbers of the dataset
kubectl get dataset hadoop -owide
NAME     UFS TOTAL SIZE   TOTAL FILES CACHED   CACHE CAPACITY   CACHED PERCENTAGE   PHASE   AGE
hadoop   390.2MiB           59  0B       4GiB             0%                  Bound   55m

Why is this feature needed:

alluxio fs count $path

Maybe it's better:
alluxio fsadmin report metrics| grep Master.TotalPaths
Master.TotalPaths  (Type: GAUGE, Value: 8)

When i test in imagenet tfrecord job:
alluxio fsadmin report metrics| grep Master.TotalPaths 2.274s
alluxio fs count $path                                                        5.014s

@cheyang Thanks for pointing this.

I agree. Thank you!


Update cf-message-bus

This is to address issue #403
This requires cf-message-bus to be updated first and the gem to be published.

@fraenkel It looks like updating rack broke the CC tests.

I will double check.  Not sure why Rack was updated.


HUM-874: account reaper

Dangit, that won't work, your Wait() will wait forever since the chan isn't closed until after the Wait(). You can't double close a channel, so that's out. You could defer func() {if contObjChan != nil {close(contObjChan)}}() and then set it to nil on the other close just before the Wait()


Use TxnVersion Comparison to Filter Utxo Model Txns From PoS Fee Etimator

#1347  👈
feature/proof-of-stake

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @tholonious and the rest of your teammates on  Graphite


Re-allow consecutively routing over the same route twice

Is your feature request related to a problem? Please describe.
As part of our quickfix (#2667) for the arbitrage loop bug (#2675) , we started discard macro-routes that had been just previously used. This was an acceptable tradeoff to unstuck testnet 53, but is generally a speaking an undesirable regression.
Describe the solution you'd like
A stable solution to the arbitrage loop bug that doesn't discard the best route if it had just previously been routed over.
Describe alternatives you've considered
Instead of fixing it, we could leave it as it is, even if it makes routing worse. We shouldn't do that.

This was an acceptable tradeoff to unstuck testnet 53, but is generally a speaking an undesirable regression.

I'm not sure this is true -- we don't ever want to use the same macro-route twice, because once we fill along a macro-route, we expect that we've consumed up to its spill price, so if the estimation was good, it should no longer be the best route.


Does ConnectyCube Support Huawei Push Notifications ?

Clear question, is it possible to send chat push notifications to Huawei devices ?
In ConnectyCube dashboard i only see APN and FCM.

@jostney currently only APNS (both certificate and JWT based communication) and FCM providers are supported.
Because of low demand in Huawei Push Notifications in  ConnectyCube - there is no much work conducted on this matter except R&D on the Huawei Push Notifications API which seems pretty close to FCM.
Please contact at<EMAIL_ADDRESS>if you have more importance on this matter


[Issue]: rocprofiler-sdk compilation from source

Problem Description
With this issue, I wanted to share an experience with compiling the new rocprofiler-sdk from source.
I compiled rocprofiler-sdk in the docker image rocm/dev-ubuntu-22.04:6.1.2. The build succeeded after resolving the following issues that I encountered:

The documentation in the README.md indicates that rocprofv3 is "shipped with the ROCm stack". It appears that this may not be the case yet for the current publicly available versions of the ROCm stack. E.g., in the docker image rocm/dev-ubuntu-22.04:6.1.2, there does not appear to be a rocprofv3 executable in /opt/rocm/bin.

I followed the Build and Installation instructions from the README.md file. In these instructions, the link in the git clone command appears to contain an error. I reported this in #7.

I used the source code from the amd-mainline branch. The build exited with an error. The reason seems to be that code in the file rocprofiler-sdk/source/lib/rocprofiler-sdk/counters/tests/hsa_tables.cpp seeks to set a member variable hsa_amd_queue_get_info_fn from a struct AmdExtTable. However, it seems that this variable is not yet a member variable of this struct in the currently latest public version of ROCm, and may only become one in a future release. Protecting this line with the preprocessor conditional HSA_AMD_EXT_API_TABLE_STEP_VERSION >= 0x02 as in the amd-staging branch allowed the build to proceed. I do not know if this fix is sufficient; e.g., there are other occurrences of hsa_amd_queue_get_info_fn in the code, but they seemingly did not cause a build issue.

I initially used the libhsa-amd-aqlprofile64.so that came with the docker image. The build exited with linking errors due to missing symbols related to the aqlprofile. I installed the latest libhsa-amd-aqlprofile64.so by installing the .deb package from the link indicated in the warning in the README.md. I did so by using the command dpkg -i .... This deleted the existing aqlprofile libraries from the /opt/rocm/lib directory, and new libraries were installed in a new directory /opt/rocm-6.2.0-14213.  I made symlinks in /opt/rocm/lib to the new libraries in the new directory. This allowed the build to proceed and complete. I do not know if this is a good way of installing the aqlprofile, nor whether replacing the aqlprofile libraries shipped with the rocm image with these new versions may break anything in the existing rocm stack.

This experience may lead to two thoughts:

Unless I made mistakes, this experience suggests that the source code in the amd-mainline branch of rocprofiler-sdk cannot currently be compiled against currently publicly available versions of the ROCm stack, because it appears to depend on features from future releases. This leads to the question of whether there could/should be a branch in the repository that can be compiled against an existing publicly available version of the ROCm stack. This question may be related to the distinction between the "mainline" and "staging" branches.

It would be helpful to provide not only a "warning" about the "aqlprofile", but also some guidance to guide users/developers to install in an appropriate way the aqlprofile library, as well as some guidance about the impact that the installation of an updated version may have. E.g., does it impact only rocprofiler, or does it risk breaking anything in the stack?

The work on rocprofiler-sdk seems really great! I'm looking forward to explore more.
Operating System
Ubuntu 22.04
CPU
AMD Ryzen9 5950X
GPU
AMD Radeon Pro VII
ROCm Version
ROCm 6.1.0
ROCm Component
rocprofiler
Steps to Reproduce
No response
(Optional for Linux users) Output of /opt/rocm/bin/rocminfo --support
No response
Additional Information
No response

rocprofiler-sdk is targeted to be publicly available as a beta release in ROCm 6.2. Building it against 6.1 is unfortunately a bit pointless since 6.1 doesn’t have some necessary changes in HIP to allow tracing the HIP runtime.

Hi @jrmadsen. OK, thanks a lot for the clarification. We'll wait for ROCm 6.2 before exploring the new rocprofiler more.

Hi @lucbruni-amd. Thanks for the follow-up! Indeed, rocprofv3 is now available in the docker images, I think as of ROCm 6.2. We're using it this way no, and we don't compile from source anymore. Thanks for the follow-up! OK to close the issue.

Thank you for your reply, and for your patience regarding this issue. Closing as resolved.


Removing hard channel requirement from options

Also updates warnings and errors to reflect the new functionality

Good, thanks ! :)

I republished the module to NPM as grunt-slack-hook-task in the meantime the owner doesn't get back to us...

Okay great! Thanks for doing that :+1:


chore(packaging): build rpm and deb packages

Update CIrcleCI configuration to start release process on an RC build
Update .goreleaser.yml:

Start building armel and armhf binaries and rpm and debian packages.
Generate sha256 checksum file.

launcher.go: do not use max module to escape integeroverflow problem for armel and armhf builds
Start using v0.142.0 of goreleaser
Added pre and post install/uninstall scripts for rpm amd deb packages

Closes # https://github.com/influxdata/influxdb/issues/19473
Describe your proposed changes here.

[ ] CHANGELOG.md updated with a link to the PR (not the Issue)
[ ] Well-formatted commit messages
[x] Rebased/mergeable
[x] Tests pass
[ ] http/swagger.yml updated (if modified Go structs or API)
[ ] Feature flagged (if modified API)
[ ] Documentation updated or issue created (provide link to issue/pr)
[ ] Signed CLA (if not already signed)

@gshif i need to build RPM of the influxdb locally. I am able to build influxdb perfectly on local using command ./env go build ./cmd/influxd but i am not able to find how to package this as an RPM. Earlier i was using build.py for building the RPM.
I have tied using `[root@ccaee48ea69b influxdb]# make dist
curl -sfL -o goreleaser-install https://install.goreleaser.com/github.com/goreleaser/goreleaser.sh
sh goreleaser-install v0.142.0
goreleaser/goreleaser info checking GitHub for tag 'v0.142.0'
goreleaser/goreleaser info found version: 0.142.0 for v0.142.0/Linux/x86_64
goreleaser/goreleaser info installed ./bin/goreleaser
go build -o /code/bin/pkg-config github.com/influxdata/pkg-config
install xcc.sh /code/bin/xcc
./bin/goreleaser -p 1 --skip-validate --rm-dist --config=.goreleaser-nightly.yml
• releasing...
• loading config file       file=.goreleaser-nightly.yml
• loading environment variables
• getting and validating git state
• releasing v2.0.0-rc.3, commit fbe85ef548e6d2fdd77435a36432028e9b13e7e9
• pipe skipped              error=validation is disabled
• parsing tag
• running before hooks
• setting defaults
• snapshotting
• github/gitlab/gitea releases
• project name
• building binaries
• creating source archive
• archives
• linux packages
• snapcraft packages
• calculating checksums
• signing artifacts
• docker images
• artifactory
• blobs
• homebrew tap formula
• scoop manifests
• milestones
• snapshotting
• pipe skipped              error=not a snapshot
• checking ./dist
• --rm-dist is set, cleaning it up
• writing effective config file
• writing                   config=dist/config.yaml
• generating changelog
• writing                   changelog=dist/CHANGELOG.md
• building binaries
• building                  binary=/code/src/github.com/influxdata/influxdb/dist/influx_linux_amd64/influx
⨯ release failed after 0.61s error=failed to build for linux_amd64: # runtime/cgo
/code/bin/xcc: line 19: exec: musl-gcc: not found
make: *** [dist] Error 1
`
How can i build an RPM of influxdb on centos?

@tosheer , I am not sure there is a simple command that you use in order to build rpm. The best way for now is to follow the release process steps from github.com/influxdata/influxdb/.circleci/config.yml file (lines 447-482:
447   release:
448     docker:
449       - image: circleci/golang:1.15-node-browsers
450     environment:
451       GOCACHE: /tmp/go-cache
452       GOFLAGS: "-mod=readonly -p=4" # Go on Circle thinks 32 CPUs are available, but there aren't.
453       DOCKER_VERSION: 2.0.0-rc
454     working_directory: /go/src/github.com/influxdata/influxdb
455     steps:
456       - checkout
457
458       # Speed up `make nightly` by restoring caches from previous runs.
459       - restore_cache:
460           name: Restoring GOCACHE
461           keys:
462             - influxdb-gocache- # Just match the most recent Go cache.
463       - restore_cache:
464           name: Restoring GOPATH/pkg/mod
465           keys:
466             - influxdb-gomod-{{ checksum "go.sum" }} # Just match the go.sum checksum cache.
467       - setup_remote_docker
468       - run:
469           name: "Docker Login"
470           command: docker login -u "$QUAY_USER" -p $QUAY_PASS quay.io
471       - run: sudo apt-get update && sudo apt-get install -y bzr
472       - install_rust_compiler
473       - install_release_tools
474       - run: make protoc # installs protoc
475       - run:
476           name: import GPG key
477           command: |
478             echo -e "$GPG_PRIVATE_KEY" > private.key
479             gpg --batch --import private.key
480       - run:
481           name: "Build release"
482           command: make release


Q&A: Unclear document for retrain(tunefine) Tesseract LSTM model for box/tiff with hand made created boxes file from image.

Hi,
I don't see any part of in this document (https://github.com/tesseract-ocr/tesseract/wiki/TrainingTesseract-4.00#creating-starter-traineddata)  for create .trainneddata from hand made boxes file.
I want to retrain tesseract 4 for recognize some special characters for my situation. In my case I want recognize some characters like: Φ, φ etc ...
So I create my training data (tiff image + box file) from my images.
I generated its via this command line: tesseract [lang].[fontname].exp[num].tif [lang].[fontname].exp[num] batch.nochop makebox, then after I edit manually by Qt-box-editor.
(I done with this link: https://github.com/tesseract-ocr/tesseract/wiki/Training-Tesseract-–-Make-Box-Files)
So now I files:

.tif file
.box file
.tr file (generated by command: tesseract [lang].[fontname].exp[num].tif [lang].[fontname].exp[num] box.train
unicharset file ( I don't set properties for unicharset file and don't generate font properties file)

My question is: How can I create .trainneddata and tunefine training ltsm for my case from them.
Thank you !

I read tesstrain.sh, seems it use text2image to automatically generate box file from text. But I want to generate box file from my image.
Thank you

See here:
https://github.com/tesseract-ocr/tesseract/wiki/TrainingTesseract-4.00#making-box-files

@amitdo Thank you for replying me
But I have read this part and now I have files:
.tif file
.box file
.tr file (generated by command: tesseract [lang].[fontname].exp[num].tif [lang].[fontname].exp[num] box.train
unicharset file ( I don't set properties for unicharset file and don't generate font properties file)
My question is: How can I create .trainneddata from them ?
Currently, I'm using combine_lang_model to generate .trainneddata but I get an error like:

I downloaded langdata from here: https://github.com/tesseract-ocr/langdata

I find 2 repo contain langdata:
What should I choose, I'm using LSTM in tesseract
1: https://github.com/tesseract-ocr/langdata_lstm
2:  https://github.com/tesseract-ocr/langdata

I find 2 repo contain langdata:
What should I choose, I'm using LSTM in tesseract
1: https://github.com/tesseract-ocr/langdata_lstm
2:  https://github.com/tesseract-ocr/langdata

I find 2 repo contain langdata:
What should I choose, I'm using LSTM in tesseract
1: https://github.com/tesseract-ocr/langdata_lstm
2:  https://github.com/tesseract-ocr/langdata

lease respect guidelines for posting issue: use tesseract user forum for asking questions/support.


Refactor geospatial dedupe

This refactors the geospatial deduplication logic from #175 and #178 into a reusable macro. It also consolidates the "blocks" and "places" model into a single model, which uses the macro twice.
Marking as a draft for now because I'll want to update a couple of things once #182 is in, but this should be ready for some review.

Is this still draft now that #182 is in?

Is this still draft now that https://github.com/cagov/data-infrastructure/pull/182 is in?

Yeah, I'm still validating one or two things. Probably ready on Tuesday!

What's the latest on this PR? @ian-r-rose

What's the latest on this PR? @ian-r-rose

Some counts weren't quite what I expected, so I kept it as a draft so I could investigate further. I should be able to finish it this afternoon!

Okay, this is finally ready! 0873113 was a tricky bug that took me too long to track down, but was resulting in some unexpected nulls at the ~10% level.


pin.JointModelPlanar() 4th joint deforms robot

Hello,
It seemed to me that the 4th joint when you include pin.JointModelPlanar() represented the rotation of the base. However, the larger the magnitude of this value, the more deformed the robot seems to get:
import meshcat
import pinocchio as pin
from pinocchio.visualize import MeshcatVisualizer

model_base, geom_model_base, visual_model_base = pin.buildModelsFromUrdf('stretch/stretch-re2-2025/exported_urdf/stretch.urdf', 'stretch/stretch-re2-2025/exported_urdf/', pin.JointModelPlanar())
data_base, geom_data_base, visual_data_base = pin.createDatas(model_base, geom_model_base, visual_model_base)

viewer = meshcat.Visualizer()
viz = MeshcatVisualizer(model_base, geom_model_base, visual_model_base)
viz.initViewer(viewer)
viz.loadViewerModel(rootNodeName="stretch")

init_qpos = pin.neutral(model_base)
viz.display(init_qpos)

pin.forwardKinematics(model_base, data_base, init_qpos)
pin.framesForwardKinematics(model_base, data_base, init_qpos)
print(data_base.oMf[model_base.getFrameId('joint_gripper_fingertip_right')])

This looks normal. But when I change the 4th joint, the robot is deformed (visually):
init_qpos = pin.neutral(model_base)
init_qpos[3] = 1.
viz.display(init_qpos)

pin.forwardKinematics(model_base, data_base, init_qpos)
pin.framesForwardKinematics(model_base, data_base, init_qpos)
print(data_base.oMf[model_base.getFrameId('joint_gripper_fingertip_right')])

The print statements also reveal that the arm becomes longer as a result of the deformation. The effects are even more obvious when the magnitude is increased further, e.g. init_qpos[3] = 5.
Is this the intended behavior? If so, is there a way to obtain a model of the robot where the rotation of the base is represented as one parameter (unlike pin.JointModelFreeFlyer() where the rotation of the base is represented by four parameters) which does not deform the robot?
Any help will be much appreciated, thanks in advance!

The JointModelPlanar uses a vector with four components to depict the configuration of the joint.
The two first components correspond to the $x$ and $y$ position variables, while the two last correspond to the $\cos(\theta)$ and $\sin(\theta)$ related to the orientation of the joint.
We use this convention as the planar joint is supposed to do an infinite turn on itself (we do not count the number of turns), which is better represented as $(\cos(\theta),\sin(\theta))$, similarly to quaternion for 3d orientations.
Shortly speaking, if you consider an orientation $\theta$, you should use:
init_qpos = pin.neutral(model_base)
init_qpos[2] = math.cos(theta)
init_qpos[3] = math.sin(theta)

This is exactly what I was looking for. Thanks so much for all your help! :)


Running composer install --no-dev --optimize-autoloader before deploying failed

Hi,
I'm new with the easy-deploy-bundle, and apologize in advance if the answer to my question is obvious.
I've installed the bundle using composer require --dev easycorp/easy-deploy-bundle
I'm using a CustomDeployer that runs locally before deploying the 'composer install --no-dev --optimize-autoloader' command and get an error that seems logical : I need to be in dev mode to run the deploy bundle, and removing dev bundles leads to an error in the webprofilerdebug.
Should i need to install the bundle without the --dev file ?
Thanks

Hi,
I'm new with the easy-deploy-bundle, and apologize in advance if the answer to my question is obvious.
I've installed the bundle using composer require --dev easycorp/easy-deploy-bundle
I'm using a CustomDeployer that runs locally before deploying the 'composer install --no-dev --optimize-autoloader' command and get an error that seems logical : I need to be in dev mode to run the deploy bundle, and removing dev bundles leads to an error in the webprofilerdebug.
Should i need to install the bundle without the --dev file ?
Thanks

You are suppose to run the deployer on your local machine cause it will deploy your project from github to the server.
During deploy it will remove all the dev bundles so it doesn't matter if this deploy bundle removed in production server.

Hi,
I'm new with the easy-deploy-bundle, and apologize in advance if the answer to my question is obvious.
I've installed the bundle using composer require --dev easycorp/easy-deploy-bundle
I'm using a CustomDeployer that runs locally before deploying the 'composer install --no-dev --optimize-autoloader' command and get an error that seems logical : I need to be in dev mode to run the deploy bundle, and removing dev bundles leads to an error in the webprofilerdebug.
Should i need to install the bundle without the --dev file ?
Thanks

You mean error occurs during deployment or on your local machine? And yes you need to run this bundle in dev mode, deployment suppose to be done in production server but not local.


blas/gonum: rewrite drotmg

Please take a look.
This is a complete rewrite of Drotmg from the Fortran, staying closer to the structure there. If fixes the behaviour that is referenced in #415, but introduces a need for changes to the expected values in testblas (and doesn't fix the errors in a translation of the netlib Fortran test code - which may have been translated wrong), and causes the OpenBLAS back-end to fail in netlib. However, it looks very much more like the original code.
Fixes #415.

I'm pretty confused actually ... I wrote these tests comparing to the mac Accelerate framework, and found the OpenBLAS bug because the behavior is different. When I originally pulled this PR, I was getting a bunch of failures with both Accelerate and OpenBLAS. Then, when I pulled a fresh copy of OpenBLAS, I now only get a single error with both implementations. Is Accelerate somehow loading from OpenBLAS? If so, why was I seeing implementation differences before? Very confused.

Another reference that looks very useful and may shed some light is https://kar.kent.ac.uk/14202/1/Raermdaarnk.pdf

The most relevant reference is this:
Lawson, C. L., Hanson, R. J., Kinaid, D. R., and Krogh, F. T. 1979b. Basic linear algebra subprograms for Fortran usage. ACM Trans. Math. Softw. 5, 3 (Sept.), 308-323
https://doi.org/10.1145/355841.355847

One final reference, more code oriented with an alternative implementation:
Tim Hopkins. 1997. Restructuring the BLAS level 1 routine for computing the modified givens transformation. SIGNUM Newsl. 32, 4 (October 1997), 2-14. DOI=http://dx.doi.org/10.1145/289251.289253
https://kar.kent.ac.uk/21699/

@vladimir-ch Do you have access to Lawson et al and Hopkins?

Here is the Hopkins implementation. There are too many failures for me to want to wade through it - some presumably are just correct difference in the result, others probably not.
// Drotmg computes the modified Givens rotation. See
// http://www.netlib.org/lapack/explore-html/df/deb/drotmg_8f.html
// for more details.
func (Implementation) Drotmg(d1, d2, x1, y1 float64) (p blas.DrotmParams, rd1, rd2, rx1 float64) {
	// The implementation of Drotmg used here is taken from Hopkins 1997
	// Appendix A: https://doi.org/10.1145/289251.289253

	// TODO(kortschak): Consider placing this in an init func
	// and making gamsq, gam and rgamsq package globals.
	//
	// The original Fortran makes a comparison of math.MaxFloat64 and
	// 1/math.SmallestNonzeroFloat64. This is not possible here
	// as the second value overflows float64.
	gamsq := math.MaxFloat64
	gam := math.Sqrt(gamsq)
	rgamsq := 1 / gamsq

	if d1 < 0 {
		p.Flag = blas.Error
		return p, 0, 0, 0
	}

	var h11, h12, h21, h22 float64
	if d2 == 0 || y1 == 0 {
		p.Flag = blas.Identity
	} else if (d1 == 0 || x1 == 0) && d2 > 0 {
		p.Flag = blas.Diagonal
		h12 = 1
		h21 = -1
		x1 = y1
		d1, d2 = d2, d1
	} else {
		p2 := d2 * y1
		p1 := d1 * x1
		q2 := p2 * y1
		q1 := p1 * x1
		if math.Abs(q1) > math.Abs(q2) {
			p.Flag = blas.OffDiagonal
			h11 = 1
			h22 = 1
			h21 = -y1 / x1
			h12 = p2 / p1
			u := 1 - h12*h21
			if u <= 0 {
				// This requires that a blas.Error (2) be added to blas.Flag's values
				p.Flag = blas.Error
				return p, 0, 0, 0
			} else {
				d1 /= u
				d2 /= u
				x1 *= u
			}
		} else {
			if q2 < 0 {
				p.Flag = blas.Error
				return p, 0, 0, 0
			} else {
				p.Flag = blas.Diagonal
				h21 = -1
				h12 = 1
				h11 = p1 / p2
				h22 = x1 / y1
				u := 1 + h11*h22
				d1, d2 = d2/u, d1/u
				x1 = y1 * u
			}
		}
	}

	if p.Flag != blas.Error && p.Flag != blas.Identity {
		for d1 <= rgamsq && d1 != 0 {
			p.Flag = blas.Rescaling
			d1 = (d1 * gam) * gam
			x1 /= gam
			h11 /= gam
			h12 /= gam
		}
		for d1 > gamsq {
			p.Flag = blas.Rescaling
			d1 = (d1 / gam) / gam
			x1 *= gam
			h11 *= gam
			h12 *= gam
		}

		for math.Abs(d2) <= rgamsq && d2 != 0 {
			p.Flag = blas.Rescaling
			d2 = (d2 * gam) * gam
			h21 /= gam
			h22 /= gam
		}
		for math.Abs(d2) > gamsq {
			p.Flag = blas.Rescaling
			d2 = (d2 / gam) / gam
			h21 *= gam
			h22 *= gam
		}
	}

	switch p.Flag {
	case blas.Diagonal:
		p.H = [4]float64{h11, -1, 1, h22}
	case blas.OffDiagonal:
		p.H = [4]float64{1, h21, h12, 1}
	case blas.Rescaling:
		p.H = [4]float64{h11, h21, h12, h22}
	case blas.Identity:
		// This is [1, 0, 1, 0] in the paper
		// which is obviously incorrect.
		p.H = [4]float64{1, 0, 0, 1}
	case blas.Error:
		// Do nothing; p.H is already zero.
	default:
		panic("blas: unexpected blas.Flag")
	}

	return p, d1, d2, x1
}

I will go through it today. Hopefully most (all?) failures will be due to a
different value of gam. If not, it should be easy to spot the differences
or at least it could help us restructure the existing Drotmg.
On Feb 28, 2018 01:23, "Dan Kortschak"<EMAIL_ADDRESS>wrote:

Here is the Hopkins implementation. There are too many failures for me to
want to wade through it - some presumably are just correct difference in
the result, others probably not.
// Drotmg computes the modified Givens rotation. See
// http://www.netlib.org/lapack/explore-html/df/deb/drotmg_8f.html
// for more details.
func (Implementation) Drotmg(d1, d2, x1, y1 float64) (p blas.DrotmParams, rd1, rd2, rx1 float64) {
// The implementation of Drotmg used here is taken from Hopkins 1997
// Appendix A: https://doi.org/10.1145/289251.289253
// TODO(kortschak): Consider placing this in an init func
// and making gamsq, gam and rgamsq package globals.
//
// The original Fortran makes a comparison of math.MaxFloat64 and
// 1/math.SmallestNonzeroFloat64. This is not possible here
// as the second value overflows float64.
gamsq := math.MaxFloat64
gam := math.Sqrt(gamsq)
rgamsq := 1 / gamsq
if d1 < 0 {
p.Flag = blas.Error
return p, 0, 0, 0
}
var h11, h12, h21, h22 float64
if d2 == 0 || y1 == 0 {
p.Flag = blas.Identity
} else if (d1 == 0 || x1 == 0) && d2 > 0 {
p.Flag = blas.Diagonal
h12 = 1
h21 = -1
x1 = y1
d1, d2 = d2, d1
} else {
p2 := d2 * y1
p1 := d1 * x1
q2 := p2 * y1
q1 := p1 * x1
if math.Abs(q1) > math.Abs(q2) {
p.Flag = blas.OffDiagonal
h11 = 1
h22 = 1
h21 = -y1 / x1
h12 = p2 / p1
u := 1 - h12*h21
if u <= 0 {
// This requires that a blas.Error (2) be added to blas.Flag's values
p.Flag = blas.Error
return p, 0, 0, 0
} else {
d1 /= u
d2 /= u
x1 = u
}
} else {
if q2 < 0 {
p.Flag = blas.Error
return p, 0, 0, 0
} else {
p.Flag = blas.Diagonal
h21 = -1
h12 = 1
h11 = p1 / p2
h22 = x1 / y1
u := 1 + h11h22
d1, d2 = d2/u, d1/u
x1 = y1 * u
}
}
}
if p.Flag != blas.Error && p.Flag != blas.Identity {
for d1 <= rgamsq && d1 != 0 {
p.Flag = blas.Rescaling
d1 = (d1 * gam) * gam
x1 /= gam
h11 /= gam
h12 /= gam
}
for d1 > gamsq {
p.Flag = blas.Rescaling
d1 = (d1 / gam) / gam
x1 *= gam
h11 *= gam
h12 *= gam
}
  for math.Abs(d2) <= rgamsq && d2 != 0 {
  	p.Flag = blas.Rescaling
  	d2 = (d2 * gam) * gam
  	h21 /= gam
  	h22 /= gam
  }
  for math.Abs(d2) > gamsq {
  	p.Flag = blas.Rescaling
  	d2 = (d2 / gam) / gam
  	h21 *= gam
  	h22 *= gam
  }

}
switch p.Flag {
case blas.Diagonal:
p.H = [4]float64{h11, -1, 1, h22}
case blas.OffDiagonal:
p.H = [4]float64{1, h21, h12, 1}
case blas.Rescaling:
p.H = [4]float64{h11, h21, h12, h22}
case blas.Identity:
// This is [1, 0, 1, 0] in the paper
// which is obviously incorrect.
p.H = [4]float64{1, 0, 0, 1}
case blas.Error:
// Do nothing; p.H is already zero.
default:
panic("blas: unexpected blas.Flag")
}
return p, d1, d2, x1
}
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/gonum/gonum/pull/420#issuecomment-369075932, or mute
the thread
https://github.com/notifications/unsubscribe-auth/ABwJviHYPYv21jdiGrAU_Zdc69xmmRzbks5tZJyZgaJpZM4SH0_b
.

If I do the following changes:

replace blas.Error with blas.Rescaling just to make the tests pass, this could be handles later.
set gam and related values to the original ones
remove the (incorrect) scaling by sqrt in the test and instead scale v by sqrt(rd2) as in

if rd2 >= 0 {
    v *= math.Sqrt(rd2)
}

then I get the following test failures:
	level1double.go:2090: drotmg H mismatch ZeroD1: expected [0 0 0 2], found [0 0 0 0]
	level1double.go:2090: drotmg H mismatch RD1_Big_RD2_Big_Flag_0: expected [4096 -4096 1 4096], found [4096 -3584 1792 4096]
	level1double.go:2090: drotmg H mismatch RD1_Big_RD2_Big_Flag_1: expected [2340.5714285714284 -4096 1 4681.142857142857], found [2340.5714285714284 -4096 4096 4681.142857142857]
	level1double.go:2090: drotmg H mismatch D1_Big_D2_Small_Flag_1: expected [2.8671999999999997e-26 -0.000244140625 1 2.44140625e-16], found [2.8671999999999997e-26 -0.000244140625 4096 2.44140625e-16]
	level1double.go:2090: drotmg H mismatch D1_Small_D2_Big_Flag_1: expected [2.3731773997569866e+10 -1.6777216e+07 1 1.6777216e-07], found [2.3731773997569866e+10 -1.6777216e+07 0.000244140625 1.6777216e-07]
	level1double.go:2090: drotmg H mismatch OpenBLAS#1452: expected [1.6110934624105326e-06 -0.000244140625 1 1.6276041666666668e-06], found [1.6110934624105326e-06 -0.000244140625 0.000244140625 1.6276041666666668e-06]

The first failure is obviously a bad expectation:
	level1double.go:2090: drotmg H mismatch ZeroD1: expected [0 0 0 2], found [0 0 0 0]

Here the test case is:
{
		Name: "ZeroD1",
		P: &blas.DrotmParams{
			Flag: blas.Diagonal,
			H:    [4]float64{0, 0, 0, 2},
		},
		D1:  0,
		D2:  2,
		X1:  8,
		Y1:  4,
		Rd1: 2,
		Rd2: 0,
		Rx1: 4,
	},

The expectation on H makes no sense. d1 zeros out the first component, so flag should be Diagonal and H should be just a 90 degree rotation, ie, all zeros, then d1 goes into rd2 (and so the rotated scaled y is zero), and y1 into rx1. Also Drotm ignores H[3] for flag Diagonal.
Then
	level1double.go:2090: drotmg H mismatch RD1_Big_RD2_Big_Flag_0: expected [4096 -4096 1 4096], found [4096 -3584 1792 4096]
	level1double.go:2090: drotmg H mismatch RD1_Big_RD2_Big_Flag_1: expected [2340.5714285714284 -4096 1 4681.142857142857], found [2340.5714285714284 -4096 4096 4681.142857142857]

	level1double.go:2090: drotmg H mismatch D1_Small_D2_Big_Flag_1: expected [2.3731773997569866e+10 -1.6777216e+07 1 1.6777216e-07], found [2.3731773997569866e+10 -1.6777216e+07 0.000244140625 1.6777216e-07]

would pass if it wasn't for the changes to the expected values made in this PR.
The other two failing test cases show the same pattern: the expected H[2] is 1, the gotten H[2] is different, flag is Rescaling in all cases and also looking at the scales d1,d2 I think rescaling took place in both components triggering the nonsensical behavior I described yesterday. So the question is where the expected H values come from but seeing the situation I'm skeptical these are correct.

Thanks for that. I trust the programmatic tests much more than I trust the golden values - this passes with the changes you describe. Though the weirdness with the sqrt irritates me. Can you explain that?
PTAL

Let w := [w1,w2]^T be a vector in R^2, and G a Givens rotation that zeros out w2. We can decompose w as w = S v where S is a scaling matrix (this can always be done by taking S = I) and v := [x1,y1]^T.
So to zero out w2, we do G w = G S v. It can be shown that G S can be rewritten as D H where D is another scaling matrix and H has two unit entries. As is written in the BLAS paper, only the squares of the scale factors are involved in the nonunit elements of H and so square roots can be avoided by updating the squares of the scale factors, i.e., by updating D^2. Knowing this, if we go back and start with D^{1/2} (in D^{1/2} H v), then we end up updating D (which is what Drotmg does). But this also means that after applying H v, if you want to recover the rotated w itself, you have to multiply by D^{1/2} and that's where the sqrt comes from.

I personally would wait for some discussion with OpenBLAS on the value of gam. I'm not sure the gains gotten from changing gam outweigh the costs of returning different values than all other representations. All these bugs suggest to me at least that drotmg is not particularly widely used, and so it's especially unclear to me if it's worth the headache.


Update homepage promotion slots documentation

What
Update the homepage promotion slots documentation.
Why
Following the recent updates to the homepage layout and design, we need to ensure that the developer documentation is accurate, allowing a developer to follow the documentation and update the promotional slots on the homepage.
Trello card

⚠ This repo is Continuously Deployed: make sure you follow the guidance ⚠

LGTM!


There are city residents without homes

No city denizen should be without a home.
Cities should be built for zero homelessness, both in equilibrium and during times of disaster.  Visualizations of the state of homelessness in one's own city, how cities that ended homelessness did so, and ways to get there, should be publicly available to all modern cities.

Potential paths to resolution include:

Build an interlace of housing infrastructure, developments, policies, service providers, and determinants
Develop visual overlays and summaries that support city-level decisionmaking and individual matchmaking
Connect similar initiatives with maps between approaches, goals, and community roles


cf_application_info, cf_application_instances, cf_application_instances_running delayed by one day

I have deployed cf_exporter on our pivotal cloud foundry instances, and having a Prometheus scraping it every 5 minutes. However I found that after pushing a new application, the application instance show in the result of cf_application_info, cf_application_instances and cf_application_instances_running after the application has been deployed for a day. Is there anything that I am missing here or any advice on where should I check for such delay?

@yuyang-os does the app show up immediately on the exporter itself? Is the delay in the exporter picking it up from the API or the Prometheus instance picking up from the exporter?

I am running into similar problem. old values are still showing up on following metrics:

`

cf_application_disk_quota_mb{}
1

cf_application_info{}
1

cf_application_instances{}
1

cf_application_instances_running{}
1

cf_application_memory_mb{}

`


math32.h: remove typeof depends

Summary
time: change time_t to signed type in TIME32/64
It is wrong to set the time_t to uint32_t, it should be signed type, see the reference here:
https://www.gnu.org/software/libc/manual/html_node/Time-Types.html
Impact
time
Testing
sim

I think this is already 4th or 5th time the similar change is proposed in some variation. I think that such changes should be first discuss in the mailing list.

Just for reference https://github.com/apache/nuttx/pull/8201

Thank you for the reference @pkarashchenko I think @mu578 pointed it correctly about a consensus of using time_t as signed among other OSes and also the explanation about d-time usage for libraries. Also I think he is wrong about not have 32-bit arch around in 2038, it is just 14 years from now.
BTW, I think it is better to discuss about it in the mailing list as you suggested and later create some documentation/reference to avoid this issues come back.

Open group documents that definition of time_t is not specified but is mandated in order to eventually address the year 2038 problem.

The safe path for 2038 is enabling CONFIG_SYSTEM_TIME64. Actually, we enable CONFIG_SYSTEM_TIME64 in all products, since it's very fragile to support 2038 with 32bit time_t.

There can be pros and cons to either approach and therefore I think it should be discussed at mailing list.
Thanks for requesting the review. :-)

close dup with https://github.com/apache/nuttx/pull/14273


Specify a type of node to autodiscover

The current method of discovery is pretty broad:

connect to a node
call /_nodes/_all endpoint (because no nodes were specified)
add all nodes with an http_address value to the servers list.

The problem is, this requires you to set http.enabled: false on the nodes you don't want serving query requests. ( i.e. master nodes). It then follows that you can't get stats from the master nodes, because http.enabled is set to false on them, and the http module has to be enabled to get stats out of a node.
What is needed in this library is a way to specify which nodes you actually want to discover. Unless I missed it, there does seem to be a way to do this if you're constructing an action to get NodesInfo, but the NodeChecker class builds the action completely inside of itself, and there's not a way to specify which nodes to discover from the HttpClientConfig.Builderclass
What I'm looking for is just a way to specify nodes, so that the endpoint being called will be something like
_nodes/<some node attribute to filter on>/http

whereas it's currently
_nodes/_all/http

Hi @kramer, could we discuss this or were you just waiting on a PR?
Possibly relates to #312

Hi @bdharrington7, sorry for the late reply. This seems like a reasonable request and I think having a user configurable string variable (e.g.: discoveryFilter) passed from ClientConfig to NodeChecker (which is then used to construct the nodes info action) sounds like a good solution.
What do you think? If you agree then feel free to go ahead cook this up in a PR.

I might have been mistaken on it being related to issue 312


#840 Issue resolved

Related Issue
#840
Description

Improved the delay time of scroll
improved the welcome content div
also applied text formatting in the entire index.html

Type of PR

[X] Bug fix
[X] Feature enhancement
[x] Documentation update
[ ] Other (specify): _______________

Screenshots / videos (if applicable)

Learn Sow Grow all in one line not like previous
Have A Look To This Video
it shows the scroll button function without any lag or delay
https://github.com/Suchitra-Sahoo/AgriLearnNetwork/assets/67885970/694df318-a4a6-45ca-b05e-f0af4bb1db4c
Checklist:

[X] I have performed a self-review of my code
[X] I have read and followed the Contribution Guidelines.
[X] I have tested the changes thoroughly before submitting this pull request.
[X] I have provided relevant issue numbers, screenshots, and videos after making the changes.
[ ] I have commented my code, particularly in hard-to-understand areas.

Additional context:
[Include any additional information or context that might be helpful for reviewers.]

Resolve the conflicts

removed the conflict

recently homepage is updated which is not visible in your branch so pull all changes.

scroll to top option is looking like this.


all: unrecognized failures on linux-amd64-wsl

#!watchflakes
default <- builder == "linux-amd64-wsl"

(attn @golang/wsl)

The recent failures seem to be real bugs in tests, and aren't the same as the flakes that originally prompted me to file this issue. Closing as obsolete.


Remove deprecated targetSdk property in library modules

As per https://stackoverflow.com/questions/75256272/kotlin-multiplatform-mobile-targetsdk-deprecated, the targetSdk property is not needed in library modules. This PR removes them.

looks good to me, thanks! :)

@Zeronfinity One of the unit tests is failing (both locally and on Github) because it times out waiting for PixelCopy to complete. Any chance you know what could cause this?

Hi @JolandaVerhoef . It seems like - before the change, Robolectric is running the tests for only the target SDK version, which was 34. When the target SDK version is removed, Robolectric is running the tests for min SDK version only, which is 21. Meanwhile, it seems like ShadowPixelCopy is supported for SDK >= 26.
Please add a minSdk annotation to the problematic test to solve this issue, i.e. change @Config(shadows = [ShadowPixelCopy::class]) to @Config(shadows = [ShadowPixelCopy::class], minSdk = 26)` for test ``.
While the minSdk should definitely be added with ShadowPixelCopy test, I am not sure if this change is good with Robolectric overall. If Robolectric is being run on only one SDK level, shouldn't running on the target API level be quite important? Ideally, Robolectric should be configured to test on all SDK levels from min SDK and onwards. But I guess this is something to discuss with JCA team, exactly what behavior we should try to use for the robolectric tests.
And another thing I am curious about, it seems like the target SDK level is being deprecated because it's just a hint. But this hint may already being used by various libraries, e.g. Robolectric in this case (but there might be other cases too in future). So in a bottom-up approach (e.g. running a module independently), any dependency on the target SDK level will face problem. That makes me wonder if removing it from the modules is really important.

By the way, while testing it out, it seems like adding a min SDK makes the tests eventually fail at later SDKs due to heap space error. Quick guess is it might be an issue with compose resources not being properly cleaned up (or reused) after Robolectric runs a test for each of the SDK levels.


Update images.md

typo fix possible -> possibly

@bhainesva Thank you for your contribution. Please sign the CLA so we can accept your PR for review.
/assign

Hi @bhainesva we'd love to review your PR but we haven't heard from you. So I'm going to temporarily close this PR, feel free to reopen when you're ready to continue 😄
/close


feature(drag-event-handlers): Add drag event handlers

Hi, thanks for a great lib!
I was using it to create a "hybrid" drag-to-move + click-to-move with move hints (similar to Chess.com) and was in need of knowing when a piece is being "grabbed" in order to select it and show the move hints. To accomplish this, I've added 2 new event handlers: onPieceDragBegin and onPieceDragEnd. With these additions, I could very easily accomplish my goal by adding this to my props:
<Chessboard
  ...
  onPieceDragBegin={(_, square) => setSelectedSquare(square)}
/>

This PR adds these 2 new event handlers.
Please note:

Aside from adding the new callbacks, I've fixed some incorrect documentation / signatures for onPieceDrop(). In 2 places it was described as receiving an object instead of 3 separate parameters.
For my use case (described above) I only needed onPieceDragBegin, but decided to add onPieceDragEnd as well for completeness. I guess it has its own use, in case you'd want to cancel showing something after dragging, even if it didn't complete a drop onto a square.
Used separate parameters (instead of 1 object) for the new callbacks, since that seems to be the case for the other callbacks (aside from the incorrect doc). I've put piece as the first parameter, since they are "onPiece..." events.

Thanks!

Cheers for the contribution and docs fix, looks great


How to add metadata to nodejs header without using SSL？

var channelCredentials = grpc.credentials.createSsl();
var credentials = grpc.credentials.createFromMetadataGenerator(generateMetadata);
var client = new services.AsrServiceClient('<IP_ADDRESS>:8051', grpc.credentials.combineChannelCredentials(channelCredentials, credentials));
I have to use SSL add metadata to nodejs header.
How to add metadata to nodejs header without using SSL？

Please direct general question like this one to https://stackoverflow.com/search?tab=newest&q=grpc is%3Aquestion
Your answer may already be there or you can post a new question if it's not.


CI: remove py36 and py37

What happened:
py36 and py37 is no more supported on molecule. needs to remove those CI targets

Also: may run CI tox outside of cluster for faster CI (no docker build).
Also: enable more TOX and ANSIBLE colors. See https://github.com/ansible-community/molecule-vagrant/blob/main/tox.ini#L27


Update scala-csv to 1.3.8

Updates com.github.tototoshi:scala-csv from 1.3.6 to 1.3.8.
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "com.github.tototoshi", artifactId = "scala-csv" } ]

labels: library-update, semver-patch

Superseded by #87.


Collections.Callable DeprecationWarning

Summary.
Python 3.7.0b3 has a new warning:
.../python3.7/site-packages/requests/models.py:177: DeprecationWarning: Using or importing the ABCs from 'collections' instead of from 'collections.abc' is deprecated, and in 3.8 it will stop working
  if isinstance(hook, collections.Callable):

Expected Result
Need to change this line (and other references) to if isinstance(hook, collections.abc.Callable):
What you expected.
Actual Result
What happened instead.
Reproduction Steps
import requests

System Information
$ python -m requests.help

{
  "chardet": {
    "version": "3.0.4"
  },
  "cryptography": {
    "version": ""
  },
  "idna": {
    "version": "2.6"
  },
  "implementation": {
    "name": "CPython",
    "version": "3.7.0b3"
  },
  "platform": {
    "release": "16.7.0",
    "system": "Darwin"
  },
  "pyOpenSSL": {
    "openssl_version": "",
    "version": null
  },
  "requests": {
    "version": "2.18.4"
  },
  "system_ssl": {
    "version": "1010007f"
  },
  "urllib3": {
    "version": "1.22"
  },
  "using_pyopenssl": false
}

This command is only available on Requests v2.16.4 and greater. Otherwise,
please provide some basic information about your system (Python version,
operating system, &c).

Hey @hsolbrig, this is actually a duplicate of #4494 and we have a PR in the queue to address this. Next time please make sure to check issues and pull requests before opening a new one. Thanks for taking the time to bring this to our attention though!


Add birth place to search record so that we can sort results by birth place.

Requires a field to be added; to be populated by a) the transformer for both vld and csv and b) a one time rake task

Field added to search_record; rake task written to populate existing records; code added to csv transformation. Deployed to test3

populated birth record field in search records on test3

Given the extensive time that would be required for this to run on the production system it would be better to addd the code to the transformation code run as part of the monthly update.

Added to freecen1 vld translator as part of CEN2 code

Needs to be checked after a deployment and a freecen1 update

Next update is due around the 16th November. Will test after this update is done.
Geoff

This appears to work OK. I compared results on test3 with results on the live system and they were comparable.
I did one search where I simply searched for surname Jones born in BRK and census county BRK to see what sort of result I got. Naturally there were a lot of them.
Do we want to give the researcher the option of sorting them on the Birth Place so that the records for one Birth Place all appear together? It may help find the record that the resarcher needs to find instead of haveing similar Biryh Places scattered in a long list.
Geoff

Need to review

Confirmed that the monthly update now adds the birth_place to the search record.
Now need to write a slow crawler to update all existing search records with the field.
Once that is done we can sort on that field

Confirmed that the monthly update now adds the birth_place to the search record.
Now need to write a slow crawler to update all existing search records with the field.
Once that is done we can sort on that field

Kirk
I presume from this that it is the birth_place you are searching on and not the verbatim_birth_place. Or is it verbatim_birth_place unless birth_place is populated?
There will be places that we have never found at validation. They usually have a note entry. The reason that I raise this is that there will be several thousand entries that will not match the Place Names database. In addition there will be many Place Names that exist but are not in the database. Often woods, hills etc that were very rural. They would have been validated as valid under the FC1 system because all we did was make sure that they existed somewhere. It was not as specific as FC2.
Will that affect the crawler results?
Geoff
From: Kirk Dawson<EMAIL_ADDRESS>Sent: Wednesday, January 6, 2021 8:26 AM
To: FreeUKGen/FreeCENMigration<EMAIL_ADDRESS>Cc: geoffj-FUG<EMAIL_ADDRESS>Comment<EMAIL_ADDRESS>Subject: Re: [FreeUKGen/FreeCENMigration] Add birth place to search record so that we can sort results by birth place. (#1010)
Confirmed that the monthly update now adds the birth_place to the search record.
Now need to write a slow crawler to update all existing search records with the field.
Once that is done we can sort on that field
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub https://github.com/FreeUKGen/FreeCENMigration/issues/1010#issuecomment-754939820 , or unsubscribe https://github.com/notifications/unsubscribe-auth/AKCPIFLLFXOKE7AQPYZC6DTSYOGY3ANCNFSM4SNKHDHA .  https://github.com/notifications/beacon/AKCPIFIPA3FF2XMO5RIDZULSYOGY3A5CNFSM4SNKHDHKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOFT7XPLA.gif

Kirk
I presume from this that it is the birth_place you are searching on and not the verbatim_birth_place. Or is it verbatim_birth_place unless birth_place is populated?
There will be places that we have never found at validation. They usually have a note entry. The reason that I raise this is that there will be several thousand entries that will not match the Place Names database. In addition there will be many Place Names that exist but are not in the database. Often woods, hills etc that were very rural. They would have been validated as valid under the FC1 system because all we did was make sure that they existed somewhere. It was not as specific as FC2.
Will that affect the crawler results?
Geoff
From: Kirk Dawson<EMAIL_ADDRESS>Sent: Wednesday, January 6, 2021 8:26 AM
To: FreeUKGen/FreeCENMigration<EMAIL_ADDRESS>Cc: geoffj-FUG<EMAIL_ADDRESS>Comment<EMAIL_ADDRESS>Subject: Re: [FreeUKGen/FreeCENMigration] Add birth place to search record so that we can sort results by birth place. (#1010)
Confirmed that the monthly update now adds the birth_place to the search record.
Now need to write a slow crawler to update all existing search records with the field.
Once that is done we can sort on that field
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub https://github.com/FreeUKGen/FreeCENMigration/issues/1010#issuecomment-754939820 , or unsubscribe https://github.com/notifications/unsubscribe-auth/AKCPIFLLFXOKE7AQPYZC6DTSYOGY3ANCNFSM4SNKHDHA .  https://github.com/notifications/beacon/AKCPIFIPA3FF2XMO5RIDZULSYOGY3A5CNFSM4SNKHDHKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOFT7XPLA.gif

@geoffj-FUG this has nothing to do with the search. Last in 2020 we added the display of an individuals birth place to the Search results page

For vld entries we look up the individual to get the information. Foe csv we add the information to the search record. We use the alt POB if there else the Verbatim POB. Code had been added to the vld transformer to place the birth place in the search record. The crawler will simply look up the individual doe a search record and add the birth place to the search record.
At that point in time we will be able to sort the display by Birth Place like the other columns.

@geoffj-FUG this has nothing to do with the search. Last in 2020 we added the display of an individuals birth place to the Search results page

For vld entries we look up the individual to get the information. Foe csv we add the information to the search record. We use the alt POB if there else the Verbatim POB. Code had been added to the vld transformer to place the birth place in the search record. The crawler will simply look up the individual doe a search record and add the birth place to the search record.
At that point in time we will be able to sort the display by Birth Place like the other columns.

Thanks Kirk
Just sanity checking.
I understand now.
Geoff
From: Kirk Dawson<EMAIL_ADDRESS>Sent: Wednesday, January 6, 2021 8:56 AM
To: FreeUKGen/FreeCENMigration<EMAIL_ADDRESS>Cc: geoffj-FUG<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [FreeUKGen/FreeCENMigration] Add birth place to search record so that we can sort results by birth place. (#1010)
@geoffj-FUG https://github.com/geoffj-FUG  this has nothing to do with the search. Last in 2020 we added the display of an individuals birth place to the Search results page
https://user-images.githubusercontent.com/2874694/103708417-c9c39600-4f6d-11eb-9818-fd6422c1dd37.png
For vld entries we look up the individual to get the information. Foe csv we add the information to the search record. We use the alt POB if there else the Verbatim POB. Code had been added to the vld transformer to place the birth place in the search record. The crawler will simply look up the individual doe a search record and add the birth place to the search record.
At that point in time we will be able to sort the display by Birth Place like the other columns.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/FreeUKGen/FreeCENMigration/issues/1010#issuecomment-754951685 , or unsubscribe https://github.com/notifications/unsubscribe-auth/AKCPIFOV5DNGEIQ4LMHX47TSYOKJNANCNFSM4SNKHDHA .  https://github.com/notifications/beacon/AKCPIFLEDY2KDBL7Z625GG3SYOKJNA5CNFSM4SNKHDHKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOFT72MBI.gif

Thanks Kirk
Just sanity checking.
I understand now.
Geoff
From: Kirk Dawson<EMAIL_ADDRESS>Sent: Wednesday, January 6, 2021 8:56 AM
To: FreeUKGen/FreeCENMigration<EMAIL_ADDRESS>Cc: geoffj-FUG<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [FreeUKGen/FreeCENMigration] Add birth place to search record so that we can sort results by birth place. (#1010)
@geoffj-FUG https://github.com/geoffj-FUG  this has nothing to do with the search. Last in 2020 we added the display of an individuals birth place to the Search results page
https://user-images.githubusercontent.com/2874694/103708417-c9c39600-4f6d-11eb-9818-fd6422c1dd37.png
For vld entries we look up the individual to get the information. Foe csv we add the information to the search record. We use the alt POB if there else the Verbatim POB. Code had been added to the vld transformer to place the birth place in the search record. The crawler will simply look up the individual doe a search record and add the birth place to the search record.
At that point in time we will be able to sort the display by Birth Place like the other columns.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/FreeUKGen/FreeCENMigration/issues/1010#issuecomment-754951685 , or unsubscribe https://github.com/notifications/unsubscribe-auth/AKCPIFOV5DNGEIQ4LMHX47TSYOKJNANCNFSM4SNKHDHA .  https://github.com/notifications/beacon/AKCPIFLEDY2KDBL7Z625GG3SYOKJNA5CNFSM4SNKHDHKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOFT72MBI.gif

After considering how to write an run a crawler to populate the birth place field realized there was a simpler way. When we retrieve the results of a search code is added to extract the birth place from the individual document if it is not in the search record. It then stores it in the search record for future use. This adds a short amount of time to the first search that retrieves the record for the first time but nothing thereafter. It therefore populates the field over time but only those records that are ever retrieved.
The results ate then sortable by place of birth
Implemented on test3.

After considering how to write an run a crawler to populate the birth place field realized there was a simpler way. When we retrieve the results of a search code is added to extract the birth place from the individual document if it is not in the search record. It then stores it in the search record for future use. This adds a short amount of time to the first search that retrieves the record for the first time but nothing thereafter. It therefore populates the field over time but only those records that are ever retrieved.
The results ate then sortable by place of birth
Implemented on test3.


fix(connector-quorum/ethereum): strengthen contract parameter validation

Description
Static source code assessment has picked up a potential code injection  vulnerability
in the code of the Quorum and Ethereum connectors where we pass in an array of
user-provided arguments to the EVM contract methods.
Web3JS already has validation on the number of arguments, but we could fortify
things on our end regardless by doing

Additional type checking
Ensuring that the number of arguments are the correct one (if we can obtain
this information somehow from the ABI)

The report from which the above information was summarized
Risk Rating: High
Category: Injection
Description
The application's ‘invokeRawWeb3EthContract method’ receives and dynamically executes user-controlled code using invocationParams. This could enable an attacker to inject and run arbitrary code. The attacker can inject the executed code via user input, body, which is retrieved by the application in the handleRequest method.
Impact
An attacker could run arbitrary code on the application server host. Depending on the application’s OS permissions,these could include:

Database access, such as reading or modifying sensitive data.
File actions (read / create / modify / delete).
Changing the website
Open a network connection to the attacker’s server.
Decrypt secret data using the application's encryption keys.
Start and stop system services.
Complete server takeover.

Remediation Recommendation

The application should not compile, execute, or evaluate any untrusted code from any external source, including user input, uploaded files, or a database.
If it is absolutely necessary to include external data in dynamic execution, it is permissible to pass the data as parameters to the code, but do not execute user data directly.
If it is necessary to pass untrusted data to dynamic execution, enforce very strict data validation. For example, accept only integers between certain values.
Validate all input, regardless of source. Validation should be based on a whitelist: accept only data fitting a specified structure, rather than reject bad patterns. Parameters should be limited to an allowed character set, and non-validated input should be dropped. In addition to characters, check for:

Data type
Size
Range
Format
Expected values

If possible, always prefer to whitelist known and trusted input instead of comparing to a blacklist.
Configure the application to run using a restricted user account that has no unnecessary privileges.
If possible, isolate all dynamic execution to use a separate, dedicated user account that has privileges only for the specific operations and files used by dynamic execution, according to the Principle of Least Privilege.
Prefer passing user data to a pre-implemented script, e.g. in another isolated application, over dynamically executing user-controlled code.

Affected Files
Path
Line No

packages\cactus-plugin-ledger-connector-quorum\src\main\typescript\web-services\invoke-raw-web3eth-contract-v1-endpoint.ts.

Line number: 91

packages\cactus-plugin-ledger-connector-quorum\src\main\typescript\plugin-ledger-connector-quorum.ts

Line number: 904

packages\cactus-plugin-ledger-connector-ethereum\src\main\typescript\web-services\invoke-raw-web3eth-contract-v1-endpoint.ts.

Line number: 91

packages\cactus-plugin-ledger-connector-ethereum\src\main\typescript\plugin-ledger-connector-ethereum.ts.

Line number: 800

Snapshot of source code at the time of scan

Source: APP PE Hyperledger Cacti v2.0.0 - Static Application Assessment Report.odt
cc: @takeutak @izuru0 @outSH

Good idea, we could use @ethersproject/abi to get function inputs from ABI and validate it's type - https://docs.ethers.org/v5/api/utils/abi/fragments/#FunctionFragment

hey @petermetz should I give it a try?

@shivam-Purohit Fine by me, yes!


Minor README formatting update.

This formatting change is largely incidental. The real purpose of this commit it to test out homu.io.

@homu r+

@homu r=abingham


[WIP] Create a test for ODS-536

This test launches a flask server in notebook and verifies that
it can be curled from another notebook.

@LaVLaS I could use a hand here in getting that final output read and compare to work. It might be confused because there are multiple notebooks running? idk.

@LaVLaS @lugi0
Turns out this was failing because a newline on the flask server output is required for robot to recognize the output.
So the code here is correct currently.
I'll make sure none of the sleeps are necessary and update.

Jenkins issue: https://opendatascience-jenkins-csb-rhods.apps.ocp4.prod.psi.redhat.com/job/rhods-ci-pr-test/159/console


Fix: update collector profile header padding

This PR resolves []
Description
Updates the padding when there is no Bio data in the collector profile

Before
After

PR Checklist

[ ] I tested my changes on iOS / Android.
[ ] I added screenshots or videos to illustrate my changes.
[ ] I added Tests and Stories for my changes.
[ ] I added an app state migration.
[ ] I hid my changes behind a feature flag.

To the reviewers 👀

[ ] I would like at least one of the reviewers to run this PR on the simulator or device.

Changelog updates
Changelog updates

Cross-platform user-facing changes

update collector profile header padding - mrsltun

iOS user-facing changes

Android user-facing changes

Dev changes

Need help with something? Have a look at our docs, or get in touch with us.

I guess I won't merge till we get the 🟢 light from this thread?

@gkartalis I think it's an issue that needs to be merged :)


Validation for textarea

Summary
Thanks for this great minimal CSS lib, love it!
Not sure if it's intended or not. There is no validation modifier for textarea I think.
Steps to Reproduce

Add input-invalid to the parent div.input-field of textarea.

Additional info

Shoelace version: 22
Affected browsers: Chrome

Note: This issue tracker is ONLY for bug reports and feature requests. If this is a personal support issue, please ask on Stack Overflow.

Looks like you're right. PRs are welcome if you feel up to it.

Fixed with #65