Chimoney SlackBot

Pull Request (PR) Note
Description
This PR introduces the /sendchimoney command to our Slack app. This command allows users to send Chimoney to other users within the workspace. It enhances our app's functionality by facilitating payments and interactions between users.
Testing Instructions
To test the new /sendchimoney command, follow these steps:

Join our Slack workspace for testing: Test Workspace {Recommended for now}

Install the app to the workspace using the following link: Install App

Once the app is installed, open a direct message or a channel within the workspace.

Type /sendchimoney followed by the desired amount and the usernames of the recipients. For example:

/sendchimoney $50 @user123 @user456 sends $50 in Chimoney to users @user123 and @user456.

Verify that the command executes successfully, and the recipients receive the payment link.

Additional Notes

Ensure that the Slack app is installed in the workspace before testing.
If you encounter any issues during testing or have feedback, please report them in this PR.

Happy testing!
@uchibeke The slackbot

Differences from Existing Bot (v1)
Introduction of the /sendchimoney Command
The most prominent addition in this v2 release is the /sendchimoney command. It allows users to send Chimoney to other users within the Slack workspace, enhancing the app's functionality by enabling quick and convenient peer-to-peer payments. This feature streamlines financial interactions and adds a new dimension to the user experience.
Improved Error Handling and User-Friendly Messages
v2 incorporates enhanced error handling mechanisms, resulting in more informative and user-friendly messages. Users will receive clearer notifications when errors occur, helping them understand and resolve issues more easily.
Enhanced Modularity
One of the most significant architectural changes in v2 is the adoption of Slack Bolt. Slack Bolt is a framework designed for building Slack apps that makes the codebase more maintainable, easily deployable, and scalable. It offers a more structured and organized approach to app development, ensuring that new features and functionality can be added with minimal effort. This modularity makes the app adaptable to changing requirements and paves the way for seamless future enhancements.
Multi-Workspace Support
One of the key advantages of v2 is its inherent support for multi-workspace configurations. This means that the v2 app only needs to be deployed once, and it can be effortlessly installed on any Slack workspace using the OAuth installation process. The app seamlessly adapts to different workspaces, enabling us to expand our user base across various Slack communities. Whether it's a small team or a large organization, the v2 app can be easily integrated, ensuring that users from different workspaces can enjoy its features without the need for complex modifications.
In summary, v2 represents a significant evolution of our Slack app. It introduces a powerful new payment feature, improves the user experience with clearer error handling, and leverages Slack Bolt to make the app more maintainable, easily deployable, and scalable. Moreover, the multi-workspace support offers new opportunities for growth and engagement across diverse Slack communities.

@uchibeke The bot has been deployed already part of the feature of this v2 is it only needs to be deployed once and can installed on multiple workspaces below is a installation guide for the deployment
would add a ReadMe with deployment guide(but having multiple deployments isn't so recommended since it's already multi workspace enabled)
Already working on getting the app published on slack app dictionary
To install your Slack bot using the provided link, follow these steps:

Click on the installation link: https://stingray-app-3r8tj.ondigitalocean.app/slack/install.

You'll be redirected to the installation page. Click "Install to Workspace" to start the installation process.

If prompted, log in to your Slack workspace.

Review the requested permissions and click "Allow." This will initiate the OAuth installation process.

After you click "Allow," the Slack bot will be installed in your workspace.

To start using your newly installed bot, simply mention it in a channel or use any slash commands or interactions it supports.

Your Slack bot is now successfully installed and ready to assist in your Slack workspace.

Chimoney Slack Bot
The Chimoney Slack Bot is a Python application designed to facilitate money transfers within a Slack workspace. Users can send money to other users via simple commands, and the bot handles the rest.
Features

Send money within your Slack workspace.
Seamless integration with Slack's UI.
Multi-workspace support with OAuth integration.

Installation
To install your Slack bot using the provided link, follow these steps:
Click on the installation link: https://stingray-app-3r8tj.ondigitalocean.app/slack/install.
You'll be redirected to the installation page. Click "Install to Workspace" to start the installation process.
If prompted, log in to your Slack workspace.
Review the requested permissions and click "Allow." This will initiate the OAuth installation process.
After you click "Allow," the Slack bot will be installed in your workspace.
To start using your newly installed bot, simply mention it in a channel or use any slash commands or interactions it supports.
The Slack bot is now successfully installed and ready to assist in your Slack workspace.
Requirements
Before installing the Chimoney Slack Bot, ensure you have the following:

Python 3.9+
A Slack workspace where you can install the bot.
A Chimoney account with an API key.
A Slack Application from Slack API

Installation Steps

Clone this repository to your local machine:

Change into the project directory:
cd \submissions\Chimoney-Slackbot-V2\

Install project dependencies using pip:
pip install -r requirements.txt

Create a .env file in the project directory and set the following environment variables:
SLACK_SIGNING_SECRET=your_slack_signing_secret
CLIENT_ID=your_slack_app_client_id
CLIENT_SECRET=your_slack_app_client_secret
OAUTH_REDIRECT_URI=your_oauth_redirect_uri
CHIMONEY_AUTH_KEY=your_chimoney_api_key

Replace the placeholders with your actual credentials.

Start the Chimoney Slack Bot:
python slackbot.py

The bot should now be running and listening for commands in your Slack workspace.

Usage
To use the Chimoney Slack Bot, follow these steps:

Invite the bot to a channel or use a slash command.

Use the /sendchimoney command followed by the payment details. For example:
/sendchimoney $50 @username1 @username2

The bot will handle the payment process and provide you with a payment link.

Multi-Workspace Support
The Chimoney Slack Bot inherently supports multi-workspace configurations. This means that the bot can be easily deployed and used in multiple Slack workspaces without complex modifications. The bot adapts to different workspaces, enabling you to expand your user base across various Slack communities.
It only needs to be deployed once and can be installed on any workspace using OAuth.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Acknowledgments

Chimoney for their financial services integration.

@uchibeke Please let me know if there's any other information you need.
Thank You

Perfect. I will approve this
Could you add the instruction guide comment to the submission readme?


How to add element by coding in Draft.js?

Hello,
I am new on Draft.js and able to create a decent enough text editor for my consumption, But I need to add a UL list with LI items at the bottom of my textarea by coding.
I have tried using Import HTML and then adding my HTML into it and then Exporting it back to the editor state, But Undo and Redo are not working after this.
Thank You..

Hey Rahul, I got your email asking for help here. The description you have above seems vague, but I am guessing you contacted me because of draft-js-gutter. If you are just trying to toggle that on and off, I would do an inline style like so:
import React, { Component } from 'react';
import { EditorGutter } from './Draft-js-gutter';

class ListedBox extends React.Component {
  render() {
    var displayList = 'none';
    if (/* Logic if you want the list*/) {
      displayList = 'initial'
    }
    return (
      <EditorGutter
        styleList={{
          display: displayList
        }}
      />
    );
  }
}
export default ListedBox;

I know I have not updated the dependency in a long time, but go ahead and make an issue on that repo instead if this is what you are dealing with. That way we keep this issue list more relatable. Cheers!

Hello,
Thank you for responding to the mail. My issue that I am facing is to add a list item in the end of my editor state.
For eg: in my Editor
I have written
"This is Github.
I am asking Question."
Now on click of a button I want to append an ordered list item like
"This is Github.
I am asking Question.
1. Welcome."
I have tried using this method
let currentHTML = stateToHTML(this.state.editorState.getCurrentContent());
currentHTML =   currentHTML + "
" + value +"
";
let contentState = stateFromHTML(currentHTML);
this.setState({editorState : EditorState.createWithContent(contentState)});

But using this method creates a new editor state with cleared undo redo stack.
So my question how to append a new block in my editor content state.

Okay, I got what I want. i have done it using two methods
1.)
        let rawObject = convertToRaw(this.state.editorState.getCurrentContent());
        var enterObject = {};
        const processedHTML = DraftPasteProcessor.processHTML("

Welcome

");
        enterObject.depth = processedHTML[0].depth;
        enterObject.key = processedHTML[0].key;
        enterObject.text = processedHTML[0].text;
        enterObject.type = processedHTML[0].type;
        enterObject.depth = processedHTML[0].depth;
        enterObject.entityRanges = [];
        enterObject.inlineStyleRanges = [];
        rawObject .blocks.push(enterObject);
        let newContentState = convertFromRaw(x);
        var esTemp =  EditorState.push(this.state.editorState, newContentState, 'insert-fragment');
        this.setState({editorState: esTemp });

2.)
     EditorState.moveFocusToEnd(this.state.editorState);
     let currentHTML = stateToHTML(this.state.editorState.getCurrentContent());
     currentHTML =   currentHTML + "

Welcome

";
     let contentState = stateFromHTML(currentHTML);
     this.setState({editorState: EditorState.push(this.state.editorState, contentState, 'insert-fragment')});

Does anyone knows any other way to append a new content block inside the draftjs texteditor ?
I have few buttons and on the click of them I want to append unordered/ordered list item inside the text editor.
On internet we have ConvertToHTML and ConvertFromHTML but they do not support on IE. And there is some real drought of codes which may help in appending new blocks inside draftJS.
@seejamescode @AlastairTaft @hellendag

@Rahulgarg30591  thanks you for you code, I was able to wrap it in a simple function to append HTML to the content state.
function insertHtmlBlock(currentEditorState, html, state) {
  const rawObject = convertToRaw(currentEditorState.getCurrentContent());
  const enterObject = {};
  const processedHTML = DraftPasteProcessor.processHTML(html);
  enterObject.depth = processedHTML[0].depth;
  enterObject.key = processedHTML[0].key;
  enterObject.text = processedHTML[0].text;
  enterObject.type = processedHTML[0].type;
  enterObject.depth = processedHTML[0].depth;
  enterObject.entityRanges = [];
  enterObject.inlineStyleRanges = [];
  rawObject.blocks.push(enterObject);
  const newContentState = convertFromRaw(rawObject);
   state.setState({editorState: EditorState.push( currentEditorState, newContentState, 'insert-fragment')});
}

very helpful

Really? There is no built-in way to append a block using html text? This is kind of bad...

