[SPARK-21029][SS] StreamingQuery should be stopped when the SparkSession is stopped

What changes were proposed in this pull request?
This patch proposes to stop the underlying streaming queries when a spark session is stopped.
Without this, the streaming query continues to run and fails with exception during the next trigger.
For E.g.
val lines = spark.readStream.format("socket").option("host", "localhost").option("port", "9999").load()
lines.writeStream.format("console").start
...
> send some input
...
spark.stop
...
> send more input
...

The job fails with exception
How was this patch tested?
Tested manually. Would add unit tests once I receive feedback on the approach.
Please review http://spark.apache.org/contributing.html before opening a pull request.

Can one of the admins verify this patch?

Can one of the admins verify this patch?

cc @felixcheung @zsxwing

Test build #102834 has started for PR 23912 at commit 5d94443.

Test build #102834 has finished for PR 23912 at commit 5d94443.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/102834/
Test FAILed.

Retest this please.

Test build #102840 has started for PR 23912 at commit 5d94443.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/8334/
Test PASSed.

Test build #102840 has finished for PR 23912 at commit 5d94443.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/102840/
Test FAILed.

Test build #102843 has started for PR 23912 at commit 9ecfe4f.

Test build #102843 has finished for PR 23912 at commit 9ecfe4f.

This patch fails Scala style tests.
This patch does not merge cleanly.
This patch adds no public classes.

Build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/102843/
Test FAILed.

Test build #102844 has started for PR 23912 at commit 9426fed.

Test build #102844 has finished for PR 23912 at commit 9426fed.

This patch fails Scala style tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/102844/
Test FAILed.

Test build #102849 has started for PR 23912 at commit 5c6624e.

Test build #102849 has finished for PR 23912 at commit 5c6624e.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/102849/
Test PASSed.

Test build #102884 has started for PR 23912 at commit 31dd810.

Test build #102886 has started for PR 23912 at commit e1497b6.

Test build #102887 has started for PR 23912 at commit 56d0ecb.

Test build #102889 has started for PR 23912 at commit fe21002.

Test build #102884 has finished for PR 23912 at commit 31dd810.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/102884/
Test FAILed.

Test build #102886 has finished for PR 23912 at commit e1497b6.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/102886/
Test FAILed.

Test build #102887 has finished for PR 23912 at commit 56d0ecb.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/102887/
Test FAILed.

Test build #102889 has finished for PR 23912 at commit fe21002.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/102889/
Test FAILed.

Merged build finished. Test FAILed.

Test build #102923 has started for PR 23912 at commit 2ad2333.

Test build #102923 has finished for PR 23912 at commit 2ad2333.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/102923/
Test PASSed.

Is this patch better than https://github.com/apache/spark/pull/18306 ?

That patch leverages shutdown hook to invoke a method to stop the active queries. I am not sure leveraging shutdown hook as a callback mechanism for invoking a method under a different context is the right approach. Also not sure it handles concurrent invocations of stop.
To keep it simple, the current patch proposes to handle it only at SparkSession. If we want to handle stop from both SparkContext and SparkSession and concurrency, we probably need to introduce a call back (in SparkSession) that gets invoked from sc.stop and the callback ensures that it stops the query only the first time its invoked. Let me know if it makes sense to explore that.

This PR is jus stopping streaming queries belonging to the current SparkSession, while #18306 will stop all streaming queries. I know the SparkSession.stop behavior is weird right now as it stops SparkContext which are shared by all SparkSessions.

I am not sure stopping active queries across all spark sessions, when one invokes a stop on any one of the spark session is the right thing to do.

I am not sure stopping active queries across all spark sessions, when one invokes a stop on any one of the spark session is the right thing to do.

Yeah, however, stopping SparkContext is going to break all SparkSessions and queries, which is already weird.

I changed a bit so that now it stops all the queries, which is similar to #18306 just that this does not use the shutdown hook and handles concurrent invocations of stop.

Test build #103110 has started for PR 23912 at commit a9657f9.

Test build #103110 has finished for PR 23912 at commit a9657f9.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/103110/
Test PASSed.

Test build #103385 has started for PR 23912 at commit 1d53657.

Test build #103385 has finished for PR 23912 at commit 1d53657.

This patch fails to build.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/103385/
Test FAILed.

Test build #103387 has started for PR 23912 at commit 27bebaf.

Test build #103387 has finished for PR 23912 at commit 27bebaf.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/103387/
Test PASSed.

@dongjoon-hyun @cloud-fan @HeartSaVioR @zsxwing , would you mind taking a look again?

Test build #103701 has started for PR 23912 at commit 972ac43.

Test build #103702 has started for PR 23912 at commit d3e8fb8.

Merged build finished. Test FAILed.

Merged build finished. Test FAILed.

Retest this please.

Test build #103711 has started for PR 23912 at commit d3e8fb8.

Test build #103711 has finished for PR 23912 at commit d3e8fb8.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/103711/
Test FAILed.

Retest this please.

Test build #103744 has started for PR 23912 at commit 60c3d24.

Test build #103744 has finished for PR 23912 at commit 60c3d24.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/103744/
Test PASSed.

@dongjoon-hyun @zsxwing @cloud-fan could you take it forward?

ping @dongjoon-hyun @zsxwing @cloud-fan again to see if we can get this in.

ok to test

Test build #110699 has started for PR 23912 at commit 60c3d24.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/15862/
Test PASSed.

Test build #110699 has finished for PR 23912 at commit 60c3d24.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/110699/
Test FAILed.


Declaration of verbb\buttonbox\fields\Width::translatedOptions....

Description
Latest Craft CMS update (3.7.46) might have broken Button Box plugin.
I'm getting the following error after upgrading:
Declaration of verbb\buttonbox\fields\Width::translatedOptions(): array should be compatible with craft\fields\BaseOptionsField::translatedOptions(bool $encode = false): array
At line 157 of /vendor/verbb/buttonbox/src/fields/Width.php
Additional info

Plugin version: 3.0.2
Craft version: 3.7.46
Multi-site: Yes

Looks like line 157 might need to change from:
protected function translatedOptions(): array
to
protected function translatedOptions(bool $encode = false): array

Issue shows up in other places as well:
/vendor/verbb/buttonbox/src/fields/Colours.php — line 148
protected function translatedOptions(): array
Becomes:
protected function translatedOptions(bool $encode = false): array
And here: /vendor/verbb/buttonbox/src/fields/TextSize.php — line 162
protected function translatedOptions(): array
Becomes:
protected function translatedOptions(bool $encode = false): array
And here: /vendor/verbb/buttonbox/src/fields/Buttons.php — line 200
protected function translatedOptions(): array
Becomes:
protected function translatedOptions(bool $encode = false): array

Looks like this is indeed very fresh bug introduced in Craft 3.7.46. and Craft 4.1.0 today.
Fixed in 3.1.0 and 4.1.0.

@engram-design So how does one update Button Box? The plugin store shows 3.0.2 as the latest version available. Craft is at 3.7.41. When I change verbb/buttonbox to 3.1.0 in composer.json and run composer install, I get this:
  … checking /path/to/project/composer.json ✓
Loading composer repositories with package information
Cannot create cache directory /.composer/cache/repo/https---repo.packagist.org/, or directory is not writable. Proceeding without cache. See also cache-read-only config if your filesystem is read-only.
Info from https://repo.packagist.org: #StandWithUkraine
Updating dependencies
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - Root composer.json requires verbb/buttonbox 3.1.0 -> satisfiable by verbb/buttonbox[3.1.0].
    - verbb/buttonbox 3.1.0 requires craftcms/cms ^3.7.46 -> found craftcms/cms[3.7.46, 3.7.47, <IP_ADDRESS>] but it conflicts with your root composer.json require (3.7.41).

Use the option --with-all-dependencies (-W) to allow upgrades, downgrades and removals for packages currently locked to specific versions.
composer update completed 🤘

I've tried updating the Craft version number similarly to 3.7.46 but then I get even more problems:
  Problem 1
    - Root composer.json requires craftcms/cms 3.7.46, found craftcms/cms[3.7.46] but the package is fixed to 3.7.41 (lock file version) by a partial update and that version does not match. Make sure you list it as an argument for the update command.
  Problem 2
    - Root composer.json requires verbb/buttonbox 3.1.0 -> satisfiable by verbb/buttonbox[3.1.0].
    - verbb/buttonbox 3.1.0 requires craftcms/cms ^3.7.46 -> found craftcms/cms[3.7.46, 3.7.47, <IP_ADDRESS>] but the package is fixed to 3.7.41 (lock file version) by a partial update and that version does not match. Make sure you list it as an argument for the update command.

I realize this is probably down to me just not fully grokking how to use composer properly, but I can't be the only one struggling with this, can I? How do I progress here? Thanks!

Running a composer update if you prefer the command line, or ./craft update, or using the CP to update should do the trick!
That's actually quite interesting about the plugin store, I might ping them about it. But according to Packigist, the 3.1.0 tag definitely exists.
But that error shows that you need Craft 3.7.46 or later. Normally, if you run any of the above commands, Composer will sort out the compatible versions, but if you're manually editing the composer required files - in your case, saying you need Buttonbox 3.1.0, but you also want Craft 3.7.41 it just won't work, because those two versions aren't compatible.
The resolution is to update Craft and Button Box together.

Yeah, so obviously since the Plugin Store doesn't show the 3.1.0 update for BB, but it does show Craft's updates, then when I've tried that, I get the error in the original post above.
Running composer update did the trick, thanks! Not sure how I didn't stumble across that before. 🤷♂

Weird! The plugin store does show 3.1.0 and must've been some strange caching thing - despite the release being pushed 2 weeks ago. Glad you got it sorted.


A few observersions:

Thank you for your work - I will note af few observations. Hopefully some of them can be fixed:

The version of openwrt is rather old. /etc/banner:
Based on Openwrt 21.02 IOT Freedom For End-user! HandsomeMod 21.03-Attila-SNAPSHOT
opkg points to  https://downloads.openwrt.org/releases/21.02-SNAPSHOT/targets/msm89xx... but that cannot be downloaded (not even if I replace https with http)
So It is not possible to get any extra packages
Will the required modifications be added to standard OpenWrt?

Only a part of 4GB flash is used:

root@HandsomeMod:/tmp# df -h
Filesystem                Size      Used Available Use% Mounted on
/dev/root               126.3M    101.3M     22.4M  82% /
tmpfs                   192.6M    592.0K    192.0M   0% /tmp
tmpfs                   512.0K         0    512.0K   0% /dev

The TX rate of wifi is limited to 6.5Mbs or 13.5Mbs - over ethernet I get >25Mbps download, and >10Mbps download

