xmlstarlet for Crowd SSO causing mangled seraph-config.xml ?

I'm not sure if it is the mangled seraph-config.xml shown below or something else with the Crowd_enable_SSO flag, but there is something fishy going on.
I'm attempting to simulate an environment with all the Atlassian apps communicating with each other via a "composed" docker-compose and I've ironed out most of the kinks (and will hopefully PR a few changes to your repos soon), but every time I enable Crowd authentication if I also have Crowd SSO turned on for the Confluence container it completely prevents logging in. There is a known issue with Crowd in Confluence preventing local logins from working, but this is actually preventing valid Crowd logins from working either, I end up having to tear down the instance and set it up again. I've also run into issues with the Jira container and Crowd SSO so I've turned it off on those for now, though Bitbucket doesn't seem to mind whether it is on or off.
<security-config
  >
    <parameters
    >
        <init-param
      >
            <param-name
        >login.url</param-name
      >
            <param-value
        >/login.action?os_destination=${originalurl}&permissionViolation=true</param-value
      >
        </init-param
    >
        <init-param
      >
            <param-name
        >link.login.url</param-name
      >
            <param-value
        >/login.action</param-value
      >
        </init-param
    >
        <init-param
      >
            <param-name
        >cookie.encoding</param-name
      >
            <param-value
        >cNf</param-value
      >
        </init-param
    >
        <init-param
      >
            <param-name
        >login.cookie.key</param-name
      >
            <param-value
        >seraph.confluence</param-value
      >
        </init-param
    >

        <!--only basic authentication available-->
        <init-param
      >
            <param-name
        >authentication.type</param-name
      >
            <param-value
        >os_authType</param-value
      >
        </init-param
    >

        <!-- Invalidate session on login to prevent session fixation attack -->
         <init-param
      >
            <param-name
        >invalidate.session.on.login</param-name
      >
            <param-value
        >true</param-value
      >
        </init-param
    >
        <!-- Add names for session attributes that must not be copied to a new session when the old one gets invalidated.
          Currently it is empty (i.e. all attributes will be copied). -->
        <init-param
      >
            <param-name
        >invalidate.session.exclude.list</param-name
      >
            <param-value
      />
        </init-param
    >
    </parameters
  >

    <rolemapper
      class="com.atlassian.confluence.security.ConfluenceRoleMapper"
  />
    <controller
      class="com.atlassian.confluence.setup.seraph.ConfluenceSecurityController"
  />

    <!-- Default Confluence authenticator, which uses the configured user management for authentication. -->

    <!-- Custom authenticators appear below. To enable one of them, comment out the default authenticator above and uncomment the one below. -->

    <!-- Authenticator with support for Crowd single-sign on (SSO). -->
    <!-- <authenticator class="com.atlassian.confluence.user.ConfluenceCrowdSSOAuthenticator"/> -->

    <!-- Specialised version of the default authenticator which adds authenticated users to confluence-users if they aren't already a member. -->

    <services
    >
        <service
        class="com.atlassian.seraph.service.PathService"
      >
            <init-param
        >
                <param-name
          >config.file</param-name
        >
                <param-value
          >seraph-paths.xml</param-value
        >
            </init-param
      >
        </service
    >
    </services
  >

    <elevatedsecurityguard
      class="com.atlassian.confluence.security.seraph.ConfluenceElevatedSecurityGuard"
  />

<authenticator
      class="com.atlassian.confluence.user.ConfluenceCrowdSSOAuthenticator"
  /></security-config
>

You can set CONFLUENCE_CROWD_SSO first to true and then back to false. Confluence should disable crowd sso and regain normal functionality.
If this does not happen then it's an issue of the xml file format. If it does reset functionality it's not an issue of the xml file format.
Then check your whole configuration with this manual: https://confluence.atlassian.com/crowd/integrating-crowd-with-atlassian-confluence-198573.html

Turning off Crowd SSO via CONFLUENCE_CROWD_SSO=false or leaving it unset did allow me to configure Crowd as an authentication method without getting into the broken state. I also checked the seraph-config.xml and it appears more reasonable/normal now.
    <parameters>
        <init-param>
            <param-name>login.url</param-name>
            <param-value>/login.action?os_destination=${originalurl}&permissionViolation=true</param-value>
        </init-param>
        <init-param>
            <param-name>link.login.url</param-name>
            <param-value>/login.action</param-value>
        </init-param>
        <init-param>
            <param-name>cookie.encoding</param-name>
            <param-value>cNf</param-value>
        </init-param>
        <init-param>
            <param-name>login.cookie.key</param-name>
            <param-value>seraph.confluence</param-value>
        </init-param>

        <!--only basic authentication available-->
        <init-param>
            <param-name>authentication.type</param-name>
            <param-value>os_authType</param-value>
        </init-param>

        <!-- Invalidate session on login to prevent session fixation attack -->
         <init-param>
            <param-name>invalidate.session.on.login</param-name>
            <param-value>true</param-value>
        </init-param>
        <!-- Add names for session attributes that must not be copied to a new session when the old one gets invalidated.
          Currently it is empty (i.e. all attributes will be copied). -->
        <init-param>
            <param-name>invalidate.session.exclude.list</param-name>
            <param-value></param-value>
        </init-param>
    </parameters>

    <rolemapper class="com.atlassian.confluence.security.ConfluenceRoleMapper"/>
    <controller class="com.atlassian.confluence.setup.seraph.ConfluenceSecurityController"/>

    <!-- Default Confluence authenticator, which uses the configured user management for authentication. -->
    <authenticator class="com.atlassian.confluence.user.ConfluenceAuthenticator"/>

    <!-- Custom authenticators appear below. To enable one of them, comment out the default authenticator above and uncomment the one below. -->

    <!-- Authenticator with support for Crowd single-sign on (SSO). -->
    <!-- <authenticator class="com.atlassian.confluence.user.ConfluenceCrowdSSOAuthenticator"/> -->

    <!-- Specialised version of the default authenticator which adds authenticated users to confluence-users if they aren't already a member. -->
    <!-- <authenticator class="com.atlassian.confluence.user.ConfluenceGroupJoiningAuthenticator"/> -->

    <services>
        <service class="com.atlassian.seraph.service.PathService">
            <init-param>
                <param-name>config.file</param-name>
                <param-value>seraph-paths.xml</param-value>
            </init-param>
        </service>
    </services>

    <elevatedsecurityguard class="com.atlassian.confluence.security.seraph.ConfluenceElevatedSecurityGuard"/>

</security-config>

I have a feeling there is something in the xmlstarlet that is unhappy because it is missing a cookie name or something else after this line triggers the updated config (with the weird line endings/breaks). I'll play with it a bit more, just wondered if you had any ideas offhand.

The shown file has never been touched by xmlstarlet. My script deletes the authenticator-element and attaches it at the bottom. Both values true and false manipulates the file. The file format is the same in both cases.

I can verify your problem. Though, the xml format is not at fault. Enabling the authenticator is not enough, you need to define a crowd.properties file: See here: https://github.com/blacklabelops/confluence/issues/46
Under: Copy the crowd.properties file from CROWD/client/conf/ to CONFLUENCE/confluence/WEB-INF/classes. Edit CONFLUENCE/confluence/WEB-INF/classes/crowd.properties. Change the following properties:

@blacklabelops Need a PR for crowd.properties change or you on it? CC @devingops

I would be glad if someone finishes the feature who began it. I am not even using this feature.

Okay this code is rather copy & paste from my Jira solution. Before I commit anything, I will test the other images for SSO functionality. I rather hate to implement and offer things that do not work!
Anybody else is free to try.

Same in Jira, needs a crowd.properties.

Bitbucket seems to be more advanced, there you just need one property to enable everything.

Tested the JIRA using the JIRA_CROWD_SSO=true setting + mapping in an external crowd.properties without issue. The mapping in of crowd.properties should likely be documented (or extra ENV created)

I am still trying to get Confluence SSO working. Can you give me a hint an what your crowd.properties file looks like?

crowd.properties:
application.name                        APP-NAME-IN-CROWD
application.password                    APP-PASSWORD-IN-CROWD
application.login.url                   http://localhost:8095/crowd/console/
crowd.server.url                        http://localhost:8095/crowd/services/
crowd.base.url                          https://URL-FOR-CROWD
session.isauthenticated                 session.isauthenticated
session.tokenkey                        session.tokenkey
session.validationinterval              2
session.lastvalidation                  session.lastvalidation

We use Docker swarm docker-compose.yml:
version: "3.2"

services:

  jira:
    image: "blacklabelops/jira:7.8.0"
    ports:
      - mode: host
        target: 8080
        published: 8080
        protocol: tcp
    volumes:
      - /path-to/atlassian_data/jira:/var/atlassian/jira
      - /path-to/crowd.properties:/opt/jira/atlassian-jira/WEB-INF/classes/crowd.properties
    deploy:
      mode: replicated
      replicas: 1
    environment:
      - 'JIRA_PROXY_NAME=jira.example.com'
      - 'JIRA_PROXY_PORT=443'
      - 'JIRA_PROXY_SCHEME=https'
      - 'JIRA_CROWD_SSO=true'
      - 'TZ=UTC'
      - 'CATALINA_OPTS= -Xms8g -Xmx8g'

    healthcheck:
     test: "curl --fail --location http://localhost:8080/status || exit 1"
     interval: 60s
     timeout: 30s
     retries: 20

And we use haproxy to do SSL termination, we are very specific which headers we pass:
backend jira_example_com
  option forwardfor header X-Forwarded-For
  reqadd X-Forwarded-Proto:\ https
  reqadd X-Forwarded-Port:\ 443
  reqadd X-Forwarded-Host:\ jira.example.com
  reqidel ^X-Forwarded-For:.*
  reqidel ^X-Forwarded-Proto:.*
  reqidel ^X-Forwarded-Port:.*
  reqidel ^X-Forwarded-Host:.*
  reqidel ^Proxy:.*
  server atlassian01 <IP_ADDRESS>:8080 check
  server atlassian02 <IP_ADDRESS>:8080 check
  server atlassian03 <IP_ADDRESS>:8080 check
  server atlassian04 <IP_ADDRESS>:8080 check

Ah I see, you have not tested everything with an actual instance of crowd. Well I tried, in order to make sure which properties we need envs for but didn't work so far.

Finally got this working!
I can verify that the main issue is the file crowd.properties.
It needs the following properties and we need ENVs for all properties:
application.name=
application.password=
crowd.base.url=
session.validationinterval=

Finished!

Sorry, still has a bug.

Now generates a working config.


SMTP not working

