refactor: Update names of watson studio and wml

Description
Update the variable name watson_studio to watsonx_ai_studio and watson_machine_learning to watson_ai_runtime in watsonx.ai module.

Release required?

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

Release notes content

Run the pipeline
If the CI pipeline doesn't run when you create the PR, the PR requires a user with GitHub collaborators access to run the pipeline.
Run the CI pipeline when the PR is ready for review and you expect tests to pass. Add a comment to the PR with the following text:
/run pipeline

Checklist for reviewers

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

For mergers

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

/run pipeline

This does not requires any release. We will be merging this to another feature branch.

When

This does not requires any release. We will be merging this to another feature branch.

When it is not a release, we should not be adding release notes content.

Changes done as per the comments.Hence retriggering the pipeline.

/run pipeline

Changed watsonx_project_tags to project_tags.Triggering the pipeline again

/run pipeline.

/run pipeline


Added first work in progress to retrieve the data from the CRTM server.

Hi @danibaena I just review your pull request, looks fine but all code in on the root dir, so it's needed move the code for reordering an be able to mix with other code.
I suggest this structure :
- READE.md

- src\
--app.js
--bin
--controllers
--lib -> piston would be here
--models
--package.json
--public
--routes
--views

- spec\
-- lib

this skel was build using jasmine and express generators. Only controllers dir it's mine.
what do you think ?

Hi, yes, it's fine for me. That's why I wanted to make the PR in the first place, so we can think a better way to organize the different pieces of the project on a more standarized way. The structure you posted looks good to me ;)

Hi Jorge. I think I have ready the DataSource module finished, need more testing though. I might give you a hand with the other stuff if you publish it. Best regards.

Sorry for this long delay ;)


[BUG] Opensearch provider PGP key may be expired

What is the bug?
When initializing a Terraform repository using the opensearch provider, I get the following error:
│ Error: Failed to install provider
│
│ Error while installing opensearch-project/opensearch v2.0.0-beta.1: error checking signature: openpgp: key expired

How can one reproduce the bug?
Add the opensearch provider and attempt to initialize the terraform repo:
providers.tf:

provider "opensearch" {
  url = "https://some-opensearch-url.us-east-1.es.amazonaws.com"
}

versions.tf:

terraform {
  required_version = ">= 1.6.0"

  required_providers {
    opensearch = {
      source  = "opensearch-project/opensearch"
      version = "2.2.0"
    }
  }
}

❯ terraform init

Initializing the backend...

Initializing provider plugins...
- Finding opensearch-project/opensearch versions matching "2.2.0"...
- Installing opensearch-project/opensearch v2.2.0...
╷
│ Error: Failed to install provider
│
│ Error while installing opensearch-project/opensearch v2.2.0: error checking signature: openpgp: key expired

What is the expected behavior?
Terraform initializes and uses the opensearch provider with a valid PGP key.
What is your host/environment?
Mac OS arm64, though it seems to be the case for amd64 as well.
Do you have any screenshots?
If applicable, add screenshots to help explain your problem.
Do you have any additional context?
I did a quick check on the releases and the key does appear to be expired:
❯ curl https://registry.terraform.io/v1/providers/opensearch-project/opensearch/2.2.0/download/linux/amd64 | jq -r '.signing_keys.gpg_public_keys[0].ascii_armor' | gpg --show-keys -
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  4143    0  4143    0     0  25614      0 --:--:-- --:--:-- --:--:-- 25732
pub   rsa4096 2023-02-28 [SC] [expired: 2024-02-28]
      A0C16CA6CFA8ABF4DB5338E1C9D54034F594D145
