[Issue]: MI210 Not show under rocm-smi.  Error:  amdgpu: Fatal error during GPU init

Problem Description
MI210 GPUs are not shown under rocm-smi. following is the error from OS logs
[   16.284320] [drm] amdgpu kernel modesetting enabled.
[   16.284345] [drm] amdgpu version: 6.8.5
[   16.284981] amdgpu: Virtual CRAT table created for CPU
[   16.285142] amdgpu: Topology: Add CPU node
[   16.323366] amdgpu: PeerDirect support was initialized successfully
[   16.323773] amdgpu 0000:48:00.0: enabling device (0000 -> 0002)
[   16.324081] amdgpu 0000:48:00.0: amdgpu: Fatal error during GPU init
[   16.324195] amdgpu: probe of 0000:48:00.0 failed with error -12
[   16.324216] amdgpu: legacy kernel without apple_gmux_detect()
Kindly suggest how to debug this.
i have reinstalled os and rocm, still the issue is not resolved
Operating System
ubuntu 22.04.04
CPU
AMD EPYC 9554 64-Core Processor
GPU
AMD Instinct MI210
ROCm Version
ROCm 6.2.0
ROCm Component
No response
Steps to Reproduce
rocm-smi
(Optional for Linux users) Output of /opt/rocm/bin/rocminfo --support
No response
Additional Information
No response

Hi @GowriShankarEAAS, could you please provide the complete dmesg output and Linux kernel version as well?

Linux kernel version : 5.15.0-101-generic
dmesg output:
[ 16.284320] [drm] amdgpu kernel modesetting enabled.
[ 16.284345] [drm] amdgpu version: 6.8.5
[ 16.284981] amdgpu: Virtual CRAT table created for CPU
[ 16.285142] amdgpu: Topology: Add CPU node
[ 16.323366] amdgpu: PeerDirect support was initialized successfully
[ 16.323773] amdgpu 0000:48:00.0: enabling device (0000 -> 0002)
[ 16.324081] amdgpu 0000:48:00.0: amdgpu: Fatal error during GPU init
[ 16.324195] amdgpu: probe of 0000:48:00.0 failed with error -12
[ 16.324216] amdgpu: legacy kernel without apple_gmux_detect()

the issue occurred after kernel upgraded to 6.8 and i have reverted back to 5.15, but the problem exists

The issue is resolved after OS upgrade. close this issue


How to uninstall ?

How can I uninstall all the programs that the script downloaded ? open ai , cuda etc..

pip uninstall openai-whisper
Ideally, you should be using an environment manager like pyenv.


Length of video using libvideo-decoder

What can be a possible reason to get nil value for length of a video after calling libvideo-decoder like this?

Some of videos do not have their length in the header. I guess also videos in streaming format can have no length in the header.

Video-decoder did not return the total number of frames, because this information was not present. It can be calculated, though, if the video length and fps are present, which is true in your case. I have committed a new version with this fix.


tarfile.ReadError: unexpected end of data on uio

Hi, I use the uio scheme, and the data is published with nginx. Whenever I finish training the first Epoch, the following error occurs, and the running k8s multi-machine environment.

2022/03/21 15:13:18 2022-03-21 15:13:18,614 DEBUG CV Batch 0/3900 loss 86.512817 loss_att 80.519363 loss_ctc 100.497559 history loss 84.197869 rank 5
2022/03/21 15:13:29 2022-03-21 15:13:29,898 DEBUG CV Batch 0/4000 loss 10.645514 loss_att 10.246677 loss_ctc 11.576130 history loss 84.150134 rank 5
2022/03/21 15:13:30 2022-03-21 15:13:30,921 INFO Epoch 0 CV info cv_loss 84.02436912753343
2022/03/21 15:13:30 2022-03-21 15:13:30,921 INFO Epoch 1 TRAIN info lr 7.256e-05
2022/03/21 15:13:30 2022-03-21 15:13:30,923 INFO using accumulate grad, new batch size is 4 times larger than before
2022/03/21 15:15:55 2022-03-21 15:15:55,011 DEBUG TRAIN Batch 1/0 loss 11.397388 loss_att 10.426254 loss_ctc 13.663368 lr 0.00007264 rank 5
2022/03/21 15:16:27 2022-03-21 15:16:27,494 WARNING error to parse 2-169-1_371.wav
2022/03/21 15:16:35 2022-03-21 15:16:35,489 DEBUG TRAIN Batch 1/100 loss 48.813408 loss_att 45.244461 loss_ctc 57.140949 lr 0.00007464 rank 5
2022/03/21 15:17:15 2022-03-21 15:17:15,154 DEBUG TRAIN Batch 1/200 loss 112.027512 loss_att 104.039352 loss_ctc 130.666565 lr 0.00007664 rank 5
2022/03/21 15:17:47 Traceback (most recent call last):
2022/03/21 15:17:47   File "wenet/bin/train.py", line 268, in main
2022/03/21 15:17:47     for batch_idx, batch in enumerate(data_loader):
2022/03/21 15:17:47   File "/usr/local/lib/python3.8/dist-packages/torch/utils/data/dataloader.py", line 1199, in _next_data
2022/03/21 15:17:47   File "wenet/bin/train.py", line 295, in
2022/03/21 15:17:47     executor.train(model, optimizer, scheduler, train_data_loader, device,
2022/03/21 15:17:47   File "/usr/local/lib/python3.8/dist-packages/torch/utils/data/dataloader.py", line 517, in next
2022/03/21 15:17:47     return self._process_data(data)
2022/03/21 15:17:47     data.reraise()
2022/03/21 15:17:47     data = self._next_data()
2022/03/21 15:17:47     main()
2022/03/21 15:17:47   File "/wenet/wenet/utils/executor.py", line 41, in train
2022/03/21 15:17:47   File "/usr/local/lib/python3.8/dist-packages/torch/utils/data/dataloader.py", line 1225, in _process_data
2022/03/21 15:17:47     data = next(self.dataset_iter)
2022/03/21 15:17:47     for sample in data:
2022/03/21 15:17:47   File "/wenet/wenet/dataset/processor.py", line 509, in static_batch
2022/03/21 15:17:47   File "/usr/local/lib/python3.8/dist-packages/torch/utils/data/_utils/worker.py", line 202, in _worker_loop
2022/03/21 15:17:47     raise self.exc_type(msg)
2022/03/21 15:17:47   File "/usr/local/lib/python3.8/dist-packages/torch/_utils.py", line 429, in reraise
2022/03/21 15:17:47 Original Traceback (most recent call last):
2022/03/21 15:17:47     data = fetcher.fetch(index)
2022/03/21 15:17:47 tarfile.ReadError: Caught ReadError in DataLoader worker process 0.
2022/03/21 15:17:47   File "/wenet/wenet/dataset/processor.py", line 567, in padding
2022/03/21 15:17:47     for sample in data:
2022/03/21 15:17:47   File "/wenet/wenet/dataset/processor.py", line 457, in shuffle
2022/03/21 15:17:47   File "/usr/local/lib/python3.8/dist-packages/torch/utils/data/_utils/fetch.py", line 34, in fetch
2022/03/21 15:17:47     for sample in data:
2022/03/21 15:17:47     for sample in data:
2022/03/21 15:17:47   File "/wenet/wenet/dataset/processor.py", line 485, in sort
2022/03/21 15:17:47   File "/wenet/wenet/dataset/processor.py", line 238, in speed_perturb
2022/03/21 15:17:47     for sample in data:
2022/03/21 15:17:47     for sample in data:
2022/03/21 15:17:47   File "/wenet/wenet/dataset/processor.py", line 423, in spec_aug
2022/03/21 15:17:47     for tarinfo in stream:
2022/03/21 15:17:47     for sample in data:
2022/03/21 15:17:47   File "/wenet/wenet/dataset/processor.py", line 372, in tokenize
2022/03/21 15:17:47   File "/wenet/wenet/dataset/processor.py", line 266, in compute_fbank
2022/03/21 15:17:47     for sample in data:
2022/03/21 15:17:47     for sample in data:
2022/03/21 15:17:47   File "/wenet/wenet/dataset/processor.py", line 180, in filter
2022/03/21 15:17:47   File "/wenet/wenet/dataset/processor.py", line 78, in tar_file_and_group
2022/03/21 15:17:47   File "/wenet/wenet/dataset/processor.py", line 213, in resample
2022/03/21 15:17:47     for sample in data:
2022/03/21 15:17:47   File "/usr/lib/python3.8/tarfile.py", line 2434, in iter
2022/03/21 15:17:47   File "/usr/lib/python3.8/tarfile.py", line 2312, in next
2022/03/21 15:17:47 tarfile.ReadError: unexpected end of data
2022/03/21 15:17:47     tarinfo = self.next()
2022/03/21 15:17:47     raise ReadError("unexpected end of data")

which is caused by incomplete download. you can add try/catch exception to avoid the problem.

I solved it temporarily by using shard-local mode, thanks! @robin1001


Azure.Provisioning - switch to two space indent for idiomacy.

(BicepWriter.cs is the only thing that you need to actually review.)

API change check
API changes are not detected in this pull request.


Use sequence id within scan id increment

Changes

Added behaviour to increment scan ids using the sequence number, removing need for maintaining a separate scan id as well as sequence number.
Unit tests have been added to check common-software zip contents

How to test
Check that unit tests pass.
To manually test use a response payload (example found in views/test_views.py) to POST against <IP_ADDRESS>:5000/common-software, this should return a zip where scan id's increment on default sequence number (1000), so resulting in an id S010000001.jpg. Appending the sequence id to the endpoint should return a zip with a scan id using that sequence id. eg. <IP_ADDRESS>:5000/common-software/5678 returns S056780001.jpg.
Who can test
Anyone but @iwootten

Looks good 👍


Will need the enemies' walking sprite to be created before updating the enemies' default ones

Made this task ticket accidentally. Please ignore.


Converting a Report to a Box<dyn Diagnostic> wipes all Diagnostic information

I suspect this is a super subtle issue in the crazy vtable code, but here is a relatively compact reproduction of the issue:
use miette::{miette, Diagnostic, LabeledSpan, Severity};

fn main() {
    let report = miette!(
        severity = Severity::Error,
        code = "expected::rparen",
        help = "always close your parens",
        labels = vec![LabeledSpan::at_offset(6, "here")],
        url = "https://example.com",
        "expected closing ')'"
    );
    assert_eq!(report.to_string(), "expected closing ')'".to_owned());
    assert_eq!(report.severity(), Some(Severity::Error));
    assert!(report.code().is_some());
    assert!(report.help().is_some());
    assert!(report.labels().is_some());
    assert!(report.url().is_some());

    let report_ref: &dyn Diagnostic = report.as_ref();
    assert_eq!(report_ref.to_string(), "expected closing ')'".to_owned());
    assert_eq!(report_ref.severity(), Some(Severity::Error));
    assert!(report_ref.code().is_some());
    assert!(report_ref.help().is_some());
    assert!(report_ref.labels().is_some());
    assert!(report_ref.url().is_some());

    let report_box: Box<dyn Diagnostic> = report.into();
    assert_eq!(report_box.to_string(), "expected closing ')'".to_owned());
    assert_eq!(report_box.severity(), None);
    assert!(report_box.code().is_none());
    assert!(report_box.help().is_none());
    assert!(report_box.labels().is_none());
    assert!(report_box.url().is_none());
}

The Error / Display impl is still totally okay, and all of the Diagnostic stuff that goes though the Deref impl seems to work fine — both .as_ref() and calling things like .code() on a Report directly — so the issue does not seem to be present here:
impl Deref for Report {
    type Target = dyn Diagnostic + Send + Sync + 'static;

    fn deref(&self) -> &Self::Target {
        unsafe { ErrorImpl::diagnostic(self.inner.by_ref()) }
    }
}

NOTE: I'm now moving away from the example above, to the context where this issue occurs in my code!
The issue seems to come specifically from (I believe) somehow attaching the wrong vtable? Here the data of the error stays the same — the source code information is kept — but calling .source_code() seems to just fall back on the default None impl?
impl From<Report> for Box<dyn Diagnostic + Send + Sync + 'static> {
    fn from(error: Report) -> Self {
        dbg!("impl From<Report> for Box<dyn Diagnostic + Send + Sync + 'static>");
        dbg!(&error);
        dbg!(error.source_code().is_some());
        let outer = ManuallyDrop::new(error);
        unsafe {
            // Use vtable to attach ErrorImpl<E>'s native StdError vtable for
            // the right original type E.
            let res = (vtable(outer.inner.ptr).object_boxed)(outer.inner);
            dbg!(&res);
            dbg!(res.source_code().is_some());
            res
        }
    }
}