In Wifi mode Client works ok, but if Client WDS it will nevet get ipadress.
In wifimode, the client will be disabled, if the default "SSID: HandsomeMod_A1377C | Mode: Master" is enabled.

In windows, the RNDIS adapter was inactive (yellow exclamation mark). I had to follow instructions from https://xdaforums.com/t/issue-with-native-usb-tethering-in-windows-7.834487/#post-12758233 - that is:

Right click that device and select Update Driver.
When the window pops up (on Windows 7 32bit), select, Browse My Computer for driver software, then on the next screen, click on the bottom that says, LET ME PICK.
Then it will ask you the device type.
Here you go down to Network Adapters.
Then when it asks you to select manufacturer, skip Microsoft and select Microsoft Corporation.
Then, select Remote NDIS based Internet Sharing Device.

Thank you for your work - I will note af few observations. Hopefully some of them can be fixed

Hello @tboege,
Thank you for your feedback. I'll review the issues that were identified and work on fixing them to the best of my ability.
Best regards,
Allen

Do you know if it is possible to enter edl or fastboot from your version of OpenWrt (or do I need to short D+ and GND). Maybee I can use reset button?

Yes, for fastboot execute adb reboot-bootloader and for edl fastboot oem reboot-edl

Thank you. I was not aware, that those options was available after
installation of openwrt
Den ons. 6. nov. 2024 kl. 17.29 skrev Allen Gabrielle Cruiz <
@.***>:

Do you know if it is possible to enter edl or fastboot from your version
of OpenWrt (or do I need to short D+ and GND). Maybee I can use reset
button?
Yes, for fastboot execute adb reboot-bootloader and for edl fastboot oem
reboot-edl
—
Reply to this email directly, view it on GitHub
https://github.com/AlienWolfX/UZ801-USB_MODEM/issues/10#issuecomment-2460243668,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AHSKMC7EFOFH6YCKVNK5DNTZ7I7XHAVCNFSM6AAAAABRISJ3OCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDINRQGI2DGNRWHA
.
You are receiving this because you were mentioned.Message ID:
@.***>

opkg points to https://downloads.openwrt.org/releases/21.02-SNAPSHOT/targets/msm89xx... but that cannot be downloaded (not even if I replace https with http) ...

OpenWRT doesn't officially support the msm8916 chipset, but some Git repositories offer opkg sources for it. These could be integrated into the build system or made available locally.

In wifimode, the client will be disabled, if the default "SSID: HandsomeMod_A1377C | Mode: Master" is enabled.

As expected with OpenWRT, enabling the default Wi-Fi access point ('SSID: HandsomeMod_A1377C | Mode: Master') disables the client interface.  When radio0 is configured as an AP, the client configuration is disabled, and viceversa.
Hope this helps.
Alexandr.

but some Git repositories offer opkg sources for it

Where can we find some of those repositories? I just want to install wireguard.
Thanks for all the work you've put into this project! :heart:

Hello @samthelion17,

How can I query the supported bands and other info like imei with mmcli as you wrote in the README?

You can run mmcli -m 0 to query modem information

Where can we find some of those repositories? I just want to install wireguard.

[!NOTE]
I haven't full tested this but Here's a compiled version with wireguard

I haven't full tested this but Here's a compiled version with wireguard

Can confirm that wireguard is working, and it's working fast! I had to reboot (unplug, re-plug?) after creating and configuring the interface but other than that it works great.

Can confirm that wireguard is working, and it's working fast!

Thank you for your feedback. ♥
Best regards,
Allen.

You may restart with /etc/init.d/the_service restart:
e.g.
/etc/init.d/network restart
El lun, 11 nov 2024 a las 4:00, Samuel Wilson @.***>)
escribió:

I haven't full tested this but Here's
https://www.mediafire.com/file/gjlysk0ea6nvswc/uz801_with_wireguard.rar/file
a compiled version with wireguard
Can confirm that wireguard is working, and it's working fast! I had to
reboot (unplug, re-plug?) after creating and configuring the interface but
other than that it works great.
—
Reply to this email directly, view it on GitHub
https://github.com/AlienWolfX/UZ801-USB_MODEM/issues/10#issuecomment-2467137211,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/BDNGG57SP3Y2G73SHFBTA2T2AAMWVAVCNFSM6AAAAABRISJ3OCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDINRXGEZTOMRRGE
.
You are receiving this because you commented.Message ID:
@.***>


add a way to play an audio in Alarm category , for volume control

What is the need and use case of this feature?
Currently I'm using this library to play my alarms. but It's volume is controlled by system's volume. so I needed to move this into the alarm volume category at least to let user decide the volume of the alarm using system settings.
Describe the ideal solution
an option to add some AudioAttributes to make it play as alarm ?

@meypod thanks for your request. I'm moving it to our feature request backlog. We'll review it and consider it for implementation once we have the bandwidth.
Thanks!


Fix RegularExpression -> NSRegularExpression for 3.1

Make code compilable on 3.1 snapshot 03-19

Codecov Report

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

@@           Coverage Diff           @@
##           master      #27   +/-   ##
=======================================
  Coverage   89.18%   89.18%
=======================================
  Files           2        2
  Lines          74       74
=======================================
  Hits           66       66
  Misses          8        8

Flag
Coverage Δ

#KituraCORS
89.18% <ø> (?)

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 5e8482f...450acac. Read the comment docs.


Protractor E2E tests time out with NG1-NG2 hybrid bootstrapped application

Steps to reproduce and a minimal demo of the problem
Setup a basic NG1 -> NG2 hybrid application and run E2E tests with protractor
Main entry point
  upgradeAdapter.addProvider([...PROVIDERS, ...ENV_PROVIDERS, ...DIRECTIVES, ...PIPES]);

  return upgradeAdapter.bootstrap(document.documentElement,
    ['app'], {strictDi: true});

Protractor config
const defaultConfig = {
  multiCapabilities: [
    {
      browserName: 'chrome', true, maxInstances: 6,
      chromeOptions: { args: ['--lang=en', '--window-size=360,600'] }
    }
  ],
  getPageTimeout: 10000, // How long to wait for a page to load in ms.
  allScriptsTimeout: 22000,
  baseUrl: 'http://localhost:3001',
  specs: `${__dirname}/../test/e2e/*.spec.js`,
  jasmineNodeOpts: {
    // If true, print colors to the terminal.
    showColors: true,
    // Default time to wait in ms before a test fails.
    defaultTimeoutInterval: 30000
  }
};

module.exports = { config: defaultConfig };

Sample test
const LoginPage = require('./page-objects/login.page');
const NavPage = require('./page-objects/nav.page');
const LogHelpers = require('./helpers/log.helper');

describe('login', () => {
  const loginPage = new LoginPage();
  const navPage = new NavPage();
  const logHelpers = new LogHelpers();

  beforeEach(() => {
    browser.get('login');
  });

  afterEach(() => {
    logHelpers.expectNoErrors();
  });

  describe('when valid credentials are given', () => {
    it('takes user to home', () => {
      expect(loginPage.submit.isEnabled()).toBe(false);
      loginPage.loginUser().then(() => {
        return navPage.logout.click();
      }).then(() => {
        return expect(browser.getCurrentUrl()).toMatch(/home/);
      });
    });
  });
});

