Role creation CLI for Harvest user with 7-mode

When looking at https://github.com/NetApp/harvest/blob/main/docs/AuthAndPermissions.md, I see the procedure well documented regarding required permissions for the Harvest user with cDOT, but nothing about 7-mode.
A user just sent me a notice on that topic with the following fix he applied :
useradmin role modify netapp-harvest-role -a login-http-admin,api-system-get-version,api-system-get-info,api-perf-object-*,api-ems-autosupport-log,api-diagnosis-status-get,api-lun-list-info,api-diagnosis-subsystem-config-get-iter,api-disk-list-info,api-diagnosis-config-get-iter,api-aggr-list-info,api-volume-list-info,api-storage-shelf-environment-list-info,api-qtree-list,api-quota-report

thanks @ybizeul I'll update the docs to include that


Ditch backend-agnostic index classes

Well, I think they should become 'base classes' that the backend-specific ones should be based on. This way, they can still be used in type-hints for other backend-agnostic components.
To make it possible to reuse custom index code across multiple backends, backend modules should define their overrides/custom methods in a mixin that can be easily applied to generic index classes to make them work for that backend. Where developers want to register the same index with multiple backends (an unlikely scenario, but hey), they would just define and register multiple subclasses of their generic version, using the relevant backend-specific mixins.
Vector index backends can then easily identify the indexes that apply to them, by checking whether registered indexes use their specific mixin class.
Downsides of this approach would be:

Devs can't just switch the main vector index backend in settings and expect custom indexes to work... There would be a step to extend from the relevant backend-specific index class too.
Its joining together two things that are currently separate in terms of architecture. However, in my experience, thinking about the index as a separate/agnostic component has only been a hinderance to understanding what I can and cannot do with it.

Thanks @ababic, your feedback on this is really useful.
I like this idea, the separation of VectorIndex from backend-specific Index classes has always felt a bit awkward and this seems like a sensible way to rationalise that - it also brings it more in line with Wagtail's search backends which might make it easier for developers to understand.

I've attempted an implementation of this change over at #65

Resolved by #65


Add IT with security for alerting

Issue #, if available: https://github.com/opendistro-for-elasticsearch/opendistro-build/issues/346
Description of changes: Hook alerting IT with security to all distributions
Test Results:

DEB: https://github.com/opendistro-for-elasticsearch/opendistro-build/runs/995559159?check_suite_focus=true
RPM: https://github.com/opendistro-for-elasticsearch/opendistro-build/actions/runs/212802592
TAR: https://github.com/opendistro-for-elasticsearch/opendistro-build/runs/996047260?check_suite_focus=true
DOCKER: https://github.com/opendistro-for-elasticsearch/opendistro-build/runs/996085569?check_suite_focus=true
WINDOWS: https://github.com/opendistro-for-elasticsearch/opendistro-build/runs/996150073?check_suite_focus=true

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

Thanks for adding this. 👍 @gaiksaya


I should not be able to edit this fields while some patients may already gave their consent to participate

The status of the study is Approved.
You should not be able to change sex, age, type of data

OR, maybe the invitations should be sent after changing the status of the study to Active.
@nliappas please talk with your team in order to find the best approach.

the invitations should be visible after changing the status of the study to Active


Making ID-Management work again (WIP)