Outputs, in my case:
[/home/tll/.cargo/git/checkouts/miette-68017d45f967249d/5f42f10/src/eyreish/error.rs:750:9] "impl From<Report> for Box<dyn Diagnostic + Send + Sync + 'static>" = "impl From<Report> for Box<dyn Diagnostic + Send + Sync + 'static>"
[/home/tll/.cargo/git/checkouts/miette-68017d45f967249d/5f42f10/src/eyreish/error.rs:751:9] &error = Error {
    source_code: NamedSource {
        name: "test",
        source: "<redacted>",
        language: None,
    ,
    errors: [
        Unexpected {
            span: Span(
                0,
                49,
            ),
            kind: "node",
            message: "unexpected node `P`",
        },
        MissingNode {
            message: "child node `elements` is required",
        },
    ],
}
[/home/tll/.cargo/git/checkouts/miette-68017d45f967249d/5f42f10/src/eyreish/error.rs:752:9] error.source_code().is_some() = true
[/home/tll/.cargo/git/checkouts/miette-68017d45f967249d/5f42f10/src/eyreish/error.rs:758:13] &res = Error {
    source_code: NamedSource {
        name: "test",
        source: "<redacted>",
        language: None,
    ,
    errors: [
        Unexpected {
            span: Span(
                0,
                49,
            ),
            kind: "node",
            message: "unexpected node `P`",
        },
        MissingNode {
            message: "child node `elements` is required",
        },
    ],
}
[/home/tll/.cargo/git/checkouts/miette-68017d45f967249d/5f42f10/src/eyreish/error.rs:759:13] res.source_code().is_some() = false

The error and res structs remain the same, but calling the .source_code() method does not!
Any pointers on where to start fixing this would be excellent! The unsafe vtable code is beyond anything I've ever done in Rust, so figuring it out is a gradual process...

Much more mundane than I thought... I've got a fix that I'll make a PR for!


OpenClimate.fund

As discussed at the last community meeting, we are going to start another very simple funding experiment. To increase the incentive to contribute to OpenSustain.tech, contributors will be able to select an open source project as part of the pull request that will receive funding from a common pool that we will be collecting for. The contributor may not be affiliated with the project that receives the donation. The user workflow would be:

Add Open Source Project to OpenSustain.tech
Choose a Donation Link on OpenClimate.fund from a listed OpenSustain.tech project or any dependency.
Add the donation link to the Pull Request.
Donate to an open source you are not associated with from a larger pool the OpenSustain.tech community is collecting for.

Create donation pool ( at Open Source Collective ?! )

Open Collective does have the concept of a "fund" as well, might be able to use that?

Open Collective does have the concept of a "fund" as well, might be able to use that?

That's exactly what we need. Here a link with more information: https://docs.opencollective.com/help/financial-contributors/organizations/funds
It might be much easier to integrate the list of possible donation options into another website instead of integrating it into  ClimateTriage.

Here is a summary of some of the discussions we have had so far. @andrew filtered the projects for donation links
gist.github.com/andrew/032017247a16d49a8bd904f442221250
We would need to filter these projects for activity, as some of them are no longer active.
If we add sponsor links from the top 3 contributors of active projects, we might end up with about 300 options.
What I'm still not sure about is how to distribute the money from a technical point of view. You can see the variety of donation platforms here: gist.github.com/andrew/4100c9fd9488ef55cf0051f3dff2cad4
We could start with GitHub Sponsors, as I expect to cover most cases of sponsoring the top 3 contributors here. However, we would have to pay fees twice if we collect the donations once and then redistribute them.

Just one very simple idea to significantly increase the amount of possible donations options would be to add the Top100 of dependencies within the ecosystem.

Created the open-climate-fund repo and will push a first prototype as discussed today with @Ly0n.

Thanks @lappemic for a great meeting today. Here are the action items we discussed to launch OpenClimate.fund this year:

[ ] Add another Grist spreadsheet showing possible donations from GitHub sponsors and the Open Source Collective) of projects and organisations.

[ ] Modify existing python script: https://github.com/protontypes/open-sustainable-technology/blob/main/.github/workflows/ecosystems_to_grist.py

[ ] Create blog post announcing OpenClimate.fund
[ ] Add OpenClimate.fund to Pull Request Template with the hashtag '#openclimatefund'
[ ] Design Website

[ ] Collect beautiful open source images of environmental sustainability projects.
[ ] Create logo similar to ClimateTriage.com

Source: https://github.com/protontypes/organization-documents/blob/master/graphics/OpenClimatefund_paths.svg

Here some content for the About Section / Why? Section. Part of this can also be used for social media content:
Open Source plays a crucial role in combating climate change and biodiversity loss by providing transparent, verifiable methods for quantifying and forecasting the irreversible damage to our planet’s natural balance. Despite its significance, no global fund is dedicated to supporting the projects that generate some of the most vital data of our time. As a result, many of these projects, particularly after their initial launch, rely on the goodwill and spare time of volunteers to continue their development and maintenance.
OpenClimate.fund is an innovative initiative designed to direct funding from a larger fund we are raising to support these vital open-source projects. In our first funding round, we will distribute €100 each to 100 projects listed in the Open Sustainable Technology Dataset. Instead of selecting the recipients ourselves, we ask for your help. Contribute a project that is not yet listed in the Open Sustainable Technology Dataset and support another project already listed by selecting donation options from Open Source Collective or GitHub Sponsors, provided you are not affiliated with the project.
Our long-term goal is to create a positive feedback loop that strengthens connections between open-source projects, fostering a collaborative environment that accelerates progress in addressing climate change and sustainability. We know that this is just a drop in the ocean, but by addressing this funding gap, we hope to motivate private and public sponsors to provide additional funding or create similar funds with greater resources.

I like the text. In my opinion we could simplify some of the texts to make it easier to read, but i guess this is personal taste. :)
What we could add at the end is something along the lines of: "If you would like to support this initiative and sponsor projects as well, get in touch with us." To animate and give people the idea they could sponsor as well.

Here a shorter version for the website:

