Icon component is not working with jest

Icon component is breaking while running with jest.
#package.json
{
  "name": "AwesomeProject",
  "version": "0.0.1",
  "private": true,
  "scripts": {
    "start": "node node_modules/react-native/local-cli/cli.js start",
    "test": "jest"
  },
  "dependencies": {
    "native-base": "^2.12.1",
    "react": "16.8.3",
    "react-native": "0.59.3"
  },
  "devDependencies": {
    "@babel/core": "^7.4.3",
    "@babel/runtime": "^7.4.3",
    "babel-jest": "^24.7.1",
    "jest": "^24.7.1",
    "metro-react-native-babel-preset": "^0.53.1",
    "react-test-renderer": "16.8.3"
  },
  "jest": {
    "preset": "react-native",
    "transform": {
      "^.+\\.js$": "<rootDir>/node_modules/react-native/jest/preprocessor.js"
    },
    "transformIgnorePatterns": [
      "/node_modules/(?!native-base)/"
    ]
  }
}

node: v11.13.0, npm : 6.7.0, react-native
Expected behaviour
Test should have rendered it properly.
Actual behaviour
It breaks throwing error
><EMAIL_ADDRESS>test /Users/bibek/Desktop/testnative/AwesomeProject
> jest

 FAIL  __tests__/App-test.js
  ✕ renders correctly (56ms)

  ● renders correctly

    TypeError: Cannot read property 'default' of undefined

      at new Icon (node_modules/react-native-vector-icons/lib/create-icon-set.js:42:389)
      at constructClassInstance (node_modules/react-test-renderer/cjs/react-test-renderer.development.js:3435:22)
      at updateClassComponent (node_modules/react-test-renderer/cjs/react-test-renderer.development.js:6606:9)
      at beginWork (node_modules/react-test-renderer/cjs/react-test-renderer.development.js:7563:20)
      at performUnitOfWork (node_modules/react-test-renderer/cjs/react-test-renderer.development.js:11234:16)
      at workLoop (node_modules/react-test-renderer/cjs/react-test-renderer.development.js:11266:28)
      at renderRoot (node_modules/react-test-renderer/cjs/react-test-renderer.development.js:11349:11)
      at performWorkOnRoot (node_modules/react-test-renderer/cjs/react-test-renderer.development.js:12237:11)
      at performWork (node_modules/react-test-renderer/cjs/react-test-renderer.development.js:12149:11)
      at performSyncWork (node_modules/react-test-renderer/cjs/react-test-renderer.development.js:12123:7)

  console.error node_modules/react-test-renderer/cjs/react-test-renderer.development.js:9036
    The above error occurred in the <Icon> component:
        in Icon (at IconNB.js:88)
        in IconNB (at connectStyle.js:384)
        in Styled(IconNB) (at Icon/index.js:67)
        in Icon (at connectStyle.js:384)
        in Styled(Icon) (at App.js:28)
        in View (created by View)
        in View (at App.js:24)
        in App (at App-test.js:13)

    Consider adding an error boundary to your tree to customize error handling behavior.
    Visit https://fb.me/react-error-boundaries to learn more about error boundaries.

Test Suites: 1 failed, 1 total
Tests:       1 failed, 1 total
Snapshots:   0 total
Time:        3.109s
Ran all test suites.
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR<EMAIL_ADDRESS>test: `jest`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>test script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

Steps to reproduce
Initilaize a new project with
react-native init AwesomeProject
npm install native-base --save
Add

 "transform": {
      "^.+\\.js$": "<rootDir>/node_modules/react-native/jest/preprocessor.js"
    },
    "transformIgnorePatterns": [
      "/node_modules/(?!native-base)/"
    ]

into jest of package.json
npm install
Add Icon component into App.js
export default class App extends Component {
  render() {
    return (
      <View style={styles.container}>
        <Text style={styles.welcome}>Welcome to React Native!</Text>
        <Text style={styles.instructions}>To get started, edit App.js</Text>
        <Text style={styles.instructions}>{instructions}</Text>
        <Icon name="close" type="MaterialIcons" style={{ color: '#000' }} />
      </View>
    );
  }
}

npm run test
Is the bug present in both iOS and Android or in any one of them?
N/A
Any other additional info which would help us debug the issue quicker.

I tried running jest test case for Icon
Worked fine

@bibekluitel I'm having this exact same issue.  I've tried mocking Platform as per the above, but this still doesn't work.
Were you able to resolve this?

@edwardmsmith  i was able to resolve it after mocking a icon component.
import React from 'react';
import 'react-native';

import * as  NativeComp from 'native-base';

NativeComp.Icon = jest.fn((props) => 'Icon');

Try mocking all components which breaks Jest.

See my comment in react-native-vector-icons for other fix.
https://github.com/oblador/react-native-vector-icons/issues/1046#issuecomment-546112745
cf.

seems to be a problem with jest and the test renderer: facebook/react-native#22437

According to https://github.com/facebook/react-native/pull/23326#issuecomment-468938589, the right fix is to add the constructor changing jest breaks other tests.
One liners:
sed -i -- 's/class Icon extends PureComponent {/class Icon extends PureComponent {constructor(props) { super(props) }/g' node_modules/react-native-vector-icons/lib/create-icon-set.js

# In case you use native based
sed -i -- 's/class Icon extends PureComponent {/class Icon extends PureComponent {constructor(props) { super(props) }/g' node_modules/native-base/node_modules/react-native-vector-icons/lib/create-icon-set.js

Good to use as a postinstall script in your package.json for both yarn and npm (w/ native-base lib fix also, adapt if you dont use it).
"postinstall": "sed -i -- 's/class Icon extends PureComponent {/class Icon extends PureComponent {constructor(props) { super(props) }/g' node_modules/react-native-vector-icons/lib/create-icon-set.js; sed -i -- 's/class Icon extends PureComponent {/class Icon extends PureComponent {constructor(props) { super(props) }/g' node_modules/react-native-vector-icons/lib/create-icon-set.js; # see https://github.com/oblador/react-native-vector-icons/issues/1046#issuecomment-546112745",

I ended by this solution
jest.mock('native-base/dist/src/basic/Icon', () => jest.genMockFromModule('native-base/dist/src/basic/Icon'));

Having a similar problem where Calendar dates (using MUI calendar icons) are not correctly accessible on an Ubuntu agent. The tests run fine on a local machine but the fields cannot be accessed on the agent in a consistent manner.


If there is no worker to spawn job on, add a sidekiq job to periodically check until there is

e.g. there's a scheduled job, but you delete all workers before the job gets dispatched. We should handle that whenever we have sidekiq set up

Periodically check for how long? Indefinitely?

good question. maybe forever, but with exponential backoff for each successive wait? but also for the sake of time, just a fixed interval is probably fine

#79

oh hold up ScheduledWorker.perform_at(receiver.start_time.from_now, id) is going to wait 2017 years to retry haha, we should maybe do something like ScheduledWorker.perform_at(RETRY_TIME.from_now, id) where we define that to be like a half hour or something

Do we want to add retry_time as a property for the EventReceiver, and validate its existence in the ScheduledReceiver model?

we can probably just have it as a constant in the worker rn


[7.x] Fix a bug with slash prefix

Fixes an issue where the prefix could be a slash. Can maybe use some polishing.
Route::prefix('/')->group(function ($router) {
    $router->view('welcome/user', 'welcome');
});

Fixes https://github.com/laravel/framework/issues/31759

@driesvints tested locally 👍


Add support for intlTelInput v9+ - initialCountry vs defaultCountry

The 9+ versions of intlTelInput use initialCountry instead of defaultCountry (although no errors are thrown for passing the incorrect param - it just doesn't work.
This change should make ng-intl-tel-input compatible with both the 8 and 9 versions.

See #61


I don't think 😤 should be +5

I know the emoji is named triumph, but he looks super pissed off, and I don't think he should be +5. Maybe a 0 for controversial, but I've never seen him even used positively to be honest. In all browsers he, IMO, looks pretty angry. http://emojipedia.org/face-with-look-of-triumph/

Hi! 👋
As noted in the readme, how they “look” should not matter in the scores, rather, the definitions by Unicode should matter (this case, CLDR short name, “face with steam from nose”; Unicode name, Face With Look of Triumph).
Anyway, I think you’re right in that it’s controversial: I’m :+1: on a score of 0. Would you be willing to create a PR?

Sure thing! Thank you! Didn't see that in the readme, my bad

No problem! :)

Closed in c29abc! 😤 <- neutral


Bracket in comment increases indent level

Press Enter at the end of the line below.
// hello {

The indent level increases when it should not. Other sublime syntaxes do not have this behavior.

Press Enter at the end of the line below.
// hello {

The indent level increases when it should not. Other sublime syntaxes do not have this behavior.

Is this still the case? I installed the latest version and didn't see it - but maybe there's something else going on here.

Yes, this happens on my side. But it also happens with Bash, D, JSON, Lua, R, Ruby, and Rust, but not with C, C#, C++, Java, JavaScript, TypeScript...

Is this the same or different behaviour as you're having?

No. Here's a gif of what I see:

Very strange, hmm.

No. Here's a gif of what I see:

https://github.com/tvi/Sublime-ARM-Assembly/blob/master/Syntaxes/ARMComment.tmPreferences
Maybe it's this TM_COMMENT_DISABLE_INDENT you need?

Wait no, doesn't seem to be it. my bad


Update derevo-cats, derevo-cats-tagless, ... to 0.12.3

Updates

tf.tofu:derevo-cats
tf.tofu:derevo-cats-tagless
tf.tofu:derevo-circe-magnolia

from 0.12.2 to 0.12.3.
GitHub Release Notes
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "tf.tofu" } ]

labels: library-update, semver-patch

Superseded by #152.


No steps for VPN gateways

The VPN Gateway page discussing moving from classic to ARM refers us to this section, but there are no instructions for actually migrating the VPN Gateway anywhere.
https://docs.microsoft.com/en-us/azure/vpn-gateway/vpn-gateway-classic-resource-manager-migration
Please add this scenario.

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

ID: 972e651f-7ac9-fd9c-092b-5fb7334f0721
Version Independent ID: f56b5a76-a64d-7f0f-3bf1-307dec38de8e
Content: Migrate to Resource Manager with PowerShell
Content Source: articles/virtual-machines/windows/migration-classic-resource-manager-ps.md
Service: virtual-machines-windows
GitHub Login: @singhkays
Microsoft Alias: kasing

@dcbrown16 Thanks for the feedback! I am assigning the issue to the content author for adding comments and enhancing the document as applicable.

@cynthn Kay is no longer around. Assigning to you for now. If we need to assign someone else just let us know :)

@dcbrown16 - It was called out in the doc but not specific enough "VPN Gateways are migrated as part of VNet migration ...". I'll add a Notice box to highlight this point.
VPN gateways are part of virtual networks. The entire VNet and the resources in the VNet need to be migrated together. There is no migration for individual resources inside a virtual network.

thanks @yushwang
#please-close


Add @NoPrefix annotation is contrary to @Prefix

When #1 will be done, it will be needed to add a contrary annotation in case, if we will use @Prefix on an interface, but some methods must be used without prefixes.
P.S.: Of course, in that case, we can just split interface on two. First will use prefixes in all methods, and second will not. But the main idea behind several interfaces is to group actions by categories, where each interface represents its own category.

Need to add doc for new annotation @NoPrefix

Added: https://github.com/programmerr47/ganalytics/wiki/Annotations#noprefix


question, server/cluster nodes

