Testing a component while using ThemeProvider

I have been reading the test utilities section of the documentation but I didn't find any information on how to test a component with Jest that is wrapped inside a ThemeProvider. The only solution I have found is to pass a theme props to the component, but this imply to pass it also to all the component children and I would like to avoid it.
Here is my SO question with details on my case.
Thanks

Just wrap the component in a ThemeProvider in the Jest test file.

With enzyme than I can't access to the component I'm interested in since some operation works only on the root, in this case would be ThemeProvider...

u may wrap ur components in a ThemeProvider with some theme
import React from 'react'
import { shallow, mount } from 'enzyme'
import { ThemeProvider } from 'styled-components'
import { theme } from 'src/themes/main'

function wrapWithTheme (fn, children, options) {
  const wrapper = fn(
    <ThemeProvider theme={theme}>
      { children }
    </ThemeProvider>,
    options
  )

  return wrapper[fn.name]({
    context: wrapper.instance().getChildContext()
  })
}

export function shallowWithTheme () {
  return wrapWithTheme(shallow, ...arguments)
}

export function mountWithTheme () {
  return wrapWithTheme(mount, ...arguments)
}

There was an entire issue dedicated to this question: https://github.com/styled-components/jest-styled-components/issues/61
There is also a link to an issue on this repo in there that has more suggestions.
But this issue was resolved with an addition to the readme there that seemingly hasn’t been added to our site yet (PRs welcome 🙂)

Is there any solution to wrap shallow/mount with Theme in styled-components version 4?
I used @VladimirPesterev solution and it worked in the previous version.
After upgrading styled-components to v4.0.2, I have an error:
TypeError: wrapper.instance(...).getChildContext is not a function

@galina-niukhalova a solution I've found is setting the context directly on the ThemeConsumer as follow:
`
import { ThemeConsumer } from 'styled-components'
import defaultTheme from '../somewhere/theme'
export const shallowWithTheme = (children, theme = defaultTheme) => {
ThemeConsumer._currentValue = theme
return shallow(children)
}
`

@arka-na Thank you for your answer.
Unfortunately, your method doesn't work for me, I got an error
Cannot set property '_currentValue' of underfined
But I found another solution, which works for me.
Just set context in shallow / mount, like
export const shallowWithTheme = (children, themeForTests) => {
  return shallow(children, { theme: themeForTests }) //the same with mount
}

https://airbnb.io/enzyme/docs/api/ShallowWrapper/setContext.html

Facing the same issue.
following was working fine with version 2
export const shallowWithTheme = (children, options) => {
  const wrapper = shallow(<ThemeProvider theme={theme}>{children}</ThemeProvider>, options);
  const instance = wrapper.root().instance();
  return wrapper.shallow({ context: instance.getChildContext() }).dive();
};

But below one is not working after making change . Following example is using v4
export const shallowWithTheme = (children) => {
  ThemeConsumer._currentValue = theme;
  return shallow(children).dive();
};

@jitenderchand1 In either way to are trying to access SearchButton wrongly.  Try this:
wrapper.find('Styled(SearchButton)')

Has anyone found a way to test ThemeProvider? While @arka-na 's solution works but it's not adequate for my test purpose.

Bump on the above, has anyone managed to get a working solution for version 4 of styled-components?

+1

The main reason: _currentValue is an internal field and can be changed in any version without a warning

There is ongoing work at Enzyme to bring full support for the Context API in shallow renders. See references from https://github.com/styled-components/jest-styled-components/issues/191#issuecomment-465148948