Open Source plays a key role in the fight against climate change and biodiversity loss by offering transparent and verifiable ways to track and predict environmental damage. Yet, there is no global fund supporting the projects that generate this critical data. Many of these initiatives rely on volunteers to continue their work after the initial launch.
OpenClimate.fund aims to change that by directing funds from a larger pool we are raising to support these vital open-source projects. In our first round of funding, we will give €100 each to 100 projects listed in the Open Sustainable Technology Dataset. We’re asking for your help in selecting the recipients. If you know of a project not yet listed, please submit it to OpenSustain.tech. You can also support a project already listed by choosing one that accepts donations through Open Source Collective or GitHub Sponsors (as long as you're not affiliated with it). Once we review your contribution, we will donate €100 to the project you’ve chosen.
We know that this is just a drop in the ocean, but by addressing this funding gap, we hope to motivate private and public sponsors to provide additional funding or create similar funds with greater resources. To support our next round of funding, please contact Michael, Tobias, or reach out to us on Mastodon.

Looks fine to me!

I've been trying to get some good images for the website from projects that offer donation opportunities, with not too much success. But this satellite image matches the colours pretty well and is CC0:
https://freerangestock.com/photos/179580/satellite-image-of-a-vibrant-coastal-region-with-intricate-details..html

I really like the first one

Here a first draft of the blog post: https://hackmd.io/D-Uk_kDERtimwfXpqY_RZg?both

Added a comment and corrected some minor orthographics. Otherwise i think it is a very powerful and well written blog post! Great Job @Ly0n!

I changed "here's how it works" to "Here’s what you can do:" in the second paragraph.

I think this wording works better:

It makes it clearer what we're asking.
For this section, I think "Apply for our first funding round" is more actionable, too?

@lappemic I think you are right. Join fits better here.

Here is another "hot" Earth shot from space that we can use to market this project:

Last preparations for Launch:
Before Launch

[ ] Create social media content for BlueSky, LinkedIn and Mastodon.

[ ] Michael posts first, then waits and reshares. Tobias posts a day later.
[ ] Satellite Image?! or other image content?
[ ] Create tagline:

[ ] 	"Funding the digital infrastructure preserving our foundation of life"
[ ]  "Join our crowdsourced funding revolution for climate action!"
[ ]  Longer text for Bluesky: 300 characters
[ ]  Mastodon: 500 characters
[ ]  LinkedIn: A shortened version of our blog post as "normal post".
[ ]  LinkedIn: Article create from our blog post.

[ ] Add social media links to the footer of OpenClimate.fund
[ ] Fix the content of OpenClimate.fund that we allow all know donation platforms: accept donations through known donation platforms like Open Source Collective or GitHub Sponsors.

Launch

[ ] Post to ClimateAction.tech and WorkInClimate Slack
[ ] Post on SustainOSS
[ ] Post on Reddit

[ ] Tobias with a new account?

[ ] Create Hackernews post: 5 times .. last time with Show HN:
[ ] Create Lemmy post
[ ] Ask OpenCollective and Open Source Collective to share and post.
[ ] Write emails to people who could help us share.
[ ] Ask people on LinkedIn to share and write about OpenClimate.fund


SSH agent commands not available

System Details

posh-git version/path: 1.0.0 beta3 ~\Documents\PowerShell\Modules\posh-git\1.0.0
PowerShell version: 6.2.4
git version 2.24.1.windows.2
OS: Microsoft Windows NT 10.0.18363.0

Issue Description

Never mind, just saw this:

All SSH commands removed from posh-git and moved into the new module posh-sshell


_reportCrash.RetryFailedReports() blocking the WPF app

Hi @ravibpatel
I am using the CrashReporter lib for my WPF project and I face a issue regarding RetryFailedReports();
When i got a crash from app and restarted the app again it is showing the report send popup , and it send the report as well but after that my app is not going further even after sending the report successfully
 base.OnStartup(e);             AppDomain.CurrentDomain.UnhandledException += CurrentDomainOnUnhandledException;             Application.Current.DispatcherUnhandledException += DispatcherOnUnhandledException;             TaskScheduler.UnobservedTaskException += TaskSchedulerOnUnobservedTaskException;             _reportCrash = new<EMAIL_ADDRESS>            {                 Silent = true             };             _reportCrash.RetryFailedReports();
CC @ducseb  @EddieDemon @milleniumbug @tarekwiz

Have you checked/debugged where the lock happens?


ValueStore: We want the 'best' hints

Fortunately, I have the best hints. My hints are the best. You won't believe how good the hints are that I have. Nobody you know can get hints as good as these, but I can get them because of how successful I've been. I'm very, very rich.
/Trump
One of the dangers that we face having a long-running hint cache on ValueStore is that over time we can wind up approaching a 1:1 ratio of hints to Chunks required to validate some new Value being written. Consider the case of someone reading out a list, updating an element, committing it back, and then repeating.
l := ReadValue(r)  // Now, r is the hint for all chunks directly reachable from l
rH := WriteValue("Hello")
l2 := l.Set(0, rH)
Commit(NewCommit(l2)) // l.Ref() is the hint for validating l2, with new chunks for l2 and "Hello"

rF := WriteValue("Friend")
l3 := l2.Set(1, rF)
Commit(NewCommit(l3)) // l.Ref() AND l2.Ref() as the hints for validating l3, with new chunks for l3 and "Friend"

This happens because only l2 can speak to the validity of rF, but l.Ref() is still the stored hint for all the other refs in l3, the ones that were originally seen in l -- even though they're also in l2. We'd like to set the hints for the stuff in l2 to l2, BUT not until it's persisted.

buh bye: https://github.com/attic-labs/noms/commit/de76d37f098d4873665fe27a73d5fa5fb7162d66


Natural Language API hangs forever - does not resolve

The following issue only happens on a server, locally works fine.
When using the Natural Language API, the call that produces the sentiment analysis of a text ( analyzeSentiment() ) hangs indefinitely; however, other APIs such as Cloud Storage work fine.
This is a similar issue that I found: https://github.com/googleapis/google-cloud-node/issues/1955 which was resolved by an updated version of the library.
I isolated the issue by only running the following piece of code, taken straight from the documentation.
Both environments (local, ec2) have the same setup: google creds, npm version, node version, languageAPI version
// Imports the Google Cloud client library
const language = require('@google-cloud/language');

// Instantiates a client
const client = new language.LanguageServiceClient();

// The text to analyze
const text = 'Hello, world!';

const document = {
  content: text,
  type: 'PLAIN_TEXT',
};

// Detects the sentiment of the text
client
  .analyzeSentiment({document: document})
  .then(results => {
    const sentiment = results[0].documentSentiment;

    console.log('success ', sentiment);
  })
  .catch(err => {
    console.error('ERROR:', err);
  });

Environment details

OS: Local - MacOS 10.14.5 / EC2 - CentOS Linux release 7.6.1810
Node.js version: 10.16.0
npm version: 6.9.0
@google-cloud/language version: 3.2.4

Steps to reproduce

Run sample code above
client.analyzeSentiment({document: document}) never resolves

Thanks!

@joseocasioserra this almost sounds like a firewall issue, can you confirm that you're able to curl language.googleapis.com when SSHd into the EC2 instance?

@bcoe thanks for the prompt reply.
I tried the curl provided and this is my output:
<!DOCTYPE html>

  <meta charset=utf-8>
  <meta name=viewport content="initial-scale=1, minimum-scale=1, width=device-width">
  <title>Error 404 (Not Found)!!1</title>

404. That’s an error.

The requested URL / was not found on this server.  That’s all we know.

@joseocasioserra looks like you can reach the external server, is there an ERROR:  in the logs of the EC2 instance when the program times out?

@bcoe other APIs work fine, like Cloud Storage which I already tested
I have tried everything I can think of - new ec2 instances, isolated scripts and all the @google-cloud/language versions.
I am currently doing setInterval each second to print out the promise and it never resolves and after a while it errors due to timeout.
This is the output of that function.
Promise { <pending> }
Promise { <pending> }
Promise { <pending> }
Promise { <pending> }
Promise { <pending> }
(node:25959) UnhandledPromiseRejectionWarning: Error: Retry total timeout exceeded before any response was received
    at repeat (/myapps/node_modules/google-gax/build/src/normalCalls/retries.js:80:31)
    at Timeout.setTimeout [as _onTimeout] (/myapps/node_modules/google-gax/build/src/normalCalls/retries.js:112:25)
    at ontimeout (timers.js:436:11)
    at tryOnTimeout (timers.js:300:5)
    at listOnTimeout (timers.js:263:5)
    at Timer.processTimers (timers.js:223:10)
(node:25959) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:25959) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
Promise {
  <rejected> { Error: Retry total timeout exceeded before any response was received
      at repeat (/myapps/node_modules/google-gax/build/src/normalCalls/retries.js:80:31)
      at Timeout.setTimeout [as _onTimeout] (/myapps/node_modules/google-gax/build/src/normalCalls/retries.js:112:25)
      at ontimeout (timers.js:436:11)
      at tryOnTimeout (timers.js:300:5)
      at listOnTimeout (timers.js:263:5)
      at Timer.processTimers (timers.js:223:10) code: 4 } }

Any ideas of fixes are more than welcome.

@bcoe Hello,
Just wondering if you saw my previous response, I am still blocked by this issue. Thanks!

Is there any solution?
Currently I am having this problem

Thank you for filing this issue. It looks like we asked you for more information from your logs but didn't receive that information. We are unable to proceed with this issue until then, so we are closing it. Please feel free to re-open this issue with more information.


Issue with exports from dashjs?

Playing around with this lib and encountered the following error for what looks like a simple setup.
The requested module '/node_modules/dashjs/dist/dash.all.debug.js?v=f211ddad' does not provide an export named 'default'
My imports
import { SolidPlyr } from 'solid-plyr';
import { SourceInfo } from 'plyr';

JSX
<SolidPlyr source={currentSolidPlyrObjectURL()!} />
And finally currentSolidPlyrObjectURL is set to
let si: SourceInfo = {
            type: 'video',
            sources: [{
                src: videoObjectURL,
                type: 'video/mp4',
                size: 720,
            }
            ]
        };

setCurrentSolidPlyrObjectURL(si);

I have the same problem, did you manage to figure out the workaround?

I got the same exact issue.
Looks like the problematic import is in the index.ts file of the createDashPlyr folder.
Is there any update or workaround for this problem?

I am also getting a similar issue as well.

did any one find a fix for this issue

@Omar0Gamal I just went back to using the Plyr library according to the Youtube embed documentation: https://github.com/sampotts/plyr#youtube.
type PlayerProps = {
    videoId: Accessor<string>
}

export const PlayerComponent: Component<PlayerProps> = (props: PlayerProps) => {
    return (

    );
};

someone actually help please!

seme here seems that this package is obsolete


feat(arc-lib): add gantt column and gantt tooltip component

Description
addition of Gantt module's component
Fixes #58
Type of change
Please delete options that are not relevant.

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] Intermediate change (work in progress)

How Has This Been Tested?
Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration

[ ] Test A
[ ] Test B

Checklist:

[ ] Performed a self-review of my own code
[ ] npm test passes on your machine
[ ] New tests added or existing tests modified to cover all changes
[ ] Code conforms with the style guide
[ ] API Documentation in code was updated
[ ] Any dependent changes have been merged and published in downstream modules

Spelling of gantt is wrong in the folder structure also while components are named g-*

closing this PR as i creating new PR which solves the issue #58


[3] High-availability

Non-functional requirement 3: High-availability

It means that the system should be protected against outages, e.g. caused by electricity outages, server crashes and the like. Currently, if anything happens, we can expect the system to be down for hours or even days and the data to be lost. However I don't know if this our responsibility, as it is not something we can control unless we host the system ourselves.


Feature request: Add functionality to preload image using SDWebImage

The current SDK allows to load an image straight to an UIImageView. In my case i'd like to preload the image before setting in the imageView as I have to calculate some layout that requires having the image locally.
here is a swift version of the method I created to do just that:
class func imageForReference(_ reference: StorageReference, completion: @escaping (UIImage?, Error?) -> Void) {
        // Query cache for image before trying to download
        let cache = SDImageCache.shared()
        let key = reference.fullPath
        var cached = cache.imageFromMemoryCache(forKey: key)
        if cached != nil {
            completion(cached, nil)
            return
        }

        cached = cache.imageFromDiskCache(forKey: key)
        if cached != nil {
            completion(cached, nil)

            return
        }

        // If nothing was found in cache, download the image from Firebase Storage
        let filePath = FileManager.default.temporaryDirectory.appendingPathComponent(key)
        reference.write(toFile: filePath) { (file: URL?, error: Error?) in
            DispatchQueue.main.async {
                guard error == nil, let file = file else {
                    completion(nil, error)
                    return
                }
                let image = UIImage(contentsOfFile: file.absoluteString)
                cache.store(image, forKey: key, completion: nil)

                completion(image, nil)
            }
        }
    }