I am only starting with this ... so take this with a grain of salt..this method seems to be appending blocks resulting from HTML conversion:
`
appendBlocksFromHtml(htmlString){
const editorState = this.state.editorState;
const newBlockMap = convertFromHTML(htmlString);
const contentState = editorState.getCurrentContent();
const blockMap = contentState.getBlocksAsArray();
    newBlockMap.contentBlocks = blockMap.concat(newBlockMap.contentBlocks);

    const newContentState =
        ContentState.createFromBlockArray(newBlockMap,newBlockMap.entityMap);
    const newEditorState = EditorState.createWithContent(newContentState);
    this.setState({editorState: newEditorState});

}
`

I have refined the method so now it inserts blocks from HTML conversion at the current selection. For now, it inserts the new blocks AFTER the block that is the anchor of selection.
insertBlocksFromHtml(htmlString){
        let editorState = this.state.editorState;
        const newBlockMap = convertFromHTML(htmlString);
        const contentState = editorState.getCurrentContent();
        const selectionState = editorState.getSelection();
        let key = selectionState.getAnchorKey();
        let block = contentState.getBlockForKey(key);
        let blocksAfter =  contentState.getBlockMap().skipUntil(function (_, k) {
            return k === key;
        }).skip(1).toArray();
        let blocksBefore =  contentState.getBlockMap().takeUntil(function (_, k) {
            return k === key;
        }).toArray();

        newBlockMap.contentBlocks = blocksBefore.concat([block]).concat(newBlockMap.contentBlocks).concat(blocksAfter);

        const newContentState =
            ContentState.createFromBlockArray(newBlockMap,newBlockMap.entityMap);
        const newEditorState = EditorState.createWithContent(newContentState);
        this.setState({editorState: newEditorState});
    }

@andpor , please what if the editor had a non-empty entityMap before the insertion ? should I also concatenate it with newBlock.entityMap before creating the newEditorState ?