For new versions like this
function wrapWithTheme(children, options) {
  ThemeConsumer._context._currentValue2 = themeForTests
  const wrapper = shallow(
    <ThemeProvider theme={theme}>{children}</ThemeProvider>,
    options
  )

I fix this problem following with answer in here
wrappingComponent option in enzyme mount could be answer.
export function mountWithTheme(child) {
    return mount(child, {
        wrappingComponent: ({ children }) => <ThemeProvider theme={TEST_THEME}>{children}</ThemeProvider>,
    });
}

export function shallowWithTheme(child) {
    return shallow(child, {
        wrappingComponent: ({ children }) => <ThemeProvider theme={TEST_THEME}>{children}</ThemeProvider>,
    });
}

I fix this problem following with answer in here
wrappingComponent option in enzyme mount could be answer.
export function mountWithTheme(child) {
    return mount(child, {
        wrappingComponent: ({ children }) => <ThemeProvider theme={TEST_THEME}>{children}</ThemeProvider>,
    });
}

export function shallowWithTheme(child) {
    return shallow(child, {
        wrappingComponent: ({ children }) => <ThemeProvider theme={TEST_THEME}>{children}</ThemeProvider>,
    });
}

This works like a charm 👍 Thanks

I fix this problem following with answer in here
wrappingComponent option in enzyme mount could be answer.
export function mountWithTheme(child) {
    return mount(child, {
        wrappingComponent: ({ children }) => <ThemeProvider theme={TEST_THEME}>{children}</ThemeProvider>,
    });
}

export function shallowWithTheme(child) {
    return shallow(child, {
        wrappingComponent: ({ children }) => <ThemeProvider theme={TEST_THEME}>{children}</ThemeProvider>,
    });
}

This works like a charm 👍 Thanks

Am I the only person this doesn't work for? mount works fine but components rendered with shallow don't receive the theme as props

If you are using react-testing-library, this approach is considerable https://testing-library.com/docs/react-testing-library/setup#custom-render

I do like @faizrktm's suggestion for overriding the render method if you use react-testing-library and I would suggest going that route, however if you would prefer a solution similar to the others suggested in this thread you could also achieve it using something like the following:
import { render } from '@testing-library/react';

function renderWithWrapper(component, options) {
  const Wrapper = ({ children }) => (
    <ThemeProvider theme={TEST_THEME}>
      {children}
    </ThemeProvider>
  );

  return render(component, { wrapper: Wrapper, ...options });
}

In case someone stumble upon this thread... the shallowWithTheme does not work with Enzyme if you are including <GlobalStyle /> or maybe even <CssBaseline /> inside your ThemeProvider.
https://github.com/enzymejs/enzyme/issues/2549

Hello, I've jst came across with the following solution, I'm using Styled Components 5.3.3, this is a simple example, just to test the snapshot of a component, but it could be used for any scenario, the trick is to render the component and wrap it with the ThemeProvider, obviously passing through your theme configuration:
`import React from 'react';
import renderer from 'react-test-renderer';
import 'jest-enzyme';
import 'jest-styled-components';
import { ThemeProvider } from 'styled-components';
import { theme } from '../../../themes/standard';
import { StyledButton } from '../../../components/styles/Button.styles';
import { render } from 'enzyme/build';
describe("Component: StyledButton", () => {
it('should render', () => {
    const { fragment } = render(
        <ThemeProvider theme={theme}>
            <StyledButton />
        </ThemeProvider>
    )
    const tree = renderer.create(fragment).toJSON();
    expect(tree).toMatchSnapshot();
})

})`

@galina-niukhalova a (hackish) solution I've found is setting the context directly on the ThemeConsumer as follow:
import { ThemeConsumer } from 'styled-components'
import defaultTheme from '../somewhere/theme'

export const shallowWithTheme = (children, theme = defaultTheme) => {
  ThemeConsumer._currentValue = theme
  return shallow(children)
}

It works!!!

I just created a function for that instead 🤷

import "@testing-library/jest-dom";
import { render } from "@testing-library/react";
import { ThemeProvider } from "styled-components";
import { Themes } from "@theme/Theme";
import { ITheme } from "@abstractions/theme/ITheme";

const TEST_THEME = Themes.light;

export function renderWithTheme(children: React.ReactElement, theme?: ITheme) {
   return render(<ThemeProvider theme={theme ? theme : TEST_THEME}>{children}</ThemeProvider>);
}

@abdulrahimiliasu This will make it better as you now use the wrapper option of testing-lib and snapshots will be rendered without the theme provider
import "@testing-library/jest-dom";
import { render, RenderOptions } from "@testing-library/react";
import { ThemeProvider } from "styled-components";
import { Themes } from "@theme/Theme";
import { ITheme } from "@abstractions/theme/ITheme";

const TEST_THEME = Themes.light;

function createWrapper(theme?: ITheme) {
  return function Wrapper({ children }: PropsWithChildren): ReactElement | null {
     return <ThemeProvider theme={theme ? theme : TEST_THEME}>{children}</ThemeProvider>;
  }
}

interface RenderWithThemeOptions<
  Q extends Queries = typeof queries,
  Container extends Element | DocumentFragment = HTMLElement,
  BaseElement extends Element | DocumentFragment = Container,
> extends RenderOptions<Q, Container, BaseElement> {
  theme?: ITheme
}

export function renderWithTheme(children: React.ReactElement, options?: RenderWithThemeOptions) {
  const { theme, ...rest } = { ...options };
  return render(children, { wrapper: createWrapper(theme), ...rest });
}


Sign Up

@CodiumAI-Agent /review

PR Review

 ⏱ Estimated effort to review [1-5]
2, because the PR mainly involves adding a new component for signup functionality and updating existing components to include links to the new signup page. The changes are straightforward and mostly involve React component structure and routing, which are not complex. However, reviewing the correctness of the routing setup and ensuring the new signup form behaves as expected would require some attention.

 🧪 Relevant tests
No

 🔍 Possible issues
No

 🔒 Security concerns
No

 Code feedback:
relevant fileFrontend/src/components/Signup.jsx
suggestion

Consider using type="password" for the password and re-enter password input fields to hide the input from being visible on the screen. This is a best practice for handling sensitive information like passwords. [important]

relevant line
relevant fileFrontend/src/components/Signup.jsx
suggestion

The submit button in the signup form has the text "LOGIN" which might confuse users. Consider changing the button text to "SIGN UP" to better reflect the action it performs. [medium]

relevant lineLOGIN
relevant fileFrontend/src/components/Home.jsx
suggestion

For the SVG logo, using height="auto" might not work as expected in all browsers for SVGs. It's better to specify both width and height explicitly or use CSS to control the SVG size responsively. [medium]

relevant line
relevant fileFrontend/src/components/Signup.jsx
suggestion

The form uses type="text" for all input fields, including the password fields. For better accessibility and to trigger the appropriate keyboard on mobile devices, consider using type="email" for the username if it's meant to be an email address. [medium]

relevant line

 ✨ Review tool usage guide:
Overview:
The review tool scans the PR code changes, and generates a PR review. The tool can be triggered automatically every time a new PR is opened, or can be invoked manually by commenting on any PR.
When commenting, to edit configurations related to the review tool (pr_reviewer section), use the following template:
/review --pr_reviewer.some_config1=... --pr_reviewer.some_config2=...

With a configuration file, use the following template:
[pr_reviewer]
some_config1=...
some_config2=...

  Utilizing extra instructions
The review tool can be configured with extra instructions, which can be used to guide the model to a feedback tailored to the needs of your project.
Be specific, clear, and concise in the instructions. With extra instructions, you are the prompter. Specify the relevant sub-tool, and the relevant aspects of the PR that you want to emphasize.
Examples for extra instructions:
[pr_reviewer] # /review #
extra_instructions="""
In the 'possible issues' section, emphasize the following:
- Does the code logic cover relevant edge cases?
- Is the code logic clear and easy to understand?
- Is the code logic efficient?
...
"""

Use triple quotes to write multi-line instructions. Use bullet points to make the instructions more readable.

  How to enable\disable automation

When you first install PR-Agent app, the default mode for the review tool is:

pr_commands = ["/review", ...]

meaning the review tool will run automatically on every PR, with the default configuration.
Edit this field to enable/disable the tool, or to change the used configurations

  Auto-labels
The review tool can auto-generate two specific types of labels for a PR:

a possible security issue label, that detects possible security issues (enable_review_labels_security flag)
a Review effort [1-5]: x label, where x is the estimated effort to review the PR (enable_review_labels_effort flag)

  Extra sub-tools
The review tool provides a collection of possible feedbacks about a PR.
It is recommended to review the possible options, and choose the ones relevant for your use case.
Some of the feature that are disabled by default are quite useful, and should be considered for enabling. For example:
require_score_review, require_soc2_ticket, require_can_be_split_review, and more.

  Auto-approve PRs
By invoking:
/review auto_approve

The tool will automatically approve the PR, and add a comment with the approval.
To ensure safety, the auto-approval feature is disabled by default. To enable auto-approval, you need to actively set in a pre-defined configuration file the following:
[pr_reviewer]
enable_auto_approval = true

(this specific flag cannot be set with a command line argument, only in the configuration file, committed to the repository)
You can also enable auto-approval only if the PR meets certain requirements, such as that the estimated_review_effort is equal or below a certain threshold, by adjusting the flag:
[pr_reviewer]
maximal_review_effort = 5

  More PR-Agent commands

To invoke the PR-Agent, add a comment using one of the following commands:

/review: Request a review of your Pull Request.
/describe: Update the PR title and description based on the contents of the PR.
/improve [--extended]: Suggest code improvements. Extended mode provides a higher quality feedback.
/ask <QUESTION>: Ask a question about the PR.
/update_changelog: Update the changelog based on the PR's contents.
/add_docs 💎: Generate docstring for new components introduced in the PR.
/generate_labels 💎: Generate labels for the PR based on the PR's contents.
/analyze 💎: Automatically analyzes the PR, and presents changes walkthrough for each component.

See the tools guide for more details.
To list the possible configuration parameters, add a /config comment.

See the review usage page for a comprehensive guide on using this tool.


Looks like both test and production share file storage. We should change this!

I think I remember when we originally set this up that, for some reason (probably to keep things simple), we setup the Docker volume mounts (in docker-compose.yml) for both test and production to point to the same directory in the file system: /cse/web/research/makelab/www:/code/media
As we've been working on improving our infrastructure, I think it's probably a good idea to separate them out.
That is, test has data somewhere like:  /cse/web/research/makelab-test/www:/code/media and then production can stay here: /cse/web/research/makelab/www:/code/media

OK, from conversations with Matt. It sounds like, in fact, the docker-compose.yml file running locally on makeabilitylab-test actually points to /cse/web/research/makelab-test/www:/code/media. So that's good!

Yes, confirmed with CSE IT that they do not, in fact, share file storage... so closing.


use libkb constants for our log file names

Previously these were defined in several places, but it's important to
have them stay consistent. As part of deduplicating these, get rid of
the ability to configure them. We can add that back later if we decide
we need it, but using custom log paths is inevitably going to mess with
keybase log send, when someone runs that with a different config.
@gabriel I used the OSX names as the constants here, so nothing on
that platform should change. However, I didn't change the way install_osx.go
uses the different service labels as the name of the log file that launchd
gets configured to use. How would you feel about using the same constants
there? We would lose the distinction between the Brew log files and the regular
log files, but I don't know if we want to keep that distinction, since it's going
to confuse keybase log send. Let me know what you think.

lg2m

@gabriel do you have time to take a second look, especially at that second commit there?

I gave jack an :+1: in slack


missing index + configuration clarification

Description
The readme was missing a configuration index, and also I added a clarification related to the possible configurations that can be taken by the tool.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 100.0%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
258

Relevant Lines:
258

💛  - Coveralls


Unwanted / unlisted application installed by winutil

Describe the bug
A clear and concise description of what the bug is.
I chose procmon and tcpview to install. To my surprise, the script installed Versasec's vSEC:CMS User, which is not present in forntend of your tool but is present in background install: Found vSEC:CMS User [9NQZS0JTTWK7] Version Unknown.
To Reproduce
Steps to reproduce the behavior:

Chose: procmon and tcpview to install
Install
In backend window present Versasec's vSEC:CMS and application installed

Log:
CCCCCCCCCCCCCTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT

CCC::::::::::::CT:::::::::::::::::::::TT:::::::::::::::::::::T                                                                                CC:::::::::::::::CT:::::::::::::::::::::TT:::::::::::::::::::::T                                                                                C:::::CCCCCCCC::::CT:::::TT:::::::TT:::::TT:::::TT:::::::TT:::::T                                                                                C:::::C       CCCCCCTTTTTT  T:::::T  TTTTTTTTTTTT  T:::::T  TTTTTT                                                                                C:::::C                     T:::::T                T:::::T                                                                                C:::::C                     T:::::T                T:::::T
C:::::C                     T:::::T                T:::::T
C:::::C                     T:::::T                T:::::T
C:::::C                     T:::::T                T:::::T
C:::::C                     T:::::T                T:::::T
C:::::C       CCCCCC        T:::::T                T:::::T
C:::::CCCCCCCC::::C      TT:::::::TT            TT:::::::TT
CC:::::::::::::::C       T:::::::::T            T:::::::::T
CCC::::::::::::C         T:::::::::T            T:::::::::T
CCCCCCCCCCCCC          TTTTTTTTTTT            TTTTTTTTTTT
====Chris Titus Tech=====
=====Windows Toolbox=====
Running Script for WPFTweaksRestorePoint
Changing system to allow multiple restore points per day
WARNING: The 'Microsoft.PowerShell.Management' module was not imported because the 'Microsoft.PowerShell.Management' snap-in was already imported.
System Restore Point Created Successfully
--     Tweaks are Finished    ---
Disabling Bing Search
Running Script for WPFTweaksRestorePoint
WARNING: The 'Microsoft.PowerShell.Management' module was not imported because the 'Microsoft.PowerShell.Management' snap-in was already imported.
System Restore Point Created Successfully
HKLM:\Software\Microsoft\PolicyManager\default\WiFi\AllowWiFiHotSpotReporting was not found, Creating...
Set HKLM:\Software\Microsoft\PolicyManager\default\WiFi\AllowWiFiHotSpotReporting\Value to 0
Set HKLM:\Software\Microsoft\PolicyManager\default\WiFi\AllowAutoConnectToWiFiSenseHotspots\Value to 0
Disabling Scheduled Task Microsoft\Windows\Application Experience\Microsoft Compatibility Appraiser
Disabling Scheduled Task Microsoft\Windows\Application Experience\ProgramDataUpdater
WARNING: Unable to set Microsoft\Windows\Application Experience\ProgramDataUpdater due to unhandled exception
WARNING: Nie można odnaleźć określonego pliku.
Disabling Scheduled Task Microsoft\Windows\Autochk\Proxy
Disabling Scheduled Task Microsoft\Windows\Customer Experience Improvement Program\Consolidator
Disabling Scheduled Task Microsoft\Windows\Customer Experience Improvement Program\UsbCeip
Disabling Scheduled Task Microsoft\Windows\DiskDiagnostic\Microsoft-Windows-DiskDiagnosticDataCollector
Disabling Scheduled Task Microsoft\Windows\Feedback\Siuf\DmClient
Disabling Scheduled Task Microsoft\Windows\Feedback\Siuf\DmClientOnScenarioDownload
Disabling Scheduled Task Microsoft\Windows\Windows Error Reporting\QueueReporting
Disabling Scheduled Task Microsoft\Windows\Application Experience\MareBackup
Disabling Scheduled Task Microsoft\Windows\Application Experience\StartupAppTask
Disabling Scheduled Task Microsoft\Windows\Application Experience\PcaPatchDbTask
Disabling Scheduled Task Microsoft\Windows\Maps\MapsUpdateTask
Set HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\DataCollection\AllowTelemetry to 0
Set HKLM:\SOFTWARE\Policies\Microsoft\Windows\DataCollection\AllowTelemetry to 0
Set HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager\ContentDeliveryAllowed to 0
Set HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager\OemPreInstalledAppsEnabled to 0
Set HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager\PreInstalledAppsEnabled to 0
Set HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager\PreInstalledAppsEverEnabled to 0
Set HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager\SilentInstalledAppsEnabled to 0
Set HKCU:\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager\SubscribedContent-338387Enabled to 0
Set HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager\SubscribedContent-338388Enabled to 0
Set HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager\SubscribedContent-338389Enabled to 0                                                  Set HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager\SubscribedContent-353698Enabled to 0                                                  Set HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager\SystemPaneSuggestionsEnabled to 0                                                     Set HKCU:\SOFTWARE\Microsoft\Siuf\Rules\NumberOfSIUFInPeriod to 0                                                                                Set HKLM:\SOFTWARE\Policies\Microsoft\Windows\DataCollection\DoNotShowFeedbackNotifications to 1                                                                 Set HKCU:\SOFTWARE\Policies\Microsoft\Windows\CloudContent\DisableTailoredExperiencesWithDiagnosticData to 1                                                     Set HKLM:\SOFTWARE\Policies\Microsoft\Windows\AdvertisingInfo\DisabledByGroupPolicy to 1                                                                         Set HKLM:\SOFTWARE\Microsoft\Windows\Windows Error Reporting\Disabled to 1                                                                                HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\DeliveryOptimization\Config was not found, Creating...                                                           Set HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\DeliveryOptimization\Config\DODownloadMode to 1
Set HKLM:\SYSTEM\CurrentControlSet\Control\Remote Assistance\fAllowToGetHelp to 0
Set HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\OperationStatusManager\EnthusiastMode to 1
Set HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\ShowTaskViewButton to 0
Set HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\People\PeopleBand to 0
Set HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\LaunchTo to 1                                                                              Set HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem\LongPathsEnabled to 1                                                                                Set HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\DriverSearching\SearchOrderConfig to 1                                                                       Set HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Multimedia\SystemProfile\SystemResponsiveness to 0                                                        Set HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Multimedia\SystemProfile\NetworkThrottlingIndex to<PHONE_NUMBER>                                             Set HKCU:\Control Panel\Desktop\MenuShowDelay to 1                                                                                Set HKCU:\Control Panel\Desktop\AutoEndTasks to 1                                                                                Set HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\ClearPageFileAtShutdown to 0
Set HKLM:\SYSTEM\ControlSet001\Services\Ndu\Start to 2
Set HKCU:\Control Panel\Mouse\MouseHoverTime to 400
Set HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters\IRPStackSize to 30
Set HKCU:\SOFTWARE\Policies\Microsoft\Windows\Windows Feeds\EnableFeeds to 0                                                                                Set HKCU:\Software\Microsoft\Windows\CurrentVersion\Feeds\ShellFeedsTaskbarViewMode to 2                                                                         Set HKCU:\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\HideSCAMeetNow to 1                                                                        Set HKCU:\Software\Microsoft\Windows\CurrentVersion\UserProfileEngagement\ScoobeSystemSettingEnabled to 0                                                        Running Script for WPFTweaksTele                                                                                Set HKLM:\SOFTWARE\Policies\Microsoft\Windows\System\EnableActivityFeed to 0                                                                                Set HKLM:\SOFTWARE\Policies\Microsoft\Windows\System\PublishUserActivities to 0                                                                                Set HKLM:\SOFTWARE\Policies\Microsoft\Windows\System\UploadUserActivities to 0                                                                                Running Script for WPFTweaksEndTaskOnTaskbar                                                                                Set HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\location\Value to Deny
Set HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Sensor\Overrides{BFA794E4-F964-4FDB-90F6-51056BFE4B44}\SensorPermissionState to 0
Set HKLM:\SYSTEM\CurrentControlSet\Services\lfsvc\Service\Configuration\Status to 0
Set HKLM:\SYSTEM\Maps\AutoUpdateEnabled to 0
Running Script for WPFTweaksPowershell7Tele
--     Tweaks are Finished    ---
@{winget=Microsoft.Sysinternals.ProcessMonitor; choco=procexp} @{winget=Microsoft.Sysinternals.TCPView; choco=tcpview}
Queueing Microsoft.Sysinternals.ProcessMonitor for Winget install
Queueing Microsoft.Sysinternals.TCPView for Winget install
---        Winget is installed          ---
Version: v1.8.1911
- Winget is a release version.
- Winget is Up to Date                                                                                Winget is already installed.                                                                                ===========================================                                                                                --    Configuring winget packages       ---                                                                                ===========================================                                                                                Starting install of Microsoft.Sysinternals.ProcessMonitor with winget.
Found Process Monitor [Microsoft.Sysinternals.ProcessMonitor] Version 4.01
This application is licensed to you by its owner.
Microsoft is not responsible for, nor does it grant any licenses to, third-party packages.
Downloading https://live.sysinternals.com/Procmon64.exe
██████████████████████████████  2.04 MB / 2.04 MB
Successfully verified installer hash
Starting package install...
Command line alias added: "procmon"
Path environment variable modified; restart your shell to use the new value.
Successfully installed
Microsoft.Sysinternals.ProcessMonitor installed successfully.
Starting install of Microsoft.Sysinternals.TCPView with winget.
Found TCPView [Microsoft.Sysinternals.TCPView] Version 4.19                                                                                This application is licensed to you by its owner.                                                                                Microsoft is not responsible for, nor does it grant any licenses to, third-party packages.                                                                       Downloading https://live.sysinternals.com/Tcpview64.exe                                                                                ██████████████████████████████  1.03 MB / 1.03 MB                                                                                Successfully verified installer hash                                                                                Starting package install...                                                                                Command line alias added: "tcpview"                                                                                Successfully installed                                                                                Microsoft.Sysinternals.TCPView installed successfully.                                                                                Starting install of  with winget.                                                                                No package found matching input criteria.                                                                                Attempt with User scope                                                                                Found vSEC:CMS User [9NQZS0JTTWK7] Version Unknown                                                                                This package is provided through Microsoft Store. winget may need to acquire the package from Microsoft Store on behalf of the current user.                     Agreements for vSEC:CMS User [9NQZS0JTTWK7] Version Unknown                                                                                Version: Unknown                                                                                Publisher: Versasec                                                                                Publisher Url: https://versasec.com/                                                                                Publisher Support Url<EMAIL_ADDRESS>License: https://versasec.com/support/license-agreement/
Privacy Url: https://versasec.com/products/privacypolicy
Copyright: ©2007-2022 Versasec AB. All rights reserved.                                                                                Agreements:                                                                                Category: Productivity                                                                                Pricing: Free                                                                                Free Trial: No                                                                                Terms of Transaction: https://aka.ms/microsoft-store-terms-of-transaction                                                                                Seizure Warning: https://aka.ms/microsoft-store-seizure-warning                                                                                Store License Terms: https://aka.ms/microsoft-store-license
Starting package install...
██████████████████████████████  100%                                                                                Successfully installed                                                                                installed successfully with User scope.                                                                                ===========================================                                                                                --      Installs have finished          ---                                                                                ===========================================                                                                                @{winget=Microsoft.Sysinternals.ProcessMonitor; choco=procexp} @{winget=mRemoteNG.mRemoteNG; choco=mremoteng} @{winget=angryziber.AngryIPScanner; choco=angryip} @{winget=Famatech.AdvancedIPScanner; choco=advanced-ip-scanner} @{winget=Microsoft.Sysinternals.TCPView; choco=tcpview}                                          Queueing Microsoft.Sysinternals.ProcessMonitor for Winget install                                                                                Queueing mRemoteNG.mRemoteNG for Winget install                                                                                Queueing angryziber.AngryIPScanner for Winget install                                                                                Queueing Famatech.AdvancedIPScanner for Winget install                                                                                Queueing Microsoft.Sysinternals.TCPView for Winget install                                                                                ===========================================                                                                                ---        Winget is installed          ---                                                                                ===========================================                                                                                Version: v1.8.1911                                                                                - Winget is a release version.                                                                                - Winget is Up to Date                                                                                Winget is already installed.

Hey @rfxtek
I am sorry for the Issues you are having, the same issue was already adressed in #2385 and fixed in https://github.com/ChrisTitusTech/winutil/commit/c90363181cf974c4342d5c3e01a58766d04cacf6.
May I asked when you ran full- or pre-release of winutil? The issue should have been fixed yesterday.

As @MyDrift-user has said in his comment, this issue was fixed by reverting some changes (the revert was done on commit c90363181cf974c4342d5c3e01a58766d04cacf6), and currently this issue should not be present in the latest stable release (as of time of writing).

Thank you gentlemans. I was doing it yesterday. Probably before your fixed the isssue.

Seeing as there seems nothing to be done anymore, I'll close this issue. If you still encounter issues, please let use know and we'll take a look :)
/close