@otusweb See #654 .
When using the Custom Loader API of SDWebImage 5.0, you can share the same logic for all built-in methods.
For example, you can even use SDWebImagePrefetcher to prefetch FIRStorageRef instance. Show the demo code:
// Setup code. If you using the global `loadersManager`, to bind multiple loaders like (downloader, firebaseloader), you don't need this code.
let manager = SDWebImageManager(cache: SDImageCache.shared, loader: SDFIRStorageLoader.shared)
let prefetcher = SDWebImagePrefetcher(manager: manager)

// Now let's prefetch
let references : [FIRStorageRef]
let urls = references.map { URL.sd_URL(with: $0) }
prefetcher.prefetch(urls: urls)

// Done :)

645 has been merged and released.

In case anyone found this issue, SDWebImageFIRStorageLoader is now StorageImageLoader in the example code.

@otusweb See #654 . I've create PR to use the SDWebImage 5.0 for better integration.
When using the Custom Loader API of SDWebImage 5.0, you can share the same logic for all built-in methods from SD.
For example, you can even use SDWebImagePrefetcher to prefetch FIRStorageRef instance. Show the demo code:
// Setup code. If you using the global `loadersManager`, to bind multiple loaders like (downloader, firebaseloader), you don't need this code.
let manager = SDWebImageManager(cache: SDImageCache.shared, loader: SDWebImageFIRStorageLoader.shared)
let prefetcher = SDWebImagePrefetcher(manager: manager)

// Now let's prefetch
let references: [StorageReference]
let urls = references.compactMap { URL.sd_URL(with: $0) }
prefetcher.prefetch(urls: urls)

// Done :)


test: add integration test with concurrent request load

Small PR introducing an additional integration test with a concurrent load of 100_000 requests

Great! We needed a test to put the service under pressure!

I wonder if using the same test bed for a benchmark could be useful as well


Consider an option manually remove idsrv.session cookie or Remove cookie when authorization callback completed

in some cases, the cookie's expire time is not the solution.

Can you elaborate?


Delete intercom.yaml

As of October 2022, Intercom no longer charges for SSO etc.
https://www.intercom.com/changes/en/4952-protect-your-workspace-with-2fa-google-sign-on-and-teammate-activity-logs

According to their pricing page this is not true. Price goes from $19 -> $79 / seat to have SSO other than Google.

Agreed, generic SSO is the requirement as discussed in other threads. But the pricing on the website is inscrutable - it looks like it requires upgrading to Pro and also paying for Advanced Workspace Management as an add-on. It seems that this would need to move to Call Us pricing unless someone has a quote.

Pricing page has gotten clearer, opened #511 to reflect current pricing. SSO is now explicitly mentioning SAML SSO as only enterprise, and with a price listed.


Network is unreachable - connect(2) for "<IP_ADDRESS>"

I'm not sure if this is an issue with the gem or a networking issue on my side, but I've been having connection issues when trying to use the streaming API. I've tested this on multiple machines and received the same error shown below. Using the latest version of the twitter gem v5.15.0.
Any suggestions would be much appreciated.
Error
[vagrant@localhost vagrant]$ ruby twitter.rb
/usr/local/rvm/gems/ruby-2.2.1/gems/twitter-5.15.0/lib/twitter/streaming/connection.rb:16:in `initialize': Network is unreachable - connect(2) for "<IP_ADDRESS>" port  (Errno::ENETUNREACH)
	from /usr/local/rvm/gems/ruby-2.2.1/gems/twitter-5.15.0/lib/twitter/streaming/connection.rb:16:in `new'
	from /usr/local/rvm/gems/ruby-2.2.1/gems/twitter-5.15.0/lib/twitter/streaming/connection.rb:16:in `stream'
	from /usr/local/rvm/gems/ruby-2.2.1/gems/twitter-5.15.0/lib/twitter/streaming/client.rb:119:in `request'
	from /usr/local/rvm/gems/ruby-2.2.1/gems/twitter-5.15.0/lib/twitter/streaming/client.rb:58:in `sample'
	from twitter.rb:10:in `<main>'

twitter.rb
require 'twitter'

client = Twitter::Streaming::Client.new do |config|
	config.consumer_key       = 'HIDDEN'
	config.consumer_secret    = 'HIDDEN'
	config.access_token        = 'HIDDEN'
	config.access_token_secret = 'HIDDEN'
end

client.sample do |object|
  puts object.text if object.is_a?(Twitter::Tweet)
end

Ruby Version
[vagrant@localhost vagrant]$ ruby --version
ruby 2.2.1p85 (2015-02-26 revision 49769) [x86_64-linux]

Closing as this is a duplicate of #709.


Some minor documentation fixes

I noticed these when upgrading from 5.6.5 to 6.0.2 and making use of some new functionality.

@monsieurtanuki fair point; comments addressed.


No project gets created in the solution

Problem encountered on https://dotnet.microsoft.com/en-us/learn/aspnet/blazor-tutorial/create
Operating System: windows
Provide details about the problem you're experiencing. Include your operating system version, exact error message, code sample, and anything else that is relevant.

No project gets created in the solution

Did you follow the steps described in the instructions? Can you share which step specifically didn't work?

Hi Carlos, thanks for responding to this. Here are the steps I followed as per in the tutorial
The project folder and contents are created as shown in the last screenshot below but they not visible under the solution on Visual Studio. I also tried placing the solution and project in the same directory but that didn't make a difference.

Thanks for sharing more information. So, what does the project look like when you open it in Visual Studio? What do you see in Solution Explorer?


Can't install Enhanced Table in OpenSearch Dashboard

Hi @fbaligand I tried to install the plugin in my OpenSearch Dashboard using the steps you provided but got this error:
`[oss@ip-10-92-3-133 opensearch-dashboard]$ bin/opensearch-dashboards-plugin install https://github.com/fbaligand/kibana-enhanced-table/releases/download/v1.13.0/enhanced-table-1.13.1_osd-1.2.0.zip
Attempting to transfer from https://github.com/fbaligand/kibana-enhanced-table/releases/download/v1.13.0/enhanced-table-1.13.1_osd-1.2.0.zip
Attempting to transfer from https://artifacts.opensearch.org/downloads/kibana-plugins/https://github.com/fbaligand/kibana-enhanced-table/releases/download/v1.13.0/enhanced-table-1.13.1_osd-1.2.0.zip/https://github.com/fbaligand/kibana-enhanced-table/releases/download/v1.13.0/enhanced-table-1.13.1_osd-1.2.0.zip-1.2.0.zip
Plugin installation was unsuccessful due to error "No valid url specified."
[oss@ip-10-92-3-133 opensearch-dashboard]$
`
Not sure what to do next please help.

Well, your package URL is wrong.
The good one is:
https://github.com/fbaligand/kibana-enhanced-table/releases/download/v1.13.1/enhanced-table-1.13.1_osd-1.2.0.zip

Thanks @fbaligand issue resolved.


browserpass doesn't work with password protected keys

Much like #13 I'm running into the issue where I can't get browserpass to fill in anything (it just hangs) on my mac.  Chrome and Firefox both fail.  If I run Chrome from the command line it still doesn't work.  If I run pass foo and go through its gpg prompts to put the password into the GNUPG agent and THEN run Chrome from that terminal window, browserpass works.
[Browserpass] 2017/08/17 15:46:23 exit status 2
gpg: decryption failed: No secret key

$ uname -a
Darwin SFOC02T87CDH03Q 16.7.0 Darwin Kernel Version 16.7.0: Thu Jun 15 17:36:27 PDT 2017; root:xnu-3789.70.16~2/RELEASE_X86_64 x86_64

$ gpg --version
gpg (GnuPG) 2.1.21
libgcrypt 1.8.0
Copyright (C) 2017 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Home: /Users/.../.gnupg
Supported algorithms:
Pubkey: RSA, ELG, DSA, ECDH, ECDSA, EDDSA
Cipher: IDEA, 3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH,
        CAMELLIA128, CAMELLIA192, CAMELLIA256
Hash: SHA1, RIPEMD160, SHA256, SHA384, SHA512, SHA224
Compression: Uncompressed, ZIP, ZLIB, BZIP2

$ pass --version
============================================
= pass: the standard unix password manager =
=                                          =
=                  v1.7.1                  =
=                                          =
=             Jason A. Donenfeld           =
=<EMAIL_ADDRESS>          =
=                                          =
=      http://www.passwordstore.org/       =
============================================

It sounds to me like gpg-agent is not running or is stuck, and running pass foo somehow "revives" it. Could you see if gpg-agent process is running when you start Chrome, and if it is, try to kill it?

I think the issue ended up being that browserpass wasn't getting the gpg agent path correct (path is not propagated).  I took it as a chance to write something with Rust instead (and add touch id support to pinentry-mac).

All right, thanks for the details. Since the issue ended up being the same as described in the last commends of #13, I'm going to close this issue and follow-up on posted workarounds in there.
If this is incorrect, please let me know.

same issue on latest gentoo

@brothermechanic This is nothing to do with browserpass - it's a gpg issue. Typically it means that gpg-agent is not running, or is not configured correctly, or you don't have a pinentry program properly configured.

@brothermechanic What happens when you use pass directly, rather than using browserpass?

after entering gpg password in pass browserpass works
but by spend several time i need enter gpgkey password with pass agane

may be i need configure gpg-agent?
can you give me an advice?

I think you need to configure a GUI pinentry, check this out: https://github.com/browserpass/browserpass-native/#hints-for-configuring-gpg

like this https://i.imgur.com/Jd1wX9E.png ?

Yep! Now restart gpg-agent (or just reboot) and try to use Browserpass, it will trigger gpg which in turn should activate gpg-agent which in turn should show you a pinentry dialog.
If something is still not working, make sure that gpg-agent is actually running among processes, maybe you need to enable/activate it somehow.

You my hero!
Thank you!
I did that and + did this instructions
https://wiki.gentoo.org/wiki/GnuPG#Using_a_GPG_agent


Security issues on the dependency packages for system.net.http.4.3.0.nupkg and microsoft.aspnetcore.http.2.1.0.nupkg

Hello Team,
we are using Swashbuckle thanks for this. when we run the security scan we are identified two packages as high severity vulnerabilities system.net.http.4.3.0 and  microsoft.aspnetcore.http.2.1.0

system.net.http.4.3.0  resolution is to upgrade Upgrade to version System.Net.Http - 4.3.4;Microsoft.PowerShell.Commands.Utility - 6.1.0-rc.1 from white source bolt
microsoft.aspnetcore.http.2.1.0 resolution is to Upgrade to version microsoft.aspnetcore.app - 2.1.21,microsoft.aspnetcore.all - 2.1.21,microsoft.netcore.app - 2.1.21, Microsoft.AspNetCore.Http - 2.1.22