Hey. Great job maintaining this fork!
Just deployed to Heroku with the following SMTP settings:
COMMENTO_SMTP_HOST: smtp.gmail.com
COMMENTO_SMTP_PORT: 587
COMMENTO_SMTP_USERNAME<EMAIL_ADDRESS>COMMENTO_SMTP_PASSWORD: mypassword
COMMENTO_SMTP_FROM_ADDRESS<EMAIL_ADDRESS>...and I keep receiving 535-5.7.8 Username and Password not accepted error in my log when I try to create a user even though the credentials are definitely correct.
This Google help article says:

From May 30, 2022, Google no longer supports the use of third-party apps or devices which ask you to sign in to your Google Account using only your username and password

I'm guessing this could be the reason, isn't it?
Thanks!

Thank you for your message! Yes, gmail no longer supports this form of usage. To fix this, you should use their app passwords instead, which basically works the same way from commento's point of view (replace your SMTP password with an app password) but with the benefit that it can easily be revoked if it goes missing.
https://support.google.com/accounts/answer/185833?hl=en


Pinned softprops/action-gh-release github action to v0.1.12

@ilkerhalil the reason the PR checks failed was a fault in zattoo/output which we have fixed in StirlingLabs/PROutputAction


Feature proposal: ability to pass callback function to className for (compound) variants

First of all, amazing library. I've been playing with the thought to use cva w/ Tailwind to create UI components. Say I want to create a Button which has two properties: color (i.e. red, green, blue) and variant (i.e solid, outline, link). I can use compoundVariants to combine props/variants and return the class accordingly. Example: https://chakra-ui.com/docs/components/button#button-variants.
Problem
The list of combinations gets exhaustive real fast (10 colors * 3 variants = 30 combinations to define), and the code becomes repetative. Here is an example of what I'm trying to achieve (not optimal):
const compoundVariant = (
  colorVariant: [string, string],
  className: string
): any => {
  const [color, variant] = colorVariant;
  return {
    color,
    variant,
    className,
  };
};

const buttonVariants = cva(
  'inline-flex gap-2 items-center justify-center rounded-md text-sm font-semibold transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:opacity-50 disabled:pointer-events-none ring-offset-background',
  {
    variants: {
      color: {
        primary: '',
        secondary: '',
      },
      variant: {
        solid: '',
        outline: '',
        ghost: '',
        link: 'underline-offset-4 hover:underline',
      },
      size: {
        md: 'h-10 py-2 px-4',
        xs: 'h-7 px-2 rounded-sm',
        sm: 'h-9 px-3 rounded-md',
        lg: 'h-11 px-8 rounded-md',
      },
    },
    compoundVariants: [ // <-- gets quite messy
      compoundVariant(
        ['primary', 'solid'],
        'bg-primary text-primary-foreground hover:bg-primary/50'
      ),
      compoundVariant(
        ['primary', 'outline'],
        'border border-input hover:bg-primary hover:text-primary-foreground'
      ),
      compoundVariant(['primary', 'ghost'], 'text-primary hover:bg-primary/10'),
      compoundVariant(['primary', 'link'], 'text-primary'),
      compoundVariant(
        ['secondary', 'solid'],
        'bg-secondary text-secondary-foreground hover:bg-secondary/90'
      ),
      compoundVariant(
        ['secondary', 'outline'],
        'border border-input hover:bg-secondary hover:text-secondary-foreground'
      ),
      compoundVariant(
        ['secondary', 'ghost'],
        'hover:bg-secondary hover:text-secondary-foreground'
      ),
      compoundVariant(['secondary', 'link'], 'text-secondary-foreground'),
    ],
    defaultVariants: {
      variant: 'solid',
      color: 'primary',
      size: 'md',
    },
  }
);

Proposal
I would like to be able to pass a callback function for className instead of a string. Something like:
    compoundVariants: [
      {
          color: "*",
          variant: "solid",
          className: ({ color }) => `bg-${color} text-${color}-foreground hover:bg-${color}/50`
      },
      {
          color: "*",
          variant: "outline",
          className: ({ color }) => `border border-input hover:bg-${color} hover:text-${color}-foreground`
      }
   ]

Another solution that comes to mind is to use placeholders, for example:
{
      color: "*",
      variant: "outline",
      className: "border border-input hover:bg-{color} hover:text-{color}-foreground" // {color} gets replaced with the supplied value
}

This would be quite powerful and improve the DX. Eager to hear what you think Joe.

Unfortunately, this won’t provide the API you’re after. I’ve long wanted a similar approach and many others have requested the same, but Tailwind needs static strings for the JIT engine to capture a class. So sadly it’s a no 😢


Includes task ip for fixed app after swan restarts

@liuzhengbaihe does this change fixed bug that missing task.IP after swan restart?

@cmingxu , yes, it is.


Can you add gesture control to the VL6180?

There is an example with WLED here https://github.com/Aircoookie/WLED/blob/main/usermods/VL53L0X_gestures/usermod_vl53l0x_gestures.h
Can you add these functions as well? Basically like:
swipe under the sensor turn on/off
pause under the sensor up and down for dimming brightness on an LED pwm strip etc
anything else fun you can think of for a gesture?
Thank you.

I'm not quite sure if I understand your request.
Do you want me to add support for the VL6180 sensor to WLED? If so, then I would suggest to ask for this on the WLED Github page.
Or, do you want to implement gestures in an ESPHome device with the VL6180 sensor? In this case, I would probably not add this to this custom component, because gestures should sit on a higher software layer. This custom component provides the raw distance value, and you would then use automations in ESPHome to detect gestures. For example, you could add a template binary sensor that uses the distance value to determine its own on/off state.

The later,
Had a go with some nudges from ssieb
esphome:
  name: t-energy-008
  friendly_name: T-Energy-008
  includes:
    - "vl6180x_sensor.h"
  libraries:
    - SPI
    - Wire
    - adafruit/Adafruit BusIO @ 1.9.6
    - "Adafruit_VL6180X"
esp32:
  board: esp32dev
  framework:
    type: arduino
# Enable logging
logger:

#psram:
#  mode: quad
#  speed: 40MHz

# Enable Home Assistant API
api:
  encryption:
    key: !secret encryption_key006

ota:
  password: !secret ota_pass006

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  use_address: !secret use_address_wifi006
  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "T-Energy-008 Fallback Hotspot"
    password: !secret fallbackhotspot006

captive_portal:

web_server:

i2c:
  sda: 21
  scl: 22
  #id: bus_a

output:
  - platform: ledc
    pin: GPIO19
    id: led_output
    #frequency: 19531Hz

light:
  - platform: monochromatic
    name: "Gesture Controlled Light"
    output: led_output
    id: gesture_light

sensor:
  - platform: custom
    lambda: |-
      auto vl6180x_sensor = new VL6180XSensor();
      App.register_component(vl6180x_sensor);
      return {vl6180x_sensor->distance_sensor};
    sensors:
      - name: "VL6180X Distance"
        unit_of_measurement: mm
        accuracy_decimals: 0
        id: distance_sensor
        filters:
          - filter_out: nan
        on_value:
          then:
            - if:
                condition:
                  lambda: 'return id(gesture_brightness).state;'
                then:
                  - lambda: |-
                      // Map the distance range to brightness range
                      float brightness = (200 - id(distance_sensor).state) * (255.0 / 160);
                      id(led_output).set_level(brightness);
                  - homeassistant.service:
                      service: light.turn_on
                      data:
                        entity_id: light.sengled_e11_n1ea_light_2
                        brightness: !lambda "return (int)((1 - ((id(distance_sensor).state - 40) / (160))) * 255);"
            - if:
                condition:
                  lambda: 'return !id(gesture_brightness).state && (id(distance_sensor).state < 40);'
                then:
                  - homeassistant.service:
                      service: light.toggle
                      data:
                        entity_id: light.sengled_e11_n1ea_light_2
binary_sensor:
  - platform: template
    name: "Gesture On/Off"
    id: gesture_on_off
    lambda: 'return !id(gesture_brightness).state && (id(distance_sensor).state < 40);'

  - platform: template
    name: "Gesture Brightness Control"
    id: gesture_brightness
    #  Hand is within the sensor range for more than 2 seconds
    filters:
      - delayed_on_off:
          time_on: 3s
          time_off: 4s
    lambda: 'return (id(distance_sensor).state <= 190 && id(distance_sensor).state >= 40);'

Any way for you to get this sensor wrapped into https://esphome.io/components/sensor/vl53l0x.html
Thank you.


Have Zookeeper resource create its data directory

Heyyyyy so not to be a jerk about thus but this PR fixes a breaking change. Any chance we can get it published to Supermarket sooner rather than later?

Yeah, apologies @eherot. I still haven't been able to get uploading things to the Supermarket to work. I've added both yourself and @jeffbyrnes as collaborators on the cookbook so you should have that ability now. Sorry to have to defer to you.

@jakedavis thanks for that; happy to help out. I just used Stove to publish 2.5.0 to the Supermarket, though it seems to think you did that…? Unless you actually did.
Anyway, I'll see about maybe cutting 2.5.1 to bring in a bunch of the fixes that've landed recently.


Change link in WorkInProgress component to Github Discussions

Issue / Feature Request
Currently, on the pages which are works in progress, there is a link with the text "Let us know what information you're looking for", which links to the main Github repo page/readme.