'Blog' link is not included by default

So far, the only way for me to see my posts is to click on the blog logo. I would like a 'Blog' button to expand the posts window as well.

because depend of the Ghost installation. Read the documentation.


ConnectionPool adapter

This is an attempt at creating a generic ConnectionPool adapter that can be composed with other adapters as discussed in https://github.com/flippercloud/flipper/pull/826#pullrequestreview-1832444441.
It just wraps each adapter method call in a pool.with { } call, but I think this mostly makes sense since the adapter API already represents atomic actions.  It's not a lot of code and can be used with any adapter that requires a connection pool (Redis, RedisCache, and probably others).
ConnectionPool doesn't expose a mechanism for extending an existing pool instance, caching objects that depend on connection, or obsevering lifecycle events, so this adapter has to keep a cache of adapter instances for each connection. I'm not 100% sure this is kosher.
Usage as primary storage adapter:
pool = ConnectionPool.new(size: 5, timeout: 5) { Redis.new }
adapter = Flipper::Adapters::ConnectionPool.new(pool) do |client|
  Flipper::Adapters::Redis.new(client)
end

# Read about the `config.adapter` problem below
Flipper.configure do |config|
  config.adapter { adapter }
end

Usage with cache adapter:
pool = ConnectionPool.new(size: 5, timeout: 5) { Redis.new }
storage = Flipper::Adapters::ActiveRecord.new
adapter = Flipper::Adapters::ConnectionPool.new(pool) do |client|
  Flipper::Adapters::RedisCache.new(storage, client)