Fixed Startup of both Patientlist and ID-Manager (for Patientlist additionally see https://code.mitro.dkfz.de/projects/BD/repos/teststandort/commits/6849513f70b2048ea71e5933c22dfcc833686715)
Fixed routing settings for Patientlist and ID-Manager

This PR is work in Progress, it needs to be further tested before merging:

check if the login in the ui works properly (http:///id-manager/html/projectSelection.html)
check if id generation from ui works properly
check if the integration tests are working

The Pull Request was closed in favor of PR2.
The changes from here are all included in the new PR.


remove "women rapping" from en

I tried my best but no amount of googling or soul-searching offered insight into how "women rapping" is offensive.

Thank you, Will! That was a strange one and I wonder how it made it on to the list.


Fix syncthing path on Windows

Fixes #201

@jordanbuchman Rather than split these out we'll probably do this inline, although I suspect there's a more elegant way.
Closing in favor of #203


Add relevant go badges

This repo was still pointing to godoc badge, which is now deprecated and replaced by pkg.go.dev, so this PR updates the docs link to use pkg.go.dev.
I also pulled the relevant go badges from terratest (goreportcard and go mod version).

Thanks for review! Merging now.


Migrate flake8 rules to ruff

Translating the previous flake8 rules in setup.cfg to ruff rules in pyproject.toml. Original rules were set in #15.
The following ruff lint rules are set:

B - flake8-bugbear
C4 -flake8-comprehensions
C90 - mccabe
E - pycodestyle
F - pyflakes
W - pycodestyle warnings

Notes:

Did not keep any of the ignored rules (E203,E266,E501,W503,E722,E402,C901,E731) since none of them were triggered
Dropped the deprecated flake8-mypy (T4) rule.

References:

https://docs.astral.sh/ruff/rules

Part of #47

i would replace isort and black too while you're at it.
My current fave is
https://github.com/earth-mover/forecast-datacube-demo/blob/7ce8082aa6e4e02ffd5ac2fe124e0f3c689be477/pyproject.toml#L4-L15
https://github.com/earth-mover/forecast-datacube-demo/blob/main/.pre-commit-config.yaml

Cool, thanks for the tips @dcherian. There's a few more linter stuff we can move to ruff, but that can wait. I'll merge this in now and combine it into #48.


Add Bitcoin transaction binary encoding

Codecov Report

Merging #16 into master will decrease coverage by 1.9%.
The diff coverage is 64%.

@@            Coverage Diff             @@
##           master      #16      +/-   ##
==========================================
- Coverage   86.43%   84.52%   -1.91%
==========================================
  Files          41       44       +3
  Lines        1622     1771     +149
==========================================
+ Hits         1402     1497      +95
- Misses        220      274      +54

Impacted Files
Coverage Δ

Sources/Data+Clear.swift
100% <100%> (ø)
:arrow_up:

Tests/Bitcoin/BitcoinTransactionTests.swift
100% <100%> (ø)

Sources/BinaryCoding.swift
35.29% <35.29%> (ø)

Sources/Bitcoin/BitcoinTransaction.swift
80.76% <80.76%> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 09a2e3b...a54a283. Read the comment docs.


bug？screen locked. cannot resume

When the screen is locked, it cannot be recovered.
Sometimes the screen is red, sometimes it's black.
tty is normal.

wlr.hyprland.log

# about lockscreen

exec=pkill swayidle; swayidle -w timeout 300 'swaylock -f' timeout 360 'hyprctl dispatch dpms off' resume 'hyprctl dispatch dpms on' before-sleep 'swaylock -f'

if you lock your screen and kill the lockscreen you're basically making yourself enter a limbo.

This is by design to prevent someone from accessing your session bypassing a lockscreen by pkilling it

When I removed pkill, this program still exists.

issue on swaylock's side then

I'm having the same issue. I'm just running swaylock from the terminal. After authenticating, the screen goes red. Cursor is still visible but I can't do anything. My hotkey for exiting my wayland session still works though and takes me back to my greeter (sddm).
Apr 12 21:00:42 kratos swaylock[238649]: gkr-pam: unlocked login keyring
Apr 12 21:00:50 kratos xdg-desktop-por[238301]: Lost connection to Wayland compositor.

Were you able to figure anything out @lisuke ?

I just realized I was using swaylock-effects-git. I uninstalled and installed swaylock and it works now.

I just realized I was using swaylock-effects-git. I uninstalled and installed swaylock and it works now.

Thank you, solved.


Do you think it is necessary to add these constraints ?

Suppose t(xt, yt), r(xr, yr), b(xb, yb), l(xl, yl) are BBAVectors, the extra constraint/loss I propose has two parts as follows:

t must be parallel to b, as well as l and r. the formula can be described as:
xt / xb - yt / yb = 0
xl / xr - yl / yr = 0
t and r must be orthogonal, as well as b and l. the formula can be described as:
xt * xr + yt * yr = 0
xb * xl + yb * yl = 0

Do you think it is necessary to add these constraints ? I think these constraints may have the effect of relieving the difficulty of the corner case...

I tried these constraints but they brought no noticeable benefits. Instead, it would introduce NAN loss. But I haven't tried if a larger batch size would help.


Fix integer overflow in SegmentMetadataQuery numRows.

numRows can easily overflow an int when merging is enabled.

👍

@gianm once we hit Long.MAX_VALUE we'll have to switch to doubles though :)

👍 after travis


Sidebar - Fake Registrations

Adopting drains is so easy that one person can adopt many in a short period of time.
Adopt-a-drain registration process allows a users to enter fake email addresses. A fake account could then go on to maliciously adopt large quantities of drains to keep others from adopting.
We need to develop a process to, at a minimum, verify the validity of a registrant's email.

Interesting. We will have to discuss this in the future.
Another thought that I had- is there any way to import the already adopted drains from the City of Grand Rapids into this system? I'm concerned about people having to 're-adopt' their drains...but I'm not sure if there is a way around this. Something to keep in mind as development moves forward.

Not sure how difficult this might be, what about putting a daily (or other unit of time) limit to registering drains?

How about a retention schedule to implement the delay...Retention is based on pairing an adoption removal with a retention period (aka, delay).  When the retention period is exceeded the adoption is un-done.
In the case of adopting a drain, clicking the adopt button would mark the drain as a new adoption and send a confirmation email to the user.   The system would treat the adoption as real. Other users would see the adoption and life would go on.  Let’s say the retention period is 24 hours from the moment of adoption, the adopter would have 24 hours to check their email and click a confirmation link.  Clicking the confirmation link would cause the retention period to be reset to one year from the time of confirmation.  A year later, a process would fire off another email to let the person reconfirm or unadopt. If no action, taken then drain is automatically unadopted…
Adoption Retention Schedule

Activity
Retention Period

adoption
24 hours

adoption confirmation
1 year

I think this is a good idea. It's similar to how City of GR currently works. Users are reminded to re-adopt annually.


Balanced Brackets Code In Java

I will solve this in best time complexity.
Please assign this to me.

Please assign this issue to me @Shubham56-droid


Feature Request: Add flex attributes to Container, Row, and Col (possibly all components)

I originally posted this in https://github.com/reactstrap/reactstrap/issues/1066 but I think it makes sense as a feature ticket onto itself.

I've learned how to use Bootstrap's flex features, but I always trip up on the small things. Example: Is it justify-content-center or is it justify-contents-center?
Adding these as attributes instead of as classNames allows us TypeScript users to have that documentation inline as we write code and validate the flex features to make sure we're not tripping up.
It could work like so:

UI demo (best to look on a desktop browser with a larger screen)
Code for the demo
Components code

Does anyone have any thoughts on this?

I like the idea, but what you essentially made was a higher order component without it actually being a higher order component.
Thinking about a HOC for this actually makes a lot of sense. You applied the code to a few components. I am not sure if we want to do that out of the box or just export an HOC which can create the className.
Here is a proof based on your example: https://codesandbox.io/s/x9yz4oj5m4
The HOC would allow third-party components to easily get flex classNames.


Spike on using CometMock in smoketest

Opening draft PR for collab during pairing. Refs #2771.
To run the code in this PR, first ensure cometmock is on your PATH. Then:
  cargo run --bin pd --release -- testnet unsafe-reset-all
  ./deployments/scripts/smoke-test.sh

Currently debugging the socket wire protocol, which seems perhaps to be an incompatible TSP version.

For future reference, Astria is working on a test utility for comet: https://github.com/astriaorg/astria/pull/328/files.
It has a different shape than the Comet as a library that we discussed but it is interesting to track effort there!

Closing this R&D spike as unmerged. See details in https://github.com/penumbra-zone/penumbra/issues/2771#issuecomment-1878998540. We'll follow up soon with a re-specified issue, aiming a solution better suited to our testing needs.


bugfix (#51958): The text is hidden for non selected tab

Checklist:

[x] I have read and followed the contribution guidelines.
[x] I have read and followed the how to open a pull request guide.
[x] My pull request targets the main branch of freeCodeCamp.
[x] I have tested these changes either locally on my machine, or GitPod.

Closes #51958

Hey @maruthumj,
Thank you for opening this pull request.
This isn't what should be done to resolve the linked issue. See #51958 (comment).
Thank you and happy coding.

I don't understand whether this issue needs a fix or not by reading that comment. can you elaborate please?

Hey
Thank you for opening this pull request.
As there was different PR - #52018 - making all necessary changes, merged recently, we are going to close this one.
Thank you and happy coding! 😊

If you have any questions, feel free to ask questions on the 'Contributors' category on our forum or the contributors chat room.


Streaming logs from non Console Flows

Add query params that will allow the Console to stream logs from a Flow not started by the Console.

The user upon starting a Flow will receive a link. This link will take the user to the Monitor tab of the page and start streaming the logs from this Flow.

Acceptance criteria

Add query params that can be populated by a starting Flow.

Parse out query params to connect the log streaming to the appropriate Flow.

Link to feature: https://jinaai.productboard.com/feature-board/planning/features/8123703


Remote network not accessible from computer using wg-server as default gateway

Setup
I have following setup:

please see picture below
home router with

private network <IP_ADDRESS>/24, local ip <IP_ADDRESS>
public facing ip <IP_ADDRESS> (just an example, not my actual ip)

wg-server (raspberry pi, debian)

eth0 interface connected to local network, ip <IP_ADDRESS>
wg0 tunnel with ip of <IP_ADDRESS>/24
dns commented out (I want to rule this out for now)

computer-A (windows10)

connected to local network, ip <IP_ADDRESS>
no wireguard installed
default gateway set to: <IP_ADDRESS> (wg-server's local ip)
dns set to <IP_ADDRESS> or <IP_ADDRESS>

wg-client (vps, debian)

eth0 interface connected to public network <IP_ADDRESS> (example, not my actual ip)
wg0 tunnel, ip <IP_ADDRESS>/24

The wg-server and wg-client are using exactly your configurations (with placeholders correctly replaced for eth0).
After establishing the tunnel:

wg-server traffic seems to be correctly routed through wg-client (running these commands on wg-server)

curl ifconfig.me returns correctly `wg-client's public ip'
traceroute <any_url/ip> - i can see a hop through <IP_ADDRESS>
ping <any_public_ip/dns_name> works correctly, I get replies

ping from wg-server to wg-client using their tunnel ips (and vice versa) works ok

Problem
Now comes the problem. Nothing of mentioned above works for the computer-A connected to local network, with wg-server's local ip set as a default gateway.

ping <anything> - times out (pinging local network <IP_ADDRESS>/24 works, dns is also correctly resolved when using <IP_ADDRESS> as dns)
tracert <any_url/ip> - i can see a hop through <IP_ADDRESS>, doesn't get any further - times out on next row
curl ifconfig.me times out

Please can you help me to sort this out? This is inteded use, correct?
I expect the computer-A to route all traffic through wg-server to wg-client resulting in:

public ip displaying my vps'es ip (wg-client)
route all traffic through tunnel on devices, where I can't install wireguard (for whatever reason)
route all dns queries through tunnel (ok, I probably need to install dns server on wg-client and uncomment it on wg-server side correct?)
effectively pretending like computer-A is sitting on my vps'es network

Hi @peterpepo
Thanks for your interest in this repository.
From what I can see, my first guess is a problem with iptables in at least one of the wireguards.
Try to run a traceroute from the wg-server to a public IP and respond to PING (not the wg-client public IP) like traceroute <ANY_PUBLIC_IP>.
If the result is that you see two hops and then no answer
1 <IP_ADDRESS> [...]
2 <IP_ADDRESS> [...]
3 ***

If the traceroute stops indefinitely at point 3, then it's an iptables problem; if not, then it's something else.
If this doesn't give you enough info to solve the problem, please drop me a message, and we can continue via email.
Thanks


Adding option to specify device name

addresses issue #456

I rather think that the existing set_local_name() method is wrong.
What exactly is your method doing ?

I'm just setting the dev_name variable so that later on
case BT_APP_EVT_STACK_UP: {
            // set up device name
            esp_bt_dev_set_device_name(dev_name);

it will get picked up.
the existing set_local_name method seems to do something else doesn't it?

I think It is supposed to do exactly that: To provide the local name

I don't mind that at all.

  Thank you!


No 'Access-Control-Allow-Origin' header....

"XMLHttpRequest cannot load http://localhost:8080/service. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost' is therefore not allowed access. "
Seems with angular I can never get my requests to NOT do pre-flight.   I'm seeing an
So I would expect if this is using built-in angular that the OPTIONS request is sent first.  And indeed it is, but nothing happens after that other than I get this error.  Seems my response headers allow most things.   What else needs to happen?
I would use a fiddle, but I quite literally have your code in both your GAE server example and your view and controller files exactly like you have in your repo.   I did try to play with request headers but no help....
This is my trace of the initial OPTIONS request and response that LOOKS good.   I have no idea how that response is coming with all those options set.. is it getting that from my apache config or something?    Anything jumping out here?
Remote Address:<IP_ADDRESS>:8080
Request URL:http://<IP_ADDRESS>:8080/service
Request Method:OPTIONS
Status Code:200 OK
Request Headers-view source
Accept:/
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-US,en;q=0.8,tr;q=0.6
Access-Control-Request-Headers:accept, method, content-type
Access-Control-Request-Method:POST
Cache-Control:no-cache
Connection:keep-alive
Host:<IP_ADDRESS>:8080
Origin:http://localhost
Pragma:no-cache
Referer:http://localhost/okrp/app/
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.116 Safari/537.36 FirePHP/4Chrome
X-FirePHP-Version:0.0.6
X-Wf-Max-Combined-Size:262144
Response Headers-view source
Allow:GET, HEAD, POST, TRACE, OPTIONS
Cache-Control:no-cache
Content-Length:0
Date:Sat, 12 Apr 2014 00:05:14 GMT
Expires:Fri, 01 Jan 1990 00:00:00 GMT
Server:Development/1.0
*********************** MY (YOUR) CONTROLLER ******************
assetsApp.controller('reportCtrl', [ '$scope', '$upload', function($scope, $upload) {
$scope.onFileSelect = function($files) {
//$files: an array of files selected, each file has name, size, and type.
for (var i = 0; i < $files.length; i++) {
var file = $files[i];
$scope.upload = $upload.upload({
url: 'http://localhost:8080/service',//upload.php script, node.js route, or servlet url
// method: POST or PUT,
// headers: {'header-key': 'header-value'},
// withCredentials: true,
    //headers: {'method':'POST', 'Content-Type': undefined},
    data: {myObj: $scope.myModelObj},
    file: file, // or list of files: $files for html5 only
    /* set the file formData name ('Content-Desposition'). Default is 'file' */
    //fileFormDataName: myFile, //or a list of names for multiple files (html5).
    /* customize how data is added to formData. See #40#issuecomment-28612000 for sample code */
    //formDataAppender: function(formData, key, val){}
  }).progress(function(evt) {
    console.log('percent: ' + parseInt(100.0 * evt.loaded / evt.total));
  }).success(function(data, status, headers, config) {
    // file is uploaded successfully
    console.log(data);
  });
  //.error(...)
  //.then(success, error, progress);
  //.xhr(function(xhr){xhr.upload.addEventListener(...)})// access and attach any event listener to XMLHttpRequest.
}
/* alternative way of uploading, send the file binary with the file's content-type.
   Could be used to upload files to CouchDB, imgur, etc... html5 FileReader is needed.
   It could also be used to monitor the progress of a normal http post/put request with large data*/
// $scope.upload = $upload.http({...})  see 88#issuecomment-31366487 for sample code.

};
}]);

XMLHttpRequest cannot load http://<IP_ADDRESS>:8080/uploadTest.do. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access.

@viconn you need to enable CORS on your server.

server Use CORS ~

HTML CODE

Upload on form submit
            Username:

*required
Photo:

*required

File too large
          {{picFile.size / 1000000|number:1}}MB: max 2M

Remove

Submit

Upload Successful
{{errorMsg}}

</form>

javascript CODE

var app = angular.module('fileUpload', ['ngFileUpload']);
app.controller('MyCtrl', ['$scope', 'Upload', '$timeout', function($scope, Upload, $timeout) {
$scope.uploadPic = function(file) {
file.upload = Upload.upload({
url: 'http://<IP_ADDRESS>:8080/uploadTest.do',
data: {
file: file,
username: $scope.username
},
method:'JSONP',
headers: {
/*  'enctype': 'multipart/form-data',/
/ 'Content-Type': undefined,/
/'Access-Control-Allow-Origin': ''/
        }
    });

    file.upload.then(function(response) {
        $timeout(function() {
            file.result = response.data;
        });
    }, function(response) {
        if (response.status > 0)
            $scope.errorMsg = response.status + ': ' + response.data;
    }, function(evt) {
        // Math.min is to fix IE which reports 200% sometimes
        file.progress = Math.min(100, parseInt(100.0 * evt.loaded / evt.total));
    });
}

}]);
ERROR INFO

the request doesn't contain a multipart/form-data or multipart/mixed stream, content type header is null


Add NFT sample deployment sample

Signed-off-by: Marcus Brandenburger<EMAIL_ADDRESS>

Closing this, the examples will be created under https://github.com/hyperledger/fabric-samples/tree/main/token-sdk


React Support

Is the plan for this plugin to remain vue specific? I'd love to have the same support with react if possible. But I also know that it's probably a lot of work and if that's not what your direction is for this plugin, I completely understand.

This plugin was written then Vite is still 1.0-rc and being Vue specific, so sorry for the name might be misleading.
While I would love to say I am happy to have it framework-agnostic, I am afraid that even someone finds a way to contribute to this project via a PR, I will not be able to maintain it.
So, as for now, maybe it's better to keep it vue specify, and for someone who knows react better to create/maintain a separate plugin.
Thanks for bringing this up.


Grenade Improvements

Controler Aim Rework
Mouse Aim Polish
Added Explosion at the end of the grenade
Added Explosion VFX
Improved Black Hole VFX @Akiramei11
Added Area Of Efect new Decal

Task linked: CU-86c09t6j0 Grenade controller aim rework


Profile based modules: Reposition cover menu on View Profile page.

On Desktop: The menu should be displayed in the second line just below the title.

Related issue: Toolbar in page header isn't covered with More Submenu popup.
https://una.io/page/view-discussion?id=2564


Frequency calculation uses entire MCAP duration as the denominator instead of per-channel duration

Description
If I have a 10 minute MCAP file containing two channels, where the first channel contains one message per second for 10 minutes and the second channel also contains one message per second but starting at the 5 minute mark, the frequencies will be reported as 1 Hz and 0.5 Hz.
The per-channel frequency calculation should, in my opinion, use the per-channel duration instead of the total MCAP duration.

The per-channel duration is not available without reading the entire file:

The Statistics record only stores the all-channel start and end times
Chunk records only store all-channel start and end times for that chunk

We can maybe revisit this as part of a major spec revision.

I don't know that it would require a major spec revision - but it would require a new kind of summary record (or other new records) to avoid reading the entire file.
Possibly useful would be a disclaimer on the info command that the hz readings are estimates? Maybe that is too pedantic since the hz could vary throughout the data.


User from one organization can access to a list of clusters of another organization

After disabling authentication in insights-results-aggregator it's possible to access to data of an organization the user doesn't belong to. If I enable authentication back GET /organizations/{orgId}/clusters will return 403 with error Missing authentication token.
Steps to reproduce:

Upload an archive using the credentials of one organization.
Perform GET /organizations/{org id from step 1}/clusters with the credentials of another organization

Actual result:
A list of clusters is received and the status code is 200.
Expected results:
Status code 403 or 404

I have to reopen this. Though I can't access to /organizations/{orgId}/clusters of another org. The status code is 403 now but in this issue https://github.com/RedHatInsights/insights-results-smart-proxy/issues/67 we agreed to have 404 for such cases.


Unable to hear android recorded voice on iOS and iOS recorded voice on android

I am working on the voice note feature in chat, right now I am sending the file to the backend and play the voice from URL and it works on the android phone from which I sent the voice note but unable to hear this from another iOS phone and same for the file that is being sent by the iOS and unable to hear on android, I also used the file system to first download the voice and then play and this work around is also not working
Version of react-native-audio-recorder-player
3.6.4
Version of React Native
0.71.14
Platforms you faced the error (IOS or Android or both?)
both
Expected behavior
listen on both OS despite sending from any device.
Actual behavior
Explained in description.

How did you set the path ?
Did you check if the format is supported vise versa ?

Facing same issue, is anyone looking into this issue ?
Below is the code which i am following:
Start recording:
import RNFS from 'react-native-fs';
import AudioRecorderPlayer from 'react-native-audio-recorder-player';

const audioRecorderPlayer = new AudioRecorderPlayer();

    const dirs = RNFS.DocumentDirectoryPath;
    const path = Platform.select({
      ios: 'temporary_voice.m4a',
      android: `${dirs}/temporary_voice.mp3`,
    });

    const result = await audioRecorderPlayer.startRecorder(path);
    audioRecorderPlayer.addRecordBackListener(e => {
      console.log('Recording...', e);
    });

End Recording:
       const result = await audioRecorderPlayer.stopRecorder();
      audioRecorderPlayer.removeRecordBackListener();
      setRecordedURI(result);

Recording sent to my database:
        const fileContent = await RNFS.readFile(recordedURI, 'base64');
        const fileName = `recordings/${Date.now()}.mp3`;
        let payload = {
          fileName,
          fileContent,
          chatId,
        };

Which then returns the url, android audio works only on android and ios only works on ios,

import AudioRecorderPlayer, {
AVEncoderAudioQualityIOSType,
AVEncodingOption,
AudioEncoderAndroidType,
AudioSourceAndroidType,
OutputFormatAndroidType,
} from 'react-native-audio-recorder-player'
const result = await audioRecorderPlayer.startRecorder(undefined,{
AudioEncoderAndroid: AudioEncoderAndroidType.AAC,
AudioSourceAndroid: AudioSourceAndroidType.MIC,
AVEncoderAudioQualityKeyIOS: AVEncoderAudioQualityIOSType.high,
AVNumberOfChannelsKeyIOS: 2,
AVFormatIDKeyIOS: AVEncodingOption.aac,
OutputFormatAndroid: OutputFormatAndroidType.AAC_ADTS,
})
Just import these properties and send this in the object as a second param, then you can play the voices on cross-platform if you record with these options.
@MrFarhan

Above solution works for me


Improve Vsphere UX around cloudinit/cloudconfig

Proposed changes
There was confusion and misuse around cloudinit and cloudconfig.
This change switches things up so cloudinit is only used for the
legacy creation type and cloudconfig is used for all other creation
types.
This also changes the textarea that was used for cloudconfig to
input-yaml to make it clear to users that they can enter yaml.
Types of changes

Bugfix (non-breaking change which fixes an issue)

Linked Issues
rancher/rancher#24314

I put this as WIP as Luther is going to verify that it works with the backend.

This can now be merged.


automated record id for Patch URL

updated CustomButtonController.apxc in Salesforce to include Application recordId in filename sent to S3 (String filename = versions[0].Title + '-' + app.Id + '.' + versions[0].FileExtension;)
updated fileUploaded/handler.js to pull recordId from filename and include in Patch URL to Salesforce
updated main.tf to remove references to PATCH_URL variable as it is now created in fileUploaded/handler.js
updated prompt to Chat GPT to include more explicit language about which resume to compare to the job description

This looks great @blinton-ross
Go ahead and merge to main.


Backport of explicit protocol set

Backport of explicit protocol setting: https://github.com/ShootProof/sentry-php/commit/6ce65abab960ddbd7b22355afe3088261fab4775#diff-e2b9681244f52c28911e89834f05a2953654ccb96e1d353b42cae64a753bab63

Did you accidentally open the PR against the wrong fork? 😄

Yes! Sorry! Doing a quick bandaid until I can get through dependency hell.

@cleptric isn't this a backport of https://github.com/getsentry/sentry-php/pull/1542?
Are we sure that we don't need it anyway?

@cleptric isn't this a backport of #1542? Are we sure that we don't need it anyway?

I'd say it should be a full backport (guzzle and curl) and not just the curl portion that we use. I got around the dependency issue and ended up upgrading to 3.22 instead of this route anyway.

Sorry, my worded my reply poorly. I don't think we're interested in backporting the fix onto an old unsupported version. We may be interested in a forward port in 4.x though.

No need, 4.x already has it: https://github.com/getsentry/sentry-php/blob/198828374e21e25b3e1c66ad956fee61b19cccd5/src/HttpClient/HttpClient.php#L74.

Just for completeness sake.
We could, in theory, bump to HTTP2 anytime, the bug in cURL does not happen in our HTTP client.
The issue was that the Decoder Plugin sets a TE header with values being invalid in a HTTP2 context. https://github.com/php-http/client-common/blob/676f98fb3785d2c9e1b16aa24d9fcc39066f3f06/src/Plugin/DecoderPlugin.php#L54-L67
See https://github.com/php-http/client-common/issues/230


feat: pullable

This PR simply adds the required pullable metadata.
To verify the overall workflow, we will need to make a new release so that the wasm module in GitHub release artifacts will have these metadata. And that release should not be "pre-release" in order to be accessible  using "latest" label.
And there is an issue on the dfx side which requires wasm_hash_url to contains the hash only. Instead of modifying the CI of this project, I change the dfx deps pull to accept shasum output. PR is pending.
I removed the "pre-release" label of the 0.2.8 release. So that I could verify the wasm_url and wasm_hash_url can be reached.
And I also verified the content of init_guide field is correct to deploy the canister locally.

The linked PR is no longer pending.
What is still required to drop the Draft label?


feat(quant): Added new field and header to quant api

As a part of quant latest requirements "IsArrayReturnType" field under fql expression section and new header field is added.

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

@snalkari Can you please update the title and description of the PR as it is releasing other changes along with Quant's updates?

@snalkari Can you please update the title and description of the PR as it is releasing other changes along with Quant's updates?

Addressed


mit_sceneparsing_benchmark: fix train error, support "same" config that does not resize image

With this fix I could train with mit_sceneparsing_benchmark dataset.
config:
model:
    arch: fcn8s
data:
    dataset: mit_sceneparsing_benchmark
    train_split: training
    val_split: validation
    img_rows: 512
    img_cols: 512
    path: /home/helin/dataset/ADEChallengeData2016/
training:
    train_iters: 300000
    batch_size: 1
    val_interval: 1000
    n_workers: 16
    print_interval: 50
    optimizer:
        name: 'sgd'
        lr: 1.0e-10
        weight_decay: 0.0005
        momentum: 0.99
    loss:
        name: 'cross_entropy'
        size_average: False
    lr_schedule:
    resume:

Thanks!

Thanks!


Adding the Inkeep "Ask AI" button

Description
Adding the Inkeep "Ask AI" chat button as discussed with @asifkazi
Upstream PRs

3.10:
3.11:
3.12:

Screen grabs

CLA received. Thanks a lot.


Adding custom scripts per page

I've used gitter to get help on adding custom scripts to a page instance. However, that ended up being a implemented via modification of theme and catching of URL. Upon a match, the custom script can be added.
I think this is not a good approach at all for the several reasons:

the page specific URL becomes hardcoded
the URL is hardcoded inside a theme
to add a new page or change the current page, theme needs to be modified
if different users exist (one admin and several maintainers), users with restricted permissions need rights to modify theme in order to create a custom page

I don't know how other people use pages. For myself, I want to create several pages such as Overview, Contact, and a few others. Overview will use a service that I write to fetch n last blog entries along with a script and style that only that page will use. Contact has custom login to manage contact form as well as additional custom script to manage a nice UX. Both of the scripts are used only on individual pages and do not need to be included throughout the site. It would make a lot of sense to implement script specifications per page.
As the basis, sites like jsfiddle or codepen allow to include custom scripts and styles per fiddle/pen. That's the idea I'm thinking about for Pages.
I am not familiar with the entire codebase of pagekit but, with some pointers, I'm willing to implement this and provide a PR to help facilitate this feature.
I've seen that node-page.vue uses inputs to provide status, roles, and menu for the node. I'm assuming that scripts would also have to go onto the node model as well. However, I'm not sure if it's a simple addition of parameters to node model or actual dbschema needs to be updated to accommodate the change.
If this feature does not fall or interferes with roadmap of pagekit for whatever reason, is there a way I can override default page-node implementation in order to facilitate this script inclusion?
Thank you for any guidance.

Looks like I should be able to just update pagekit\app\system\modules\site\src\Model\Page.php with the new column that will store included scripts (maybe it is not necessary to provide that for Node.php as the scripts aren't important for link-node and others). Then update pagekit\app\system\modules\site\app\components\node-page.vue with something like
<template>
    ....

                {{ 'Scripts' | trans }}

                    <input type="text"  class="uk-form-width-large" v-model="newScript" @keyup.enter="addScript">

                             {{script}}</script>x

     ....
</template>

And then in pagekit\app\system\modules\site\views\page.php, I can hopefully do something like:
<?php
      // iterate over scipts property and render script inclusion
      for ($i = 0, $l = $page.scripts.length; $i < $l; $i++) {
          $script = $page.scripts[$i];
          // This can be smarter
          if (preg_match('/\.js$/i', $script)) {
              $view->script('theme', $script);
          } else {
              $view->style('theme', $script);
          }
      }
?>

     ...

This is just rough thought but I wanted to check the general places that need updates. If it's correct, I'll apply contribution guidelines and proper ui styles as well as full code to make it happen.

So far, I have updated Page.php with new column definition scripts as simple_array, updated page.php to render scripts with $view->(script|style) based on extension of script, and updated node-page.vue with scripts input and sortable list:

This may not be all the work but let me know if you'd agree to the PR with this feature and if I'm missing something.

While I think this is a great feature, I think it would make sense to have this as an optional extension for the Site tree. You could package it up to release in the marketplace.
And instead of having it appear on the sidebar, how about it becomes its own tab on top of the editor? (next to Content and Theme it could say "Scripts").

Ok, that sounds great, I'll build the extension. I'll also keep this issue open and ask some questions, if I'll have them, as I'm not completely familiar with entire pagekit's pipework... though you have some great tutorials and podcasts available!

Hello @ardoramor , maybe you have come up with an extension already?
Thanks

This sounds interesting! Is it going to become an extension?

Any updates on this?


[incubator-kie-drools-6203] Adjust docs for 10.0.0

Issue:

https://github.com/apache/incubator-kie-drools/issues/6203

Remove unused adoc files
Change kiegroup/drools to apache/incubator-kie-drools
Add entries to release notes

@gitgabrio @yesamer @baldimir Let me know if you have anything to add in release notes. Of course, it could be added by another PR after merging this.


Replace filters icon with a primary button

The filters icon is too small and doesn't have the visual relevance it deserves. To harmonize it with the rest let's replace the icon with a primary "Filters" button.

@DavidQuartz I see that you've just adopted a primary button for the icon. The goal was to replcae the icon with a "Filter" label. See picture below.
However let's keep the icon for mobile.


FAST.Farm running error problem: Program Exception - access violation

Hello everyone，
I want to learn the use of FAST.Farm, but encountered some problems during the operation, mainly the following two:
1. The program is interrupted abnormally when more than two wind turbines are set in the configuration file.
In the configuration file, set "Ambient Wind Model" to "One InflowWind Module "(i.e. Mod_AmbWind=2). In the corresponding inflowwind.dat file, set "WindType" to "Steady wind"(i.e. WindType=1). At this time, set one or two wind turbines, the program can run normally. However, when I set the wind turbines to three or more, the program was interrupted abnormally and displayed "Program Exception - access violation". The configuration file and exception information are as shown in the figure below. I don't know the reason for the error. Is it related to the wind turbine coordinates and the grid scale of the wind farm, or other reasons?

2. The out-of-boundary problem when using Binary TurbSim Full-Field files (.bts)
Take two wind turbines as an example. When "WindType" is set to "Steady wind", the program can run normally, but when "WindType" is set to the Binary TurbSim Full-Field files (.bts) generated by TurbSim, the program will have an error as shown in the figure below.

Is it because the grid size defined in the TurbSim profile does not match the grid set in the "INFLOWWIND MODULE" entry in the Fast. Farm profile? If so, how should these two parts (as shown in the figure below) be set to ensure that the program works properly?

Thank you for browsing

Dear @Xch-ang,
Regarding (1), I'm not sure what causing this access violation and if it is problem in FAST.Farm or your model set up.  The error should be easier to understand if you rerun this case with FAST.Farm compiled in debug mode.  It would also help if you share your model so that we can debug what is happening.
Regarding (2), I haven't reviewed your results in detail, but I'm guessing your FAST.Farm model is not set up so that TurbSim and the low- and high-resolution domains of FAST.Farm are set up consistently.  It is not straightforward to set up TurbSim and FAST.Farm consistently, so, we've tried to provide good modeling guidance on how to do this in the FAST.Farm documentation (https://openfast.readthedocs.io/en/main/source/user/fast.farm/ModelGuidance.html); we've also provided Python scripts (https://github.com/OpenFAST/python-toolbox/tree/main/pyFAST/fastfarm) to help manage the process, which I suggest you use.
Best regards,


ftplib api

What do you think about adding ftplib like api? (https://github.com/python/cpython/blob/master/Lib/ftplib.py)
So basically, create separate class or client, with api same as in ftplib but await or yield from added. People familiar with sync version of ftplib will pick up new async api easily.  Such approach will simplify porting apps from sync to async too.
Porting ftplib should be strait forward, I can help with review and and may be code.

When I started with aioftp I was just copy ftplib features, and you can see it: callbacks, blocks_size, timeouts, rest, etc. But time goes by and I'm sure, now we have much better api: streams (btw your great idea), high level paths operations (upload, download), high level listing of directory, recursive remove and so on, but also we have access to any level of abstraction (from lowest to highest with grades) if we need something special.
(Also I don't like short names like mkd, mlsd, rmd, cwd, pwd, etc. But it's my problem, cause someone definetly like it. :stuck_out_tongue_closed_eyes: )
But probably you are right, and we can do ftplib-like api. But as a subpackage:
import aioftp.ftplib

# and here we have old-good-api

What do you think about subpackage?

Oh I see, I've missed callbacks thing there... Better not to mix callbacks and asyncio at all...

Looks like callbacks used whenever we read data by chunks, so we can convert callbacks api to async iterator api:
async for chunk in ftp.retrbinary(cmd, block=1024):
    print(chunk)

if so we should drop 3.4 and this will be not ftplib api, I think.

Hm, may be ftplib is no that good idea... I just tried to find a way to get
rid of callbacks without braking backwards compatibility.
On Mon, Sep 21, 2015, 18:05 pohmelie<EMAIL_ADDRESS>wrote:

if so we should drop 3.4 and this will be not ftplib api, I think.
—
Reply to this email directly or view it on GitHub
https://github.com/pohmelie/aioftp/issues/12#issuecomment-142009314.


Disable etcd3 on arm since it's segfaulting

@zreigz @cheld
Should be a trivial PR, etcd3 isn't working on arm unfortunately :/
I have to debug it more

PTAL

Yes, thanks. Of course I meant to have 2.2.5 in the etcd case :)

LGTM

Great, thanks!


[question] Caching Issue

When changing the data in the state that gets rendered to the map our markercluster reference to .getAllChildMarkers() appears to have mixed cache & new data.
When logging the context value, it appears to be 100% correct, however, if I log the value of cluster.getAllChildMarkers() in the iconCreateFunction that I've made, I get a mix between newly added data & stale "cached" data that shouldn't be in there.
I think this is due to updateLeafletElement not being implemented. Our position may not change for some markers, however, the values will, thus resulting in this pseudo caching.

Some of our code that demonstrates usage.
<MarkerClusterGroup             onclustermouseover={handleClusterMouseover}             ref={clusterRef}             iconCreateFunction={markerClusterIcon}             removeOutsideVisibleBounds             chunkedLoading         >             {/* this visible array has the good values in it, so its not this. */}             {visible.map(v => (                 <ComposedMarker                     key={v.UNIQUE_IDENTIFIER}                     position={v.location}                     icon={markerIcon(v)}                     status={v.status}                     value={v[map.key]}                     name={v.name}                     id={v.UNIQUE_IDENTIFIER}                 /> </MarkerClusterGroup>

I have faced what I think is a variation of the same issue, from what I understood, from the behaviour and looking at the code, it seems once the function is initially set, the iconCreateFunction will never be updated.
If you change the key on  MarkerClusterGroup it will work though, as it will force react to dump the old instance and create the new one.

I have faced what I think is a variation of the same issue, from what I understood, from the behaviour and looking at the code, it seems once the function is initially set, the iconCreateFunction will never be updated.
If you change the key on MarkerClusterGroup it will work though, as it will force react to dump the old instance and create the new one.

I ended up just using natively built leaflet markers & using the cluster ref to append them.

the iconCreateFunction will never be updated.

since I don't see any specific handler for iconCreateFunction, isn't this react-leaflet problem?

I've came out with following addition. It requires id prop (must be same as key) to be added to the Marker
  updateLeafletElement(fromProps, toProps) {
    const { children: fromChildren } = fromProps;
    const { children: toChildren } = toProps;

    const markers = this.leafletElement.getLayers();
    toChildren.forEach(({ key, props }) => {
      const marker = markers.find(({ options }) => options.id === key);
      if (marker) {
        const { children, ...restProps } = props;
        L.setOptions(marker, restProps);
      }
    });

    this.leafletElement.refreshClusters(markers);
  }

I've came out with following addition. It requires id prop (must be same as key) to be added to the Marker
  updateLeafletElement(fromProps, toProps) {
    const { children: fromChildren } = fromProps;
    const { children: toChildren } = toProps;

    const markers = this.leafletElement.getLayers();
    toChildren.forEach(({ key, props }) => {
      const marker = markers.find(({ options }) => options.id === key);
      if (marker) {
        const { children, ...restProps } = props;
        L.setOptions(marker, restProps);
      }
    });

    this.leafletElement.refreshClusters(markers);
  }

I need more information on this. For me, the iconCreateFunction is still not updating it still show the same cluster icon color but the inner marker of itself worked just fine and already got updated to the proper color

Related https://github.com/yuzhva/react-leaflet-markercluster/issues/149#issuecomment-854920761


How to get regionInfo for a subscription?

The rate card API:
https://management.azure.com/subscriptions/{subscription-Id}/providers/Microsoft.Commerce/RateCard?api-version={api-version}&$filter=OfferDurableId eq ’{OfferDurableId}’ and Currency lt ’{Currency}’ and Locale eq ’{Locale}’ and RegionInfo eq ’{RegionInfo}’’
requires the regionInfo to be provided for each request. The regionInfo, according to the documentation, refers to the location where the offer was purchased (offer referring to the OfferDurableId). The OfferDurableId can be obtained from the subscription and subsequently from here. However, I didn't find the regionInfo anywhere.
How to get the regionInfo for a subscription?

You can go to https://account.windowsazure.com/Profile and then view the address on file to figure out the account region. Once a sub is started, the country cannot be changed.

Can this RegionInfo be accessed through code/API ?


fix: password validation not start with special

Description
#325
The random_password resource does not offer the flexibility of restricting the first character.
Adopted the following logic:

if first char is - replace with J
else

if first char is _ replace with K
else use asis

This should not impact any existing users, since the DA failed if the first character was wrong.
Release required?

[ ] No release
[x] Patch release (x.x.X)
[ ] Minor release (x.X.x)
[ ] Major release (X.x.x)

Release notes content
Fix a bug to avoid the administrator password generated by the DA starting with a special character.
Run the pipeline
If the CI pipeline doesn't run when you create the PR, the PR requires a user with GitHub collaborators access to run the pipeline.
Run the CI pipeline when the PR is ready for review and you expect tests to pass. Add a comment to the PR with the following text:
/run pipeline

Checklist for reviewers

[ ] If relevant, a test for the change is included or updated with this PR.
[ ] If relevant, documentation for the change is included or updated with this PR.

For mergers

Use a conventional commit message to set the release level. Follow the guidelines.
Include information that users need to know about the PR in the commit message. The commit message becomes part of the GitHub release notes.
Use the Squash and merge option.

Marking as draft whilst more extensive local testing/validation is undertaken.

admin_pass2 = "GwKoQIn86UsapEzu4v5a4Oqx_w53L10n"
admin_pass3 = "GwKoQIn86UsapEzu4v5a4Oqx_w53L10n"
admin_pass2 = "CT4tlk3VWhMf2NNp93CKDTeqy49qTcMs"
admin_pass3 = "CT4tlk3VWhMf2NNp93CKDTeqy49qTcMs"
admin_pass2 = "_Cr0R7HXrQXLPyV9IWHDuSY20qKhUA9h"
admin_pass3 = "KCr0R7HXrQXLPyV9IWHDuSY20qKhUA9h"
admin_pass2 = "8vkhWRPX5uSHPidnk8mjieQ3WRjf2VE5"
admin_pass3 = "8vkhWRPX5uSHPidnk8mjieQ3WRjf2VE5"
admin_pass2 = "xBqv1pis69dnjtUyojCyVUO6GJM1j5RI"
admin_pass3 = "xBqv1pis69dnjtUyojCyVUO6GJM1j5RI"
admin_pass2 = "BffOKeh3RanY4OapEu48Is8ss8mCk3jw"
admin_pass3 = "BffOKeh3RanY4OapEu48Is8ss8mCk3jw"
admin_pass2 = "-4KHq_9G68eRp4aQvnR9hgRTJt3yFF5i"
admin_pass3 = "J4KHq_9G68eRp4aQvnR9hgRTJt3yFF5i"
admin_pass2 = "h8kYGym7khL_Opl_6YmdVNoGn6yQoH9b"
admin_pass3 = "h8kYGym7khL_Opl_6YmdVNoGn6yQoH9b"
admin_pass2 = "Oi_4qf7Fy9RKKffJ70U37wMp4jklhFRo"
admin_pass3 = "Oi_4qf7Fy9RKKffJ70U37wMp4jklhFRo"

The code was run, marking the secrets as non-sensitive and outputting the values before and after manipulation. This shows both - and _ being converted and due to the random nature many others including the characters at other places.

/run pipeline

/run pipeline

/run pipeline

/run pipeline

/run pipeline

/run pipeline


Question: Why is it bad to import package.json?

The current README.md states:

You could import your package.json into the module but you know it is a naughty thing to do! Genversion to the rescue!

In a few separate projects, I've imported package.json to expose version information, but didn't know that it was seen as a bad thing to do.
Why is it bad? As someone stumbling across this library, I'm not sure why I shouldn't be doing it! A quick Google took me to a StackOverflow question which mentions inadvertently exposing dependency versions when used with browserify/browserify.
Is this the reason? Is it just front-end JavaScript that's at risk here?
Whatever the reasoning, including it in the README.md would be a great boon!

Hi and thanks for feedback. You are absolutely right. The discussion you found was the discussion that initially made me build and publish genversion. As a quick fix, I converted "it is a naughty thing" to a link. The link points to the discussion and especially to an answer that describes the problem.

Awesome. Thanks so much for that! Beautiful little package that addresses that problem then! I learned something today! 😛

The link you point to is precisely the accepted answer to the SO's question "Is there a way to get version from package.json in nodejs code?". That accepted answer recommends using:
var pjson = require('./package.json');
console.log(pjson.version);

ie: it recommends importing the package.json file and simply read the version property
It just adds a limitation if you use Browserify to inform you that your package.json will become public (which is not necessarily problematic).
NB: if you only do Node.js, this is just fine.
Saying it is a bad thing is clearly really exaggerated and a bit opportunistic to promote your package.

To argue the point, @abernier, both answers are correct, are they not? The answer in the SO question is a perfectly fine and simple way to get the version string; it's not wrong, but neither is this package for suggesting an alternative.
It's not a firm security requirement that you use something like this, but it might be a good idea if your project demands it.
I'm a bit confused as to why you'd post this pretty aggressive message in an old issue. The README.md stating "it's a naughty thing to do" is definitely tongue-in-cheek and not some sort of "opportunistic" warning. What's wrong with an optional package that provides some utility over a simpler method?

Hi folks. Thank you @jpwilliams for backing me up here. But also thanks @abernier for the effort of pointing out how some people might react to the wording after learning the topic. However, thumbs downing jp's friendly comment was rather harsh, please blame me if you want to blame somebody instead of focusing to the issue here. Small things matter.
When I published genversion, I thought that only the people who know the dangers of dependency exposure would be the ones to search for the tool and find the tool useful. It seems that after the tool has gained some popularity, also people without this knowledge arrive and wonder if the tool could benefit their project. I understood now that without the knowledge, my relaxed wording in the introducing paragraph might be misleading.
To answer this fortunate situation of increased popularity, I updated the wording to be more informative and for wider audience.
@jpwilliams and @abernier, may I ask how did you stumble upon genversion in the first place? I believe it was not via the SO page. Web search? Npm?


Unable to start osbuild-composer on RHEL-8.4 GA

Describe the bug
Unable to start osbuild-composer on RHEL-8.4 GA. 2021/07/21 06:00:18 Error initializing weldr API: loaded repository definitions don't contain any for the host distro/arch: there are no repositories for distribution 'rhel-84' and architecture 'x86_64'
Environment

OS version: RHEL-8.4 GA
osbuild-composer version: built from source while on 583bfc0b4a822f7853323f25022cfb059e13b50f in main

To Reproduce
Steps to reproduce the behavior:
systemctl start osbuild-composer.socket
Expected behavior
osbuild-composer.socket and service starts

From a brief look, I think that the problematic part is https://github.com/osbuild/osbuild-composer/blob/583bfc0b4a822f7853323f25022cfb059e13b50f/internal/weldr/api.go#L144-L151
Specifically that Weldr tries to get the host distro name using distro.GetHostDistroName(), which does not "mangle" the distro name and for minor versions >= 4 it always returns the name rhel_xy instead of rhel_x. Then the code tries to get the distro from the distro registry using the mame, but the issue is that in RPMs shipped in RHEL, we don't include repositories for specific minor RHEL versions.
I do believe that the fix here is to call distroregistry.Registry.FromHost() method to directly get the host distro definition instance:
https://github.com/osbuild/osbuild-composer/blob/583bfc0b4a822f7853323f25022cfb059e13b50f/internal/distroregistry/distroregistry.go#L128
The core of the problem is that this part
https://github.com/osbuild/osbuild-composer/pull/1427/files#diff-fe743ec28260b37c624410f3a34f54bd498871b621dc90f3745d45803c1c089aL79-L98
was not correctly moved to Weldr and uses "not mangled" name to get the host distro
https://github.com/osbuild/osbuild-composer/pull/1427/files#diff-3e98e022524e7eaf03f93b64cf38427d2f97b96259e039647967bb5db6f18429R144-R154

Ahh, right, that seems to have gotten lost/confused when I rebased it on top of the distroregistry change (in a previous iteration of the PR there was a new mangleName function which handled that).

@jrusz I am unable to get current main branches of osbuild/osbuild-composer running on 8.4 so I'm not 100% sure this fixes things. Also not sure how to add testing for this, if it's even possible?

Ok, so the problem isn't that the mangling isn't happening it is that it stops for 8.4 and there is no 8.4 repo file.
I tried using distroregistry, but doing that then mangles the name into one that isn't in the registry so the schutzbot tests for things like centos-stream-8 and rhel-8-beta all fail because those are unknown distros.
So I think this needs to actually be fixed by getting rid of this mangling nonsense and actually having repos for the distros, or aliases as #1577 suggests.
In the short term this would be fixed by adding rhel-84.repo

Short term fix merged in #1579

This seems fixed to me. Please reopen if still a problem.


empty conversation in rasa-x >= 1.0.0 when 'action_restart' is executed

Rasa Open Source version
2.8.12
Rasa SDK version
2.8.1
Rasa X version

= 1.0.0

Python version
3.8
What operating system are you using?
Linux, Self hosted Cloud (openshift)
What happened?
When the action: action_restart is executed inside a conversation, the whole conversation-history is deleted (or at least empty in the UI). For further description with screenshots see: https://forum.rasa.com/t/empty-conversations-in-rasa-x-1-x-x/51079.
Command / Request
No response
Relevant log output
No response

Thanks for raising this issue, @koaning will get back to you about it soon✨
Please also check out the docs and the forum in case your issue was raised there too 🤗

Is there any update? :) @koaning


Badges

Fixes #22.
Changes proposed in this pull request:

Adds badges
Adds pills
Story book styling for buttons and icons

LGTM


Add procfile from stdin support

I think this could be pretty handy to have an ability to load Procfile from stdin. Because in this case Procfile could be easily generated.

Looks good. Thanks for your contribution!


Global offset should be set when navigation mode is disabled

Describe the bug
Here, https://github.com/ApolloAuto/apollo/blob/master/modules/perception/obstacle/onboard/visualization_subnode.cc#L305 code is commented out for some reason which can't understand why did it that way. I guess it should be enabled when we dont use navigation mode (FLAGS_use_navigation_mode).
To Reproduce
If I understood correctly it should be changed in  this way,
  if (!FLAGS_use_navigation_mode) {
      content->set_global_offset(objs->sensor2world_pose);
  }

Expected behavior
If we do so, we can see the camera all the detected or fused object when visulize it.
Desktop (please complete the following information):

OS: ubuntu 16.04
Browser chrome

Any update in this?


Fixed MinAvgTwoSlice task.

The new algorithm reduces complexity from O(N^2) to O(N) by convolving an average filter of length 3 and length 2. These filters are sufficient in order to determine the minimum average of any slice from the vector.

Right, and to be sure, you did explain the convolution above, but I guess a reference for how you knew to do that in the first place.  Doesn't change the solution, but since I'm doing this for educational and reference purposes, I'd like to learn how you knew about it.

Let me try to explain. I did it a long time ago.
First of all, imagine the number n in naturals. Let m be the length of a vector v. This vector is a collection of real numbers. Let v_n be an element from this vector v.
The average of the elements of a contiguous vector from v with dimension k<=m is avg_k(n)=[v_n+v_(n+1)+...+v(n+k-1)]/k
We have to note that if
k = 2; avg_2(n) = [v_n+v_(n+1)]/2
k = 3; avg_3(n) = [v_n+v_(n+1)+v_(n+2)/3
k = 4; avg_4(n) = [2avg_2(n)+2avg_2(n+2)]/4
k = 5; avg_5(n) = [2avg_2(n)+3avg_3(n+2)]/5
If avg_5(n) is the minimum between all possible avg_5(n), that means that there is an avg_2(n) or an avg_3(n) that is the minimum.
This is what a lot of fast algorithms take advantage. You have to figure out if some computing is being repeated. If this is happening you should use some strategy to avoid doing the same computation more than once, that is: storing in some data structure or taking strong conclusions from fewer passes as possible over the data set.


Use static const for non-enumeration constants?

Is your feature request related to a problem? Please describe.
Currently OpenThread uses enum define constants event it is not an enumeration type. This causes issues like the compiler doesn't know the enumeration is signed or unsigned when choosing a overloaded methods.
Describe the solution you'd like
Use static const <type> to define non-enumeration constant, where <type> is a concrete numeric type, such as int32_t, uint32_t, uint8_t and so on.
Additional context
See #3865

If we switch to C++11 we may specify a type for enum enum asd : uint32_t { a = 123 };

#6824 is starting to address this issue (by using constexpr.

Resolved by:

#6824
#6845
#6875
#6895
#6907
#6909
#6910
#6911


Fix race condition causing NO_PROPOSAL_CHOSEN

When one side of the cluster installs a cable a connection request is
automatically triggered. If the other side's charon has not been
configured yet with the correct IKE then it answers with a NO_PROPOSAL_CHOSEN
causing the initiator side to remove its SA and not retry again. This
leads to a situation where the cable is installed, and thus won't be
replaced/reinstalled, but without an SA to establish the tunnel. A
"stale" cable of sorts.
This problem becomes more relevant and apparent when only one side has a
public IP, as in this case the system cannot rely on the reverse SA to
establish the tunnel.
This patch handles the scenario where a cable becomes stale by removing
that cable and allowing submariner to install it again, reestablishing
a valid SA.

Still have to write tests for it. The patch has been validated together with @dimaunx and it solves the issue we were experiencing.

I've researched if there was an option to not delete the SA upon receiving the NO_PROPOSAL_CHOSEN event, but there is none as stated on https://wiki.strongswan.org/issues/1501#note-17


[RC-249] [Feature] Value Diff for models with Composite Primary Key

Describe the feature
Recce Value Diff feature allows to select single column for Value Diff. We use models with Composite Primary key, so we can't run Value Diff.
Describe alternatives you've considered
No response
Who will this benefit?
No response
Are you interested in contributing this feature?
No response
Anything else?
No response
RC-249

Hi @kokorin
Thank you so much for taking the time to submit this feature request. It's great to hear from users who are keen to see our product evolve and improve. 😀
We've actually had this feature in our backlog, but seeing your interest and recognizing its importance, we're bumping up its priority. We will make it possible soon.

Our current solution relies on the audit-helper package. Unfortunately, this package supports only single-column primary key.
As a temporary workaround, you can consider the addition of a surrogate key to the model. Looking ahead, we are also exploring the possibility of Recce facilitating the use of this surrogate key transparently.


Add async support

This will require Python 2 support to be dropped, which as I understand isn't likely to happen till 2020. Which is a bonus as it gives time to consider this change and the implications of it. (I also need to spend some time cleaning up this implementation, yet it serves as a proof of concept).
I've written this blog post to add some extra context, but I see a key aspect to this change is that whilst it adds async support it does not do so throughout and specifically does not support ASGI. This means that Flask is constrained (when using async) to have worse performance than the ASGI equivalents. This is necessary as I don't think Flask can be async throughout (or support ASGI) whilst being backwards compatible. Yet this change is good overall, in that users would be able to add some async usage to their existing codebases. I would also like to note that they can switch to Quart if their usage becomes mostly async.
This allows for async functions to be passed to the Flask class
instance, for example as a view function,
@app.route("/")
async def index():
    return "Async hello"

this comes with a cost though of poorer performance than using the
sync equivalent.

Hey Phil!
I know my views are different than many on this topic, but the main (only?) reason I would use an asynchronous server over a synchronous one is to achieve much higher scaling. This solution obviously does not address this problem, so this should be noted. I think the note about the performance is warranted, but just a partial aspect, the scaling limitations should be noted as well.
A second thought is that it would be nicer if multiple concurrent async view functions could run concurrently in the asyncio thread, all under the same loop. I believe your implementation would allow only one async function to run at any given time. It seems there wouldn't be any problem in using a shared loop to run all of them concurrently, and that would eliminate some of the performance penalties in using this solution, I think.

Hi Miguel!
I agree with you on both points (except that I think this does allow multiple async functions to run at once if the server is threaded or green threaded - each async function would get its own thread). With the latter point, I'd rather not explore how to implement running all functions under the same thread without a feeling that this is the right approach for Flask.

Phil, I may be missing something. You are starting a thread pool of size 1 hardcoded, which means that you will have only one asyncio thread per Flask process. Even if you used a threaded server, the bottleneck is the single asyncio thread. You could make that size of 1 configurable, and then you can have some control over how many asyncio view functions can run concurrently, but that seems backwards to me. I think running all of them in a single loop is what makes most sense. I agree with you on that there is no point in going through the effort until we decide to go forward with a solution of this type.

I've had individual discussions with @mitsuhiko, @andrewgodwin, and @pgjones that lead to this implementation as a possible first step, despite the limitations you point out. The first goal is to enable @route() async def at all. Later improvements could build on this.
Please continue to discuss, I wanted to add some context for why this implementation was submitted.

@pgjones if it's helpful, I don't mind depending on asgiref, as they have some nice async/sync helpers already.

I suggest we create a v2 branch and putting async into v2.

I'd prefer to avoid a v2 branch, and wait till next year and the end of Py2 before merging this.
I've looked into asgiref, I'm not sure it is a good fit here - will take another look though, thanks.

Wow, it's exciting.
In addition, I think we can stop the suitability guarantee for Python2 in advance.

This seems like a mere patch-up job (which @pgjones knows & mentioned)... But I'm sure there's a good reason why Flask isn't just merging-in/taking-on-the-direction-of Quart (?).
As that is more inline with the Python3 asyncio direction, and this is a breaking change anyway..

@pgjones master is Python 3 only now, this can be rebased.

@davidism I think this is good to review and potentially merge.

I've updated, and think it is good to merge.
Just to note I see this is the start of async support in Flask rather than a complete solution - there are a number of unanswered questions e.g. what about views that return async iterators?

AnyIO is better choice than asgiref?

I think it hasn't much impact for wsgi app

Saw @miguelgrinberg tweet about using an async SQLAlchemy demo: https://twitter.com/miguelgrinberg/status/1279894131976921088, might be relevant to consider with this.

@davidism So it's still somewhat early to call victory on this, but if you want some details on what I have done...
What Mike Bayer's gist made me realize is that you can do greenlet context switches within an asyncio task, and this allows us to interrupt standard functions and send control back to the asyncio loop. To test this out I added a custom hub class to eventlet that does all the waiting using asyncio primitives such as asyncio.add_reader, add_writer, etc.
Since Flask runs great with greenlets, I can now run Flask on top of eventlet, who runs on top of asyncio! Here is some of the crazy things I've tested:

await for an async function in a normal Flask view function (without blocking, obviously):

@app.route('/foo')
def foo():
    await_(asyncio.sleep(1))
    return 'Hello!'

The await_ helper function uses asyncio.create_task() to launch the passed coroutine as a normal asyncio function, and then uses a greenlet based event to wait for it to complete w/o blocking.

use an async function as a Flask view function by decorating it with the same await_ helper:

@app.route('/foo')
@await_
async def foo():
    await asyncio.sleep(1)
    return 'Hello!'

await a non-blocking standard function inside an async function. Here is requests.get() with eventlet monkey-patching:

@app.route('/baz')
@await_
async def baz():
    rv = await make_awaitable(requests.get, 'https://google.com')
    print(rv)
    return 'Hello!'

The make_awaitable() helper function starts a greenlet on the requested function and waits for it to complete using a asyncio.Future.
None of this is Flask specific, actually. In fact I haven't had to hack on any official packages, this is all running on official Flask, greenlet and eventlet packages.
What I love about this solution is that all of this works on a single OS thread, without executor tricks. It's truly an asyncio application that just has some "under the table" context switches done via greenlet.switch(). And the eventlet monkey-patching allows blocking functions in the Python standard library to run on top of asyncio and become awaitables.
I hope I will have something that people can test and poke holes at soon.

@miguelgrinberg et al. quoting @oremanj in https://twitter.com/oremanj/status/1279994426538905600

I packaged this a few months ago as https://github.com/oremanj/greenback — it is indeed a useful tool to have in one’s toolbox!

As I understand the greenlet based solutions they work by switching back to a (prime) coroutine in order to await i.e. every await_ switches to the prime, awaits normally and then switches back. This then requires an event loop to run and await the prime coroutine. Running the event loop is the problem that this PR solves using a thread.
It isn't clear to me then how the greenlet solutions help, as Flask has no event loop available to it and running an event loop in a thread is equivalent to this PR.
@miguelgrinberg would I be correct in thinking that the Eventlet hub acts as an asyncio event loop substitute? I'm thinking it allows the awaiting of coroutines as if the coroutine was awaited in an asyncio event loop?

would I be correct in thinking that the Eventlet hub acts as an asyncio event loop substitute

Not really. The eventlet hub is an asyncio task, running in a 100% asyncio application. It's a single OS thread for eventlet's hub with all of its greenlets plus any normal asyncio stuff.

Actually reading further, I think you are running Flask within an asyncio loop?

Right. So Flask runs as a greenlet, either under Eventlet's WSGI server, or with the monkey-patched Werzeug dev server. So each request is started on a greenlet. If you call this await_ helper function then there is a switch to the eventlet hub's greenlet, which is an async function that has full access to await on things.

@miguelgrinberg thanks. I think this PR is the right direction still as it allows the same functionality with any WSGI server rather than the Eventlet WSGI server, or the monkey-patched Werzeug dev server. Thereby allowing users to simply add async routes, rather than change their server. Would you agree?
Also note that Quart allows the same as what you are describing without greenlets, using this or nested asyncio. Another option could be to take this code into Flask and add an ASGI interface to the app.

I think this PR is the right direction still as it allows the same functionality with any WSGI server .... Would you agree?

Well, that's hard for me to say. I'm not a fan of this approach, since it does not give you scalability, which is often the reason why people go to asynchronous solutions. If you want to handle 1000 concurrent requests you need to allocate for 1000 threads or processes or a combination of them. A greenlet+asyncio solution would run like a proper async application, with just one OS thread. That to me is a huge benefit.

it allows the same functionality with any WSGI server rather than the Eventlet WSGI server, or the monkey-patched Werzeug dev server.

This I don't understand. The two servers that I mentioned are the ones that I tested so far, but there are really a lot of options, including gunicorn, waitress, maybe even meinheld. It could also work on uvicorn, and others like it once an ASGI wrapper is built for the Flask class. You could run the same application on WSGI or ASGI, using a mix of sync and async handlers. Deep down it is always going to be asyncio+greenlet running the show.

Also note that Quart allows the same as what you are describing without greenlets

I don't think this is accurate. How would you use the Flask-SQLAlchemy extension with Quart to talk to a MySQL db? Someone needs to write an asyncio version of all of that, which is an impossible task (literally the problem that Mike Bayer is trying to solve that started this odyssey). How would you use an API client that uses the requests library internally? Again, you have to wait for someone to do the work and port the code to async.
Basically what I see here is that there is the potential to build a fairly transparent bridge between sync and async code that no other solution provides. If you don't like the greenlet way of doing async then I'm sure you will disagree with me on this, but out of all the options that have been mentioned in all these years this is the first one I'm excited about to build.

It looks like both solutions require wrapping async def functions. The wrapper in this PR starts an event loop for the request. The wrapper in @zzzeek's solution uses greenlet to switch contexts.
This PR already started adding an overridable API with the new Flask.ensure_sync method. Perhaps this could be renamed to a more generic wrap_async. Would that be enough to support the user choosing either solution?

I'm not a fan of this approach, since it does not give you scalability

I think we have differing aims as my aim is to have the ability to write async/await code in Flask as I'm not sure any proposed solution makes Flask more scalable than it is at the moment.

If you want to handle 1000 concurrent requests you need to allocate for 1000 threads or processes or a combination of them.

I don't think this should be the case, it was my understanding that asgiref played nicely with gevent/eventlet (with one thread) - testing at the moment suggests it is unstable under race conditions. I think this can be fixed and asgiref running within a gevent patched world is feasible.

but there are really a lot of options, including gunicorn, waitress, maybe even meinheld.

Is this by starting an event loop and then running gunicorn (etc) within it? Or is there an easier solution I'm missing?

How would you use the Flask-SQLAlchemy extension with Quart to talk to a MySQL db?

If I understand correctly if an await_ can be defined and used then these solutions are possible. In Quart (with the flask patch system) an await_ is,
def await_(coro):
    return loop.sync_wait(coro)

I've created an ASGI interface for Flask here if it helps testing things.

Would that be enough to support the user choosing either solution?

I think it is possible to support either but I think if we answer, "should Flask's async/await support be conditional on the server that runs it?" we would have a preference. My view at the moment is that Flask should support async/await without requiring any changes elsewhere (e.g. server), as I think Django is doing.

I'm mostly trying to understand if merging this would prevent the greenlet solution (or some other solution, such as using Trio) either as a replacement or in cooperation. I think the overridable wrapper method that's applied to each view allows that.

@davidism I agree that it does not prevent another solution. I think an extension, or otherwise, could override the Flask class ensure_sync.

Agreed. The ensure_async wrapper is fine. Other implementations can intercept the async function with a decorator before it reaches Flask, or override the wrapper in a Flask subclass.

I think we have differing aims as my aim is to have the ability to write async/await code in Flask

Yes, I understand. I worry that a lot of people will mistakenly think this is actually a full integration and will be disappointed/file bugs when they find the limitations. I think our differences go back to what Mike Bayer was saying the other day. Python has two parallel universes now, the sync one and the async one, and they only communicate through weird mechanisms such as executors and the like. You seem to be happy with this so you look at best options within these rules. I'm extremely unhappy about this situation and would love to change it.

I don't think this should be the case, it was my understanding that asgiref played nicely with gevent/eventlet (with one thread created by asgiref) - testing at the moment suggests it is unstable under race conditions. I think this can be fixed and asgiref running within a gevent patched world is feasible.

So we are back talking about greenlets. :)
If there was a made-for-greenlets asgiref then this might be a good solution. Monkey-patching in eventlet/gevent is nice, but definitely not something you want to force, since it is incompatible with lots of things. The fact remains that you still have the two parallel universes taking through that little communication pipe between the sync and the async threads. And the sync side would not be using asyncio at all. In my proposed solution when I issue async I/O through an eventlet file descriptor I'm actually using the asyncio loop, so the two worlds are much closer to each other.

but there are really a lot of options, including gunicorn, waitress, maybe even meinheld.

Is this by starting an event loop and then running gunicorn (etc) within it? Or is there an easier solution I'm missing?

Let's assume that I get eventlet fully running on top of asyncio. Now I can use any web server that uses eventlet on the asyncio loop. I can also use any standard web server that works with eventlet monkey-patching. In all cases everything runs on a single asyncio loop w/o any tricks outside of context switching with greenlet.switch(). I've tested this with the default select-based loop and also with uvloop and both are quite happy allowing greenlets to do their thing.

If I understand correctly if an await_ can be defined and used then these solutions are possible.

I'm sure you can find more bridging solutions, but that's not what I'm talking about. Back to the parallel universe idea, I want a merged universe, not a passage between the two worlds.

I worry that a lot of people will mistakenly think this is actually a full integration

I've thought about this too. We're being careful to try to explain that in the docs, and I'll talk about it more when I announce it in a blog post. I think no matter what we add, we'll get some confusion, it's just a really complicated topic, and neither proposal addresses request concurrency right now (beyond running a gevent worker, which isn't new).
As cool and simple as the greenlet solution is, I think I'm more comfortable with the thread+loop solution as a built-in. It would be great to see a Flask-greenback extension, or similar. I'm happy to extend the documentation about this to talk about overriding and point to such extensions.

I think no matter what we add, we'll get some confusion

Not so much if this was an extension that people install voluntarily if they want to access this functionality. I actually think an extension is the perfect vehicle for what I'm doing as well, I don't believe any of this belongs in the core project until the day we have a perfect solution. Flask could limit itself to be an "enabler" of async solutions by having the ensure_async wrapper, which could actually be a more generic ensure_view or something like that that takes anything you give it (not only coroutines) and returns a callable.

and neither proposal addresses request concurrency right now (beyond running a gevent worker, which isn't new).

I understand your reasoning, but in my opinion this isn't fully accurate. You are implying that the only way to achieve concurrency is to add greenlets in some form. This is 100% true for Phil's solution. The greenlet based solution that I'm testing depends on greenlets for everything, and greenlets do their async business on pure asyncio without tricks. So you can't say that you need to "add" greenlets because greenlets are an integral part of this solution, and because of that scalability is not going to be something you need to decide if you want, you'll always have it whether you need it or not (as it should be, in my view).

FYI, SQLAlchemy support for asyncio based on greenlets landed on master: https://docs.sqlalchemy.org/en/14/changelog/migration_14.html#asynchronous-io-support-for-core-and-orm.
I have been working on https://github.com/miguelgrinberg/aioflask and have it working under a similar solution, but I still have some more work to do. For example, I'd like to enable the async render_template function for Jinja, and see in what other ways the experience for asyncio developers can be improved. But in any case, the core functionality of having async functions as handlers works really well, and I even managed to port one of the asyncio examples from Quart without having to make any changes to the handler logic.

Is there any recent progress on this topic?

Just haven't had time to merge it. Want to review the docs a bit more.

if this gets merged, its going to be a game changer

@pgjones I'm not 100% sure, but I think there's an issue with contexts. Are mutations to request, session, and g visible for the entire request? For example, a before_request function sets something that a decorator on the view function looks at, such as Flask-Login. Flask-Login also has its own context local, current_user. Each async function copies the request context and runs in a separate thread. Not sure how that will change (for better or worse) with ContextVar in pallets/werkzeug#1778.

@pgjones I'm not 100% sure, but I think there's an issue with contexts. Are mutations to request, session, and g visible for the entire request? For example, a before_request function sets something that a decorator on the view function looks at, such as Flask-Login. Flask-Login also has its own context local, current_user. Each async function copies the request context and runs in a separate thread. Not sure how that will change (for better or worse) with ContextVar in pallets/werkzeug#1778.

I think mutation would be fine, isn't it fine when you use copy_current_request_context? I believe the contexts are copied, but the request, session, app, and g, objects referenced by the contexts are the same. (Are you thinking about the copy or something else?)
I don't think the Flask-Login context will work, however the extension could update the helper to copy the context as well.
I don't think ContextVars affect either point here.

I think mutation would be fine, isn't it fine when you use copy_current_request_context? I believe the contexts are copied, but the request, session, app, and g, objects referenced by the contexts are the same. (Are you thinking about the copy or something else?)
I don't think the Flask-Login context will work, however the extension could update the helper to copy the context as well.
I don't think ContextVars affect either point here.

Note that @davidism and I have discussed that this implementation must support extensions overriding the Flask.ensure_sync method to change the usage throughout. This turns out to be difficult given the Scaffold changes, and the best solution we've found so far results in the slightly unpleasant empty Blueprint.ensure_sync method.

Updated docs are look good to me.

🎉


Drop Ruby 2.4 support

Coverage remained the same at 100.0% when pulling 4eb1f4b538f58aea50f58344a27df66583d0be33 on drop_ruby_2.4 into 72ffd1d0aeaadca74019e6a03ac161f170c5f74f on master.


19 React prototype

Implemented initial iNatAtor prototype using React and FastAPI:
Copied necessary files from the SINR repository to src/backend/sinr folder.
Created an API that loads predictions and sends them to the frontend.
Enhanced the frontend to render the species' range on the map.
Enabled species name and ID search functionality in a dropdown.
The default prediction threshold is 0.1 (user can change).
The default Hex resolution is H5 (User can't change).
Updated the README with the latest instructions.

Can you include an environment-19.yml to dump your environment packages into, you can use this conda env export | grep -v "^prefix: " > environment-19.yml if you are using conda

Update on Docker error, seems like a packaging issue of sinr directory, including __init__.py managed to solve import error, it can build and run the containers, however, when I am trying to use the app running on container, I get this error:
frontend-1  | Proxy error: Could not proxy request /main.07755254b6a141b7398c.hot-update.json from localhost:3000 to http://<IP_ADDRESS>:8000.
frontend-1  | See https://nodejs.org/api/errors.html#errors_common_system_errors for more information (ECONNREFUSED).
frontend-1  |
frontend-1  | Proxy error: Could not proxy request /logo192.png from localhost:3000 to http://<IP_ADDRESS>:8000.
frontend-1  | See https://nodejs.org/api/errors.html#errors_common_system_errors for more information (ECONNREFUSED).
frontend-1  |
frontend-1  | Proxy error: Could not proxy request /generate_prediction/ from localhost:3000 to http://<IP_ADDRESS>:8000.
frontend-1  | See https://nodejs.org/api/errors.html#errors_common_system_errors for more information (ECONNREFUSED).

when you merge the patch from other PR, this can be approved

Containers are building 👍🏼


Browse disability organizations, advocacy groups, informal constituency groups

Browse community organizations: https://www.figma.com/file/AXufBnFAVHvGdsxnQMVhNF/The-Accessibility-Exchange-Wireframes?node-id=1301%3A17738
Also agreed in discussion with Ned that we have browse pages for accessibility consultants and community connectors.
AC: https://www.figma.com/file/AXufBnFAVHvGdsxnQMVhNF/The-Accessibility-Exchange-Wireframes?node-id=2221%3A61802
CC: https://www.figma.com/file/AXufBnFAVHvGdsxnQMVhNF/The-Accessibility-Exchange-Wireframes?node-id=2221%3A62316

@greatislander close? this seems covered under #311. We also don't have informal constituency groups or advocacy groups specifically called out on the platform.


Failing to install on debian jessie

Am trying to install     "groove": "^2.3.2" on debian jessie and it's failing. Here is what is already installed:
# dpkg -l *groove*
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name                      Version           Architecture      Description
+++-=========================-=================-=================-========================================================
ii  groovebasin               1.4.0-1           all               music player server with a web-based user interface
ii  libgroove-dev:i386        4.2.1-1           i386              audio dispatching library (development files)
ii  libgroove4:i386           4.2.1-1           i386              music player backend
ii  libgroovefingerprinter4:i 4.2.1-1           i386              acoustid fingerprinter for libgroove
ii  libgrooveloudness4:i386   4.2.1-1           i386              loudness scanner for libgroove
ii  libgrooveplayer4:i386     4.2.1-1           i386              hardware audio playback for libgroove
ii  node-groove               2.2.6-1           i386              bindings to libgroove - generic music player library - N

Here is the npm-debug.log : http://paste.debian.net/183261/
I suspect that the libgroove-dev are too old. Is there a way to fix this without removing the installed packages ?

Sadly the npm-debug.log is almost completely useless. Can you paste me the command you tried to run and the output it gives?

# npm install groove
-
><EMAIL_ADDRESS>install /root/node_modules/groove
> node-gyp rebuild

make: Entering directory '/root/node_modules/groove/build'
  CXX(target) Release/obj.target/groove/src/groove.o
In file included from ../src/groove.cc:5:0:
../src/player.h:6:33: fatal error: grooveplayer/player.h: No such file or directory
 #include <grooveplayer/player.h>
                                 ^
compilation terminated.
groove.target.mk:91: recipe for target 'Release/obj.target/groove/src/groove.o' failed
make: *** [Release/obj.target/groove/src/groove.o] Error 1
make: Leaving directory '/root/node_modules/groove/build'
gyp ERR! build error
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/usr/share/node-gyp/lib/build.js:267:23)
gyp ERR! stack     at ChildProcess.emit (events.js:98:17)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (child_process.js:809:12)
gyp ERR! System Linux 3.16.0-4-686-pae
gyp ERR! command "nodejs" "/usr/bin/node-gyp" "rebuild"
gyp ERR! cwd /root/node_modules/groove
gyp ERR! node -v v0.10.29
gyp ERR! node-gyp -v v0.12.2
gyp ERR! not ok
npm WARN This failure might be due to the use of legacy binary "node"
npm WARN For further explanations, please read
/usr/share/doc/nodejs/README.Debian
npm ERR<EMAIL_ADDRESS>install: `node-gyp rebuild`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>install script.
npm ERR! This is most likely a problem with the groove package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node-gyp rebuild
npm ERR! You can get their info via:
npm ERR!     npm owner ls groove
npm ERR! There is likely additional logging output above.

npm ERR! System Linux 3.16.0-4-686-pae
npm ERR! command "/usr/bin/nodejs" "/usr/bin/npm" "install" "groove"
npm ERR! cwd /root
npm ERR! node -v v0.10.29
npm ERR! npm -v 1.4.21
npm ERR! code ELIFECYCLE
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR!     /root/npm-debug.log
npm ERR! not ok code 0

Ah, ok I know what's going on here. You also need these packages: libgrooveplayer-dev libgrooveloudness-dev libgroovefingerprinter-dev

Yep, works, thanks for the support. Maybe it would be useful to have this information in the documentation ? in the README ?


Add basic docs for tracing

More or less dumped from chat log, so this basically belongs to @refs
Adding basic documentation for how to get started with tracing.

please rebase. Should fix CI