Please share your thoughts on upgrading this packages

Hi @BKB503
I can't help here, as these assemblies are a part of Microsoft.Azure.WebJobs.Extensions.Http.
For some reason, there is no update to this package.


Basset Fresh might not work 100% of the time

I've noticed this in our online demo. But the issue happens on my local too. After I've already run php artisan basset:fresh... subsequent calls DO NOT seem to actually do a fresh. They are just too fast.

first php artisan basset:fresh call - 4s to internalize everything
second php artisan basset:fresh call - 0.08s 👀 fishy
third php artisan basset:fresh call - 0.04s 👀 fishy again
manually calling php artisan basset:clear && php artisan basset:internalize (which should be the same thing as php artisan basset:fresh - 4-8s (normal)

Soo... what's happening here? 👀 Any idea @promatik ?

Fix provided by https://github.com/Laravel-Backpack/basset/pull/73 👌


Command Not Found

Is there an existing issue for this?

[X] Yes, I have searched the existing issues
[X] Yes, I have checked troubleshooting page

The problem
Installing the theme on Windows, I get the following error:
~/.oh-my-zsh/custom/themes/spaceship.zsh-theme:1: command not found: spaceship.zsh
Relevant Zsh configuration
# Path to your oh-my-zsh installation.
export ZSH="/my/home/path/.oh-my-zsh"

#ZSH_THEME="muse"
ZSH_THEME="spaceship"

What is version of Spaceship are you using?
3.16.1
What is version of Zsh are you using?
5.8
What operation system are you running?
Windows
Do you use any Zsh framework or plugin manager?
No response
Which terminal emulator do you use?
Git Bash
Additional information
No response

I'm also on Windows, and I managed to get around this error by manually specifying the path to the file.
But then I get a Bash substitution error.
Giving up for now and will use a different solution.

Try upgrading to 4.x it has reworked the installation and initialization process.
@Zamiell spaceship doesn't work with Bash. It's for Zsh only.


Require that ThreadPool has positive num_threads

Yeah, fat-fingered this one pretty badly. I'm going to close it and open a new one.

Yeah, fat-fingered this one pretty badly. I'm going to close it and open a new one.


Adjusting the waveforms with offset time in the beginning for multiple tracks

offsetting the waveforms with some time
Thanks community for building such an awesome library.
I am trying to build up an open source application like soundtrap

I am able to perform basic functions like cut, copy, paste regions
How to offset tracks with some time in before, between and after a waveform, so that i can decide how to sequence the multiple tracks like way soundtrap does ?
refer the image https://i.imgur.com/EadG6zA.png
As well as if someone can guide me on how to store the audio editor state on the server side like Node ?

I am open to sharing code if needed.
Thanks in advance.

please try to build this app, and whenever you encounter a wavesurfer.js-related bug, open a ticket. This is not a forum.

I think there is a legitimate question here: does wavesurfer.js allow you to render a waveform with several milliseconds of audio trimmed off the beginning of the track? (Or several ms of silence appended to the beginning?)
How do you map between x-distance on the canvas and time?

Hi, you can try perform operations on audio data with the WebAudio backend. Decoding audio data, you obtain an AudioBuffer with samples and you can modify this AudioBuffer appending your own samples at the beginning of the buffer. Then you can load directly your decoded buffer with loadDecodedBuffer method.


cpython: fix extensions when using a musl toolchain

Motivation for this change
it looks like while attempting to fix cross-compilation in #98915, python extensions under musl-libc were entirely broken due to python's build process not differentiating between musl and gnu abi. this fixes this.
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[ ] Fits CONTRIBUTING.md.

@pjjw do you have an easy before/after repro?

@pjjw do you have an easy before/after repro?

@flokli yea- try nix-build -A pkgsMusl.python39Packages.bootstrapped-pip - before and after should give you a clear look at what's going on.
It's kind of explained in the file itself, but above the section where this change is made there's a link to cpython's configure scripts, and you can see there that it will never detect musl because it's choosing from enumerated options of which musl is not one. musl showing up in the first place as part of the triple in sysconfigdata is purely an artifact of how we're dealing with cross-compilation- python itself will never use that string.

@flokli yea- try nix-build -A pkgsMusl.python39Packages.bootstrapped-pip - before and after should give you a clear look at what's going on.
It's kind of explained in the file itself, but above the section where this change is made there's a link to cpython's configure scripts, and you can see there that it will never detect musl because it's choosing from enumerated options of which musl is not one. musl showing up in the first place as part of the triple in sysconfigdata is purely an artifact of how we're dealing with cross-compilation- python itself will never use that string.

@GrahamcOfBorg build pkgsMusl.python39Packages.bootstrapped-pip and then i guess compare to hydra for the broken one

@GrahamcOfBorg build pkgsMusl.python39Packages.bootstrapped-pip and then i guess compare to hydra for the broken one

GrahamcOfBorg build pkgsMusl.python39Packages.bootstrapped-pip
and then compare to hydra for the broken one.

GrahamcOfBorg build pkgsMusl.python39Packages.bootstrapped-pip
and then compare to hydra for the broken one.

@GrahamcOfBorg build pkgsMusl.python39Packages.bootstrapped-pip
and then compare to hydra for the broken one.

@GrahamcOfBorg build pkgsMusl.python39Packages.bootstrapped-pip
and then compare to hydra for the broken one.

oops, i fed something rotten to the bot.

oops, i fed something rotten to the bot.

feel free to squash that cleanup commit out, only didn't force-push because github doesn't handle comments well in that case.

feel free to squash that cleanup commit out, only didn't force-push because github doesn't handle comments well in that case.

squashed and merged, thanks!

squashed and merged, thanks!


Documentation update

The documentation needs to be updated that the requirement to have Skype for Business installed has been fixed with the latest Teams build. This GA'd back in the first week of March.

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

ID: a162ef5c-3099-7f58-4178-d29e3ec2b5a7
Version Independent ID: 6ca31e56-052d-6c62-1323-b5aaaae1f04a
Content: User presence in Teams - Microsoft Teams
Content Source: Teams/presence-admins.md
Service: msteams
GitHub Login: @LolaJacobsen
Microsoft Alias: lolaj

@greganth1 Thank you for submitting feedback and contributing to the docs. We are currently investigating this.

Greganth is right, please fix this ASAP. Thanks!

@greganth1 @aalejandroaraujo thank you for pointing this out and helping improve MS Docs. Just to clarify, should I remove the "Important" note at the top of the article?

@lindspea Yes. The fix recently rolled out no longer has the requirement to have Skype for Business installed.

@scanum this can be closed thank you.

@greganth1 Thank you for submitting feedback. We understand that this issue has been resolved.
Please feel free to re-open this issue if there is a specific area of the docs that we can improve or make better. Thank you.


JSON language support

⭐ Suggestion
JSON language support.
💻 Use Cases

Updating package.json to change versions across multiple repos.
Eslint and other JS ecosystem tool configuration changes.

This can also be a good first issue!


Configurations for effort and reportLevel are broken.

I am using spotbugs gradle plugin version 6.0.0-beta.3 with Spotbugs 4.7.3, Gradle 8.4-rc-2 and Java 21.
Trying to recompile an old project give some problems. It seems that the effort and reportLevel are broken.
My gradle file used to contain that:
spotbugs {
    toolVersion = versionSpotBugs
    effort = "max"
    reportLevel = "low"
    omitVisitors = ["WeakExceptionMessaging", "OverlyPermissiveMethod"]
    ignoreFailures = true
}

It gives the following error:
Cannot set the value of extension 'spotbugs' property 'effort' of type com.github.spotbugs.snom.Effort using an instance of type java.lang.String.

After fixing it, it also complains about reportLevel not being an instance of Confidence. For fixing it, I needed to change it to that:
spotbugs {
    toolVersion = versionSpotBugs
    effort = com.github.spotbugs.snom.Effort.MAX
    reportLevel = com.github.spotbugs.snom.Confidence.values()[0]
    omitVisitors = ["WeakExceptionMessaging", "OverlyPermissiveMethod"]
    ignoreFailures = true
}

Using com.github.spotbugs.snom.Confidence.LOW doesn't works for some reason that I couldn't understand, it seems that it somehow wrongly thinks that LOW is a class.
Anyway, I doubt that this change was intended, at least not in the way it is.
I can provide a minimal project reproducing it, if you really need to.

Hi @victorwss, try taking a look over at spotbugs main project https://github.com/spotbugs/spotbugs/blob/master/gradle/java.gradle.  I just got that updated to 6.0.0-beta.3 and like you likely ran into it did not work per release notes options to try.  Not sure if it will help you or not but worth taking a look.

Could you check "Changes for Kotlin buildscripts" in the changelog for beta.1 release? Hope that it helps you.

I confirm, my Gradle project doesn't like "low" as a string too. I had to use Confidence.valueOf('low') to overcome the error. But unfortunately, the import of the package doesn't work either. It seems that the classpath doesn't have required jars, or so.

So, if I'm understanding correctly, this was somewhat intended?
Anyway, it would be really appreciated if you could somehow either completely forgive the user for that or perhaps give a warning and continue business as usual in order to avoid breaking existing buildscripts without an outstanding reason for that when people are just bumping up dependencies.
Or, at least fail with a very clear and direct error message telling what should be done to fix other than just "Dude, it is not a string anymore, it is now an enum. Good luck figuring out in Google how to fill in this correctly."
Or minimally, make reportLevel = com.github.spotbugs.snom.Confidence.LOW work.
Anyway, the change is not a big deal. For now, I will stick to effort = com.github.spotbugs.snom.Effort.MAX and reportLevel = com.github.spotbugs.snom.Confidence.valueOf("LOW") (as suggested by @Vest). No need to import stuff because that don't really make the situation any better.
Keep up with the good job!

try taking a look over at spotbugs main project

I have stolen your code from the java.build file:
def classLoader = plugins['com.github.spotbugs'].class.classLoader
def SpotBugsTask = classLoader.findLoadedClass( 'com.github.spotbugs.snom.SpotBugsTask' )
def SpotBugsEffort = classLoader.findLoadedClass( 'com.github.spotbugs.snom.Effort' )
def SpotBugsConfidence = classLoader.findLoadedClass( 'com.github.spotbugs.snom.Confidence' )
...
reportLevel = SpotBugsConfidence.LOW

Seems it does the job. Can you please tell me, why is this working? Why have you decided to write it like that?
When I was trying to write import com.github.spotbugs.snom.Confidence, I was always getting an error Could not get unknown property 'com' for extension 'spotbugs' of type java.lang.Object.

Hi @Vest I'm still too new to gradle to understand the why.  I had issues to until I did that.  It didn't quite make sense to me either.  If I recall, I saw another part of the script that did something similar so I gave that a shot.

Same problem here, using a separate gradle file to configure spotbugs. Using the classloader works, but seems a bit hacky to me - there has to be a better way?

Same problem here, using a separate gradle file to configure spotbugs. Using the classloader works, but seems a bit hacky to me - there has to be a better way?

I'm using the gradle plugin 6.0.2 with gradle 8.5 and I have the same problem. I'm using a separate gradle file to configure spotbugs. The classloader solution works fine, but it's too tricky and a bit ugly.
When I was trying to write import com.github.spotbugs.snom.Confidence, I was always getting an error Could not get unknown property 'com' for extension 'spotbugs' of type java.lang.Object. And the same for the effort value.
Is there a better way to configure spotbugs in a different gradle file?

Same problem here as @javintx and @sebastian-peter
Using a separate groovy gradle file to configure spotbugs and using ugly classloader workaround works. Would like to get rid of it.

Having the same issue the example shown on https://github.com/spotbugs/spotbugs-gradle-plugin using
// require Gradle 8.2+
import com.github.spotbugs.snom.Confidence
import com.github.spotbugs.snom.Effort
spotbugs {
    ignoreFailures = false
    showStackTraces = true
    showProgress = true
    effort = Effort.DEFAULT
    reportLevel = Confidence.DEFAULT
    visitors = listOf("FindSqlInjection", "SwitchFallthrough")
    omitVisitors = listOf("FindNonShortCircuit")
    reportsDir = file("$buildDir/spotbugs")
    includeFilter = file("include.xml")
    excludeFilter = file("exclude.xml")
    baselineFile = file("baseline.xml")
    onlyAnalyze = listOf("com.foobar.MyClass", "com.foobar.mypkg.*")
    maxHeapSize = "1g"
    extraArgs = listOf("-nested:false")
    jvmArgs = listOf("-Duser.language=ja")
}

Literally doesn't work and will fail with message:
Cannot set the value of extension 'spotbugs' property 'reportLevel' of type com.github.spotbugs.snom.Confidence using an instance of type java.lang.Class.

Same error for me, could not add import com.github.spotbugs.snom.Effort into gradle file using Groovy DSL. Encountered exception

Same problem here for me as well cannot import the Confidence object. The only thing that works is the class loader option referenced above from the user Vest.

Another bump.
This is fairly important — the documentation describes how to do something and it CLEARLY doesn't work.  This is going to trip up a lot of developers until either the documentation is corrected or the bug is fixed!

Unfortunately spent a lot of time trying to fix this issue, didn't find a better solution than the classloader solution above.

same

Until it's fixed i'm using:
import com.github.spotbugs.snom.Confidence
import com.github.spotbugs.snom.Effort
spotbugs {
	effort = Effort.MAX
	// 0: LOW, 1: MEDIUM, 2: DEFAULT, 3: HIGH
	reportLevel = Confidence.values()[2]
	[...]
}

Using Effort.MAX is woking, if not, Effort.values()[2] should also work.


[nrf noup] Bluetooth: host: Accept duplicate device

When duplicate device is found, controller can either return a success or Invalid HCI Command Parameters (0x12).
Host now will not treat duplicate device as error (DRGN-15879).
Signed-off-by: Azizah Ibrahim<EMAIL_ADDRESS>

@ibaz-nordic , please see the comments in https://github.com/nrfconnect/sdk-zephyr/pull/762

Will be replaced with another solution in upstream


how to prevent multi broker subscribers receive same message

I am using go micro broker to implement message queue, I have two go processes subscribe same topic,  when I publish a message to broker,  two subscriber can receive the message at same time, how to make it receive by one subscriber ? thanks a lot !
the version I used :github.com/micro/go-micro/v2 v2.9.1 	github.com/micro/go-plugins/broker/nsq/v2 v2.9.1

specify subscriber queue group and messages (may be, dont know nsq) will be distributed across all subscribers

@typhoonbb Hey bro, I'm facing the same problem. I have found a solution by reading go-micro and NSQ source code. NSQ will send a copy of messages to all channels that subscribe the same topic, and it will dispatch messages to consumers in load-balance mode when multi consumers binding to the same channel. In go-micro, you can specify an SubscriberQueue option when consumers call NewSubscriber which can make all consumers binding to the same channel. If you didn't specify SubscriberQueue, it will create a channel name with uuid for each consumer when NewSubscriber.
https://github.com/microhq/go-plugins/blob/87d43a62e4addda545607c6ee148fa84eec5a737/broker/nsq/nsq.go#L246-L249
some call like this
micro.RegisterSubscriber("game.StartGate", g.mi.srv.Server(), &subStartGate{g: g}, server.SubscriberQueue("game.StartGate"))

@hellodudu, thanks for the solution!


Added #34277 --  Add Conditional WHERE Clause to bulk_create for SQLite and PostgreSQL

#34227
This pull request introduces a significant enhancement to Django's ORM by adding a conditional WHERE clause capability to the bulk_create method for SQLite and PostgreSQL backends. This feature allows users to specify conditions under which updates should occur in case of conflicts during bulk insert operations, offering more control and flexibility in data handling.
Key Changes and Implementation:

Added a where_clause parameter to the bulk_create method.
Integrated this feature with SQLite and PostgreSQL backends by handling the where_clause in the respective database operations.
Created comprehensive tests to ensure functionality and reliability across the supported databases.

Future Vision and Rationale for Current Scope:

The current implementation accepts raw SQL strings for the where_clause. The goal was to establish a foundation upon which further enhancements can be built.
Future work could involve extending support to other databases and allowing Django's Q and F expressions for the where_clause, making it more "Djangonic". However, this would require a more intricate handling and understanding of each database's capabilities and syntax.
I decided to limit the scope of this initial implementation to ensure reliability and ease of integration. Tackling the complexity of database-specific syntax and Django expressions in a single go could introduce risks and prolong the review and integration process.
A dedicated ticket and subsequent contributions will focus on these advanced features, ensuring thorough testing and consideration for each step of the enhancement.

This contribution represents a starting point for a broader feature addition to Django's ORM. I'm looking forward to feedback and discussions on how we can further evolve this functionality in future iterations.

@HamaBarhamou Thanks 🏆 I left a few cursory comments

Thanks for the initial work on this - it'll be a nice feature to have.
I've added a bunch of comments with regards to making things more consistent, but I think the main blocker to progress will be properly supporting passing expressions to where_clause rather than backend-specific SQL which will leave this open to increased risk of SQL injection.

Thank you so much, ngnpope, for your constructive and detailed feedback. I am delighted to hear that this feature will be a welcomed addition and I take note of your suggestions to improve my pull request. I will work on the modifications you have recommended and incorporate them into the code. Your assistance is highly valuable and greatly contributes to my understanding of the Django project.

Thanks for the updates @HamaBarhamou 🙂
I think you missed some of my previous comments. Unfortunately GitHub collapses stuff and it's easy to miss - look for the "XX hidden conversations" bits and click "Load more...".
I've added some more comments. The big things of interest going forward are:

Where do we compile the condition expression - can we push down, etc. ?

Can we make the condition expression more general than hardcoding to F and Q?

How do we handle PostgreSQL's EXCLUDED?

I think this could be a subclass of F with some special handling perhaps

We could also probably use the name EXCLUDED on MySQL for the table alias

Currently we have AS new, but that can be anything and new is a bit generic

Comment gérons-nous les PostgreSQL EXCLUDED?

Hello @ngnpope  and the team ,
Thank you for your insightful questions. Here are my thoughts:
Compiling the condition expression: I will further reflect on the possibility of pushing the condition expression lower in the execution stack. It's an interesting point that I wish to explore more.
Generalizing the condition expression: My approach did not involve specific hardcoding for F and Q. I have utilized Django's existing mechanisms, which, to my understanding, are already suited to handle these expressions in a general manner. If my understanding diverges from what you expect, I am open to clarifications.
Handling EXCLUDED in PostgreSQL: My work is a continuation of PR #13065 where EXCLUDED was incorporated. My goal has been to add a WHERE clause to the existing query. If you think there are aspects I might have missed or misinterpreted regarding EXCLUDED, I am open to your guidance to ensure my contribution aligns perfectly with the project's expectations.
I am still in a learning phase and appreciate your patience and guidance in this process.

Dear Team @ngnpope @shangxiao ,
I am writing to inform you that I have completed the necessary adjustments on the project and am ready for another review.
However, I would like to seek your opinion on a specific point: is the current state of my work, which does not yet include an implementation for the MySQL backends, sufficient for acceptance? In other words, is it imperative to also integrate MySQL for my contribution to be considered complete, or are the current improvements adequate for acceptance?
I am prepared to continue work on MySQL if necessary, but I would like to know your requirements regarding this.
Thank you for your feedback and guidance.

Hi @felixxm, I'm looking for a way to reproduce exactly the local production environment for test execution. Do you have a suggestion?

Hello team @ngnpope, @felixxm, and shangxiao 🙌,
I'm ready for another review. 🚀
I would like to bring to your attention the keyword EXCLUDED introduced in Django. I'm wondering if we should consider renaming EXCLUDED to avoid confusion with the EXCLUDED keyword specific to SQLite and PostgreSQL. From Django's perspective, EXCLUDED refers to the fields of new rows being inserted into the database, which implies using backend-specific keywords (like EXCLUDED, VALUES, NEW...). Hence, it seems necessary to clearly distinguish EXCLUDED in the Django context from EXCLUDED in the backend context.
What are your thoughts on this? Your insights and suggestions would be greatly appreciated. 😊👍
Thanks for your time and continued collaboration! 🌟

I'm ready for a new revision

As a suggestion, you might want to reduce the scope of this PR to getting condition into bulk_create which supports F and Q expressions. Then once that's landed, you can create a new PR with adding Excluded support.

@sarahboyce I already requested that Excluded be added straightaway as it is, in my mind, a primary requirement of this feature.

À titre de suggestion, vous souhaiterez peut-être réduire la portée de ce PR à obtenir une condition dans Bulk_create qui prend en charge les expressions F et Q. Ensuite, une fois que cela est obtenu, vous pouvez créer un nouveau PR en ajoutant le support exclu.

@sarahboyceJ'ai déjà demandé que cela Excludedsoit ajouté immédiatement car c'est, à mon avis, une exigence principale de cette fonctionnalité.

the idea of limiting the scope of this functionality and opening a pull request for the rest is good. only it must be applied to the case of mysql, limiting this feature only for sqlit and protesql. i tried to integrate mysql and gave up because i realized that it would be more complicated to manage, because mysql does not natively support conditional updates like protesql and sqlite. so in my opinion it deserves another tikect.

the idea of limiting the scope of this functionality and opening a pull request for the rest is good. only it must be applied to the case of mysql, limiting this feature only for sqlit and protesql. i tried to integrate mysql and gave up because i realized that it would be more complicated to manage, because mysql does not natively support conditional updates like protesql and sqlite. so in my opinion it deserves another tikect.

ready for another revision

Hi @HamaBarhamou, thank you for adding the test for abulk_create and the formatting changes ⭐ 🎉
A couple of things have been missed

Please update the release notes based off this feedback: https://github.com/django/django/pull/17515/files#r1442594149
Please consider the documentation feedback I gave here: https://github.com/django/django/pull/17515#discussion_r1442588641

Then the last one is whether you can have applied changes to have Excluded subclass F based off this discussion: https://github.com/django/django/pull/17515#discussion_r1442597457
Think with a new year, you can approach this with fresh eyes and see if you can get this to work 🤞

Ensuite, la dernière question est de savoir si vous pouvez avoir appliqué des modifications pour avoir Excludedune sous-classe Fbasée sur cette discussion : #17515 (commentaire) Pensez à une nouvelle année, vous pouvez aborder cela avec un regard neuf et voir si vous pouvez faire fonctionner cela 🤞

I don't know if you saw my comments. I had already solved the problem of Excluded sous class de F in my last commit.

Salut@HamaBarhamou, merci d'avoir ajouté le test abulk_createet les changements de formatage ⭐ 🎉
Quelques choses ont été manquées

Veuillez mettre à jour les notes de version en fonction de ces commentaires : https://github.com/django/django/pull/17515/files#r1442594149
Veuillez prendre en compte les commentaires sur la documentation que j'ai donnés ici : Ajout de #34277 -- Ajouter une clause WHERE conditionnelle à Bulk_create pour SQLite et PostgreSQL  #17515 (commentaire)

Ensuite, la dernière question est de savoir si vous pouvez avoir appliqué des modifications pour avoir Excludedune sous-classe Fbasée sur cette discussion : #17515 (commentaire) Pensez à une nouvelle année, vous pouvez aborder cela avec un regard neuf et voir si vous pouvez faire fonctionner cela 🤞

I don't know if you saw my comments. I had already solved the problem of Excluded sous class de F in my last commit.

Quelques choses ont été manquées

Veuillez mettre à jour les notes de version en fonction de ces commentaires : https://github.com/django/django/pull/17515/files#r1442594149
Veuillez prendre en compte les commentaires sur la documentation que j'ai donnés ici : [Ajout de #34277 -- Ajouter une clause WHERE conditionnelle à Bulk_create pour SQLite et PostgreSQL  #17515 (commentaire)](https://github.com/django/django/pull/17515#discussion_

I see it on my github comment .

Maybe you haven't seen my previous comments, I wonder if they have been registered by github.

Quelques choses ont été manquées

Veuillez mettre à jour les notes de version en fonction de ces commentaires : https://github.com/django/django/pull/17515/files#r1442594149
Veuillez prendre en compte les commentaires sur la documentation que j'ai donnés ici : [Ajout de #34277 -- Ajouter une clause WHERE conditionnelle à Bulk_create pour SQLite et PostgreSQL  #17515 (commentaire)](https://github.com/django/django/pull/17515#discussion_

I see it on my github comment .

Maybe you haven't seen my previous comments, I wonder if they have been registered by github.

Veuillez mettre à jour les notes de version en fonction de ces commentaires : https://github.com/django/django/pull/17515/files#r1442594149

I applied @ngnpope's suggestion here in his comment
there must be a reason for this.
you didn't say anything about his

ready for another review

ready for another revision

I've only managed a quick pass through right now - will have to have a more thorough look later.
Please can you rebase and squash all commits so that we can have a clean slate for the next phase of review - there's quite a bit of clutter in the commit history now. And please ensure that any @username mentions are removed from the commit message so that we don't get pinged multiple times every time you push to the branch? Thank you.

nice to see you again gnope. ok i'll see how to do it and i'll get back to you if there's a problem.

Hi @ngnpope @kezabelle , don't forget to check the "Patch needs improvement:" box if you've finished the revision.

I believe that Nick asked you to please squash all commits into one. This does not seem to have done. If you have any doubts, this post is a good resource to learn.

Thank you for the resource

Ready for another revision

I apologize for the recent silence, I'm currently busy. I just wanted to know how to proceed with the docs/releases/5.1.txt file, since Django 5.1 is out. Should I transfer my work to docs/releases/5.2.txt ?

Yes that's right ✅ and no need to apologize


OSRA387 - Sponsor-Orphan link - choose more than one orphan at a time

Sponsor-Orphan link - choose more than one orphan at a time
https://osraav.atlassian.net/browse/OSRA-387

Screenshots of the change:

Bassically I added the request fulfilled at the moment and the flash message show the person who was just linked.

looks good, nice work :+1:

:+1:

@razorcd Can you merge this one to test your access?


Not working with nested lists

For example:
1. List 1
   Blabla

   List 2:
   1. Blabla
   2. Blabla
   3. Blabla

I changed the regex up a bit, it should work now.

I just wana make a pull request, but found you fixed this bug. :joy::joy::joy:
It works now. Thx!


Have a renew endpoint that verifies if the student account is still valid

Idea
This could be fairly trivial, but it would be nice if we have a renew endpoint that checks if the ERP account is still active. ERP doesn't even show the Security Question box when entering an old roll number (ex, 11CS30040).
Why?
Currently, Leprechaun doesn't an API consumer know if a particular roll number is still a student. But this would be pretty useful if we integrate Leprechaun with MFTP, where we might want to remove past students automatically.

So, we have had this conversation before. I am not sure where it was, but I am pretty sure it was part of a Demo day discussion. The solution that we came up with was:

we would return the timestamp for when the user authenticated with us last (TODO)
If the application that is consuming this data needs a more recent confirmation, then it can ask the user to re-authenticate

Note: Re-authentication is exactly same as the original authentication flow. If they do the whole thing again, their returned date and time will be updated.
This has the advantage of Leprechaun being simultaneously useful for applications that serve current KGP students and one-time KGP students without affecting our handling of their data. Let me know if something seems off about this. I will be making the change to return the time they authenticated with Leprechaun in a bit.

So, we have had this conversation before. I am not sure where it was, but I am pretty sure it was part of a Demo day discussion. The solution that we came up with was:

we would return the timestamp for when the user authenticated with us last (TODO)
If the application that is consuming this data needs a more recent confirmation, then it can ask the user to re-authenticate

Note: Re-authentication is exactly same as the original authentication flow. If they do the whole thing again, their returned date and time will be updated.
This has the advantage of make Leprechaun simultaneously useful for applications that serve current KGP students only and one-time KGP students without affecting either. Let me know if something seems off about this. I will be making the change to return the time they authenticated with Leprechaun in a bit.

Oh, but do we really need the timestamp though? Because once we connect someone's roll number with their email address and say an API consumer wants to know if the person is still a student, all we need to do is to verify they are still a student (and not make them re-authenticate, because it's unnecessary?). All we'd need to do is go to the ERP, verify if the associated roll number still returns some security question. If it doesn't, well they are not a student anymore. I don't think there are any flaws with doing it this way.
I'm not against timestamps, but I don't think it serves any purpose for the sake of this issue.