end

# Read about the `config.adapter` problem below
Flipper.configure do |config|
  config.adapter { adapter }
end

The config.adapter problem
Currently, Flipper returns a new adapter instance (it calls the config.adapter block) for each thread. This is to guard against some adapters not being thread safe. Initializing this adapter inside config.adapter block would probably work fine, but it would result in a separate adapter cache for each thread (n threads * x pool size).
I'm thinking we should add threadsafe? to the adapter API and change Flipper to reuse adapter instances of threadsafe adapters.
cc @cymen

@bkeepers Sounds good! I'm taking some time off work so I won't be able to keep my PR going forward but this sounds like a good way to go (and makes my PR not necessary).

Thanks for working on this, @bkeepers! I started down this same path this morning and then found this PR. I'm looking forward to using it with the Redis adapter (and ideally an existing Redis pool). If it doesn't get merged for whatever reason, maybe I can contribute a less generic version for Redis.

@jnunemaker is this worth merging?

I'm thinking we should add threadsafe? to the adapter API and change Flipper to reuse adapter instances of threadsafe adapters.

@bkeepers I like this idea.

@bkeepers anything left on this? It seems like you've responded to all the feedback. Do we just need someone to guinea pig in production somewhere?

@jnunemaker slightly off-topic, but do you know if there are any plans to also support the new redis-client (https://github.com/redis-rb/redis-client) gem alongside the slower and more bloated redis-rb (https://github.com/redis/redis-rb) gem? Note that the redis-rb gem also uses redis-client internally, so might be more efficient to be able to cut out the middleman.

@gstokkink sure. I'd just make a new adapter for it and specs. You can start by cloning the current redis one or taking a peek at the redis cache one. I'd just call it RedisClient.


bump version to 0.2.4

Why are these changes needed?
For new release
Related issue number

Checks

[ ] I've included any doc changes needed for https://microsoft.github.io/autogen/. See https://microsoft.github.io/autogen/docs/Contribute#documentation to build and test documentation locally.
[ ] I've added tests (if relevant) corresponding to the changes introduced in this PR.
[ ] I've made sure all auto checks have passed.

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Comparison is base (40dbf31) 30.59% compared to head (02761e9) 17.97%.

Additional details and impacted files
@@             Coverage Diff             @@
##             main    #1160       +/-   ##
===========================================
- Coverage   30.59%   17.97%   -12.62%
===========================================
  Files          30       30
  Lines        4256     4256
  Branches      983     1034       +51
===========================================
- Hits         1302      765      -537
- Misses       2861     3399      +538
+ Partials       93       92        -1

Flag
Coverage Δ

unittests
17.97% <100.00%> (-12.58%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

@kevin666aa Could you check the test error in CompressibleAgent?

@kevin666aa Could you check the test error in CompressibleAgent?

It it good now!


Please change "!code-css" to "!code-csharp"

File syntax is "C#" but named as "CSS"

This seems like a small (but important) contribution, so no Contribution License Agreement is required at this point. We will now review your pull request.
Thanks,
.NET Foundation Pull Request Bot

The file extension should change as well. @mzohrab if u don't want to take this beyond just a patch here to do that; then @Rick-Anderson, I can fix it soon. Let me know.

@mzohrab, thanks for signing the contribution license agreement. We will now validate the agreement and then the pull request.
Thanks, .NET Foundation Pull Request Bot

@guardrex  that would be great. No hurry.


:bug: Remove workaround for polkit dirs

Signed-off-by: Itxaka<EMAIL_ADDRESS>
What this PR does / why we need it:
Looks like there was missing docs for the --keep-own flag on earthly and we can indeed keep permissions for all dirs/files when copying artifacts, but the flag needs to be both on the SAVE ARTIFACT and in the COPY stanzas.
Which issue(s) this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged):
Partially #280

Not waiting for it to spend more ci cycles as all passed before, just a earthfile conflict


Discussions-Show just now for less than one second

https://openedx.atlassian.net/browse/MA-1323
"Just now" is shown if it has been less than a second after posting a response/comment. Otherwise, "X seconds ago" is shown if the time span is > 1 second.
@aleffert @bguertin @1zaman plz review

:+1:

:+1:


Vulnerability roundup 91: tor-<IP_ADDRESS>: 1 advisory [6.5]

search, files

[ ] CVE-2017-16541 CVSSv3=6.5 (nixos-unstable)

Scanned versions: nixos-unstable: 840c782d507. May contain false positives.
Cc @doublec
Cc @joachifm
Cc @phreedom
Cc @thoughtpolice

Tor Browser before 7.0.9 on macOS and Linux allows remote attackers to bypass the intended anonymity feature and discover a client IP address via vectors involving a crafted web site that leverages file:// mishandling in Firefox, aka TorMoil. NOTE: Tails is unaffected.

Unrelated to the tor package.


AccessViolationException when using an Intercepter

What version of gRPC and what language are you using?
C# referencing nuget package Grpc.Core v1.18.0
What operating system (Linux, Windows,...) and version?
windows
What runtime / compiler are you using (e.g. python version or version of gcc)
VS 16.1.3
dotnet core 2.1
What did you do?
The following exception was thrown:
System.AccessViolationException   HResult=0x80004003   Message=Attempted to read or write protected memory. This is often an indication that other memory is corrupt.

StackTrace:
[Managed to Native Transition]
Grpc.Core.dll!Grpc.Core.Internal.BatchContextSafeHandle.Recycle() Line 121
Grpc.Core.dll!Grpc.Core.Internal.BatchContextSafeHandle.Grpc.Core.Internal.IOpCompletionCallback.OnComplete(bool success) Line 154
Grpc.Core.dll!Grpc.Core.Internal.GrpcThreadPool.RunCompletionQueueEventCallback(Grpc.Core.Internal.IOpCompletionCallback callback, bool success) Line 232
System.Private.CoreLib.dll!System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state)
System.Private.CoreLib.dll!System.Threading.ThreadPoolWorkQueue.Dispatch()

What I think probably caused it is that I was experimenting with using an intercepter on the client end:
using System;
using System.IO;
using System.Linq;
using System.Runtime.Serialization.Formatters.Binary;
using System.Threading.Tasks;
using Grpc.Core;
using Grpc.Core.Interceptors;

namespace Se.Service.Core.Helpers.Grpc
{
	public class ClientExceptionRethrowingInterceptor : Interceptor
	{
		private static readonly BinaryFormatter _binaryFormatter = new BinaryFormatter();

		public override TResponse BlockingUnaryCall<TRequest, TResponse>(TRequest request, ClientInterceptorContext<TRequest, TResponse> context, BlockingUnaryCallContinuation<TRequest, TResponse> continuation)
		{
			try
			{
				return continuation(request, context);
			}
			catch (RpcException e)
			{
				throw TryRecreateException(e);
			}
		}

		public override AsyncUnaryCall<TResponse> AsyncUnaryCall<TRequest, TResponse>(TRequest request, ClientInterceptorContext<TRequest, TResponse> context, AsyncUnaryCallContinuation<TRequest, TResponse> continuation)
		{
			var call = continuation(request, context);
			var task = AwaitCompletion(call);
			return new AsyncUnaryCall<TResponse>(task, call.ResponseHeadersAsync, call.GetStatus, call.GetTrailers, call.Dispose);
		}

		private async Task<TResponse> AwaitCompletion<TResponse>(AsyncUnaryCall<TResponse> call) where TResponse : class
		{
			try
			{
				return await call.ResponseAsync.ConfigureAwait(false);
			}
			catch (RpcException e)
			{
				throw TryRecreateException(e);
			}
		}

		private static Exception TryRecreateException(RpcException e)
		{
			var metadata = e.Trailers;
			if (metadata.Count > 0)
			{
				var dic = metadata.ToDictionary(x => x.Key, x => x.ValueBytes, StringComparer.OrdinalIgnoreCase);
				if (dic.TryGetValue(MetadataKeys.EXCEPTION_FORMAT, out var eFormat)
					&& dic.TryGetValue(MetadataKeys.EXCEPTION_BYTES, out var eBytes)
					&& eFormat.SequenceEqual(ExceptionFormats.BinaryFormatted))
				{
					try
					{
						var exception = (Exception)_binaryFormatter.Deserialize(new MemoryStream(eBytes));
						return new WrapperRpcException(exception);
					}
					catch
					{
						return e;
					}
				}
			}
			return e;
		}
	}
}

The purpose of the interceptor is to attempt to regenerate an exception thrown on the server at the client end, but that is probably irrelevant, since the exception occurs whether or not we throw a new exception or rethrow the original RpcException.
I imagine the real cause of the issue is the way I've created the AsyncUnaryCall which I return from public override AsyncUnaryCall<TResponse> AsyncUnaryCall<TRequest, TResponse>(TRequest request, ClientInterceptorContext<TRequest, TResponse> context, AsyncUnaryCallContinuation<TRequest, TResponse> continuation) (this is the method that's being intercepted).
		public override AsyncUnaryCall<TResponse> AsyncUnaryCall<TRequest, TResponse>(TRequest request, ClientInterceptorContext<TRequest, TResponse> context, AsyncUnaryCallContinuation<TRequest, TResponse> continuation)
		{
			var call = continuation(request, context);
			var task = AwaitCompletion(call);
			return new AsyncUnaryCall<TResponse>(task, call.ResponseHeadersAsync, call.GetStatus, call.GetTrailers, call.Dispose);
		}

