msal-browser lacking compatibility with IdentityServer4

Please follow the issue template below. Failure to do so will result in a delay in answering your question.
Library

[ ]<EMAIL_ADDRESS>or<EMAIL_ADDRESS>[X]<EMAIL_ADDRESS>[ ]<EMAIL_ADDRESS>[ ]<EMAIL_ADDRESS>[ ]<EMAIL_ADDRESS>
Description
Here is my feeedback on msal-browser, after spending some weeks working on authorization and authentication for my company's products.
Since the Microsoft docs state that Azure AD 2.0 is compliant with with OAUTH2 and OIDC, compatibility with these standards should be a supported scenario. In my opinion, supporting these standards should be a goal for the AzureAD and MSAL teams.
This would greatly increase trust in the products. It would convey that we are all going in the same direction, and converging to a standard as much as possible.
IdentityServer4 is considered by the .NET community as the go to solution for many OAUTH OIDC scenarios. And it is considered as an accurate implementation of the protocols.
Let me explain my scenario
We run multiple IdentityServer4 instances and one AzureAD v2.0 instance. We build many java script (react, mobile) apps that login and authorize to these services by using the code authorization + PKCE flow.  From these applications, depending on the server, we use either msal-browser (for azure) or oidc-client (for Identity Server)
I would like to use only one client to connect to both of these services. My preference would be to use msal-browser.js, mainly because it is specialized to this particular authorization flow but also because it has a cleaner interface. Unfortunately, as of the time of writing, msal-browser.js cannot correctly work with IdentityServer4. So I have to use both clients, depending on which auth server I am using in the app.
I for one love the simplicity of use with the new msal-browser client (works great with Azure AD 2.0) and I am disappointed to see that there are some very small obstacles in the way of using it with IdentityServer4.
I also know that this is a huge market (standalone javascript browser client applications) - that need to authenticate, authorize users safely with code_authorization + PKCE. (check weekly downloads for packages like angular-oauth2-oidc, oidc-client)
Isues I found with msal-browser
From what I found, the reasons that msal-browser.js cannot connect to IdentityServer4 are small implementation choices, not pertaining to the main functionality, cryptography, etc.
I have spent many hours trying to get msal-browser to work with IdentityServer4 and after digging in the code a bit, I gave up. Some issues I found:

msal-browser.js does not support a basic url (no path) for the authorization server, one that is missing the tenant part that is specific to Azure AD 2.0. If I set my authority url to something like www.myidentityauthority.com it will fail ("url_parse_error", it does not work without a tenant in the path. if I set my authority url to something like www.myidentityauthority.com/authpath it passes that check, but this requires routing hacks on the IdentityServer4 server - which we are not going to pursue)
DEFAULT_AUTH_ENDPOINT_PATH(oauth2/v2.0/authorize?) and DEFAULT_TOKEN_ENDPOINT_PATH(oauth2/v2.0/token?) are non standard path artifacts - but the authorizationEndpoint() method concatenates these to the authority url, thus forcing you tu use a certain url path, and there is no way to configure this. again, this requires routing hacks on the server

I hope I have provided some information useful for improving the msal-browser client.
Unfortunately I am somewhat of a javascript noob, so I would not feel comfortable working on a PR for these, but I would be willing to test them out if someone would implement them.

@hamiltonha @DarylThayil @jasonnutter @jmprieur

Hi @adriannasui . Thanks for your feedback, we'll look into this and get back to you if we need more information.

Similar to #1824.


feat: notify the player when the game is ready

Codecov Report

Merging #31 into master will decrease coverage by 0.29%.
The diff coverage is 50%.

@@            Coverage Diff            @@
##           master      #31     +/-   ##
=========================================
- Coverage   70.56%   70.26%   -0.3%
=========================================
  Files          66       66
  Lines         744      750      +6
  Branches       47       47
=========================================
+ Hits          525      527      +2
- Misses        200      204      +4
  Partials       19       19

Impacted Files
Coverage Δ

...c/app/games/game-details/game-details.component.ts
60.52% <50%> (-1.98%)
:arrow_down:

src/app/core/io-client.service.ts
25.86% <0%> (-1.73%)
:arrow_down:

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 05c8dc4...58ae355. Read the comment docs.


identifier React Could not resolve name

I am getting the above error. Any ideas how to resolve?

Adding the following to the top of any component file removes the error...
import * as React from 'react';

Did you install with yarn?

Yeh I would of. I deleted my node_modules folder and re-ran npm install and still no luck.

This is the same problem as the first one, I'm gonna try and sit down for a bit today and solve this :/
The way the plugin works is that it runs the npm install so if you have npm 5 or above it will create as package lock with just that - - '
So I need to figure out a way to install how the user writes so if installs with yarn instead of running npm I flow-bin I have to do it with yarn
The fix is remove the package.lock and run npm i
Sorry about the trouble :/