Yeah, but notice that there are more corner cases. (The case when the ERP is down and the application is checking if someone is a current student is one that comes to mind)
Of course, as you said, this can be done by the application. So, from Leprechaun's side, there are no changes required. The application can institute any check of their own (like a simple Regex check and matching the current time and expected time of graduation, check for ERP security questions, make them re-auth, etc) Not our concern. :slightly_smiling_face:
I wanted to include the time stamp of authentication anyway, because without it, the information is very plain. Just a roll number and an email ID connection without knowing how stale the information is is a bit much for developers. (Say they are trying to debug why 10/100 invitees of a service are not replying, with a date, they can evaluate how old the information is and make some assumption from there at least) So, I have included the time stamp anyway.
I think we can close this issue?
TL; DR Renewal is same as re-authenticating with the same roll number and email ID.


When paying out multiple blocks there are multiple payouts

It outputs the same payment twice, maybe it's doing for each block?
This script will payout from blocks 0 to 679
The pool total staking balance is 66000
We won these blocks: 527,484
We are paying out<PHONE_NUMBER>127 nanomina in this window.
That is<PHONE_NUMBER>127 mina
Our fee is is<PHONE_NUMBER>6.35 mina
[ { publicKey: 'B62qmPJMvVcEwBSichqB4SrrN3P1ZfiPaVZk5cVSabxQBXYfYgLQPLK',
    total:<PHONE_NUMBER>821 } ]