It could be that this is the wrong way to do so, but I can think of no other way of catching any exceptions returned from the AsyncUnaryCall. Note that it would be useful if AsyncUnaryCall was a task-like type and the interceptor method could be made async directly.
Thanks for your help.

I've update to v 1.22 and I haven't reproduced the exception the few times I've tried. If I don't manage to reproduce it within the next week or so I'll close the issue.

Thanks. Closing proactively., Please reopen if there is a reproduction.


Snapshot 21.10.6

Changelog

[X] I thought about the changelog and included a changelog update if required.

I don't think we need this one - we are already on version=22.1.0-RC2-SNAPSHOT

Keeping this there in case there is another log4j high vulnerability.  I'm hoping it's not going to happen but it feels like the 12 days of Christmas.


Definition of dynamic-shape variable error

System information

Have I written custom code (as opposed to using a stock example script provided in TensorFlow): No
OS Platform and Distribution (e.g., Linux Ubuntu 16.04): Linux Ubuntu 18.04
Mobile device (e.g. iPhone 8, Pixel 2, Samsung Galaxy) if the issue happens on mobile device:
TensorFlow installed from (source or binary): Conda repo
TensorFlow version (use command below): 1.15
Python version: 3.7.7
Bazel version (if compiling from source):
GCC/Compiler version (if compiling from source):
CUDA/cuDNN version: 10.1
GPU model and memory: Tesla V100-SMX3-32GB

Describe the current behavior
tensorflow.python.framework.errors_impl.InvalidArgumentError: Assign requires shapes of both tensors to match. lhs shape= [] rhs shape= [1,1]
[[{{node Variable/Assign}}]]
Describe the expected behavior
No error
Standalone code to reproduce the issue
import tensorflow as tf
import numpy as np
import os
os.environ["CUDA_VISIBLE_DEVICES"]='0'

with tf.Session() as sess:
    v = tf.Variable(np.zeros(shape=[1,1]),shape=tf.TensorShape(None))
    sess.run(tf.global_variables_initializer())

tensorshape_bug.log

Was able to reproduce the issue, please find the gist of it here. Thanks!

Just have to enable resource variable as dynamic shape behavior is only available for this 'updated' Variable class.
import tensorflow as tf
import numpy as np
import os
os.environ["CUDA_VISIBLE_DEVICES"]='0'
tf.compat.v1.enable_resource_variables()

with tf.Session() as sess:
    v = tf.Variable(np.zeros(shape=[1,1]),shape=tf.TensorShape(None))
    sess.run(tf.global_variables_initializer())


Interest Timelines

What It Is
Discussion spaces, customized to match the stuff you're interested in!  Interest feeds are a combination of interest-general discussion, discussion of media in your library (excluding Dropped), and discussion of episodes you've seen or chapters you've read.
How it Works
We create a timeline for each user for each interest, have it automatically follow the interest-global feed.  Then, when they update their library, we generate a MediaFollow (so they can unfollow discussion of specific series, but get it all by default).  When a post is tagged with a unit, we send it to the corresponding unit feed. The interest timeline automatically follows all episodes you've seen in past.
Potential Improvements

It might get messy to follow all episode discussion.  If this becomes a problem we could probably limit to the last N episodes you've seen
The automatic MediaFollow might be better if we invert it, tracking unfollowed media instead. That way, we wouldn't try to recreate a follow you deleted
Perhaps MediaFollow should control episode discussion too?

What's Done
Most of it!
What Needs Doing

[ ] Build-breaking issue
[ ] Change interest-global discussion into a flat feed
[ ] Backfill MediaFollows
[ ] Dump interest-global follows

Damn, this is a nice PR. Well-played!


Add setup.py

Hi @xoviat,
Recently you somehow disappeared from GitHub, and I couldn't find a contact e-mail for you in the Git logs. I see you're back now; welcome!
I've removed you from the “Owner” list on PyPI. If you want I can add you back, but in that case could you please send me an e-mail so I have a better way to reach you?
Or I'm also happy to maintain py3c alone.


React-Native-ibeacon for android soon release

Hello Team,
I will post soon (I think this week) a simple method to reach the beacons on android devices using react native. It's just a wrapper of the estimote SDK, but I think it can help you all for now.
Best regards
Albo

Hello @albo1337 , does the receiver work in the background too? (Using something like a service/broadcast-receiver).
I've planed to add a background service on a tweaked version of react-native-alt-beacon, but maybe waiting for your implementation would be an easier solution 🎱 .

Hello Team,
here we go: https://github.com/ti8m/react-native-ibeacon-android
I've not tested it well, because I hadn't that much time. But there is an example App within which you can use to test a little bit.

Nice @albo1337 ! Well... it seems we've been trying to do almost the same thing 😄
(Still need to complete the docs of mine though)

Nice @mmazzarolo ! Maybe we can publish a complete react-native-ibeacon version for both OS.

This is amazing :tada:
Thank you. At the very least I'll add a link in the readme, as for integrating that into this repository I would be totally be up for that after some thorough testing.


Bug Fix Background Removal Nullability crash

Hello I fixed some of bugs. Especially BackgroundRemoval class line 39 give us crash. So I replaced all of the force unwraps with guard lets and making optional some of code.

Thanks for your contribution, looks good


no matches found: webpack#1.0

when i use vue init webpack#1.0, i get an error
no matches found: webpack#1.0
vue-cli 2.5.1
How could i use vue1.x ? thanks

the same problem as mine

The # is a special character for zsh. Just use quotes around webpack#1.0

Thanks @posva for checking this out. I use zsh myself but haven't had any similar issues getting vue 1.0 with vue-cli.
@syaka-yin or @collins401 can you please confirm that vue init "webpack#1.0" work for you?


Pr docker compose

Updates for docker-compose usage:

create a single docker compose file that has 'profiles'. Core services + profiles for "pump for external DB for timescale/influx/prometheus" + profiles for "run test db instance + pump for each supported DB"

add help to compose.sh

fix a couple pump bugs

fixes https://github.com/dell/iDRAC-Telemetry-Reference-Tools/issues/33

fixes https://github.com/dell/iDRAC-Telemetry-Reference-Tools/issues/28


Custom renderer seems to break multi-line syntax highlighting

Hi!
I'm not sure if I'm doing something wrong, or if there's an issue with how custom renderers build up the DOM structure, but multi-line constructs (eg. multi-line comments) don't get syntax highlighted correctly when you use a custom renderer function. You can actually see the issue on the virtualized demo here:
http://conor.rodeo/react-syntax-highlighter/demo/virtualized.html
Notice that for the multi-line comments, only the first and last lines are in grey, while the lines in between are actually the regular text color.
Or with this Python snippet:
'''
Single quoted doc string
'''

"""
Multi quoted doc string
"""

I noticed that if you don't override the renderer parameter, the code inside is nested inside the formatting tags, but I'm guessing that since in the virtualized case you would want to render each line independently, each line is within its own context and the formatting for a line does not extend past that line.
Hmm... looking at https://github.com/conorhastings/react-syntax-highlighter/blob/master/src/highlight.js , it might be a side effect of wrapLines being set to true... I set it to false, and now the syntax highlighting is correct, but my (custom renderer's) line numbers are wrong because the multiline statements get considered as one line. Will investigate further...

It seems like perhaps for the custom renderer case (with wrapLines enabled), you might need to keep track of any formatted contexts that the parser is currently inside, and wrap those around the line as otherwise rendered. I'm not sure whether that would deal with something like
/**
 * comment
 */ function() {}

though.

hey sorry just saw this! i'm not totally sure what you mean by this -- , you might need to keep track of any formatted contexts -- could you give more of another example

Oh no worries, I might just be making up terminology to try to express what I meant. I guess what I was suggesting was something like, if you start a comment block (or any other multi-line block), until it's finished you would wrap any following lines with the comment block tags until you find the end of the block. But the start and end of a block don't necessarily have to coincide with the start and end of lines so it's not that simple.
I'll have to take a look at the internals again to see if I can figure out a way to handle this issue. It seems like it might be a little tricky to do correctly, since breaking things up by lines loses the tree structure.

Wow, thanks, that was actually really fast! I actually think something might still be wrong, because now it seems like if you start a multi-line string, somehow everything in the entire file gets the string class.
Example that's fine (no multi-line strings)
from __future__ import print_function
import re

STR = "Normal string"

class Example(object):
    """Test class"""
    def foo(self):
        x = 2
        return x

from __future__ import print_function
import re

STR = """This string takes multiple lines.

Does it mess up the highlighting?
"""
class Example(object):
    """Test class"""
    def foo(self):
        x = 2
        return x

can you post what the second sreenshot should look like, thanks.