However, the place to add information you'd like to see on that page is actually the Github Discussions page for the repo, which has a discussion thread and linked Google doc for each work in progress page. The readme talks about how to contribute code and add an issue, but it does not mention or link to the Discussions page.  If users don't explore and click on the Discussions tab, they'll never find the right spot to suggest content for inclusion on the page.
Solution
I think the "Let us know what information you're looking for" link in the WorkInProgress component should link to the Discussions page (https://github.com/AccessibleForAll/AccessibleWebDev/discussions), rather than the main page of the repo. It's a small change, but it would be clearer for users looking to contribute to the discussion of what content should be on the work in progress pages.
Alternatives

One alternative would be to leave the link as is, but to add a section to the readme that links to the Discussions page and describes how to contribute suggestions for content.

I would love to fix this issue.

Since I posted the issue, I was hoping to be assigned to it, if the maintainers agree that this change should be made.

I really like that idea, thanks for the suggestion @celiackelly, I have assigned it to you.


Failed to upload

Hello, the uploader is failing and I'm unsure why:
[16:15:47] Authenticating browser with cookies
[16:15:49] Posting output_86.mp4
with description: something to think about... #wisewords #poetry #3amthoughts
[16:15:49] Navigating to upload page
[16:15:51] Uploading video file
[25784:49416:0426/161559.424:ERROR:device_event_log_impl.cc(195)] [16:15:59.423] USB: usb_service_win.cc:105 SetupDiGetDeviceProperty({{A45C254E-DF1C-4EFD-8020-67D146A850E0}, 6}) failed: Element not found. (0x490)
Created TensorFlow Lite XNNPACK delegate for CPU.
Message:
Stacktrace:
GetHandleVerifier [0x0074C113+48259]
(No symbol) [0x006DCA41]
(No symbol) [0x005D0A17]
(No symbol) [0x00610BED]
(No symbol) [0x00610C9B]
(No symbol) [0x0064BC12]
(No symbol) [0x00630DE4]
(No symbol) [0x00649B9C]
(No symbol) [0x00630B36]
(No symbol) [0x0060570D]
(No symbol) [0x006062CD]
GetHandleVerifier [0x00A06533+2908323]
GetHandleVerifier [0x00A43B4B+3159739]
GetHandleVerifier [0x007E505B+674763]
GetHandleVerifier [0x007EB21C+699788]
(No symbol) [0x006E6244]
(No symbol) [0x006E2298]
(No symbol) [0x006E242C]
(No symbol) [0x006D4BB0]
BaseThreadInitThunk [0x77517BA9+25]
RtlInitializeExceptionChain [0x77C5BD2B+107]
RtlClearBits [0x77C5BCAF+191]
[16:16:54] Failed to upload C:\Users\danie\OneDrive\Desktop\output_86.mp4
[16:16:54]
A video failed to upload

Error while uploading video

I've built from source and it now works, a bit odd to reccomend PyPI installation when you don't maintain it Mr. Kaiser

PyPI is recommended for most people because installing from source can be a pain.
I should be more efficient about pushing new builds however

Hey, I'm getting this exact same issue and I built it from the source. Do you have any ideas?

Hey, I'm getting this exact same issue and I built it from the source. Do you have any ideas?

I got the issue again today, I re-obtained my cookies and it worked after, might be an issue with tiktok resetting auth tokens or something? Thoughts @wkaisertexas

Hey, I'm getting this exact same issue and I built it from the source. Do you have any ideas?

I got the issue again today, I re-obtained my cookies and it worked after, might be an issue with tiktok resetting auth tokens or something? Thoughts @wkaisertexas

That did fix it for me. For some reason, my hashtags aren't working now, but that is probably unrelated.


Getting Unknown option: base.module

Hi, when I add the modules: 'umd option I get the a Unknown option: base.module error.  When I remove it, everything works fine.
In my Gruntfile:
        babel: {
            dist: {
                options: {
                    sourceMap: true
                    , presets: ['es2015']
                    , modules: 'umd'
                }
                , files: {
                    'dist/myfile.js': 'src/myfile.js'
                }
            }
        }

I've also tried moving the options object outside of the dist sub-task.
Am I doing something wrong here?

Be sure that you're using the proper names for presets/modules:
http://babeljs.io/docs/plugins/preset-es2015/
http://babeljs.io/docs/plugins/transform-es2015-modules-umd/

Ah, I see.
So I would load the transform-es2015-modules-umd plugin instead of setting the module to umd?
Something like:
        babel: {
            dist: {
                options: {
                    sourceMap: true
                    , presets: ['es2015']
                    , plugins: ['transform-es2015-modules-umd']
                }
                , files: {
                    'dist/myfile.js': 'src/myfile.js'
                }
            }
        }

Doing that made it all work and tranform into umd.  Is this because the transform-es2015-modules-umd plugin ends up overriding the transform-es2015-modules-commonjs from the es2015 preset?


[nt] custom actions copy

Summary

Custom Actions copy

Adds a CODE_EXAMPLE that users can see to better understand how to use the custom actions.
Updates the description for row and column custom code actions.

Tests

Localhost
Custom actions form

Applied actions

cc: @johnson-mage

any reason for removing the function annotations? like -> pandas.DataFrame? May make the example clearer


Add flag to append hash to pages to ensure unique titles

This adds a command line flag and environment variable to configure mark to append hash values to page titles.
This helps solve the issue where multiple pages with the same name, but under different parents, will conflict (#450).
Another solution could be to allow arbitrary prefix/postfix text, and/or make this computed hash value available as a template variable to be inserted at any point.

Thanks for the contribution!


:sparkles: Added intellisense support for component properties in VsCode

📝 Description
I noticed that Lume components do not have any property intellisense in VsCode (and additional not type checking either).
In Vue you can do this by extending the GlobalComponents type which VsCode uses to for Vue components to figure out it's props.
This will greatly improve the user experience for users I think as it will save time having to look at documentation to find properties and for TS users it will add extra type checking to make sure values being set are correct.
This solution needs to be tested though but I was unable to get docker to run or was not sure if there is some testing playground app?
💥 Is this a breaking change (Yes/No):

[X] No
[X] Yes (please describe the impact and migration path for existing Lume users)

I checked both as for JS users there will be no impact, but for typescript users as there was not property type checking at all a feature like this could break type checkers in their application....
📝 Additional Information

(optional) Add additional information

Before submitting the PR, please make sure you do the following

[X] Read the Contributing Guidelines.
[X] Check that there isn't already a PR that solves the problem the same way to avoid creating a duplicate.
[X] Provide a description in this PR that addresses what the PR is solving, or reference the issue that it solves (e.g. fixes #123).
[X] Ideally, include relevant tests that fail without this PR but pass with it.

@GeraldAdyen locally, this code actually breaks the TS imports. I fixed it, but don't notice a difference between having GlobalComponents or not.
Can you give me an example of how it should look like with/without this extra Intellisense config?


mixer memory was rising when I applyed kubernetesenv adapter

Describe the bug
After I installed istio and my application, I accessed my application, and then the memory of mixer-policy and mixer-telemetry were rising all the time until crashed. But when I remove the rules (kubeattrgenrulerule and tcp kubeattrgenrulerule) which were in istio-demo-auth.yaml, the mixer memory was normal. The two rules were applied to kubernetesenv adapter which pulled kubernetes cluster info every 5 minuties. When the adapter were pulling info from kubernetes from api-server, the receiving rate of mixer were 1MB/s, and the memory were rising fast. After several times of pulling info, the mixer crashed out of memory.
Version
kubernetes: 1.11.0
istio: 1.0.3
openshift: 3.11.43
Installation
kubectl apply -f crd.yaml
kubectl apply -f istio-demo-auth.yaml
Mixer request and limit memory is 1600Mi, and cpu is 1000m
Environment
openshift

@mandarjog how does this match with our numbers and experience on our large scale testing clusters?

This is a new observation. Can you

Increase the limit or remove limits and see if the memory stabilizes at some point
Export mixer grafana dashboard and share it via raintank.

The amount of memory needed by kubeenv adapter scales by the size of the deployment. How large is your deployment ?

@mandarjog
Because of some security restrictions, I can not export the grafana dashboard. Here are some pictures of mixer grafana dashboard and logs from mixer-policy.
Mixer request and limit memory is 1600Mi, and cpu is 1000m.
The size of deloyment in openshift:
pod: 1600
service: 700
namespace: 200
But only 10 applications use istio.
mixer grafana dashboard:

logs from mixer-policy:

I will increase limit of memory to 10Gi for mixer. And show the result later.

I increased limit of memory to 10Gi for mixer. After runing 6 hours, mixer restarted because the memory  ran out.

@mandarjog @douglas-reid
there are a lot of following error messages in the mixer log.
error adapters adapter did not close all the scheduled daemons {"adapter": "handler.kubernetesenv.istio-system"}
Does this cause a memory leak which leads to mixer memory growth all the time?

Yes, it can cause memory leak. Can you send us istio-policy logs?
Are you making frequent changes to istio /mixer configuration? If kubernetesenv adapter is reloaded without these changes, then it is also an issue.

@mandarjog
The log I post above really looks like a memory leak. Does mixer really have this problem in  OpenShift Container Platform?

I am not sure yet if this is OpenShift specific. We have to investigate this. I have marked it as a p0 for 1.1

Can you get me a goroutine and heap dump of mixer in this state?

@mandarjog
I can not get into the mixer container, so I can only give you mixer memory and metric info in mixer controlz web page. There are some goroutine and heap info in it. And what I find in controlz is that there are thousands of config IDs in many metrics. This must not be normal.

You can get thread dump as follows
kubectl -n istio-system port-forward ${istio-policy-pod} 9093 &

curl localhost:9093/debug/pprof/goroutine?debug=2 -o ${istio-policy-pod}.txt

go tool pprof -svg localhost:9093/debug/pprof/heap

@mandarjog
I have already sent  goroutine and heap dump of mixer-policy to your gmail, please check it.

@mandarjog
By the way, do you know how to set the interval of periodical report which generated by proxy when tcp connection is alive. The default interval for periodical report is 10s. But I do not find where to set the period in istio-demo.yaml.

Thanks for sending the data. Re reporting period, it is not configurable at present.
Do you need it to be configurable?

regarding the memory leak, we found an issue with kubeenv adapter, as seen in the log messages. It is not relinquishing the state even after close. This causes the k8s client cache to live forever.
We will fix it soon. I would like to fix it in 1.1 . If you can use 1.1 pre-release builds.
If you need the fix in 1.0, please let us know.

@mandarjog
Thank you. Please fix it in 1.0 because we have deployed istio in prod env.
And I find another issue that the default interval for periodical report is 1s not 10s as the mixer-telemetry log shows. Should I open another issue?

@douglas-reid is anything left to be done here?

@duderino not that I know of at this time. we can always re-open if the issue persists.

@douglas-reid @mandarjog
Thank you. The mixer memory is not leaked in release-1.0.6.


[Feature] Add consistency check for types.go, CRDs, and generated API in GitHub Actions

Search before asking

[X] I had searched in the issues and found no similar feature requirement.

Description
As I mentioned in #519, the inconsistency between types.go, CRD YAML files, and generated API may cause wrong behaviors. Hence, we can add the consistency checks into GitHub Actions.
Implementation:

We can use ./hack/verify-codegen.sh to check the consistency between types.go and generated API.
I did not know how to check the consistency between types.go and CRD YAML files. controller-gen seems not support the validation.

Use case
No response
Related issues
#519
Are you willing to submit a PR?

[X] Yes I am willing to submit a PR!

cc @DmitriGekhtman

I did not know how to check the consistency between types.go and CRD YAML files. controller-gen seems not support the validation.

One form of consistency check is to run the code/yaml generation and make sure that the relevant files are unchanged.

@kevin85421
I'll provisionally assign this one and #519 to you.
Resolving these would definitely improve the KubeRay dev process!

PR: https://github.com/ray-project/kuberay/pull/546

Closed by https://github.com/ray-project/kuberay/pull/546!


Fix sidebar links color 💄

Summary
Following the upgrade of react-styleguidist the link's colour on the sidebar changed making the text almost unreadable.
Before

After

Issue
#172

:tada: This PR is included in version 2.11.2 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


feat: update bindings.ts file when string release is passed

Resolves #73

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

@jhechtf Thanks. Is there anything left? can you mark the PR ready for review?

I was trying to think about how to test this to make sure it works but hadn't gotten a solution yet other than making another directory and making multiple runs to the cli.ts. If you're OK with that coming in a later PR then I can mark this as ready now.

If you're OK with that coming in a later PR then I can mark this as ready now.

Sure

Marked as ready then. won't be able to get to this for a few days as i have a vacation planned, but I'll get some more thorough testing of it up and ready.


[BUG] IsPersonalBest may be set incorrectly in Qualifying

Describe the issue:
The information about personal best lap times in the source data is reset between qualifying sessions. The current logic in the API parser resets IsPersonalBest for any lap to false if any subsequent personal best lap is slower. This is done so that deleted laps are not marked as personal best.
In the special case where a qualifying lap in e.g. Q3 is slower than in Q2, this causes the Q2 lap to be considered 'deleted' and it is no longer marked as personal best.
This also results in Laps.pick_fastest returning the wrong lap.
Problem: At the point where personal best times currently need to be evaluated and deleted laps need to be removed, the API parser has no knowledge about Q1, Q2, Q3 and can therefore not differentiate between those.
Reproduce the code example:
import fastf1

session = fastf1.get_session(2023, "Canada", 'Q')
session.load(telemetry=False)

fastest = session.laps.pick_fastest()
# fastest should be Albon's lap for P1 in Q2 which was the overall fastest quali lap

Error message:
-- not applicable --

Potentially relevant for anyone looking to fix this:
TimingData.Lines[].BestLapTimes contains the best lap times (and lap number) for each of the qualifying parts, which can maybe help out here.
Another thing that may be helpful is using SessionData.Series[].Utc to split the data per qualifying part.

@f1multiviewer thanks for the hints.
In the end, I can't use the times from TimingData.Lines[].BestLapTimes because overall it contains less information than TimingData.Lines[].BestLapTime. I cannot detect when a personal best was deleted based on it. But it contains a counter
the Q1, Q2, Q3 which means I can approximately split the data using only information from this one API endpoint. This is sufficient to fix this problem.


onfocus event not supported

From an UI point of view it would be awesome to support tab enter like events
IMHO a very simple solution is to treat the @focus event as a click.
Do you have any solution to do that from a prop point of view?

I have merged PR: https://github.com/northwalker/vue-hotel-datepicker/pull/15,
and publish new version 2.0.7.
Thanks for your help @saniales and @TobiasJ


fix political plot showing incorrect results

Description
Fix the bug which political compass plot shows incorrect results.

Type of change

[x] Bug fix (non-breaking change which fixes an issue)

Checklist:

[x] I've added Google style docstrings to my code.
[x] I've used pydantic for typing when/where necessary.
[x] I have linted my code
[x] I have added tests to cover my changes.

@alytarik  kindly update the image in the earlier PR description.


Can't change baseURI and port in a filter

Hello,
I have the following situation:
I construct a request using the following code:

the properties are set in rest-assured statically

RestAssured.port = Integer.parseInt(property.getProperty("appPort"));
RestAssured.baseURI = property.getProperty("appBaseURI");
RestAssured.basePath = property.getProperty("appBasePath");

the request is made as follows:

given().filter(new CustomRequestFilter())
.contentType(ContentType.JSON)
.body(json)
.post("/groups");

The filter is:

public class CustomRequestFilter implements Filter{
public static Map<String, String> loginCookies;
@Override
public Response filter(FilterableRequestSpecification requestSpec, FilterableResponseSpecification responseSpec, FilterContext ctx) {
if(loginCookies!= null){
    requestSpec.baseUri(httpsUri)
               .port(443)
               .cookies(loginCookies)
               .redirects().follow(true)
               .config(config().sslConfig(new SSLConfig().relaxedHTTPSValidation()));
}
return ctx.next(requestSpec, responseSpec);

}
}
Running the above scenario doesn't change the URI and port even if the loginCookies are not null. The cookies are put in the request and all the remaining config, like redirect and sslConfig.
It seems that this is a bug. There is also a group thread for this: https://groups.google.com/forum/#!topic/rest-assured/SfoNKxUx4Bo

Thanks for reporting

I think I've fixed this now. Please try it out by depending on version 2.6.1-SNAPSHOT after having added the following repo:
<repositories>
        <repository>
            <id>sonatype</id>
            <url>https://oss.sonatype.org/content/repositories/snapshots/</url>
            <snapshots />
        </repository>
</repositories>

It is fixed in the snapshot provided. When do you think the release will be available?
Thank you very much for the fix. It was an important part for our project. Cheers.

Thanks for trying it out. I'll probably release a new version in 1-2 weeks (maybe sooner).


Extend tests coverage

Thanks @keradus, in the future should I group new tests and stuff into one PR?

for cleaning/refactoring, yeah. (for features/bugfixes - nope)
even if this PR will collect other 10 (or so), it will still be smaller than most of the PRs

damn. fabbot is wrongly suggesting to fix paths that are excluded in config.
cc @fabpot

Thank you @ntzm.


New Game Request - Assault Cube

Module Request
Note: Please try setting up a configuration yourself before raising an issue to request a configuration:  ~~https://config.getamp.sh/~~
***There is a newer beta version available at https://config.iceofwraith.com
Game Information:
Game Title: Assault Cube
How to obtain: https://assault.cubers.net/download.html
Windows Current - https://github.com/assaultcube/AC/releases/download/v<IP_ADDRESS>/AssaultCube_v<IP_ADDRESS>_LockdownEdition.exe
Linux Current - https://github.com/assaultcube/AC/releases/download/v<IP_ADDRESS>/AssaultCube_v<IP_ADDRESS>_LockdownEdition_RC1.tar.bz2 (the Linux server is easier to setup and more reliable)
Suppoted OSs: Windows & Linux
Supports RCON/Console input? No?
I have gotten it working on one of my server, through some manual setup, but it has dependencies that it would be better to have contained to a docker instance instead of installing everywhere and I could not get that working.
I confirm:

[x] that I have searched for an existing module request for this application.
[x] that the server is an official server distributed by the games publishers/developers.
[x] that the server is available to the general public.
[x] that the server can be run headless (without a GUI).
[x] I have already attempted to create a configuration myself using the configuration tool
[x] that my checkboxes above look like the one on the left (remove this line when done)

Also, since the Linux version is both gzipped and tarred I was not sure how to make that work.


Change the brand

Since you've oppressively, without consulting anyone, changing the face of Go, turning it into something nobody wants or likes, especially making the documentation worse and less readable than it has been, and since some people seem to reference some kind of "brand" when validating their ignorance, I hereby demand a change of the brand and that it should be reverted to what it was pre 2018 redesign.
The "brand" is not something I, or others, like to support or feel represented by it.
https://news.ycombinator.com/item?id=16935084
is just one example
Why now? Because more github readmes are changing to the new pkg.go.dev badge instead of the godoc.org badge thus this awful design decision being in one's face all the damned time.
One could say, "just change the styling in your browser".

why combat the symptoms instead of eradicating the cancer?
browser plugins can't potentially be trusted to not collect your browsing behavior.

And dump the whole "we're having a brand" attitude. No you're not having a brand.
Go is successful because people support it, and because the mascott even plays a role in its popularity.
The =GO logo is awful.
The color palette is awful.
The font is awful.
Revert the "brand" back to what it was pre changes so we can again have a language for humans, not font-familty: "Robot"

To expand above, I'm not even sure I can easily override it on Android Chrome. So that isn't a workaround for me.
The color and font have been the only reason I haven't stopped using godoc.org. I can ignore that logo, but the rest impedes my ability to read package documentation comfortably.

Oh, I forgot this one too. Because of the logo people keep calling the language GO. It's not an acronym, and we tend not to shriek the name of the language as we say it. 😄


Date boundary validations

@spekulatius if you could please have a look and provide feedback when you have time. Thanks.

@spekulatius I have corrected those 2 things in the PHP docs. Thanks.

@ZarockNZ I'll have a proper look at the solution (hopefully) tonight and give you some proper feedback tmr.


Can I keep working on model and paper after submission?

Greetings. My paper and model approach is not the best one, I want to know can I improve it for the test set after submission for the validation set?
Thanks

Hi @talhaanwarch ,
Yes! You can change your docker during the testing submission.


[checkstyle] Add ConstantName java checkstyle rule

What is the purpose of the pull request
[major] Add ConstantName java checkstyle rule
[minor] Add SimplifyBooleanExpression java checkstyle rule
Brief change log

Refactor based on ConstantName code style rule
Refactor based on SimplifyBooleanExpression code style rule

Verify this pull request
This pull request is code cleanup without any test coverage.
Committer checklist

[x] Has a corresponding JIRA in PR title & commit

[x] Commit message is descriptive of the change

[x] CI is green

[x] Necessary doc changes done or have another open PR

[x] For large changes, please consider breaking it into sub-tasks under an umbrella JIRA.

hi, @leesf help to review, thanks 😃


fix: update pyjwt parameters to satisfy 2.x changes

This change includes updates to the jwt.decode call from by updating the verify options from https://github.com/IBM/python-sdk-core/pull/89 and specifying the algorithm in the decode to satisfy new changes in version 2.0.0 of pyjwt.

:tada: This PR is included in version 3.3.4 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:

:tada: This PR is included in version 3.3.4 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


remove seccomp from seccomp profile

This can be allowed because it should only restrict more per the seccomp docs, and multiple apps use it today.
re conversation here: https://github.com/docker/docker/pull/18780#discussion_r48546597

LGTM

Allowing nested seccomp makes sense to me.

:+1::shipit:


MediaCollectionsTileService throws on empty playlist

These lines rely on a few things being non-empty:
https://github.com/google/horologist/blob/de6e19842dba1de99d5861309b9d5f307669b78f/media-sample/src/main/java/com/google/android/horologist/mediasample/data/service/tile/MediaCollectionsTileService.kt#L72-L78
If that's not true, the tile throws Caused by: java.util.NoSuchElementException: List is empty.
We need to add a default "empty playlist" tile.

cc @kul3r4

Closing as low priority, reopen if keen to work on it.


[GALLERY] Add header to landing page

Adds the header component to the landing page. Staging link: https://metalab-gallery-landing-header-87bf.surge.sh/templates/gallery/gallery.amp
cc @camelburrito

I need to figure out the Sidebar situation before this can be merged, since we might be removing the <button> from this PR.


No contracts generated in 1.05

The parts appear, can be used and seem to function, but no contracts are being generated.

Fixed by Keerbas-as-astra


Add ability to wait for cert packs to be active

This is probably not ready for merge - I made this little patch to test the feature request in #1559 and won't be able to follow up in all likelihood by the time there is a response due to a change in employer (so I will no longer personally be working with Cloudflare - but the use case for the employer is still valid/relevant), but I didn't want to just delete the local code.
Please feel free to use/modify/drop this as needed.
It adds a new option to the cloudflare_certificate_pack resource to block/wait on creation until all certificates in the pack are marked as active in the API - with the aim of this making use of create_before_destroy less likely to cause service disruption on updates.

before we consider merging this, we'll also need some tests and to clean up the imports for these files.

I can add a resource.TestCheckResourceAttr check for the new attribute to check the default

yep, just a check that it ends up in the state is fine. we can also add another test with the wait_for_active_status flag set to on so that we exercise that code path and there aren't any errors too.

Added the tests and rebased from master if you can take another look please @jacobbednarz.
I don't have a test Cloudflare account that would be safe to run the test suite in (from a brief look at the way they work, the sweepers will destroy unrelated resources) so I don't know if the tests actually pass or not.

acceptance tests look good
TF_ACC=1 go test $(go list ./...) -v -run "^TestAccCertificatePack_" -count 1 -parallel 1 -timeout 120m -parallel 1
?   	github.com/cloudflare/terraform-provider-cloudflare	[no test files]
=== RUN   TestAccCertificatePack_AdvancedDigicert
--- PASS: TestAccCertificatePack_AdvancedDigicert (9.51s)
=== RUN   TestAccCertificatePack_AdvancedLetsEncrypt
--- PASS: TestAccCertificatePack_AdvancedLetsEncrypt (9.86s)
=== RUN   TestAccCertificatePack_DedicatedCustom
    resource_cloudflare_certificate_pack_test.go:133: Pending investigation into ACM entitlements
--- SKIP: TestAccCertificatePack_DedicatedCustom (0.00s)
=== RUN   TestAccCertificatePack_WaitForActive
--- PASS: TestAccCertificatePack_WaitForActive (14.06s)
PASS
ok  	github.com/cloudflare/terraform-provider-cloudflare/cloudflare	34.009s
?   	github.com/cloudflare/terraform-provider-cloudflare/tools/cmd/changelog-check	[no test files]
?   	github.com/cloudflare/terraform-provider-cloudflare/tools/cmd/maintainer-only-file-check	[no test files]
?   	github.com/cloudflare/terraform-provider-cloudflare/tools/cmd/tf-log-check	[no test files]
?   	github.com/cloudflare/terraform-provider-cloudflare/version	[no test files]


[BEAM-9198] BeamSQL aggregation analytics functionality

A simple Analytic Functions experiment for BeamSQL created
in order to understand the query processing workflow of
BeamSQL and Calcite.
The experiment is implemented in the test BeamAnalyticFunctionsExperimentTest.testSimpleOverFunction(),
when executing it a "BEAM_LOGICAL but does not implement
the required interface" exception is thrown.

Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:

[ ] Choose reviewer(s) and mention them in a comment (R: @username).
[ ] Format the pull request title like [BEAM-XXX] Fixes bug in ApproximateQuantiles, where you replace BEAM-XXX with the appropriate JIRA issue, if applicable. This will automatically link the pull request to the issue.
[ ] Update CHANGES.md with noteworthy changes.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

See the Contributor Guide for more tips on how to make review process smoother.

R: @amaliujia

Thanks for your help @amaliujia . I will close this PR and continue experimenting with BeamSQL/Calcite.


Closes #1246 - Integrate OpenCensus-OpenTelemetry-Bridge

This change is

Important changes introduced with ticket 1246 - Integrate OpenCensus-OpenTelemetry-Bridge
Date: 2022-01-11
Author: Heiko Holz
With ticket 1246, we have added the io.opentelemetry-opencensusshim to inspectIT Ocelot to start the migration from OpenCensus to OpenTelemetry.
As a first step, we added the opentelemetry-opencensusshim and implemented a LoggingMetricsExporterService and LoggingTraceExporterService that export traces and metrics to the system log. To make the migration work, several test cases and methods had to be adjusted to work with OpenTelemetry.
The most important changes are listed in the following chapters.

Important note:
The current version only works with Java 8 and Java 9, as the reflection we are using to reset io.opentelemetry.opencensusshim.OpenTelemetrySpanBuilderImpl requires to set the private final field OTEL_TRACER. This reflection code is not supported in Java 11 or higher, see https://stackoverflow.com/questions/56039341/get-declared-fields-of-java-lang-reflect-fields-in-jdk12. If we want to support Java 10 or higher while still using the opencensusshim, we need to adjust the reflection code in rocks.inspectit.ocelot.utils.TestUtils#initializeOpenTelemetryForSystemTesting and in rocks.inspectit.ocelot.core.utils.ReflectionUtils

Updated trace and metric exporters
Several trace and metric exporters have been disabled, removed, or added. Disabled services will be enabled in future releases when they have been properly integrated with OpenTelemetry.
Trace exporters

Exporter
Working

Logging Exporter
✓

Jaeger (Thrift)
✗

Zipkin
✗

The OpenCensus Agent Exporter has been completely removed.
Metric exporters

Exporter
Working

Logging Exporter
✓

Prometheus Exporter
✗

InfluxDB Exporter
✗

The OpenCensus Agent Exporter has been completely removed.
Things that have been removed or don't work anymore
The following functions have been removed or are not functional anymore (i.e., they are still in the source code but the tests fail and were disabled)

OpenCensusAgentMetricsExporterService and OpenCensusAgentTracingExporterService have been removed, as

OcAgentMetricsExporter and OcAgentTraceExporter do not exist in the shim
the related tests OpenCensusAgentMetricsExporterServiceIntTest.java and OpenCensusAgentTraceExporterServiceIntTest.java have also been removed
there is no counterpart for OTEL (i.e., no such OtelAgentMetricsExporter)

CustomSpanBuilder does not work anymore as it was using OC's TracerImpl via reflection. This breaks when using the shim, which uses the OpenTelemetryTracerImpl

the spanBuilderOptions (io.opentelemetry.opencensusshim.Options) of OpenTelemetrySpanBuilderImpl do not offer the startEndHandler as OC did (io.opencensus.implcore.trace.SpanBuilderImpl.Options)
further, OTEL does not use the RecordEventsSpanImpl that OC uses (the OTEL counterpart is OpenTelemetrySpanImpl)

we are therefore missing the TimeConverter and the StartEndHandler

→ As a result, we disabled the CustomSpanBuilderTest

AutoTracing/ StackTraceSampling does not work anymore as this expects a functional CustomSpanBuilder

→ As a result, we disabled the AutoTracingTest

InfluxExporterService does not work anymore

potentially, opencensus-influx-exporter needs to be re-implemented for OTEL
→ The InfluxExporterServiceIntTest is still disabled

The attribute serviceName of the metrics and trace exporters is not supported in OTEL. In OTEL, we can only set the service name for the SdkMeterProvider and OpenTelemetrySdk

Things that changed
The following chapters list the most important changes that needed to be considered to make the migration from OpenCensus to OpenTelemetry work.
Global Trace Export Component
The previously used io.opentelemetry.trace.Tracing#getTracingComponent() always returns a NoopSpanExporter in OpenTelemetryTraceComponentImpl.java. Thus, it was necessary to adjust TraceTestBase.java and TestUtils.java to build and register a GlobalOpenTelemetry with an InMemorySpanExporter whose exported traces can be used in the tests.
However, the InMemorySpanExporter returns io.opentelemetry.sdk.trace.data.SpanData. Thus, changes were applied to the following tests to work again:

TraceTestBase.java
TestUtils.java
HttpRemoteTracingTest.java
JigsawTest.java
TraceSettingsTest.java

Span and related classes
The main relevant changes from io.opencensus.trace.Span  to io.opentelemetry.api.trace.Span and related classes are listed in the following:

SpanId may be invalid but not null in OTEL, i.e., when the io.opencensus.trace.SpanId was null before, the io.opentelemetry.api.trace.SpanId may be now not null but invalid. Thus, we should check with SpanId.isValid(spanId):
// old OC code
if (span.getParentSpanId.isNull()){
   // do something
}

// new OTEL code
if(SpanId.isValid(span.)){
   // do something
}

a Span that was previously a BlankSpan.INSTANCE may now be simply invalid

in code where we previously checked if a (parent) span is BlankSpan.INSTANCE, we now need to check whether the span is valid, i.e.,

 // old code
 if(span == BlankSpan.INSTANCE){
    // do something
 }

 // new code
 if((span == BlankSpan.INSTANCE || !span.getContext().isValid())){
    // do something
 }

OpenCensus io.opencensus.trace.Status in Span#getStatus is replaced by io.opentelemetry.sdk.trace.data.StatusData

Mapping:

OC Status
OTEL StatusData

Status.OK
StatusData.unset()

Status.UNKNOWN
StatusData.error()

OpenCensus io.opencensus.trace.export.SpanData is replaced by io.opentelemetry.sdk.trace.data.SpanData

getStartTimestamp and getEndTimestamp are replaced by getStartEpochNanos and getEndEpochNanos, respectively

Attributes are stored differently.

The io.opencensus.trace.export.Attributes#getAttributeMap is a Map<String, AttributeValue, i.e., keys are String and values are io.opencensus.trace.AttributeValue. In OTEL, the io.opentelemetry.sdk.trace.data.SpanData#getAttributes() returns a Map<io.opentelemetry.api.common.AttributeKey, Object>.  We therefore have to change the keys and values accordingly

change the key from String to AttributeKey, e.g., AttributeKey.stringKey("myKey")
change the value from AttributeValue to the Object implementation// OC code
Map<String, io.opencensus.trace.AttributeValue> ocAttributes = span.getAttributes().getAttributeMap();
AttributeValueString ocAttributeValue = ocAttributes.get("myKey")

// OTEL Code
Map<io.opentelemetry.api.common.AttributeKey, Object> attributes = span.getAttributes().asMap();
String otelAttributeValue = otelAttributes.get(AttributeKey.stringKey("myKey"));

see also the changes in TraceSettingsTest#testAttributeWritingToParentSpan

Context propagation
OpenCensus and inspectIT Ocelot use io.grpc.Context to propagate data, such as the InspectitContext, Span or TraceId. OpenTelemetry uses its own io.opentelemetry.context.Context implementation. To make all system tests succeed, we need to concurrently support (re-)storing data in io.grpc.Context as well as io.opentelemetry.context.Context. As an intermediate solution, we changed the following files to support both implementation of Context concurrently:

rocks.inspectit.ocelot.core.instrumentation.context.ContextManager.java
rocks.inspectit.ocelot.core.instrumentation.context.ContextManager.InvalidationContext.java
InspectitContextImpl.java
StackTraceSampler#createNormalSpan
2022-01-07-ticket-1426-oc-otel-bridge-changenotes.md


search bar UI update, networking, and app navigation

Overview:

Added NavController
Added medium fidelity UI for suggested searches when query is blank
Added proper filtering of all stops in search

Changes made:

Added navController parameter to views
Searchbar components and UI fixes
Search query combine flow

Screenshots:

Rough design doc: https://github.com/cuappdev/ithaca-transit-compose/wiki/Design-and-Architecture


Naming conflict with original project

We may need to install under a different name to avoid conflicts. Ideas?

When considering these changes make sure to consider that guides may be more difficult for novice users.
Did you come to a conclusion on what to do on regarding this topic?

this issue was redundant with #6 so we've closed it.
we don't have a resolution yet but we are close


Define executable C API and rework LLVM target to emit it

With the threading changes I'll be unifying the host-based HAL backends around a common executable API. VMLA, dylib, llvmjit, and in the future emitc/statically linked executables will then all share this API to expose their entry points, exchange library functions, and query information.
The goal is to get down to near-zero bytes consumed that are not in rdata (in the AOT case) and remove the need for the wrapper flatbuffers in cases where they shouldn't need to exist like statically linked executables.

Working version:
//===----------------------------------------------------------------------===//
// Versioning and interface querying
//===----------------------------------------------------------------------===//

// Known valid version values.
enum iree_hal_library_version_e {
  // iree_hal_library_v0_t is used as the API communication structure.
  IREE_HAL_LIBRARY_VERSION_0 = 0u,
};
typedef uint32_t iree_hal_library_version_t;

// The latest version of the library API; can be used to populate the
// iree_hal_library_header_t::version when building libraries.
#define IREE_HAL_LIBRARY_LATEST_VERSION IREE_HAL_LIBRARY_VERSION_0

// A header present at the top of all versions of the library API used by the
// runtime to ensure version compatibility.
typedef struct {
  // Version of the API this library was built with, which was likely the value
  // of IREE_HAL_LIBRARY_LATEST_VERSION.
  iree_hal_library_version_t version;

  // Name used for logging/diagnostics.
  const char* name;
} iree_hal_library_header_t;

// Exported function from dynamic libraries for querying library information.
// The provided |max_version| is the maximum version the caller supports;
// callees must return NULL if their lowest available version is greater
// than the max version supported by the caller.
typedef const iree_hal_library_header_t* (*iree_hal_library_query_fn_t)(
    iree_hal_library_version_t max_version);

// Function name exported from dynamic libraries (pass to dlsym).
#define IREE_HAL_LIBRARY_EXPORT_NAME "iree_hal_library_query"

//===----------------------------------------------------------------------===//
// IREE_HAL_LIBRARY_VERSION_0
//===----------------------------------------------------------------------===//

typedef void* iree_hal_library_binding_ptr_t;

// Read-only per-dispatch state passed to each tile in a dispatch.
typedef struct {
  const uint32_t* push_constants;
  const iree_hal_library_binding_ptr_t* bindings;
  uint32_t workgroup_size[3];
  uint32_t workgroup_count[3];
} iree_hal_library_dispatch_state_v0_t;

// Function signature of exported executable entry points.
// The same |state| is passed to all tiles in a dispatch, with workgroup_[xyz]
// varying per-tile up to the workgroup_count. Each tile represents
// workgroup_size invocations in the global grid.
typedef void (*iree_hal_library_dispatch_v0_t)(
    const iree_hal_library_dispatch_state_v0_t* state, uint32_t workgroup_x,
    uint32_t workgroup_y, uint32_t workgroup_z);

// Structure used for v0 library interfaces.
// The entire structure is designed to be read-only and able to live embedded in
// the binary .rdata section.
typedef struct {
  // Version/metadata header. Will have a version of IREE_HAL_LIBRARY_VERSION_0.
  iree_hal_library_header_t header;

  // The total number of entry points available in the library. Bounds all of
  // the tables below.
  size_t entry_point_count;

  // Table of export function entry points matching the ordinals defined during
  // library generation. The runtime will use this table to map the ordinals to
  // function pointers for execution.
  const iree_hal_library_dispatch_v0_t* entry_points;

  // Optional table of export function entry point names 1:1 with entry_points.
  // These names are only used for tracing/debugging and can be omitted to save
  // binary size.
  const char** entry_point_names;

  // Optional table of entry point tags that describe the entry point in a
  // human-readable format useful for verbose logging. The string values, when
  // present, may be attached to tracing/debugging events related to the entry
  // point.
  const char** entry_point_tags;
} iree_hal_library_v0_t;

this is still easy to build in LLVM IR, and collapses down to effectively just a function pointer table in release builds (the names/tags being optional):
static void dispatch_tile_a(
    const iree_hal_library_dispatch_state_v0_t* __attribute__((nonnull)) state,
    uint32_t workgroup_x, uint32_t workgroup_y, uint32_t workgroup_z) {
  // <do things here, do *not* access mutable globals>
  uint8_t* dst = ((uint8_t*)state->bindings[0]);
  const uint8_t* src = ((const uint8_t*)state->bindings[1]);
  dst[workgroup_x] = src[workgroup_x];
  dst[workgroup_y] = src[workgroup_y];
}

static void dispatch_tile_b(
    const iree_hal_library_dispatch_state_v0_t* __attribute__((nonnull)) state,
    uint32_t workgroup_x, uint32_t workgroup_y, uint32_t workgroup_z) {
  // <do things here, do *not* access mutable globals>
}

static const iree_hal_library_dispatch_v0_t entry_points[2] = {
  dispatch_tile_a, dispatch_tile_b,
};
static const char* entry_point_names[2] = {
  "dispatch_tile_a", "dispatch_tile_b",
};
const char* entry_point_tags[2] = {
  "matmul+div", "conv2d[512x512]",
};

static const iree_hal_library_v0_t library = {
  { IREE_HAL_LIBRARY_LATEST_VERSION, "lib_a" },
  2,
  entry_points,
  entry_point_names,  // optional
  entry_point_tags,   // optional
};

extern const iree_hal_library_v0_t* iree_hal_library_query(iree_hal_library_version_t max_version) {
  return max_version <= 0 ? &library : NULL;
}

I think this is a good enough placeholder for the first version with room to iterate (exposing different entry points based on CPU capabilities, etc).

LLVM IR here for reference: https://godbolt.org/z/GvvhW8


Add horizontal bar chart / visual indicator to card rows

Most products in this space use horizontal bar charts - in addition to counts - to help visually indicate how "big" a bucket is.
Example from Plausible's marketing page:

Counterscale at the moment:

Can I work on this?

Can I work on this?

100%

https://github.com/benvinegar/counterscale/pull/39 ready for review 😄


[Feature] Add deployer for Keycloak

@kevangel79 @NicolasLiampotis Could you please review this PR?

Great job! I would like some additions to be able to verify the quality of the code and to be able to upload a new package to the pypi repository through the CI/CD. The changes needed are below:

[ ]  Please add some unit tests for keycloak deployer similarly to the existing tests.
[ ] Update the version of the package in the setup.py (pump the major version)

Please also update the version in setup.py file

Please also update the version in setup.py file

Done! Also the feature branch has been rebased


Updated to use UTF-8 encoding

Updated to use UTF-8 encoding so messages can have the UTF-8 characters

What is the use-case / reason for this?

Its to allow messages with accent characters to be posted onto slack (e.g. "résumé")


Package sync / vlt_checkout leaves ".vlt" files for parents

compare
sh gradlew :app:aem:ui.content:packageSync
vs
sh gradlew :app:aem:ui.content:packageSync -Ppackage.sync.transfer=vlt_checkout
in VCS there will be visible file ".vlt" not cleaned, because cleaner is only cleaning files created under filter roots, however vlt is creating this files up to jcr_root
@dprzybyl :)

parents backup mechanizm was broken in 11.x due to regression related with introducing lazy properties.
found issue and fixed that. to be released in 12.0.0


use safer/more aesthetic syntax for setting environment variables on Windows

(Cleaned up version of https://github.com/facebookincubator/create-react-app/pull/3530)
Documentation update to fix a maddeningly easy oversite for Windows users.  The SET command allows for wrapping the variable assignment expression with double quotes. Using this method negates the need to smash two commands together with the && operator as currently documented.

@Timer any thoughts on this?


Enable xdg_shell for weston10

Platform: TGL
OS: Yocto native wayland weston
Tested: ./sample_decode h264 -vaapi -hw -i test.h264 -rwld -rgb4
Issue: #2995
Signed-off-by: Cheah, Vincent Beng Keat<EMAIL_ADDRESS>

Please help to review.


Update README.md

What / 変更点
Revise some grammar issues
Why / 変更した理由
Clear up English
How (Optional) / 概要
Rewrote some sentences and fixed grammar issues
How affect / 影響範囲
None

Hi @Three7Six , thanks for contributing.
We really appreciate grammatical revision since most of us are not good at English.

Thank you!!


Add syslog logging mechanism

Our ermrest and hatrac services have syslog logging output for audit. We should probably add the same thing to webauthn REST APIs for consistency in operations...

@ljpearlman  can you review this logging change?  I basically copied a method we use in the other services...

I wonder whether we should be more selective about the /auth/session  GET and PUT requests in this logging?  This will include all the requests issued by mod_webauthn to the wsgi backend right now...
I'm not sure what logic could/should be used to decimate those logs though.


coreos: explicitely set pip executable.

By default, /opt/bin is not in $PATH.
Fixes https://github.com/kubernetes-incubator/kubespray/issues/1409

Maybe add /opt/bin to the PATH instead ?

I'll do it tomorrow if you really want PATH. :-)

Done, using bin_path and PATH where needed.


fix shape of geographiclib-dms types to match library

hi!
Thanks so much for geographiclib and this Javascript port! Unfortunately, the Typescript types in geographiclib-dms are wrong. The published version of the types declares a constant called DMS with all functions of the library as members of that object, but the library itself exports its functions as root-level exports.
So, this PR adjusts the declared types to match the shape presently exported by the library. It also removes the enums in favor of constant integers, as the library does not export actual enum in the form expected by Typescript.
This is in some sense a breaking change for Typescript users of geographiclib-dms, but, as there is not presently any way to use geographiclib-dms in a Typescript project in a way that both passes typechecking and works properly at runtime, there should not be many users whose work is broken by the change.

Sorry, I didn't get the notification about this PR and I just saw it.  I'll take a look.

I merged this PR into the devel branch.  I'll make a new release within a month.

great, thank you!


[8.x] Tweak factory generator

Hello,
first of all I would like to say this is my first PR targeting large application(framework) like Laravel.
I recently switched to Laravel 8.0 and found that, when generating factory, first argument (factory name) is ignored (only used to generate file name). This PR fixes this behavior so, class name is same as file name. I am not sure if current behavior is intentional, but I found that factory class name does not necessary match model name in my case. Did not find any tests for factory generation. Please, feel free to leave any feedback!
Current behavior
My models

Parameter\Parameter
Parameter\Layout

$ php artisan make:factory ParameterLayoutFactory
Creates (Model ParameterLayout not found)
class ModelFactory extends Factory
Expected behavior
$ php artisan make:factory ParameterLayoutFactory
Creates (class name inherited from name argument)
class ParameterLayoutFactory extends Factory
Thanks.

Hey, you forgot to add [8.x] at the beginning of your title. I liked your PR, make sense, It's rare creates a Factory without Model option but it will help in cases where you forgot to create with the Model.

This will break other cases.

Maybe, if model option is provided, it will have same behavior as current? @taylorotwell

What is the full path namespace to your models. They are really just Parameter\Parameter? No App?

What is the full path namespace to your models. They are really just Parameter\Parameter? No App?

Full namespace is App\Database\Paramer\Parameter and App\Database\Parameter\Layout

I think you are right and this change is OK. Thanks.


[FEATURE REQUEST] JavaScript/Node language binding

If anyone would like to contribute to discussions about Pkl support for Node and TypeScript, please join the unofficial community Discord and join the conversation in #bindings-typescript.

Closing this issue, because of the community initiative this is underway as mentioned by @jasongwartz. It seems best to track this issue on the pkl-community GitHub org.

In development at https://github.com/pkl-community/pkl-typescript


Repo sync for protected CLA branch

The pull request is created from main637810634012335075 to main to fix git push error for protected CLA branch

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


[QUESTION] Node npm wrapper

Hi guys,
first of all, I would to thank you for this lib. It really saved my day(s) when I needed to calculate median on group results :)
I used it on a nodejs project on (a bit) primitive way: adding your precompiled binary into my source code and loading it via sqlite3 nodejs module. I came to idea to pack them into npm module to ease usage for other NodeJs developers (at least those that are not so eager to build it from source, like me :) ).
I just wanted to check with you are you ok with that idea? Off-course, If I do it, I plan to reference your original repo from readme of node wrapper project?
BR
Zoran

Hello Zoran! Thanks a lot! Sure, feel free to create an npm package if you find it useful.

Hi @nalgeon,
node/npm wrapper is availabel at https://github.com/zbubric/sqlite3-sqlean


Use racer default if the directory does not exist

Makes rustup setups work just out of box.

merged into racer-plus package here https://github.com/Xaeroxe/atom-racer


[LCS] Heavy stuttering on the latest version of PPSSPP

Hello, ThirteenAG. I noticed that Project2DFX introduces heavy stuttering on the latest build of PPSSPP: both cutscenes and gameplay are affected by it. As soon as I uninstall Project2DFX, the FPS drops are gone. Could you please look into it and check whether you experience the same issues?

Hm, it appears that I do. Thought the code haven't changed in 9 months, there was only a sdk update in august. Maybe a ppsspp regression?

I think I have stutters even without the mod :/

I've checked the latest version. Unfortunately, the perfomance is still bad on my end: as soon as lod lights activate during the evening, my framerate drops from 30 to 14-15 FPS. Only your widescreen fix and Project2DFX were installed. The first cutscene where Tony gets off a bus still runs at 12-13 FPS too.

You need to increase CPU clock in settings. If that doesn't help, then you don't have the device powerful enough.

Thank you for the tip, ThirteenAG. I increased CPU clock to 1000 and enabled every option in the perfomance section of the PPSSPP options. Now I have stable 30 FPS at night, the game seems to work as it should. This topic can be closed now.

By the way, ThirteenAG, could you tell me whether it's possible to add "MinDrawDistanceOnTheGround" option from the PC version of Project2DFX to PPSSPP and PCSX2? The only major annoyance I'm experiencing with LCS and VCS on those emulators is low draw distance and the resulting constant pop-in of objects, cars & pedestrians. If only Project2DFX could fix that issue...

No.


JIT for class method

I want to use JIT for a class method. The following works fine:
class A1:
    def __init__(self):
        self.f = jax.jit(self.f)
        pass

    # @jit
    def f(self, x):
        return x

a = A1()
print(a.f(5))

But the following gives a type error:
class A1:
    def __init__(self):
        # self.f = jax.jit(self.f)
        pass

    @jit
    def f(self, x):
        return x

a = A1()
print(a.f(5))

TypeError: Argument '<__main__.A1 object at 0x7fabf5a8d400>' of type <class '__main__.A1'> is not a valid JAX type.
Could anyone help clarify the difference between the two?

In the first case, the expression self.f binds f's first argument (to self), and evaluates to a function of only one argument (x), which jax.jit handles without issue. In the second case, jit wraps a function of two arguments, which is later invoked with an instance of A1, a type that it hasn't been taught to handle.
You might also consider the following approach:
from functools import partial

class A1:
    @partial(jit, static_argnums=0)
    def f(self, x):
        return x

See the jit docs for more on this static_argnums parameter.

In case anyone comes across this, there is now a section in the FAQ addressing jit compilation of methods: https://jax.readthedocs.io/en/latest/faq.html#how-to-use-jit-with-methods


[FEATURE] New design for profile section

Description
we can have a new design for profile section instead of a plain one to make our profiles look more promising
although i am not clear with the idea but here is something which is in my head
Screenshots

Additional information
No response

This looks great so far @ManishBisht777! The design is simple yet attractive. Have you thought of anything for the milestone section?

i created a design for milestones section also , here is the rough idea for that

there is also a lot of possibilities by playing with colors

i want to work on this

I would recommend doing each small improvement at a time, it is very difficult to review big changes
Smaller and more PRs are best

Thanks @eddiejaoude
This issue can be divided into many parts

profile section
1.1) make layout and style it
1.2) integrated to existing ui
socials section
2.1) make ui for individual social component
2.2) combine it with the main container
2.3) Integra it to existing system
milestones section
3.1) make layout and style it
3.2) integrate it with system