Hi, can someone clarify for me how the recipes should be installed:
I understand two use-cases server/slaves:

the recipes server (and update role on master?)
cluster (ie multimaster) (then deploy only recipe cluster on node (and some other as in README).

So recipe cluster and recipe server should not be in one run_list right?
With the (2) i quite didn't get how the "first" master server is to be started aka: systemctl<EMAIL_ADDRESS>

Closing due to inactivity.
If this is still an issue please reopen or open another issue. Alternatively drop by the #sous-chefs channel on the Chef Community Slack and we'll be happy to help!
Thanks,
Sous-Chefs


Translation in Korean language

Hi, I would like to help translating Dlang-Tour into Korean language with our team.

Thanks for your interest in contributing, @technykim! I've setup a Korean translation repo and I've sent you an invitation to to join the Korean team. Here you can find some helpful information on how to get started. Let me know if you have any questions.

@technykim  I am closing this now as the Korean repo (https://github.com/dlang-tour/korean) is since quite a while deployed online:
https://tour.dlang.org/tour/kr
Please don't hesitate to open a new issue if you run into troubles.
Lastly, don't forgot to add Korean to the translated languages once the first page is translated ;-)


Dioxus Router’s on_update callback is not called when using browser’s back/forward buttons

Problem

Router's on_update callback is not called when going back or forward using the browser's buttons, it only works when you click on links.
Steps To Reproduce

Create a project using the code below
In terminal dx serve
In browser go to localhost:8080
Open developer tools > console
Click on a link – notice the message works: "--- route update ---"
Go back using the browser key – notice no message now
Go forward using the browser key – notice no message either

Expected behavior
on_update should be called when clicking on links and using the browser's back and forward buttons.
Environment:

Dioxus version: [0.4.0]
Dx serve version: [0.4.1]
Rust version: [1.73.0]
OS info: [MacOS]
App platform: [web]

Code
Use the example code and add a log in the RouterConfig::on_update.
#![allow(non_snake_case)]

use dioxus::prelude::*;
use dioxus_router::prelude::*;

// ANCHOR: router
#[derive(Routable, Clone)]
#[rustfmt::skip]
enum Route {
    #[layout(NavBar)]
        #[route("/")]
        Home {},
        #[nest("/blog")]
            #[layout(Blog)]
                #[route("/")]
                BlogList {},
                #[route("/post/:name")]
                BlogPost { name: String },
            #[end_layout]
        #[end_nest]
    #[end_layout]
    #[nest("/myblog")]
        #[redirect("/", || Route::BlogList {})]
        #[redirect("/:name", |name: String| Route::BlogPost { name })]
    #[end_nest]
    #[route("/:..route")]
    PageNotFound {
        route: Vec<String>,
    },
}
// ANCHOR_END: router

pub fn App(cx: Scope) -> Element {
    render! {
        Router::<Route> {
            config: move || RouterConfig::default()
            .on_update(move |_| {
                log::info!("--- route update ---");
                None
            })
        }
    }
}

#[inline_props]
fn NavBar(cx: Scope) -> Element {
    render! {
        nav {
            ul {
                li { Link { to: Route::Home {}, "Home" } }
                li { Link { to: Route::BlogList {}, "Blog" } }
            }
        }
        Outlet::<Route> {}
    }
}

#[inline_props]
fn Home(cx: Scope) -> Element {
    render! {
        h1 { "Welcome to the Dioxus Blog!" }
    }
}

#[inline_props]
fn Blog(cx: Scope) -> Element {
    render! {
        h1 { "Blog" }
        Outlet::<Route> {}
    }
}

#[inline_props]
fn BlogList(cx: Scope) -> Element {
    render! {
        h2 { "Choose a post" }
        ul {
            li {
                Link {
                    to: Route::BlogPost { name: "Blog post 1".into() },
                    "Read the first blog post"
                }
            }
            li {
                Link {
                    to: Route::BlogPost { name: "Blog post 2".into() },
                    "Read the second blog post"
                }
            }
        }
    }
}

#[inline_props]
fn BlogPost(cx: Scope, name: String) -> Element {
    render! {
        h2 { "Blog Post: {name}"}
    }
}

#[inline_props]
fn PageNotFound(cx: Scope, route: Vec<String>) -> Element {
    render! {
        h1 { "Page not found" }
        p { "We are terribly sorry, but the page you requested doesn't exist." }
        pre {
            color: "red",
            "log:\nattemped to navigate to: {route:?}"
        }
    }
}

fn main() {
    dioxus_logger::init(log::LevelFilter::Trace).expect("failed to init logger");
    dioxus_web::launch(App);
}

[dependencies]
dioxus = "0.4.0"
dioxus-web = "0.4.0"
dioxus-router = "0.4.1"
dioxus-logger = "0.4.1"
log = "0.4.20"

This issue is still present in 0.5. Here is an updated reproduction:
#![allow(non_snake_case)]

use dioxus::prelude::*;

#[derive(Routable, Clone)]
#[rustfmt::skip]
enum Route {
    #[layout(NavBar)]
        #[route("/")]
        Home {},
        #[nest("/blog")]
            #[layout(Blog)]
                #[route("/")]
                BlogList {},
                #[route("/post/:name")]
                BlogPost { name: String },
            #[end_layout]
        #[end_nest]
    #[end_layout]
    #[nest("/myblog")]
        #[redirect("/", || Route::BlogList {})]
        #[redirect("/:name", |name: String| Route::BlogPost { name })]
    #[end_nest]
    #[route("/:..route")]
    PageNotFound {
        route: Vec<String>,
    },
}

pub fn App() -> Element {
    rsx! {
        Router::<Route> {
            config: move || RouterConfig::default()
            .on_update(move |_| {
                tracing::info!("--- route update ---");
                None
            })
        }
    }
}

#[component]
fn NavBar() -> Element {
    rsx! {
        nav {
            ul {
                li { Link { to: Route::Home {}, "Home" } }
                li { Link { to: Route::BlogList {}, "Blog" } }
            }
        }
        Outlet::<Route> {}
    }
}

#[component]
fn Home() -> Element {
    rsx! {
        h1 { "Welcome to the Dioxus Blog!" }
    }
}

#[component]
fn Blog() -> Element {
    rsx! {
        h1 { "Blog" }
        Outlet::<Route> {}
    }
}

#[component]
fn BlogList() -> Element {
    rsx! {
        h2 { "Choose a post" }
        ul {
            li {
                Link {
                    to: Route::BlogPost { name: "Blog post 1".into() },
                    "Read the first blog post"
                }
            }
            li {
                Link {
                    to: Route::BlogPost { name: "Blog post 2".into() },
                    "Read the second blog post"
                }
            }
        }
    }
}

#[component]
fn BlogPost(name: String) -> Element {
    rsx! {
        h2 { "Blog Post: {name}"}
    }
}

#[component]
fn PageNotFound(route: Vec<String>) -> Element {
    rsx! {
        h1 { "Page not found" }
        p { "We are terribly sorry, but the page you requested doesn't exist." }
        pre {
            color: "red",
            "log:\nattemped to navigate to: {route:?}"
        }
    }
}

fn main() {
    dioxus_logger::init(tracing::Level::TRACE).expect("failed to init logger");
    launch(App);
}


Compiling error: XML_callback was not declared

Hello,
great work. Exactly what I was looking for.
But I have problems compiling the sketch in Arduino.
All libraries are included. Also the tiny XML.
but I still get the message: XML_callback was not declared in that scope.
See screenshot attached.
Appreciate your help.

regards
Andreas

sorry, had an old Arduino version running.
After updating it works.


BASE_HREF  is not working

Cant Access argo UI if I change the BASE_HREF to something other than /
I want it to be accessible at xxx.com/argo
To reproduce it you can just change the env variable BASE_HREF to something other than /. I have tried these - argo, /argo , /argo/ . None of these work.
Getting this on the console of my browser -
 Uncaught SyntaxError: Unexpected token '<'

THis is the image we are using: argoproj/argocli:v2.7.4

Kubernetes version : 1.16

Message from the maintainers:
If you are impacted by this bug please add a 👍 reaction to this issue! We often sort issues this way to know what to prioritize.

Hello,
BASE_HREF setup
- name: BASE_HREF
          value: /argo/

Ingress setup
rules:
  - host: {{domain-name}}
    http:
      paths:
      - backend:
          serviceName: argo-server
          servicePort: http
        path: /argo(/|$)(.*)

I can see workflows in https://{{domain-name}}/argo/workflows
But when I click on a workflow, I see a blank screen

Under network I can see that {{namespace}}?listOptions.fieldSelector=metadata.name=artifact-passing-wj8b4 takes considerable time and it is successful after ~2mins and response does not show on the UI

I can see workflows in https://{{domain-name}}/argo/workflows

this screen can be blank if the workflow in invalid

This screen can be blank if the workflow in invalid. Check under the summary tab (one of the the small buttons top right)

@alexec
When i submit a workflow from the ui, i can see the steps
When i go back to main workflows/ page and then click on the workflow, I get a blank screen
On clicking resubmit from the blank screen, I can see all the steps

going back to main page

Now click on workflow again. You can see a blank page

@alexec In ideal case it should load the UI on /argo we shouldn't put extra routes.

After some short amount of experimentation, I've found been able to create an ingress on K3S:

Update service/argo-server spec with type: LoadBalancer
Add BASH_HREF as environment variable to deployment/argo-server .
Create a ingress, with the annotation ingress.kubernetes.io/rewrite-target: /.

diff --git a/manifests/base/argo-server/argo-server-deployment.yaml b/manifests/base/argo-server/argo-server-deployment.yaml
index dbafbfd8..3ad77285 100644
--- a/manifests/base/argo-server/argo-server-deployment.yaml
+++ b/manifests/base/argo-server/argo-server-deployment.yaml
@@ -16,6 +16,9 @@ spec:
         - name: argo-server
           image: argoproj/argocli:latest
           args: [server]
+          env:
+            - name: BASE_HREF
+              value: /argo/
           ports:
             - name: web
               containerPort: 2746
diff --git a/manifests/base/argo-server/argo-server-ingress.yaml b/manifests/base/argo-server/argo-server-ingress.yaml
index e69de29b..f4599000 100644
--- a/manifests/base/argo-server/argo-server-ingress.yaml
+++ b/manifests/base/argo-server/argo-server-ingress.yaml
@@ -0,0 +1,16 @@
+apiVersion: extensions/v1beta1
+kind: Ingress
+metadata:
+  name: argo-server
+  annotations:
+    kubernetes.io/ingress.class: traefik
+    ingress.kubernetes.io/rewrite-target: /
+spec:
+  rules:
+    - http:
+        paths:
+          - backend:
+              serviceName: argo-server
+              servicePort: 2746
+            path: /argo
+
diff --git a/manifests/base/argo-server/argo-server-service.yaml b/manifests/base/argo-server/argo-server-service.yaml
index 0c6e58d3..5bdc67ac 100644
--- a/manifests/base/argo-server/argo-server-service.yaml
+++ b/manifests/base/argo-server/argo-server-service.yaml
@@ -9,3 +9,4 @@ spec:
     - name: web
       port: 2746
       targetPort: 2746
+  type: LoadBalancer

While needing this in not uncommon for ingresses, it's not also straight forward.

https://github.com/argoproj/argo-cd/pull/3475

@kevinsimons-wf, @ramanNarasimhan77, @ematpad, @gordonbondon, @damianoneill, @yuvraj9, and @yk634 - could I please ask you to review the proposed solution and state if it is adequate - or a better solution is needed?

@alexec  I will test this today and comeback with my findings

@alexec I got it working with this setup

BASE_HREF set to subpath with trailing slash (trailing slash is an important one because of how <base href> tag works, I guess we can just update docs here https://github.com/argoproj/argo/blob/676868f31da1bce361e89bebfa1eea81471784ac/docs/argo-server.md#base-href from /argo to /argo/ - that's what got me confused at first)
No updates to argo Service, just put it behind Ingress with a similar config:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  annotations:
    external-dns.alpha.kubernetes.io/alias: "true"
    external-dns.alpha.kubernetes.io/target: target.example.com
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/backend-protocol: HTTP
    nginx.ingress.kubernetes.io/force-ssl-redirect: "true"
    nginx.ingress.kubernetes.io/rewrite-target: /$1
spec:
  rules:
  - host: server.example.com
    http:
      paths:
      - backend:
          serviceName: argo-server
          servicePort: 2746
        path: /argo/(.*)
      - backend:
          serviceName: argo-server
          servicePort: 2746
        path: /argo
  tls:
  - hosts:
    - server.example.com
    secretName: some-cert-manager-seceret

@alexec  for my case the ingress does not seem to be the issue as the main workflow page renders properly.
However, I see an empty screen when i click on any specific workflow and it takes sometime to load.
Our cluster has this setup
load balancer -> cluster wide ingress controller -> gatekeeper -> application's ingress controller -> argo
When I deploy argo separately using the manifests I dont see this problem.

@ramanNarasimhan77 do you have a very large workflow? 1000+ nodes?

@ramanNarasimhan77 do you have a very large workflow? 1000+ nodes?

@alexec No, my workflow only has 3 steps. I am not sure what could cause this behavior. But if others are able to use Argo with Base_href set then I think this ticket can be closed. The issue on my cluster is probably caused by one of the ingress controllers. I will continue my investigation.

Available for testing in v2.10.0-rc1.

Documentation updated with https://github.com/argoproj/argo/pull/4306/

@alexec I got it working with this setup

BASE_HREF set to subpath with trailing slash (trailing slash is an important one because of how <base href> tag works, I guess we can just update docs here https://github.com/argoproj/argo/blob/676868f31da1bce361e89bebfa1eea81471784ac/docs/argo-server.md#base-href from /argo to /argo/ - that's what got me confused at first), or maybe just add a check to always append a slash if it's not present.
No updates to argo Service, just put it behind Ingress with a similar config:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  annotations:
    external-dns.alpha.kubernetes.io/alias: "true"
    external-dns.alpha.kubernetes.io/target: target.example.com
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/backend-protocol: HTTP
    nginx.ingress.kubernetes.io/force-ssl-redirect: "true"
    nginx.ingress.kubernetes.io/rewrite-target: /$1
spec:
  rules:
  - host: server.example.com
    http:
      paths:
      - backend:
          serviceName: argo-server
          servicePort: 2746
        path: /argo/(.*)
      - backend:
          serviceName: argo-server
          servicePort: 2746
        path: /argo
  tls:
  - hosts:
    - server.example.com
    secretName: some-cert-manager-seceret

you config saved the day. Thanks a lot. I just had to turn off ssl redirect.

Does anybody has a similar one for AWS LoadBalancer Controller, instead of nginx controller?

Looking for AWS Loadbalancer Controller. Any one has an example?

@gordonbondon, thanks a lot, it is helpful

Can't seem to be able to expose with load balancer controller of AWS. Anyone had luck with it?

For those who are experiencing this issue with Treafik Ingress Controller, you will need to create a "StripPrefix" middleware that matches the BASE_HREF value. Make sure to attach that to your ingress (if you are using ingress instead of IngressRoute):
In my case, I am using "/workflows/" as the BASE_HREF value:

apiVersion: traefik.containo.us/v1alpha1
kind: Middleware
metadata:
name: workflow-prefix
spec:
stripPrefix:
prefixes:
- /workflows/

and my Ingress includes the following annotation:
 traefik.ingress.kubernetes.io/router.middlewares: argo-workflows-workflow-prefix@kubernetescrd
Hopefully, this will help someone!

Still problematic:
@erkerb4 - and what's your Ingress look like? I'm stuck as all hell, using the Traefik Ingress controller, and trying to route to "/argo" in the browser.
...I can't believe it's this difficult to achieve.

@erkerb4 - you deserve a medal. This WORKED FOR ME!

@erkerb4 - Could I ask a serious question? How'd you figure that out? I'm trying to figure out what the lesson to learn is, in this case.
Why, when using Traefik, do we need to utilize this stripPrefix middleware?

For folks looking for an Ingress config example for EKS+ALB, this is working for us:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: argo-server
  namespace: argo
  annotations:
    alb.ingress.kubernetes.io/target-type: ip
    alb.ingress.kubernetes.io/listen-ports: '[{"HTTP": 2746}, {"HTTPS":443}]'
    alb.ingress.kubernetes.io/ssl-redirect: '443'
    alb.ingress.kubernetes.io/backend-protocol: HTTPS
    alb.ingress.kubernetes.io/scheme: internet-facing
spec:
  ingressClassName: alb
  rules:
    - host: hostname.example.com
      http:
        paths:
        - path: /*
          pathType: Prefix
          backend:
            service:
              name: argo-server
              port:
                number: 2746

Assumes you're running Argo server in namespace argo. Note that ingressClassName: alb is essential (and a literal).

For anyone who finds their way to this thread - or runs into this problem - here's a working implementation for a local K3D cluster. It's all laid out flexibly enough that it should be portable/obvious to understand + obvious to modify or adapt to your own workflow/implementation.
Overview
K3D is a wrapper and set of conveniences for running a fully-dockerized local cluster on Rancher K3s.
- LoadBalancer: Klipper (built-in default LB for K3D/K3s)
- Ingress: Traefik
- ArgoCD Install Method: Bitnami Helm Chart (I like it, I know it's not perfect...or from "the source," but it suits our workflows and needs, so that's what I chose).
Notes
In this configuration, there are a few things to be aware of.

ArgoCD is configured to listen and serve on http://kubernetes.docker.internal/argocd/ (be sure to add this to your hosts file on the system where you deploy!)
SSL/TLS are disabled
The ingress targets Traefik's web service, not web-secure (because HTTP)
The included Helm example also includes a fully-working setup for a configurationManagementPlugin sidecar which you can use for building your charts & doing "last-mile kustomization" in case you don't want ArgoCD just treating/building your apps as vanilla Kustomize apps

AND ONE MORE THING
YOU CAN have ArgoCD just treat the included Kustomize example as an Argo App of type Kustomize. In order to do so - and not NEED a configurationManagementPlugin sidecar - please see this configMapGenerator...these are required configMap entries for ArgoCD to be able to properly/correctly build Kustomizations that include Helm charts in just one step (through kustomize build --enable-helm .)
See here for documentation:

https://cloud.google.com/anthos-config-management/docs/how-to/use-repo-kustomize-helm
https://github.com/kubernetes-sigs/kustomize/blob/master/examples/chart.md
https://argo-cd.readthedocs.io/en/stable/user-guide/kustomize/

See here for the configMap: https://github.com/armenr/5thK8s/blob/main/dependencies/argo-cd/generators/configmap-argocd-cm.yaml
The goodies
Example Repo: https://github.com/armenr/5thK8s
Traefik Ingress Example: https://github.com/armenr/5thK8s/blob/main/dependencies/argo-cd/patches/traefik-middleware.yaml
Helm Values for ArgoCD: https://github.com/armenr/5thK8s/blob/main/dependencies/argo-cd/values.yaml
How to Build/Deploy
# go to the directory
cd dependencies/argo-cd

# build via kustomize + built-in helm generator
kustomize build --enable-helm . | kubectl apply -n argocd -f -

Not sure why the base tag is included in the first place, it breaks so many things. It makes the deployment which usually come behind some auth service et very difficult. Not everyone can use ingress at will.

This screen can be blank if the workflow in invalid. Check under the summary tab (one of the the small buttons top right)

@alexec When i submit a workflow from the ui, i can see the steps When i go back to main workflows/ page and then click on the workflow, I get a blank screen
On clicking resubmit from the blank screen, I can see all the steps
going back to main page
Now click on workflow again. You can see a blank page
Also from cli, I can see workflow is successful
argo get artifact-passing-x8zhr Name: artifact-passing-x8zhr Namespace: argo ServiceAccount: argo-workflow-service-account Status: Succeeded Created: Tue Jun 23 21:45:24 +0530 (8 minutes ago) Started: Tue Jun 23 21:45:24 +0530 (8 minutes ago) Finished: Tue Jun 23 21:45:35 +0530 (8 minutes ago) Duration: 11 seconds
STEP TEMPLATE PODNAME DURATION MESSAGE ✔ artifact-passing-x8zhr artifact-example ├---✔ generate-artifact whalesay artifact-passing-x8zhr-982905896 4s └---✔ consume-artifact print-message artifact-passing-x8zhr-2574371560 5s

@ramanNarasimhan77 We are facing a similar issue with kong ingress. Can you share the resolution you did for this issue.

@sid8489  I do not have a resolution for this issue. We still have this issue in our argo installation as it is behind a bunch of proxies

I'm having the same issue, using this file for my configuration.

After a day of trying various permutations, here is a config that works for me. I am using k3s, version v1.24.4+k3s1, with the default traefik deployment.
Reproducible example -

Create the following files:

Argo patch file:
riaz@server:~/bin/k8s$ cat deployments/argo-patch.yaml
spec:
  template:
    spec:
      containers:
      - name: argo-server
        args:
          - server
          - "--auth-mode=server"  # not relevant to reprex
          - "--secure=false"           # not relevant to reprex
        env:
          - name: BASE_HREF
            value: /argo/
        readinessProbe:
          httpGet:
            scheme: HTTP

Traefik ingress:
riaz@server:~/bin/k8s$ cat deployments/argo-dashboard-ingress.yaml
---
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
  name: argo-ingressroute
  namespace: argo
spec:
  entryPoints:
    - web
  routes:
    - match: PathPrefix(`/argo`)
      kind: Rule
      services:
        - name: argo-server
          port: 2746
      middlewares:
        - name: argo-stripprefix
---
apiVersion: traefik.containo.us/v1alpha1
kind: Middleware
metadata:
  name: argo-stripprefix
  namespace: argo
spec:
  stripPrefix:
    prefixes:
      - /argo
    forceSlash: true

Execute the following commands:

kubectl create namespace argo
kubectl apply -n argo -f https://github.com/argoproj/argo-workflows/releases/download/v3.3.9/install.yaml
kubectl patch deployment argo-server --namespace argo --patch-file deployments/argo-patch.yaml
kubectl apply -f deployments/argo-dashboard-ingress.yaml

Wait for pods to get into a running state

Visit http://[IP_ADDRESS]/argo/

Hope this helps someone with a similar issue.

Rough Istio equivalent of the traefik manifests above in case someone needs it. Istio's rewrite here is doing the job of traefik's stripPrefix.
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
  name: argo-gw
  namespace: istio-system
spec:
  selector:
    istio: ingressgateway
  servers:
    - hosts:
        - yoursite.com
      port:
        name: https
        number: 443
        protocol: https
      tls:
        credentialName: argo-tls
        mode: SIMPLE
---
apiVersion: networking.istio.io/v1beta1
kind: VirtualService
metadata:
  name: argo-https-vs
  namespace: argo
spec:
  gateways:
    - istio-system/argo-gw
  hosts:
    - yoursite.com
  http:
  - match:
    - uri:
        prefix: /argo/
    rewrite:
      uri: /
    route:
    - destination:
        host: argo-server
        port:
          number: 2746

an updated version that works with k8s 1.27 (at least where I tested):
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: argo-server
  namespace: argo
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /$2
    ingress.kubernetes.io/protocol: https # Traefik
    nginx.ingress.kubernetes.io/backend-protocol: https # ingress-nginx
spec:
  ingressClassName: nginx
  rules:
    - http:
        paths:
          - backend:
              service:
                name: argo-server
                port:
                  number: 2746
            path: /argo(/|$)(.*)
            pathType: ImplementationSpecific

I'm using EKS + ALB (with AWS LB Controller).
EKS 1.27
Argo-server v3.5.4
I needed to set the BASE_HREF env var to / in the deployment.
If you are using HELM to deploy argo-workflows set the following in the values file:
values.yaml
server:
  baseHref: /

ingress.yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  annotations:
    alb.ingress.kubernetes.io/certificate-arn: #cert-arn
    alb.ingress.kubernetes.io/healthcheck-path: /
    alb.ingress.kubernetes.io/healthcheck-protocol: HTTP
    alb.ingress.kubernetes.io/listen-ports: '[{"HTTPS": 443}]'
    alb.ingress.kubernetes.io/scheme: internet-facing
    alb.ingress.kubernetes.io/ssl-redirect: "443"
    alb.ingress.kubernetes.io/target-type: ip
    kubernetes.io/ingress.class: alb
  name: argo-server
  namespace: workflows #change it to your namespace, where argo-workflows running
spec:
  ingressClassName: alb
  rules:
  - host: your-argo-workflow-url.com
    http:
      paths:
      - backend:
          service:
            name: argo-server #your argo-server service name created for argo-workflows `kubectl get svc -n workflows`
            port:
              number: 2746
        path: /*
        pathType: ImplementationSpecific

Just to add to @terbepetra above comment.  If you are using argo-workflows helm chart 0.41.1 and eks 1.28 you can just do something like this for the aws loadbancer controller
server:
  ingress:
    enabled: true
    hosts:
      - argo-workflows.yourdomain.com
    annotations:
      kubernetes.io/ingress.class: alb
      external-dns.alpha.kubernetes.io/hostname: argo-workflows.yourdomain.com # if you are using external-dns
      alb.ingress.kubernetes.io/healthcheck-path: /
      alb.ingress.kubernetes.io/healthcheck-protocol: HTTP
      alb.ingress.kubernetes.io/listen-ports: '[{"HTTPS": 443}]'
      alb.ingress.kubernetes.io/ssl-redirect: "443"
      alb.ingress.kubernetes.io/scheme: internal
      alb.ingress.kubernetes.io/target-type: ip
      alb.ingress.kubernetes.io/certificate-arn: YOURCERTARN

I'm facing he same here, the steps I took it:
kubectl apply -n argo -f https://github.com/argoproj/argo-workflows/releases/download/v3.5.8/install.yaml
kubectl set env deployment/argo-server -n argo BASE_HREF=/argo/

My ingress:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  annotations:
    cert-manager.io/issuer: self-signed
    nginx.ingress.kubernetes.io/backend-protocol: HTTP
    nginx.ingress.kubernetes.io/force-ssl-redirect: "true"
    nginx.ingress.kubernetes.io/rewrite-target: /$2
    nginx.ingress.kubernetes.io/ssl-passthrough: "true"
  name: argo-server-workflow
  namespace: argo
spec:
  ingressClassName: nginx
  rules:
  - host: mykubernetes.com
    http:
      paths:
      - backend:
          service:
            name: argo-server
            port:
              number: 2746
        path: /argo(/|$)(.*)
        pathType: ImplementationSpecific
  tls:
  - hosts:
    - mykubernetes.com
    secretName: my-kubernetes-cert

But when I try to reach https://mykubernetes.com/argo/ it gives me 502 Bad Gateway.
~|⇒ curl -k https://mykubernetes.com/argo/
<html>
<head><title>502 Bad Gateway</title></head>
<body>
<center><h1>502 Bad Gateway</h1></center>
<hr><center>nginx</center>
</body>
</html>

I'm not sure what I'm doing wrong. Any help will be appreciate! Thank you

@tbernacchi try removing the extra / in your ingress path config. I think this have been fixed and you should try with removing/adding the / in your uri to test also in your ingress config

this comment should help - https://github.com/argoproj/argo-workflows/issues/3080#issuecomment-1710688216


Possible security risk while using updating images and howdy

Regression?
No
Hyprlock Info and Version
Hyprlock version 0.5.0
 Hyprlock config
# Hyprlock
#

general {
}

background {
    monitor =
    path = screenshot
    blur_size = 5
    blur_passes = 1
    noise = 0.0117
    contrast = 1.3000
    brightness = 0.8000
    vibrancy = 0.2100
    vibrancy_darkness = 0.0
}

input-field {
    monitor =
    size = 250, 50
    outline_thickness = 3
    dots_size = 0.33
    dots_spacing = 0.15
    dots_center = true
    outer_color = rgba(B9A100ff)
    inner_color = $color0
    font_color = $color12
    fade_on_empty = true
    placeholder_text = <i>Magic Word...</i>
    hide_input = false
    position = 0, 200
    halign = center
    valign = bottom
}

image {
    monitor =
    path = ~/.dotfiles/lockscreen.jpg
    size = 1000
    rounding = 10
    border_size = 2
    border_color = rgba(B9A100ff)
    rotate = 0
    reload_time = 10
    reload_cmd = find ~/Pictures/LandscapeSaver/ -type f | shuf -n 1
    position = 0, 0
    halign = center
    valign = center
}

Compositor Info and Version
 System/Version info
Hyprland, built from branch  at commit 4520b30d498daca8079365bdb909a8dea38e8d55  (version: bump to 0.44.1).
Date: Wed Oct 9 12:54:39 2024
Tag: v0.44.1, commits: 5309
built against aquamarine 0.4.3

flags: (if any)

System Information:
System name: Linux
Node name: nova
Release: 6.11.5-zen1-1-zen
Version: #1 ZEN SMP PREEMPT_DYNAMIC Tue, 22 Oct 2024 18:31:33 +0000

GPU information:
00:02.0 VGA compatible controller [0300]: Intel Corporation TigerLake-LP GT2 [Iris Xe Graphics] [8086:9a49] (rev 01) (prog-if 00 [VGA controller])

os-release: NAME="Arch Linux"
PRETTY_NAME="Arch Linux"
ID=arch
BUILD_ID=rolling
ANSI_COLOR="38;2;23;147;209"
HOME_URL="https://archlinux.org/"
DOCUMENTATION_URL="https://wiki.archlinux.org/"
SUPPORT_URL="https://bbs.archlinux.org/"
BUG_REPORT_URL="https://gitlab.archlinux.org/groups/archlinux/-/issues"
PRIVACY_POLICY_URL="https://terms.archlinux.org/docs/privacy-policy/"
LOGO=archlinux-logo

plugins:

Description
If Howdy is used to do face-unlock and an image{} widget with an update_cmd is used it can happen that Howdy/Hyprlock auto-unlocks the session without detecting a face.
Since I like a picture slideshow with a 10-ish second refresh on my lockscreen I've stumbled over this issue
How to reproduce
Steps to reproduce

setup howdy
Use my posted hyprlock.conf (you can lower the reload_time to 1 to make this problem show up even faster)
create the Folder ~/Pictures/LandscapeSaver and put some images in it (or change the path ;) )
lock the screen
cover up your camera (I just use my hand...)
press enter to trigger howdy
after some failed login attempts hyprlock will auto-unlock even with the camera covered up (you may have to run "faillock --user YOURUSER --reset" on a tty if you manage to get to a locked out state before the auto-unlock problem triggers.

Observations

The auto-unlock tends to happen if the Howdy timeout and the picture refresh happen at the same time (which could be quite frequently with 10 seconds)
removing the refresh-timer fixes the problem reliably - so it has something to do with the reload
putting the reload command in a script and pointing the reload_cmd to that script does not help

Crash reports, logs, images, videos
No response

That seems hard to reproduce so I am not going to try for now.
But I did find a race that is probably at least partially responsible for this. Although I have no idea why it would unlock and I am very curious about that...
@londeril would be greatly appreciated if you could test #536 to see if fixes it.

Hi :)
I just build from #536 and tested it - sadly this does not fix the problem.

Can you maybe also test the new pr #539? Thanks in advance!
A bit of context to understand how a problem like this can happen:
Hyprlock depends on libpam.so and we call into that to start authentication. Modules defined in your pam config then get loaded into into hyprlock itself. the module code (so howdy pam) is executed within the process that decides to authenticate. Then when you send SIGUSR2, which is an async signal, to hyprlock, the kernel will interrupt our process. Currently that can happend during authentication. Luckily we handle authentication in a separate thread and we can block the signals there. Which I guess will be the actual fix for this.
That being said, the howdy module should never unlock just because it is interrupted at an inconvenient time. (idk if they are actually supposed to be async signal safe)
So actually I think this is a bug in howdy, which showed some flaws in hyprlock.
Based on my current best guess.

Thanks for the explanation and the change!
I just build from pr-539 and tested it - but the bug is still there... if I set the refresh to 1sec., lock my session, cover up my camera and trigger Howdy the system unlocks almost instantly...
if I set the refresh to10 seconds, lock the session, cover the camera and count to 10 and trigger howdy just before the image changes the session unlocks...

I just build from pr-539 and tested it - but the bug is still there... if I set the refresh to 1sec., lock my session, cover up my camera and trigger Howdy the system unlocks almost instantly...

That is crazy. I will install howdy and try to reproduce it. I am out of ideas.

Thanks! let me know if and how I can help!

It's a pretty bad flaw in howdy's pam module.
They use wait to wait for their child process (howdy's python implementation) to finish.
But wait just waits for ANY child process. So when our reload_cmd exits, it triggers this and unlocks due to a lack of checks in the pam module.
I will open an issue or pr in the howdy repo. But it does not seem like there isn't a lot of development there. So for now I would advocate for not using howdy.
This can be closed on our side.

For reference:
This is were it calls wait: howdy/src/pam/main.cc#L293
Then it just passes status down until we get past this check cause status is actually from one of hyprlocks child processes: howdy/src/pam/main.cc#L117

@londeril can you change the title to something like "Howdy's pam module causes unlocks when using reload commands".
This is also reproducible with label updates.

WOW! Thanks for all you did! I hope the Howdy team will address this!
I'll stop using Howdy to unlock my sessions for the time being and only use it for sudo auth...

closing


Some emojis show an unexpected square beside them

When testing this font with https://getemoji.com, I see that the skiing and the sleeping emojis under the "Pale Emojis" section (and also the other colored human emojis) show an additional square beside them, as shown in the screenshot below. (Please see the last row and the right side of the 4th row from the top).

When testing with Noto Emoji fonts, the issue is not seen.

Hi @supriyo-biswas, interestingly as it may sound, these emoji are not available on macOS. I just tested it on macOS Sonoma 14.2 (latest version).
I guess since in the Apple designs of these particular emoji the skin is not even visible, they decided to just include the base version, which leads to the incorrect rendering (the square you see corresponds to the skin tone codepoint).


Initial Commit

Your client is awesome. I work own project related with patents and i use your client for connect my api from epo. I have a classification search and i fork your project and add simple classification search method. I have to change some thing you coordinate my mistake and i hope update your project with my pull request.

@MMustafa53 Thanks for the PR. Can you please remove formatting changes? The code in this project is formatted using https://black.readthedocs.io/en/stable/ to avoid this kind of issue.
Once you've done that, let me know so I can review what the actual changes are, thank you.


Error on 'permissions' in 'field list'

Hi,
I tried to update luckperms on the last version and when I start my server it seems to be no problems but when I wait a couple of minutes, I got this message https://onyxworld.fr/upload/notepad%2B%2B_52arOxSTFE.png and permissions are not set correctly anymore.

That's a weird error - have you manually edited the database at all? Seems like something has corrupted there.
Easiest way to fix is probably to export all of your data (/lp export), wipe the DB tables and then re-import


fix: update version output when commit SHA is not present

Hey!
Arch maintainer of yazi here :wave:
I realized version flag (-V) shows the following for me:
yazi 0.2.3 (VERGEN_IDEMPOTENT_OUTPUT 2024-02-11)

This is due to git commits not being available at build time.
This PR updates the version output like following when commit SHA is not available:
yazi 0.2.3 (2024-02-11)

Hi, thank you for the PR!
Would it be possible to add the name of the distribution/package manager during building? This way, when users submit bug reports, I can know their installation method or the distribution they're using.
For example, Homebrew adds:
ENV["VERGEN_GIT_SHA"] = tap.user

And it looks like:
$ yazi -V
yazi 0.2.3 (Homebrew 2024-02-07)

Hello,

Would it be possible to add the name of the distribution/package manager during building?

Good idea! Does vergen provide this information though? Or do you mean getting this info from the OS itself? (with a 3rd party crate?)

ENV["VERGEN_GIT_SHA"] = tap.user

Where is tap.user coming from in this case?

Ah I see! That's a nice hack.
I applied it in https://gitlab.archlinux.org/archlinux/packaging/packages/yazi/-/commit/e005d6a9806568e4dfc6337a1d432cf4805329e8
Then I guess there is no need for this PR 🐻

Thanks for the quick fix! Let me close this PR then


System tray daemon/service

Although each platform will have it's own implementation, we will collect shared information, like networking, etc here.
The daemon should allow the system tray/system menu entry to get information about the cluster state It will therefore provide the following:

[ ] cluster state; running, starting, error, stopping, stopped
[ ] start the cluster
[ ] stop the cluster
[ ] get information about console

needed to start a possible browser

[ ] get information for environment

needed to start a developer terminal oc and odo

[ ] return log about the cluster current state

this returns the startup log
if error this returns the startup log and possible config info

Note: The daemon should run and allow interaction as a system process even when a VPN is active.

@anjannath worked on a PoC. This is available at https://github.com/anjannath/crc/tree/daemon


Maximized screen border

There is a border on the bottom and right sides of the window when GVim is maximized. This is especially noticeable with dark themes and is annoying for presentations given the bright spot on a dark environment.
A possible solution could be to set the background color of this area to match the current theme background or at least set it to black if background=dark

Same as #349?

closing as duplicate of #349


Adding link to official documentation

FAQ from Ubiquiti
https://help.ui.com/hc/en-us/articles/18930473041047-Best-Practices-for-Sonos-Devices

Done


Server-side rendering?

It would be really cool if you'd support server-side rendering. Will there be support for it?
Although in that case you would need to move from hashHistory to use browserHistory

It's in the todos :) if you'd like to help please make PRs against dev branch

I would love to, but actually one of the reasons I opened this issue was that I didn't know how to do this combined with react-router (that uses browser history), so I was hoping that this project would tell me :D

https://github.com/rackt/example-react-router-server-rendering-lazy-routes/


geojson数据无法加载问题

geojson格式的数据无法加载出来，使用的是FeatureCollection.fromJson这个方法，但一直无法加载数据。
以下的部分数据:
{"type":"FeatureCollection","crs":{"type":"name","properties":{"name":"EPSG:4326"}},"features":[{"type":"Feature","geometry":{"type":"Point","coordinates":[115.85301011962133,28.685312910262667]},"properties":{"NAME":"测试点"}}]}

Hi there! We try to use the repo to just answer questions or address issues with samples. If you have a more general question please ask it here:
https://community.esri.com/t5/arcgis-runtime-sdk-for-android-questions/bd-p/arcgis-runtime-sdk-for-android-questions
Thanks!


[SIP-36] Update CONTRIBUTING with TypeScript details

CATEGORY
Choose one

[ ] Bug Fix
[ ] Enhancement (new features, refinement)
[ ] Refactor
[ ] Add tests
[ ] Build / Development Environment
[x] Documentation

SUMMARY
Updates CONTRIBUTING.md with the details agreed upon in SIP-36
TEST PLAN
CI
ADDITIONAL INFORMATION

[x] Has associated issue: #9101
[ ] Changes UI
[ ] Requires DB Migration.
[ ] Confirm DB Migration upgrade and downgrade tested.
[ ] Introduces new feature or API
[ ] Removes existing feature or API

REVIEWERS
to: @nytai @graceguo-supercat @kristw @rusackas

Codecov Report

Merging #9185 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master    #9185   +/-   ##
=======================================
  Coverage   59.13%   59.13%
=======================================
  Files         372      372
  Lines       11938    11938
  Branches     2925     2925
=======================================
  Hits         7059     7059
  Misses       4699     4699
  Partials      180      180

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 3efdfc5...83ba3a3. Read the comment docs.


Update scala3-library to 3.1.0

Updates org.scala-lang:scala3-library from 3.0.2 to 3.1.0.
GitHub Release Notes - Version Diff - Version Diff
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.scala-lang", artifactId = "scala3-library" } ]

labels: library-update, semver-minor

Hold pending https://github.com/typelevel/cats/pull/4016.  We should follow the community.


Better CAN support

@Pho3niX90 is leading this.

@Pho3niX90 any updates would be nice for someone looking for this.

Help needed here!


Logitech G15 G11

This is a sample configuration for the extra G-Keys used on the original Logitech G15 and Logitech G11 with 18 G-Keys. (There are newer variants with less keys)
Running g15daemon / libg15 maps the G-Keys to some rarely used media keys which allows them to be used in programs or shortcut managers without having to run an additional userspace counterpart like gnome15 or the original Logitech profile software used to do but has the problem that the media keys may already get picked up by some desktop environments. That's why I've also assigned some modifier to every set of keys.
Speaking of sets there are originally only three sets (M1-M3) but without additional tinkering the macro record button (MR) would still be a dumb media key so I've assigned a fourth set to it.
Personally I've set the G-Keys to call a little script which looks for the currently active application and calls other scripts based on that and even allows for toggling scripts. Together with this config it basically restores the known behavior of 3 (+1) macro sets per profile (active application).

Thanks!


Middleware as provider propperty

Currently middlewares can only be added in config or binded directly in app as the OrkestraWP\HttpProvider does.
It will be easier to add as a property array in the provider, similar as a listener or command.
class HttpProvider extends CoreProvider
{
	/**
	 * @var class-string[]
	 */
	public array $listeners = [
		AdminDispatch::class,
		ApiDispatch::class,
	];

	/**
	 * @var class-string[]
	 */
	public array $middleware = [
		'auth' => AuthMiddleware::class,
	];
}

Will be also useful to keep a track on each middleware addition and add a command to list the active middleware stack and their source.
$ php maestro middleware:list

Alias         | Middleware                          | Placed By
_____________________________________________________________________________
auth          | App\Middleware\AuthMiddleware       | App\Providers\HttpProvider


gnome-tweak-tool does not work in XFCE

It doesn't start up. Instead, it returns the following error:
$ gnome-tweak-tool

** (.gnome-tweak-tool-wrapped:8504): WARNING **: Error retrieving accessibility bus address: org.freedesktop.DBus.Error.ServiceUnknown: The name org.a11y.Bus was not provided by any .service files
WARNING : Shell not installed or running
GLib-GIO-Message: Using the 'memory' GSettings backend.  Your settings will not be saved or shared with other applications.
WARNING : Error loading desktopfile: /home/wizeman/.config/autostart/gnome-keyring-gpg.desktop
INFO    : GSetting missing org.gnome.mutter
Traceback (most recent call last):
  File "/nix/store/7cm1j9wznpzxvd7i89whkaz8xkhimav5-gnome-tweak-tool-3.12.0/lib/python2.7/site-packages/gtweak/app.py", line 39, in do_activate
    self.win = Window(self, model)
  File "/nix/store/7cm1j9wznpzxvd7i89whkaz8xkhimav5-gnome-tweak-tool-3.12.0/lib/python2.7/site-packages/gtweak/tweakview.py", line 54, in __init__
    self._model.load_tweaks(self)
  File "/nix/store/7cm1j9wznpzxvd7i89whkaz8xkhimav5-gnome-tweak-tool-3.12.0/lib/python2.7/site-packages/gtweak/tweakmodel.py", line 125, in load_tweaks
    mods = __import__("gtweak.tweaks", globals(), locals(), tweak_files, 0)
  File "/nix/store/7cm1j9wznpzxvd7i89whkaz8xkhimav5-gnome-tweak-tool-3.12.0/lib/python2.7/site-packages/gtweak/tweaks/tweak_group_shell.py", line 65, in <module>
    sw = StaticWorkspaceTweak(size_group=sg, loaded=_shell_loaded)
  File "/nix/store/7cm1j9wznpzxvd7i89whkaz8xkhimav5-gnome-tweak-tool-3.12.0/lib/python2.7/site-packages/gtweak/tweaks/tweak_group_shell.py", line 49, in __init__
    default = self.STATUS.keys()[self.STATUS.values().index(self.settings[self.key_name])]
ValueError: None is not in list

(triage) @wizeman can you still reproduce that?

@Profpatsch Yes, I can still reproduce it...

Happens to me as well, was going to change gtk3 theme. Seems like a legit use case outside of gnome.

@despairblue I use lxappearence for that.

@Mic92 that does neither show gtk3 themes nor any installed gtk2 theme except for Raleigh. :cry:

I have the same error. GNOME tweak tool would never work outside of GNOME, this is an upstream issue which we don't have control over.
Also, "middle click to lower window" is seemingly disabled by default in the latest Chromium (on Xfce), I can't reproduce the problem in Chromium ticket 132061 linked above, it's also marked as fixed.

system: "x86_64-linux"
host os: Linux 4.14.5, NixOS, 18.03.git.ab1d2a5 (Impala)
multi-user?: yes
sandbox: yes
version: nix-env (Nix) 1.11.16
channels(root): "overlay, nixos-18.03pre122666.afe9649210c"
channels(chronos): ""
nixpkgs: /nix/var/nix/profiles/per-user/root/channels/nixos/nixpkgs

$ nix-build -E "with import <nixpkgs> {}; gnome3.gnome-tweak-tool.overrideAttrs (super: { buildInputs = super.buildInputs ++ [ gnome3.mutter ]; })"

At least opens.

Oh, great! This was fixed by @jtojnar in master 2 days ago: 98adff8b1a4b99a5ed4b37f64d09c0f3c6e020d9

Weird, there should not have been any functional changes other than the update.

@jtojnar You have added gnome3.mutter to buildInputs, which solved the issue. I still don't think it would necessarily work other than just open, because some of the settings are specific to GNOME.

Oh, right, I forgot about that.


⚠ Bofrost.fr has degraded performance

In 299b253, Bofrost.fr (https://www.bofrost.fr) experienced degraded performance:

HTTP code: 200
Response time: 827 ms

Resolved: Bofrost.fr performance has improved in cc34688.


Build fails

~/go/src/github.com/pusher/crank$ make
go fmt ./...
can't load package: /home/abourget/go/src/github.com/pusher/crank/cmd/crank/main.go:4:2: local import "../../src/crank" in non-local package
can't load package: /home/abourget/go/src/github.com/pusher/crank/cmd/crankctl/main.go:4:2: local import "../../src/crank" in non-local package
can't load package: /home/abourget/go/src/github.com/pusher/crank/src/crank/process.go:4:2: local import "../devnull" in non-local package
make: *** [fmt] Erreur 1

when building the latest master, under go version go1.4.1 linux/amd64

Thanks @abourget. It looks like go has removed relative imports.


PDF watermarker

Script Title - Should able to watermark pdfs
what will change - Adding script
Instructions

Create a new folder for your script and file/folder name should be appropriate.
Create a README.md in your folder for program Instructions
add requirements.txt if needed

Please add/delete options that are not relevant.

[x] Adding New Code

Programming Language

[x] Python

Happy Coding,

@pawangeek want to work on this issue.
Kindly assign me.

Okay cool

Hi @pawangeek can you please assign this to me.
Thanks

Hi @pawangeek I don't have any pending PRs. Can you assign me this one.

Hi @pawangeek I don't have any pending PRs. Can you assign me this one.

okay


optimization: call fs.exists only when necessary

Upstream SPARK-XXXXX ticket and PR link (if not applicable, explain)
https://github.com/apache/spark/pull/25928
What changes were proposed in this pull request?
When saving a dataframe into Hadoop, spark first checks if the file exists before inspecting the SaveMode to determine if it should actually insert data. However, the pathExists variable is actually not used in the case of SaveMode.Append. In some file systems, the exists call can be expensive and hence this PR makes that call only when necessary.
How was this patch tested?
Existing unit tests should cover this.
Please review http://spark.apache.org/contributing.html before opening a pull request.

This make sense to me. Is this also a change we can file a spark ticket for and upstream?

Yep, upstream PR is linked in the description.
On Wed, 25 Sep 2019 at 9:12 PM, Yifei Huang<EMAIL_ADDRESS>wrote:

This make sense to me. Is this also a change we can file a spark ticket
for and upstream?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/palantir/spark/pull/607?email_source=notifications&email_token=AALVPW4G3WMDGFAZN65VV43QLPAZZA5CNFSM4I2OVMA2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD7TGHSI#issuecomment-535192521,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AALVPWZDRH5O2IBX4UP6VMTQLPAZZANCNFSM4I2OVMAQ
.

Ah sorry didn't see that. can you create a Spark ticket here and link it? https://issues.apache.org/jira/projects/SPARK/issues. I think you'll need one anyway to merge the upstream PR too

@yifeih created a ticket and updated the PR title, but let's hold off on merging this until the upstream one merges so we can make the code identical (or if you still cherry-pick from upstream, we can do that as well)

@yifeih this PR is now a cherry-pick from upstream master, good to merge/release from my end.


Anomaly Detection Create components integration with HashRing

Is your feature request related to a problem?
Create components integration for Anomaly Detection requires the removal of ClusterService from component constructors and to replace them with transport API requests to OpenSearch to add setting update consumers to OpenSearch's ClusterService. However, the ADTaskManager component requires this HashRing object.
Internally, this HashRing utilizes the cluster service to determine the AD version of the local node and either build or retrieve nodes with the same version.
This is used by the ADTaskManager to identify and send requests to the coordinating Anomaly Detector node, which in turn delegates AD tasks to worker nodes to execute.
What solution would you like?
In order to unblock create component integration, it is required that we either remove this HashRing dependency for the ADTaskManager component or to utilize the opensearch-sdk-java sendLocalNodeRequest API to enable the HashRing's functionality for AnomalyDetection as an extension.
Open to suggestions on how to move forward. CC: @saratvemulapalli @owaiskazi19 @dbwiddis

The underlying issue is that in the plugin model, a copy of the plugin is running on every node in the OpenSearch cluster, so the cluster state is relevant for finding those other same-version plugin copies.
In the extensions model, we are executing AD tasks locally on the extension and without a corresponding "plugin" running on other nodes, there's no reason to send anything to the ExtensionsOrchestrator.
The ideal long term solution is to have a standard "execute this task on the OpenSearch cluster" with the ability to control which nodes in the cluster execute it based on some filter.  In the near term, I think we need to ignore this "check AD version" bit and just send everything to the whole cluster.


Add music editor code to the mixer package

This adds the song decoding, asset template functions, and sequencer to the mixer package.
Eventually, I would like to make the sequencer more accurate by moving the timing callback into C++/sim

Some comments on renderinstrument & renderdruminstrument will help a lot. Otherwise looks good.

@abchatra added comments


SCons: Disable C++ exception handling

Upon investigating the extremely slow MSVC build times in #80513, I noticed that while Godot policy is to never use exceptions, we weren't enforcing it with compiler flags, and thus still included exception handling code and stack unwinding.
This is wasteful on multiple aspects:

Binary size: Around 20% binary size reduction with exceptions disabled for both MSVC and GCC binaries.
Compile time:

More than 50% build time reduction with MSVC.
10% to 25% build time reduction with GCC + LTO.

Performance: Possibly, needs to be benchmarked.

Since users may want to re-enable exceptions in their own thirdparty code or the libraries they compile with Godot, this behavior can be toggled with the disable_exceptions SCons option, which defaults to true.
Alternative to #80516.
Fixes #80513.
Could be considered for a 4.1 cherry-pick, but this will require significant testing to make sure it behaves as expected, and it may be a welcome but surprising change for existing 4.1.x users, so we might opt for not including it.

Test builds
Edit: New test builds for all platforms made with the official buildsystem: https://downloads.tuxfamily.org/godotengine/testing/4.2-dev-pr80612/
To help validate this PR, I've done some builds of the before and after states (from this PR, so on top of 0308422f461dce11339896249e23ff02d978bfa0), for Linux (GCC on our official buildsystem) and Windows (VS 2022 on my laptop, unsigned).
You'll find zips here:
https://downloads.tuxfamily.org/godotengine/testing/4.2.dev.no-exceptions/
Linux builds
-rwxr-xr-x. 1 akien akien 116M Aug 14 13:11 godot.linuxbsd.editor.x86_64.exceptions-with-oidn
-rwxr-xr-x. 1 akien akien 110M Aug 14 11:02 godot.linuxbsd.editor.x86_64.exceptions-without-oidn
-rwxr-xr-x. 1 akien akien  97M Aug 14 13:11 godot.linuxbsd.editor.x86_64.no-exceptions-with-oidn
-rwxr-xr-x. 1 akien akien  90M Aug 14 11:02 godot.linuxbsd.editor.x86_64.no-exceptions-without-oidn
-rwxr-xr-x. 1 akien akien  68M Aug 14 13:11 godot.linuxbsd.template_release.x86_64.exceptions
-rwxr-xr-x. 1 akien akien  57M Aug 14 13:11 godot.linuxbsd.template_release.x86_64.no-exceptions

exceptions are the same as we currently use for official builds, and no-exceptions use the new option to disable exception handling.
OIDN is special cased as I couldn't disable exception handling for it yet, so the with-oidn builds actually still have exceptions enabled for OIDN's build environment only. without-oidn builds were made with module_denoise_enabled=no. It's an editor-only dependency so it doesn't affect the template build.
I didn't include the without-oidn builds in the above ZIPs to save your bandwidth, I mostly build them to see the impact on size and build time.
These builds were made on the official buildsystem with the same options as official releases, so with full optimizations and LTO enabled (scons p=linuxbsd target=editor warnings=no production=yes)
Windows builds
-rwxr-xr-x 1 Remi 197121 118M Aug 14 11:17 godot.windows.editor.x86_64.exceptions.exe*
-rwxr-xr-x 1 Remi 197121 101M Aug 14 13:50 godot.windows.editor.x86_64.no-exceptions.exe*
-rwxr-xr-x 1 Remi 197121  54M Aug 14 12:17 godot.windows.template_release.x86_64.exceptions.exe*
-rwxr-xr-x 1 Remi 197121  51M Aug 14 11:52 godot.windows.template_release.x86_64.no-exceptions.exe*

Impact on size
As seen above, for Linux builds with GCC 10, we get a 16% size reduction for the editor build (or said otherwise, enabling exceptions added 20% size), and a similar ratio for the release template.
With LTO disabled, both build types are around 3M bigger, so the ratio doesn't change much.
Dev build: 758M to 736M on Linux, so 3% size reduction. Less than I expected.
On Windows, there's a similar 15% size reduction for the editor build, and only 5% size reduction for the release template (but it was already significantly smaller than the Linux one, now they have a comparable size).
Impact on compile time
Linux with GCC 10
Production builds with LTO enabled.
scons p=linuxbsd target=editor warnings=no production=yes
==> ../logs/godot-editor-exceptions-with-oidn.log <==
[Time elapsed: 00:09:19.461]

==> ../logs/godot-editor-exceptions-without-oidn.log <==
[Time elapsed: 00:09:09.282]

==> ../logs/godot-editor-no-exceptions-with-oidn.log <==
[Time elapsed: 00:08:51.862]

==> ../logs/godot-editor-no-exceptions-without-oidn.log <==
[Time elapsed: 00:07:55.473]

==> ../logs/godot-template_release-exceptions.log <==
[Time elapsed: 00:06:10.944]

==> ../logs/godot-template_release-no-exceptions.log <==
[Time elapsed: 00:04:34.993]

The differences aren't huge, because LTO still takes a while, and it seems like having to compile OIDN with exceptions enabled adds a whole minute to the build time.
If we compare the builds without OIDN, there's a 13% build time reduction for the editor, and a 26% build time reduction for the release template.
Builds without LTO enabled.
no-lto is scons p=linuxbsd target=editor warnings=no, while dev-build is scons p=linuxbsd target=editor dev_build=yes.
==> ../ext/logs/godot-editor-dev-build-exceptions.log <==
[Time elapsed: 00:05:47.942]

==> ../ext/logs/godot-editor-dev-build-exceptions.log <==
[Time elapsed: 00:06:00.398]

==> ../ext/logs/godot-editor-no-lto-exceptions.log <==
[Time elapsed: 00:10:02.207]

==> ../ext/logs/godot-editor-no-lto-no-exceptions.log <==
[Time elapsed: 00:07:35.507]

For an optimized build without LTO (so not paying a disproportionate amount of time for linking), there's a significant 25% build time speedup.
For the dev builds, I actually got a 2% build time increase, though I don't know if it's representative, I ran the test only once.
Sizes for these builds for those interested:
-rwxr-xr-x. 1 root root 758M Aug 14 11:45 godot.linuxbsd.editor.dev.x86_64.exceptions-dev-build
-rwxr-xr-x. 1 root root 736M Aug 14 12:01 godot.linuxbsd.editor.dev.x86_64.no-exceptions-dev-build
-rwxr-xr-x. 1 root root 119M Aug 14 11:34 godot.linuxbsd.editor.x86_64.exceptions-no-lto
-rwxr-xr-x. 1 root root 100M Aug 14 11:19 godot.linuxbsd.editor.x86_64.no-exceptions-no-lto

Windows with MSVC from VS 2022
scons p=windows target=editor scu_build=yes verbose=yes

- exceptions
[Time elapsed: 00:34:24.411]

- no-exceptions
[Time elapsed: 00:12:18.504]

scons p=windows target=template_release scu_build=yes verbose=yes

- exceptions
[Time elapsed: 00:19:28.350]

- no-exceptions
[Time elapsed: 00:09:20.439]

I used scu_build to speed things up, so this exacerbates issues like #80513 since the parallel build goes faster, but we'll still get stuck a long time on gdscript_vm.cpp for the exceptions build.
The results are pretty impressive though, with the build time divided by 3 for the editor (34m to 12m) and divided by 2 for the template (19m to 9m).
Impact on performance
Help welcome to run some benchmarks! You can use the builds linked above.
Impact on tests
I had to disable exceptions in doctest, which downgrades our REQUIRE/FAIL macros to the CHECK level (which marks the test as failed but doesn't rage quit). We need to see if that impacts our test suites negatively, and if we should clarify this behavior by changing our existing REQUIRE/FAIL uses to CHECK.
This is work for a follow-up PR where I'd welcome a volunteer - for this PR we should just ensure that the tests still work properly.
Further work
godot-cpp could likely reuse the same logic to build without extensions by default, with a command line option to override that behavior for users who want to compile with a library that needs exceptions (or their own code).
3.x backport: #80622

I had to disable exceptions in doctest, which downgrades our REQUIRE/FAIL macros to the CHECK level (which marks the test as failed but doesn't rage quit). We need to see if that impacts our test suites negatively, and if we should clarify this behavior by changing our existing REQUIRE/FAIL uses to CHECK.

We seem to have one failing test suite after these changes:
$ ./bin/godot.linuxbsd.editor.dev.x86_64 --test
[doctest] doctest version is "2.4.11"
[doctest] run with "--help" for options
ERROR: Condition "singleton != nullptr" is true.
   at: NavigationServer3D (./servers/navigation_server_3d.cpp:189)
===============================================================================
./tests/core/io/test_image.h:221:
TEST CASE:  [Image] Modifying pixels of an image

./tests/core/io/test_image.h:271: ERROR: CHECK( img->get_pixel(x, y).is_equal_approx(Color(1, 1, 1, 1)) ) is NOT correct!
  values: CHECK( false )
  logged: fill_rect() should colorize all image pixels within rect bounds.

./tests/core/io/test_image.h:271: ERROR: CHECK( img->get_pixel(x, y).is_equal_approx(Color(1, 1, 1, 1)) ) is NOT correct!
  values: CHECK( false )
  logged: fill_rect() should colorize all image pixels within rect bounds.

./tests/core/io/test_image.h:271: ERROR: CHECK( img->get_pixel(x, y).is_equal_approx(Color(1, 1, 1, 1)) ) is NOT correct!
  values: CHECK( false )
  logged: fill_rect() should colorize all image pixels within rect bounds.

./tests/core/io/test_image.h:271: ERROR: CHECK( img->get_pixel(x, y).is_equal_approx(Color(1, 1, 1, 1)) ) is NOT correct!
  values: CHECK( false )
  logged: fill_rect() should colorize all image pixels within rect bounds.

./tests/core/io/test_image.h:271: ERROR: CHECK( img->get_pixel(x, y).is_equal_approx(Color(1, 1, 1, 1)) ) is NOT correct!
  values: CHECK( false )
  logged: fill_rect() should colorize all image pixels within rect bounds.

./tests/core/io/test_image.h:271: ERROR: CHECK( img->get_pixel(x, y).is_equal_approx(Color(1, 1, 1, 1)) ) is NOT correct!
  values: CHECK( false )
  logged: fill_rect() should colorize all image pixels within rect bounds.

./tests/core/io/test_image.h:271: ERROR: CHECK( img->get_pixel(x, y).is_equal_approx(Color(1, 1, 1, 1)) ) is NOT correct!
  values: CHECK( false )
  logged: fill_rect() should colorize all image pixels within rect bounds.

./tests/core/io/test_image.h:271: ERROR: CHECK( img->get_pixel(x, y).is_equal_approx(Color(1, 1, 1, 1)) ) is NOT correct!
  values: CHECK( false )
  logged: fill_rect() should colorize all image pixels within rect bounds.

./tests/core/io/test_image.h:271: ERROR: CHECK( img->get_pixel(x, y).is_equal_approx(Color(1, 1, 1, 1)) ) is NOT correct!
  values: CHECK( false )
  logged: fill_rect() should colorize all image pixels within rect bounds.

./tests/core/io/test_image.h:271: ERROR: CHECK( img->get_pixel(x, y).is_equal_approx(Color(1, 1, 1, 1)) ) is NOT correct!
  values: CHECK( false )
  logged: fill_rect() should colorize all image pixels within rect bounds.

./tests/core/io/test_image.h:271: ERROR: CHECK( img->get_pixel(x, y).is_equal_approx(Color(1, 1, 1, 1)) ) is NOT correct!
  values: CHECK( false )
  logged: fill_rect() should colorize all image pixels within rect bounds.

./tests/core/io/test_image.h:271: ERROR: CHECK( img->get_pixel(x, y).is_equal_approx(Color(1, 1, 1, 1)) ) is NOT correct!
  values: CHECK( false )
  logged: fill_rect() should colorize all image pixels within rect bounds.

./tests/core/io/test_image.h:271: ERROR: CHECK( img->get_pixel(x, y).is_equal_approx(Color(1, 1, 1, 1)) ) is NOT correct!
  values: CHECK( false )
  logged: fill_rect() should colorize all image pixels within rect bounds.

./tests/core/io/test_image.h:271: ERROR: CHECK( img->get_pixel(x, y).is_equal_approx(Color(1, 1, 1, 1)) ) is NOT correct!
  values: CHECK( false )
  logged: fill_rect() should colorize all image pixels within rect bounds.

./tests/core/io/test_image.h:271: ERROR: CHECK( img->get_pixel(x, y).is_equal_approx(Color(1, 1, 1, 1)) ) is NOT correct!
  values: CHECK( false )
  logged: fill_rect() should colorize all image pixels within rect bounds.

./tests/core/io/test_image.h:271: ERROR: CHECK( img->get_pixel(x, y).is_equal_approx(Color(1, 1, 1, 1)) ) is NOT correct!
  values: CHECK( false )
  logged: fill_rect() should colorize all image pixels within rect bounds.

./tests/core/io/test_image.h:271: ERROR: CHECK( img->get_pixel(x, y).is_equal_approx(Color(1, 1, 1, 1)) ) is NOT correct!
  values: CHECK( false )
  logged: fill_rect() should colorize all image pixels within rect bounds.

./tests/core/io/test_image.h:271: ERROR: CHECK( img->get_pixel(x, y).is_equal_approx(Color(1, 1, 1, 1)) ) is NOT correct!
  values: CHECK( false )
  logged: fill_rect() should colorize all image pixels within rect bounds.

./tests/core/io/test_image.h:271: ERROR: CHECK( img->get_pixel(x, y).is_equal_approx(Color(1, 1, 1, 1)) ) is NOT correct!
  values: CHECK( false )
  logged: fill_rect() should colorize all image pixels within rect bounds.

./tests/core/io/test_image.h:271: ERROR: CHECK( img->get_pixel(x, y).is_equal_approx(Color(1, 1, 1, 1)) ) is NOT correct!
  values: CHECK( false )
  logged: fill_rect() should colorize all image pixels within rect bounds.

./tests/core/io/test_image.h:271: ERROR: CHECK( img->get_pixel(x, y).is_equal_approx(Color(1, 1, 1, 1)) ) is NOT correct!
  values: CHECK( false )
  logged: fill_rect() should colorize all image pixels within rect bounds.

./tests/core/io/test_image.h:271: ERROR: CHECK( img->get_pixel(x, y).is_equal_approx(Color(1, 1, 1, 1)) ) is NOT correct!
  values: CHECK( false )
  logged: fill_rect() should colorize all image pixels within rect bounds.

./tests/core/io/test_image.h:271: ERROR: CHECK( img->get_pixel(x, y).is_equal_approx(Color(1, 1, 1, 1)) ) is NOT correct!
  values: CHECK( false )
  logged: fill_rect() should colorize all image pixels within rect bounds.

./tests/core/io/test_image.h:271: ERROR: CHECK( img->get_pixel(x, y).is_equal_approx(Color(1, 1, 1, 1)) ) is NOT correct!
  values: CHECK( false )
  logged: fill_rect() should colorize all image pixels within rect bounds.

./tests/core/io/test_image.h:271: ERROR: CHECK( img->get_pixel(x, y).is_equal_approx(Color(1, 1, 1, 1)) ) is NOT correct!
  values: CHECK( false )
  logged: fill_rect() should colorize all image pixels within rect bounds.

./tests/core/io/test_image.h:271: ERROR: CHECK( img->get_pixel(x, y).is_equal_approx(Color(1, 1, 1, 1)) ) is NOT correct!
  values: CHECK( false )
  logged: fill_rect() should colorize all image pixels within rect bounds.

ERROR: Resource was not pre cached for the resource section, bug?
   at: _write_resource (./scene/resources/resource_format_text.cpp:1848)
WARNING: Couldn't load resource (no cache): local://Resource_7urp5
     at: parse_variant (./core/io/resource_format_binary.cpp:411)
ERROR: The object does not have any 'meta' values with the key 'next'.
   at: get_meta (./core/object/object.cpp:926)
ERROR: The object does not have any 'meta' values with the key 'next'.
   at: get_meta (./core/object/object.cpp:926)

We were already defining -fno-exceptions for Android, iOS and Web, so I removed those since it's now done in SConstruct directly.
Also removed the ios_exceptions option since it's redundant with disable_exceptions (as long as -fexceptions is the default behavior with Apple Clang, to be confirmed @bruvzg).

Ran the production builds on my machine (6 core CPU), with MSVC, same scons options.
Editor build time goes from 12:52 to 7:36, a reduction of 41%.
Release template build time goes from 7:46 to 5:45, a reduction of 26%.

I made an "official" build (same build containers and options as official releases) from this PR for all platforms, so we can easily test the change and compare with 4.2-dev3 from a few days ago.
https://downloads.tuxfamily.org/godotengine/testing/4.2-dev-pr80612/
4.2-dev3 for comparison: https://downloads.tuxfamily.org/godotengine/4.2/dev3/
Size comparison:
    4.2-dev3     PR 80612     Diff.    Binary

   228.3 MiB    191.1 MiB    -16.3%    Godot.app
   105.4 MiB     91.4 MiB    -13.3%    Godot_v4.2-dev_linux.x86_32
   115.6 MiB     96.3 MiB    -16.7%    Godot_v4.2-dev_linux.x86_64
   112.7 MiB    100.6 MiB    -10.7%    Godot_v4.2-dev_win32.exe
   114.8 MiB     97.3 MiB    -15.2%    Godot_v4.2-dev_win64.exe
    66.8 MiB     56.8 MiB    -15.0%    templates/linux_debug.x86_32
    69.8 MiB     56.7 MiB    -18.8%    templates/linux_debug.x86_64
    66.2 MiB     57.1 MiB    -13.7%    templates/linux_release.x86_32
    67.6 MiB     56.0 MiB    -17.2%    templates/linux_release.x86_64
   281.1 MiB    232.9 MiB    -17.1%    templates/macos_template.app
    71.4 MiB     62.8 MiB    -12.0%    templates/windows_debug_x86_32.exe
    68.5 MiB     56.7 MiB    -17.2%    templates/windows_debug_x86_64.exe
    71.1 MiB     61.9 MiB    -12.9%    templates/windows_release_x86_32.exe
    66.0 MiB     56.1 MiB    -15.0%    templates/windows_release_x86_64.exe

OS: Fedora 38
CPU: Intel Core i9-13900K
SSD: Solidigm P44 Pro 2 TB
Compiler: GCC 13.2.1

Build options
Editor build options: scons -j32 platform=linuxbsd linker=mold optimize=none fast_unsafe=yes progress=no debug_symbols=yes builtin_embree=no builtin_enet=no builtin_freetype=no builtin_graphite=no builtin_harfbuzz=no builtin_libogg=no builtin_libpng=no builtin_libtheora=no builtin_libvorbis=no builtin_libwebp=no builtin_mbedtls=no builtin_miniupnpc=no builtin_pcre2=no builtin_zlib=no builtin_zstd=no scu_build=all tests=no
Release export template build options: scons -j32 platform=linuxbsd target=template_release debug_symbols=yes lto=full progress=no scu_build=all

I ran each build twice with `ccache -C` first to fully empty ccache.
```bash
# Before
vstask "Build (editor)"  1387.70s user 115.27s system 2425% cpu 1:01.96 total
Stripped binary size: 170,679,344 bytes
After
vstask "Build (editor)"  1278.58s user 112.49s system 2425% cpu 57.361 total
Stripped binary size: 150,215,728 bytes

```bash
# Before
vstask "Build (release export template)"  2962.39s user 139.11s system 1888% cpu 2:44.21 total
Striped binary size: 70,403,424 bytes

# After
vstask "Build (release export template)"  2351.15s user 132.09s system 1904% cpu 2:10.37 total
Stripped binary size: 58,283,360 bytes

Editor
Compile Time: [Time elapsed: 00:27:55.373] (disable_exceptions= false)
After: [Time elapsed: 00:12:49.400] (disable_exceptions= true)
As for binary size, reduction is about 15MB

Some issues I'm noticing:

There are a lot of warnings being emitted for MSVC about missing unwind semantics. It seems like you forgot to carry over /wd4530 from #80516.
You seem to have forgot to actually re-enable exception-handling (by appending /EHsc) in the denoise module when using MSVC.

I guess this is borderline off-topic, but I was curious about what further binary size reductions could be had with disabling RTTI as well, so I compiled with /GR- on MSVC (which breaks dynamic_cast, but still lets you compile) and saw a ~2% reduction. So not exactly a world of difference (when using MSVC).
Figured you might be interested.

In release builds you can also try ["-fno-unwind-tables", "-fno-asynchronous-unwind-tables"] .

I guess this is borderline off-topic, but I was curious about what further binary size reductions could be had with disabling RTTI as well, so I compiled with /GR- on MSVC (which breaks dynamic_cast, but still lets you compile) and saw a ~2% reduction. So not exactly a world of difference (when using MSVC).
Figured you might be interested.

We rely on RTTI on all platforms since 4.0, as it's needed for Object::cast_to() to work reliably.

We rely on RTTI on all platforms since 4.0, as it's needed for Object::cast_to() to work reliably. This means we can't disable it anymore, unlike 3.x where it was disabled for Android and web exports.

This veering even further off-topic, but we could implement a custom replacement for RTTI to support Object::cast_to<>() that could maybe be somewhat more performant than dynamic_cast<>() because we wouldn't need to support things like multiple inheritance and non-public inheritance and all the other wacky edge cases that dynamic_cast<>() does. That said, I have no idea how much "somewhat more performant" would be, and it may not (in fact, it's probably not?) worth it, especially considering cross-platform considerations.

This veering even further off-topic

RTTI is also used by some third party libraries (icu, msdfgen, embree, oidn), so it's not just for cast_to.

Re-added /EHsc when compiling OIDN, it should compile fine without warnings now.

In release builds you can also try ["-fno-unwind-tables", "-fno-asynchronous-unwind-tables"] .

Tested this:
Editor:
# production build with `-fno-exceptions`
[Time elapsed: 00:08:51.862]
-rwxr-xr-x. 1 akien akien  97M Aug 14 13:11 godot.linuxbsd.editor.x86_64.no-exceptions

# production build with `-fno-exceptions -fno-unwind-tables -fno-asynchronous-unwind-tables`
[Time elapsed: 00:10:25.825]
-rwxr-xr-x. 1 akien akien  91M Aug 16 14:09 godot.linuxbsd.editor.x86_64.no-exceptions-no-unwind-tables

Release template:
# production build with `-fno-exceptions`
[Time elapsed: 00:04:34.993]
-rwxr-xr-x. 1 akien akien  57M Aug 14 13:11 godot.linuxbsd.template_release.x86_64.no-exceptions

# production build with `-fno-exceptions -fno-unwind-tables -fno-asynchronous-unwind-tables`
[Time elapsed: 00:06:53.694]
-rwxr-xr-x. 1 akien akien  52M Aug 16 14:20 godot.linuxbsd.template_release.x86_64.no-exceptions-no-unwind-tables

So these options seem to have a significant impact to further decrease the binary size, at the cost of (somewhat surprisingly?) increasing build times.
Might be an interesting tradeoff to explore for official production builds, though I'll leave that for a separate issue/PR.

I'm seeing mentions of these "unwind tables" potentially affect stacktrace generation as well, so might be worth checking to see that any such things in Godot are still working as expected, if applicable.

I'm seeing mentions of these "unwind tables" potentially affecting stacktrace generation as well, so might be worth checking to see that any such things in Godot are still working as expected, if applicable.

Indeed, I would enable this only when using debug_symbols=no, since the stacktraces are useless anyway without debug symbols.
Currently we build everything with debug_symbols=no for official builds, but we should move towards actually building with debug symbols, extracting them, and providing them for download on-demand to make sense of stacktraces. When we do that, this may indeed remove the possibility to disable unwind tables fully. But we could consider doing that for target=template_release only.

Note to self, or Yuri: Worth cherrypicking IMO, but we might want to make disable_exceptions false by default to preserve the existing behavior. Otherwise this could be seen as breaking compat for users with C++ modules using exceptions. Official builds could turn on the option.

Cherry-picked for 4.1.2. Disabled by default, as suggested.


Remove Drop Down arrow?

Is there a way to remove the drop down arrow to the right of the text. I want it to look like just a button that you press and you get a list if at all possible

You can remove it using css by adding the following rule:
.caret {
    display: none;
}

Or you should be able to remove it in your selectpicker using the template.caret option. You can see that option and more: https://github.com/silviomoreto/bootstrap-select/blob/master/js/bootstrap-select.js#L348


As a genesis user, I want all help output to be consistent with genesis functionality

Only inconsistency found is genesis check -h output includes --no-cloud-config, while genesis code itself expects --no-config

This has been committed to v2.7-maintenance branch, and will be released in v2.7.34 and v2.8.0


this is frontend not backend

this not compiling to lisp

this not compiling to lisp

Thanks for the comment. As stated, this isn't complete. For ease during development I am supplying code to Rib by text file as shown in the readme.
The eventual goal of this project (if I continue to develop it) is to provide an API for common abstractions required for functional languages to be compiled.
As this project is currently incapable of its eventual goal, I have included references to LISP.
The eventual process of Rib would look something like
API->[IR->LLVM->CLANG]->library.
Making it a backend.


Fixed procmon broken merge

@markrussinovich,
Thanks for your contribution as a Microsoft full-time employee or intern. You do not need to sign a CLA.
Thanks,
Microsoft Pull Request Bot

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

sysinternals/downloads/procmon.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

sysinternals/downloads/procmon.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


try-except clause to get page's coordinates

On pages without coordinates, such as person pages, trying to get the coordinates would result KeyError: 'coordinates'.
I fixed this by changing the if clause into a try-except clause.  That's more pythonic anyways.

@goldsmith any thoughts on this?


Crash On Android Release Build Only - Getting MissingResourceException: Missing resource with path Error

Describe the bug
Compose Resource API throwing MissingResourceException while loading png image from resource package using painter resource API on Android release-build variant only. With the same code and resources, same code working fine on debug variant.
Getting this Error-:
org.jetbrains.compose.resources.MissingResourceException: Missing resource with path: res/drawable/ic_scogo_logo_dark.jpg                                       	at org.jetbrains.compose.resources.AndroidResourceImpl.readBytes(Resource.android.kt:21)                                       	at org.jetbrains.compose.resources.Resource_commonbutjsKt$readBytesSync$1.invokeSuspend(Resource.commonbutjs.kt:13)                                       	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)                                       	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:108)                                       	at kotlinx.coroutines.EventLoopImplBase.processNextEvent(EventLoop.common.kt:280)                                       	at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:85)                                       	at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(Builders.kt:59)                                       	at kotlinx.coroutines.BuildersKt.runBlocking(Unknown Source:1)                                       	at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking$default(Builders.kt:38)                                       	at kotlinx.coroutines.BuildersKt.runBlocking$default(Unknown Source:1)                                       	at org.jetbrains.compose.resources.Resource_commonbutjsKt.readBytesSync(Resource.commonbutjs.kt:13)                                       	at org.jetbrains.compose.resources.ComposeResource_commonKt.rememberImageBitmapSync(ComposeResource.common.kt:82)                                       	at org.jetbrains.compose.resources.ComposeResource_commonKt.access$rememberImageBitmapSync(ComposeResource.common.kt:1)                                       	at org.jetbrains.compose.resources.ComposeResource_commonKt$painterResource$1.invoke(ComposeResource.common.kt:120)                                       	at org.jetbrains.compose.resources.ComposeResource_commonKt$painterResource$1.invoke(ComposeResource.common.kt:120)                                       	at org.jetbrains.compose.resources.ComposeResource_commonKt.painterResource(ComposeResource.common.kt:102)                                       	at org.jetbrains.compose.resources.ComposeResource_commonKt.painterResource(ComposeResource.common.kt:120)
Affected platforms

Android

Versions

Kotlin version: 1.9.10
Compose Multiplatform version:  1.5.3
AGP: 8.1.2

To Reproduce

Build release variant
Install & Launch
Crash/Error (see above)

Screenshots
Images In Resource Module/Package -

Getting error at Line 80:

Additional context
We've tried to change the value passing in painterResource with every possible solutions like ic_scogo_logo_dark.jpg, drawable/ic_scogo_logo_dark.jpg etc. But it's crashing on android release build, not on debug variant.

Could you please provide a project where this issue can be reproduced?
I tried to reproduce in this branch but it worked fine:
https://github.com/JetBrains/compose-multiplatform/tree/reproduce_resources_3893/components/resources/demo
./gradlew :resources:demo:androidApp:build``
adb install resources/demo/androidApp/build/outputs/apk/release/androidApp-release.apk

// .../compose-multiplatform/components/resources/demo/shared/src/commonMain/resources/drawable/img.png
Image(
            painter = painterResource("drawable/img.png"),
            contentDescription = null,
            modifier = Modifier.size(150.dp),
        )

And it works fine in the release app.

Have the same issue.
Everything worked fine.
Everything still works on iOS but it doesn't work on Android.
It crashes on debug variant.

It has been resolved in latest versions.

It has been resolved in latest version.

My problem was that I was using:
packaging {
resources {
excludes += "*/**"
}
}
because my project didn't build at all with other error message
So when I changed to this
packaging {
resources {
excludes += "/META-INF/{AL2.0,LGPL2.1}"
excludes += "/META-INF/versions/**"
}
}
It started working.

Please check the following ticket on YouTrack for follow-ups to this issue. GitHub issues will be closed in the coming weeks.