Both snippets should have the same coloring, (i.e. everything besides STR = ... should be the same). In the second one all the text has hljs-string applied to it for some reason (I've disabled inline styles because I use a different color scheme) but all the green text that's not inside a string should be black.
Thanks!

any chance you could post your code?

To follow back up with this, the issue still exists. You can see it on the "virtualized" demo (the old demo link no longer works) by editing the React props with dev tools. I added this into the code and it does not get syntax highlighted correctly.
/*
 This is a multiline comment
 It gets highlighted correctly normally
 But not with a custom renderer
*/

(I had to insert \ns to the React prop to actually render line breaks, so /*\n This is a multiline comment\n It gets highlighted correctly normally\n But not with a custom renderer\n */)
For the default demo it works fine


Update Gratibot redemption items due to the launch of the Liatrio store

"Hiya! With the launch of the Liatrio store coming asap, I'd like to clean up the redemption options. Can we have everything removed with the exception of the following items:

Custom Air Force Ones
Custom Hawaiian Shirt
Donation Options
Visa Card Option

Is there a way we can add "Liatrio Store Item" with a fill in the blank option and the ability for me to deduct fistbumps? I'm trying to find the best way to have peeps redeem until we're able to integrate with the store." - @daniellejohnson01

Liatrio store link added to rewards in gratibot, just needs to be published to prod


[Feature] HockeyApp integration and analytics

Integrate with HockeyApp, and build in analytics reporting.

Half done--HockeyApp is in.

Next up--add tracking, and a way to disable tracking to settings.

AnalyticsService is in, as is the settings toggle.
Now I just need to start tracking stuff!

Page tracking is in. Let's just track that for now, and we can revisit analytics later, maybe when we're digging into crashes or feature usage.


[FLINK-31140] - Load additional dependencies in operator classpath

What is the purpose of the change
Allow users to add additional dependencies onto operator classpath
Brief change log

Create a target folder with a dedicated environment variable for user dependencies in root dockerFile

Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): (yes / no) no
The public API, i.e., is any changes to the CustomResourceDescriptors: (yes / no)  no
Core observer or reconciler logic that is regularly executed: (yes / no)  no

Documentation

Does this pull request introduce a new feature? (yes / no) yes
If yes, how is the feature documented? (not applicable / docs / JavaDocs / not documented) docs

@gyfora  Would you please  review?


fixed hyperlinks in README

fixed hyperlinks pointing to docs in the repository

 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.:x: akhilmaddineni sign nowYou have signed the CLA already but the status is still pending? Let us recheck it.

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

README.md
:white_check_mark:Succeeded

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


Recipe broken with conda 4.7.5

The most recent version of this recipe built with no errors two days ago. When I try to run a local docker build I get a test failure even when using the same recipe as before. I suspect this is related to conda 4.7.5 since it was released last night and appears to be the only minor version change in the initial environment setup.
Possibly this shares something in common with conda-forge/staged-recipes#8623 (particularly the large number of clobber warnings with a "None" source path). @conda-forge/core if you have a moment, could you take a look and see if this is indeed related or caused by something else?
Previously, testing worked fine and the output in the test section was the following:

TEST START: /home/conda/feedstock_root/build_artifacts/linux-64/gpi-1.0.6-py36_1.tar.bz2
INFO:conda_build.variants:Adding in variants from /tmp/tmpmw52z2u1/info/recipe/conda_build_config.yaml
Adding in variants from /tmp/tmpmw52z2u1/info/recipe/conda_build_config.yaml
Renaming work directory,  /home/conda/feedstock_root/build_artifacts/gpi_1561386517571/work  to  /home/conda/feedstock_root/build_artifacts/gpi_1561386517571/work_moved_gpi-1.0.6-py36_1_linux-64
Collecting package metadata: ...working... done
Solving environment: ...working... done

## Package Plan ##

  environment location: /home/conda/feedstock_root/build_artifacts/gpi_1561386517571/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl

The following NEW packages will be INSTALLED:

    ca-certificates:  2019.6.16-hecc5488_0          conda-forge
    eigen:            3.3.7-h6bb024c_1000           conda-forge
    fftw:             3.3.8-nompi_h7f3a6c3_1105     conda-forge
    fontconfig:       2.13.1-he4413a7_1000          conda-forge
    freetype:         2.10.0-he983fc9_0             conda-forge
    gpi:              1.0.6-py36_1                  local
    h5py:             2.9.0-nompi_py36hf008753_1102 conda-forge
    hdf5:             1.10.4-nompi_h3c11f04_1106    conda-forge
    icu:              58.2-hf484d3e_1000            conda-forge
    jpeg:             9c-h14c3975_1001              conda-forge
    libblas:          3.8.0-7_openblas              conda-forge
    libcblas:         3.8.0-7_openblas              conda-forge
    libffi:           3.2.1-he1b5a44_1006           conda-forge
    libgcc-ng:        9.1.0-hdf63c60_0              defaults
    libgfortran-ng:   7.3.0-hdf63c60_0              defaults
    libiconv:         1.15-h516909a_1005            conda-forge
    liblapack:        3.8.0-7_openblas              conda-forge
    libpng:           1.6.37-hed695b0_0             conda-forge
    libstdcxx-ng:     9.1.0-hdf63c60_0              defaults
    libtiff:          4.0.10-h57b8799_1003          conda-forge
    libuuid:          2.32.1-h14c3975_1000          conda-forge
    libxcb:           1.13-h14c3975_1002            conda-forge
    libxml2:          2.9.9-h13577e0_0              conda-forge
    lz4-c:            1.8.3-he1b5a44_1001           conda-forge
    ncurses:          6.1-hf484d3e_1002             conda-forge
    numpy:            1.16.4-py36h95a1406_0         conda-forge
    olefile:          0.46-py_0                     conda-forge
    openblas:         0.3.5-h9ac9557_1001           conda-forge
    openssl:          1.1.1b-h14c3975_1             conda-forge
    pillow:           6.0.0-py36he7afcd5_0          conda-forge
    psutil:           5.6.3-py36h516909a_0          conda-forge
    pthread-stubs:    0.4-h14c3975_1001             conda-forge
    pyopengl:         3.1.3b2-py_1                  conda-forge
    pyqt:             4.11.4-py36_3                 conda-forge
    python:           3.6.7-h381d211_1004           conda-forge
    qimage2ndarray:   1.7-py_0                      conda-forge
    qt:               4.8.7-2                       defaults
    readline:         7.0-hf8c457e_1001             conda-forge
    sip:              4.18-py36_1                   conda-forge
    six:              1.12.0-py36_1000              conda-forge
    sqlite:           3.28.0-h8b20d00_0             conda-forge
    tk:               8.6.9-hed695b0_1002           conda-forge
    xorg-kbproto:     1.0.7-h14c3975_1002           conda-forge
    xorg-libice:      1.0.9-h516909a_1004           conda-forge
    xorg-libsm:       1.2.3-h84519dc_1000           conda-forge
    xorg-libx11:      1.6.7-h14c3975_1000           conda-forge
    xorg-libxau:      1.0.9-h14c3975_0              conda-forge
    xorg-libxdmcp:    1.1.3-h516909a_0              conda-forge
    xorg-libxrender:  0.9.10-h516909a_1002          conda-forge
    xorg-renderproto: 0.11.1-h14c3975_1002          conda-forge
    xorg-xproto:      7.0.31-h14c3975_1007          conda-forge
    xz:               5.2.4-h14c3975_1001           conda-forge
    zlib:             1.2.11-h14c3975_1004          conda-forge
    zstd:             1.4.0-h3b9ef0a_0              conda-forge

Preparing transaction: ...working... done
Verifying transaction: ...working... done
Executing transaction: ...working... done
export PREFIX=/home/conda/feedstock_root/build_artifacts/gpi_1561386517571/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl
export SRC_DIR=/home/conda/feedstock_root/build_artifacts/gpi_1561386517571/test_tmp
import: 'gpi'
GPI 1.0.6 (2019-06-24)  Copyright (C) 2014 Dignity Health
This program comes with ABSOLUTELY NO WARRANTY; see the LICENSE for details.

    NO CLINICAL USE.    THE SOFTWARE
MAY NOT IN ANY EVENT BE USED FOR ANY CLINICAL OR DIAGNOSTIC PURPOSES.    LICENSOR MAKES NO WARRANTY AND HAS
NO LIABILITY ARISING FROM ANY USE OF THE SOFTWARE IN ANY HIGH RISK OR STRICT
LIABILITY ACTIVITIES.

import: 'gpi'
+ DISPLAY=localhost:1.0
+ xvfb-run -a bash -c 'gpi --help'
GPI 1.0.6 (2019-06-24)  Copyright (C) 2014 Dignity Health
This program comes with ABSOLUTELY NO WARRANTY; see the LICENSE for details.

    NO CLINICAL USE.    THE SOFTWARE
MAY NOT IN ANY EVENT BE USED FOR ANY CLINICAL OR DIAGNOSTIC PURPOSES.    LICENSOR MAKES NO WARRANTY AND HAS
NO LIABILITY ARISING FROM ANY USE OF THE SOFTWARE IN ANY HIGH RISK OR STRICT
LIABILITY ACTIVITIES.

Usage: gpi [options]

Options:
  -h, --help            show this help message and exit
  --config              GPI will read the User ENV and config file and dump
                        the parsed info to stdout.
  --log=LOGLEVEL        Change the output level of the logger: debug, info,
                        node, warn, error, and critical
  --nogui               causes GPI to run without a GUI for scripting.
                        Requires a network file.  The --script option is
                        implied.
  --script              causes GPI to terminate after the supplied network is
                        finished executing.  Requires a network file.
  -s STRING, --string=STRING
                        passes a string arg to a String-node by label.
                        Handles multiple args.  Syntax: -s
                        <label1>:<string/path> -s <label2>:<string/path>.
  --specs               GPI will create a platform specs file and exit.
  --defines             Show some internally used defines, such as temp
                        directory paths.
  --nosplash            Skip the splash screen.
+ exit 0

Resource usage statistics from testing gpi:
   Process count: 5
   CPU time: unavailable
   Memory: 32.7M
   Disk usage: 20B
   Time elapsed: 0:00:04.1

TEST END: /home/conda/feedstock_root/build_artifacts/linux-64/gpi-1.0.6-py36_1.tar.bz2