I will be working on profile section first

I would recommend creating an issue for each section, so that it can be reviewed and merged as we go along

Sure i am planning to do the same

closing this one this has been spilt into multiple issues


v0.12.0_20: URL link fail:Chart is not loading

SEVERITY: Critical
MODULE: Stage
Platform:

Windows 7 / Chrome 47.0
MAC / Safari 9.0

STEPS TO REPRODUCE:

Navigate to URL: http://tools-stage.gapminderdev.org/tools/bubbles
Tools page is loaded.
Click Color. Small pop up screen is displayed.
Click drop down and change the option from “Region” to “Constant”
Copy the URL and paste in another tab
Note that chart is not loading

ACTUAL RESULTS:
Chart is not loading after refreshing the page with some changes
EXPECTED RESULTS:
Chart should be loaded in any case
SCREENSHOT:
Screenshot 1:

Screenshot 2:

Fixed in v.0.12.1

@angieskazka
Same issue is reproduced on the following link with same steps to reproduce
https://tools-stage.gapminderdev.org/tools/map

fixed with waffle server update


Consulcatalog: tags are not recognized

Do you want to request a feature or report a bug?

Bug

What did you do?

I have set up Consul between two machines (<IP_ADDRESS> and <IP_ADDRESS>) running docker-compose. I have set up the consulcatalog provider in Traefik container and automatic tag adding in Nextcloud container.
Output in Consul UI:

The Nextcloud service in Consul UI:

Output of curl http://<IP_ADDRESS>:8500/v1/catalog/services in Traefik's machine
{"consul":[],
"nextcloud":[
"traefik.tcp.routers.nextcloud-tcp.entrypoints=https",
"traefik.tcp.routers.nextcloud-tcp.rule=HostSNI(`nextcloud.laurikemppi.net`)",
"traefik.tcp.routers.nextcloud-tcp.tls.certresolver=dns-cloudflare",
"traefik.tcp.routers.nextcloud-tcp.tls.passthrough=true",
"traefik.tcp.routers.nextcloud-tcp.service=nextcloud-tcp-svc",
"traefik.tcp.services.nextcloud-tcp-svc.loadbalancer.server.port=443",
"traefik.enable=true"
]}

What did you expect to see?
Traefik recognizing the Nextcloud container with tag traefik.enable=trueand adding it to reverse proxy with the given ruleset.
What did you see instead?
Traefik gives a message "Filtering disabled item" and ignores nextcloud.
If setting  - --providers.consulcatalog.exposedByDefault=true in Traefik, the other arguments given in Nextcloud's tags are still ignored but Nextcloud itself is recognized.
Output of traefik version: (What version of Traefik are you using?)

Traefik Docker container TOML arguments
      - --providers.consulcatalog=true
      - --providers.consulcatalog.prefix="traefik"
      - --providers.consulcatalog.endpoint.address=<IP_ADDRESS>:8500
      - --providers.consulcatalog.exposedByDefault=false
      - --providers.consulcatalog.defaultRule=Host(`{{ .Name }}.$DOMAINNAME`)
      - --providers.consulcatalog.cache=false