Current behavior
Protractor throws the following error, no matter the timeout-
[chrome #1-10]   Message:
[chrome #1-10]     Failed: Timed out waiting for Protractor to synchronize with the page after 22 seconds. Please see https://github.com/angular/protractor/blob/master/docs/faq.md

[UPDATE] -
I have tracked down the behavior to timeout when trying to use the getCurrentUrl method.

this.loginUser = () => {
    return this.username.sendKeys('test').then(() => { // this succeeds
      return this.password.sendKeys('test'); // this succeeds
    }).then(() => {
      return this.submit.click(); // this succeeds
    }).then(() => {
      expect(browser.getCurrentUrl()).not.toMatch(/login/); // this times out
    });
  };

Expected/desired behavior
A successful test
Other information
Angular 1.x Version = 1.5.3
Angular 2.x Version = 2.0.0-rc.1
Protractor Version = 3.3.0
Possibly related to this PR - https://github.com/angular/angular/pull/7603

This could be related to https://github.com/angular/protractor/issues/2944, however I am using the RC version of NG2

I'm having a similar Issue that arrived when switching to a 1+2 app. Prior to the switch the tests ran synchronously. Now they will only run async but not well. There isn't a problem with constant polling of http or timeouts. Maybe some of my digging will help get the issue a solution or resolved.
Things I know:
-Elements are present and displayed
-There arent any polls to make protractor think the page is unstable
-All hangs occur on promises. ( ex exisitingPageElement.getText().then(...)   The .then never occurs because the getText

See https://github.com/angular/angular/issues/9407

I can't find a definitive guide on how to get a hybrid app working with RC5 and the latest protractor.
It looks like you are not supposed to use useAllAngular2AppRoots: true but perhaps you should set rootElement? If so, what should it be set to?
I can't seem to get any of my protractor tests to work in my hybrid app.

You should definitely set a root element - to the root of your ng1 app.
Also, this issue was resolved


Please add a license

Hi I would like to use this for an open data project. Unfortunately I don't see a license. Could you please add one?

Done :-)

Ok,  will try to remember to do so this evening.


Regex pattern that checks for camelCase but also allows acronyms or abbreviations

I want a single pattern that allows the following:

camelCase.ts
camelCaseLOL.ts

Is this possible?

As an alternative, you can use eslint-plugin-project-structure
project-structure-folder-structure
Enforce rules on folder structure to keep your project consistent, orderly and well thought out.
🚀 Features:

Validation of folder structure. Any files/folders outside the structure will be considered an error.
File/Folder name regex validation with features like wildcard * and treating . as a character, along with other conveniences.
Build in case validation.
Inheriting the folder's name. The file/folder inherits the name of the folder in which it is located. Option of adding your own prefixes/suffixes or changing the case.
Enforcing the existence of a files/folders when a specific file/folder exists. For example, if ./src/Component.tsx exists, then ./src/Component.test.tsx and ./src/stories/Component.stories.tsx must also exist.
Reusable rules for folder structures.
An option to create a separate configuration file with TypeScript support.
Forcing a nested/flat structure for a given folder.
Support for all file extensions.
Folder recursion. You can nest a given folder structure recursively.
Fewer repetitions and precise error messages, even for deeply nested folders (recursion), by representing the folder structure as a tree.

project-structure-independent-modules
A key principle of a healthy project is to prevent the creation of a massive dependency tree,
where removing or editing one feature triggers a chain reaction that impacts the entire project.
Create independent modules to keep your project scalable and easy to maintain. Get rid of dependencies between modules and create truly independent functionalities.
🚀 Features:

Creating independent modules in which you control what can be imported (e.g. types, functions, components of one functionality cannot be imported into another functionality).
Disabling external imports (node_modules) for a given module (Option to add exceptions).
Non-relative/relative imports support.
Support for imports without extension.
Reusable import patterns.
Support for path aliases. The plugin will automatically detect your tsconfig.json and use your settings. There is also an option to enter them manually.
An option to create a separate configuration file with TypeScript support.

project-structure-naming-rules
Enforce complex naming rules and prohibit the use of given selectors in a given file.
Have full control over what your file can contain and the naming conventions it must follow.
🚀 Features:

Naming validation.
Supported selectors: class, variable, function, arrowFunction, type, interface, enum.
Naming rules for exported selectors, selectors in the root of the file and nested/all selectors in the file. They can be used together in combination.
Prohibit the use of given selectors in a given file. For example, **/*.consts.ts files can only contain variables, **/*.types.ts files can only contain enums, interfaces and types.
Inheriting the filename as the selector name. Option to add your own prefixes/suffixes, change the case, or remove parts of the filename.
Enforcing a maximum of one main function/class per file.
Different name rules for different files.
Regex validation.
Build in case validation.
An option to create a separate configuration file with TypeScript support.


Update for ghost 2.0

I like this theme and want to use it on my new blog. I believe there are some minor changes between Ghost 1.x and 2.0 which theme developers need to adapt in order to get their theme to work properly on Ghost 2.0

Can you provide some info on what minor changes need to be done?

Required changes are listed here (under 2.0.0):
https://themes.ghost.org/docs/changelog#section-ghost-200
Specifically, add this to package.json:
  "keywords": [
    "ghost",
    "theme",
    "ghost-theme"
  ],

Add this to default.css:
.kg-width-wide {

}
.kg-width-full {

}

I've forked this theme, updated it to Ghost 2.0.0, and made some changes for my own blog, check out the result here:
http://blog.deansommer.id.au/

It looks great!


Cannot install a package at a certain tag

:ghost: Brief Description
when I specify a package @ a tag, it complains " go: cannot use path@version syntax in GOPATH mode"
:pancakes: Cookbook version
v3.0.1
:woman_cook:  Chef-Infra Version
13.10.0
:tophat: Platform details
ubuntu 18.04
Steps To Reproduce
Steps to reproduce the behavior:

put something like<EMAIL_ADDRESS>into  node.default['golang']['packages']
run the cookbook.

:police_car: Expected behavior
get, build, install the binary
:heavy_plus_sign: Additional context
Add any other context about the problem here. e.g. related issues or existing pull requests.

@jeffbyrnes is working on a cleanup with the resource these attributes use in #78. Can you see if this problem still exists using that branch?

@ramereth Since there is no setting of GO111MODULE to 'on' I would tend to doubt it.  I'll give it a shot when I have a moment.

@grimm26 we can certainly work out a way to include that. I have plans to refactor the cookbook further, and provide for Go modules (since they are how the Go community appears to have decided to move forward).
I’d certainly welcome a PR, too!

@ grimm26 What problem are you trying to solve?  Could you add some detail about what result you expect from
something like  export GO111MODULE=on go get<EMAIL_ADDRESS>I get really weird results from trying to install a package at a specific tag that way.  Do you have a set of commands that would do what you expect?
Thanks,
Mark

@MarkGibbons The problem I am trying to solve is installing<EMAIL_ADDRESS>go package.  I created a fork of this cookbook and added an additional option to the package custom resource that adds GO111MODULE set to on to the environment for the go get bash command.  That makes it work.

09:10:49 ❯ go version
go version go1.14.5 darwin/amd64

09:12:16 ❯ go get<EMAIL_ADDRESS>go: cannot use path@version syntax in GOPATH mode

09:12:24 ❯ GO111MODULE=on go get<EMAIL_ADDRESS>go: downloading github.com/itpp-labs/hound v3.0.0+incompatible
go: found github.com/itpp-labs/hound/cmds/... in github.com/itpp-labs/hound v3.0.0+incompatible

Thanks.
So in that case it looks like you expect to see the source code loaded in<EMAIL_ADDRESS>Seems doable. Making the resource idempotent is a bit of an issue.
Have you considered submitting your code as a PR?

I can submit a PR

We can get Mark’s work in #82 merged in, then build on that, and release both as v4.1.0 (since it should be non-breaking, with the attributes preserved).

@grimm26 now that #82 has been merged, do you think you could make a PR that fixes this issue?


Initialize React App & Setup

Create react app
Create skeleton for components, smartcontract, tests and images
Install initial dependencies

Integrated under: commit 0ba3c85664891aeda7b42345baf4ea79e6926549 .


Migrate HTTP server side logic to interop

Purpose

$subject
Fixes #19939

Approach

Describe how you are implementing the solutions along with the design details.

Samples

Provide high-level details about the samples related to this feature.

Remarks

List any other known issues, related PRs, TODO items, or any other notes related to the PR.

Check List

[ ] Read the Contributing Guide
[ ] Required Balo version update
[ ] Updated Change Log
[ ] Checked Tooling Support (#)
[ ] Added necessary tests

[ ] Unit Tests
[ ] Spec Conformance Tests
[ ] Integration Tests
[ ] Ballerina By Example Tests

[ ] Increased Test Coverage
[ ] Added necessary documentation

[ ] API documentation
[ ] Module documentation in Module.md files
[ ] Ballerina By Examples

Closing this and sending a single PR with both the client and server side changes


Invalid API Token: invalid macaroon!r for url

Describe the bug
Possibly related to #6259
When using the same token generated from pypi a couple of months ago, now I got the error:
HTTPError: 403 Client Error: Invalid API Token: invalid macaroon!r for url: https://upload.pypi.org/legacy/

I figured it was based on an old key and re-generated a token, but I get the same error.
I verified that the version of twine did not change between the successful execution and the failure.
Expected behavior
No error on upload.
To Reproduce
TWINE_USERNAME=__token__
TWINE_PASSWORD=<token generated at pypi.org>
twine upload ...
My Platform
Build dist: xenial
Runtime kernel version: 4.15.0-1077-gcp

Additional context
https://travis-ci.com/github/pyproj4/pyproj-wheels/jobs/384840987

Hi @snowman2, this should be resolved by #8555 (and the error message improved by #8561), can you confirm?

Thanks for the fix - restarted build: https://travis-ci.com/github/pyproj4/pyproj-wheels/builds/184304607

It worked, thanks :+1:

Just got a similar error. Was working fine a week ago.
https://travis-ci.org/github/twilio/twilio-python/jobs/729123230

We also just got a similar error:
https://github.com/newrelic/newrelic-python-agent/runs/1146467559?check_suite_focus=true#step:9:14

Thanks, looks like https://github.com/pypa/warehouse/pull/8562 has re-introduced this (cc @ewjoachim).

Thanks, looks like #8562 has re-introduced this (cc @ewjoachim).

Same for me...

+1 here. Please prioritize to fix this issue.

I am also getting this error

Sure

any update on the "403 Invalid API Token: InvalidMacaroon('invalid macaroon signature')" ?!?


Added documentation for required:invalidateFalse

Closes #991

Hello, I need to use the required:invalidateFalse, but is there an example for it?

@JeancarloPerez Did you try `validate="'required:true'"?

Well, actually, I want something like this:
validate="'required:false'" (Field should not be required)
validate="'required:true'" (Field should be required)
@logaretm do you have any idea to accomplish that?

Thank you @logaretm the validate="'required:true'" it worked for me


Problem when using IAsyncNotificationHandler

Version we are using 3.0.1.
Having the following classes:
    class PayoutOrderRequestCommand : INotification { }
    class PayoutOrderRequestProcessHandler : IAsyncNotificationHandler<PayoutOrderRequestCommand>{ }

And the following code:
container.RegisterSingleton<PayoutOrderRequestProcessHandler>();
container.RegisterCollection<IAsyncNotificationHandler<PayoutOrderRequestCommand>>(
                new[]
                {
                    typeof(PayoutOrderRequestProcessHandler)
                });

var command = new PayoutOrderRequestCommand(Guid.NewGuid(), correlationId);
var task = mediator.Publish(command, default(System.Threading.CancellationToken));

Getting below error when the Publish function is executed.

No registration for type IEnumerable<INotificationHandler> could be found.

Please provide some solution for this issue.

we have the same problem using IAsyncNotificationHandler and i was planning to change the same to use IAsyncRequestHandler. Any help on this problem is greatly appreciated.

Can someone reply to this please ?

Hi,
From the question I assume SimpleInjector is used and the the default registration for MultiInstanceFactory is used:
container.RegisterSingleton(new MultiInstanceFactory(container.GetAllInstances));

When Publish is executed the mediator internally calls the MultiInstanceFactory  (calling SimpleInjectors GetAllInstances) to resolve registered notification handlers - it tries to resolves in order IAsyncNotificationHandler, INotificationHandler and last ICancellableAsyncNotificationHandler.
A call to GetAllInstances where no registration exists will cause ActivationException. Since SimpleInjector does not support asking if registration exists (that i know of) one could register the MultiInstanceFactory as:
container.RegisterSingleton(new MultiInstanceFactory(type =>
{
    try  {  return container.GetAllInstances(type); }
    catch (ActivationException) { return Enumerable.Empty<object>(); }
}));

To summarize, the first resolve was fine, but when trying to resolve INotificationHandler the GetAllInstances throws ActivationException since no registrations was found. Applying the above guard we should be able to resolve and publish successfully.

Thanks stiankroknes. Will try this out.

I believe you can check whether type is registered by using container.GetRegistration(type).

The problem, as I see it, is: should MediatR throw an error if there are no handlers registered, or should it just ignore it? I believe the latter is more appropriate.

The overall issue here is that MediatR is not explicitly in charge of "wiring up" handlers. In order to consolidate the API to just Task<T> Send<T>(IRequest<T> request), I have to figure out which handlers actually exist by trying them one by one.
An alternative would be to consolidate handlers to only being async. Which I'm OK with honestly. It's annoying to have all these different handlers.

Personally would love to see single async and single sync handler type, and have no issues if the latter be adapted into the former, i.e. the library would call Task.FromResult() for you.

The IMediator API is already async-only. But to determine if there's a sync or async handler, I have to attempt to resolve one or the other from the container. That can throw an exception.


⚠ Bofrost.es has degraded performance

In e0da699, Bofrost.es (https://www.bofrost.es) experienced degraded performance:

HTTP code: 200
Response time: 1544 ms

Resolved: Bofrost.es performance has improved in 2c44365 after 2 hours, 51 minutes.


Not All Files in Course Are Downloading

Script executes fine,  but only a hand full of videos will download (followed by "Downloading: ./Download").
The first 3 courses I downloaded worked fine.  All are from the temporary free courses list.

Just discovered that during the process, the site gives back a notification that there are too many requests which assume is causing only some of the files to download.

Can the author provide an option for set certain video range inside course?
Since FrontEnd Master website has restrict max request during certain period now.
It may happen that we only download the half of course and have to wait for a while to download the others.

I don’t have a valid subscription so I can’t do anything at the moment. You can open a PR if you can fix this.

The code has been updated and please try the latest version to see if the issue has been fixed.


Update free-courses-en.md

Added Three.js course
What does this PR do?
Add resource
For resources
Youtube
Description
Three.js is an open-source JavaScript library.
Why is this valuable (or not)?
It is used to display the graphics, 3D and 2D objects on the web browser.
How do we know it's really free?
Check the given link
For book lists, is it a book? For course lists, is it a course? etc.
It's a couse
Checklist:

[ ] Read our contributing guidelines.
[ ] Search for duplicates.
[ ] Include author(s) and platform where appropriate.
[ ] Put lists in alphabetical order, correct spacing.
[ ] Add needed indications (PDF, access notes, under construction).
[ ] Used an informative name for this pull request.

Follow-up

Check the status of GitHub Actions and resolve any reported warnings!

Currently, YouTube videos over 1 hour in length are being taken into consideration.
Wait for the collaborator's response.


provides an alternative send method for the sender to specify custom …

…destination path.
Chris, I add some code for the sender to specify a desired destination path. In RcSysMgr's case, we need the RcSysMgr to tell the clients where to put the update files. The RcSysMgr knows about that path which is specified in the device table, but the clients don't. If that path is specified by the sender, the receiver's default destination path will be overwritten. Otherwise, it's still the receiver's destination path takes effect.

Deleting this branch ... As Chris pointed out, the new field, destination dir, will introduce security issues in this type of public code.


[tensorflow/compiler/mlir/xla/ir/mlir_hlo_builder.cc] Add calls to reserve() before populating vectors

https://github.com/tensorflow/tensorflow/pull/51739#issuecomment-940389562 told me to split the larger PR into one PR per file; thus this (thanks bash, git and gh!)

@SamuelMarks Any update on this PR? Please. Thanks!

@gbaned I had this follow up question to @joker-eph https://github.com/tensorflow/tensorflow/pull/52473#discussion_r734204686
Also I'm not sold on the lack of reserves for high, min, and low…

@gbaned I had this follow up question to @joker-eph #52473 (comment)
Also I'm not sold on the lack of reserves for high, min, and low…

Sure: if you can collect statistics that shows SmallVector does not do the job I'll be happy to reconsider.

Closing now, please re-open if you gather some data to justify turning the one line into 6.

@joker-eph It seems like a hard piece of code to benchmark, I would need to know the various values of padding_config.dimensions().size() for different workloads in order to build a reasonable only-stl-and-llvm dependent test-case for this. So, unless I'm missing something, your call to benchmark was setting me up to fail

You don't need to run benchmarks, as in get performance numbers. I'm asking statistics in terms of "how many times does this code path triggers a grow of the vector".
Basically it could be done  by adding after the loop some code that looks like:
  {
    string temp_file;
     if (low.isSmall()) temp_file = tensorflow::io::GetTempFilename("low_nogrow.txt"));
     else temp_file = tensorflow::io::GetTempFilename("low_grow.txt"));
     TF_CHECK_OK(WriteStringToFile(tf::Env::Default(), temp_file, absl::StrCat("Low size is ", low.size()));
  }

Then run TensorFlow tests suite with --test_env=TEST_TMPDIR=$HOME/grow_results (you need to create the directory ahead of time)
Which should create a bunch of files in this directory which makes it for trivial statistics.


instant exclude from preview

would be really useful if it's possible??

might need to include an option to save work and come back to it if someone chooses to do a long manual filtering process in the app

user can do this in output


feat: upgrade to async-profiler 2

Fixes #62

I confirm that this contribution is made under the terms of the license found in the root directory of this repository's source tree and that I have the authority necessary to make this contribution on behalf of its copyright owner.

Can you share how you compiled the code? I used go build cli/main.go but ended up getting stuck with Launching profiler ... when using the tool.

Hi @BasselAshi I use go build too to compile the code but as said I have no idea how to test it so I didn't run it.

Hi @loicmathieu You can test this by using the --image flag.
Simply upload your custom image to some registry and then invoke your compiled cli with:
./kubectl-flame --lang java <pod-name> -t 10s --image <image-name>

Thanks @edeNFed I'll have a look next week

@loicmathieu Is there any progress so far?

@pvorb no, I didn't find the time to work on it yet.


Adding CPS functions

Hey @lingoer, this is really cool stuff, thanks for submitting the PR. I haven't been ignoring this, just trying to collect my thoughts. Let me stew on this a bit more and I'll get back to you.
In the meantime if you want to rebase this against master, there are some style fixes that should be picked up by hound.

I'm sorry I've been avoiding this. I still think this is pretty neat, I'm just torn on if it should be included in Runes. @thoughbot/ios any thoughts or opinions on this?

Due to a seeming lack of interest, I'm going to go ahead and close this. Thanks for the PR! It was a really interesting read.


Error in blackbox_edit

/bin/blackbox_edit: line 12: conditional binary operator expected

Fixed.  Please "git pull" and see if it works right for you.


Support for ARM32 platforms

Can you please provide support for ARM32 platform? Raspberry Pi is used by many users to run OpenVPN.

Hi @hmehra. Multi-platform has been added on the latest release. Have fun!

Awesome. Thanks @ruimarinho


Adding sample documentation?

Would it be possible to add sample documentation for some of the operations? Think simple examples that elucidate the operation. For example:
StreamEx.cross()
Example: StreamEx.of(1, 2).cross(4, 5) -> {1,4}, {1, 5}, {2, 4}, {2, 5}.
I feel like either the cheatsheet or the Javadoc should have this. It allows the user (at least myself) to grok/test the concept almost immediately. Happy to start submitting documentation!

Added. Feel free to suggest samples for other operations (much better in the form of pull requests!)


versions 2.3 and above crash the server

customdiscs version 2.3 and above crash the server. the plugin just spams the console. at the same time it works, but when you insert a plate, the server's TPS drops to a low value and crashes the server. SimpleVoice is working normaly
Paper 1.19.3

Use Paper 1.19.4?

Newest build of paper


Add benchmarks for kafka

Adds benchmarks for kafka using the kafka-producer-perf-test.sh script that comes with kafka.
The results of kafka_bench.rs is that shotover has the same throughput as a direct connection:
shotover-proxy〉cargo run --release --example kafka_bench
   Compiling test-helpers v0.1.0 (/home/rukai2/Projects/Crates/shotover/shotover-proxy/test-helpers)
   Compiling shotover-proxy v0.1.9 (/home/rukai2/Projects/Crates/shotover/shotover-proxy/shotover-proxy)
    Finished release [optimized] target(s) in 22.04s
     Running `target/release/examples/kafka_bench`
shotover   01:21:27.856420Z  INFO shotover_proxy::runner: Starting Shotover 0.1.9
shotover   01:21:27.856442Z  INFO shotover_proxy::runner: configuration=Config { main_log_level: "info,shotover_proxy=info", observability_interface: "<IP_ADDRESS>:9001" }
shotover   01:21:27.856449Z  INFO shotover_proxy::runner: topology=Topology { sources: {"kafka_source": Kafka(KafkaConfig { listen_addr: "<IP_ADDRESS>:9192", connection_limit: None, hard_connection_limit: None, tls: None, timeout: None })}, chain_config: {"main_chain": [KafkaSinkSingle(KafkaSinkSingleConfig { address: "<IP_ADDRESS>:9092", connect_timeout_ms: 3000, read_timeout: None })]}, source_to_chain_mapping: {"kafka_source": "main_chain"} }
shotover   01:21:27.856471Z  INFO shotover_proxy::config::topology: Loaded chains ["main_chain"]
shotover   01:21:27.856483Z  INFO shotover_proxy::sources::kafka: Starting Kafka source on [<IP_ADDRESS>:9192]
shotover   01:21:27.856509Z  INFO shotover_proxy::config::topology: Loaded sources [["kafka_source"]] and linked to chains
shotover   01:21:27.856527Z  INFO shotover_proxy::server: accepting inbound connections
Benching Shotover ...
[2023-03-16 12:21:28,611] WARN [Producer clientId=perf-producer-client] Error while fetching metadata with correlation id 1 : {foo=UNKNOWN_TOPIC_OR_PARTITION} (org.apache.kafka.clients.NetworkClient)
643164 records sent, 128632.8 records/sec (122.67 MB/sec), 105.4 ms avg latency, 587.0 ms max latency.
877718 records sent, 175543.6 records/sec (167.41 MB/sec), 0.6 ms avg latency, 11.0 ms max latency.
882304 records sent, 176460.8 records/sec (168.29 MB/sec), 0.4 ms avg latency, 5.0 ms max latency.
897520 records sent, 179504.0 records/sec (171.19 MB/sec), 0.4 ms avg latency, 3.0 ms max latency.
874635 records sent, 174927.0 records/sec (166.82 MB/sec), 0.4 ms avg latency, 3.0 ms max latency.
5000000 records sent,<PHONE_NUMBER>25 records/sec (160.56 MB/sec), 13.95 ms avg latency, 587.00 ms max latency, 0 ms 50th, 14 ms 95th, 402 ms 99th, 561 ms 99.9th.
shotover   01:21:58.470692Z  INFO shotover_proxy::runner: received SIGTERM
shotover   01:21:58.470766Z  INFO shotover_proxy::runner: Shotover was shutdown cleanly.

Benching Direct Kafka ...
[2023-03-16 12:22:04,936] WARN [Producer clientId=perf-producer-client] Error while fetching metadata with correlation id 1 : {foo=UNKNOWN_TOPIC_OR_PARTITION} (org.apache.kafka.clients.NetworkClient)
652616 records sent, 130523.2 records/sec (124.48 MB/sec), 96.1 ms avg latency, 538.0 ms max latency.
868250 records sent, 173650.0 records/sec (165.61 MB/sec), 0.4 ms avg latency, 7.0 ms max latency.
872695 records sent, 174539.0 records/sec (166.45 MB/sec), 0.4 ms avg latency, 4.0 ms max latency.
889070 records sent, 177814.0 records/sec (169.58 MB/sec), 0.5 ms avg latency, 7.0 ms max latency.
894402 records sent, 178880.4 records/sec (170.59 MB/sec), 0.5 ms avg latency, 3.0 ms max latency.
5000000 records sent,<PHONE_NUMBER>82 records/sec (161.13 MB/sec), 12.95 ms avg latency, 538.00 ms max latency, 0 ms 50th, 5 ms 95th, 381 ms 99th, 510 ms 99.9th.

However I do not really trust these results, I suspect the bencher is only single threaded and therefore isnt putting a proper load on shotover or kafka.
We can further investigate a better benchmarker but for now lets land these benches as they are a useful starting point.
The benchmarks also do not measure encoding/decoding time as a simple shotover setup does not trigger encoding/decoding.

I wonder if it's more worth our time starting with a mock kafka like we have for Cassandra.

Yep, I think a mock kafka would be nice, ultimately we still need a real kafka bench as well because it demonstrates performance in a more realistic scenario.


[backport] [FLINK-5638] [asyncIO] Fix deadlock when closing two chained AsyncWaitOperators

This PR is a backport of #3209 onto release-1.2.
This PR addresses the problem by changing the Emitter's behaviour to first output the
element before removing it from the StreamElementQueue. That way the close method waits
until also the Emitter has outputted the last completed element. Additionally, the
stopResources method now frees the checkpoint lock in order to let the emitter thread
react to the interrupt signal.

It's a bit hacky to release the lock in scope via wait() but seems to work.
One more reason to go for a post-box model...
+1

Agreed, the problem is a little bit that you don't control from where the close method is called... Thanks for the review @StephanEwen.
Merging once Travis has passed.

Merged


'./docker-compose.yml' is invalid because:

Trying to run it on Deb testing
The install doc here does not mention antyhing about crawlername
https://ambar.cloud/docs/installation/
compose file
https://paste.debian.net/hidden/2b8c96ef/
docker-compose pull
WARNING: The dataPath variable is not set. Defaulting to a blank string.
WARNING: The crawlerName variable is not set. Defaulting to a blank string.
WARNING: The pathToCrawl variable is not set. Defaulting to a blank string.
ERROR: The Compose file './docker-compose.yml' is invalid because:
Invalid service name '${crawlerName}' - only [a-zA-Z0-9._-] characters are allowed

Ok in the nest link something about it
But I still do not understand what I am supposed to do. Is this a custom name or some special name? What is a service block name?
thanks

@itnoreplymax thanks I will take a look at it. Thanks for the the doc.


How to Set Different HTTPS Certificates for Different Domain Names

How to Set Different HTTPS Certificates for Different Domain Names?

Please provide more information about what you are trying to do.

Here are the spring boot docs https://docs.spring.io/spring-boot/docs/2.1.3.RELEASE/reference/htmlsingle/#howto-configure-ssl

Here are the spring boot docs https://docs.spring.io/spring-boot/docs/2.1.3.RELEASE/reference/htmlsingle/#howto-configure-ssl

Sorry, You understand wrong, the issue is "Set Different HTTPS Certificates"


Watch task configuration

It seems the dotnet watch tool task should be updated. This one works (tried on current 3.0 preview):
{
            "label": "watch",
            "command": "dotnet",
            "type": "process",
            "args": [
                "watch",
                "-p",
                "${workspaceFolder}/BlazingPizza.Server/BlazingPizza.Server.csproj",
                "run",
            ],
            "problemMatcher": "$tsc"
        }

Let me know if that is OK to do PR,
Thanks!

Ups, ignore me. It seems files got generated by VSCode and are not a part of the source code.
Sorry!


actions-rs/toolchain 100% failure rate for all users

Do the checklist before filing an issue:

[x] Is this related to the actions-rs Actions?
If you think it's a problem related to Github Actions in general, use GitHub Community forum instead: https://github.community
[x] You've read the Contributing section about bugs reporting: https://github.com/actions-rs/.github/blob/master/CONTRIBUTING.md#reporting-bugs
[ ] Is this something you can debug and fix? Send a pull request! Bug fixes and documentation fixes are welcome.

Description
A clear and concise description of what the bug is.
See https://github.blog/changelog/2020-10-01-github-actions-deprecating-set-env-and-add-path-commands/
and https://github.com/actions-rs/toolchain/pull/114 for a PR that fixes the issue
Workflow code
Paste that part of your workflow yaml file that causes the bug in here.

Alternatively you can remove that code block and insert direct link to your workflow file.
Ensure that link points to the specific commit, and not just to the master branch.

Action output
/usr/bin/docker exec  d25f5c30aa8e784012badcab5bc6344c4bce5a4c72f595ca756380dfab46bd95 sh -c "cat /etc/*release | grep ^ID"
/__w/_temp/42a68bee-6546-42ed-9628-d75de2498306 --default-toolchain none -y
info: downloading installer
error: $HOME differs from euid-obtained home directory: you may be using sudo
error: $HOME directory: /github/home
error: euid-obtained home directory: /root
info: profile set to 'default'
info: default host triple is x86_64-unknown-linux-gnu
info: skipping toolchain installation

Rust is installed now. Great!

To get started you need Cargo's bin directory ($HOME/.cargo/bin) in your PATH
environment variable. Next time you log in this will be done
automatically.

To configure your current shell run source $HOME/.cargo/env
Error: Unable to process command '::add-path::/github/home/.cargo/bin' successfully.
Error: The `add-path` command is disabled. Please upgrade to using Environment Files or opt into unsecure command execution by setting the `ACTIONS_ALLOW_UNSECURE_COMMANDS` environment variable to `true`. For more information see: https://github.blog/changelog/2020-10-01-github-actions-deprecating-set-env-and-add-path-commands/

Expected behavior
The $PATH to be properly set
Additional context
This will causes a lot of breakages out there I guess :P

There's more to resolving this than just bumping the dep.
Here's the workaround I'm going to use for the moment:
diff --git a/.github/workflows/gen_centos7.yml b/.github/workflows/gen_centos7.yml
index 94fefcb6..8419966d 100644
--- a/.github/workflows/gen_centos7.yml
+++ b/.github/workflows/gen_centos7.yml
@@ -53,12 +53,14 @@ jobs:
       shell: bash
       run: "git fetch --prune --unshallow"
     - name: "Install Rust"
-      uses: actions-rs/toolchain@v1
+      uses<EMAIL_ADDRESS>       with:
          profile: "minimal"
          toolchain: "stable"
          override: true
          components: "rustfmt"
+      env:
+         ACTIONS_ALLOW_UNSECURE_COMMANDS: "true"
     - name: "Cache cargo"
       uses: actions/cache@v2
       with:

I think the full and righteous fix is to update the dep and to adjust the action to use the environment file mentioned on the linked documentation.

I would advocate for renaming this issue: `actions-rs/toolchain 100% failure rate for all users" so that it doesn't get lost in the dependabot noise.

I would advocate for renaming this issue: actions-rs/toolchain 100% failure rate for all users so that it doesn't get lost in the dependabot noise.

Thanks. I have been looking at the source code on where the add-path is used without any luck.

This issue is happening because of rustup. The fix was merged at Oct 16 https://github.com/rust-lang/rustup/pull/2513

Thank you for notification, @bilelmoussaoui! Fix was added and released as a new @v1 version; I apologize for not handling this deprecation issue earlier.
Can anyone in this thread additionally confirm that it works for them now?

@svartalf thanks a lot for the quick fix, can confirm it works fine now :+1:


Window to define which programs to use

Hi Eric!
I'll like to have a window to define which programs to use Putty/KiTTY, WinScp/Filezilla, etc., and save this values on configuration file
What do you think? Can I try it?

could you describe it more detail ?  In my thought,  I regard the programs are now fixed by Java hardcoded.  If we want to give end user alternative program(exe) to use,  then what's the scenario and which program we should provide to user to let him config

Sorry Eric, I explained in a very bad way.
I want suggest to you to continue using your included programs (Putty and WinScp), but allow end user to use KiTTY or Filezilla in place of them (using my new class "Program"). This "replaceable" programs use same parameters and this doesn't do problems.
In a first stage this isn't intended for replace "Calculator", "VNC" or his neighboors on left bar, only for similiar programs, like Putty/KiTTY, WinScp/Filezilla.

give alternative for end user with Putty -> Kitty , WinScp -> Filezilla ... Sounds good idea, if the parameters are very similiar...  I think you can have a try ...  I am concerning KiTTY, we are trying to invoke windows handle from swt os interface, Please go head to see whether KiTTY is workable for SmartPutty, at the same time, does KiTTY will have the portable version so that we can store exe inside our release package like putty.exe ?

Thanks so much much Eric!
I'll try to give an alternative. An yes: KiTTY is 100% portable like Putty.

Hello Eric!
Several days without news from me, sorry  :-p
I've a running version with a window to define putty/kitty and plink/klink. I'll try to upload via GIT.

Version uploaded!
Please, check-out and let me known your opinion.

I was wrong thinking about FileZilla supports "SCP", and not, it doesn't support.
Can I add support to define "Notepad" and "Screen Capture" programs? (they are simple programs without needed arguments)

Hi, Will WinScp/Filezilla, etc still planned to be defined in customized window ?

I think we can close this issue due window was implemented.


[PACKS] #2 Add reporting units to items

Summary
Add custom request units at  item level  (assumes [PACKS] #0 is complete and merged, which will give us all the appropriate fields on the database and some examples in the seed)
Why
This is step #2 of adding the ability to specify "packs" versus "individual" for requests
Details
Add  custom request units used to the item on edit, show, and list.
a) On  item new/edit (Inventory|Items&Inventory|New Item or Edit the specific item)
Iff the bank is using customized request units:
Add a "additional custom request units  (e.g. packs)" field
Multi-Select additional request units, if any (from the list specified at org level)
Screenshot hint for placement

b)  Item show
The item show does not currently show every field in the item, only a subset plus the levels for each storage location.   We're splitting that into a separate issue (PACKS 12), as it is not crucial for release and requires a slight redesign.
c) Item list
Iff the organization is using customized request units, add a column to the list that shows the customized request units used on each item
Screenshot hit for placement

N.B.
All of the UI changes for PACKS  must  be implemented behind a flipper flag "enable_packs"
Criteria for completion

[ ] functionality as described above
[ ] tests that support the functionality as described above

Background
The following sections have been identified as required for the PACKS implementation.  The necessary fields and seed elements are implemented in [PACKS]#0

tagging @sean-dickinson to get Github to let me assign him 🤞

me + @ibulmer

Re-opening until we do manual QA leading up to this (so waiting for packs-1)

Closing -- will do end-to-end QA in #4501
Thank you!


JsonDeserializer constructor with TypeReference argument

Couldn't find any way to construct JsonDeserializer with TypeReference argument.
The only way is Class <T> targetType but ObjectMapper instance (default) which is initialized inside deserializer has readerFor(TypeReference<?> type) for a long time already.
Building custom ObjectMapper feels like workaround in such case.
Is there any specific reason why JsonDeserializer does not provide such constructor?

I don't see how a custom ObjectMapper can be as a workaround, but this is a good request for the improvement.
We definitely can add a bunch of new constructors to apply TypeReference.
I see another way via headers:
ObjectReader deserReader = null;
if (this.typeMapper.getTypePrecedence().equals(TypePrecedence.TYPE_ID)) {
	JavaType javaType = this.typeMapper.toJavaType(headers);
	if (javaType != null) {
		deserReader = this.objectMapper.readerFor(javaType);
	}
}

But if there is no type info in the headers, there is no way to interact with the TypeReference...
Please, share your experience on the matter meanwhile we are introducing those new constructors.
Thanks

I don't see how a custom ObjectMapper can be as a workaround, but this is a good request for the improvement.

Yes you are right, there is no way to pass ObjectMapper directly via ctors.
The idea (theoretically) was to pass custom ObjectMapper with custom ObjectReader into JsonDeser to be used at this stage:
if (this.reader == null) {
   this.reader = this.objectMapper.readerFor(this.targetType);
}

But eventually I haven't tried this approach so I didn't pay attention to protected access modifier at:
protected JsonDeserializer(ObjectMapper objectMapper)

Thanks for provided example

I see anothekr way via headers:
ObjectReader deserReader = null;
if (this.typeMapper.getTypePrecedence().equals(TypePrecedence.TYPE_ID)) {
	JavaType javaType = this.typeMapper.toJavaType(headers);
	if (javaType != null) {
		deserReader = this.objectMapper.readerFor(javaType);
	}
}

But if there is no type info in the headers, there is no way to interact with the TypeReference...

but it is not an option in my case because headers are omitted on the send.
I was trying to implement generic consumer (not aware of multiple consumed topics types).
The simplest solution I came about was to init targetType to Object  class with ConsumerRecord type in @KafkaListener method.
But when new ctors will be available, I would switch to TypeReference approach. It seems more elegant to me.
Thanks.

I think all good now. We are going to release 2.3 M1  this week or early next week.


Release responsible schedule for v1.103 until v1.115

How to categorize this PR?

/area delivery
/kind enhancement
What this PR does / why we need it:
Extends the docs with a proposal for the release responsible schedule for v1.103 until v1.115
/assign @plkokanov @oliver-goetz @ialidzhikov @acumino @timuthy @LucaBernstein @ScheererJ @ary1992 @shafeeqes @tobschli
Release note:

NONE

/lgtm

/lgtm

/lgtm
/unassign

/lgtm
/unassign

/lgtm
/unassign

/lgtm
/unassign

/unassign

/approve


Update test docker scripts to support sonar reporting

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/6840/
Test FAILed.

Jenkins, test this please

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/6843/
Test PASSed.

alluxio-bot, merge this please


Sloppy use of names

The documentation contains this sentence: "Once you've saved the client secret, the value of the client secret is displayed. Copy this value because you won't be able to retrieve the key later. You'll provide the key value with the application ID to sign in as the application. "
The value is the Client Secret, which the documentation starts out referring to, but then mid-sentence the author switches to calling it a "key".  But the term "key" is commonly used in computer science to refer to a reference to a value, and a Client Secret has an ID and a Value.  So the reader is now unsure if key means the secret, or the Secret's ID.  But because the author was using the term "client secret" but then started referring to "key", it conveys to the reader that "key" is something other than "client secret", so it must be referring to the "Secret ID".
To make it worse, in the next sentence, the author references "key value", which now reinforces the idea that the use of "key" in the first sentence means "Secret Id", so that Key Value would be the actual secret.  But of course the sign-in needs the secret and not the Secret ID, so Key Value must mean the Secret, but in the first sentence, despite the ambiguity, we know that "key" means "secret" because from experience, we know that it is the secret that is available to be copied, and not the ID, but new developers don't already no this.
Maybe the author should stick to using the correct names, and not introduce nicknames or make up their own names for things that already have names.  The author needlessly introduces ambiguity and confusion.  Perhaps the editors should be watching for and preventing this, so that Microsoft products can be better than their competitors, in order that the developers have a better experience, are more productive, and increase adoption of Microsoft products.

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

ID: 11aaa091-1108-52f6-0066-0f4e939aeef4
Version Independent ID: dbc7e37e-87a7-c124-3e4c-47aa060e6cf3
Content: Create a Microsoft Entra app and service principal in the portal - Microsoft Entra
Content Source: articles/active-directory/develop/howto-create-service-principal-portal.md
Service: active-directory
Sub-service: develop
GitHub Login: @cilwerner
Microsoft Alias: cwerner

@mikerains
Thanks for your feedback! We will investigate and update as appropriate.

Hi @mikerains, I've recently been re-assigned this article, so thanks for pointing this out. I've made this a bit clearer now,


fix: respect bundlerUrl in waitForUserReceipt

Problem solved
Short description of the bug fixed or feature added

PR-Codex overview
This PR focuses on updating the waitForUserReceipt function to respect the bundlerUrl by using bundlerOptions instead of generic options.
Detailed summary

Updated the waitForUserOpReceipt function call in packages/thirdweb/src/wallets/smart/index.ts.
Replaced ...options with ...bundlerOptions to ensure bundlerUrl is respected.

✨ Ask PR-Codex anything about this PR by commenting with /codex {your question}

#5277  👈
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @joaquim-verges and the rest of your teammates on  Graphite


An option to use local tar.gz of node or from custom domain

Description:
Thanks a lot for your great work. About the problem:
I had couple of times situation where public dist wasn't available and setup-node action had timeouts.

Justification:
In case of hotfixes we don't have much time, so my concern was to use local path as a path to the dist (tar.gz) or external URL (placed on my server) to download it.
Is there an any option to achieve smth like that even now?
I tried placing some dists under tool cache dirs, but doesn't work.
Thanks in advance,
turkus

Thank you for your response. Well it isn't about self-hosted runners. It's more like add an option in this setup-node library to give an option to use node dist from other source than node public dists, cause as you can see in other issues here in setup-node issues, that public node server gets timeouts and it occurs now often.
I suppose allowing to declare an option to provide local path to the node tar.gz would be fairly enough and not only for me - according to other similar issues.
Or URL to fetch.

Hello again, @turkus ! I apologize for the late response. I understand what you mean now, I will discuss that option with the team and see what we can do about it :)
Thank you very much for your suggestion and cooperation!