Now I get the following output, which includes a large number of clobber warnings (I've removed most of them for space) and ends with a failed import of qtWebKit.
Full output:

TEST START: /home/conda/feedstock_root/build_artifacts/linux-64/gpi-1.0.6-py36_1.tar.bz2
Adding in variants from /tmp/tmpt6t0ys3n/info/recipe/conda_build_config.yaml
INFO:conda_build.variants:Adding in variants from /tmp/tmpt6t0ys3n/info/recipe/conda_build_config.yaml
INFO conda_build.variants:_combine_spec_dictionaries(189): Adding in variants from /tmp/tmpt6t0ys3n/info/recipe/conda_build_config.yaml
Renaming work directory,  /home/conda/feedstock_root/build_artifacts/gpi_1561581965783/work  to  /home/conda/feedstock_root/build_artifacts/gpi_1561581965783/work_moved_gpi-1.0.6-py36_1_linux-64
Collecting package metadata (repodata.json): ...working... done
Solving environment: ...working... done

## Package Plan ##

  environment location: /home/conda/feedstock_root/build_artifacts/gpi_1561581965783/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl

The following NEW packages will be INSTALLED:

    ca-certificates:  2019.6.16-hecc5488_0          conda-forge
    cairo:            1.14.6-4                      conda-forge
    eigen:            3.3.7-h6bb024c_1000           conda-forge
    expat:            2.2.5-he1b5a44_1003           conda-forge
    fftw:             3.3.8-nompi_h7f3a6c3_1105     conda-forge
    fontconfig:       2.12.1-4                      conda-forge
    freetype:         2.7-1                         conda-forge
    gettext:          <IP_ADDRESS>-hc5be6a0_1002        conda-forge
    glib:             2.51.4-0                      conda-forge
    gpi:              1.0.6-py36_1                  local
    graphite2:        1.3.13-hf484d3e_1000          conda-forge
    h5py:             2.9.0-nompi_py36hf008753_1102 conda-forge
    harfbuzz:         1.4.3-0                       conda-forge
    hdf5:             1.10.4-nompi_h3c11f04_1106    conda-forge
    icu:              58.2-hf484d3e_1000            conda-forge
    jpeg:             9c-h14c3975_1001              conda-forge
    libblas:          3.8.0-7_openblas              conda-forge
    libcblas:         3.8.0-7_openblas              conda-forge
    libffi:           3.2.1-he1b5a44_1006           conda-forge
    libgcc-ng:        9.1.0-hdf63c60_0              defaults
    libgfortran-ng:   7.3.0-hdf63c60_0              defaults
    libiconv:         1.15-h516909a_1005            conda-forge
    liblapack:        3.8.0-7_openblas              conda-forge
    libpng:           1.6.37-hed695b0_0             conda-forge
    libstdcxx-ng:     9.1.0-hdf63c60_0              defaults
    libtiff:          4.0.10-h57b8799_1003          conda-forge
    libuuid:          2.32.1-h14c3975_1000          conda-forge
    libxcb:           1.13-h14c3975_1002            conda-forge
    libxml2:          2.9.9-h13577e0_0              conda-forge
    lz4-c:            1.8.3-he1b5a44_1001           conda-forge
    ncurses:          6.1-hf484d3e_1002             conda-forge
    numpy:            1.16.4-py36h95a1406_0         conda-forge
    olefile:          0.46-py_0                     conda-forge
    openblas:         0.3.5-h9ac9557_1001           conda-forge
    openssl:          1.0.2r-h14c3975_0             conda-forge
    pango:            1.40.4-0                      conda-forge
    pcre:             8.41-hf484d3e_1003            conda-forge
    pillow:           4.2.1-py36_0                  conda-forge
    pixman:           0.34.0-h14c3975_1003          conda-forge
    psutil:           5.6.3-py36h516909a_0          conda-forge
    pthread-stubs:    0.4-h14c3975_1001             conda-forge
    pyopengl:         3.1.3b2-py_1                  conda-forge
    pyqt:             4.11.4-py36_3                 conda-forge
    python:           3.6.7-hd21baee_1002           conda-forge
    qimage2ndarray:   1.7-py_0                      conda-forge
    qt:               4.8.7-ha8c56c7_9              conda-forge
    readline:         7.0-hf8c457e_1001             conda-forge
    sip:              4.18-py36_1                   conda-forge
    six:              1.12.0-py36_1000              conda-forge
    sqlite:           3.28.0-h8b20d00_0             conda-forge
    tk:               8.6.9-hed695b0_1002           conda-forge
    xorg-kbproto:     1.0.7-h14c3975_1002           conda-forge
    xorg-libice:      1.0.9-h516909a_1004           conda-forge
    xorg-libsm:       1.2.3-h84519dc_1000           conda-forge
    xorg-libx11:      1.6.7-h14c3975_1000           conda-forge
    xorg-libxau:      1.0.9-h14c3975_0              conda-forge
    xorg-libxdmcp:    1.1.3-h516909a_0              conda-forge
    xorg-libxext:     1.3.4-h516909a_0              conda-forge
    xorg-libxrender:  0.9.10-h516909a_1002          conda-forge
    xorg-libxt:       1.2.0-h516909a_0              conda-forge
    xorg-renderproto: 0.11.1-h14c3975_1002          conda-forge
    xorg-xextproto:   7.3.0-h14c3975_1002           conda-forge
    xorg-xproto:      7.0.31-h14c3975_1007          conda-forge
    xz:               5.2.4-h14c3975_1001           conda-forge
    zlib:             1.2.11-h14c3975_1004          conda-forge
    zstd:             1.4.0-h3b9ef0a_0              conda-forge

Preparing transaction: ...working... done
Verifying transaction: ...working... done
Executing transaction: ...working...
ClobberWarning: Conda was asked to clobber an existing path.
  source path: /opt/conda/pkgs/ncurses-6.1-hf484d3e_1002/share/terminfo/2/2621a
  target path: /home/conda/feedstock_root/build_artifacts/gpi_1561581965783/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl/share/terminfo/2/2621a

ClobberWarning: Conda was asked to clobber an existing path.
  source path: /opt/conda/pkgs/ncurses-6.1-hf484d3e_1002/share/terminfo/e/eterm
  target path: /home/conda/feedstock_root/build_artifacts/gpi_1561581965783/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl/share/terminfo/e/eterm

ClobberWarning: Conda was asked to clobber an existing path.
  source path: /opt/conda/pkgs/ncurses-6.1-hf484d3e_1002/share/terminfo/e/eterm-color
  target path: /home/conda/feedstock_root/build_artifacts/gpi_1561581965783/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl/share/terminfo/e/eterm-color

[etc. etc.]

ClobberWarning: Conda was asked to clobber an existing path.
  source path: None
  target path: /home/conda/feedstock_root/build_artifacts/gpi_1561581965783/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl/lib/python3.6/site-packages/OpenGL/raw/__pycache__/__init__.cpython-36.pyc

ClobberWarning: Conda was asked to clobber an existing path.
  source path: None
  target path: /home/conda/feedstock_root/build_artifacts/gpi_1561581965783/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl/lib/python3.6/site-packages/OpenGL/__pycache__/version.cpython-36.pyc

ClobberWarning: Conda was asked to clobber an existing path.
  source path: None
  target path: /home/conda/feedstock_root/build_artifacts/gpi_1561581965783/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl/lib/python3.6/site-packages/OpenGL/__pycache__/wrapper.cpython-36.pyc

done
export PREFIX=/home/conda/feedstock_root/build_artifacts/gpi_1561581965783/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl
export SRC_DIR=/home/conda/feedstock_root/build_artifacts/gpi_1561581965783/test_tmp
import: 'gpi'
GPI 1.0.6 (2019-06-26)  Copyright (C) 2014 Dignity Health
This program comes with ABSOLUTELY NO WARRANTY; see the LICENSE for details.

    NO CLINICAL USE.    THE SOFTWARE
MAY NOT IN ANY EVENT BE USED FOR ANY CLINICAL OR DIAGNOSTIC PURPOSES.    LICENSOR MAKES NO WARRANTY AND HAS
NO LIABILITY ARISING FROM ANY USE OF THE SOFTWARE IN ANY HIGH RISK OR STRICT
LIABILITY ACTIVITIES.

Traceback (most recent call last):
  File "/home/conda/feedstock_root/build_artifacts/gpi_1561581965783/test_tmp/run_test.py", line 2, in <module>
    import gpi
  File "/home/conda/feedstock_root/build_artifacts/gpi_1561581965783/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl/lib/python3.6/site-packages/gpi/__init__.py", line 91, in <module>
    from .widgets import *
  File "/home/conda/feedstock_root/build_artifacts/gpi_1561581965783/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl/lib/python3.6/site-packages/gpi/widgets.py", line 34, in <module>
    QtWebKit = Qimport("QtWebKit")
  File "/home/conda/feedstock_root/build_artifacts/gpi_1561581965783/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl/lib/python3.6/site-packages/gpi/qtapi.py", line 48, in import_module
    p = __import__('PyQt4', globals(), locals(), [moduleName], 0)
ImportError: libQtWebKit.so.4: cannot open shared object file: No such file or directory
Tests failed for gpi-1.0.6-py36_1.tar.bz2 - moving package to /home/conda/feedstock_root/build_artifacts/broken
WARNING:conda_build.build:Tests failed for gpi-1.0.6-py36_1.tar.bz2 - moving package to /home/conda/feedstock_root/build_artifacts/broken
WARNING conda_build.build:tests_failed(2200): Tests failed for gpi-1.0.6-py36_1.tar.bz2 - moving package to /home/conda/feedstock_root/build_artifacts/broken
TESTS FAILED: gpi-1.0.6-py36_1.tar.bz2

Here's a diff of the packages installed during testing. Left is the current (breaking) version and right is the output from Azure earlier this week.

Qt is a C++ library and is extremely sensitive to binary compatibility.  I think the most important part of your diff is that qt has switched from conda-forge to defaults.  That's very concerning.  The solver has done this to make something else satisfiable - something about that build from defaults makes it easier to satisfy something else.
The simplest thing to do is to make sure that you are using strict channel priority.
CC @ocefpaf - what's the best way for people to enable strict on their recipes?

CC @ocefpaf - what's the best way for people to enable strict on their recipes?

There is not an easy way. (We should really starting using strict globally on conda-forge!)
We can "hack" the configure scripts but a new re-render will remove that. I can do that for you early tomorrow @borupdaniel.

Could also copy over the run_conda_forge_build_setup_* files from the conda-forge-ci-setup feedstock into the recipe and add that strict setting in those files. This would remain even after a re-rendering. Just would need to remember to remove those files once they are not needed any more.

Thanks for the fast replies! Just to clarify, in the diff, the left column with conda-forge providing qt is the build that fails. On the right is the successful build Monday where defaults was used. I will give the strict channel priorities a try but given that everything in the left column is coming from conda-forge I'm not sure this will resolve the issue.

So there are some other issues with this recipe.  Conda-forge no longer support python 3.4 or 3.5  so much of the stack you are building for does not exist anymore.
This may very well also be caused by the dependency on qt4 instead of 5.  I'm not entirely sure how healthy our qt4 situation is, but I know it is a lot less healthy than qt5.

I've attempted to make an update pyqt with qt4 in https://github.com/conda-forge/pyqt-feedstock/pull/55, but not holding out much hope for it actually working

Thanks @marius! I appreciate the clarification on 3.4/3.5 — I was starting to catch on to this while working on an updated build recipe, which is when I ran into the issues described in this thread. I'll try running another build and see if your new update is helpful!
We have a new version with PyQt coming soon to support qt5, so it seems in the worst case that may be a solution too.

We have a new version with qt5 support almost ready to release, so it seems in the worst case that may be a solution too.

It's looking more and more like this needs to be part of the solution, to me. The flexibility of qtpy is nice but in general Qt4 support is going to keep getting worse so the real benefit of the update is just Qt5 support.

Yeah I would strongly recommend moving to qt5.  Qt4 has been eol since Dec 2015 so I'm not sure it's worth the considerable effort getting it building again.


自定义域名之前访问一切正常的，今天突然进不去了

Describe the bug
然后检查了下问题，好像是vercel部署要改域名的DNS了，

之前没改过东西，是我的问题，还是都需要改了？
Reproduction
1
System Info
1

Used Package Manager
npm
Validations

[X] Follow our Code of Conduct
[X] Read the Contributing Guide.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] Check that this is a concrete bug. For Q&A, please open a GitHub Discussion instead.
[X] The provided reproduction is a minimal reproducible of the bug.