Even after removing my lock and node_modules files/folders and reinstalling I am getting the same error :(

Same problem here.

Did anyone find a solution to this?


Bug: Text shifts right on upper levels

Bug Description
When you create new line thats on lower level, the upper level moves right. This does not happen in edit mode. I noticed after last Obsidian update. This issue does not occur with other themes.
To Reproduce
Create notes on different levels
Expected behavior
Notes should appear the same in both edit mode and preview, without the text being shifted right.
Relevant Screenshot(s)
Preview:

Edit mode:

Obsidian Version
1.1.15
Installer Version
1.1.15
Font Size
20
Which editor are you using?

[X] New Editor
[ ] Legacy Editor

In which mode(s) does the problem occur? (if applicable)

[X] Reading View (Preview)
[ ] Editing View - Source Mode
[ ] Editing View - Live Preview

Which operating system?

[ ] Windows
[ ] macOS
[X] Linux
[ ] Android
[ ] iOS

Checklist

[X] I updated to the latest version of the theme (Settings → Appearance → Themes - Manage → Update).
[X] I made sure that the issue is related to this theme by checking that the problem does not occur with the default theme.
[X] If the bug occured after updating the theme, I read the last couple Releases to make sure the bug is not an intentional change.

Additional Context
I only found one somewhat similar issue (https://github.com/jdanielmourao/obsidian-sanctum/issues/159) which had been caused by new Obsidian version, that renamed some classes. This may also be the case here.

The issue appears to be this:
.markdown-rendered li:not(.task-list-item) .list-collapse-indicator {
  margin-left: -40px; /* This should be -80px */
}

I'm going to fork and fix this.


Some 'valid' options have no effect.

Hello!
I've been using this package to record telemetry to honeycomb, and ran into a bit of an issue. The options type for the honeycomb SDK gets defined here and is essentially an extension of the existing NodeSDKConfiguration interface. That interface includes a property sampler which accepts a custom sampler. Going from the types exposed by honeycomb-opentelemetry-node this appears like it should also be accepted by this package, however if we pass a custom sampler it's never used because that property is overwritten here.
This led me to spend a few minutes confused about why my custom sampler didn't work. I've made a fork to fix this for my use case. Ideally I'd like to see this functionality in this repo - or alternatively for the types to be updated to make sampler an invalid option.
:)

Thanks for catching this issue, @Jwhiles. Hmm. Our goal with the OTel distributions is to provide an Easy Button for getting started with OpenTelemetry. At a point where an application developer has their own custom sampler—often a Dark Art of its own—they might have a better experience using the upstream OpenTelemetry SDK and select which components of the Honeycomb library to mix in.
For the foreseeable future, we'll probably opt for your second suggestion: update the function and type to not accept a sampler.

@Jwhiles As an alternative to maintaining a fork, you could use the upstream OpenTelemetry NodeSDK instance and configure the Honeycomb-specific things within it directly.
For example:
const honeycombHeaders = new Metadata();
honeycombHeaders.set("x-honeycomb-team", process.env.HONEYCOMB_API_KEY);

const honeycombExporter = new OTLPTraceExporter({
  url: process.env.HONEYCOMB_API_ENDPOINT,
  metadata: honeycombHeaders,
});

const sdk: NodeSDK = new NodeSDK({
  serviceName: yourServiceName,
  sampler: yourSampler,
  traceExporter: honeycombExporter,
  instrumentations: [
    // …
  ],
});

Keep in mind that if your sampler sends spans at a ratio other than 1:1, something ought to add to the sampled spans—the spans that are sent—an attribute named sample_rate with an integer value set for how many not-sampled (i.e. not sent) spans the one that was sent represents.

@Jwhiles after some discussion we've decided to support overwriting any of the NodeSDK properties with user provided properties, this should allow you to supply your own custom sampler. The support for this is out in v0.5.0.


witness output in weird location

Generating witness: /home/msimacek/git/symbiotic/install/witness.graphml

I'd expect the witness somewhere in current working directory or in /tmp, not in symbiotics install dir.

Fixed by #116 .


[Feature Request] Support for path parameters being embedded into the path directly

💡 Idea
For example, a format like api/v{verison}/ is not supported. It would be great if in-line parameters could be supported. I'd treat this as low-priority since it probably is a rarer case and falls outside most swagger conventions.
Design Notes
No response

Hello @evanweissms,
This has been merged with #758.  Closing the issue.
Thanks,
Marina


Revert "Add ssl flag to compilation parameters"

Reverts fox0430/nicoru#14
Temporarily remove -d: ssl

Link #15

This was not the cause


Add the ability to delete an issue

Thanks for this awesome project, guys!
My team and I are currently looking to migrate from JIRA to Gitlab.  Having this enables me to easily delete the issues I create, so I can perfect the migration script, which I hope to eventually put out as a public repo soon.

Thanks!

Glad to help!


selectedEmojiCategoryTintColor not working in SwiftUI

Thanks for this excellent library! 🙏🏽 It's really impressive and saves a lot of time. 🙌🏽
I'm using it with SwiftUI. Unfortunately, the selectedEmojiCategoryTintColor property doesn't seem to work.
I used it as described in the documentation:
Button(selectedEmoji) {
    showEmojiSelector.toggle()
}.emojiPicker(
    isPresented: $showEmojiSelector,
    selectedEmoji: $selectedEmoji,
    selectedEmojiCategoryTintColor: .systemRed
)

But the selected category icon keeps its blue tint:

XCode: 14.3.1
iOS deployment target: 14.0
iOS simulator: iPhone 14 Pro, iOS 16.4

Thanks so much for the words about the library and for finding this bug!
Fixed it and published a new version 1.2.3. Let me know if it helped🙏


Feature request: minwidth?

I find this lacking especially for lnumfunc, which resizes the status column based on how many digits the biggest line number is and can cause inconsistency between different files. It would be nice if we could manually set a minimum width for columns, wouldn't it?

'statuscolumn' follows the 'numberwidth' option in neovim currently. Does that help?
Less granular than being able to set it for each segment of course, which might also be desirable.

Are you saying that setting numberwidth, to say 3, should stop the column from shrinking if there are less than 3 characters? If so, it doesn't seem to be working for me. Regardless of whether numberwidth is set or not, the column width is shrinking as soon as the line number digits go down.

'numberwidth' applies to the entire status column, not just the line numbers that may or may not be contained within it. If you set numberwidth to 3 the statuscolumn with always be at least 3 wide.
Setting it to a number wide enough to contain your entire statuscolumn + the largest line number you don't want to change the width might be sufficient to get the behavior you want.

Aah, I see. Yep, this seems to have fixed this. Closing this issue, but being able to manually constrain the minimum width might still prove to be useful.


[WIP] Upgrade the postgres from 13 to 16

Summary
Related issue(s)
Fixes # https://issues.redhat.com/browse/ACM-16095
Tests

[ ] Unit/function tests have been added and incorporated into make unit-tests.
[ ] Integration tests have been added and incorporated into make integration-test.
[ ] E2E tests have been added and incorporated into make e2e-test-all.
[x] List other manual tests you have done.

❯ oc get pods
NAME                                                READY   STATUS    RESTARTS   AGE
kafka-entity-operator-7c8fd8d98f-wb7wd              2/2     Running   0          21m
kafka-kafka-0                                       1/1     Running   0          21m
multicluster-global-hub-grafana-849bcd8756-mw9sd    2/2     Running   0          15m
multicluster-global-hub-manager-698594c9-7wf7s      1/1     Running   0          15m
multicluster-global-hub-operator-7fd45749b7-dzbck   1/1     Running   0          18m
multicluster-global-hub-postgres-0                  2/2     Running   0          22m
multicluster-global-hub-postgresql-0                2/2     Running   0          15m
strimzi-cluster-operator-v0.43.0-76f57fb5b7-d79fj   1/1     Running   0          22m
❯ oc get secret storage-config
NAME             TYPE     DATA   AGE
storage-config   Opaque   2      16m
❯ kubectl exec -it multicluster-global-hub-postgres-0 -n multicluster-global-hub -- psql -U postgres -d hoh -c "SELECT * FROM status.leaf_hub_heartbeats;"

Defaulted container "multicluster-global-hub-postgres" out of: multicluster-global-hub-postgres, prometheus-postgres-exporter
 leaf_hub_name |       last_timestamp       | status
---------------+----------------------------+--------
 hub           | 2024-12-09 06:29:24.234394 | active
(1 row)

The status of the global hub operand
❯ oc get mgh multiclusterglobalhub -n multicluster-global-hub
NAME                    STATUS    AGE
multiclusterglobalhub   Running   103m
❯ oc get mgh multiclusterglobalhub -n multicluster-global-hub -oyaml
apiVersion: operator.open-cluster-management.io/v1alpha4
kind: MulticlusterGlobalHub
metadata:
  annotations:
    kubectl.kubernetes.io/last-applied-configuration: |
      {"apiVersion":"operator.open-cluster-management.io/v1alpha4","kind":"MulticlusterGlobalHub","metadata":{"annotations":{},"name":"multiclusterglobalhub","namespace":"multicluster-global-hub"},"spec":{"availabilityConfig":"Basic","dataLayer":{"postgres":{"retention":"18m"}}}}
  creationTimestamp: "2024-12-09T06:22:18Z"
  finalizers:
  - global-hub.open-cluster-management.io/resource-cleanup
  generation: 1
  name: multiclusterglobalhub
  namespace: multicluster-global-hub
  resourceVersion: "13956322"
  uid: 0d9f63a5-9264-4865-86a9-050b40116077
spec:
  availabilityConfig: Basic
  dataLayer:
    kafka:
      topics:
        specTopic: gh-spec
        statusTopic: gh-status.*
    postgres:
      retention: 18m
  enableMetrics: true
status:
  components:
    kafka:
      kind: TransportConnection
      lastTransitionTime: "2024-12-09T08:03:47Z"
      message: Transport connection has set
      name: kafka
      reason: TransportConnectionSet
      status: "True"
      type: Available
    multicluster-global-hub-grafana:
      kind: Deployment
      lastTransitionTime: "2024-12-09T06:29:30Z"
      message: Component multicluster-global-hub-grafana has been deployed
      name: multicluster-global-hub-grafana
      reason: MinimumReplicasAvailable
      status: "True"
      type: Available
    multicluster-global-hub-manager:
      kind: Deployment
      lastTransitionTime: "2024-12-09T08:03:49Z"
      message: Component multicluster-global-hub-manager has been deployed
      name: multicluster-global-hub-manager
      reason: MinimumReplicasAvailable
      status: "True"
      type: Available
    multicluster-global-hub-postgres:
      kind: StatefulSet
      lastTransitionTime: "2024-12-09T06:22:32Z"
      message: Component multicluster-global-hub-postgres has been deployed
      name: multicluster-global-hub-postgres
      reason: MinimumReplicasAvailable
      status: "True"
      type: Available
    multicluster-global-hub-postgresql:
      kind: StatefulSet
      lastTransitionTime: "2024-12-09T08:03:47Z"
      message: Component multicluster-global-hub-postgresql has been deployed
      name: multicluster-global-hub-postgresql
      reason: MinimumReplicasAvailable
      status: "True"
      type: Available

/test test-e2e

/cc @clyang82 @ldpliu @hchenxa @yahliu

@clyang82
Yes, It seems all works fine

/lgtm


1046 - LeetCode Problem Title

Description of the Problem
You may copy that from LeetCode
We have a collection of stones, each stone has a positive integer weight.
Each turn, we choose the two heaviest stones and smash them together.  Suppose the stones have weights x and y with x <= y.  The result of this smash is:
If x == y, both stones are totally destroyed;
If x != y, the stone of weight x is totally destroyed, and the stone of weight y has new weight y-x.
At the end, there is at most 1 stone left.  Return the weight of this stone (or 0 if there are no stones left.)
Code
Code

Link To The LeetCode Problem
https://leetcode.com/problems/last-stone-weight/

Hi, can I work on this one ?

Please assign this to me


🎗 Reduce GPU Nodes (after user Hackathon)

This is reminder to rollback the manual changes to analytical-platform-production ASG [eks-prod20240821165852296500000001-bec8baf0-3f3d-1e84-4893-a3010e1a3b54](https://eu-west-1.console.aws.amazon.com/ec2/home?region=eu-west-1#AutoScalingGroupDetails:id=eks-prod20240821165852296500000001-bec8baf0-3f3d-1e84-4893-a3010e1a3b54;view=details)

Changed desired and min nodes to 0, 0 as per the code. Desired is now 4, moving to in review to check tomorrow.

All as expected.


Add support for partial arcs

Based on https://github.com/bgryszko/react-native-circular-progress/pull/50 and https://github.com/bgryszko/react-native-circular-progress/pull/38
and fixes

It's better PR to be separated. I have merge it for testing purpose only


Fix statistics value in SyncClientPool/AsyncClientPool have concurren…

…cy problem
Description
see https://github.com/apache/iotdb/issues/2661
Content1 ...
Content2 ...
Content3 ...

This PR has:

[ ] been self-reviewed.

[ ] concurrent read
[ ] concurrent write
[ ] concurrent read and write

[ ] added documentation for new or modified features or behaviors.
[ ] added Javadocs for most classes and all non-trivial methods.
[ ] added or updated version, license, or notice information
[ ] added comments explaining the "why" and the intent of the code wherever would not be obvious
for an unfamiliar reader.
[ ] added unit tests or modified existing tests to cover new code paths, ensuring the threshold
for code coverage.
[ ] added integration tests.
[ ] been tested in a test IoTDB cluster.

Key changed/added classes (or packages if there are too many classes) in this PR

@LebronAl Yes, we can just use nodeClientNumMap.computeIfPresent(node, (n, oldValue) -> oldValue + 1) to solve the atomic update problem in map.  nice advice~


Enabled casting DynamicDictionaryValue to primitives when it is missing a value + to nullable primitives

Fixes #1918

:heart:


Performance & Accuracy issues w/ channel drop zones

###Expected Behavior
I would expect the drop areas to follow the mouse closely when dragging a value onto a channel, and to have the selected channel predictably mirror the position of the mouse.
###Actual Behavior
Channel selection is inconsistent, drop target lags behind mouse, and chart takes a time to update after dropping.

###Steps to reproduce behavior

Select "Symbol" mark
Drop Jobs "count" property onto Y axis
Drag "year" property over X axis
Move property around; see that the triggered drop zone is inconsistent & laggy

Forgot to note, I am seeing this problem in the lyra2 branch


feat(swa 253) display email error messages

The type of this PR is: TYPE
SWA-253 error message is shown for invalid email address formats

This PR resolves []
Description
PR Checklist (tick all before merging)

[x] I have included screenshots or videos to illustrate my changes, or I have not changed anything that impacts the UI.
[x] I have tested my changes on iOS and Android.
[x] I have added tests/stories for my changes, or my changes don't require testing/stories, or I have included a link to a separate Jira ticket covering the tests.
[x] I have added a feature flag, or my changes don't require a feature flag. (How do I add one?)
[x] I have documented any follow-up work that this PR will require, or it does not require any.
[x] I have added an app state migration, or my changes do not require one. (What are migrations?)
[x] I have added a changelog entry below or my changes do not require one.

To the reviewers 👀

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

Changelog updates
Changelog updates

ⓘ 'User-facing' changes will be published as release notes.

Cross-platform user-facing changes

Rename modal title - patrinoua

iOS user-facing changes

Android user-facing changes

Dev changes

This PR contains the following changes:

Cross-platform user-facing changes (Rename modal title - patrinoua)

  Generated by :no_entry_sign: dangerJS against 921b8e490015ffebc35bad4c8fe8b47e77453296


fix build status badge in readme

wrong branch, that was never updated when we changed over

so should I change to main/4?


support semantic-diff

initial: diff over "all_subnets" analysis type

** under construction - do not disturb/comment yet**
Three stage:

Compute each of the connectivity maps separately
Compute the difference
Print the difference

After a meeting with Adi and Ziv:

Computing the diff between CloudConfigs that will yield the correct diff analysis results is far too complicated. The diff will be computed on the analysis result.
Two diffs will be computed, one in each direction.
A diff should include the following information:

The source of the diff: missing connection or missing subnet/vsi
The type of the diff, given that relevant endpoints exists in both configurations:
* missing connection
* changed connection

High level flow:

Compute the relevant connectivity analysis for each of the configurations, call it A and B
Compute A/B and B/A
Print  A/B and B/A

Comments:
The result of 2 should be a struct based on the existing connectivity analysis struct
The printing and grouping should be based on these existing functionalities
Most of the effort here should be spent in writing the required functionality for 2
Next step:
Define the extended structs and functionality

PR #203 pr #206 along with adding command line support and end to end test will close this PR

follow up issues:
https://github.com/np-guard/vpc-network-config-analyzer/issues/199
https://github.com/np-guard/vpc-network-config-analyzer/issues/209
https://github.com/np-guard/vpc-network-config-analyzer/issues/210
And:
https://github.com/np-guard/vpc-network-config-analyzer/issues/211

solved by #203 #206 #220 #223
follow ups: issues #209 #210 #228


Extended messages

Ta plugin, code plugin, and url handler can now send extended messages without issues.

what does this do

basically added message options "Ta plugin, code plugin, and url handler" so they can send messages over 2000 characters


Bug: Total Test Count per Sender is Wrong

Problem statement
Report: 709db410-5325-4508-8c49-dbbac4c12427 is an example.  On reportstream.cdc.gov, select CA-DPH and Daily data.  This report id was created on 3/26/22 2:15a.  The count for Facility: JRS Laboratory is 9.  The actual count is 11.
Things know
Acceptance criteria

Investigate how this issue is occurring.  Contact @rhood23699
Total test shown per Facility matches the count of the Facility's  HL7 messages in the batch HL7 file.

To do

[ ] ??

@MauriceReeves-usds @rhood23699 Is this still something we need to take care of?


Add support for mouse-over/hovering

kHover in embedder.h suggests support for hovering.
https://github.com/flutter/engine/blob/4b01d795feec3ba8231a397a4ec2759954d8216e/shell/platform/embedder/embedder.h#L288

Implemented by https://github.com/go-flutter-desktop/go-flutter/commit/1e9492e0dd657de1324760799603856bc179a2ef
An examples is available in the examples repo. https://github.com/go-flutter-desktop/examples/tree/master/pointer_demo


Extra autocomplete popups appearing in Chrome

second layer with label "designated"over combo-box for bicycles (eg when using barrier=bollard tag), see:

Chrome creates a list of recent entries on top of iD's list, so something is needed here to override Google Chrome

I can agree, it doesn't happened using Firefox. For the movie/screenshot sequence i used Chromium.

Related: #5818

It looks like inputs without an id attribute don't get autofilled like this, so I removed them for these inputs. Let us know if this issue reappears anywhere!

I just checked barrier=bollard and bicycles. The "designated" doesn't appears anymore.
Seems solved.
:-)
Thank you


Better service account outputs in project module

This change rationalizes the way robot and default service accounts are exposed in the project module's outputs:

all service accounts are exposed via a single service_accounts output
the general/legacy service robot is exposed in service_accounts.cloud_services
per-service robots are exposed in service_accounts.robots, eg service_accounts.robots.container-engine
default service accounts are exposed in service_accounts.default, eg service_accounts.default.compute

Adding extra robot service accounts is done via the local.service_accounts_robot_services variable in the service_accounts.tf file which has been added in this PR.

@drebes given that you're OOO for a while I'm merging this. :) Feel free to bug me about it of course when you come back.