@dusan-trickovic Any updates on this? We're also affected by this issue. The node CDN is not very reliable recently.


Wrong Data Parsed

MDB Sample File: https://drive.google.com/file/d/1G51j83Hj2CH92TAAnHHZyI8_rmzG9wn5/view
I am trying to read the data from Batch table but the values end up with something random "Qty": "109951162.7777" whereas it has to be 40. The Batch table has only 4 rows.

Hey @hariaakash ,
I found the underlying issue, but couldn't fix it just yet.
Could you send me a minimal sample database where this error happens? That would simplify debugging. The one you provided is 60mb big and hard to read. One table with one column and one row would be fine. I'd also add that database to the test suite once I solved the bug.


Krane 1.0 release

Problem
We're transitioning from kubernetes-deploy to krane. We need to update the gemspec, version to 1.0, and deploy to ruby gems under krane. This PR should be completed immediately after #527.
Possible solution
Update the gemspec, shipit.yml, and Version file.
Acceptance criteria

[ ]gem 'krane', '~> 1.0.0' works.
[ ] Ensure that all 1.0 tasks are complete or intentionally deferred.
[ ] Ensure we have documented what our public interfaces are (and possibly what they are not)
[ ] Audit our public interfaces to ensure that arguments to each public function are sensible and consistent (same names for same thing, required vs. optional, on initialize vs on run).
[ ] Datadog dashboards are updated for krane, instead of kubernetes-deploy
[ ] Migration guide is linked near the top of the readme.