[ { publicKey: 'B62qmPJMvVcEwBSichqB4SrrN3P1ZfiPaVZk5cVSabxQBXYfYgLQPLK',
    total:<PHONE_NUMBER>821 } ]

The values by the way compare perfectly now to mine (and mine is calculated via GraphQL and not fee transfers) :)
This script will payout from blocks 0 to 679
The pool total staking balance is: 66000
There are 1 delegates in the pool
We won these blocks: [527, 484]
We are paying out<PHONE_NUMBER>127 nanomina in this window.
That is 1451.933046127 mina
Our fee is is 72.596652306 mina
+---------------------------------------------------------+-----------------+----------------+
|                        PublicKey                        | Payout nanomina |  Payout mina   |
+---------------------------------------------------------+-----------------+----------------+
| B62qmPJMvVcEwBSichqB4SrrN3P1ZfiPaVZk5cVSabxQBXYfYgLQPLK |<PHONE_NUMBER>821  | 1379.336393821 |
+---------------------------------------------------------+-----------------+----------------+
[{'publicKey': 'B62qmPJMvVcEwBSichqB4SrrN3P1ZfiPaVZk5cVSabxQBXYfYgLQPLK', 'total':<PHONE_NUMBER>821}]

@garethtdavies, looks like I left the console.log in both places when I refactored. I'll remove one of them.

Resolved in https://github.com/jrwashburn/mina-pool-payout/pull/5


Fix edge case entropy calculcation with point mass form constraint