[WIP] Break docs into smaller modules

Not ready to be merged

@kumare3 what do you think?

@kumare3 what do you think?


Call super.onMeasure() before custom CalendarView logic

This change appears to have fixed https://github.com/kizitonwose/CalendarView/issues/69

This change appears to have fixed #69

The fix mentioned in #69 works for me. The fix on your fork, however, does not.

@mcezat If you run the sample project using this setup, you can see that examples 3 and 5 are broken. This is because if autoSize is true(and it is by default), the CalendarView needs the View holders to size themselves first so it can then take the size of the visible view holder. So calling super.onMeasure earlier breaks this as the calendar sizes itself first before the view holders.

Bah - that is unfortunate. At first glance it looked like nothing was broken after my change but looking more closely, you're right. Let me know investigate a little more and see what can be done.


An error 'Server failed to authenticate the request' occurs when renaming a blob under one SAS attached ADLS Gen2 storage account

Storage Explorer Version: 1.16.0
Build Number: 20201124.2
Branch: main
Platform/OS: Windows 10/ Linux Ubuntu 16.04/ MacOS Catalina
Architecture: ia32/x64
Regression From:  Not a regression
Steps to Reproduce

Attach one ADLS Gen2 storage account via SAS -> Expand the attached storage account -> Blob Containers.
Create one blob container -> Upload one blob -> Try to rename the blob with a valid name.
Check whether the blob is renamed successfully or not.

Expected Experience
The blob is renamed successfully.
Actual Experience

Failed to rename the blob.
Show an error 'Server failed to authenticate the request'.

Error details:
"name": "Error",   "message": "Server failed to authenticate the request. Please refer to the information in the www-authenticate header.\nRequestId:a1e47a80-901f-0054-3e3a-c29595000000\nTime:2020-11-24T08:16:57.7400670Z",
Additional Context

This issue reproduces when creating a new folder under one SAS attached ADLS Gen2 storage account.
This issue reproduces when moving files under one SAS attached ADLS Gen2 storage account.

There is no way to use account SAS to authenticate this operation. When we enable attaching with account SAS in 1.18.0, this action will be disabled.

Verified this issue on build 20210129.3. The 'Rename & Move' actions are disabled. So close this issue.

Verified this issue on build 20210129.3. The 'Rename & Move' actions are disabled. So close this issue.


⚠ Bofrost.de has degraded performance