Additional context
https://github.com/Shopify/kubernetes-deploy/issues/256#issuecomment-475580770

As we transition to Krane 1.0. We'll create 1 or more kubernetes-deploy v1.0.0-pre.X releases. The final pre-release version will be a transition version that maintains backwards compatibility with kubernetes-deploy as well as have all of the Krane commands.
Krane 1.0.0 will not include any kubernetes-deploy modules or commands. We'll be publishing a transition guide.

Krane 1.0.0 has been released.


Error: 'router' and 'Component' can not be returned in getInitialProps from _app.js

I see in the example, you pass router.route as key prop to Component. When I try to do it like this:
export default class MyApp extends App {
  static async getInitialProps({ Component, router, ctx }) {
    let pageProps = {}

    if (Component.getInitialProps) {
      pageProps = await Component.getInitialProps(ctx)
    }

    return { pageProps, router }
  }

  render () {
    const { Component, pageProps, router } = this.props
    return (
      <ThemeProvider theme={theme}>
        <GlobalStyles />
        <PageTransition timeout={600} classNames="page-transition">
          <Component key={router.route} {...pageProps} />
        </PageTransition>
        <style jsx global>{`
          .page-transition-enter {
            opacity: 0;
          }
          .page-transition-enter-active {
            opacity: 1;
            transition: opacity 300ms;
          }
          .page-transition-exit {
            opacity: 1;
          }
          .page-transition-exit-active {
            opacity: 0;
            transition: opacity 300ms;
          }
        `}</style>
      </ThemeProvider>
    )
  }
};