This does not seem to be relevant to this project, so I will close it.
You can refer to the documentation or go to the help center about binding domains in Vercel.
Related: https://vercel.com/docs/concepts/projects/domains/add-a-domain


Invalid -f command in docker push

https://github.com/aws-samples/opensource-4g-core-eks/blob/main/Build-Container-Images.md#x86-architecture
contains this command
docker push container_registry/open5gs-x86-aio:41fd851 -f open5gs-epc-aio

The -f seems to be a flag for the docker build command only, and not for docker push

I fixed this error by applying the following changes:
Example: container_registry/open5gs-x86-aio image
`

docker tag container_registry/open5gs-x86-aio:41fd851 [AWS_ID].dkr.ecr.us-east1.amazonaws.com/open5gscore:open5gs-x86-aio
aws ecr get-login-password --region us-east-1 | docker login --username AWS --password-stdin [AWS_ID].dkr.ecr.us-east-1.amazonaws.com
docker push [AWS_ID].dkr.ecr.us-east-1.amazonaws.com/open5gscore:open5gs-x86-aio`


add chinese

Is this Traditional or Simplified?

It's Simplified Chinese.

Thanks. E-mail me if you want a promo code.


Replaced Bootstrap Tour By IntroJS in Curriculum Activity

#1090
Replace Bootstrap Tour By IntroJS in Curriculum Activity

@prakharSrivs just a small suggestion from my side I think you have not made changes in css/activity.css file hope you check it once.

Thank you for reviewing it @Ayeshashaik759
I'll be shortly pushing an update to the branch

It does not work: nothing happens and there is an error in the console.

@Ayeshashaik759 are you still working on it?

Hi @llaske  , Actually my midterms were going on so I was not able to work on it.
But I will surely look into it now.

Closed due to lack of activity


Compatibility with Byte-Buddy 1.12.13+

Byte-Buddy v1.12.13 has a breaking api change, which makes spock-mockable fail in combination with the newest byte-buddy release. It seems like the api change will be kept as is, see https://github.com/raphw/byte-buddy/issues/1297.
This is just a heads-up, I didn't dig deeper to look if I could fix it myself by creating a pull request.

I'm seeing the same thing. Looking forward to a fix :)

Thank you very much. The new release with an updated dependency on byte buddy will be available shortly.


Tests

Everything needs unit tests.

https://github.com/protop-io/protop/pull/30 adds some unit tests.


Update to work with pvsxlibs 1.3.0

This version changed the name of its inbuilt .dbd files, which we must match in order to load it
Also updated various other dependencies in order to make the pipenv environment stable
Closes #145

@mdavidsaver is this the correct fix?

Fixed in pvxslibs==1.3.1.  I have "yanked" 1.3.0 on pypi.org.
It would help in detecting issues like this if pythonSoftIOC could add a CI job testing the current 'master' branches of epicscorelibs, pvxs, and p4p.

PR is no longer necessary.


Remove the layout cache and rename layout -> trackInfo.

The layout cache is busted and seems not worth the effort.
Fixes #603.

This one I'm not sure about. This did actually seem to significantly improve performance (although I'll admit I never actually bothered to benchmark it). What problems were you seeing?

Without this, if I write a d88 file with the ibm format, it only writes one sector onto every track.

Also, I'm not seeing anything that clears the cache if you write 2 successive disks (e.g. via the GUI).

I'm sorry, I dropped this one.
The cache is actually cleared by magic via calling Environment::reset(), which will call clear() on all globals wrapped in the Local<> construct. However, if you're actually seeing problems then it clearly doesn't work, and as it's just a performance booster, let's disable it.


Shadowrun 2E update-Format issue please push ASAP

Changes / Comments
Roll20 Requests
Comments are very helpful for reviewing the code changes. Please answer the relevant questions below in your comment.

[ ] Does the pull request title have the sheet name(s)? Include each sheet name.
[x] Is this a bug fix?
[ ] Does this add functional enhancements (new features or extending existing features) ?
[x] Does this add or change functional aesthetics (such as layout or color scheme) ?
[ ] If changing or removing attributes, what steps have you taken, if any, to preserve player data ?
[ ] If this is a new sheet, did you follow Building Character Sheets standards ?

If you do not know English. Please leave a comment in your native language.

Character Sheet Info Roll20 Internal Use only.

Fixes major problem with sheet format.  I accidentlt put a  instead of  All fixed now.


python dependency nightmare

Apache Iceberg version
main (development)
Please describe the bug 🐞
trying to install rc2 in Fabric runtime
Installing collected packages: sortedcontainers, mmhash3, typing-extensions, pyparsing, annotated-types, strictyaml, pydantic-core, pydantic
  Attempting uninstall: typing-extensions
    Found existing installation: typing_extensions 4.5.0
    Uninstalling typing_extensions-4.5.0:
      Successfully uninstalled typing_extensions-4.5.0
  Attempting uninstall: pyparsing
    Found existing installation: pyparsing 3.0.9
    Uninstalling pyparsing-3.0.9:
      Successfully uninstalled pyparsing-3.0.9
  Attempting uninstall: pydantic
    Found existing installation: pydantic 1.10.9
    Uninstalling pydantic-1.10.9:
      Successfully uninstalled pydantic-1.10.9
ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
sentence-transformers 2.0.0 requires sentencepiece, which is not installed.
sentence-transformers 2.0.0 requires torchvision, which is not installed.
dash 2.14.0 requires Flask<2.3.0,>=1.0.4, but you have flask 3.0.0 which is incompatible.
dash 2.14.0 requires Werkzeug<2.3.0, but you have werkzeug 3.0.1 which is incompatible.
matplotlib 3.7.2 requires pyparsing<3.1,>=2.3.1, but you have pyparsing 3.1.1 which is incompatible.
tensorflow 2.12.1 requires typing-extensions<4.6.0,>=3.6.6, but you have typing-extensions 4.9.0 which is incompatible.
Successfully installed annotated-types-0.6.0 mmhash3-3.0.1 pydantic-2.6.1 pydantic-core-2.16.2 pyparsing-3.1.1 sortedcontainers-2.4.0 strictyaml-1.7.3 typing-extensions-4.8.0
Note: you may need to restart the kernel to use updated packages.

then when I try to run it
---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
Cell In[23], line 1
----> 1 from pyiceberg.table import StaticTable
      2 from pyiceberg.expressions import GreaterThanOrEqual
      3 table = StaticTable.from_metadata("/lakehouse/default/Files/database/customer/metadata/v1704189432100000000.metadata.json" )

File ~/cluster-env/trident_env/lib/python3.10/site-packages/pyiceberg/table/__init__.py:44
     28 from itertools import chain
     29 from typing import (
     30     TYPE_CHECKING,
     31     Any,
   (...)
     41     Union,
     42 )
---> 44 from pydantic import Field, SerializeAsAny
     45 from sortedcontainers import SortedList
     46 from typing_extensions import Annotated

ImportError: cannot import name 'SerializeAsAny' from 'pydantic' (/home/trusted-service-user/cluster-env/trident_env/lib/python3.10/site-packages/pydantic/__init__.cpython-310-x86_64-linux-gnu.so)

@djouallah Thanks for raising this. Could you double check the Pydantic version in your Python environment?
python3
Python 3.11.7 (main, Dec  4 2023, 18:10:11) [Clang 15.0.0 (clang-15<IP_ADDRESS>.5)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> from pydantic import __version__
>>> __version__
'2.5.2'

The install looks good 🤔

the default runtime nothing installed yet

PyIceberg runs on Pydantic 2.x, which should come with the Iceberg installation