In 4ea56a5, Bofrost.de (https://www.bofrost.de) experienced degraded performance:

HTTP code: 200
Response time: 1141 ms

Resolved: Bofrost.de performance has improved in 29e84e5.


Rework url_launcher API

The url_launcher API has been added to piecemeal over time, and at this point is kind of a mess. Major issues:

People pass invalid URLs since it takes a String rather than a Uri; what happens to them is highly platform-specific.
There are separate iOS-specific and Android-specific options for whether to use an in-app web view or launch the browser:

It's likely that people will want the same behavior most of the time, making them awkward to use.
The default behavior for the two is different, and in fact the iOS flag has three modes, not two, since it has special handling of null, making it extremely confusing.
This doesn't scale to other platforms (all desktop platforms could have in-app pop-up windows or overlay views, for instance)

There's handling of iOS overlay brightness, which when it was added had to be done in the native plugin implementation code, but has since moved entirely into Dart, so doesn't need to be in the plugin at all since someone could easily write that wrapper themselves.

I think it's time to do a breaking change to the plugin that completely overhauls the API. My current proposal is https://github.com/stuartmorgan/plugins/blob/url-launcher-uri/packages/url_launcher/url_launcher/lib/url_launcher.dart, but I'll gather feedback and potentially iterated before moving forward. (Once I've settled on an API I'll do a change to the platform interface and the implementations first, so it's not shoehorning the new API into the old platform interface API.)

A couple of things:

The change you proposed looks perfectly backwards compatible to me, so no need to do a breaking change at all, people will migrate to the new methods.
When in web, many of the parameters don't make sense, and are especially confusing to users (for example: headers). Is this a good opportunity to have different APIs depending on the platform (THAT would be a really breaking change! :P)

My hope was that moving the in-app-specific settings into their own class world make it clearer that they are all only applicable to one specific mode.
We certainly could instead split the modes into a couple of methods. The main reason I didn't is that default uses both on some platforms. But it would make it very clear that only in-app accepts those parameters.

But it would make it very clear that only in-app accepts those parameters.

@stuartmorgan we've been discussing for a while having/allowing different APIs per platform, and I thought this was an example small enough to put it to the test.
(Admittedly the plugin is used by many people, and it might cause more breakage than good!)

It would be interesting to see what an API designed just for web looks like to see what overlap there is.

It would be interesting to see what an API desgined just for web looks like.

I think the web version of this would be to expand on the Link widget, so people get normal links, and then window.open, which is probably the "programmatic" way of opening new tabs (and popups), which the current version of the plugin doesn't treat differently (I guess it'd be similar to opening in a webview: new tab, in the browser: popup window? but that idiom from mobile doesn't translate to web too well in any case.)
One last comment, can: class WebConfiguration become class WebViewConfiguration? That way there's no confusion between Web (as a platform) and WebView (as the native API that lets you "turn off Javascript", but only on native!)

Hi ! Would it make sense to use the url_launch api for an authentication scenario?

Actually.. I have no idea how to even close a URL and there doesn't seem to be much documentation !

@Gene-Dana if you take a look at google sign in, that's how it's implemented (opens a popup with window.open, does things, and checks when the popup closes, either with a successful auth, or because the user canceled).
However, the google sign in flow is written with javascript; the url_launcher for web doesn't have that much control over the window that is being opened, nor returns a reference to it so it can be closed later.

@ditman I greatly appreciate your response and definitely these are things that I just learned !
This tutorial just helped me understand how to do exactly this!
https://itnext.io/flutter-web-twitch-oauth2-authentication-flow-implementation-77d239c72be5
@stuartmorgan The url_launcher implements the same dart:html package as this tutorial and in it, it handles redirecting. Would it be within the scope of reworking the url_launcher api?

@Gene-Dana Sorry, I don't understand what you're asking. I don't see how that link relates to this issue at all.

@stuartmorgan I think that answers the question of whether or not this is within the scope of reworking the url_launcher api! I appreciate your patience !

Can url_launcher uses Singleton design approach (instead of global method)?
Other official plugins, e.g. share (migrate to share_plus) and others, have adapted it a long time ago.
Code example from share_plus

Note to when I come back to this: based on discussion https://github.com/flutter/plugins/pull/4365 it appears that we won't be able to actually get rid of the string-based API, because there is at least one known example now of a URL that isn't valid  per RFC 3986 (which is what Uri uses), but would work otherwise (e.g., I tested NSURL at it allows it; either the earlier RFCs it uses are less strict, or its validation is less strict).

Here's some information about the "Legacy rdp URI scheme":
https://docs.microsoft.com/en-us/windows-server/remote/remote-desktop-services/clients/remote-desktop-uri#legacy-rdp-uri-scheme
Even the ms-rd: successor scheme doesn't look like a "valid" URL; at least in their example, it seems they're not url-encoding the values of its url parameter (see how they pass http://www.contoso.com instead of http%3A%2F%2Fwww.contoso.com). I wonder why they only url-encode %20...

Even the ms-rd: successor scheme doesn't look like a "valid" URL; at least in their example, it seems they're not url-encoding the values of its url parameter (see how they pass http://www.contoso.com instead of http%3A%2F%2Fwww.contoso.com).

No, that's fine. : and / aren't reserved characters in the query segment in the URI spec.

We should do #51471 (comment) as part of this updated API

I'm actually no longer sure we should change this; Android and iOS have moved toward a model where unless you specifically declare permission to query in your app metadata, you always get false. So false on those platforms can either mean "no" or "you're not allowed to ask", and we don't know which in the plugin. So the conflation of the states is inevitable, and web is no longer an outlier.

Once I've settled on an API I'll do a change to the platform interface and the implementations first, so it's not shoehorning the new API into the old platform interface API.

I changed my mind on this as well. Starting with the public API with an adapter to the old platform interface method means that people can use the new APIs without losing unendorsed implementations, and then all implementations—1P or unendorsed 3P—can follow up later with new implementations that potentially provide more utility (e.g., using LaunchMode if it's relevant to their platform).

Can url_launcher uses Singleton design approach (instead of global method)?
Other official plugins, e.g. share (migrate to share_plus) and others, have adapted it a long time ago. Code example from share_plus

I did not make this change, because what's shown there explicitly violates a Dart best-practice lint. An "object" containing nothing but static methods provides no benefit over free functions; anyone who wants namespacing of those functions can import ... as to assign a namespace, so it doesn't have to be simulated with class name.

https://github.com/flutter/plugins/pull/5310 has my proposal, which is a slightly modified version of the original version above.


Draft for Proxmox support

This makes use of https://github.com/coreos/afterburn/pull/1023 to set up any static networking from the initrd (for Ignition) and the hostname (early enough so that Ignition could overwrite it).
How to use
Needs a scripts PR with the afterburn PR, and a OEM partition setup that not only has an OEM ID in the config file but also sets up the kernel cmdline paramter which here is proxmoxve to stick to the afterburn name. Then we also need some changes in other repos to support it like the other providers for ssh keys and metadata attributes, and finally the scripts repo integration to generate OEM images.
TODO: rename flatcar-digitalocean-network.service to something more generic such as flatcar-afterburn-network.service
Testing done
TODO

[ ] Changelog entries added in the respective changelog/ directory (user-facing change, bug fix, security fix, update)
[ ] Inspected CI output for image differences: /boot and /usr size, packages, list files for any missing binaries, kernel modules, config files, kernel modules, etc.

I think we have to close this because this relies on cloud-init userdata and because Flatcar will run coreos-cloudinit anyway if it doesn't see Ignition user-data we would have it processed twice. For the network config that can be quite confusing because the afterburn network unit would only support a subset.

I think we have to close this because this relies on cloud-init userdata and because Flatcar will run coreos-cloudinit anyway if it doesn't see Ignition user-data we would have it processed twice. For the network config that can be quite confusing because the afterburn network unit would only support a subset.

Or not because the configdrive has two files, and afterburn could be used for network-config while we leave user-data to Ignition/coreos-cloudinit (through the configdrive unit trigger).


[Bug]: ReferenceError: process is not defined

System Info
  "devDependencies": {
    "@rspack/cli": "0.5.4",
    "@rspack/core": "0.5.4",
    "@rspack/plugin-react-refresh": "0.5.4",
    "@types/react": "^18.2.0",
    "@types/react-dom": "^18.2.0",
    "autoprefixer": "^10.1.0",
    "postcss": "^8.2.1",
    "postcss-loader": "^8.0.0",
    "react-refresh": "^0.14.0"
  },
  "dependencies": {
    "@rsbuild/core": "^0.4.15",
    "react": "^18.2.0",
    "react-dom": "^18.2.0"
  }

Details
rspack.config.js
const rspack = require('@rspack/core')
const refreshPlugin = require('@rspack/plugin-react-refresh')
const isDev = process.env.NODE_ENV === 'development'

/**
 * @type {import('@rspack/cli').Configuration}
 */
module.exports = {
  context: __dirname,
  entry: {
    main: './src/index.js',
  },
  devServer: {
    historyApiFallback: true,
    port: 3000,
  },
  resolve: {
    extensions: ['.js','.jsx','.ts','.tsx','.json']
  },
  module: {
    rules: [
      {
        test: /\.svg$/,
        type: 'asset',
      },
      {
        test: /\.scss$/,
        use: [
          {
            loader: 'postcss-loader',
            options: {
              postcssOptions: {
                plugins: {
                  tailwindcss: {},
                  autoprefixer: {},
                },
              },
            },
          },
        ],
        type: 'css',
      },
      {
        test: /\.(jsx?|tsx?)$/,
        use: [
          {
            loader: 'builtin:swc-loader',
            options: {
              sourceMap: true,
              jsc: {
                parser: {
                  syntax: 'typescript',
                  tsx: true,
                },
                transform: {
                  react: {
                    runtime: 'automatic',
                    development: isDev,
                    refresh: isDev,
                  },
                },
              },
              env: {
                targets: [
                  'chrome >= 87',
                  'edge >= 88',
                  'firefox >= 78',
                  'safari >= 14',
                ],
              },
            },
          },
        ],
      },
    ],
  },
  plugins: [
    new rspack.container.ModuleFederationPlugin({
      name: 'host',
      filename: 'remoteEntry.js',
      exposes: {},
      shared: {
        react: { eager: true },
        'react-dom': { eager: true },
        'react-router-dom': { eager: true },
      },
    }),
    new rspack.DefinePlugin({
      'process.env.NODE_ENV': JSON.stringify(process.env.NODE_ENV),
    }),
    new rspack.ProgressPlugin({}),
    new rspack.HtmlRspackPlugin({
      template: './src/index.html',
    }),
    isDev ? new refreshPlugin() : null,
  ].filter(Boolean),
}

.env
APP_NAME="DEV"

App.js
import React from "react";
import ReactDOM from "react-dom";

const App = () => (
  <>
    {process.env.APP_NAME}
  </>
);
ReactDOM.render(<App />, document.getElementById("app"));

Also I have different environment files like, .env.development, .env.uat-wu, .env.uat-eu, .env.prod-wu, .env.prod-eu
I want to load this different environement files based on the environment. I have update the script like this below
  "scripts": {
    "build": "NODE_ENV=production rspack build",
    "build:dev": "NODE_ENV=development rspack build",
    "build:uat-eu": "NODE_ENV=uat-eu rspack build",
    "build:uat-wu": "NODE_ENV=uat-wu rspack build",
    "build:start": "cd dist && rspack serve",
    "start": "NODE_ENV=development rspack serve",
    "start:uat-eu": "NODE_ENV=uat-eu rspack serve",
    "start:uat-wu": "NODE_ENV=uat-wu rspack serve"
  }

Also please let me know how to use this different environment files.
I am right now in migrating from webpack to rspack. But faced this problem and also need to know how to use this environment files.
below is my webpack file, I need to convert it into rspack
const Dotenv = require('dotenv-webpack');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const CssMinimizerPlugin = require('css-minimizer-webpack-plugin');
const TerserPlugin = require('terser-webpack-plugin');
const ModuleFederationPlugin = require('webpack/lib/container/ModuleFederationPlugin');
const ExternalTemplateRemotesPlugin = require('external-remotes-plugin');
const deps = require('../package.json').dependencies;
const env = process.env.NODE_ENV;

module.exports = {
  mode: 'development',
  output: {
    publicPath: 'http://localhost:3000/',
  },
  resolve: {
    extensions: ['.js', '.jsx'],
  },
  module: {
    rules: [
      {
        test: /\.(js|jsx)$/,
        exclude: /node_modules/,
        use: {
          loader: 'babel-loader',
          options: {
            presets: ['@babel/preset-react', '@babel/preset-env'],
            plugins: ['@babel/plugin-transform-runtime'],
          },
        },
      },
      {
        test: /\.(sass|css|scss)$/,
        use: ['style-loader', 'css-loader', 'postcss-loader', 'sass-loader'],
      },
      {
        test: /.(png|jpeg|gif|svg)$/,
        type: 'asset/resource',
      },
      {
        test: /.(ttf|woff|woff2)$/,
        type: 'asset/resource',
      },
    ],
  },
  devServer: {
    port: 3000,
    historyApiFallback: true,
    headers: {
      'Access-Control-Allow-Origin': '*',
      'Access-Control-Allow-Methods': 'GET, POST, PUT, DELETE, PATCH, OPTIONS',
      'Access-Control-Allow-Headers': 'X-Requested-With, content-type, Authorization',
    },
  },
  plugins: [
    new ModuleFederationPlugin({
      name: 'container',
      filename: 'remoteEntry.js',
      remotes: {
        // companyRanking: 'companyRanking@http://localhost:3002/remoteEntry.js',
        holdings: 'holdings@http://localhost:3003/remoteEntry.js',
      },
      exposes: {
        './useTokenManagementStore': './src/store/tokenManagement',
      },
      shared: {
        ...deps,
        react: { singleton: true, requiredVersion: deps.react },
        'react-dom': { singleton: true, requiredVersion: deps['react-dom'] },
        'ews-ui-library': { singleton: true, requiredVersion: deps['ews-ui-library'] },
      },
    }),
    new ExternalTemplateRemotesPlugin(),
    new HtmlWebpackPlugin({
      template: './public/index.html',
      favicon: './public/favicon.ico',
      manifest: './public/manifest.json',
    }),
    new Dotenv({
      path: `./.env.${env}`,
    }),
  ],
  optimization: {
    minimizer: [
      new CssMinimizerPlugin(),
      new TerserPlugin({
        terserOptions: {
          format: {
            comments: false,
          },
        },
        extractComments: false,
      }),
    ],
  },
};

Would be really appreciated will I be getting help in converting the above config file to rspack
Thanks in advance
Reproduce link
https://github.com/dhanushkumarsivaji/rspack-module-federation
Reproduce Steps
npm start

as before, you need dotenv-webpack to make the dotenv files work.
however, unfortunately, the dotenv-webpack will not work with rspack before https://github.com/mrsteele/dotenv-webpack/pull/501 is merged.
In the meantime, you can manually copy the content of this file as a plugin: https://github.com/mrsteele/dotenv-webpack/blob/f32653e03ac75ef087527992cc27f52a7d412efc/src/index.js
Alternatively, you may consider migrating from webpack to rsbuild. Rsbuild is an out-of-box builder built upon rspack and comes with a built-in dotenv loading feature. May you enjoy it.

I'm closing this issue as the dotenv-webpack has released a new version 8.1.0 with rspack support, which will meet what you wanna achieve. please give a try.


Add basic support for themes. Theme can be configured in config file …

…or directly in url_for()
Hi, as discussed earlier, here's the PR to include support for themes in flask-gentelella.
If no theme is provided in the config file then nothing changes, if a theme name is configured then all static files should exist in /static/theme_name/ (in all blueprints)
Or it's possible to include a theme for each individual url_for('static', filename='', theme='') request.
I've included a sample 'theme_dark' theme which is exactly the same as the original but with a dark default background.

The problem is that it doesn't scale: you're adding 4K duplicated files (2M lines of code - almost all the project in fact) per theme.
Travis complains because the files in the theme folder are not ignored by ESlint (that's what causes the build to fail).
Can you update url_for to default to the static folder in case a file is not found in the theme folder, such that if you add a theme that changes the background color, you'll need to add only that one file to the theme folder ?
Thanks

Pull Request Test Coverage Report for Build 107

11 of 12 (91.67%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.3%) to 96.237%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

app/init.py
11
12
91.67%

Totals

Change from base Build 105:
-0.3%

Covered Lines:
179

Relevant Lines:
186

💛  - Coveralls

Actually my first idea was to use themes only for files containing img or css in the filename but this would require too many changes and it could have unwanted behaviour for vendor modules etc.
And I wasn't exactly sure if it's a good idea to check for the existence of each file for each request so I settled on duplicating the files.
Or perhaps it's better to give the developer the choice to use a theme or not based on each individual url_for() request?
Example:
 url_for() by default will not use any themes
 url_for(.., use_theme=True) will use the globally configured theme (if configured)
 url_for(.., theme='mytheme') will use mytheme
Thanks for the tip for Travis.

After doing some tests your suggestion seems to work fine: a check is first done if the file in the theme folder exists, if not then the default location is used.
The example /static/themes/dark/ just contains the updated CSS file now.
If no theme is applied then no file check is being done.

Ok merged, thanks.


Record the size each object's migration data in the LB database

Original issue: https://charm.cs.illinois.edu/redmine/issues/263

When load balancing, the balancer may want to know how much migrating each object will cost. One major factor in this is how much data transfer a migration represents. Since the runtime can easily tell how much data it will pack if an object actually does migrate, using PUP routines, it can check that earlier too and note the result.
Thus, the runtime should check the PUP size of each object when gathering the LB database statistics, and record those in an additional field. The field and accessors should be named to clearly reflect that this is a migration size, not necessarily a working-set size, which may be larger.

Original date: 2013-08-09 06:46:56

For some reason I thought this was assigned to me so I went ahead and implemented it. Later did I realized that it was assigned to Phil. So I apologize for not consulting before implementing it.
This feature is checked in a branch (objsize_lbdatabase).
-Added a field for the pupsize in the LDObjData.
-set the size during AtSync call.
All the LB strategies can use this field to obtain the size of the data.

Original date: 2013-08-09 12:15:12

Nope, I just entered it, so that the request wouldn't get lost, nor the new feature forgotten. It was unassigned until just now. All yours - enjoy!

Original date: 2013-08-09 12:30:05

Just a quick review of the base implementation - the 2 GiB limit on 32-bit int might actually be a problem here (for example, consider a weakly-virtualzed BRAMS). Sizes are non-negative, so that can at least become unsigned int with no trouble. If for some reason the data isn't collected, it's compiled out, whatever, we can still return 0 as a sentinel value.
4GiB can still practically be overrun, even if it will be rarer. That suggests that we might want to use a 64-bit field. Going a bit deeper, however, a few years back there was a major push to limit the memory usage of the LB database itself. Sanjay's suggestion of a coarser resolution (e.g. units of 4k) comes in here, but I don't think it would be good to implement that wholesale, because variable migration costs of small objects can matter.
I've got an idea for a variable-resolution scheme that always exposes size_t, but may round it to varying extent. I'll implement a simple 1-step version of that feeding uint after I've had breakfast. With a little more thought on where to draw cutoffs, we can probably reduce that to short.

Original date: 2013-08-09 19:50:39

OK, I've implemented the approximate encoding scheme and pushed it on a rebased version of Harshitha's branch. It packs the size in 16 bits, and it's accurate within 0.5% to well beyond the physical memory capacity of any single node we're ever likely to encounter (the limit beyond which error increases is roughly the entire memory capacity of Blue Waters). I expect lots of other code will break before this does.
Someone else should review what I've done, and then we can merge it to mainline.

Original date: 2013-11-09 01:03:40

The code currently merges cleanly with mainline and builds net-darwin-x86_64 without error. The tests run without error. Jonathan, please review and merge to mainline, and close this.

Original date: 2013-11-09 01:57:00

The following commits for data compression seem a little obscure:
58651c9d33ac4badaa24b5bd8ea7434a1dcba486
48843a36d2c8724cd2266dad1b7d48808441ef48
Specifically, "check_size_values" seems quite magical; I can infer what it does, but a little more documentation would be helpful.

Original date: 2013-11-09 02:08:58

Comment added.

Original date: 2013-11-12 03:51:29

Jonathan - Did you have anything more on data compression, or can we ignore this issue for the release?

Original date: 2013-11-12 22:12:49

Sorry, my mistake. I thought I had merged this, and it wasn't on gerrit... Merged now.


Unable to build when adding angular2-logger to angular-cli managed project

If I build my angular-cli project which has the angular2-logger dependency, I get the following error:
jeroen@host:~/example$ ng build
Hash: b010cdf0c5268f80c482
Time: 6542ms
chunk    {0} main.bundle.js, main.bundle.map (main) 4.51 kB {2} [initial] [rendered]
chunk    {1} styles.bundle.css, styles.bundle.map, styles.bundle.map (styles) 1.77 kB {3} [initial] [rendered]
chunk    {2} vendor.bundle.js, vendor.bundle.map (vendor) 2.61 MB [initial] [rendered]
chunk    {3} inline.bundle.js, inline.bundle.map (inline) 0 bytes [entry] [rendered]

ERROR in ./~/angular2-logger/app/core/logger.ts
Module build failed: TypeError: Cannot read property 'text' of undefined
    at IdentifierObject.TokenOrIdentifierObject.getText (/home/Jeroen/example/node_modules/typescript/lib/typescript.js:53644:56)
    at /home/Jeroen/example/node_modules/@ngtools/webpack/src/loader.js:83:72
    at Array.some (native)
    at /home/Jeroen/example/node_modules/@ngtools/webpack/src/loader.js:83:32
    at Array.filter (native)
    at _removeModuleId (/home/Jeroen/example/node_modules/@ngtools/webpack/src/loader.js:82:10)
    at /home/Jeroen/example/node_modules/@ngtools/webpack/src/loader.js:167:48
 @ ./~/angular2-logger/core.js 6:9-37
 @ ./src/app/app.module.ts
 @ ./src/main.ts
 @ multi main

ERROR in ./~/angular2-logger/app/core/providers.ts
Module build failed: TypeError: Cannot read property 'text' of undefined
    at IdentifierObject.TokenOrIdentifierObject.getText (/home/Jeroen/example/node_modules/typescript/lib/typescript.js:53644:56)
    at /home/Jeroen/example/node_modules/@ngtools/webpack/src/loader.js:83:72
    at Array.some (native)
    at /home/Jeroen/example/node_modules/@ngtools/webpack/src/loader.js:83:32
    at Array.filter (native)
    at _removeModuleId (/home/Jeroen/example/node_modules/@ngtools/webpack/src/loader.js:82:10)
    at /home/Jeroen/example/node_modules/@ngtools/webpack/src/loader.js:167:48
 @ ./~/angular2-logger/core.js 7:9-40
 @ ./src/app/app.module.ts
 @ ./src/main.ts
 @ multi main

The error can be reproduced by doing the following:
npm install -g angular-cli
ng new example
cd example
npm install -save angular2-logger

Then edit the src/app/app.module.ts and add the import:
import { Logger } from 'angular2-logger/core';

and add the provider:
  providers: [Logger],

Same issue for our project

It happened with the update of angular-cli 1.0.0-beta-24 to 1.0.0-beta-25.5.

I tried downgrading to angular-cli 1.0.0-beta.24 and I get the same error.
sudo npm uninstall -g angular-cli
sudo npm install -g<EMAIL_ADDRESS>ng new example
... same as my opening post

we have the issue. please fix

Was working fine with AngularCLI Beta .21. Upgraded to .25.5 and this error occurs.
Interestingly, I see that the core team have implemented a logger in 25.5 CLI : https://github.com/angular/angular-cli/commit/e3b48da

I have the same issue (worked with beta 24) and I found a way to avoid the problem.
I replace this import :
import {Logger, Options as LoggerOptions, Level as LoggerLevel} from 'angular2-logger/core';
By these imports :
import {Level as LoggerLevel} from 'angular2-logger/app/core/level';
import {Logger, Options as LoggerOptions} from 'angular2-logger/app/core/logger';

Hello all,
Really sorry you are all running into these issues but I won't be making any changes based of a beta product, when you use a beta software you are bound to have issues eventually and things will be changing, I can't fix it everytime they brake something.
If someone has a pull request with the fix I don't mind taking a look at it.

Fair enough - good point

The fix by @eservent seems to work for me too - thx

workaround by @eservent is working - but it is annoying to have to adjust all the imports all the times, because the IDE will not use that import automatically (at least intelliJ doesnt). I think it is bad that they broke that in the CLI - maybe we should file it as a bug there?

@bruderol certainly worth a try.

So could please someone open a bug at Angular-CLI, who has some more insight into the details of this? Thanks!

Probably this already fixed in Angular-cli, https://github.com/angular/angular-cli/commit/e91552ffcd9ec69f7ac50fa98e3b266f5b024342
So might wait for next release of the cli or if you are like me then I found an alternative logger for AOT support here.
https://github.com/noemi-salaun/ng2-logger
@langley-agm I hope you wouldn't mind another logger linked here. Just info for others.

@chunghha not a problem !

i have the same problem in @angular/cli 1.0.0-beta.30 with AOT build.

It might help that the problem doesn't occur if I have just a single
import { Logger } from 'angular2-logger/app/core/logger';

in my code. All other import statements can use from 'angular2-logger/core' directly and it still works.
@langley-agm, since the Angular-CLI is now out of beta and this problem still occurs, it might be worth looking into it. The proposed workaround doesn't do it for my anymore because with it, ng lint complains about linting issues inside .../my-project/node_modules/angular2-logger/app/core/logger.ts (using @angular/cli@1.0.0-rc.0).

I have the same problem using @angular/cli 1.0.0-rc.1
ERROR in ./~/angular2-logger/app/core/logger.ts
Module build failed: TypeError: Cannot read property 'text' of undefined
    at Object.getTokenPosOfNode (D:\Projects\WebProjects\AngularProject\node_modules\typescript\lib\typescript.js:6768:71)
    at IdentifierObject.TokenOrIdentifierObject.getStart (D:\Projects\WebProjects\AngularProject\node_modules\typescript\lib\typescript.js:80500:23)
    at IdentifierObject.TokenOrIdentifierObject.getText (D:\Projects\WebProjects\AngularProject\node_modules\typescript\lib\typescript.js:80521:77)
    at refactor.findAstNodes.filter (D:\Projects\WebProjects\AngularProject\node_modules\@ngtools\webpack\src\loader.js:139:44)
    at Array.filter (native)
    at refactor.findAstNodes.forEach.node (D:\Projects\WebProjects\AngularProject\node_modules\@ngtools\webpack\src\loader.js:138:14)
    at Array.forEach (native)
    at _removeDecorators (D:\Projects\WebProjects\AngularProject\node_modules\@ngtools\webpack\src\loader.js:129:10)
    at Promise.resolve.then (D:\Projects\WebProjects\AngularProject\node_modules\@ngtools\webpack\src\loader.js:292:33)
 @ ./~/angular2-logger/core.js 6:9-37
 @ ./src/$$_gendir/app/app.module.ngfactory.ts
 @ ./src/main.ts
 @ multi ./src/main.ts

@mastertinner workaround worked with @angular/cli 1.0.0-rc.1 & 2.

@mastertinner This worked for me too. Many thanks.

Closing this, for follow up you can use #79


Chore/migrate helm chart

Feature or Problem
Enables the installation of Rust-based wasmCloud host via helm.
Related Issues
#684
Release Information
Consumer Impact
Testing

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin
[ ] x86_64-windows

Tested on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin
[ ] x86_64-windows

Unit Test(s)

Acceptance or Integration

Manual Verification

@joonas Just a note that commits need a DCO to be merged
I'm assuming @thomastaylor312 is the best one to review this

@joonas Just a note that commits need a DCO to be merged

Yep, it looks like the issue lies in some of the commits that I included for historical purposes (per DCO bot), the best bet for moving this forward might be to flatten the history into a single commit instead of trying to preserve the entire history.

I'm assuming @thomastaylor312 is the best one to review this

I was planning on pinging Taylor once this is good to go :)

Closing this in favor of #788.


@param and @return comments not coming up in documentation in the code

On using @param and @return the comments are coming up in typedoc but not coming up in the
code. Also the comments below it are also not displayed on using @

ll

This isn't an issue with Typedoc - it's a problem with whatever editor / language service plugin you are using. Typedoc doesn't manage the intelligence you see in your editor, it just analyses your code to create documentation.

thanks, seems issue with netbeans editor


Preload (cache) association

Maybe not so crazy about the naming on the instance option, but tried to be consistent with the scope.
Extracted the JS query function from the event binding, so it can be called when the widget is constructed.

W - o - o - T
Thx!

Tested it, it works fine, thanks! Do you think it's possible to do smtg similar for the filtering-select widget (belongs_to)?

In the dummy app, if I edit a player, the team drop-down populates already when I click the down arrow. Were you thinking of something different? The multi-select widget shows all the items, which is why they benefit from a preload.

So there is no added benefit for caching in filtering select then? We can set it back the way it was (no xhr at all when < 30). And even do the same for multiselect, in fact.

Seems that there isn't. After you took out the len < 30 and xhr check, I figured it was better to just trigger the query on load--that way there's no conditional logic on the initial page load. It's kind of nice, but I suppose the old approach would be better if there were lots of cached multiselects on the page.
I'm porting an app over to rails_admin, and am addressing these issues as they come up for me to get the features I need. So I'm sure there's more to come.
What I'm hoping to be able to do, is swap out sections, or rearrange forms so I can build a real app, not just an admin interface, adding higher-level functions either to rails_admin or overriding in my app.


Create udlanet.txt

Add the domain to students of Universidad de Las Americas - UDLA from Quito - Ecuador the students emails are like<EMAIL_ADDRESS>

@zerocooljs Pull request merged. Thank you!


Vo Overview Emails: expired and filter admins non admins

Add expired filter for emails -> also add checkbox for sending mails to all member or only admins

We want to be able to send emails to expired projects only. And to select, whether only project admins or also all members should be notified.


Add cache control headers for OCW

What are the relevant tickets?
Partial solution to https://github.com/mitodl/ocw-hugo-themes/issues/1212
Description (What does it do?)
Adds cache-control headers for OCW resources.
The pattern:
(bereq.url.path ~ ".*(main|common|www|course_v2|instructor_insights|fields)\.[0-9a-f]+\.(css|js)\z") || (bereq.url.path ~ ".*[0-9a-f]+\.[0-9a-f]+\.(css|js)\z")
The first part of the pattern corresponds to hashed themes related js or css files.
The second part of the pattern corresponds to dynamic imports using webpack (videojs and nanogallery2).
Eg.
https://ocw.mit.edu/static_shared/js/common.904c3.js (1st part)
https://ocw.mit.edu/static_shared/js/abc354.904c3.js (1st part)
https://ocw.mit.edu/static_shared/js/354.904c3.js (2nd part)
You can notice the dynamic imports here:
https://ocw.mit.edu/courses/16-885j-aircraft-systems-engineering-fall-2005/pages/related-resources/

The code for them is given here:
https://github.com/mitodl/ocw-hugo-themes/blob/main/course-v2/assets/course-v2.ts
The pattern
(bereq.url.path ~ ".*/static_shared/images/.*\.[0-9a-f]+\.(png|jpg|jpeg|svg|gif)\z") || (bereq.url.path ~ ".*/static_shared/fonts/.*\.subset\.[0-9a-f]+\.(ttf|woff|woff2)\z")
Corresponds to hashed static assets (images and fonts).
Eg.
http://localhost:3000/static_shared/images/ocw_logo_white_v2.1a5cf4568192c88b5efab45063b86d8a.svg
http://localhost:3000/static_shared/fonts/MaterialIcons-Regular.subset.0ec6028d1bb7a2675394e0512f8ceee4.woff2
The pattern
(bereq.url.path ~ ".*/static_shared/mathjax/.*\.[0-9a-f]+.*\z")
Corresponds to static mathjax files. There are many different files with different extensions produced by webpack, so we are not limiting the extensions here in the pattern.
The pattern
(bereq.url.path ~ ".*/static_shared/(images|fonts)/.*\.(png|jpg|jpeg|svg|gif|ttf|woff|woff2)\z")
Corresponds to unhashed static images and fonts. Currently I do not think we have any such case, as we have hashed all the static images and fonts by webpack. But if we did, it would fall here.
The pattern
(bereq.url.path ~ ".*/(ocw-www|courses|images)/.*\.(png|jpg|jpeg|svg|gif)\z")
Corresponds to any other images present in ocw-www or course-v2 theme.
Eg.
https://ocw.mit.edu/images/homepage_hero.jpg
https://ocw.mit.edu/courses/6-033-computer-system-engineering-spring-2018/a79fa5
https://ocw.mit.edu/ocw-www/chansa_20230113.jpg
The pattern
(bereq.http.Host ~ "www.ocw-openmatters.org") && (bereq.url.path ~ "^/wp-content/uploads/.*\.(png|jpg|jpeg|svg|gif)\z")
`
Corresponds to any OpenMatters images we use. We use them in ocw-www theme, eg. this image:
https://www.ocw-openmatters.org/wp-content/uploads/2020/01/Placeholder_2.png
How can this be tested?
I will be testing this in RC as I do not have the setup of ol-infrastructure.
What you need to do is, make sure the code works as intended (take the given examples for help).
Additional Context
More details can be found here:
https://github.com/mitodl/ocw-hugo-themes/issues/1212
https://github.com/mitodl/ocw-hugo-themes/pull/1272
https://mitodl.slack.com/archives/GQ89D0Z5M/p1696431334601819

General comment: I'm wondering if we might make this clearer by using multiple conditionals instead of one regex with conditionals in it.
I'm not sure this is a good idea. It's just something worth considering.

This is currently blocked by https://github.com/mitodl/ocw-studio/pull/2017 & https://github.com/mitodl/ocw-hugo-themes/pull/1272

Sorry for the delay; I've updated the PR instructions now and also added another case for mathjax.
This PR is ready to be reviewed now - the pre-commit.ci check is failing because of some other issue.

@ibrahimjaved12 Please rebase from main and your pre-commit issue should be fixed.

Hello. The devops team is struggling a bit trying to get enough context around this change to review it effectively.
We're also concerned about the details in the testing section. We (as a wider team) should have clear instructions for testing this code given its importance.
I'll be following up with other OCW team members to see if I can get some of these questions answered. I realize this is a low content comment but I wanted you to know that we are looking and working on this.

@ibrahimjaved12 - In order to facilitate thorough testing given this PR's complexity we will apply it to OCW RC this afternoon.

Hi! Testing failed. Looks like you have a syntax error. See below:
# cpatti @ rocinante in ~/alt/ol-infrastructure/src/ol_infrastructure/applications/ocw_site on git:add-cache-control-headers-ocw o [16:40:11]
$ pr pulumi up -s applications.ocw_site.QA
Previewing update (applications.ocw_site.QA):
Downloading plugin: 16.58 MiB / 16.58 MiB [=========================] 100.00% 2s
                                                                                [resource plugin tls-4.11.1] installing
Downloading plugin: 18.15 MiB / 18.15 MiB [=========================] 100.00% 2s
                                                                                [resource plugin fastly-8.4.1] installing
Downloading plugin: 22.66 MiB / 22.66 MiB [=========================] 100.00% 3s
                                                                                [resource plugin consul-3.10.0] installing
Downloading plugin: 23.20 MiB / 23.20 MiB [=========================] 100.00% 3s
                                                                                [resource plugin github-5.22.0] installing
Downloading plugin: 23.68 MiB / 23.68 MiB [=========================] 100.00% 3s
                                                                                [resource plugin vault-5.17.0] installing
Downloading plugin: 27.27 MiB / 27.27 MiB [=========================] 100.00% 3s
                                                                                [resource plugin mongodbatlas-3.11.2] installing
Downloading plugin: 179.67 MiB / 179.67 MiB [=======================] 100.00% 5s
                                                                                [resource plugin aws-6.8.0] installing
     Type                        Name                                                             Plan       Info
     pulumi:pulumi:Stack         ol-infrastructure-ocw-site-application-applications.ocw_site.QA             2 warnings
 ~   ├─ pulumi:providers:fastly  fastly-provider                                                  update     [diff: ~version]
 ~   ├─ fastly:index:ServiceVcl  ocw-draft-qa                                                     update     [diff: ~snippets]
 ~   └─ fastly:index:ServiceVcl  ocw-live-qa                                                      update     [diff: ~snippets]

Diagnostics:
  pulumi:pulumi:Stack (ol-infrastructure-ocw-site-application-applications.ocw_site.QA):
    warning: geo_headers is deprecated: 'geo_headers' attribute has been deprecated and will be removed in the next major version release
    warning: geo_headers is deprecated: 'geo_headers' attribute has been deprecated and will be removed in the next major version release

Resources:
    ~ 3 to update
    13 unchanged

Do you want to perform this update? yes
Updating (applications.ocw_site.QA):
     Type                        Name                                                             Status                  Info
     pulumi:pulumi:Stack         ol-infrastructure-ocw-site-application-applications.ocw_site.QA  **failed**              1 error; 2 warnings
 ~   ├─ pulumi:providers:fastly  fastly-provider                                                  updated (4s)            [diff: ~version]
 ~   ├─ fastly:index:ServiceVcl  ocw-draft-qa                                                     **updating failed**     [diff: ~snippets]; 1 error
 ~   └─ fastly:index:ServiceVcl  ocw-live-qa                                                      **updating failed**     [diff: ~snippets]; 1 error

Diagnostics:
  fastly:index:ServiceVcl (ocw-draft-qa):
    error: 1 error occurred:
        * updating urn:pulumi:applications.ocw_site.QA::ol-infrastructure-ocw-site-application::fastly:index/serviceVcl:ServiceVcl::ocw-draft-qa: 1 error occurred:
        * invalid configuration for Fastly Service (6FCHJLMjrO50D4411UZrwA): Syntax error: Expected `{`, got `||`
    at: (input Line 858 Pos 105)
    if (bereq.url.path ~ ".*(main|common|www|course_v2|instructor_insights|fields)\.[0-9a-f]+\.(css|js)\z") || (bereq.url.path ~ ".*[0-9a-f]+\.[0-9a-f]+\.(css|js)\z") {
    --------------------------------------------------------------------------------------------------------##----------------------------------------------------------

  fastly:index:ServiceVcl (ocw-live-qa):
    error: 1 error occurred:
        * updating urn:pulumi:applications.ocw_site.QA::ol-infrastructure-ocw-site-application::fastly:index/serviceVcl:ServiceVcl::ocw-live-qa: 1 error occurred:
        * invalid configuration for Fastly Service (29GD8UCsPjRlNvgVp1SX2t): Syntax error: Expected `{`, got `||`
    at: (input Line 858 Pos 105)
    if (bereq.url.path ~ ".*(main|common|www|course_v2|instructor_insights|fields)\.[0-9a-f]+\.(css|js)\z") || (bereq.url.path ~ ".*[0-9a-f]+\.[0-9a-f]+\.(css|js)\z") {
    --------------------------------------------------------------------------------------------------------##----------------------------------------------------------

  pulumi:pulumi:Stack (ol-infrastructure-ocw-site-application-applications.ocw_site.QA):
    warning: geo_headers is deprecated: 'geo_headers' attribute has been deprecated and will be removed in the next major version release
    warning: geo_headers is deprecated: 'geo_headers' attribute has been deprecated and will be removed in the next major version release
    error: update failed

Outputs:
  - ocw_site_buckets: {
      - buckets                : [
      -     [0]: "ocw-content-draft-qa"
      -     [1]: "ocw-content-backup-draft-qa"
      -     [2]: "ocw-content-offline-draft-qa"
      -     [3]: "ocw-content-live-qa"
      -     [4]: "ocw-content-backup-live-qa"
      -     [5]: "ocw-content-offline-live-qa"
        ]
      - fastly_draft_service_id: "6FCHJLMjrO50D4411UZrwA"
      - fastly_live_service_id : "29GD8UCsPjRlNvgVp1SX2t"
      - policy                 : "ocw-site-content-read-only-qa20210504124911576700000001"
    }

Resources:
    ~ 1 updated
    11 unchanged

Duration: 30s

Thanks @feoh
It looks that error came from the syntax of if condition combined with logical operator ||.
I have fixed the syntax now.
Further I tested using varnishd -C -f ./ttl_setup.vcl, it was good for reporting syntax errors related to parentheses but that's all it did because it was expecting a different kind of file structure.
Also, using RE tools for RE in Fastly isn't entirely helpful because Fastly has minor syntax differences, as their docs say here:

HINT: You can use the freely available Regex101 tool to test out your patterns, but be aware of potential minor syntax differences with Fastly's engine.
https://developer.fastly.com/reference/vcl/regex/

Even their given example does not work:^/admin(/.*)?\z because RE tools would expect something like \/ instead of / and maybe $ instead of \z .
However, I used this RE tester site: https://www.regextester.com/
Even though it reported syntax error because of forward slashes, but it still matched the strings, exactly in the way as they were intended to be. (Without \z) So I think REGEX wise we are all good.
I have fixed the IF conditions too.
Let's try the testing again.


[SPARK-43511][CONNECT][SS]Implemented MapGroupsWithState and FlatMapGroupsWithState APIs for Spark Connect

What changes were proposed in this pull request?

Implemented MapGroupsWithState and FlatMapGroupsWithState APIs for Spark Connect
Why are the changes needed?

To support streaming state APIs in Spark Connect
Does this PR introduce any user-facing change?

yes
How was this patch tested?

Added unit test

@bogao007 Can you add some tests and update PR description ?

Not tested yet, will perform the test when I'm back.

Is this tested yet? Could you update the PR description?

Please check https://github.com/apache/spark/pull/41558 for updated PR since the current PR has bunch of conflicts to resolve + is behind master branch for hundreds of commits.


Add unsubscribe feature for client

This Pull Request implements unsubscribe feature for the client. Please let me know if I missed something!

@mbonneau Just took a quick look at this.  We should write some tests and also figure out why PHP7 tests are failing.

@vyk12 This is looking pretty good. I would like to get some tests for it if you have a chance - or let me know and I can see if I can find some time to write some tests.

@mbonneau I haven't checked yet the way you wrote your phpunit tests, and I have to admit that I am not yet really familiar with it. I think it would be better that you take care of it. However, if you have multiple tests to write, maybe you can write a couple of these and I'll see what I can do to help to write others.
By the way, I intend to update the unsubscribe part of the documentation to indicate that it is implemented. I can also update the /Examples/SimpleClient.php and/or the /Examples/ClientExample.php to show how to use it, you tell me.

@mbonneau @davidwdan Any news about this PR?

Hi @vyk12 ,
I would like to see some tests of this before merging - I will get to work on that when I have a moment so that we can merge this.
Thanks


IP Preserve in nginx ingress controller

Due to the change of Port 443 streaming to nginx <IP_ADDRESS>:442 the ip is not preserved anymore. (<IP_ADDRESS> is returned)
Due to this change also the ingress ip-whitelist does not work anymore.
This could be fixed by proxy passing the x-forwarded-for ip and accept real-ip.

Would you like to take a stab at the PR? I think https://github.com/kubernetes/ingress/blob/master/controllers/nginx/rootfs/etc/nginx/template/nginx.tmpl may be the starting point.

Yeah .. i had to drop the stream config and place the listen 443 proxy_protocol back in the server {} block to get this blocking again ..

We have patched the nginx.tmpl for that:
https://github.com/pingworks/ingress/commit/a170f8dba3656eb3941d451d4539095bc12d0b36

possible dup #188

beta.5 still have this issue

Can someone trigger a next beta build? Looks like this was fixed in d56d8b7da1a7683dae6e4603121c2d5a2fb08f54 13 days ago.

@nailgun the next version will be release after the completion of the scheduled task here https://github.com/kubernetes/ingress/projects/2

@aledbf thanks for information

Trying the current master, the bug isn't fully solved:
<IP_ADDRESS> - [<IP_ADDRESS>] - - [17/May/2017:21:54:26 +0000] "GET / HTTP/2.0" 403 281 "-" "curl/7.54.0" 37 0.000 [prometheus-server-80] - - - -
2017/05/17 21:54:26 [error] 1133#1133: *90 access forbidden by rule, client: <IP_ADDRESS>, server: **.com, request: "GET / HTTP/2.0", host: "**.com"

in beta.5 it looks like this:
<IP_ADDRESS> - [<IP_ADDRESS>] - - [17/May/2017:21:54:26 +0000] "GET / HTTP/2.0" 403 281 "-" "curl/7.54.0" 37 0.000 [prometheus-server-80] - - - -
2017/05/17 21:54:26 [error] 1133#1133: *90 access forbidden by rule, client: <IP_ADDRESS>, server: **.com, request: "GET / HTTP/2.0", host: "**.com"

Same thing here with nginx-ingress-controller:0.9.0-beta.5

I'm getting the same thing. I'm trying to whitelist the IP range of our VPN and all I'm seeing are internal node IPs once the request comes through. Any ideas?
`2017-05-22T14:21:17.902605271Z 2017/05/22 14:21:17 [error] 133#133: *47 access forbidden by rule, client: <IP_ADDRESS>, server: my.test.com, request: "GET /favicon.ico HTTP/1.1", host: "my.test.com", referrer: "http://my.test.com/"
<IP_ADDRESS> is an IP of one of the k8s nodes rather than the remote IP that was requesting resources.

@jrthib please use the image quay.io/aledbf/nginx-ingress-controller:0.118
This is a similar issue to #727

Thanks @aledbf. That solves the problem.
How does it work with releases? Once all items in the nginx 0.9-beta.6 project are resolved, do you release?

@2color I open a PR an someone from the google team with permissions in the gcr.io registry publish the image. This is the reason why I use my personal quay account to test the progress of the fixes/features to be included in the next release

Thanks @aledbf. Your work is much appreciated.


Bring back ClusterSystemSettings.enabled

Partially revert https://github.com/apple/swift-distributed-actors/pull/902 but with enabled set to true by default instead of false.

Thank you! I'm pretty sure the reverting was pretty annoying with some other code having changed since... thanks! 🙏
We can cleanup the unnecessary = true later once we land the other things; having them in helps know what needed them etc


Can't complete the onboarding process if I don't have any existing gatsby apps

There should be a 'skip for now' option I believe :)

Ah, that is a scenario we'll need to look at (or at least document). Right now you can't use it unless you have a Gatsby site on your computer.

@ascorbic I do have gatsby apps but they're in my wsl2 container, so I still can't proceed :)!


glutin::Event::Closed doesn't work on OS X

For some reason, the window doesn't close if I click on the red dot. It does recognise other events, but not this one:
extern crate glutin;

fn main()
{
	let window = glutin::Window::new().unwrap();

	unsafe { window.make_current() };

	'main: loop
	{
		for event in window.poll_events()
		{
			match event
			{
				glutin::Event::Closed => break 'main,
				_ => ()
			}
		}
	}
}

I guess this can be closed now.

Fixed with #357


documentation website only covers until release 8.0.2

The website https://pyav.org/ is seemingly lagging behind: It lists 8.0.2 as newest release, whereas 9.0.2 is newest release tagged on Github.

Duplicate of #913. I don't have control over that website, only @mikeboers does.


[stable/prometheus-cloudwatch-exporter] Add scrape timeout option

What this PR does / why we need it:
This PR will add a configurable timeout to the scrape of the prometheus-cloudwatch-exporter
Checklist
[Place an '[x]' (no spaces) in all applicable fields. Please remove unrelated fields.]

[x] DCO signed
[x] Chart Version bumped
[x] Variables are documented in the README.md
[x] title of the PR contains starts with chart name e.g. [stable/chart]

@gianrubio Thank you for the quick feedback.

@gianrubio I'm not sure why the e2e job ran twice and failed the 2nd time only.

/retest


Rebuild Data Commons PROD / DEV on separate clusters

Going forward we want proper isolation between DEV and PROD environments for Data Commons, which means:

Configure two separate clusters and trino instances for DEV and PROD. This also means having two sets of configuration-as-code under os-climate/os_c_data_commons repository to drive deployment separately. Note: iceberg not being a component of ODH, it means we should drive the icerberg deployment fully from os-c.
Have a single catalog for DEV and PROD, based on an iceberg volume.
Re-build and re-run all data pipelines on the new DEV environment
Develop and implement a proper promotion process to PROD for data pipelines

@MichaelTiemannOSC @erikerlandson

Since everything I've done has followed the "data as code" approach (more or less), it's no problem for the pipelines I've created to rerun from scratch.  Of course each of the pipelines needs a bit of scrubbing to properly use iceberg and implement its metadata and other best practices correctly.  Would be great to do that in view/with help from members as a next step in onboarding resources.
@HeatherAck @toki8

This also means having two sets of configuration-as-code under os-climate/os_c_data_commons repository to drive deployment separately.

FYI current configurations are stored under operate-first org, so we can manage them next to our other services (this makes it easier to share configurations between deployments. )
Regardless, extending configurations to multiple environment should be straight forwards. We should identify the amount of users for both clusters so that we can identify namespace quotas/resource requirements etc.

I would expect the number of users to be essentially the same, at least initially.
The main difference is that in the new "prod" cluster, only certain trino groups will have privileges that are more than "select" - the pipeline processes that run workloads like data ingest will have access to table write privilegs, and if needed access to the underlying s3 buckets.  All other users will have only "select", and will not have s3 credentials.
Eventually, as the OS-Climate community grows, most community members will be using the prod cluster only, and so eventually the prod cluster will grow larger, but to start with they should have the same set of users.

to clarify -- by 2 clusters are we talking about ocp clusters?

CC @HeatherAck to keep abreast of usage and cost.

@HumairAK Yes, we are talking about two separate OCP clusters. The data layers (from storage volumes, all the way up to Trino) should also be totally separate. As for keeping the configurations in an operate first org, this would mean that ultimately when we move to a full gitops model we will have OS-C owners for all our repositories also contributing / managing their config from operate first. If this is fine and understood then it would be good to document the process (unless it already exists?)
On capacity planning - Erik is right if we exclude the Airbus onboarding stream. I am assuming we will use a separate cluster for SOSTrades / Witness when we onboard them, in which case we don't need to cater for much more capacity.

If this is fine and understood then it would be good to document the process (unless it already exists?)

This already exists, example of what that looks like: https://github.com/operate-first/apps/pull/1418
We would just need to add these members to an owners file like this within the repo where these osc configs are held, so they can then use /approve /lgtm commands on PRs that change these specific configs.

Alright let's go ahead with this and I will bring the repo info / management of OWNERS into our OS-C Data Commons doc then.

@redmikhail With the access to our partner portal to get OpenShift subs, can you confirm there is no show stopper now to create the required clusters and also when these could be available for @HumairAK to do the platform deployment?

@caldeirav I have added entitlements to the account , so we now should be able to build cluster. I will create vanilla cluster setup (control plane and infrastructure nodes ) so we can add ArgoCD and proceed with configuration using operate-first repo. I will also  start adding "sub-tasks" to this issue so we could track actionable items.

With the creation of these two clusters i expect we will need to inform the community of the new links for the various environments. Therefore I have brought in the issue #44 again as it may make sense to have one dashboard where community members can access Trino, jupyter, CloudBeaver, the token generator, etc... for both dev and prod in one place.

Just to put this on the record, we'll need to confirm that these new clusters have access to GPUs having >= 16GB of ram (and access to larger ones is almost certainly going to be desirable)

Based on discussion above and somewhat large scope of some of the tasks adding here task list with references to the individual sub-tasks:

[ ] #98
[ ] Have a single catalog for DEV and PROD, based on an iceberg volume.
[ ] Develop and implement a proper promotion process to PROD for data pipelines
[ ] Rebuild existing Dev Cluster using the same configuration process as for Production cluster.
[ ] Re-build and re-run all data pipelines on the new DEV environment

@redmikhail as I go through the tasks and in order to avoid misunderstanding - we want separate Trino for DEV / PROD (with a different single catalog for each instance). The reason is we will separately upgrade Trino in DEV and PROD.

OS-Climate - Configuration of Dev/Prod servers meeting (11/02/2022)
Attendees: Mikhail, Erik, Vincent, Michael

Create two new buckets for osc_datacommons_prod and osc_datacommons_dev with one Trino catalog per bucket
In osc_datacommons_dev, we will give the possibility for developers to create / maintain their own schema (based on their GitHub ID) to have a dedicated sandbox with isolation
Functional Tekton CI pipelines: when is this required - We will move the teams to new environment one by one, likely starting with Physical Risk team then NLP, ITR, WITNESS. We have a dependency on Operate First work on Tekton pipelines, we need to find out when they are planning to fix this so we assess dependencies on OS-Climate streams.
Rules and access control for Trino - start with the raw rule.json file, remove Michael from Admin list. Manage every requirement for access with new issue and a change.
Add a rule for non-activity in JupyterHub - 3 days idle time will result in session being killed
Change default logout time in Superset from 5min to 1hour
There is a need to have better monitoring and management for GPU usage - for two sets of GPU we are planning to use. To look into building a pipeline from the AWS monitoring data. Raise an issue to deploy Kafka on the cluster at later stage (post-meeting note: may also be required for some use-cases with LSEG)
We need to define what the production cluster will do and document it - in Prod we expect data pipelines to be fully automated, no user interaction with Jupuyter notebook, and users access data through Trino SQL / Superset (and in the future, API Gateway)
We will select the first pipeline to be promoted to prod and use it to document the process - this part can be discussed with community users in the event storming process

Will raise separate issues for changes to environment summarised above so we can track them separately.

So if the cluster being stood up now is the dev cluster, then do I only include the  osc_datacommons_dev catalog on to the dev trino instance?
Yes, this should be a new bucket with a single, new catalog

Considering that we decided that we wont be using catalogs across environments would it make sense to just call it osc_datacommons and remove environment from naming convention (S3 bucket names will still have environment in the name to indicate importance of it ) ? It would simplify configuration as well
We should keep separate names as people may be connecting to both environments at the same time, also we don't want code to be executed in the wrong environment (good practice to have environment name as parameter in scripts, as an additional check).

Do we want to use encryption on S3 buckets
Yes

FYI on the dev cluster these services are up:
Jupyterhub
superset
trino
seldon
cloudbeaver
https://jupyterhub-odh-jupyterhub.apps.odh-cl2.apps.os-climate.org/
https://trino-secure-odh-trino.apps.odh-cl2.apps.os-climate.org/
https://cloudbeaver-odh-trino.apps.odh-cl2.apps.os-climate.org/
https://superset-secure-odh-superset.apps.odh-cl2.apps.os-climate.org/
trino/cloudbeaver admin account same as before
Not up:
kfp-tekton
trino token based authentication (this is a personal implementation of mine, we might want to have a more robust method, but I can deploy it on this dev environment as well if needed)

trino token based authentication (this is a personal implementation of mine, we might want to have a more robust method, but I can deploy it on this dev environment as well if needed)

We definitely need this, all of our trino authentication story is based on JWT.  That, Or some other solution for generating JWT

Okay sure. I can set it up. But I think we might need to a more robust solution for a prod environment in the future.

trino token service added: https://das-odh-trino.apps.odh-cl2.apps.os-climate.org

As the eventual PROD cluster is going to have some significant differences with respect to the new DEV cluster, I am going to close this issue out on behalf of the recent creation of DEV.
Future discussion and progress on PROD will be tracked on #136


chore: cleanup for publishing, move examples directory

prepublish script assumed every directory beneath packages/ would contain a package.json
examples directory began with graphiql causing issues with tooling. plus it's about to become more generic, and include simple examples of codemirror and monaco even
remove examples from conventional commits versioning scope
remove codemirror prepublish for default script

Also found that lerna publish for whatever reason isn't working after lerna version works successfully


Change TypeMismatch error span to callsite

Program:
fn main(b : Field) {
     foo(b);
}

fn foo(a : u32) -> Field {
     a
}

The following program fails because the foo function requires a u32 and a Field was given.
The error message given is:
error: expected type priv u32, found type priv Field
  ┌─ /src/main.nr:7:8
  │
7 │ fn foo(a : u32) -> Field {
  │        -

error: aborting due to 1 previous errors

The error should point to the callsite and not the function declaration

This is blocked until Types record their span


Observable.ajax halts when error callback is not given to progressSubscriber

RxJS version:
5.2.0
Code to reproduce:
in https://github.com/ReactiveX/rxjs/blob/master/spec/observables/dom/ajax-spec.ts
  it('should call onError when error callback is not given to progressSubscriber', function() {
    const onError = sinon.spy();
    const progressSubscriber = Rx.Subscriber.create(
      () => {},
      /* no error callback */
    );

    Rx.Observable.ajax({
      url: '/flibbertyJibbet',
      responseType: 'text',
      method: '',
      progressSubscriber
    })
      .subscribe(() => {}, onError);

    MockXMLHttpRequest.mostRecent.respondWith({
      'status': 404
    });

    expect(onError).to.have.been.called;
  });

Expected behavior:
Test should pass
Actual behavior:
Error: the object {} was thrown, throw an Error :)

Additional information:
Three confusing bits:

Should I just pass a noop function to bypass this behaviour

Not sure if progress subscriber should throw the ajax error in ajax observable https://github.com/ReactiveX/rxjs/blob/master/src/observable/dom/AjaxObservable.ts#L366

Not sure whether Subscriber logic is correct in https://github.com/ReactiveX/rxjs/blob/master/src/Subscriber.ts#L222-L224
it still throws when _parentSubscriber is not syncErrorThrowable?

so current implementation seems expect progressSubcriber to fully implement Observer<T>, and doesn't consider cases of partial observer. But this seems bit off, may need to update logics to check if given progressSubscriber is partial and hand off error to subscriber?
/cc @trxcllnt for visibility.

The SafeSubscriber logic is technically correct, syncErrorThrowable is an internal flag that tracks whether we should run the unsubscribe logic of an Observable if a consumer throws while the source is synchronously emitting values.
I'm not 100% on the right fix. On the one hand, we could fix AjaxObservable to ignore (or catch and forward) the error thrown by calling progressSubscriber.error(). In the case the error method isn't implemented, the error would be the same as it would have sent to the main Subscriber anyway. A  more drastic change would be for Subscriber.create to swallow errors if it doesn't have an error handler, but that'd a breaking change.
I'm also tempted to question why progressObserver exists at all, as it seems like we could have a progress: true flag that instructs the AjaxObservable to emit progress events, as well as the values it normally emits.

I'm also tempted to question why progressSubscriber exists at all, as it seems like we could have a progress: true flag that instructs the AjaxObservable to emit progress events, as well as the values it normally emits.
I agree.

I was trying to get progress event here https://github.com/ReactiveX/rxjs/issues/2424 , but both of two implement have some problem.
Observable.create((subscriber: Subscriber<ProgressEvent>) => {
    const ajax$ = Observable.ajax({
      url: host,
      body: blob,
      method: 'post',
      crossDomain: true,
      headers: { 'Content-Type': 'application/octet-stream' },
      progressSubscriber: subscriber
    })
      .takeUntil(this.pause$)
      .repeatWhen(() => this.resume$)
    const subscription = ajax$.subscribe()
    return () => subscription.unsubscribe()
  })
    .retryWhen(() => this.resume$)

In this case I can't get the ajax$ result, because subscriber was stoped before it can emit ajax result.
const host = `${apiHost}/upload/chunk/${meta.fileKey}?chunk=${index + 1}&chunks=${meta.chunks}`
const subscriber = new Subscriber()
return Observable.ajax({
  url: host,
  body: blob,
  method: 'post',
  crossDomain: true,
  headers: { 'Content-Type': 'application/octet-stream' },
  progressSubscriber: subscriber
})
  .takeUntil(this.pause$)
  .repeatWhen(() => this.resume$)

In this case I can't retry or repeat progressSubscriber.

Ugh... it shouldn't be progressSubscriber, it should be progressObserver. No one should be newing up Subscriber instances.
Either way, It seems like the proper thing to do would be to send any unhandled errors to the main subscription. Thoughts?

It seems like the proper thing to do would be to send any unhandled errors to the main subscription.

: I'm also in favor of this approach.

Any advice on what change is needed to make this work? I'm happy to create a PR.

whoo, so I'm confused. I just realised that we're talking about rx.observalbe.dom.ajax which uses progressSubscriber not rx.dom.js's ajax which uses progressObserver, right? I'm also only getting complete called and no next events during an ajax download :(

I'm seeing the same when progressSubscriber is provided. I'm seeing only completion and not any readystate change as mentioned here.

I am reporting the same issue.  progressSub only reports progress complete.
const progressSub = Subscriber.create(n => console.log("progressSub", n), e => console.error("progressError", e), () => console.log("progressSub complete"));

AjaxObservable.create({ url: DATA_URI, progressSubscriber: progressSub });

// --> progressSub complete

For folks looking, a workaround is to use createXHR instead of progressSubscriber, like so:
const request = new XMLHttpRequest();
const getRequest = () => request;
const loadProgressObs = Observable.fromEvent(request, 'progress');
loadProgressObs.subscribe((e) => console.log("progress event", e));
AjaxObservable.create({ url: DATA_URI, createXHR: getRequest });

This has been fixed in #5618


mf_getapploc fails for testsetup

The logic in mf_getapploc.sas won't work in the sasjs test testsetup (or teardown) - hence, should be adjusted for these specific cases

fixed in https://github.com/sasjs/core/pull/162


'modified'

made changes regarding WIP: LLM API chain #1943

curious on where this sits, this would be great!


Pipeline runner removes work directory regardless of job success / fail

It should keep working directory on pipeline failure to easily resume - currently it always deletes.
Ideally we can have it remove on success but have a flag to keep working directory regardless (for dev / testing new tools).
Snippet I think is the problem is here.
https://github.com/neurodatascience/nipoppy/blob/main/nipoppy_cli/nipoppy/workflows/runner.py#L209-L214

Once #261 is merged, BasePipelineWorkflow (which is inherited by PipelineRunner, which in turn is inherited by BidsConversionRunner) will have attributes n_success and n_total. We can update the code in PipelineRunner so that the working directory is only deleted if n_success is equal to n_total.

@bcmcpher please assign yourself if you want to work on this!