I was adding lots of "decorated" atomic blocks and the some editable content in between, the first snippet @andpor put here worked great, but the order was off. So what solved it was wrapping the last line with EditorState.moveSelectionToEnd(
like this
`
function appendBlocksFromHtml(editorState, htmlString) {
const newBlockMap = htmlToDraft(htmlString);
const contentState = editorState.getCurrentContent();
const blockMap = contentState.getBlocksAsArray();
newBlockMap.contentBlocks = blockMap.concat(newBlockMap.contentBlocks);
const newContentState = ContentState.createFromBlockArray(newBlockMap, contentState.getEntityMap());
return EditorState.moveSelectionToEnd(EditorState.createWithContent(newContentState));
}
`

Neither using convertFromHTML or htmlToDraft, 's are always converted to 's (type unstyled) How to add non draft conventional html (div's, script, etc...) without being converted?
@schrizsz @andpor
Thanks.

I have refined the method so now it inserts blocks from HTML conversion at the current selection. For now, it inserts the new blocks AFTER the block that is the anchor of selection.
insertBlocksFromHtml(htmlString){
        const editorState = this.state.editorState;
        const newBlockMap = convertFromHTML(bulletsHTML);
        const contentState = editorState.getCurrentContent();
        const selectionState = editorState.getSelection();
        const key = selectionState.getAnchorKey();
        const blocksAfter =  contentState.getBlockMap().skipUntil(function (_, k) {
            return k === key;
        }).skip(1).toArray();
        const blocksBefore =  contentState.getBlockMap().takeUntil(function (_, k) {
            return k === key;
        }).toArray();

        newBlockMap.contentBlocks =
            blocksBefore
                .concat([contentState.getBlockForKey(key)])
                .concat(newBlockMap.contentBlocks)
                .concat(blocksAfter);

        const newContentState =
            ContentState.createFromBlockArray(newBlockMap,newBlockMap.entityMap);
        const newEditorState = EditorState.createWithContent(newContentState);
        this.setState({editorState: newEditorState});
    }

does anyone is able to do undo/redo with this method? because it's failing for me.

@shubhanus
Hi shubhnaus
I think you can do it by getting new editorState with EditorState.push instead of creating a new one
This can lead the movement into undo stack
 const newEditorState = EditorState.push(editorState,newContentState,'insert-fragment')
  this.setState({editorState: newEditorState})


strcasestr needed on Cygwin too

See: https://groups.google.com/d/msgid/tesseract-ocr/55B12C3C.3010908%40vol.at
pango_font_info.cpp:223:46: error: 'strcasestr' was not declared in this scope
   is_fraktur_ = (strcasestr(family, "Fraktur") != NULL);

the solution is wrong. As strcasestr is not standard,  it is enough to
#define _GNU_SOURCE
before
#include <string.h>

#include <string.h>

Just for future investigation: https://stackoverflow.com/questions/9935642/how-do-i-use-strcasestr


Add node.js to nixpkgs manual's "Support for specific programming languages" section

Issue description
Right now, we have sections covering Perl, Python, Ruby, Go, and more. Node.js is another popular language and we have an easy/automated way to add new node.js packages to nixpkgs. We should make this easier for people who don't already know how!
I plan on tackling this based on instructions I received over at https://github.com/svanderburg/node2nix/issues/16

cc @svanderburg

Some of the entries in the document doc/languages-frameworks/index.xml have a comment like
<xi:include href="r.xml" /> <!-- generated from ../../pkgs/development/r-modules/README.md  -->

Should I enhance the README.md in pkgs/development/node-packages and then generate the XML file? Can anyone clue me in to how they're generated?

Can anyone clue me in to how they're generated?

They are generated in https://github.com/NixOS/nixpkgs/blob/master/doc/default.nix#L24-L66 (using pandoc).

Once I've added it to doc/default.nix, how can I actually generate the XML?
diff --git a/doc/default.nix b/doc/default.nix
index f4f467b..03134cf 100644
--- a/doc/default.nix
+++ b/doc/default.nix
@@ -61,6 +61,10 @@ pkgs.stdenv.mkDerivation {
       outputFile = "languages-frameworks/idris.xml";
     }
   + toDocbook {
+      inputFile = ../pkgs/development/node-packages/README.md;
+      outputFile = "languages-frameworks/node.xml";
+    }
+  + toDocbook {
       inputFile = ../pkgs/development/r-modules/README.md;
       outputFile = "languages-frameworks/r.xml";
     }

Once I've added it to doc/default.nix, how can I actually generate the XML?

The XML is generated during the build. To have it in the manual you need to include it with <xi:include href="node.xml" /> in doc/languages-frameworks/index.xml.
The confusing part is that languages-frameworks/index.xml refers some files that exists only at build-time (the files generated by toDocBook).
It is also possible to keep the build directory with nix-build -K doc to inspect the generated files.


Data upload trait mismatch/duplication

The Issue
When importing data from a Germinate upload template, traits that share the same name do not auto merge with the existing traits in the database, causing a user to have to run trait unification for each trait they uploaded.
Additional Quirks

Using BrAPI import in Gridscore to import traits works fine. When exporting data from Gridscore, the Germinate upload template only includes the name and the data type of the trait, none of the trait metadata
When defining a new trait in Gridscore with categorical data, the trait exports with the discrete categories in a comma separated format like hi,med,lo instead of the correct format required by Germinate uploads, ["hi","med","lo"].

Proposed Solution
Can Germinate have a name checking feature during upload which checks to see if the name, data type, and categories (if applicable) of traits match and then auto merge them? And if no matches are found, it would then upload it as a new trait.

Germinate will check for exact matches on the trait name, short name, description, data type unit and restrictions.
If no exact match exists, a new one is created. This is a very strict check and I can see this being relaxed a bit, but we need to be careful not to match on too few fields. A trait with a unit of "kg" should not be handled the same as a trait with the same name, but unit of "g".
Having the user pick matches during the data upload would not fit into the current way data templates are uploaded and checked.
I think this needs some fine-tuning to make sure that at least data imported into GridScore from Germinate via BrAPI will not create new trait definitions when uploading data templates exported from GridScore at a later date.

I think they aren't send, because the BrAPI definition of a variable doesn't have the short name and description. Looking at the spec, though, the variable contains a trait, which has them, so there may be potential do submit them properly.

Oh that makes sense, I didn't realize the api doesn't pull in the other fields. Yeah, the Brapi (and Crop Ontology for that matter) specs for these variables are a little different than how traits are defined in Germinate.

Also, this gets complicated even when uploading traits that have exactly all of the same information. I just uploaded three test datasets for the same Trial with data taken on different dates for two traits. The traits had no short name, or description, just the name, data type and units. It still uploads them as separate traits that need to be unified.

It seems like these kinds of exact matches should be merged too, even when some information is missing.


Handle JSON parse exceptions gracefully

Handle JSON parse exceptions gracefully

Just patched this: https://github.com/hachibu/vim-conceal-operators/pull/11


azure-openai compatible with azure open ai api?

Hi! Thanks for ur excellent work in implementing this great library for arduino and esp32 interacting with chatgpt. i hv met a question right now since i hv another free subscription of azure openai api, i wonder if this kind of key is compatible with ur library to use?

@William-ywh I don't think so. For using Azure openai API, you need to look into ways to connect. Usually there is curl and you need to convert it to http format.

Thank you for ur prompt reply. i saw in ur example  file that it has this code line: ChatGPT chat_gpt(&client, "v1", "<OpenAI_API_KEY>"). i just wonder if i can just fill in azure openai api key into the <OpenAI_API_KEY>?

oh btw i hv one http link here for the azure api subscription: https://hkust.azure-api.net/openai/deployments/{deployment-id}/chat/completions?api-version=2023-05-15   i wonder if i hv this link then how can i use ur library?

Since the values returned from the API are different, this must be implemented accordingly.

OK no problem. Thank you very much and this problem i hv solved already.


Model.timestamp not being passed in options?

Up to version 0.8.1, I was overriding the Model.timestamp function in order to be able to set fields such as "created_by" and "modified_by" through the use of the save options.
i.e.
someModel.save({a: 1, b: 2}, {user: userId});

since version 0.8.2 the "options" passed in to the timestamp function seem to be hardcoded to
{method: "update", silent: true}

Hi @ezra-quemuel, thanks for the report. Happy to accept a PR, or you can wait for me to get around to fixing this.


Enhancement:  Multiple City Support

I run ads in 3 cities.  Be nice if the city was one of the settable fields.

The city is indeed something that can be set on a per-ad basis.
Change the following fields in the ad file to a city that Kijiji supports:

postAdForm.city
postAdForm.province
postAdForm.postalCode
postAdForm.addressCity
postAdForm.addressProvince
postAdForm.addressPostalCode

Or you use the build_ad subcommand and follow the prompts to generate an ad file with a different city.

Mark issue closed.  My bad.


Dev dlangst

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


Enhancement: Configurable Number of Targets per Zone

Hello @RJRP44,
First and foremost, I would like to extend my sincerest thanks for creating the VL53L5CX-Library. It has been incredibly useful in my projects, and I truly appreciate the work you've put into it.
While using your library, I found myself needing to adjust the 'Number of Targets per Zone' setting for my specific use case. In my scenario, I require the ability to track 4 targets, which led me to develop an enhancement for this library.
I have forked your repository and added a Kconfig file, enabling the configuration of the 'Number of Targets per Zone'. This addition allows users to easily modify this setting through the ESP-IDF's idf.py menuconfig interface. I believe this enhancement could be beneficial for others who might need similar flexibility.
My fork with these changes can be found here: https://github.com/illusionfield/VL53L5CX-Library
I would be honored if you consider merging this enhancement into the official repository. I hope this contribution aligns well with your vision for the library and adds value for all users.
Thank you once again for your excellent work, and I look forward to potentially contributing further to this project.
Best regards,
@illusionfield

Hi @illusionfield,
Thank you for showing interest this library.
Your addition seems great ! I'll give it a try and I see no reason why it shouldn't be added to this project.
Have a great day

A
Hi,
Thank you for your kind response! I’m thrilled to hear that my contribution is appreciated.
I am very enthusiastic about further participating in the development of the VL53L5CX-Library. I have some ideas for additional settings that could enhance the configuration menu, and I would be happy to work on implementing these.
Additionally, I am currently working with the VL53L8CX sensor and would be interested in contributing to the development of a library for it as well. My experience with these sensors has given me insights that I believe could be valuable in this context.
Unit tests would ensure that each function of the library works as expected and help us catch any issues early in the development process. Meanwhile, integrating a CI tool like Travis CI or CircleCI would automate the testing process, ensuring that every commit or pull request is automatically tested before being merged. This practice is a great way to maintain high code quality standards and streamline the development workflow.
I’m more than willing to assist in setting up these testing and CI processes if you find the idea beneficial.
Looking forward to your thoughts on this.
@illusionfield


[Bug]: Focus propagates outside of login modal

🐛 Describe the bug:
While using keyboard navigation, the focus moves outside of the modal.
🔃 Steps To Reproduce

Open login modal
Press tab repeatedly

📃 Expected behavior
Focus should remain inside the modal when the modal is open
📸 Screenshots
https://github.com/user-attachments/assets/a4730f8a-2c24-4bc1-a7df-e423f11728da

.take


[BUG] from rich import traceback points to builtin

Ohai. My first bug report, I think.
Describe the bug
The docs state that the way to install traceback or pretty is in this form:
from rich.traceback import install
install()

In pretty much all my scripts, in order to install both traceback and pretty, I prefer to do something like this in order to keep the namespaces from colliding.
from rich import pretty, traceback
traceback.install(show_locals=True)
pretty.install()

This usually works because import orders know that traceback and pretty are coming from the rich module. However, with the new changes made in recent PRs in how the imports for traceback are working, Python resolves from rich import traceback as the built-in traceback module instead, therefore the code above fails with an AttributeError: module 'traceback' has no attribute install since it's the wrong module completely. It's likely because with the new changes traceback is stomping rich.traceback.
To Reproduce
from rich import traceback
traceback.install()

Platform
What platform (Win/Linux/Mac) are you running on? What terminal software are you using?
Windows 10/Windows Terminal/Rich 9.10.0
Thoughts
Although the way I'm doing it isn't how the docs describe (👀), the import order should generally be preserved to return the expected module. from rich import traceback should be expected to return rich.traceback.

Hi @daddycocoaman
I can't reproduce this.
Do you have a file called rich.py in your project?
Will

Hi @daddycocoaman
I can't reproduce this.
Do you have a file called rich.py in your project?
Will

Sooooo nevermind. I went through the debugger and determined that another module that is imported after is importing a bunch of built-ins like traceback at the top level for some awful reason and is causing the stomping over rich.traceback. Sorry for wasting your time! Gonna close.

Sooooo nevermind. I went through the debugger and determined that another module that is imported after is importing a bunch of built-ins like traceback at the top level for some awful reason and is causing the stomping over rich.traceback. Sorry for wasting your time! Gonna close.

No worries. Glad you got it sorted!

No worries. Glad you got it sorted!


use ecmascript-compat plugin to check code compatibility

Check code compatibility against our target browsers:

FF (ESR and Android)
Chrome (Desktop and Android)
Edge

Checks against Safari (Desktop and iOS) currently throw an (false positive?) error and are temporarily deactivated.

Not needed anymore, using ESLint 8 and es-check we can now check es11 code compatibility


Resolve warnings due to missing dependencies for App Insights

See the related issue and workaround

Closing as the fork isn't needed anymore.


[Expo] Its possible ability on Expo?

I am currently facing an issue in my SDK 47 Expo environment while trying to declare a native Expo module to use with an AsyncFunction in my demanding task. After an intensive search, I came across this alternative solution that seems to be exactly what I need. However, I am encountering difficulties with installing and using the library in my Expo environment. The problem arises when integrating it within Babel, as it appears to not be functioning correctly.

I migrated my bare react-native application to expo one, and it's working well.
Could you share your error message?

Hello, thank you very much for your interest.
In a moment I attach the error message that I present in babel. But additionally, then I would also like to know how to install it properly, following up on the issues, I found this question,  and I realized that version 0.0.1 alpha is also installed, could it have something to do with it? #97

From what I've tested, it works perfectly with Expo, but the installation command is applying the wrong version. As a temporary solution, I did the following:
Installation via:
npm install chrfalch/react-native-worklets#main
Import via:
import { Worklets } from "react-native-worklets/src"

Cuando intente compilar en el cliente de desarrollo, devuélveme eso

Y  if corro sin compilar.

Cuando intente compilar en el cliente de desarrollo, devuélveme eso
Y if corro sin compilar.

I had the same problem and error message. For the solution, see: https://github.com/margelo/react-native-worklets-core/issues/126#issuecomment-1781111344


Support for multiple files

I am analyzing to start using the WikiUpdater extension since I want to automate the generation of the documentation which we keep in the Wiki pages. We are generating dynamically a variable number of files containing the documentation files for the wiki which we then upload manually.
As what I see this extension allows to update ONE .md file to the Wiki pages, have you considered to extend the functionality of the extension to also get the files from a specific directory to support multiple files?

The task was written to partner the release note generation task that produces a single file, hence the design. However, there is no reason not to support multiple files. I will have a look when I get a chance

Thanks for the quick response!
I understand, that would be a good improvement on the task.
Should I close this issue?

No I leave issues open marked as enhancements until they get done

I have been having a think about this new feature and have decided that altering the current task to handle multiple files as well the current usage I think will be confusing.
So what I propose is to add a second task to the extension, the second one will copy files based on a path/wildcard to a folder in a WIKI Git repo. This will be shipped side by side with the existing task.
I think having two tasks (in this same extension) with there differing parameter sets will be less confusing than a complex set of parameters on a single task, especially for YAML usage where I cannot hide invalid options as I can in the older UI.
So a few questions @daniel-tek

Does this sound a reasonable approach?
When updating a repo with a list of files is it reasonable to assume all files are overwritten? My assumption is if a user wants to append they should use the existing task.

This has been released as an extra task in the WIKI updater extension 1.10.21

Cool! Yeah, that sounds like a much better idea, thanks!


Try embedding parameters as part of the compiled module

predict_fn = Axon.build()
compiled = Nx.Defn.compile(predict_fn)
fn batch -> compiled.(batch, params) end

vs
predict_fn = Axon.build()
compiled = Nx.Defn.compile(&predict_fn(&1, params))
fn batch -> compiled.(batch) end

Wait, wasn't the reason we initially didn't do this because the params become part of the cache key, so it becomes extremely large?

@josevalim currently we explicitly forbid that (without copying to binary backend) in this check.

@seanmor5 @jonatanklosko both good points which shall be temporarily ignored for experimentation purposes :P

Tested it with stable diffusion and it seems to make the runtime much slower (2 times slower on a CPU locally, on a GPU I didn't even get it to finish before crashing).


Add RViz2 Visualizations for the 3D Messages.

Pull request #38 adds visualizations for a subset of properties. If more features, like the field markings or left/right goal differentiation are used, visualizations should also be added for them.

This can be now closed, field markings have been added. Although left/right goal differentiation has not been added, feel free to create an issue over at https://github.com/ros-sports/soccer_vision_3d_rviz_markers if you think it should be tracked.


Allow text selection in process explorer

#48431
While the mouse is on top of the processes, the cursor becomes text style but we can't select text. Either we change the cursor style back to default, or we support text selection.

Changed the cursor to default for now, will work on supporting text selection in debt week

Closing as duplicate of https://github.com/Microsoft/vscode/issues/48961


Downloader ignores all but four common data file extensions.

This behavior is confusing to S-MODE users, who were expecting the data-downloader commands given on dataset landing pages to work out-of-the-box, e.g. https://podaac.jpl.nasa.gov/dataset/SMODE_LX_SHIPBOARD_ADCP_V1#capability-modal-download
S-MODE ADCP data files have .nc4 extension, so they're ignored by data-downloader by default. One must use the -e .nc4 option to download the files. That isn't mentioned in the modal on the dataset landing page.
Is there any reason not to download every file listed in the UMM-G RelatedUrls with Subtype="GET DATA"? (That change would render the file extension option obsolete; maybe it could be repurposed to ignore by extension instead.)
@jjmcnelis @ScienceCat18 @torimcd provided the following guidance to T. Farrar and C. Rocha on 2022-11-09:

podaac-data-downloader ignores files with .nc4 extension by default. This command works:
podaac-data-downloader -c SMODE_LX_SHIPBOARD_ADCP_V1 -d ./data/SMODE_LX_SHIPBOARD_ADCP_V1 --start-date 2021-08-01T00:00:00Z --end-date 2022-11-01T00:00:00Z -e .nc4
The defaults are .nc, .h5, .zip, .tar.gz, according to: https://github.com/podaac/data-subscriber/blob/main/Downloader.md

regression across multiple collection to see what unintended downloads will look like

I have been thinking about this, the current subscriber behavior is to add all GET DATA and EXTENDED METADATA from CMR into a single list and then iterate and filter by extension.
the change to extension would 'break' this and we'd begin downloading metadata by default (one can argue this is a good thing, but it's a change to the current system so far).
my thought process:

is add another flag --include-metadata (default false) . if specified, download the "EXTENDED METADATA" types.
make the change to only applying extensions if they are provided.

The combination of these 2 options will 1- get users the data more easily and 2 not change the existing behavior of not including checksums (in the default cases).

ok, after starting this work i ran into some other issues that will require some more rework internal to the subscriber.
We essentially get all the granule results and then make several lists of items, checksums, data files, metadata files, start/stop dates and cycles. The problem is with some granules that have multiple data files and ones where, if you remove the "suffix", you don't get the native-id (e.g. S6 granules with a .nc and a bufr.bin data file). We need to refactor this into "downloadable" objects that encapsulate all of the required data for a download: cycle, start time, checksum, etc so that we don't have to do this complex lookup. I'm going to move this to a post 2.0 fix so that we focus on 1.13, then the harmony integration, but this should really be done soon as it will be cleaner for adding additional features in the future.

Here's another data point, we got this feedback from a user:

Might suggest no defaults when the -e option is not used.
For me, no -e option means search for files with any extension, so one case see all available files.
I Could see users wanting to do this especially with the –dry-run option.


Fix add pledges button

Fix add pledges button to display the add pledges fields (cough you had one job, @unkrich )

That's one more job than you :O

ahem https://github.com/emilyengle/hackathon-portal/graphs/contributors

Perks of Kyle using your computer

@unkrich that's so nice of you!

@kylekthompson @emilyengle just saw that... regardless the problem seems to be a result of jQuery and turbolinks conflicts - didn't figure out resolution though


i128 no_std

README says that this crate supports no_std, however it depends on num-traits with i128 feature  (even when run with no default features).
When I test some program that is dependand on num complex, with no-std-check (https://github.com/mystor/cargo-no-std-check)
I get this error: thread 'main' panicked at 'i128 support was not detected!

I haven't seen cargo-no-std-check before, but it looks like it's using RUSTC_WRAPPER to intercept and rewrite target arguments. The autocfg crate will need to support this as well, otherwise feature detection is going to be broken in this use case. But in normal use, I expect it's still be fine.
There shouldn't be any real problem with i128 on no_std targets though. I have thought about relaxing those checks such that if the feature is requested, it will go ahead and be used without bothering to probe with autocfg.

This should be fixed by num-traits 0.2.13 via rust-num/num-traits#185.
For the broader problem of RUSTC_WRAPPER, I'll leave that to cuviper/autocfg#26.


Github action support

The database set up has been going for over two hours and looks like this:

That is not the database setup. That is db-sync trying (and retrying) to the socket the node creates.

Errr, why is it trying to connect to a node?


[5.0] Adjusting Model::touchOwners to not touch on creation

Fixes #6386 in 5.0. Re-post of #8128 after testing several scenarios.

Leave the ! is_null check in there as well.

What if the relation is a single model. Would count() work?

I've returned the !is_null check. The test files I'm using is: https://gist.github.com/impleri/838490c5b99cc00250db

It doesn't solve the problem. There is still no touchOwners method on the collection, so it will break for x-m relation.
This one does it well #8360, however @taylorotwell in my opinion touchOwners belongs to the Eloquent\Collection instead. Why didn't you want it there?


Possible Bug/Optimization in finalizeExit

When an exit is successfully challenged, the exit is deleted from the exits mapping but it isn't deleted from the PriorityQueue.
This means that in finalizeExit, there will be a loop to process a "zero-valued" exit struct since the exit associated with the priority has been deleted. As far as I can tell, there are no bugs that arise from this with the current implementation, but it is still a waste of gas to process a useless "zero-valued" exit.
Perhaps we can have a check for a zero valued struct and if it is zero, we can simply continue to the next iteration.

Merged PR #11


Please update to reference Azure Functions

Thank you for this doc, has lots of good general info regarding implementing background processing.
Please update to reference Azure Functions.  Please also update to replace references for depreciated Azure Scheduler to instead reference Scheduled Azure Functions and/or Azure Logic Apps Scheduler.
Thanks!
aaronse

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

ID: 50a65e47-b024-0c7c-0ee9-21ff095abafd
Version Independent ID: a764689a-168d-dcef-a297-c47f84ea2d12
Content: Background jobs guidance - Best practices for cloud applications
Content Source: docs/best-practices/background-jobs.md
Service: architecture-center
GitHub Login: @dragon119
Microsoft Alias: pnp

Hi @aaronse Thank you for your feedback! We have assigned this issue to the author to review further and take the right course of action.

We've taken this item to our internal backlog for further research and will update as necessary!


Include observability tracing for services

Purpose
$subject
Fixes #46

Closing this PR as the changes merged with https://github.com/ballerina-guides/gcp-microservices-demo/pull/50


Debian packaging

@William-Yeh There have been official debian packages for Prom and node_exporter in Debian testing since last June. Would you want to base service files from them in this role?
https://packages.debian.org/stretch/prometheus
https://packages.debian.org/stretch/prometheus-node-exporter

I'll check it out.
But I'm afraid that I'll adopt only its INIT (systemd?) part.

Hi @lae is this your fork : https://github.com/lae/ansible-role-prometheus ?
I have it running properly using the same configuration documented for this repos. Any chance to have this merged upstream @William-Yeh ? Anything I could do to help ?

Hi @jvelo, that is not a fork (https://github.com/lae/williamyeh-prometheus is). I'm also planning on doing some things differently from this role, such as separating node_exporter. It doesn't yet handle configuration though since I was on vacation for a bit.


onShown and onHidden not working properly

Care to give more information? Are you using the latest version from master? I haven't push to bower yet

Oh, ok, updated to latest version, and it's working just fine.
However, seems maxOpened will cause 'prepend of undefined' error

I need to be able to reproduce that.

I think it's easy to reproduce, just add maxOpened : 1 into options

Oh, I see, I can reproduce it.

Let's continue in #34


fix: prevent image cdn from being shadowed by v2 functions

Image CDN shouldn't be shadowable by V2 Functions.
Depends on https://github.com/netlify/cli/pull/6212.
Haven't checked how prod behaves on this, will do that now.

only https://github.com/netlify/cli/pull/6213/commits/50b8f25dbed7af1315036d7f2e99868d31914438 is part of this PR, the other commits are from  https://github.com/netlify/cli/pull/6212 - but they contain fixes that the tests in this PR need as well

Haven't checked how prod behaves on this, will do that now.

This is, indeed, how prod behaves!


Zooming in and out shifts cluster annonations

Hi @ashare80,
I noticed another issue and I will provide some screenshots from your sample app tomorrow.
The clustered annotations are moving left when zooming in (displaying regular annotations) and zooming out. If you do it several times you can see the clustered annotations' position are moving left and a little bit down.
Thanks
Cahit

@bigtigercahit This is happening with the sample app or your own implementation?

Both

@ashare80 Here are some screenshots for the issue. Check the position of "2" cluster in the middle at SS1 and SS2. SS3 is the distributed version, regular annotations are not moving. It happens when zooming in to regular annotations and zooming out. They are mostly moving towards left with my POIs
https://dl.dropboxusercontent.com/u/2687801/Cluster/SS1.png
https://dl.dropboxusercontent.com/u/2687801/Cluster/SS2.png
https://dl.dropboxusercontent.com/u/2687801/Cluster/SS3.png

@bigtigercahit I need some help recreating the problem consistently.  I have seen this previously in developing the library but I thought it was fixed.
Anything in particular I should be doing to see this effect? What device are you testing on?

@ashare80 I observe the issue consistently when I distribute and regroup annotations with the same coordinate. I am not sure but I think higher numbers of annotation increases the distance it moves.
I do not observe it for annotations with different coordinates. I can repeat it with iPhone6 iOS8  and Simulator.
I suggest you to add 10 annotations at the same coordinate, distribute the cluster at the final zoom level and zoom out, you will see the movement when you repeat this action.
Let me know if you need anything more or a video.

@bigtigercahit Ah ok that helps I'll check into that. If it is what I think it is, it will be an easy fix.  Thanks!

@bigtigercahit Pushed code to fix issue. Let me know if it is fixed for you as well

@ashare80 Yes it is fixed for me as well...
Thanks


Typo - Week 03/SLU05 - Learning Notebook (section Stash Changes)

Correct typo at section Stash Changes of Learning notebook from SLU05 (Week 3).
Check attachment.

Remove extra "and saves them".
(My first issue yuppy!!!! - feel free to remove this :p)

Ty for opening an issue! This is to be fixed in the next Prep Course edition!


Issuer updates tailsfile after revoke credentials

Currently I have created credential definition with support revocation true and I can see tails file created.
Then issued credential but I don't see any log in tailsserver.
Also I don't see any log or any request transaction to tailsserver after revoke.
Can I get few details when and what values of tails files would update either from issuer or holder after tailsfile created.

The tails file is static — it doesn’t change after creation. The only operation is the holder retrieving it for the creation of a presentation.
The best overview of the revocation process is here:
https://github.com/hyperledger/indy-hipe/blob/main/text/0011-cred-revocation/README.md


Scalastyle support

I assume I'm doing something wrong, but it seems that overcommit doesn't know how to use scalastyle.  I get this message when attempting to use it -
Analyzing with Scalastyle................................[Scalastyle] FAILED
'scalastyle' is not installed (or is not in your PATH)

The SBT plugin pulls it off using this jar -
~/.ivy2/cache/org.scalastyle/scalastyle_2.10/jars/scalastyle_2.10-0.7.0.jar

Assuming that wasn't good enough and that it was looking for a command line utility, I downloaded the scalastyle-batch jar from the scalastyle website and put it on my path.  Obviously, this wasn't going to be good enough, so I made a script called scalastyle and placed it on my path -
#!/bin/bash
java -jar $HOME/bin/scalastyle_2.10-0.6.0-batch.jar "$@"

And it seems to work as intended -
$ scalastyle -c scalastyle-config.xml path/to/src
warning file=/path/to/src/foo.scala message=File line length exceeds 100 characters line=117
Processed 2 file(s)
Found 0 errors
Found 1 warnings
Finished in 692 ms

Ok, so let's try it from the command line -
$ OVERCOMMIT_DEBUG=1 git commit -am foo
...
Analyzing with Scalastyle................................[Scalastyle] scalastyle ... (2 splittable args)
EXIT STATUS: 1
STDOUT: "scalastyle 0.6.0\nUsage: scalastyle [options] <source directory>\n -c, --config FILE               configuration file (required)\n -v, --verbose true|false        verbose output
\n -q, --quiet true|false          be quiet\n     --xmlOutput FILE            write checkstyle format output to this file\n     --xmlEncoding STRING        encoding to use for the xml fi
le\n     --inputEncoding STRING      encoding for the source files\n -w, --warnings true|false       fail if there are warnings\n"
STDERR: ""
OK
...

Ok, so, scalastyle exited with a non-zero status, and the commit hook passed.  I'm guessing it shouldn't.  Either way, seems I need to manually supply the -c argument, so I'll add that to the script with a hard-coded path to my config file.  Sure enough, it works!
$ OVERCOMMIT_DEBUG=1 git commit -am foo
Analyzing with Scalastyle................................[Scalastyle] scalastyle ... (2 splittable args)
EXIT STATUS: 0
STDOUT: "warning file=/path/to/src/foo.scala message=File line length exceeds 100 characters line=117\nProcessed 2 file(s)\n
Found 0 errors\nFound 1 warnings\nFinished in 704 ms\n"
STDERR: ""
WARNING
Warnings on modified lines:
warning file=/path/to/src/foo.scala message=File line length exceeds 100 characters line=117

Is there a better way to do this?  Also, should it be ignoring the non-zero exit status?

There are two problems here. The first is that you need to set flags: ['-c', '{path to config file}'] in your .overcommit.yml. No need to hard-code it in your shim script.
The second is that we're ignoring a non-zero exit code if we can't find any error messages to parse. Notice that here, scalastyle just prints its version and usage, then exits.
The way the scalastyle hook is written now, it passes if there are no error messages to parse, regardless of exit code. I'll create a PR with a patch in a bit.

Also please notice that the hook options are documented in the README.

If this involves a change to the doc for Scalastyle, then can you submit a PR for the doc. If not, can you close https://github.com/scalastyle/scalastyle/issues/162. Thanks.

Thanks for the help!  I've submitted a PR to make the docs a bit more explicit about setting up scalastyle for overcommit.


fix: BUG: [distance] request confirmation offline doesn't show TBD

Details

Implement map route re-fetch on going back online;
Show "TBD" on pending fields;

Fixed Issues

$ https://github.com/Expensify/App/issues/26537
PROPOSAL: https://github.com/Expensify/App/issues/26537#issuecomment-1703516680
Tests

Go offline
Click green plus, request money
Enter start and finish addresses
Click next
Click show more to see all fields

[ ] Verify that fields amount and distance are filled as "TBD"

Go back online

[ ] Verify that fields amount and distance are filled with valid values
[ ] Verify that no errors appear in the JS console

Offline tests

Go offline
Click green plus, request money
Enter start and finish addresses
Click next
Click show more to see all fields

[ ] Verify that fields amount and distance are filled as "TBD"

QA Steps

[ ] Verify that no errors appear in the JS console

PR Author Checklist

[x] I linked the correct issue in the ### Fixed Issues section above
[x] I wrote clear testing steps that cover the changes made in this PR

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

[ ] I included screenshots or videos for tests on all platforms
[ ] I ran the tests on all platforms & verified they passed on:

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

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

[ ] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[ ] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[ ] I verified that comments were added to code that is not self explanatory
[ ] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[ ] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[ ] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message: https://expensify.slack.com/archives/C01GTK53T8Q/p1693944607891839

[ ] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[ ] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[ ] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[ ] I verified the JSDocs style guidelines (in STYLE.md) were followed

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

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

[ ] If any new file was added I verified that:

[ ] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

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

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

[ ] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[ ] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[ ] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[ ] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[ ] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[ ] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[ ] I have checked off every checkbox in the PR author checklist, including those that don't apply to this PR.

Screenshots/Videos

Web
https://github.com/Expensify/App/assets/12595293/7ee2352c-6973-4536-8e7a-8e04d66d08db

Mobile Web - Chrome

Mobile Web - Safari

Desktop

iOS

Android

@Ollyws they're kind-of related, but not directly. I will report them, tag you in threads, and let you decide what to do with it

@Ollyws already done, the corresponding Slack thread is referenced in the PR checklist. Waiting for approval...

@paultsimura does this PR also handles refetching of the route when the device comes back online?

@hayata-suenaga yes, you can see the result in the attached screen recordings - it includes the route re-fetch.

@hayata-suenaga @Ollyws could you guys please help with getting this tiny translation expedited?
https://expensify.slack.com/archives/C01GTK53T8Q/p1693944607891839
It'd be nice to have enough time for testing this feature for regression before the merge freeze ends.

@Ollyws the copies have been updated – this PR is ready for the final review

@Ollyws seems like I found the solution, though it was indeed a bit out of scope. Committed.
https://github.com/Expensify/App/assets/12595293/2d605da1-3b4c-4745-b83c-ac62393c7ea9

Coming from this comment let's check if "Solicitar Por determinar" makes sense in spanish. I think we should prevent capitalizing too.

@neil-marcellini as the map rendering without text was not initially in the scope of the task, and it does require some changes, I would like to discuss it a bit deeper.

We use BlockingView for the pending map rendering. This component has the title prop required. Am I free to change it to optional with default = '' ?

https://github.com/Expensify/App/blob/1df618d6e452ce563fcc6ceac37ac034ff8e10a5/src/components/BlockingViews/BlockingView.js#L22

What are the precise dimensions of the icon in the new design? And what should I call the new size? As it looks larger than the current max: iconSizeSuperLarge: 60

https://github.com/Expensify/App/blob/4984b39545e49b5780602e17e4adc41f8e1678fb/src/styles/variables.ts#L64-L72

Should this change take place on both DistanceRequest and Confirmation pages? Should we remove both subtitles?

"The map will be generated when you go back online"
"One moment while we set up the map"

Also @neil-marcellini this PR https://github.com/Expensify/App/pull/26705 has made it impossible to proceed to the next page while being offline (https://github.com/Expensify/App/commit/ace6a400132d776fcac3398ab1e1d279d41e1302). Is it expected?

@neil-marcellini as the map rendering without text was not initially in the scope of the task, and it does require some changes, I would like to discuss it a bit deeper.

Sure, let's discuss.

We use BlockingView for the pending map rendering. This component has the title prop required. Am I free to change it to optional with default = '' ?

Good question. Maybe we should create a new PendingMapView component with title and subtitle props defaulting to empty. If they are set we could use the BlockingView as we do now and if they are both unset then display the large map icon? I think it makes sense to have a more specialized component.

2. What are the precise dimensions of the icon in the new design? And what should I call the new size? As it looks larger than the current max: iconSizeSuperLarge: 60

I'm not sure actually. Please start with what you think looks good and then you can work with the designers to dial in the right size.

3. Should this change take place on both DistanceRequest and Confirmation pages? If yes – I would need the design for the DistanceRequest page with the desired icon size as well;

No thanks, we want to keep the more descriptive text on the distance request page.

6. Should we remove both subtitles for both states?
* "The map will be generated when you go back online"
* "One moment while we set up the map"

Let's have only the icon on the confirmation page, and keep that descriptive text on the distance request page.

P.s. As the requirements have expanded, would it be possible to ask for an extended bonus-eligible period on this PR?

Yes I think that sounds reasonable.

Also @neil-marcellini this PR #26705 has made it impossible to proceed to the next page while being offline (ace6a40). Is it expected?

Yes I think that's expected for now. We added that temporarily until the distance request flow is tested and proven to work while offline.

@neil-marcellini done, ready for your & design review.

I think this is looking pretty good, but I'm not able to get the map to update even when coming back online (maybe that's expected right now?).
I also wanted to point out that the spacing on this screen is quite a bit more spread out than in the mockup—you can see the difference in these screenshots:

That may not be something that we're addressing with this PR though because I'm pretty sure I saw that being worked on somewhere else.

I also wanted to point out that the spacing on this screen is quite a bit more spread out than in the mockup

@dannymcclain check this out, I've increased icon dimensions to 120:

@Ollyws I think it is totally ok in this context for it to just say "Request".
cc @shawnborton because he designed the original mockup.

Updated with no "TBD" on the button
@dannymcclain @Ollyws @neil-marcellini

Agree, just "Request" works for me!

These conflicts appear with the speed of light.
Updated @Ollyws

@Ollyws thanks man, won't happen again.

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

🚀 Deployed to staging by https://github.com/neil-marcellini in version: 1.3.72-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/thienlnam in version: 1.3.72-11 🚀

platform
result

🤖 android 🤖
failure ❌

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

I'm commenting for the checklist on this issue since we didn't catch something when merging main. Not a big deal.


list all images that have are base images for the given image

Signed-off-by: Lisca Ana-Roberta<EMAIL_ADDRESS>
What type of PR is this?

Which issue does this PR fix:
#660
What does this PR do / Why do we need it:
If an issue # is not available please add repro steps and logs showing the issue:
Testing done on this change:

Automation added to e2e:

Will this break upgrades or downgrades?
Does this PR introduce any user-facing change?:

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

LGTM

@aokirisaki can you pls rebase and push this again. Too many merge conflicts.


Add copyright information to license

Feature:
If possible, please add copyright information to the license. Currently, the license only contains the following placeholder :
Copyright {yyyy} {name of copyright owner}
Rational
It makes it easier to get legal approval to use the library in a corporate setting.
Example Scenario
Inclusion of brave in a commercial project.
Prior Art
Not applicable.

Similar to the apache foundation, we use the NOTICE file to annotate
copyright. This allows the LICENSE file to be an exact match of the
source.
Hope this helps
On Mon, May 11, 2020 at 8:09 PM Sebastian Ehmann
<EMAIL_ADDRESS>wrote:

Feature:
If possible, please add copyright information to the license. Currently, the license only contains the following placeholder :
Copyright {yyyy} {name of copyright owner}
Rational
It makes it easier to get legal approval to use the library in a corporate setting.
Example Scenario
Inclusion of brave in a commercial project.
Prior Art
Not applicable.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or unsubscribe.

Thank you for your immediate response! I missed the notice file. Thank you for your efforts.

no prob. thanks for using Brave!


Having Good Knowledge on Graphs !!

Graphs are One of the Most Important Data Structures and also Play a Very Crucial Role in Real Life Applications
So I Want to Contribute on

How Graphs are Implemented By Different Other Data Structures
The Most Important Graph Algorithms BFS and DFS !!

Can I Move Forward Sir ??

Yes Please go ahead


Residual Flow & DDPM Addition

Conditional Residual Flow

Unconditional Residual Flow

Tests should be launched with utf-8 encoding

Conditional DDPM

Unconditional DDPM

Test update

Other non-functional updates

@necroshine0, thank you for your PR. Look at the comments above, please.


[Backport] [2.x] Bump com.avast.gradle:gradle-docker-compose-plugin from 0.17.5 to 0.17.6 (#11692)

Backport of https://github.com/opensearch-project/OpenSearch/pull/11692 to 2.x

❌ Gradle check result for 46e980b: FAILURE

https://github.com/opensearch-project/OpenSearch/issues/9191


[BUG]: Apple Certificate Fails to Install

New issue checklist

[X] I searched for existing GitHub issues
[ ] I read pipeline troubleshooting guide
[ ] I checked how to collect logs

Task name
InstallAppleCertificate@2
Task version
2
Issue Description
This is related to #18560, but since the work around is no longer working, I'm opening another issue.
When attempting to install the Apple Certificate with:
- task: InstallAppleCertificate@2
    displayName: 'Install Apple Distribution Certificate'
    name: iOSDistributionCertificate
    inputs:
      certSecureFile: '$(CertName)'
      certPwd: '$(iOSPrivateKeyPassword)'
      keychain: 'temp'
      opensslPkcsArgs: '-legacy'

I receive the following error:
/usr/local/bin/openssl pkcs12 -in /Users/runner/work/_temp/<certNameRedacted>.p12 -nokeys -passin pass:*** -legacy | /usr/local/bin/openssl x509 -sha1 -noout -fingerprint -subject -dates -nameopt utf8,sep_semi_plus_space
pkcs12: Unrecognized flag legacy
pkcs12: Use -help for summary.
unable to load certificate
140704383952640:error:0909006C:PEM routines:get_name:no start line:crypto/pem/pem_lib.c:745:Expecting: TRUSTED CERTIFICATE
##[warning]Error parsing certificate. This might be caused by an unsupported algorithm. If you're using old certificate with a new OpenSSL version try to set -legacy flag in opensslPkcsArgs input.
##[error]Error: /usr/local/bin/openssl failed with return code: 1
Finishing: Install Apple Distribution Certificate

The previous workaround in adding the opensslPkcsArgs: '-legacy' seemed to fix the issue in the past, with older versions of openssl. However, it seems that the macos-13 image now has a newer version of openssl in where the -legacy parameter has been removed.  You can see the "Unrecognized flag legacy" message in the above log.
So how can I get my iOS Apple Certificate installed?  I'm open to suggestion.
Environment type (Please select at least one enviroment where you face this issue)

[ ] Self-Hosted
[X] Microsoft Hosted
[ ] VMSS Pool
[ ] Container

Azure DevOps Server type
dev.azure.com (formerly visualstudio.com)
Azure DevOps Server Version (if applicable)
No response
Operation system
MacOS 13
Relevant log output
/usr/local/bin/openssl pkcs12 -in /Users/runner/work/_temp/<certNameRedacted>.p12 -nokeys -passin pass:*** -legacy | /usr/local/bin/openssl x509 -sha1 -noout -fingerprint -subject -dates -nameopt utf8,sep_semi_plus_space
pkcs12: Unrecognized flag legacy
pkcs12: Use -help for summary.
unable to load certificate
140704383952640:error:0909006C:PEM routines:get_name:no start line:crypto/pem/pem_lib.c:745:Expecting: TRUSTED CERTIFICATE
##[warning]Error parsing certificate. This might be caused by an unsupported algorithm. If you're using old certificate with a new OpenSSL version try to set -legacy flag in opensslPkcsArgs input.
##[error]Error: /usr/local/bin/openssl failed with return code: 1
Finishing: Install Apple Distribution Certificate

Full task logs with system.debug enabled

 ##[debug]loading SECRET_IOSPRIVATEKEYPASSWORD
##[debug]loaded 12
##[debug]Agent.ProxyUrl=undefined
##[debug]Agent.CAInfo=undefined
##[debug]Agent.ClientCert=undefined
##[debug]Agent.SkipCertValidation=undefined
##[debug]check path : /Users/runner/work/_tasks/InstallAppleCertificate_d2eff759-736d-4b7b-8554-7ba0960d49d6/2.231.1/node_modules/azure-pipelines-tasks-ios-signing-common/module.json
##[debug]adding resource file: /Users/runner/work/_tasks/InstallAppleCertificate_d2eff759-736d-4b7b-8554-7ba0960d49d6/2.231.1/node_modules/azure-pipelines-tasks-ios-signing-common/module.json
##[debug]system.culture=en-US
##[debug]check path : /Users/runner/work/_tasks/InstallAppleCertificate_d2eff759-736d-4b7b-8554-7ba0960d49d6/2.231.1/task.json
##[debug]adding resource file: /Users/runner/work/_tasks/InstallAppleCertificate_d2eff759-736d-4b7b-8554-7ba0960d49d6/2.231.1/task.json
##[debug]system.culture=en-US
##[debug]certSecureFile=531a576b-6fd5-41d6-af08-d67f77082b13
##[debug]opensslPkcsArgs=-legacy
##[debug]System.TeamFoundationCollectionUri=https://dev.azure.com/acr-devops/
##[debug]SYSTEMVSSCONNECTION auth param ACCESSTOKEN = ***
##[debug]Secure file retry count set to: 8
##[debug]Agent.ProxyUrl=undefined
##[debug]secure file name for id 531a576b-6fd5-41d6-af08-d67f77082b13 = .p12
##[debug]Agent.TempDirectory=/Users/runner/work/_temp
##[debug]Absolute path for pathSegments: /Users/runner/work/_temp,.p12 = /Users/runner/work/_temp/.p12
##[debug]Downloading secure file contents to: /Users/runner/work/_temp/.p12
##[debug]secure file ticket for id 531a576b-6fd5-41d6-af08-d67f77082b13 = ***
##[debug]SYSTEM.TEAMPROJECT=ACR Data Platform
##[debug]Downloaded secure file contents to: /Users/runner/work/_temp/.p12
##[debug]certPwd=***
##[debug]which 'openssl'
##[debug]found: '/usr/local/bin/openssl'
##[debug]which '/usr/local/bin/openssl'
##[debug]found: '/usr/local/bin/openssl'
##[debug]/usr/local/bin/openssl arg: ["pkcs12","-in","/Users/runner/work/_temp/.p12","-nokeys","-passin","pass:***","-legacy"]
##[debug]which '/usr/local/bin/openssl'
##[debug]found: '/usr/local/bin/openssl'
##[debug]/usr/local/bin/openssl arg: ["x509","-sha1","-noout","-fingerprint","-subject","-dates","-nameopt","utf8,sep_semi_plus_space"]
##[debug]exec tool: /usr/local/bin/openssl
##[debug]arguments:
##[debug]   pkcs12
##[debug]   -in
##[debug]   /Users/runner/work/_temp/.p12
##[debug]   -nokeys
##[debug]   -passin
##[debug]   pass:***
##[debug]   -legacy
/usr/local/bin/openssl pkcs12 -in /Users/runner/work/_temp/.p12 -nokeys -passin pass:*** -legacy | /usr/local/bin/openssl x509 -sha1 -noout -fingerprint -subject -dates -nameopt utf8,sep_semi_plus_space
pkcs12: Unrecognized flag legacy
pkcs12: Use -help for summary.
##[debug]success of first tool:false
unable to load certificate
140704744351488:error:0909006C:PEM routines:get_name:no start line:crypto/pem/pem_lib.c:745:Expecting: TRUSTED CERTIFICATE
##[debug]rc:1
##[debug]success:false
##[warning]Error parsing certificate. This might be caused by an unsupported algorithm. If you're using old certificate with a new OpenSSL version try to set -legacy flag in opensslPkcsArgs input.
##[debug]Processed: ##vso[task.issue type=warning;]Error parsing certificate. This might be caused by an unsupported algorithm. If you're using old certificate with a new OpenSSL version try to set -legacy flag in opensslPkcsArgs input.
##[debug]task result: Failed
##[error]Error: /usr/local/bin/openssl failed with return code: 1
##[debug]Processed: ##vso[task.issue type=error;]Error: /usr/local/bin/openssl failed with return code: 1
##[debug]Processed: ##vso[task.complete result=Failed;]Error: /usr/local/bin/openssl failed with return code: 1
##[debug]secure file name for id 531a576b-6fd5-41d6-af08-d67f77082b13 = .p12
##[debug]Agent.TempDirectory=/Users/runner/work/_temp
##[debug]Absolute path for pathSegments: /Users/runner/work/_temp,.p12 = /Users/runner/work/_temp/.p12
##[debug]Deleting secure file at: /Users/runner/work/_temp/.p12
##[debug]rm -rf /Users/runner/work/_temp/.p12
##[debug]removing file
Finishing: Install Apple Distribution Certificate

Repro steps
- task: InstallAppleCertificate@2
    displayName: 'Install Apple Distribution Certificate'
    name: iOSDistributionCertificate
    inputs:
      certSecureFile: '$(CertName)'
      certPwd: '$(iOSPrivateKeyPassword)'
      keychain: 'temp'
      opensslPkcsArgs: '-legacy'

Hi @SharpMobileCode, Thank you for the feedback! As I see openssl 3.1.4 and openssl 3.2 contains -legacy option which wasn't deprecated now.
Also, the error itself is different and not say that you have an old/unsupported certificate, are you sure that you're passing a valid certificate? Also could you please try to remove opensslPkcsArgs: '-legacy' and check will the error change?

Hi @DmitriiBobreshev, thanks for response.  I took at the certificate file again and it seem to have been corrupted in transit to me.  When I would manually tried to install it I got an error.  I had it regenerated and verified the new one wasn't corrupted.  Uploaded to the Secure File Storage and now it seems to be working.  So it seems it was just a bad file!
My apologizes, no bug intended.  Thanks for the feedback!

The issue is reappearing in macos-15 (preview) Xcode 16
/usr/local/bin/openssl pkcs12 -in /Users/runner/work/_temp/<redacted>.p12 -nokeys -passin pass:*** | /usr/local/bin/openssl x509 -sha1 -noout -fingerprint -subject -dates -nameopt utf8,sep_semi_plus_space
Error outputting keys and certificates
<redacted>:digital envelope routines:inner_evp_generic_fetch:unsupported:crypto/evp/evp_fetch.c:355:Global default library context, Algorithm (RC2-40-CBC : 0), Properties ()
Could not find certificate from <stdin>
##[warning]Error parsing certificate. This might be caused by an unsupported algorithm. If you're using old certificate with a new OpenSSL version try to set -legacy flag in opensslPkcsArgs input.
##[error]Error: /usr/local/bin/openssl failed with return code: 1
Finishing: InstallAppleCertificate

The issue is reappearing in macos-15 (preview) Xcode 16
/usr/local/bin/openssl pkcs12 -in /Users/runner/work/_temp/<redacted>.p12 -nokeys -passin pass:*** | /usr/local/bin/openssl x509 -sha1 -noout -fingerprint -subject -dates -nameopt utf8,sep_semi_plus_space
Error outputting keys and certificates
<redacted>:digital envelope routines:inner_evp_generic_fetch:unsupported:crypto/evp/evp_fetch.c:355:Global default library context, Algorithm (RC2-40-CBC : 0), Properties ()
Could not find certificate from <stdin>
##[warning]Error parsing certificate. This might be caused by an unsupported algorithm. If you're using old certificate with a new OpenSSL version try to set -legacy flag in opensslPkcsArgs input.
##[error]Error: /usr/local/bin/openssl failed with return code: 1
Finishing: InstallAppleCertificate

Is there any resolution to this? I have the same problem also with macos-15. Had to change to macos-15 because XCode 16 was no longer supported on macos-14.

This affects me too :(

We experience this bug intermittently on macOS 15.0, this is a big hindrance for our team.

#20669

As a workaround for now, I suggest you try the approach described here: https://github.com/actions/runner-images/issues/10703#issuecomment-2472826230


Example method scrollBy

Hello,
I am a beginner in react-native and I found your swiper very powerful and easy-to-use! Thank you 😃
Now I'd like to do a method that will autoscroll to another index when I touch a button (not with autoplay).
I think it's possible with the scrollBy(index,animated) method but I can't find an example that uses it.
I guess I should pass the swiper as a parameter (props) to the view component but I really don't understand how could I...
Here is the important part of my code
export default class swiper extends Component {
    render() {
        return (
            <Swiper
                showsPagination={false}
                showsButtons={false}
                loop= {false}
                index={0}>
                <Swiper
                    horizontal={false}
                    showsPagination={false}
                    showsButtons={false}
                    loop= {false}
                    index={0}>
                    <Tastr typeConnection={ConnectMusic} />
                    <Tastr typeConnection={ConnectMusic} />
                </Swiper>
                <Tastr typeConnection={ConnectShows} />
            </Swiper>
        )
    }
}

I need to go from ConnectMusic to ConnectedMusic when i touch a button.
Best regards,
Hadrien

You have to create a reference to the swiper to access its method.
add to the swiper of which you want to use scrollBy
ref={(swiper) => {this._swiper = swiper;}}
then add this to the button you have to click to scroll the swiper
onPress={() => this._swiper.scrollBy(1)}

thx! working example also here : https://github.com/leecade/react-native-swiper/issues/282

You have to create a reference to the swiper to access its method.
add to the swiper of which you want to use scrollBy
ref={(swiper) => {this._swiper = swiper;}}
then add this to the button you have to click to scroll the swiper
onPress={() => this._swiper.scrollBy(1)}

GREAT Thanks.


Minimised scatter plot issues: some rows are unexpectedly filtered out, scatter plot shown incorrectly when brought back

1.9.2, 1.10.2
Steps to reproduce:

Open SPGI table

Open Filters panel

Add a scatter plot: 'Chemical Space Y' as Y axis, 'Whole blood assay 1' on X axis

Minimise scatter plot so that it is almost completely hidden:

Reset filters
Expected results: filters are reset, all rows are displayed.
Actual results: some rows are filtered after clicking Reset filters:

Bring back scatter plot from minimised state
Expected results: scatter plot should show some data.
Actual results: scatter plot is empty:

Fixed in v1.11.1


chore(deps): update renovatebot/github-action action to 34.53.0

This PR contains the following updates:

Package
Type
Update
Change

renovatebot/github-action
action
minor
v34.52.0 -> v34.53.0

Release Notes

renovatebot/github-action
v34.53.0
Compare Source
See the the changelog for changes in all releases.
34.53.0 (2022-12-09)
Bug Fixes

deps: update renovate/renovate docker tag to v34.53.0 (7ab2d37)

Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.

[ ] If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

@balena-ci I self-certify!


script can't handle some repos in /etc/yum.repos.d/

[me@centos8t01 rocky-tools]$ sudo ./centos2rocky.sh
Ensuring rpm, yum, and wget are here.
Ensuring your version of CentOS is supported
Finding our modules that are enabled

There are some modules that are unsure of how to handle. This normally shouldn't happen. Do you want to resolve this yourself (Yes) or continue (No)?
1) Yes
2) No
#? 2
~/release /home/me/github/rocky-tools
warning: /etc/yum.repos.d/CentOS-Linux-Sources.repo saved as /etc/yum.repos.d/CentOS-Linux-Sources.repo.rpmsave
warning: /etc/yum.repos.d/CentOS-Linux-PowerTools.repo saved as /etc/yum.repos.d/CentOS-Linux-PowerTools.repo.rpmsave
warning: /etc/yum.repos.d/CentOS-Linux-HighAvailability.repo saved as /etc/yum.repos.d/CentOS-Linux-HighAvailability.repo.rpmsave
warning: /etc/yum.repos.d/CentOS-Linux-Devel.repo saved as /etc/yum.repos.d/CentOS-Linux-Devel.repo.rpmsave
warning: rocky-gpg-keys-8.3-11.el8.noarch.rpm: Header V4 RSA/SHA256 Signature, key ID 6d745a60: NOKEY
Verifying...                          ################################# [100%]
Preparing...                          ################################# [100%]
Updating / installing...
   1:rocky-gpg-keys-8.3-11.el8        ################################# [ 33%]
   2:rocky-release-8.3-11.el8         ################################# [ 67%]
   3:rocky-repos-8.3-11.el8           ################################# [100%]
Removing dnf cache
Ensuring repos are enabled before the package swap
Rocky Linux 8 - AppStream                                                                                13 MB/s | 6.6 MB     00:00
Rocky Linux 8 - BaseOS                                                                                7.1 MB/s | 2.5 MB     00:00
Rocky Linux 8 - Devel WARNING! FOR BUILDROOT USE ONLY!                                                               1.8 kB/s | 858  B     00:00
Errors during downloading metadata for repository 'devel':
  - Status code: 404 for http://mirrors.rockylinux.org/mirrorlist?arch=x86_64&repo=Devel-8 (IP: <IP_ADDRESS>)
Error: Failed to download metadata for repo 'devel': Cannot prepare internal mirrorlist: Status code: 404 for http://mirrors.rockylinux.org/mirrorlist?arch=x86_64&repo=Devel-8 (IP: <IP_ADDRESS>)
[me@centos8t01 rocky-tools]$ ls /etc/yum.repos.d/ |grep devel
[me@centos8t01 rocky-tools]$ ls /etc/yum.repos.d/
CentOS-Linux-Devel.repo.rpmsave             docker-ce.repo        epel-testing-modular.repo  Rocky-Devel.repo             Rocky-PowerTools.repo
CentOS-Linux-HighAvailability.repo.rpmsave  epel-modular.repo     epel-testing.repo          Rocky-Extras.repo            Rocky-Sources.repo
CentOS-Linux-PowerTools.repo.rpmsave        epel-playground.repo  Rocky-AppStream.repo       Rocky-HighAvailability.repo
CentOS-Linux-Sources.repo.rpmsave           epel.repo             Rocky-BaseOS.repo          Rocky-Media.repo
[me@centos8t01 rocky-tools]$ git log -1
commit 32a574c7f76b7954d07bd027afc72fbe381837aa (HEAD -> main, origin/main, origin/HEAD)
Author: nazunalika<EMAIL_ADDRESS>Date:   Sun May 2 10:47:22 2021 -0700

    add -L to mitigate issues
[me@centos8t01 rocky-tools]$

After I moved  some repos that this script can't handle  into /etc/yum.repos.d/.tmp dir

[me@centos8t01 yum.repos.d]$ ls
CentOS-Linux-HighAvailability.repo.rpmsave  Rocky-Extras.repo
CentOS-Linux-PowerTools.repo.rpmsave        Rocky-HighAvailability.repo
epel.repo                                   Rocky-Media.repo
Rocky-AppStream.repo                        Rocky-PowerTools.repo
Rocky-BaseOS.repo                           Rocky-Sources.repo
Rocky-Devel.repo
[me@centos8t01 yum.repos.d]$ find .tmp/
.tmp/
.tmp/CentOS-Linux-Sources.repo
.tmp/CentOS-Linux-ContinuousRelease.repo
.tmp/CentOS-Linux-Debuginfo.repo
.tmp/CentOS-Linux-Devel.repo
.tmp/epel-playground.repo
.tmp/epel-modular.repo
.tmp/docker-ce.repo
.tmp/epel-testing-modular.repo
.tmp/epel-testing.repo
.tmp/CentOS-Linux-Media.repo
.tmp/CentOS-Linux-Plus.repo
.tmp/CentOS-Linux-FastTrack.repo
[me@centos8t01 yum.repos.d]$

neofetch

centos2rocky has been deprecated in favor of migrate2rocky.  Please try again with migrate2rocky and see if your issue has been resolved.


simplify installation process

We can use the 'extras' feature inside setup.py to specify a number of extras that require optional dependencies.
Kernel Tuner has several optional dependencies, for example you could only be interested in tuning CUDA kernels, so it would not make sense to require OpenCL to be installed, or vice versa. You can read more about this in the install guide.
The idea is to turn these optional depencies into extras such that the user can install Kernel Tuner in a single command, instead of first installing Kernel Tuner and then having to also install all optional dependencies.
Currently we have a file called requirements-dev.txt for all the dependencies that are required to start developing Kernel Tuner. These could also be integrated using an 'extra'.
Please don't forget to update the install and contribution guides accordingly when you work on this issue.

Using the extras_require for the Setuptools the new optional keywords for installation have been added:

doc: install requirements to build the documentation.
cuda: install pycuda dependency.
opencl: install pyopencl dependency.
tutorial: install dependencies to run the jupyter notebooks interactively.
dev: install all the libraries to further develop kernel_tuner.


Replace product images in demo account with optimised URLs

To be done in the backend, see thread in Slack

Done in the backend, and the seeder file in this repo

Done in the backend, and the seeder file in this repo


grpc 0.13.0 does not install plugins on MinGW64 / MSYS2?

It seems the install of plugins is explicitly disabled in Makefile.template:
  install-plugins: $(PROTOC_PLUGINS)
  ifeq ($(SYSTEM),MINGW32)
    $(Q) false
  else
    ...

Is there a specific reason for this? It seems at least on MSYS2 with MinGW64, the plugins can be installed by disabling this check, and a simple shell execution seems to work (but I did not perform further testing).

Hnng, I don't necessarily remember why the plugin installation got disabled in msys2 / mingw, no. Probably because we were really cautious in building the msys / mingw support initially and didn't want to pollute systems inadvertently.

I can say that the plugin, once installed, "works for me". I did not do extensive testing, but an application sending and receiving a number of different message types was able to work correctly for at least a few hours. So in spite of further testing, I would say the mileage is pretty ok.

And up goes the version number.

Wait, is the issue fixed? Or just closed?

@emmenlau the issue was closed. We have not verified the plugins and are still cautious per the reasons mentioned by @nicolasnoble

Dear @hsaliak , please reopen. The plugins work on MSYS2 and my mileage is pretty good. While I understand the sentiments from @nicolasnoble , I do not think its helpful successfully compile on MSYS2 and then intentionally fail installing the plugins. Current status is intentionally breaking the build for no apparent reason.
Maybe better to install the plugins unless users actually report issues?

Fixed in #9307.


Write new articles for Docs/Actors

Based on the New Docs Structure file https://www.notion.so/apify/Actors-fffffa2c645448b3b90a4017a9f96f68

Some helpful info here: https://apifier.slack.com/archives/CGZSN9DQC/p1613990954005700


Remove awaits in loops

Currently there are many lines in the code violating no-await-in-loop . They are ignored with // eslint-disable-next-line no-await-in-loop, but in the longer term they should be fixed for performance reasons. It will become more important the more sources are used.

This is fixed in the Uwazi in 199e6db, which was the main place it was needed.
There are still two loop awaits in the backend import script, but their performance impact is not critical at the moment, and would require a lot of testing to be confident in removing them. From my reading of the code they should be easy to remove, since the actual db work is protected by a "batch" (like a transaction). But as I recall, there were still some issues when I actually tried to remove them and do an import.


aadHttpClientFactory: Token request previously failed. Is there a widespread outage right now?

What browser(s) / client(s) have you tested

[X] 💥 Internet Explorer
[X] 💥 Microsoft Edge
[X] 💥 Google Chrome
[X] 💥 FireFox
[X] 💥 Safari

Describe the bug / error
EDIT: It seemed to have fixed itself. It no longer throws the error about 6 hours after creating this post. I have confirmed that it now works for several people in our organization. Read comments below for possible cause and solution.
All of our SharePoint sites that have custom webparts that use aadHttpClientFactory to generate a token are completely down because it can't generate a token. This applies to every person in our organization. It was working fine all day but now not a single user can generate a token
Error:
Token request previously failed
Code:
const client = await this.context.aadHttpClientFactory.getClient(Settings.AZURE_SHAREPOINT_APP_REG_CLIENT_ID);

        const httpOptions = this.getHttpClientOptions(body);

        const httpMethod = type === "POST"
            ? client.post(url, AadHttpClient.configurations.v1, httpOptions)
            : client.get(url, AadHttpClient.configurations.v1, httpOptions);

        return new Promise<any>(resolve =>
        {
            httpMethod.then(response =>
            {
                response.json().then(result =>
                {
                   ......

                });

            });
        });

Steps to reproduce
Make an API call using aadHttpClientFactory object.
Expected behavior
A token is generated

We were experiencing the same at 15.30 EST, but now it seems to work.

We have been getting the same issue with different customers since yesterday. If you don't want to wait until it fixes itself you can apply this solution https://github.com/SharePoint/sp-dev-docs/issues/9099#issuecomment-1701406090. We still don't know why it happens and how to prevent it.

@lebisalarcon-sparrow You may be on to something. During our outage yesterday, I was poking around our back end looking at different pages and went to the API access page at the same time everything started working again. I do see a secret that looks corrupt with the description ù á¡,zA°COß (yes, it has a bunch of weird characters). I also see another secret that looks normal. Maybe the one secret was corrupt and by going to the page it added the other one and fixed everything?

We still don't know why it happens and how to prevent it.

This has been my experience with this error for the past 3 years. But usually it just happens to random people (internal and external) at random times and goes away. This is the first time it took it down for our entire company and all external users.

@lebisalarcon-sparrow You may be on to something. During our outage yesterday, I was poking around our back end looking at different pages and went to the API access page at the same time everything started working again. I never deleted any secrets like it says to do but I see a secret that looks corrupt with the description ù á�¡,zA°���CO�ß (yes, it has a bunch of weird characters). I also see another secret that looks normal.
Maybe the one secret was corrupt and by going to the page it added the other one and fixed everything? I don't understand what those secrets are for and how they work. I've never changed anything in that registration

We still don't know why it happens and how to prevent it.

This has been my experience with this error for the past 3 years. But usually it just happens to random people (internal and external) at random times and goes away. This is the first time it took down our entire company and all external users.

I believe that secret is automatically generated by MS so that SharePoint can talk to AD. There are dozens of threads with the "corrupt" token issue and not a single answer from MS as to why it happens.

We have experienced issues with customers using our custom web parts/extensions from time to time. Previously, refreshing the "corrupted" secret key often resolved the issue. However, this workaround is no longer effective for us. Any updates or advice on this issue would be greatly appreciated.


Fix all links in pages

issue:
-- right now the register button is taking nowhere
-- add event registration link in register button
-- check all link in the page with proper link and attributes and all links needs to be open in a new tab by default.

I'm working on this.

@sujalpatel2209 Ok


Specify which Node version is required to build VS code

It seems like Node v 0.10 is not supported.
ReferenceError: Promise is not defined
    at <path>\vscode\extensions\csharp-o\gulpfile.js:40:14

Would be helpful to know the minimal Node version needed.

Good point. You'll need node at least 0.12.


Create Click to Dial_API.md

api info
What type of PR is this?
Add one of the following kinds:

bug
correction
enhancement/feature
cleanup
documentation
subproject management
tests

What this PR does / why we need it:
Which issue(s) this PR fixes:

Fixes #
Special notes for reviewers:
Changelog input
 release-note

Additional documentation
This section can be blank.
docs

@HanbaiWang It looks like that this PR was merged without any discussion and review within the sub project. As a codeowner you should ensure that the sub project participants had sufficient time to review and comment the proposed material before it get merged. A good practice would be to discuss in at least one public meeting of the sub project before it get merged.
Without having done a review, the document has at least several issues, for example:

the file went into code/API_Definitions, but belongs into documentation
it contains business process descriptions which are specific for the China Mobile Communication Capability Open Platform. That content does not belong here
Basic authentication is not in line with the CAMARA guidelines (use of OAuth 2.0 and OIDC)
Recording of sessions goes beyond the scope defined in https://github.com/camaraproject/WorkingGroups/blob/main/APIBacklog/documentation/SupportingDocuments/API proposals/APIproposal_ClickToDial_ChinaMobile.md and might difficult to be implemented for operators to to telecommunication secrecy laws.
...

@HanbaiWang It looks like that this PR was merged without any discussion and review within the sub project. As a codeowner you should ensure that the sub project participants had sufficient time to review and comment the proposed material before it get merged. A good practice would be to discuss in at least one public meeting of the sub project before it get merged.
Without having done a review, the document has at least several issues, for example:

the file went into code/API_Definitions, but belongs into documentation
it contains business process descriptions which are specific for the China Mobile Communication Capability Open Platform. That content does not belong here
Basic authentication is not in line with the CAMARA guidelines (use of OAuth 2.0 and OIDC)
Recording of sessions goes beyond the scope defined in https://github.com/camaraproject/WorkingGroups/blob/main/APIBacklog/documentation/SupportingDocuments/API proposals/APIproposal_ClickToDial_ChinaMobile.md and might difficult to be implemented for operators due to telecommunication secrecy laws.
...

Thanks for your kindly remind and instruction，this is my first time participating in an open-source community project, and there are many things I'm unclear about. We will pay attention to these issues and make corrections in our subsequent work. Really appreciate your help!