This PR fixes rare edge case happened during entropy calculation with point mass form constraints. thanks to @ismailsenoz
This PR also adds extra model tests.

Codecov Report

Merging #61 (7d36bae) into master (d9e6d7e) will increase coverage by 18.75%.
The diff coverage is 89.83%.

@@             Coverage Diff             @@
##           master      #61       +/-   ##
===========================================
+ Coverage   50.47%   69.22%   +18.75%
===========================================
  Files         126      153       +27
  Lines        3802     3968      +166
===========================================
+ Hits         1919     2747      +828
+ Misses       1883     1221      -662

Impacted Files
Coverage Δ

src/constraints/prod/prod_final.jl
50.00% <ø> (-2.64%)
:arrow_down:

src/marginal.jl
58.62% <ø> (+42.54%)
:arrow_up:

src/message.jl
68.57% <ø> (+48.28%)
:arrow_up:

src/score/node.jl
100.00% <ø> (+100.00%)
:arrow_up:

src/helpers.jl
56.58% <50.00%> (+28.58%)
:arrow_up:

src/macrohelpers.jl
56.81% <80.00%> (-30.03%)
:arrow_down:

src/math.jl
76.92% <83.33%> (+5.49%)
:arrow_up:

src/distributions/pointmass.jl
93.33% <100.00%> (+1.95%)
:arrow_up:

src/score.jl
87.87% <100.00%> (+49.78%)
:arrow_up:

src/score/variable.jl
100.00% <100.00%> (+100.00%)
:arrow_up:

... and 70 more

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 d9e6d7e...7d36bae. Read the comment docs.


Client re-dialing

The client should make a decent effort to re-dial a bad connection.
Perhaps a client should hold more than one connection? (Benchmarking should tell us whether or not that actually improves throughput.)

Any particular package you're thinking of (fmt vs log vs glog)?

An update: at this point, there's no indication that using more than one network connection per client actually improves performance. But client should still re-dial.

How about a different RedialClient that redials if the connection is lost, I could see certain users wanting to know when a connection is lost (the normal Client)?

Actually, now that I'm thinking about it, *ClusterClient with one remote address already does this, albeit with a little more overhead than is strictly necessary.


Windows: Give service spawned with ctl start its own console, so it w…

…on't die if the client console is closed
Copied from runquiet/keybaserq, which doesn't have this problem
Thank you @zapu for running the Windows client and finding this.

Otherwise looks good :+1: I don't have a way to build on Windows right now, so I can't see if it fixes the problem here.
For reference, list of process creation flags on Windows: https://msdn.microsoft.com/en-us/library/windows/desktop/ms684863(v=vs.85).aspx

Wonder if it spawns a visible new console. Is there an .exe build artifact I can download and run? I don't have build system setup here on Windows.

Ordinarily you can just have Jenkins build a signed installer from any branch: https://ci.keyba.se/job/windows-installer/build?delay=0sec
but Windows GUI has been broken for more than a week. One could still make an installer with a GUI that doesn't work, for testing the service, but it may be best to just wait.

IIRC Someone said yesterday that Windows build are fixed, so can this branch be tested now?

Waiting on the webpack2 changes, which are supposed to go in today.

Merging; we'll test before releasing


Fix/29228: Task needs revisit to update members

Details

Fixed Issues

$ https://github.com/Expensify/App/issues/29228
PROPOSAL: https://github.com/Expensify/App/issues/29228#issuecomment-1783688214
Tests

Create a task report.
Assign the task report to an account besides yours
Click icon in the task report header
Verify that the assignee's profile page is visible
Re-assign the task to an account besides yours or one previously chosen
Click icon in the task report header
Verify that the members count has increased by one
Verify that the members list includes the new assignee

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

Offline tests

QA Steps

Create a task report.
Assign the task report to an account besides yours
Click icon in the task report header
Verify that the assignee's profile page is visible
Re-assign the task to an account besides yours or one previously chosen
Click icon in the task report header
Verify that the members count has increased by one
Verify that the members list includes the new assignee

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

PR Author Checklist

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

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

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

[X] Android: Native
[X] Android: mWeb Chrome
[X] iOS: Native
[X] iOS: mWeb Safari
[X] MacOS: Chrome / Safari
[X] MacOS: Desktop

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

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

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

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

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

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

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

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

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

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

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

Screenshots/Videos

Android: Native
https://github.com/Expensify/App/assets/22982173/5511579a-fc5e-435c-8838-6270fd1b9c42

Android: mWeb Chrome
https://github.com/Expensify/App/assets/22982173/a5acfd9d-f207-4799-a7d5-855c97be7f69

iOS: Native
https://github.com/Expensify/App/assets/22982173/9f73149e-8e43-46e4-aee9-d816b519f963

iOS: mWeb Safari
https://github.com/Expensify/App/assets/22982173/fb5913ff-04df-4b45-9481-9d8b527ba122

MacOS: Chrome / Safari
https://github.com/Expensify/App/assets/22982173/b9709078-c76c-4bd3-93a5-a9a4e635b6b0
https://github.com/Expensify/App/assets/22982173/4d4da4b2-65bc-49c1-bc22-8ce466fb384e

MacOS: Desktop
https://github.com/Expensify/App/assets/22982173/13a12ca8-fc40-4f89-9bd7-ac9b83a04b93

@Tony-MK I left one comment, but otherwise things look good 👍

@cubuspl42 I applied your suggestion. Kindly, review the changes.

🚀 Deployed to staging by https://github.com/luacmartins in version: 1.3.95-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/puneetlath in version: 1.3.95-9 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to staging by https://github.com/luacmartins in version: 1.3.96-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/puneetlath in version: 1.3.96-15 🚀

platform
result

🤖 android 🤖
failure ❌

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅


Customize scss variables

There's no styles as a separate import atm, what's the best way to customize scss variables for the calendar?

@naomiaro thanks for your question, I thougth I could provide the solution for customing the calendar.
can you tell me that what you want to custom?

to change variables like this
$cellActiveBgColor: #4285f4;
$cellInRangeBgColor: #eef4ff;

the scss files are now just imported separately in the SFCs as scoped scss, so I don't know if it's possible to change them easily using vue.js atm.

I will provide the separete scss file for developer to custom the style

Thank-you! 😁


GLVis X connection failure

Hi :)
I just reinstalled my Ubuntu (due to corruption) and therefore the GLVis and its dependencies. However I cannot display the meshes through Xming, with the following problem:

However the xclock test works , which indicates  X forwarding and SSH connection should be alright ?

GLVis works well for me until this recent reinstallation. I have been trying the recommended solutions regarding the "X connection to :0 broken" problem. But none of them works. Any ideas for the fix?
Thanks !
Bright

Hi @brightzhang91,
Can you confirm you are using mfem-4.2 with glvis-4.0, and no other modifications?
Also, what is the operating system?
Tzanio

Hi @brightzhang91,
Can you confirm you are using mfem-4.2 with glvis-4.0, and no other modifications?
Also, what is the operating system?
Tzanio

Hi Tzanio
Yes I'm using mfem-4.2 with  glvis-4.0, which were downloaded and installed in this week without modification. The operating system is Linux based Ubuntu 20.04.LTS installed on windows.

Hi @brightzhang91,
Could you perform the following steps and post the output?

Build and run glvis in debug mode, with make GLVIS_DEBUG=YES - this should provide some additional error information during window initialization.
Run glxinfo to confirm that OpenGL is working through X

Another thing you might be able to try out is using VcXsrv instead of Xming for the X server. VcXsrv should support a newer version of OpenGL, and seems to be more actively developed compared to Xming.

Hi @kanye-quest
Thanks for the advices. So far I have tried :

Build and run glvis in debug mode, with make GLVIS_DEBUG=YES - this should provide some additional error information during window initialization.
Run glxinfo to confirm that OpenGL is working through X

It seems there is problem with OpenGL:

However I tested the display with OpenGL, following the advice here :

What happens when you run DISPLAY=:0 glxinfo? If glxinfo isn't running, that's definitely concerning.
Also, is there anything that looks off inside Xming's logs wrt the broken X connection?

Ok  :), DISPLAY=:0 glxinfo can show all the information, such as some parts as follows:

Xming doesn't look like strange and xclock test works.

I was able to compile and run glvis v4.0 successfully on my WSL2/Ubuntu 20.04 machine. However, I am using VcXsrv as recommended by @kanye-quest . I am not an X or GL power user, but I am happy to help debug this if you would like me to query my build or system parameters.

thanks for helping @jamiebramwell !

I was able to compile and run glvis v4.0 successfully on my WSL2/Ubuntu 20.04 machine. However, I am using VcXsrv as recommended by @kanye-quest . I am not an X or GL power user, but I am happy to help debug this if you would like me to query my build or system parameters.

Thanks. I'll try to use VcXsrv instead of Xming and see if it works. I'll be back when it works or still have problems.
Bright

Hi
The display with VcXsrv  is successful :)
Thanks very much for the support and I'm closing this issue.
Best
Bright


[DEID-2889] Reorganize OCR docker-compose file structure

Please see conversations in https://github.com/privateai/deid-examples/pull/42

This change is good to go! Thanks Yuya!

Thank you @bryanbellsmith


allow OPTIONS on json-ld API

linked data clients use OPTIONS to see what kind of operations that they can do on a server. Because the json-ld export in the CE is read-only, we should implement OPTIONS that returns:
HTTP/1.1 204 No Content
Allow: OPTIONS, GET

so that clients know that they cannot write to the CE.

N.b. "Allow" is a header. See:
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Allow
and
https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/OPTIONS


fix(nexus): assertion failure in nexus_bdev resume()

Resuming already unpaused nexus is now allowed (results in no-op)
and triggers no assertion, which simplifies high-level logic for
nexus suspend/resume clients.
Fixes CAS-1256

bors try

bors merge


Fetching artifacts fails

Describe the bug
Fetching artifacts fails to url encode properly from / to %2f
Requirements for and issue
Returning due to fatal error: FatalError{Underlying: error while running command: exit status 1; ╷
│ Error:
│ 400 GET https://artifactory/artifactory/api/storage/local/repo-file%2Fstuff.zip

data "artifactory_file" "lambda_stuff" {
  repository  = "repo-name"
  path        = "repo-file/stuff.zip"
  output_path = "${path.module}/tmp/file.zip"
}

Expected behavior
Artifact should be fetched
url encoding doesn't seem to be working properly for / and is returning %2f
provider version:  6.30.1
terraform version: 1.3.9

@jesseneal Thanks for the report. Looks like we need to bypass the encoding of path characters.