Next.js shows an error page telling I can't do this: https://github.com/zeit/next.js/blob/master/errors/cant-override-next-props.md
So, how do I pass router.route to Component then? Example in README is not working for me.

You can simply not include router in the return value of getInitialProps. I've updated the README to reflect this!


Discrepancy in AI 02

Per Figure 4.13.2-1 of the GenSpecs, this should be req=00 req=37.
https://github.com/gs1/gs1-syntax-dictionary/blob/ca3344bd3bfb00de8672a8adc450186da07fe2e9/gs1-syntax-dictionary.txt#L123

(02) requires (37) which in turn requires (00), therefore the restriction is met.
Such behaviour is used elsewhere to minimise the ruleset.


Incorrect redirectUri parameter is displayed at the Azure portal website.

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

[x]<EMAIL_ADDRESS>or<EMAIL_ADDRESS>[ ]<EMAIL_ADDRESS>[ ]<EMAIL_ADDRESS>[ ]<EMAIL_ADDRESS>[ ]<EMAIL_ADDRESS>
Documentation location

[ ] docs.microsoft.com
[ ] MSAL.js Github Wiki
[ ] README file
[x] Other (please fill in)
[ ] Documentation does not exist

Description
The quick start guide at portal.azure.com repeatedly shows the following configuration:
var msalConfig = {
    auth: {
        clientId: "xxxxxxxx",
        authority: "https://login.microsoftonline.com/organizations",
        redirectURI: "http://localhost:30662/"
    },
    cache: {
        cacheLocation: "localStorage",
        storeAuthStateInCookie: true
    }
};