Nextcloud Docker container services
services:
  registrator:
    image: gliderlabs/registrator:latest
    command: "-ip <IP_ADDRESS> consul://<IP_ADDRESS>:8500"
    container_name: registrator
    hostname: consul-02
    volumes:
      - /var/run/docker.sock:/tmp/docker.sock

  nextcloud:
    container_name: nextcloud
    image: nextcloud:latest
    restart: always
    ports:
      - 80:80
    security_opt:
      - no-new-privileges:true
    volumes:
      - $DOCKERDIR/nextcloud:/config
      - /mnt/data:/data
      - $DOCKERDIR/nextcloud:/var/www/html
    environment:
      - PUID=$PUID
      - PGID=$PGID
      - TZ=$TZ
      - SERVICE_TAGS=traefik.enable=true,traefik.tcp.routers.nextcloud-tcp.entrypoints=https,traefik.tcp.routers.nextcloud-tcp.rule=HostSNI(`nextcloud.$DOMAINNAME`),traefik.tcp.routers.nextcloud-tcp.tls.certresolver=dns-cloudflare,traefik.tcp.routers.nextcloud-tcp.tls.passthrough>

If applicable, please paste the log output in DEBUG level (--log.level=DEBUG switch)
Logs when - --providers.consulcatalog.exposedByDefault=false
time="2021-04-12T08:27:59Z" level=debug msg="Filtering disabled item" serviceName=consul
time="2021-04-12T08:27:59Z" level=debug msg="Filtering disabled item" serviceName=nextcloud
time="2021-04-12T08:27:59Z" level=debug msg="Configuration received from provider consulcatalog: {\"http\":{},\"tcp\":{},\"udp\":{}}" providerName=consulcatalog
time="2021-04-12T08:27:59Z" level=info msg="Skipping same configuration" providerName=consulcatalog