uid                      OpenSearch Terraform Provider (OpenSearch terraform provider official signing key<EMAIL_ADDRESS>sub   rsa4096 2023-02-28 [E] [expired: 2024-02-28]

gpg: WARNING: No valid encryption subkey left over.

❯ curl https://registry.terraform.io/v1/providers/opensearch-project/opensearch/2.2.0/download/linux/arm64 | jq -r '.signing_keys.gpg_public_keys[0].ascii_armor' | gpg --show-keys -
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  4143    0  4143    0     0  14415      0 --:--:-- --:--:-- --:--:-- 14435
pub   rsa4096 2023-02-28 [SC] [expired: 2024-02-28]
      A0C16CA6CFA8ABF4DB5338E1C9D54034F594D145
uid                      OpenSearch Terraform Provider (OpenSearch terraform provider official signing key<EMAIL_ADDRESS>sub   rsa4096 2023-02-28 [E] [expired: 2024-02-28]

gpg: WARNING: No valid encryption subkey left over.

This appears to be a bug with the version of terraform you're using 1.6.0
https://github.com/hashicorp/terraform/issues/33984
Try downgrading or upgrading to resolve 👍

You are correct, thanks for the heads up! It's initializing now.


Where can I download FCOS version 38.20231027.3 for OKD 4.14?

Hello,
I'm trying to set up OKD 4.14.0-0.okd-2023-11-12-042703 in an air-gapped environment. According to the release notes, this version requires Fedora CoreOS (FCOS) version 38.20231027.3.
I've tried looking for this specific FCOS version through:

Fedora mirror manager
Official Fedora CoreOS download page
Various Fedora mirrors

However, I cannot locate this specific version. Could you please:

Provide a direct link to download FCOS 38.20231027.3?
Or alternatively, confirm if a newer version of FCOS 38 would be compatible with this OKD release?

Thank you for your help.

Hi. This isn't an issue/bug per se. The Working Group only provides resources for N and N-1 releases at this time. As of last week, that means 4.17 and 4.16 (which are SCOS-based releases). The FCOS Working Group, who was creating and storing the FCOS artifacts, has likely pruned artifacts from 2023.

./openshift-install coreos print-stream-json will tell you the initial image that the installer is using.  In the case of 4.14.0-0.okd-2023-11-12-042703 it uses FCOS 38.20230609.3.0.  It also gives the URL to download from.
                    "release": "38.20230609.3.0",
                    "formats": {
                        "ova": {
                            "disk": {
                                "location": "https://builds.coreos.fedoraproject.org/prod/streams/stable/builds/38.20230609.3.0/x86_64/fedora-coreos-38.20230609.3.0-vmware.x86_64.ova",
                                "signature": "https://builds.coreos.fedoraproject.org/prod/streams/stable/builds/38.20230609.3.0/x86_64/fedora-coreos-38.20230609.3.0-vmware.x86_64.ova.sig",
                                "sha256": "70c8ca28cfa95cc72a7e91d681397f0b4b0cdf890b859c7cee7fc700a8ceac04"
                            }
                        }
                    }
                },

In this case
https://builds.coreos.fedoraproject.org/prod/streams/stable/builds/38.20230609.3.0/x86_64/fedora-coreos-38.20230609.3.0-vmware.x86_64.ova
for vmware.
The install will upgrade the OS to the appropriate level during the install process

@fortinj66 The FCOS Working Group asked us if it was okay to prune older artifacts, which we agreed with. While it may be downloadable, we can't guarantee it will be as the pruning process proceeds. So, we'll want to avoid just telling folks without verifying.


Problems when installed via composer

When running composer require paragonie/password_lock, the package is installed properly in my project, but when running composer's vendor/autoload.php, a fatal error is encountered:

PHP Fatal error:  require_once(): Failed opening required 'vendor/autoload.php' in /path/to/project/vendor/paragonie/password_lock/autoload.php on line 39

I would suggest removing the autoload directive in composer.json and replacing it with something akin to what other projects on Packagist use.

https://github.com/paragonie/password_lock/blob/master/composer.json#L26-L30
Yeah, that does need to be axed.

Thanks for taking a look at this!  Very much appreciated.  Will there be a release soon, or should I switch to the dev edition on composer?

It depends on https://github.com/defuse/php-encryption/tree/v2.0 which hasn't been audited or released yet. Tentative goal is January 1, however.

Alright, I'll keep my eyes peeled.  Thanks again.


Overlapping clusters

I'm getting clusters that have overlapping nodes. My assumption is that clusters should have completely distinct sets of nodes. Is my assumption wrong or is this an error?

See 15, in particular this comment.


trackPageView is showing the same PageView duration for all pages

We are using Application Insights to instrument an Angular 6 SPA. In route change, we are calling trackPageView. But the same duration is shown in all the pages. I have seen a similar issue raised before for this
https://github.com/Microsoft/ApplicationInsights-JS/issues/570
I tried using startTrackPage() and stopTrackPage() method as per that suggestion. But i am confused on the usage of this method. Do i need to still call trackPageView() method when calling start and stop method.
When calling start and stop methods, without using trackPageView, i didnt get an page view tracking. When used with trackPageView(), it came as another pageView entry within the main event as the screenshot below.

I may be doing something wrong here. Can you please let me know on how to use this.

@ranjitkrishnan - did you provide the same name that you used in startTrackPage() for stopTrackPage(). You do not need to use trackPageView() if you are using startTrackPage() + stopTrackPage()

@jpiyali I might have messed up the name. After removing the trackPageView and calling startTrackPage and stopTrackPage(), i am getting things somewhat  right. Do I need to set overridePageViewDuration as true in this usecase.
Currently my issue is that the pageView event is not starting from 0ms. It is starting somewhat in the middle as the screenshot below. The Dependencies are starting correctly.

overridePageViewDuration is to enable you to provide a manual measurement. The timeline depends on where you are firing the startPageView(). Are you firing this early enough in the page?

Also, overridePageViewDuration is applicable only to trackPageView() api

I am calling the startTrackPage on route change itself.
Isnt the PageViewDuration supposed to be the time interval between start and stop calls ?
What i am seeing is that the timeline start from the PageViewduration property. Say if the PageViewDuration is 1.5 sec, the timeline of the pageview call starts at 1.5 seconds and end at 3 seconds.  Not sure if this observation is correct

@OsvaldoRosado  - what is referenced as 0 in the graph above (is it earliest timeline for a specific set of related events?). For automatic pageview tracking, the telemetry is sent after; how do you capture start time of the page for this view above?
@ranjitkrishnan - yes this should be the time between start and stop page. From the screenshot, it looks like page view duration is being reported as 3.3 seconds which maps to time difference. So, two questions,

duration of page load is correct or not (this should be really when you fire off stoppagetrack)
in the timeline, what is marked as time start. @OsvaldoRosado  - please help how you define this.

The gantt chart sets 0 to the earliest start time in the operation (usually equal to the set of telemetry sharing an operation id, ignoring extenuating circumstances).
The transaction details view is aware of how different versions of different SDKs collect telemetry. For JS SDK, all timestamps are adjusted for timeline purposes by subtracting duration from the telemetry time, to accommodate for #628

Additional note to above: It looks like this adjustment only happens for dependency telemetry from JS SDK. Should this happen for pageviews as well? The first screenshot in this thread doesn't look like adjustments are needed (unless those ajax calls should have happened after the end of the pageview event, not during)

@OsvaldoRosado The first screenshot in the thread was captured by calling trackPageView method which was giving wrong pageView duration for SPA as there is no page load here and was showing the same page view duration for all pages.
As suggested by @jpiyali , i have changed to use startTrackPage() and stopTrackPage() where i was calling startTrackPage on the route change and stop when the page is completely loaded after all the ajax calls. I am getting the duration correctly but it is not correctly positioning in the gantt chart.

@ranjitkrishnan Got it. I'm just trying to understand if the SDK behavior is such that a start time calculation adjustment needs to happen for all page views, or just ones recorded using start/stop. (And if the latter, how the UI is supposed to know this is the case). @jpiyali Any thoughts?

Referencing PR https://github.com/Microsoft/ApplicationInsights-JS/pull/804 to fix issue around dependency time tracking. Fix will be available only in Javascript SDK beta version 2.0.4

Hello All,
Any update on this? Has this issue been fixed yet? as for one of our application which is SPA same issue
With multiple user clicks within the application samething is getting reported back in Application Insights (attached screen shot), We are using trackPageView() method in the constructor of the App.component.ts so that every page gets reported. Anyhelp on this? Should we not use trackPageView() and instead use the startTrackPage and stopTrackPage?

not sure now this will be help full still, set the below property. and see
overridePageViewDuration: true,
autoTrackPageVisitTime: true
and check in the customMetrix excel, the ms will be some what accurate.
the refUri is not capturing for me, any help ?

So, I've been having similar problems in an SPA, and decided to try to single-step the code that's built in version 2.2.2, and hosted in https://az416426.vo.msecnd.net/scripts/b/ai.2.js, I think I see the following:

trackPageView currently accepts an object containing a request name, an optional url, and an optional properties object
trackPageView calculates a custom duration (in customDuration) via the internal PageViewPerformanceManager class, which uses window.performance.timing to get its duration.
If a properties object is supplied with a valid numeric duration property, that object is used to set duration.
If a properties object is not supplied or not valid, AND overridePageViewDuration is set, a custom duration property based on the value calculated in 2.
trackPageView sends the pageView telemetry.
trackPageView sets a 100ms timeout (to let DOM settle down, presumably), after which it sends any performance telemetry it was able to collect. If this gets called AGAIN, because of another trackPageView call, this timeout handler sends nothing, as it tracks whether or not it sent anything on this page load.

So, trackPageView looks to be fairly dependent on the idea of page loads, as opposed to Ajax content.
I was able to get the SDK to log correct durations (although the portal shows it as page load time, not duration), by putting the following into my base Razor view file:
    @{
        var userGuid = "";
        var accountGuid = "";
        if (User.Identity.IsAuthenticated)
        {
            var identity = (ClaimsIdentity) Thread.CurrentPrincipal.Identity;
            var claim = identity.Claims.FirstOrDefault(x => x.Type == "User");
            userGuid = claim?.Value;
            var accountGuid = identity.Claims.FirstOrDefault(x => x.Type == "Account");
            accountGuid = accountGuid ?.Value;
        }
    }
    @if ((System.Configuration.ConfigurationManager.AppSettings["iKey"] ?? "").Length > 0) {
        <text>
    const appInsights = new Microsoft.ApplicationInsights.ApplicationInsights({
        config: {
            instrumentationKey<EMAIL_ADDRESS>        }
    });
        </text>
    }
    else
    {
        <text>
    const appInsights = null; // no app insights SDK without an iKey
        </text>
    }
    if (appInsights) {
        appInsights.loadAppInsights();
        // track user and account
        appInsights.setAuthenticatedUserContext('@userGuid', '@bpGuid');
        // track the page load itself
        appInsights.properties.context.telemetryTrace.traceID = '@Context.GetRequestTelemetry().Context.Operation.Id';
        // sneak a property with a view start time
        appInsights.properties.spaPageViewRefTime = new Date().getTime();
        // and track it
        appInsights.trackPageView({name: 'Accelerate', url: '/'});
    }

And then the following at the beginning of the JS call that issues an Ajax call and loads the partial view with content:
    var reqName = url.replace(baseUrl, "").split('?')[0];
    var trackAsPageView = appInsights && (ajaxOptions.$partialViewTarget.attr("id") === "theIdOfTheContentIWantToTreatAsMy_Page_");
    if (trackAsPageView) {
        let aiProps = appInsights.properties;
        // calculate the duration
        let pageViewDuration = new Date().getTime() - aiProps.spaPageViewRefTime;
        // track it
        appInsights.trackPageView({ name: reqName, uri: url, properties:  { duration: pageViewDuration } });
        // reset the page duration timer
        aiProps.spaPageViewRefTime = new Date().getTime();
        // and get a new operation ID, so that the whole session isn't collected in one place
        aiProps.context.telemetryTrace.traceID = getNewApplicationInsightsId();
        aiProps.context.telemetryTrace.name = reqName;
    }

I lifted the trace ID code out of the SDK implementation, as it's private, and exposed it in a helper function:
function getNewApplicationInsightsId(): string {
    var hexValues = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f"];
    // rfc4122 version 4 UUID without dashes and with lowercase letters
    var oct = "", tmp;
    for (var a = 0; a < 4; a++) {
        tmp = (0x100000000 * Math.random()) | 0;
        oct +=
            hexValues[tmp & 0xF] +
            hexValues[tmp >> 4 & 0xF] +
            hexValues[tmp >> 8 & 0xF] +
            hexValues[tmp >> 12 & 0xF] +
            hexValues[tmp >> 16 & 0xF] +
            hexValues[tmp >> 20 & 0xF] +
            hexValues[tmp >> 24 & 0xF] +
            hexValues[tmp >> 28 & 0xF];
    }
    // "Set the two most significant bits (bits 6 and 7) of the clock_seq_hi_and_reserved to zero and one, respectively"
    var clockSequenceHi = hexValues[8 + (Math.random() * 4) | 0];
    return oct.substr(0, 8) + oct.substr(9, 4) + "4" + oct.substr(13, 3) + clockSequenceHi + oct.substr(16, 3) + oct.substr(19, 12);
}

Sorry for the wall of text, but I AM seeing correct durations with this using trackPageView. I believe based on this that startTrackPage and stopTrackPage would be a better solution for SPAs, as they seem to be much lighter weight. Hope this is helpful.

OK. So, I "solved" the problem in reverse in my previous post. I have to play fewer games with squirreling values away, and get better metrics, if I do this:
In my .cshtml base, bookend the page with a startTrackPage in <head>, and a stopTrackPage in $(document).ready:
const appInsights = new Microsoft.ApplicationInsights.ApplicationInsights({
        config: {
            instrumentationKey<EMAIL_ADDRESS>            autoTrackPageVisitTime: true
        }
        });

if (appInsights) {
            appInsights.loadAppInsights();
            appInsights.setAuthenticatedUserContext('@userGuid', '@bpGuid');
            appInsights.properties.context.telemetryTrace.traceID = '@Context.GetRequestTelemetry().Context.Operation.Id';
            appInsights.startTrackPage('/');
        }

and
$(document).ready(function () {
            ...
            if (appInsights) { appInsights.stopTrackPage('/', window.location); }
        });

In my Ajax helper, before submitting the request:
    let reqName = url.replace(baseUrl, "").split('?')[0];
    let trackAsPageView = appInsights && (ajaxOptions.$divToUpdateSelector.attr("id") === "myPageViewTargetId");
    let pageViewRefTime = new Date().getTime();

    if (trackAsPageView) {
        let aiProps = appInsights.properties;

        // This is needed to let each page view have independent transaction details in the
        // end-to-end transaction view, but it's troublesome for things that come later
        // like tracking the PREVIOUS page visit time
        **aiProps.context.telemetryTrace.traceID = getNewApplicationInsightsId();
        aiProps.context.telemetryTrace.name = reqName;**

        appInsights.startTrackPage(reqName);
    }

And in my request complete handler:
            if (trackAsPageView) {
                let pageViewDuration = new Date().getTime() - pageViewRefTime;
                let memory = window && window.performance && window.performance['memory']
                    ? window.performance['memory']
                    : { totalJSHeapSize: "0", usedJSHeapSize: "0" };
                let _1mb = 1024.00 * 1024.00;

                appInsights.stopTrackPage(reqName, url,
                    {
                        duration: pageViewDuration,
                        totalJS: (memory.totalJSHeapSize / _1mb).toLocaleString('en-US') + "MB",
                        usedJS: (memory.usedJSHeapSize / _1mb).toLocaleString('en-US') + "MB"
                    });

So, I get good page loads/durations out of App Insights now! I also get PageVisitTime metrics recorded!
Here's the problem, though: Changing the traceID, as the docs suggest for SPAs, works brilliantly for separating details of different page views. And when you stop tracking a view, the SDK logs a metric for the PREVIOUS page visit time - great - the problem is the previous view was loaded on a different traceID, and you've changed it for the current view, so it gets logged as the operation ID of the PageVisitTime metric. In other words, the metric will be correct based on request name and URL, but if you try to correlate it based on operationID, it will align with the SUBSEQUENT page view, because you changed it.
Or am I doing this wrong, also? It's hard to tell. I'm not using Angular or React plugins, because we're not using a formal SPA framework.
I like this SDK, but it feels a little broken for SPAs at the present time. I'll have to go back and basically implement my own PageVisitTime tracker in order to get metrics that line up.
And, once again, I apologize for the wall of text. I think, though, that it's important to see the thought process of ordinary developers like myself, because documentation and examples live in multiple pages (GitHub, as well as docs.microsoft.com), they're not always current, and folks like me wind up having to reverse-engineer the documentation from the code.

And, I'm back. I think this solves the problem "correctly" for my use case. No wall of text. Just the changes. I am hijacking appInsights.properties to track my own "previous view".
View : disable page visit tracking, and start tracking the page:
const appInsights = new Microsoft.ApplicationInsights.ApplicationInsights({
        config: {
            instrumentationKey<EMAIL_ADDRESS>            autoTrackPageVisitTime: false
        }
        });

        if (appInsights) {
            appInsights.loadAppInsights();
            appInsights.properties.context.telemetryTrace.traceID = '@Context.GetRequestTelemetry().Context.Operation.Id';
            appInsights.startTrackPage('/');
        }

View $(document).ready:
    $(document).ready(function () {
        if (appInsights) {
            // track the current view
            appInsights.properties.spaPageVisitRef = {
                refTime: new Date().getTime(),
                uri: window.location,
                name: '/'
            };
            appInsights.stopTrackPage('/', window.location);
        }
    });

Ajax request setup:
    let reqName = url.replace(baseUrl, "").split('?')[0];
    let trackAsPageView = appInsights && (ajaxOptions.$divToUpdateSelector.attr("id") === "MyViewTarget");
    let pageViewRefTime = new Date().getTime();

    // If we're loading the main content view that represents a "page"
    if (trackAsPageView) {
        let aiProps = appInsights.properties;

        // If another request reference is stored on the App Insights properties object,
        // then that is the previous page view for PageVisitTime tracking purposes.
        // Calculate the timespan, and track it as the PageVisitTime metric
        if (aiProps.spaPageVisitRef) {
            let properties = { PageName: aiProps.spaPageVisitRef.name, PageUrl: aiProps.spaPageVisitRef.uri };
            let pageVisitTime = new Date().getTime() - aiProps.spaPageVisitRef.refTime;

            appInsights.trackMetric({
                name: "PageVisitTime",
                average: pageVisitTime,
                max: pageVisitTime,
                min: pageVisitTime,
                sampleCount: 1
            }, properties);
        }

        // Change the trace ID, so that this page view, and all requests that fall within it,
        // are tracked independently of other page views. This more or less simulates
        // the page lifecycle on which the SDK operates.
        aiProps.context.telemetryTrace.traceID = getNewApplicationInsightsId();
        aiProps.context.telemetryTrace.name = reqName;

        // Start tracking the new "page".
        appInsights.startTrackPage(reqName);
    }

Ajax request complete:
           if (trackAsPageView) {
                // Calculate tracking properties
                let pageViewDuration = new Date().getTime() - pageViewRefTime;
                let memory = window && window.performance && window.performance['memory']
                    ? window.performance['memory']
                    : { totalJSHeapSize: "0", usedJSHeapSize: "0" };
                let _1mb = 1024.00 * 1024.00;

                // Record telemetry for the completed request
                appInsights.stopTrackPage(reqName, url,
                    {
                        duration: pageViewDuration,
                        totalJS: (memory.totalJSHeapSize / _1mb).toLocaleString('en-US') + "MB",
                        usedJS: (memory.usedJSHeapSize / _1mb).toLocaleString('en-US') + "MB"
                    });

                // Start PageVisitTime tracking for this view
                appInsights.properties.spaPageVisitRef = {
                    refTime: new Date().getTime(),
                    uri: url,
                    name: reqName
                };
            }

We were having issues with pageview where its "eventTime" in appinsights was actually the end of the event, while in dotnet core appinsights the eventTime seems to be the start of the event.. I tested this by setting the startTime of a dependency telemetry manually with the correct value with a matching pageView request.

Here B is the correct time, since it aligns with the backend services timestamps, while A is the incorrect pageview time which is perfectly off by its duration.
Managed to fix this by adding a TelemetryInitializer and overriding the .startTime property to follow the AJAX codepath shown as resolved for this issue https://github.com/microsoft/ApplicationInsights-JS/issues/628.
appInsights.addTelemetryInitializer(TelemetryInitializer);
const setStartTimeToCorrectValue = (envelope: ITelemetryItem, duration: number) => {
  const newStartTime = new Date((new Date(envelope.time) as any) - duration);
  envelope.baseData.startTime = newStartTime;
  envelope.time = newStartTime.toISOString();
};

export default (envelope: ITelemetryItem) => {
  if (envelope.baseType === 'RemoteDependencyData' && envelope.baseData.duration) {
    const duration = envelope.baseData.duration;
    setStartTimeToCorrectValue(envelope, duration);
  } else if (envelope.baseType === 'PageviewData' && envelope.data.duration) {
    const duration = envelope.data.duration;
    setStartTimeToCorrectValue(envelope, duration);
  }
};

Note that I also overrode dependency values, since the auto tracking of FETCH calls were also wrong for us. They would start in appinsights a duration time after what our downstream services reported.

@mRowlinson27 VERY nice find... I've created a new issue for this specific bug.

I am having the same problem with latest library @microsoft/applicationinsights-web 2.7.2.
I am calling startTrackPage at 2021-12-13T03:46:27.423Z and calling stopTrackPage at 2021-12-13T03:46:40.206Z.
The loading time of the page is 12.6 seconds.
In my telemetry initializer I am logging envelope.time and it's set to 2021-12-13T03:46:40.206Z.
I tried to manually override the time in my telemetry initializer to 2021-12-13T03:46:27.423Z, however when I inspect the network packets, the envelope is sent with time set to 2021-12-13T03:46:40.207Z (which is also reported as the event time when I check on azure portal).

This causes the page load to show up after the rest of the requests:

Another round of testing with:
duration: "12205"
startTrackPage: 2021-12-13T04:43:02.194Z
stopTrackPage: 2021-12-13T04:43:14.399Z
set envelope.time to 2021-12-13T04:42:49.989Z in the telemetry initializer (to check if deducting the duration from startTrackPage shows up correctly)
debugger was paused in this testing for about 1 min
in network tab I can see the pageview sent with envelope.time 2021-12-13T04:43:59.542Z
in azure portal the event shows up as 2021-12-13T04:43:59.542Z

This confirms envelope.time is being set to whenever the telemetry info is sent to azure, and that's why it's always wrong.
For me fix mentioned above doesn't work as the time value get overwritten in the sdk before being sent.

Hi @h0wXD, looking at your workaround and the actual code for the stopTrackPage they appear to be doing the same thing...
Where the stopTrackPage calls the stop action on the _pageTiming which calls the defined action that is calling sendPageViewInternal() which is what the trackPageView (eventually calls) with the duration properties set...
And in both cases the envelope.time is the time of the event -- am I missing something subtle here? As apart from the breakpoint in the debugger (which would have the same effect -- depending on where you stop) I'm thinking the start/stop PageView with no telemetryInitializer adjustment should be doing the same thing???

RE: @h0wXD and for others

I am calling startTrackPage at 2021-12-13T03:46:27.423Z and calling stopTrackPage at 2021-12-13T03:46:40.206Z. The loading time of the page is 12.8 seconds. In my telemetry initializer I am logging envelope.time and it's set to 2021-12-13T03:46:40.206Z. I tried to manually override the time in my telemetry initializer to 2021-12-13T03:46:27.423Z, however when I inspect the network packets, the envelope is sent with time set to 2021-12-13T03:46:40.207Z (which is also reported as the event time when I check on azure portal).

if you try setting envelop.time in a telemetry initializer it will get overwritten. but in the telemetry initializer you can set startTime on the baseData and this will update the envelop.time
sdk.addTelemetryInitializer(function (envelope) {
      if (envelope.baseType == "PageviewData") {
          envelope.time = new Date(performance.timeOrigin).toISOString();
      }
  });

Thanks @pl-jcarter that is a REALLY good catch!!! -- BUT!!!
We recently (Monday Feb 7, 2022) identified a change with the backed "Portal" that "stopped" adjusting the envelope.time for the PageView (to "fix" the reported time) by the duration (effectively subtracting the duration from the envelope.time) based on the version of the SDK being used.

Basically, in version 2.5.7 of the JS SDK we introduced the startTime for the envelope and applied a change for dependencies (ajax requests only) to internally adjust the envelope.time so if present this would be used.
This new startTime does actually work for any event, but it only automatically populated for dependencies.
And on the Azure Monitor Portal a corresponding change was also applied so that for events reported with < v2.5.7 the adjust continued to occur but all > versions stopped the adjust. However, the portal changed its logic that so that "ALL" events (including the PageView event) stopped this internal adjustment and not just "RemoteDependencies", which caused the change where the PageView started being reported (on the portal) as occurring "late".

So a couple of things are now in progress.

The portal will be reverting back to the previous behavior (except for "RemoteDependency" events), so the PageView will automatically adjust based on the "duration", so once this change goes live all PageView events will be reported correctly again
-- EXCEPT, if you apply the startTime "fix" above, in which case the reported PageView will be further "reduced" by the duration. Which means the only solution for those how are using the telemetryInitializer "fix" will need to undo the "fix".
In a future release (not yet defined) of the SDK, we WILL internally automatically start populating the startTime to the PageView events (indirectly causing the "fix" and "issue"), BUT this will be synchronized with the Portal so rather than internally adjusting based on version 2.5.7 it will use whatever the new version of the SDK that includes that change (at least this is the current plan).
The reason for no timeframe is that once the Portal reverts it's behavior there will be no issue from the Portal perspective again.

Hello everyone, I'm using version: 2.8.1 in a spa written with angular 13.3.0.
Using the configuration:

enableAutoRouteTracking: true. I got the same behavior where I always received at Load time: 0ms.

To get around the problem, i disabled the enableAutoRouteTracking and started using the function: startTrackPage and stopTrackPage.
this.router.events
      .subscribe((event) => {

        switch (true) {
          case event instanceof NavigationStart:
            const converted = (event as NavigationStart);
            this.appInsights.startTrackPage(converted.url);
            this.appInsights.context.telemetryTrace.name = converted.url;
            break;
          case event instanceof NavigationEnd:
          case event instanceof NavigationCancel:
          case event instanceof NavigationError:

            const error = (event as NavigationEnd | NavigationCancel | NavigationError);
            this.appInsights.stopTrackPage(error.url);
            this.appInsights.flush();
            break;
        }
     });

however I noticed a behavior where the operation_name was coming invalid, it always came the name of the first page accessed, example below:

As the overview screen aggregates by the property (operation_Name) the display was wrong, to work around the problem in addition to calling the function: startTrackPage I also needed to set the name of the operation:
this.appInsights.context.telemetryTrace.name = converted.url;
That way, I managed to get around it and apparently everything is working perfectly.

But I have a question, shouldn't the name of the operation_Name property take into account the value of the name that we set in the method call (startTrackPage)?

The stopTrackPage takes 2 arguments that are key
_self.stopTrackPage = (name?: string, url?: string, properties?: { [key: string]: string }, measurement?: { [key: string]: number }) => {
The name is really the document.title and also used as a key for the internal tracking of the timings.
So I think if you pass the url as the 2nd argument (as well) this should work
https://github.com/microsoft/ApplicationInsights-JS/blob/master/extensions/applicationinsights-analytics-js/src/JavaScriptSDK/AnalyticsPlugin.ts#L376-L396

@MSNev I tried using the second parameter and it didn't work either, the only way I found was as in the example above.

@Karlie-777 can you please investigate this a bit more as I believe the start / stop should work in this case and please provide any other context you have for tracking page view times for SPA's

@renandegrandi If I am understanding it correctly, you are mentioning that operation_Name is not auto-adjusted for SPA. Our applicationInsights evaluates operation_name based on location path which does not work for SPA. Therefore you have to manuallly adjust it. But you can also adjust it by using telemetryInitializer https://github.com/microsoft/ApplicationInsights-JS#:~:text=Session information-,Telemetry Initializers,-Telemetry initializers are

@renandegrandi The name parameter in startTrackPage can be customized and can be any string. Therefore, if we assume the operation_name is the name in startTrackPage , it might cause some issues since  operation_name is used for finding all the telemetry items for a group of operations.


Fixed (curriculum): Removed comments, declaration and return statement

Comments, declaration of arr and return statement were removed from the solution template at line 115.
Checklist:

[x] I have read freeCodeCamp's contribution guidelines.
[x] My pull request has a descriptive title (not a vague title like Update index.md)
[x] My pull request targets the main branch of freeCodeCamp.
[x] I have tested these changes either locally on my machine, or GitPod.

Closes #48527

Hey @rahulsiloniya
This PR seems to make similar changes as the existing PR #1713. As such, we are going to close this as duplicate.
If you feel you have additional changes to expand upon this PR, please feel free to push your commits and request this PR be reopened.
Thanks again! 😊

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

This might sound newbie but, PR #1713 has a problem with a jQuery challenge. In the current issue they wanted to remove unnecessary code from the solution template to allow the learner to write their own code. How is this duplicate?

Hello @Sboonny
This might sound newbie but, PR #1713 was related to a jQuery challenge. In the current issue they have asked to remove unnecessary code from the solution template. How is that duplicate?


Allow text-2.0

https://hackage.haskell.org/package/text-2.0/changelog

yay UTF8

patched the latest versions on hackage


Question: Subquery

Sorry, but have you got an example on how to use that "Subquery" class?

Is there anything that you'd like to do with it?

I wanted to have a subquery in the FROM clause (derived table). I ended up achieving that by using DB::raw, but was wondering if it's possible to do that with eloquence.
Thanks!


Efficiently read almost million records by index

How to efficiently read almost million records stored in IndexedDB using Dexie by given index.
I am using below and it is taking forever to return records
this.ddb.version(1).stores({
elements: '[Element.DatasetId+Element.Id], Element.NodePath, Element.Label'
});
this.ddb.elements.where('Element.NodePath').anyOf(nodePathArray)   //nodePathArray contains array of strings to be searched in IndexedDB. Almost 3000 elements in it to be searched.

Avoid anyOf() when querying millions of rows as it needs to use IDBCursor which is slow. Prefer use the plain index operators equals, above, below, between and startsWith.
Prefer toArray() over each()

Your query would get better performance using something like the following:
Promise.all(
  nodePathArray.map(nodePath =>
    this.ddb.elements.where('Element.NodePath').equals(nodePath).toArray()));

Thanks your code seems to be working way faster now. But it is now returning everything in Arrays (each item) under one big array. How to return one single array with objects (elements) from indexed db only (with index matching give index)? Thanks again.

Use flat() on the result to get it into a single array.

Thanks David for help. Working good now. Thanks again.


lixify

Not sure if you think this is useful, but this PR adds support for lix, so you don't need a globally installed haxe/haxelib anymore.

Awesome! I'm all for simplifying the install process. Im not too familiar with lix - are there any implications if you've already got Haxe installed globally?
@01010111 @TheSpydog opinions?

Actually i don't know how lix resolves this. Maybe @back2dos or @kevinresol can answer?

I honestly don't know anything about lix! I'm open to it though

i think if you removed the lix command from the post install step in the package.json, i would be good to merge this in :) we can add a note into the readme that the user can install haxe with lix instead of manually.

Hm, i'm not sure this is enough, as npm i will already install lix (with a node_modules/.bin/haxe shim script) and that will get picked up during npm run build by haxe-loader i think. I'll do some more testing in the evening.

are there any implications if you've already got Haxe installed globally?

That is a question about how npm/yarn works. In general globally installed packages won't interfere with locally installed one. Because the way to invoke them are different.
Global: lix ...
Local: npx lix ... or yarn lix ...

But in a npm script, you can just call lix instead of npx lix, i just don't know which is prioritized. And the used haxe-loader webpack plugin works this way as well b/c i didn't do anything special and it was able to use my locally installed haxe (i don't have a global installed one).

But in a npm script, you can just call lix instead of npx lix, i just don't know which is prioritized. And the used haxe-loader webpack plugin works this way as well b/c i didn't do anything special and it was able to use my locally installed haxe (i don't have a global installed one).

I am not sure about that too. But I am sure there are plenty of node/npm/yarn documentations in the wild.

Whatever you do, please do not ever use alpha versions of lix, unless you have extremely good reasons to do so ;)
As for the question at hand: Both npm run / npx always add ./node_modules/.bin to the $PATH with highest priority, meaning anything found in there will shadow other commands. When you install lix in any project, you will find a haxe (and haxe.cmd for windows) there. Thus any npm script calling haxe will in fact call ./node_modules/.bin/haxe (+ .cmd on windows), regardless of any other haxe executables that may be in your system-wide $PATH.
As for lix download, I would definitely recommend having it executed after npm installation (perhaps via an additional script that can be invoked separately), as that's the part that fetches the haxe compiler and haxe libraries. Alternatively, you could run it before dev / build, because from what I see it's quite negligible.

Cool, thanks for the info.

Whatever you do, please do not ever use alpha versions of lix, unless you have extremely good reasons to do so ;)

Well, npm install --save-dev lix will currently install "^15.6.0-alpha.1"

Well, npm install --save-dev lix will currently install "^15.6.0-alpha.1"

Yeah, I didn't expect that behavior :(

One way to opt-in is

keep .haxerc
keep /haxe_libraries
revert the other stuff

then people can npm install lix && npx lix download to install haxe and all dependent libraries.

@sh-dave Im good with that 👍
If you make those updates and add a note in the readme that Ogmo supports lix, I think this PR would be good to merge.


Investigate replacement of assimp by  rapidobj lib

See analysis : https://aras-p.info/blog/2022/05/14/comparing-obj-parse-libraries/

the implementation of this task will require us to provide an abstraction layer for all importers such that we can easily interchange the lib we want to use whenever we desire.
I'm have an ongoing draft around it that I'll push pretty soon to unblock this task.


Brewery: Check wall lights.

Reallights are working. Static isn't. Possibly it need to be exported to blender to add vertex paint.

Issues fixed. Was wrong shader


HDDS-10321. Merge recent commits from master to HDDS-7593

What changes were proposed in this pull request?
Merge recent commits from master to HDDS-7593. Resolve code conflicts and make test green again.
Please describe your PR in detail:

Most of the changes are straightforward code conflicts. In some cases master branch enforced certain
RecoverLeaseResponse message, instead of removing response field, made it deprecated and move keyInfo to 2. Otherwise Maven enforcer will fail.
Forced TestOpenKeyCleanupService.testIgnoreExpiredRecoverhsyncKeys() to run first. Master branch made a change to initialize the mini cluster only once, thus there could be lingering keys in OM DB left over from other tests, and the assertion for number of keys in OM DB would fail if this test is not run first.

What is the link to the Apache JIRA
https://issues.apache.org/jira/browse/HDDS-10321
How was this patch tested?
Unit tests are all green.

cc: @ashishkumar50


Jest with SWC doesn't seem much faster than Jest with babel :(

So I've spent today experimenting with swapping out tsc for swc in our small typescript project (ejected create-react-app typescript/react), and if I'm honest I've been... a bit disappointed.
The project is moderately small so test times are not a huge deal yet, but anticipating it getting bigger, I was looking for an improvement on testing times, but after benchmarking (using yarn add jest-benchmark) test runs with swc-jest and the default babel config that comes with create react app, the speed seemed to be about the same.
Here is the results of the benchmarking our jest tests with swc:

And here is the same thing using our normal jest config:

As you can see; the improvement in the whole test run is about 0.25 seconds per run - nothing to write home about and certainly not worth swapping out a tried and tested part of our toolchain for. Now I appreciate that babel is likely not the only bottleneck in a jest run, but given all the impressive claims I've seen in various places about swc, is this really what I'd expect to see? Or have I configured something wrong. Swapping babel-loader out for swc-loader doesn't seem like a massive improvement in terms of build times either, though I've not yet found an easy way of benchmarking that. Below are the configs that I used to get swc working:
jestConfig transform block in package.json

.swcrc

swc cannot optimize the time used for running test. It just reduces time of transpiling.

@kdy1 That's a complete non answer to my question (if you actually read what I wrote, you'll see that I more or less accept that), so I'll restate it in the hope that someone will actually answer me:

Now I appreciate that babel is likely not the only bottleneck in a jest run, but given all the impressive claims I've seen in various places about swc, is this really what I'd expect to see? Or have I configured something wrong.

For testing, especially benchmarks, transpiling code is likely less than 1% of the time spent on the test, so optimising 1% of a process will lead to the results you are seeing. I don't know the internals of jest, but I suspect it doesn't even transpile on every run, so you are only get a one off improvement in startup.


feat(generator): embed the templates

With this change the templates are embedded into the generator code, so
go install sidekick will not need the templates to live in a
well-known directory.
It also opens the door for languages where the set of output files are
dynamic (e.g., Java or C++), will allow us to omit some files (e.g. Rust
when there are no services), and may allow us to change the processing
order.
Fixes #413

@coryan Could you rebase this? There seem to be extra changes from another PR here.


Auth to be made independent of argocd

Summary
What change you think needs making.
Motivation
Please give examples of your use case, e.g. when would you use this.
Proposal
How do you think this should be implemented?

Duplicate of #2330


#37 REST API - Add Keycloak authentication

Changes:

Configure Spring Security to use Keycloak as authorization server.
Modify docker-compose to use jboss Keycloak and adminer (for visualize database tables) images.
Modify application.yml and application-test.yml to use new env vars.
Modify BankAccountControllerSystemTest to use new Keycloak authentication.

@adrianliz, thanks for the contribution!


framework(engine): fix stale pong heartbeat causes ack time fallback

What problem does this PR solve?

Issue Number: close #5969
TODO

[ ] add unit test

What is changed and how it works?
When worker receives a stale heartbeat pong message from master, don't reset lastMasterAckedPingTime
Check List
Tests

Unit test
Integration test

Questions
Will it cause performance regression or break compatibility?
Do you need to update user documentation, design documentation or monitoring documentation?
Release note
None

/run-check-issue-triage-complete

/run-check-issue-triage-complete

Codecov Report

Merging #5972 (bd4ffec) into master (070e459) will increase coverage by 0.1049%.
The diff coverage is 58.5820%.

Flag
Coverage Δ

cdc
62.3780% <53.5714%> (+0.4385%)
:arrow_up:

engine
62.5119% <58.1196%> (+0.0869%)
:arrow_up:

Flags with carried forward coverage won't be shown. Click here to find out more.
@@               Coverage Diff                @@
##             master      #5972        +/-   ##
================================================
+ Coverage   57.1666%   57.2716%   +0.1049%
================================================
  Files           686        678         -8
  Lines         80923      80078       -845
================================================
- Hits          46261      45862       -399
+ Misses        30368      29950       -418
+ Partials       4294       4266        -28


document citation does not include author name even if author is associated with a document

testing notes

citation block at the bottom of content pages should know include author names in lastname, first format
person snippet in wagtail now requires last name and first name as separate fields; check that existing names were split properly, edit one, and create a new one
edit pages to test that names display correctly with one author, two authors, three authors

dev notes

[x] convert person snippet to split out last name and first name
[x] migration should split existing names on the last space
[x] modify citation to include author names if present; first author is last name first, all others are in normal order
[x] make sure existing templates display name properly (possibly add a property for name that displays the content previously in one field)
[x] check that author/editor are included in html  metadata

as per 12/4 mtg discussion this can wait until next milestone.

YES, person snippets are now divided into "last name," "first name," chunks: I checked all the pre-existing ones: Kotin, Joshua; Budak, Nick; Koeser, Rebecca Sutton. I added my name and Ian's name. I edited Joshua to Josh, then back.
YES, the citation looks right. I added this citation with two people to the "Logbooks" page:

I added three people, it looked right. I added one, it looked good too!


Make version compatible with mvn and osgi

Add a custom ArtifactVersion with features:

supporting version fragment starting with 0: 1.02.4
add new plugin property to generate version with 0 frament. -DpreserverZero

Hi @dantran
I saw on maven site pages that you are main contact for this plugin.
Do you have comments for this PR ?
Is there any chance to be included into master branch ?
Thx in advance
Christophe

Hi
@khmarbaise I saw you are last commiter
Is there a way to get this PR reviewed and merged ?
Thx a lot
Christophe


add support for us5.datadoghq.com

what

Allows usage of us5.datadoghq.com as a datadog site

/test all

/test all


[WIP] Indexing exploration + embedbase >0.7.5 sync

TLDR

sync<EMAIL_ADDRESS>added dev settings
different indexing (exploration)
option to ask embedbase to store the data (I want to query my index outside obsidian)

This is a bit overloaded PR, sorry about that, I think the indexing part should be improved before merge (and also we need to deploy https://github.com/different-ai/embedbase-ava with<EMAIL_ADDRESS>and switch to Supabase back-end at once)

I'm using this branch for my vault and using https://embedbase-ava-dev-c6txy76x2q-uc.a.run.app as Embedbase instance that is using Supabase
The indexing is trying to split markdown by headers and we embed a JSON directly
e.g.
note path: "Dogs.md"
note content: "# Dogs\n\nDogs are nice, why?\n- They evolved to be best human's friend!"
{"content": "# Dogs\n\nDogs are nice, why?\n- They evolved to be best human's friend!", "path": "Dogs.md"}
TODOs before merging

[ ] improve the indexing (use https://github.com/different-ai/embeddings-utils)

[ ] deal properly with large documents

[ ] deploy https://github.com/different-ai/embedbase-ava on production with Supabase & (ping everyone that they have to index their vault again OR implement a painful migration from Pinecone)

Trying this branch

build the code and throw main.js in your vault
use https://embedbase-ava-dev-c6txy76x2q-uc.a.run.app as embedbase api in settings

PS: of course Ava does not store user data (only vectors) by default (now and then), aligned with Obsidian philosophy

PS2: expect cold starts with embedbase instance (0 minimum instance)

Asking questions to your vault using Siri + GPT4 + https://github.com/different-ai/embedbase


After adding a certain number of tests you get an exception

I ran in to this issue while writing tests for my reducers. I tried to reproduce in as simple a way as possible in this test branch
What happens is: if there are more than 16 tests in my spec file I get the following exception:
ERROR: 'Unhandled Promise rejection:', 'Cannot create the component AppComponent as it was not imported into the testing module!', '; Zone:', 'ProxyZone', '; Task:', 'Promise.then', '; Value:', Error{}, 'Error: Cannot create the component AppComponent as it was not imported into the testing module!
    at TestBed.createComponent (http://localhost:9876/base/spec-bundle.js?274b278a2430fa736a07be440401dc19db37e718:13936:23)
    at Function.TestBed.createComponent (http://localhost:9876/base/spec-bundle.js?274b278a2430fa736a07be440401dc19db37e718:13763:33)
    at http://localhost:9876/base/spec-bundle.js?274b278a2430fa736a07be440401dc19db37e718:83501:41
    at ZoneDelegate.invoke (http://localhost:9876/base/spec-bundle.js?274b278a2430fa736a07be440401dc19db37e718:53551:26)
    at ProxyZoneSpec.onInvoke (http://localhost:9876/base/spec-bundle.js?274b278a2430fa736a07be440401dc19db37e718:53215:39)
    at ZoneDelegate.invoke (http://localhost:9876/base/spec-bundle.js?274b278a2430fa736a07be440401dc19db37e718:53550:32)
    at Zone.run (http://localhost:9876/base/spec-bundle.js?274b278a2430fa736a07be440401dc19db37e718:53433:43)
    at http://localhost:9876/base/spec-bundle.js?274b278a2430fa736a07be440401dc19db37e718:53821:57
    at ZoneDelegate.invokeTask (http://localhost:9876/base/spec-bundle.js?274b278a2430fa736a07be440401dc19db37e718:53584:35)
    at ProxyZoneSpec.onInvokeTask (http://localhost:9876/base/spec-bundle.js?274b278a2430fa736a07be440401dc19db37e718:53239:39)
    at ZoneDelegate.invokeTask (http://localhost:9876/base/spec-bundle.js?274b278a2430fa736a07be440401dc19db37e718:53583:40)
    at Zone.runTask (http://localhost:9876/base/spec-bundle.js?274b278a2430fa736a07be440401dc19db37e718:53473:47)
    at drainMicroTaskQueue (http://localhost:9876/base/spec-bundle.js?274b278a2430fa736a07be440401dc19db37e718:53720:35)'

The tests I added are trivial and don't use any part of angular, so they shouldn't need AppComponent for anything. If there are fewer tests, everything works fine.
This also happens when you spread the tests out over multiple files, as you can see in this commit
I think this is a bug, but there could also be something wrong with my approach, as my experience with testing angular apps is limited.

I try to adopt a different approach for app.component.spec as you see here and also with 23 tests it runs.

Yes, that seems to fix it for me as well


[Windows] Error loading Block definition: minecraft:air

Always get the following error on launch:
Error loading Block definition: minecraft:air
Failed to add Block from definition file, as it might be a duplicate or generated the same hash as an already existing Block.
Only option is 'Cancel' which just opens the same message again (can only close with Task Manager).
I performed Windows updates, updated Visual C++ Redistributable, updated Java, reinstalled Minecraft and tried on another Windows 10 machine (the Linux version did end up working though).

This means your definition files got messed up (duplicate definition for same type of block).
In most cases the reason is a very outdated version of Minutor or mixed use of different versions.
!!! Important: please read last sentence before deleting anything !!!
There are multiple ways to solve this:

go through the click hell and click cancel for all duplicated blocks, after that the self repair should have healed it
delete your broken definition files:
they are located in temporary user folder C:\Users\J-Cena\AppData\Local\seancode\Minutor
it is save to delete the complete folder Minutor or seancode

Could you please zip this folder before deleting. Then paste it here. This way I could try to debug the situation and improve self repair functionality.

Deleting the folder fixed the issue. Thanks a lot.
I also zipped it like you requested
seancode.zip
.

Yes, that is correct. I have previously used older versions.


Introduce Config Encryption

Do you think it will be possible to change "Version" and "MasterKey" in the config to "version" and "masterKey"?


Use schema to validate document.commit in knowledge is a 40 char hexadecimal SHA value

In the taxonomy repo, there is discussion about further validation of the document information in a knowledge contribution. One thing the schema can do is validate that the document.commit value is a 40 char hexadecimal SHA value.
See https://json-schema.org/understanding-json-schema/reference/string#regexp

We could required the commit value to always be 40 chars. This would be an issue for some existing knowledge documents.
Or we could allow it to be between 7 and 40 chars. This should validate any existing knowledge documents.

My latest thinking is that we do not want to do this detailed validation. I think at some point we will need to allow the knowledge markdown to live in the taxonomy repo alongside the qna.yaml. Then we will need a "special" commit value to indicate the knowledge is in the same commit as its peer qna.yaml.


fix: schedule output destruction on idle callback

Defer destruction of bars for the output to the next iteration of the event loop to avoid deleting objects referenced by currently executed code.
Should fix some of the crashes on output disconnect. Could potentially cause a different kind of race conditions, but I haven't found anything that may happen in practice.
Testing: I've been running this patch for a week and attempting to reproduce the crash. Seems good so far.
@baloo, can you please try the patch and test if it fixes the issues in your setup?
Fixes #1019

Deployed, I'll keep you posted! Thank you so much!

I haven't seen a single crash in 4 days. I guess that fixed it.

Nice, thanks a lot!


Fixed PageParameter comparision

When page parameters are set on HamburgerMenuItem, the menu was not getting selected on startup. After debugging found out that the == operator does not work on object type and therefore replaced with Equals.

Does this check for nulls?

Good Catch. The null issue is fixed now.


I need to step back as a maintainer

I've been neglecting my repsonsibilities to this project.
While I was happy to take it on, and help curate other contributors Python3 support into the codebase, I have to step back.
Apologies to anyone who is still using this. :(

Hi, @LegoStormtroopr , I offer me to be a main maintainer of this project if none one wants.  I am now collaborator and think, one of the most interested in this project.   I really wants that this project don't die and I think I could help.
I really interested in forward to new version of this beta state that have months with out new release, so maybe I if I convert in main maintainer i need pypi access to release a new beta 0.2b2.

Any news on this issue?

Hi, I am answering issues actively, and also making, reviewing, and merging PR.
I also repairing testrender tests, so I think is not dead but a lot of help is need it.

@LegoStormtroopr Is the project currently not maintained? What do you think about moving it to the py-pdf organization? https://github.com/py-pdf

@MartinThoma the project is being maintained by @luisza - I think this issue can be closed.

@MartinThoma  sorry the delay on answer, I think it's better if xhtml2pdf continue as separate organization, but if you want to incorporate as maintainer we can collaborate to improve xhtml2pdf.

I really don't want to become the maintainer of another project :sweat_smile: pypdf / PyPDF2 already take a lot of energy / time and I'm also writing flake8-simplify.
I'm very happy that you maintain xhtml2pdf  :-)


django and rest_framework conflict in packageIndexDepths

in order to index package django restframwork, its name and depth was configured;
then django.urls vanished from suggestion list...
Environment data

Language Server version: Pylance language server 2023.7.40 (pyright b917b7a5) starting
OS and version: macos 13.2.1
Python version: miniconda py311_23.5.2-0 & python 3.11.4

Code Snippet

{
    "python.analysis.packageIndexDepths": [
        {
            "name": "",
            "depth": 2,
            "includeAllSymbols": true
        }
        {
            "name": "django",
            "depth": 2,
            "includeAllSymbols": true
        },
        {
            "name": "rest_framework",
            "depth": 2,
            "includeAllSymbols": true
        }
    ]
}

fixed by installing stubs


Startup error

[00:43:58]: LOG =-=-=-=-=-=-=- Config file Verification -=-=-=-=-=-=-=
[00:43:58]: LOG Verifing config..
events.js:291
throw er; // Unhandled 'error' event
^
Error: ENOENT: no such file or directory, open 'src/modules/logging/logs/roll-2021.01.10.log'
Emitted 'error' event on WriteStream instance at:
at internal/fs/streams.js:361:12
at FSReqCallback.oncomplete (fs.js:156:23) {
errno: -2,
code: 'ENOENT',
syscall: 'open',
path: 'src/modules/logging/logs/roll-2021.01.10.log'
}
when i try to run the bot

just create the file in that directoy with the name it says. This is a rare bug out of my control sorry.

just create the file in that directoy with the name it says. This is a rare bug out of my control sorry.


Create simple coco-oriented demo for presentation server

Currently presentation server (including dino) is checked into the source tree, and there are some developer-oriented instructions, but we don't yet have any simple way of running and configuring dino - either a walk through, automated deployment, or a notebook.
The objective of this issue is to see if we can put this together for the 2.3 release. Enough to show dino working, be possible for anyone to take the code and simply get it working, even though work in progress
cc: @davidradl @grahamwallis

[ ] x

Fixed up the cert issue by reusing the ones we already created for the main UI - but converted to PEM format as needed by node.js code.
ie: (both run on the certs under existing UI)
For the server key

openssl pkcs12 -in keystore.p12 -info -passin pass:egeria -passout pass:egeria -out /tmp/server-pass.key -nocerts
openssl rsa -in /tmp/server-pass.key -out /tmp/server.key -passin pass:egeria

And the cert:

openssl pkcs12 -in truststore.p12 -out /tmp/server.cert -name tomcat -passout pass: -passin pass:egeria -nodes
edited to only retain the last Egeria cert - that is all we need

A cleaner update will be done when returning to #1403
Now when using chrome to launch the node based UI there is a 'proceed to localhost' option whilst previously chrome reported the certificate as completely invalid and disallowed bypass. Other browsers are moving here too

I will add another 'service' in the k8s (and compose) environments for our new 'presentation server' (node.js) app.
The environment will be set to
EGERIA_PRESENTATIONSERVER_SERVER_coco={"remoteServerName":"cocoView1","remoteURL":"https://lab-presentation:9443"}

or similar - the remote name will depend on the chart's release name. Our local nodejs presentation server will have a tenant 'coco'


Exported variables break setget methods that are "ready" dependent

Godot version: 3.1.6

OS/device including version: Solus Gnome 4.0

Issue description:

Alright, this sounds kinda complex, but the issue is simple, so I'll give context first.
I have this script:
extends Node

export (NodePath) var node_path = ".."
onready var node = get_node(node_path)

export (bool) var enalbed = true setget set_enabled

func set_enabled(enable):
    enabled = enable
    node.set_process(enabled)

The thing is, if I change the Enabled value in the inspector, the set_enabled method crashes when running the scene, because seems like the method is called before the _ready callback, or at least before the onready variable being set. So it reports that node is null, therefore it is unabled to call set_process.
I think that this could be fixed by changing the order in which setget methods are called, making them wait for idle process at least?
Steps to reproduce:

Create a Node
Add a child Node
In the child Node add a script
Copy paste the script above mentioned
In the inspector set Enabled to false
Test the scene

This has been the case since forever. The rule is, properties of a node are always set right after it is instanced. There is no simple way to defer this to the moment it is added to the tree because you could do something like var scene = packed_scene.instance(), but add_child() might be called later, or never. This applies to every node, scripted, or builtin. It means you can't implement the setter like you did, you have to check if the node is in tree first, and initialize in _ready as well.

So, basically, the rule is = don't use exported and setget for setter/getter methods that are instance dependant?

Wouldn't this work in that case?
func set_enabled(enable):
    enabled = enable
    yield(get_tree(), "idle_frame")
    node.set_process(enabled)

@KoBeWi get_tree() might return null since the node is not yet in the tree.

Ah, right. An ugly hack would be adding a Timer node and waiting for a very short timeout, but I doubt you'd need to do this THAT much.

@KoBeWi won't work either because Timer works using _process and _process is not called when the node is not in the tree ¯\_(ツ)_/¯

@KoBeWi get_tree() might return null since the node is not yet in the tree.

Exactly what happened.

func _ready():
    node.set_process(enabled)

won't work either because Timer works using _process and process is not called when the node is not in the tree ¯_(ツ)/¯

Yeah, but it will work AFTER it's added to tree. The idea is basically to wait until everything is set up. set_process is useless outside tree anyways.

func _ready():
    node.set_process(enabled)

This breaks the idea of the setter, since it is meant to keep both nodes in sync whenever one changed the other should change as well, not only when one is ready. I think that what I can do is to instead of setting this directly, connect a signal and emit this signal when this enabled setter is called.
Basically my script is:
func set_enabled(enable):
	.set_enabled(enable)

	if enable:
		emit_signal("started")
		platform_actor.velocity = Vector2.ZERO
	else:
		emit_signal("finished")

So in my specific case I think I can connect the started signal to the platform_actor.set_velocity method passing Vector2.ZERO as extra argument. But well, this is a very ad hoc solution if you asked me.

won't work either because Timer works using process and process is not called when the node is not in the tree ¯(ツ)/¯

Yeah, but it will work AFTER it's added to tree. The idea is basically to wait until everything is set up. set_process is useless outside tree anyways.
EDIT:
Or what @santouits wrote plus this:
var ready

func _ready():
    node.set_process(enabled)
    ready = true

func set_enabled(enable):
    enabled = enable
    if ready:
       node.set_process(enabled)

There is the is_inside_tree method, this fixed the problem by the way!
func set_enabled(enable):
	if not is_inside_tree():
		return

	if enable:
		emit_signal("started")
		platform_actor.velocity = Vector2.ZERO
	else:
		emit_signal("finished")

I usually do this in my scripts like so:
export var x = 5 setget set_x

func _ready():
  set_x(x)

func set_x(new_x):
  x = new_x
  if is_inside_tree():
    # do something, like:
    $sprite.frame = x

Note that #6491 will help remove a few lines of that boilerplate, even more if it is made to work with onready nicely.

For this I figured I should update such properties deferred most of the time:
extends Node

export (NodePath) var node_path = ".."
onready var node = get_node(node_path)

export (bool) var enabled = true setget set_enabled

func set_enabled(enable):
    enabled = enable
    call_deferred('_update_properties') # updated on idle (next) frame

func _update_properties():
    node.set_process(enabled)

The above mechanism may cause _update_properties called multiple times in a single frame. Here's more a sophisticated and optimized mechanism if you need to change properties that update often (picked this up from engine internals):

extends Node

export (NodePath) var node_path = ".."
onready var node = get_node(node_path)

export (bool) var enabled = true setget set_enabled

func set_enabled(enable):
    enabled = enable
   _queue_update()

func _update_properties():
    node.set_process(enabled)
    # might as well do more stuff
    _update_queued = false

func _queue_update():
    if not is_inside_tree():
        return
    if _update_queued:
        return

    _update_queued = true

    call_deferred("_update_properties")

What I always do is
if not is_inside_tree(): yield(self, 'ready')

This will delay the setters instead of returning and not setting anything at all.
Still I don't like typing it out every time.

Seems like this isn't a bug, just a general misunderstanding that is quite logical and the engine provides tools to achieve the desired behaviors quite simply.
I'll close it.

if not is_inside_tree(): yield(self, 'ready')

Warning: Doesn't work right in tool scripts, as 'ready' is... off.
I was just playing around with this in a tool script and it has a big flaw. The below script will highlight the issue:
tool
extends Control

onready var crect := $ColorRect2

export var crect_color :Color = Color.green  setget set_crect_color
func set_crect_color( value :Color ):
	crect_color = value
	print("pre check")
	print(get_signal_connection_list('ready'))
	if not is_inside_tree():  yield(self, 'ready')
	print("post check")
	print(get_signal_connection_list('ready'))
	crect.color = value

Put that on a Control node with a ColorRect child node and set the exported variable in the editor. Then when you edit/save the tool script you will see that the ready signal keeps getting more and more binds with "pre check" printing way more often than "post check".

Two simple workarounds: https://github.com/godotengine/godot-proposals/issues/325#issuecomment-845668412


Update Packages

Describe what problem your feature request solves
npm audit reports 26 vulnerabilities (7 low, 6 moderate, 11 high, 2 critical).
Describe the solution you'd like
Update the dependencies as necessary to remove known vulnerabilities.
Additional context
It might make sense to manually audit the package.json file and remove any unused dependencies and scripts while looking at this.

Yes, this is a good thing to do for sure. The main problem is the JointJS package - when I last tried updating to something like 3.x it was too big a breaking change for me ... and we want to swap this out for mxgraph anyway.
Other than JointJS I agree there are quite a few dependencies that need looking at.

Great to know, thanks for the info! There's some packages hanging around from what appears to be legacy code that can be removed that will reduce the threat landscape as well.  Even if we don't get it down to 0 vulnerabilities, I think it's still worth the effort.

There was a major rewrite to npm audit not too long ago.  Since the docker container is pointing to node version 14, I think it makes sense to use this version when conducting the audit.  We actually get different results and not just a different format with audit when using the LTS.  Node 14 is EOL in 2023, so we have a bit of time before this becomes an issue.
I'll likely make another issue involving the docker container and build process to solidify this so it's consistent.  Additionally, the future rewrite will resolve some of these issues and we may move to a different version of node by then.

As you have the package.json open, and at the risk of adding to your task, I liked your suggestion of splitting the shared package.json out to frontend and backend. Did you want to consider this for this issue, or should that be another issue?

I like that idea. This will involve some changes to the Dockerfile as well.  At the risk of scope creep, I'll likely update it to ensure it's not using the root user, remove apt lists, limit su use, etc etc.
I'm still going back and forth on my comment about Node versions.  I need to research how the npm dependency graph works between different versions of node/npm... It may make more sense to keep it on a newer version? Open to suggestions and discussion!

After exploring for a bit, I'll open separate issues for migrating the package.json for both back-end and front-end.  This will be a non-trivial task since the build process will need to be changed and updated quite a bit.

Updating Karma to the latest version would resolve many of these.  Where Karma is a dev dependency and not deployed, I am less concerned with this.  It is a breaking change and a non-trivial fix.
rework (rework-npm-cli) was last published 4 years ago and will likely be removed with #74
As mentioned above, jointjs is a common issue as well that will be addressed with v2.0
There are a handful of other dependencies from owasp-threat-drgaon-core that could be addressed in that repo.
Pug is another library at risk that hasn't had recent updates and will be addressed in the v2.0 rewrite when the front-end is rewritten.
There are no packages that we can update to reduce the number of vulnerabilities without significant rewrite, which is already planned.  I'll be closing this issue.
If anyone disagrees, please feel free to comment and/or reopen.


Implement the correct count in the ModDashboardLeftNavbar

Problem
Right now the left navbar is hardcoded at 0.

Success
It should show the correct number for each choice based on the data fetched.
Requirements

[ ] Get the data from the store and show the count

Implementation notes
Along with issue #508  a lot of this logic could be handled in the store. Then called in the components

@NabbeunNabi Has this ticket been started yet? Would you like some help with it?

@NabbeunNabi Has this ticket been started yet? Would you like some help with it?

I was going to let Tam pair with me or work on it. But I can implement it this week.


GetLabels has large response time.

When the endpoint /get-labels is hit it iterates over all the routes present in the config file. And checks for different labels.
This approach have O(no of routes ) time complexity. In case of production we will have to deal with lakhs of different routes. In such case it will take time in seconds to compute different labels.
I tried doing this with more no of routes:
I have calculated the time required between endpoint hit and response sent.
The results are:

It needs huge computation.
Takes more than 5 sec.

Approach to perform this in O(1) time:

We will store all the different labels in local-config.
Whenever new route is added we will cross check all the labels and add new label to local-config.
At the time of endpoint /get-label hits it will only return the labels struct. It will not iterate over all the routes again.

@Harkishen-Singh @aquibbaig @muskankhedia can I work on this?


Correct disabling of CatBoost SHAP

Description
Change condition of CatBoost SHAP disabling to version-based.

/intelci: run

/intelci: run


Rails 5 followable_type

Hi there
Firstly, just to say thanks for putting this gem together and taking the time to look at this.
I'm building something in Rails 5 and have come up against a slight problem. When selecting objects a user is following, the follower_type is coming up "user" but followable_type is coming up as "ApplicationRecord". I guess acts_as_followable is not working in the model.
Is there a quick fix for this?
Thanks again
Jimboqu

Can you retry with the latest version from the master branch? I think this fixes it.

Awesome, that did the trick. Many thanks for looking at it so quickly.

I think I spoke too soon. It seems to be a little temperamental. Sometimes it works, then it suddenly goes back to adding "ApplictionRecord" as Followable_type again.
Just so you know I added the initializers file with:
ActsAsFollower.custom_parent_classes = [CustomRecord]
Cheers
Jimboqu

I still see this problem in my projects. User inherits from ApplicationRecord (when it inherits from ActiveRecord::Base it just works fine.
ActiveAsFollowers::FollowerLib's parent_classes returns [ApplicationRecord(abstract), ActiveRecord::Base], and when check if User.superclass is within this array it return false!
While I don't know what's the problem with ApplicationRecord(abstract) and ApplicationRecord, adding ApplicationRecord explicitly in initializer does solve the problem:
ActsAsFollower.custom_parent_classes = [ ApplicationRecord ].

Is there a new release with this fix or do I have to use the master branch?


Add Drone CI configuration

I'm going to close this for now because we have some issues to work out with auth, and the builds are failing as well. We have a PR coming in for Travis soon, hopefully with Drone soon after.

Related in Drone: https://github.com/drone/drone/issues/1476

We also have a PR in for Drone plugin-based auth: https://github.com/drone/drone-exec/pull/28

Deleting this branch since we at least are waiting until Drone 0.5, which will have different auth mechanisms, and we use Travis for CI right now.


Added Martin Zibricky into list of codeowners

Description
Added Martin Zibricky into list of codeowners
Fixes #417
Type of change

Administration task

Testing steps
N/A

Codecov Report

Merging #420 (a18d5eb) into master (e2324d1) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #420   +/-   ##
=======================================
  Coverage   70.39%   70.39%
=======================================
  Files          12       12
  Lines         652      652
=======================================
  Hits          459      459
  Misses        189      189
  Partials        4        4

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 e2324d1...a18d5eb. Read the comment docs.


Adds SUSE to agent build

What does this PR do?
This adds SUSE to the release.
We have to wait on the relevant PR in the internal repo being merged before we can merge it.
Motivation
We gotta build for SUSE!

Waiting for the updated runner to be deployed, otherwise this would break the release pipeline.


Skip removeAllExcept if directory does not exist

Should fix https://github.com/openshift-knative/hack/actions/runs/10632390432/job/29475252858

/cc @pierDipi

/lgtm


railties: Remove unnecessary patches to other gems

It seems they are no longer needed.

/merge

Thanks!


Adding actions in Accordion's collapsed state.

Provide a general summary of the feature here
In TEAS we are using an element that is very similar to the accordion. I think it would be good if there was also an action available in the collapsed part of the accordion

🤔 Expected Behavior?
Please add the action buttons to the collapsed accordion line
😯 Current Behavior
Currently the collapsed line has only the title and +/- icons.
💁 Possible Solution
No response
🔦 Context
Please see the current design: https://www.figma.com/design/3GuQHINgeaBAtcJrRdfSEA/👑-TEAS-Master?node-id=5778-41294&t=5Mjl3h6J2EnVmEmp-4
💻 Examples
No response
🧢 Your Product/Team
TEAS

@marcin-siekaniec we don't think the example showed is an accordion but an expansion panel. Accordions are used to break up a lot of content (a chapter) into different paragraphs. In our opinion, the example you showed is an expansion panel, a stand-alone UI component that is used to show more complex information. We need to create a new component for this, when we send out the survey for patterns and components part 2 we will ask what the interests of other CFA's are for this component.


remove bpftool binaries and create a bpftool submodule

Currently we have 2 bpftool binaries in order to generate the tailored BTF files. Instead of having binaries in the repo, now that bpftool has a GitHub repository:
https://github.com/libbpf/bpftool
We can simply have that repository as a submodule and compile bpftool as part of the process of using it.

One downside to this, is that you need a full setup to be able to build bpftool everywhere you want to run btfhub.

Done by:
https://github.com/aquasecurity/btfhub/pull/95
https://github.com/aquasecurity/btfhub/pull/96
Unfortunately, with the mentioned downside. The bpftool compilation is agnostic to distro (depends on available -dev packages so it can be built).
Maybe I should create a docker container to compile both: bpftool and pahole statically, and then install the result binaries where we're running btfhub. This would give us a way to always have both updated whenever we want (oracle/suse/rhel/debian/ubuntu).


Removed Indent / Tab

Removed a tab that appeared to be causing a rendering error on the docs site. It was treating the section as code instead of a note.

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

Correction confirmed. Thanks.


⚠ Bofrost.fr has degraded performance

In 332cabd, Bofrost.fr (https://www.bofrost.fr) experienced degraded performance:

HTTP code: 200
Response time: 846 ms

Resolved: Bofrost.fr performance has improved in cefad35 after 19 minutes.


Add temporary url support for SpatieMediaLibraryImageColumn

This PR adds support for showing private images using a temporary url with the SpatieMediaLibraryImageColumn.

Thanks


option to generate a list of all urls of packages to download

I am in china.
It is very hard for me to download some packages.
I have to Ctrl-C when vcpkg hangs up while downloading,
and then copy the url from the console, paste it into another downloader which is configured with a proxy.
I hope vcpkg to add an option to generate all urls of packages that need to download while installing.

Or let 3rd downloader (like aria2) handle all download link?
BTW, you can use sed or other replacing tools to replace links to mirrors in China (I used vscode's tool and feel quite comfortable).

Hi @duyanning
Thanks for posting this issue.
This URL might help you some.
https://github.com/JackBoos/vcpkg/commits/mirror_zhCN
We're planning to add official mirror in the future.
The PR #12532 will also fix this kind of issues.


how to customize the style

[ ] I have verified there are no duplicate active or recent bugs, questions, or requests
[ ] I have verified that I am using the latest version of Material Dialogs.
[ ] I have given my issue a non-generic title.
[ ] I have read over the documentation (before asking questions on how to do something).

Include the following:

Material Dialogs version: 0.x.x.x
Device OS version: 7.0
Device Manufacturer: Huawei
Device Name: Nexus 6P

Also, please wrap Java with correct syntax highlighting.
Now I want to realize the dialog of circle cornor ,but ...

Reproduction Steps

Expected Result
Actual Result

You left pretty much the whole issue template blank and I don't really understand your description.
But any customization that's possible is listed in the tutorial.


ActiveRecord 3.2 doesn't have ConnectionAdapters::Column.value_to_date

The gem specifies that it works with ActiveRecord 3.2 and higher.  However, the above method only seems to be available from ActiveRecord 4.0.  So attributes of type date don't work.  I hope I am missing something, otherwise it may be a good idea to drop 3.2 support or use the string_to_date method when ActiveRecord 3.2 is in use.

Could you provide a bit more context around how you're seeing this error? Specifically the ActiveRecord version, Hstore Accessor version, the error you're seeing, and code that produces the error.
Also, could you provide a link to where the project specifies Rails 3.2 support? I see on RubyGems it specifies a dependency on ActiveSupport 3.2, but nothing about ActiveRecord 3.2.
There will be a new release soon that will either support ActiveRecord 4.0 and up, or possibly just ActiveRecord 4.2 and up.

There will be a new release soon that will either support ActiveRecord 4.0 and up, or possibly just ActiveRecord 4.2 and up.

:+1:

@lefty313, just released the new versions =)


Extract Emojis from heading IDs

Uses a long regex (a long |-list of single emojis from https://github.com/sweaver2112/Regex-combined-emojis).
In the current form, performs slightly worse than main.
https://snapshots.nextjournal.com/markdown/build/47a946e6d7613f122858ce6d6e2128bd645cc058/index.html#/notebooks/benchmarks.clj
vs main
https://snapshots.nextjournal.com/markdown/build/d5cf6f7849ec4322e1b5259f8fcc2fd61875e72f/index.html#/notebooks/benchmarks.clj

With only matching leading emojis seems to bring performance back to "normal".

I'm using the same regex that we also used in navbar. Should be fine now.


Update README - fix broken table, JS code blocks, trailing whitespace

Also incorporates some of the changes to README.md in https://github.com/firsttris/vscode-jest-runner/pull/282

i remove some deprecated information and added new CRA Instructions.
i noticted that the links to vsce and ovsx are now next to each other instead of blow each other, this was probably not intentionally.


VM generic partial instantiation isn't kicking in on default arguments

The code below should print
(int) => void
(int) => void

and does so on ddc with kernel and ddc without kernel.
Run on the VM with --preview-dart-2, it prints the following:
(int) => void
Unhandled exception:
type '(T) => void' is not a subtype of type '(int) => void' of 'f'
#0      new A (file:///Users/leafp/tmp/ddctest.dart)
#1      main (file:///Users/leafp/tmp/ddctest.dart:13:13)
#2      _startIsolate.<anonymous closure> (dart:isolate/runtime/libisolate_patch.dart:279:19)
#3      _RawReceivePortImpl._handleMessage (dart:isolate/runtime/libisolate_patch.dart:165:12)

typedef void Foo<T>(T x);

void foo<T>(T x) {}

class A<T> {
  Foo<T> f;
  A({this.f = foo});
}

main() {
  Foo<int> f = foo;
  print(f.runtimeType);
  print(new A<int>().f.runtimeType);
}

Jens, I believe you implemented this functionality in the constant evaluator. Can you investigate?

On reflection, I'm wrong about what should be the correct behavior above.  The original code should have been rejected, see: https://github.com/dart-lang/sdk/issues/32415 .
I'll leave this as a VM bug in case you want to make the error message/failure mode more robust, but feel free to close it otherwise.


@microsoft.graph.conflictBehavior in driveitem copy

Category

[ ] Question
[ ] Documentation issue
[x] Bug

Expected or Desired Behavior
Copying a driveitem allows for defining @microsoft.graph.conflictBehavior to handle conflicts, as per design according to issue #759
This should also be documented.
Observed Behavior
Conflicts cause 409 Conflict response despite @microsoft.graph.conflictBehavior.
{
  "error": {
    "code": "nameAlreadyExists",
    "message": "The specified item name already exists.",
    "innerError": {
      "request-id": "{requestId}",
      "date": "{date}"
    }
  }
}

Steps to Reproduce
POST https://graph.microsoft.com/v1.0/users/{username}/drive/items/{itemId}/copy

{
  "parentReference": {
    "driveId": "{driveId}",
    "id": "{parentItemId}"
  },
  "name": "foo",
<EMAIL_ADDRESS>"rename"
}

^ Making this request twice will cause 409 Conflict nameAlreadyExists on the second try.

I'm trying this aswell using the Graph API and it always returns nameAlreadyExists regardless of the behaviorConflict specified
{
  "parentReference": {
    "driveId": "{driveId}",
    "id": "{parentItemId}"
  },
  "name": "test",
<EMAIL_ADDRESS>"rename"
}

How to work around this ??

any updates?

come on guys?

Adding @microsoft.graph.conflictBehavior=rename to query string parameters did work for me

as @marcogiannetta said, you have to add to the query params.
Example:
<EMAIL_ADDRESS>If you're using the C# Graph SDK you have to send a query option on the request.
List<QueryOption> options = new List<QueryOption>
{
    new<EMAIL_ADDRESS>"rename")
};

Source: https://stackoverflow.com/a/44991860/14457092

Well docs should be updated then

It looks like the workaround above only works for OneDrive for Business... OneDrive Personal still seems to ignore it.

It looks like the workaround above only works for OneDrive for Business... OneDrive Personal still seems to ignore it.

Adding @microsoft.graph.conflictBehavior to query string doesn't work either:
<EMAIL_ADDRESS>

Does not work with the personal accounts. 😒

As part of a repository clean up effort we are closing older issues. If this issue remains, please: open a new issue, reference this issue, and provide any additional details that may help in resolution. Thank you for your understanding as we work to improve our responsiveness.


Fix double-transaction in README

tryRunMigrationsWithEditUpdate already runs inside of a transaction

It actually probably makes sense to remove all withTransactions from this repo since there are many ways one might want to initiate a transaction and manage that. As made clear by this fix, IO is entirely insufficient as a monad to make sure transactions are done right. But if your migration tool forces you to run transactions this way then there's no way to customize them or even add additional steps after the migration in the same transaction.

You might be able to get away with withSavepoint but I'm not sure about that either.


Set-CsUserCallForwardingSettings applicable for Teams?

Hello,
may I get clarification on whether these settings also apply to Teams?

They are available in the Client and the Admin Center, and I would assume this to be the PowerShell CmdLet to do this, yet it only calls out Skype For Business 2019 as the Scope.
Thank you,
David

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

ID: 51c11092-ff62-1597-16b2-0ee351825b7e
Version Independent ID: 38e763e5-1ed2-a9e5-8eca-32daf8dd3050
Content: Set-CsUserCallForwardingSettings (SkypeForBusiness)
Content Source: skype/skype-ps/skype/Set-CsUserCallForwardingSettings.md
Service: skypeforbusiness-powershell
GitHub Login: @hirenshah1
Microsoft Alias: hirshah

Hello @DEberhardt
I couldn't find the cmdlet on Teams PowerShell...
Let me know if I understood you well

Me neither. Question is, is it missing or not?
I would think it is :)

Hello @DEberhardt It isn't a cmdlet from the Teams PowerShell, it is only applicable for Skype For Business on-premises.
Thanks

To the Tenant feedback provider system, I go. 🛩  #please-close


added Brighton College

@ndangol171 Thank you for your patience while waiting for a review and processing your request. Pull request merged.