But I kept getting "The reply URL specified in the request does not match the reply URLs configured for the application" errors with my SPA.  After a lot of time troubleshooting I came across issue  #724 and in one response by @DarylThayil he mentioned setting the "redirectUri" (camel-case) value.  It took a little while to realize I'd copied "redirectURI" from the example.  I've changed it and all is well.
Given the temptation to just copy and paste this handy premade configuration it might save others a great deal of frustration to have that looked at.

@thelowman Great catch, we'll make sure that gets fixed, thanks!

A fix is in progress for this, we'll update this ticket when it is done.

Looks like this was fixed. Let us know if its still incorrect.


[tls] Fix incorrect use of certificate verification callbacks

As documented in [0], there are two certificate verification callbacks in the OpenSSL/BoringSSL TLS API. The one taken as a parameter to SSL_CTX_set_verify is the "verify callback". It is called multiple times during a single certificate verification is used to suppress errors and otherwise be notified about various events during verification.
Such a callback is not appropriate for accepting all certificates (you waste time processing things that will be thrown away), nor for post-verification inspection of the result (it will run multiple times). This is, however, what gRPC does with it.
Rather, gRPC should have used SSL_CTX_set_cert_verify_callback, which swaps out the verification process entirely. That is called exactly once per handshake and allows you to skip the verification, or verify and then inspect the results afterwards. Fix gRPC to heed the documentation.
In addition, this PR fixes a lifetime bug in gRPC's handling of the root certificate. RootCertExtractCallback stashes the root certificate without retaining it anywhere, but the X509_STORE_CTX will shortly be destroyed. There is no immediate guarantee the X509 object lasts as long as the SSL object. It most likely does because the object is often cached in the X509_STORE, which lives on the SSL_CTX, but this is at best, non-obvious. Instead, gRPC should have made
g_ssl_ex_verified_root_cert_index own a refcount to the X509 object by registering a free function and calling X509_up_ref when saving the value.
[0] https://commondatastorage.googleapis.com/chromium-boringssl-docs/ssl.h.html#SSL_CTX_set_verify

Thanks for putting this together
I have two questions:

Regarding which verification callback is set

Rather, gRPC should have used SSL_CTX_set_cert_verify_callback, which swaps out the verification process entirely.

I need to spend some more time with the code on this, but my immediate worry is that we are inherently depending on base verification behaviors in BoringSSL, then these callbacks are designed to be additional rather than replacement. And if we were to now replace that behavior, would we be breaking a significant assumption?

On RootCertExtractCallback

RootCertExtractCallback stashes the root certificate without retaining it anywhere, but the X509_STORE_CTX will shortly be destroyed. There is no immediate guarantee the X509 object lasts as long as the SSL object. It most likely does because the object is often cached in the X509_STORE, which lives on the SSL_CTX, but this is at best, non-obvious.

From looking at the API I thought this would be guaranteed, but I defer to you. I made the assumption because we get the SSL object from the X509_STORE_CTX with Open/BoringSSL APIs, not our own storing and caching
https://www.openssl.org/docs/man3.0/man3/SSL_get_ex_data_X509_STORE_CTX_idx.html
This ends up being used in the following chain

Get the stored value if it exists https://github.com/grpc/grpc/blob/853e8c62f0162ab10c77477554b839bc7bb8a22a/src/core/tsi/ssl_transport_security.cc#L1290-L1291
Parse subject name from the X509 cert, eventually copy it into a string buffer** https://github.com/grpc/grpc/blob/853e8c62f0162ab10c77477554b839bc7bb8a22a/src/core/tsi/ssl_transport_security.cc#L325-L354

So long as the lifetimes are ok here, this specific piece should be ok?
** - From on our other discussion this likely needs to be adjusted to use a stable string API as well because at one point it uses X509_name_print_ex

I need to spend some more time with the code on this, but my immediate worry is that we are inherently depending on base verification behaviors in BoringSSL, then these callbacks are designed to be additional rather than replacement. And if we were to now replace that behavior, would we be breaking a significant assumption?

I'm not following. The callback you are currently using is the one that will break as BoringSSL evolves, because it exposes a bunch of implementation details about the order in which we do checks, and the granularity at which they're reported. The one this PR switches you to is the well-defined one, called exactly once per verification.
Can you elaborate on this? For context, I'm one of the maintainers of BoringSSL. You all are decidedly doing the wrong thing right now.

From looking at the API I thought this would be guaranteed, but I defer to you. I made the assumption because we get the SSL object from the X509_STORE_CTX with Open/BoringSSL APIs, not our own storing and caching

The SSL object outlives the X509_STORE_CTX, not the other way around. That is the problem. Your callback is passed an X509_STORE_CTX. You use that to get your SSL. That is all fine but also irrelevant to the issue here.
For the duration of the callback, anything you get off the X509_STORE_CTX is, of course, alive. However that's only true for the duration of the callback. After verification is done, the X509_STORE_CTX is destroyed. (X509_STORE_CTX != X509_STORE.)
You all are saving an X509 that you get from X509_STORE_CTX, onto the SSL. There is no guarantee that the lifetimes match up. Now, as it happens, the root X509 will come out of the X509_STORE, which persistently caches things it looks up in memory, and the X509_STORE does live as long as the SSL. So it's probably fine. However this is subtle enough, and lifetime bugs serious enough, that you all should be bumping the refcount. It also has nothing to do with SSL_get_ex_data_X509_STORE_CTX_idx.

From on our other discussion this likely needs to be adjusted to use a stable string API as well because at one point it uses X509_name_print_ex

The RFC 2253 output is at least a well-defined format. So, depending on what you're trying to do, it can potentially be okay. Your CRL bits were using something truly ad-hoc. (Though no text format would work for what you were doing with CRLs.)

I'm not following. The callback you are currently using is the one that will break as BoringSSL evolves, because it exposes a bunch of implementation details about the order in which we do checks, and the granularity at which they're reported. The one this PR switches you to is the well-defined one, called exactly once per verification.

Can you elaborate on this? For context, I'm one of the maintainers of BoringSSL. You all are decidedly doing the wrong thing right now.

Like I said, I defer to you on this because you certainly know BoringSSL better than me. However, I do want to understand the changes to this codebase we're making.
Based on my current understanding of the functions, this would represent a significant behavior change - making these callbacks replace the existing verification vs. currently being additional checks after the built-in verification? I'm basing this off the documentation here under WARNINGS - "Do not mix the verification callback described in this function with the verify_callback function called during the verification process. The latter is set using the SSL_CTX_set_verify(3) family of functions. Providing a complete verification procedure including certificate purpose settings etc is a complex task. The built-in procedure is quite powerful and in most cases it should be sufficient to modify its behaviour using the verify_callback function."
And in RootCertExtractCallback you added a line to do verification (X509_verify_cert), and the doc for that reads "Applications rarely call this function directly but it is used by OpenSSL internally for certificate validation, in both the S/MIME and SSL/TLS code."
So based on my current understanding, this PR would be moving to the full replacement and calling a function that is meant to be used internally? But I don't think we want a full replacement, we still want the built-in procedure that "is quite powerful and in most cases it should be sufficient to modify its behaviour using the verify_callback function."
In short, I'm having trouble reconciling you're suggestion with the documentation suggesting that using the verify_callback with SSL_CTX_set_verify being generally sufficient since fully replacing with SSL_CTX_set_cert_verify_callback is complex? By replacing it then calling X509_verify_cert are we exactly still using the internal procedure, but not having the callback called many times?

The SSL object outlives the X509_STORE_CTX, not the other way around. That is the problem.......

Thanks for the detailed explanation

Ah. Yeah, we and OpenSSL do not always have the same views on which of their APIs are problematic. :smile:  While we try to be mostly compatible, we expect projects like gRPC to reference BoringSSL's documentation and not just OpenSSL's. (The SSL-level APIs have been document for a while now. I expect to be done with the X509-level APIs this year.)
But really this is just a question of understanding what the two callbacks are doing. The documentation is consistent, but it sounds like you are reading too much into "rarely" and "in most cases".
I'll try to elaborate a bit. If you imagine this were a C++ class with virtual methods, there's two hooks here:
  // Verifies the certificate using the parameters in `ctx`, and saves the result into
  // `ctx`. The default implementation uses the built-in verifier. Overwriting this is
  // `SSL_CTX_set_cert_verify_callback`.
  virtual bool VerifyCertificate(X509_STORE_CTX *ctx);

  // Called multiple times, and at points in the process of the built-in verifier.
  // Inspect `ctx` to see the state of things. The return value may be used to
  // suppress or introduce errors. This is the verify callback.
  virtual bool OnVerifyEvent(bool ok, X509_STORE_CTX *ctx);

Now, given those two hooks, hopefully some things are clear:

OnVerifyEvent gets called many, many times. It is not a good place to run post-verification checks, to tweak configuration pre-verification, or to skip certificate verification altogether
Certificate verification is complex. The order and granularity of OnVerifyEvent cannot possibly be reliable across fixes and improvements to the library.
If you override out VerifyCertificate, that reimplementation needs to provide a full certificate verification function...
...but if the base class's implementation is available (and it is), you can always just call that.

Something that may not be clear at a glance, but becomes abundantly clear once you've actually worked on a certificate verifier, is that making every arbitrary error in certificate verification suppressible is unbelievely fragile and unpredictable. E.g. if I suppress X509_V_ERR_UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY, what happens to the signature check? Does that implicitly suppress that too? What some operations that implicitly check other things (e.g. inability to parse our supported extensions in the process of looking up candidate issuers)? If I suppress an error there, does that break later code which relies on some states being unreachable? It's really just a terrible customization point.
Now, what are gRPC's use cases here:

Accept all certs (i.e. don't verify anything!)
Run cert verification but save the root cert afterwards

OnVerifyEvent doesn't make sense for either of those. For the first use case, you simply want
bool VerifyCertificate(X509_STORE_CTX *ctx) { return true; }

For the second, you want:
bool VerifyCertificate(X509_STORE_CTX *ctx) {
  if (!BaseClass::VerifyCertificate(ctx)) {
    return false;
  }
  SaveRootCertificate(ctx);
  return true;
}

If you need to tweak the config, you might also imagine doing this. (Note there is no way to do this with OnVerifyEvent at all.)
bool VerifyCertificate(X509_STORE_CTX *ctx) {
  AddSomeGrpcSpecificConfigLikeCRLs(ctx);
  return BaseClass::VerifyCertificate(ctx);
}

That is what this PR is doing. Now for the particular snippets of OpenSSL documentation that you cited...

Do not mix the verification callback described in this function with the verify_callback function called during the verification process. The latter is set using the SSL_CTX_set_verify(3) family of functions.

This is saying you shouldn't confuse the two. Indeed they are different callbacks and you should not mix them up.

Providing a complete verification procedure including certificate purpose settings etc is a complex task. The built-in procedure is quite powerful and in most cases it should be sufficient to modify its behaviour using the verify_callback function.

Honestly, this warning is badly written. Yes, providing a complete verification procedure is complex. But also OpenSSL provides you the inputs to the built-in validator and you can call the "base class" implementation by simply calling X509_verify_cert. (The only thing this callback does under the hood is swap out the X509_verify_cert call. If you implement the callback with X509_verify_cert, it is a no-op.)
Beyond that, the verify callback is pretty finicky, so I don't think using it a good idea. But, sure, if your customization looks like error suppression, you could use that.

Applications rarely call this function directly but it is used by OpenSSL internally for certificate validation, in both the S/MIME and SSL/TLS code.

This is also not very well-written. This is saying that, if you use the S/MIME and TLS APIs, they will run certificate validation for you as part of S/MIME or TLS. But if you are in a position where you need to run certificate validation itself, X509_verify_cert is the API.

Ah fun. Will fix that up tomorrow. (I'd forgotten X509_up_ref is that recent. Guess everyone was manually reaching into the refcount in the 1.0.x days.)
BTW, another fun thing about the verify callback: you might think that the calls with ok = 1 happen at the end, after we've decided that the certificate is okay. But, nope! They're actually sandwiched in the middle of verification, immediately after the signature check for each cert, but before other checks like name constraints or policy validation. So you might be called with ok = 1 and then learn later that actually verification failed. Truly bizarre API. :-)
(I think it used to be sort of at the end, but then they moved some checks afterwards because they're pretty expensive so you want them done after the signature check.)

The CI output seems to be ACLed, so I can't see the error messages. I've pushed a speculative fix. If there are still issues, can you post the errors here?


feat: add earn screen. add earn deeplinks

📝 Description
Adds Earn dashboard screen and navigator.  Adds deeplinks specific for earn dashboard to open staking:
/**
* ie: "ledgerlive://earn" will open earn dashboard page
*
* @params ?action: string
* ie: "ledgerlive://earn?action=stake" will open staking flow
*
* * @params ?action: string
* * @params &accountId: string
* ie: "ledgerlive://earn?action=stake-account&accountId=XXXX" will open staking flow with specific account
*
*  * * @params ?action: string
* ie: "ledgerlive://earn?action=get-funds" will open buy drawer
*
* * @params ?action: string
* * @params ?currencyId: string
* ie: "ledgerlive://earn?action=get-funds&currencyId=ethereum" will open buy drawer with currency
*
*/

❓ Context

Impacted projects: LLM
Linked resource(s): LIVE-7453

✅ Checklist

[ ] Test coverage
[X] Atomic delivery
[X] No breaking changes

📸 Demo

Can test deeplinks on iOS by using the command: xcrun simctl openurl booted ledgerlive://earn?action=stake
🚀 Expectations to reach
Please make sure you follow these Important Steps.
Pull Requests must pass the CI and be internally validated in order to be merged.

Checking a little what we have in LLD I think we need to implement the logic to support "alwaysShowNoFunds" too, not sure if this is part of another ticket.


child class splunk::forwarder::password::seed has a typo in the fact

Affected Puppet, Ruby, OS and module versions/distributions

Puppet: 6.7.1-1
Ruby: <IP_ADDRESS>4-4
Distribution: centos 6
Module version: 8.0.1-rc0

How to reproduce (e.g Puppet code you use)
set the following in hiera
splunk::forwarder::manage_password: false
splunk::forwarder::seed_password: true
What are you seeing
puppet deletes /opt/splunkforwarder/etc/passwd
puppet creates /opt/splunkforwarder/etc/system/local/user-seed.conf
It happens every run, hence it restarts splunk
What behaviour did you expect instead
To do the actions above only the first time, after do nothing.
Output log
Any additional information you'd like to impart
Possible to fix with this PR: https://github.com/voxpupuli/puppet-splunk/pull/288

Since #288 was merged I'm closing this.


Did azcopy support on Openwrt(Linux)?

Which version of the AzCopy was used?
I followed the Azcopy on linux instruction, I think the version is v7.2.
Note: The version is visible when running AzCopy without any argument
Which platform are you using? (ex: Windows, Mac, Linux)
Openwrt(Linux) chaos_calmer/15.05.1
What command did you run?
./Azcopy --help
Note: Please remove the SAS to avoid exposing your credentials. If you cannot remember the exact command, please retrieve it from the beginning of the log file.
What problem was encountered?
(It seems not working)
root@DPD3N:/tmp/azcopy# ./azcopy --help
./azcopy: line 2: syntax error: bad function name
How can we reproduce the problem in the simplest way?
1.Install a openwrt on VM. (https://oldwiki.archive.openwrt.org/doc/howto/virtualbox)
2.And try to install the azcopy or extract the tar file.
3.Execute ./azcopy --help.
Have you found a mitigation/solution?
no...
If the openwrt not support upload file to azure blob, I'm consider set up a FTP server on Azure vm(Openwrt can support FTP).

Are you running OpenWRT on a 32 bit machine ? AzCopy is currently only supported on 64 bit.

Closing for now due to lack of response.


Add examples to godoc

PS: CI is renamed from workflow to pipeline on develop. Merging origin/develop to your branch should fix the required pipeline test to pass.


Create NAGL docs

This PR adds documentation. I'm posting this early so I can make sure it builds on RTD as I go.
Changes made in this Pull Request:

[ ] Set up automatic API documentation
[ ] Write docs

PR Checklist

[ ] Tests?
[ ] Docs?
[ ] CHANGELOG updated?
[ ] Issue raised/referenced?

Superseded by #21


[Autocomplete] hide browser default search input cancel button

[x] I have followed (at least) the PR section of the contributing guide.

Problem
In the docs site, the Autocomplete "search input" demo explicitly sets disableClearable. Without this, any consumer using an input with type="search" will see both the MUI "clear icon" - and the browser default cancel button:

Demo: https://codesandbox.io/s/freesolo-search-input-dual-clear-button-test-case-material-ui-8jjnr0?file=/demo.tsx:435-463
Proposed Solution
Set the style for the ::-webkit-search-cancel-button pseudo-element to WebkitAppearance: none when ownerState.hasClearIcon is true within the styled AutocompleteRoot component.

I couldn't think of a good way to unit test this since JSDOM doesn't support querySelector's second argument, but if there's another way you'd like this to be tested - I'm all ears.

@mnajdova

I am closing as per https://github.com/mui/material-ui/pull/33406#issuecomment-1196764835


OpenCV package config file doesn't search for linked dependencies

The OpenCV example is still failing on Linux:
[100%] Completed 'OpenCV-debug'
[100%] Built target OpenCV-debug
-- [hunter] Build step successful (dir: /home/ubuntu/workspace/hunter/PROJECT/OpenCV/TOOLCHAIN/default/_testing/Hunter/_Base/3d795fe/015448b/d580c2e/Build/OpenCV)
-- Configuring done
CMake Error at CMakeLists.txt:16 (add_executable):
  Target "foo" links to target "TIFF::libtiff" but the target was not found.
  Perhaps a find_package() call is missing for an IMPORTED target, or an
  ALIAS target is missing?

It looks like the OpenCV config file exports the dependency on libtiff (as it should) but doesn't call find_package(TIFF ...) to resolve that dependency.  I havn't verified this but, from experience, that's what the error usually indicates.

Is the OpenCV package config file custom to Hunter's version of OpenCV or part of the upstream project?

I havn't verified this but, from experience, that's what the error usually indicates

As far as I understand there must be a command find_package(TIFF CONFIG) in OpenCVConfig.cmake file. So when you load find_package(OpenCV) then find_package(TIFF CONFIG) loaded automatically. I think usually TIFF built from source in OpenCV so it's not a problem. Right way is to patch OpenCV of course, but it's not trivial I think, since there is a control option WITH_TIFF. I will try to ask a question in CMake list may be I'm missing something. Currently you can use workaround:
find_package(TIFF CONFIG)
find_package(OpenCV)

See documentation

Is the OpenCV package config file custom to Hunter's version of OpenCV or part of the upstream project

upstream, I haven't change it

I will try to ask a question in CMake list

http://public.kitware.com/pipermail/cmake-developers/2015-April/025034.html

is good but messy solution
is a quick workaround

Fixed: https://github.com/hunter-packages/opencv/commit/56379cc6a702bd9d6dd8a2d8ef8fd1cba692027b
Hunter version: https://github.com/ruslo/hunter/releases/tag/v0.10.5


NSURL OK - .pin_setImageFromURL(url) == nil

I didn't touch this part of code and it's was working well since the past few days.
Today this snippet doesn't respond the way I want :
if let coverString  = myBookFromJSON?.data["cover"] as! String! {
            if let url = NSURL(string: coverString) {
                print(url)
                let imgView = UIImageView()
                imgView.pin_setImageFromURL(url)
                print(imgView.image)
                [...]
}}

console:

https://books.google.fr/books/content?id=RxsCPwAACAAJ&printsec=frontcover&img=1&zoom=1&source=gbs_api
nil

You can try the url, its giving you the correct image wanted.
But imgView.image == nil.
Can figure it out why ?

I think it's a problem with the thread. There is no data when I try to modify my UIImageView. But the data seems to come later. How can I check this and wait for the data ?


Invalid URLs are skipped rather than marked dead

If a URL is unparseable that probably means you'd want to know about it?

Should be fixed by fix to #12


Installing via pip - no matching distribution

Unable to install via pip, pip install osrsquesttool, is there a naming issue?

I've removed this as a pypi project and may revisit in the future. I'm sorry for the inconvenience, but you can still just copy past the json file located in this repo if you still want the data!
It's now a node package instead of a pypi package. Feel free to message me if there is anything I can do to help you.


failed when compile v7.0.1

Compile https://github.com/be5invis/Iosevka version v7.0.1 failed.

In the end, I found that the issue was not caused by docker builder, but the a = "double-storey" in my customized configuration file. v7.0+ changed the name of a = "double-storey" glyph.

@nobk Great, thanks for reporting and updating the issue!