Logs when  - --providers.consulcatalog.exposedByDefault=true
time="2021-04-12T08:41:31Z" level=debug msg="Configuration received from provider consulcatalog: {\"http\":{\"routers\":{\"consul\":{\"service\":\"consul\",\"rule\":\"Host(`consul.laurikemppi.net`)\"},\"nextcloud\":{\"service\":\"nextcloud\",\"rule\":\"Host(`nextcloud.laurikemppi.net`)\"}},\"services\":{\"consul\":{\"loadBalancer\":{\"servers\":[{\"url\":\"http://<IP_ADDRESS>:8300\"},{\"url\":\"http://<IP_ADDRESS>:8300\"},{\"url\":\"http://<IP_ADDRESS>:8300\"}],\"passHostHeader\":true}},\"nextcloud\":{\"loadBalancer\":{\"servers\":[{\"url\":\"http://<IP_ADDRESS>:80\"}],\"passHostHeader\":true}}}},\"tcp\":{},\"udp\":{}}" providerName=consulcatalog
time="2021-04-12T08:41:31Z" level=info msg="Skipping same configuration" providerName=consulcatalog

Hello @LauriKem,
Thanks for your interest for Traefik!
Could you please provide a reproducible case?

Hi @jbdoumenjou!
The scenario I have retried now goes like this:

Two separate machines with Ubuntu Server 20.04.2
Consul installed on both machines, services viewable and connection checked from online UI
Nextcloud running on other machine, registered in Consul with appropriate tags (see original curl-output)
Traefik running on other machine with newest docker-compose. Works well and detects Docker services running in the same docker-compose.
With the Traefik arguments specified above, Traefik will recognize the services in Consul (viewable in DEBUG-log level) but does not recognize the attached tags

Thanks for the scenario,
having a minimal reproducible case in docker-compose would be awsome :wink:

Well, after tinkering around I found that by removing the Traefik  - --providers.consulcatalog.prefix="traefik" all the service tags were found correctly. Strange thing since there wasn't a typo, but I'll concider this ticket closed.
I'll add a new issue if I find the reason why that happened.


CLS Syslog 3.1.0 - Added support for webtx JSON format to send specif…

…ic fields to SIEM platform

Added support for webtx JSON format to send specific fields to the SIEM platform


Bugfix/okta authorization url discovery

Description

Fixes: #4808
Rewrote mage_ai.authentication.providers.OktaProvider as a subclass of mage_ai.authentication.providers.OidcProvider.  This change preserves backwards compatability while fixing issue with hardcoded authorization server url.
How Has This Been Tested?

[x] Added test case to try different combinations of Okta environment variables to ensure initialization and url discovery works.

Checklist

[x] The PR is tagged with proper labels (bug, enhancement, feature, documentation)
[x] I have performed a self-review of my own code
[x] I have added unit tests that prove my fix is effective or that my feature works
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have made corresponding changes to the documentation
[ ] If new documentation has been added, relative paths have been added to the appropriate section of docs/mint.json

cc:

@dy46 can you review this PR?

@dy46 Fixed the quotes. And yes, the OIDC discovery url is accessible for any organization that has an OIDC app configured in Okta.


Ensure default column and row parameters are defined

When a KeplerTargetPixelFile is generated by the KeplerTargetPixelFileFactory, the default header has no defined value for column and row (it's set to astropy.io.fits.card.Undefined).
This PR ensures that the output of the factory has the required header keywords to perform basic tasks like plotting.

LGTM!  @nksaunders please merge once Travis and Appveyor are green!

Codecov Report

Merging #335 into master will decrease coverage by 0.04%.
The diff coverage is 66.66%.

@@            Coverage Diff             @@
##           master     #335      +/-   ##
==========================================
- Coverage   89.63%   89.59%   -0.05%
==========================================
  Files          26       26
  Lines        3897     3901       +4
==========================================
+ Hits         3493     3495       +2
- Misses        404      406       +2

Impacted Files
Coverage Δ

lightkurve/targetpixelfile.py
89.61% <66.66%> (-0.29%)
:arrow_down:

Continue to review full report at Codecov.

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


Made change to train_model to allow for changing the weight decay and…

Made change to train_model to allow for changing the weight decay and accumulate_grad_batches from the cli script.

@MatthewPierson90 I am finally getting around to working on cultionet again. Let me know if you want me to resolve the conflicts and merge this PR.

Thanks Jordan, yeah resolving that conflict would be great! I believe that
the every_n_val_epochs is an older version of torch, and every_n_epochs is
current.
I got pulled away from field mapping for some time now. We have been
working on getting more training data for the model, and that has taken a
lot of time. Will definitely be excited when I get to play with the model a
bit more in the future.
Sorry for the delay.
-Matthew
On Wed, Sep 14, 2022 at 1:15 PM Jordan Graesser @.***>
wrote:

@MatthewPierson90 https://github.com/MatthewPierson90 I am finally
getting around to working on cultionet again. Let me know if you want me
to resolve the conflicts and merge this PR.
—
Reply to this email directly, view it on GitHub
https://github.com/jgrss/cultionet/pull/20#issuecomment-1247196774, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/ASJTVOXMJPYUSR2TVHZWYMDV6IP5DANCNFSM5ZC6GRNA
.
You are receiving this because you were mentioned.Message ID:
@.***>


[caf] Update to 0.17.2

The arm64-windows build failure is expected.
Reason:
Build arm/arm64 needs build x86-windows/x86-windows-static/x64-windows/x64-windows-static first because when building caf:arm-windows, we need to use the executable file generated by caf to generate some files to participate in the compilation. However, the non-arm build system cannot use the generated arm executable file. Same as port proj4.
Related: #8792.
Note: this port does not contain any features.

/azp run

/azp run

/azp run

/azp run


Add streamlit + pne.chat simple chat app use cases

🚀 Feature Request
Just build a simple chatbot by streamlit and pne.chat
Functions:

only chat
select different models
input env and key
stream output

Output

a example code in examples

Example directories:

examples/streamlit-chatbot/app.py

examples/streamlit-chatbot/requirements.txt

examples/streamlit-chatbot/README.md

a docs

Why do it?
Let developers see how gradio combines with pne.chat.

If you finish this, you can do https://github.com/Undertone0809/promptulate/issues/626 at the same time.


Fix yaml quoting

Yaml does not like keys that start with * so let's quote all globs.

Need to force-merge this, sorry again.


AMPI is missing const qualifiers on buffer arguments to communication routines

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

All Gather, Scatter, Alltoall, Reduce, and Scan variants, as well as MPI_Sendrecv and possibly others, are missing const qualifiers on buffer arguments, resulting in warnings like this when users compile their code with ampicc:
warning: passing 'const void *' to parameter of type 'void *' discards qualifiers
      [-Wincompatible-pointer-types-discards-qualifiers]
    return MPI_Scan(sendbuf, recvbuf, count, datatype, op, comm);

Original date: 2016-08-28 14:36:13

AMPI currently doesn't use const on sendbuf arguments so that we can handle MPI_BOTTOM and MPI_IN_PLACE in the easiest way possible.

Original date: 2017-06-01 02:42:26

~~https://charm.cs.illinois.edu/gerrit/#/c/2571/~~ https://github.com/UIUC-PPL/charm/commit/4f576d5dd8b3fabedd4992a08ab3d088a7e46378


fix: typos in documentation files

Corrected Speficially to Specifically
Corrected supose to suppose
Corrected accomodate to accommodate

Thanks for notifying us. Because there is currently a high number of typo-related PRs across cryptocurrency-related repositories, and because I suspect that this is an effort to stake a claim at tokens rewarded to project contributors (like this one, for example), I will incorporate the changes you suggest in a new commit and will give you a shout-out in the next changelog.


Sum of percentage is not equal to 100% for allocation profiling

Dear Async profiler experts,
The following is my allocation profiling output result, two questions:

Why we will have 40% skipped?
I am curious why Sum of percentage is far less than 100%.

I use ./profiler.sh -g -b<PHONE_NUMBER> -e alloc  to do allocation profiling.
And TLAB size is 10: -XX:MinTLABSize=10,-XX:TLABSize=10,-XX:-ResizeTLAB
Really appreciate ur great help in advance!

You've set extreme TLAB settings. This means, almost every allocation is sampled. JVM is just too busy with sampling and it can hardly do anything else useful.
In order to prevent the situation when the application threads are blocked for a long time waiting the other threads to process stack traces, async-profiler simply skips a sample if it cannot immediately acquire a lock.
In short, there are too many simultaneous allocations being recorded. This creates a huge overhead. I suggest to increate TLAB size.

I am curious why Sum of percentage is far less than 100%.

By default, only top 200 traces are shown in the text report.
You may increase the number with -o traces=10000 or choose a different output format.

Dear @apangin ,
Really appreciate ur quick reply!

In order to prevent the situation when the application threads are blocked for a long time waiting the other threads to process stack traces, async-profiler simply skips a sample if it cannot immediately acquire a lock.

[Roy] 1. Could u please kindly elaborate the lock? i.e, how does async-profiler work to get stack trace?
2. Regarding TLAB size, do u have any recommendation for async allocation profiling?

By default, only top 200 traces are shown in the text report.

[Roy] Thanks for ur notes! In my case, top trace's percentage is only 1.94%, bottom trace's percentage is less than 0.58%, does it mean that it could have millions or billions of traces whose percentage is less than 0.58%?
Thanks,
Roy

Regarding TLAB size, do u have any recommendation for async allocation profiling?

Just remove all TLAB-related JVM options. Defaults should be OK in most cases. Reducing TLAB size in production is discouraged, as it may have negative performance impact.

does it mean that it could have millions or billions of traces whose percentage is less than 0.58%

Not millions, but several thousands are quite probable. So many different allocation stack traces are also likely to be the consequence of the extreme TLAB settings.

Thanks @apangin !

So many different allocation stack traces are also likely to be the consequence of the extreme TLAB settings.
hmm, do u mean the root cause of so many different allocation stack traces may be caused by extreme TLAB settings? Could u please kindly elaborate it? Thanks in advance!

Thanks,
Roy

I can't know for sure without seeing your particular application and the environment, but there is a high chance that the problem is caused by custom TLAB options. The "normal" TLAB size is usually somewhere between hundreds KB and several MB.  This makes all allocations go the slow path. Allocation sampling events will then occur ~10000 times more frequently than usual. Of course, this may have huge performance impact and cause high contention in the allocation sampler.

Thanks @apangin for ur clear explanation!


kmm example - iOS App crashes

The iOS App (Kmm Exmaple) crashes while launching.
I guess it is due to the initialisation of the DevicesViewModel .

Should work now