File-Picker (FilePickerResultEvent) randomly returns files is None

Discussed in https://github.com/flet-dev/flet/discussions/738

Originally posted by getr11 December 20, 2022
Hello, I am currently having a problem with the file-picker (FilePickerResultEvent). I tried the sample from here https://github.com/flet-dev/examples/blob/main/python/controls/file-picker/file-picker-upload-progress.py using flet==0.2.4 (Tried also the latest pre version). When I run the sample as flet.WEB_BROWSER and select files from a network share FilePickerResultEvent randomly returns e.files is None even a file is selected. I can not reproduce this issue when running as flet.FLET_APP. It looks like a timing issue.
Has anyone experienced the same problem?

I havent experienced this yet.
"Files from a network share" ?
Does this also happen with local files?

Could it be a permissions issue ?
I dont know much about modern-day fileshares - however, could the browser be seeing the file as a local file in which case, could there be CORS issues from within the browser ?

To be sure, try opening this stuff I made, then try uploading a text file.
You should be able to see the contents of the text file in the left area.
Let me know after you test please.

Strange phenomen. If you guys never experienced this it can still be an issue of the network i am connected. Unfortunately it's not possible to get the firewalls, ... turned off. Anyway it seems not to happen when accessing a local file. Today I made a few tests using some javascript doing actually the same. There was no problem. Then I went to flutter an give the package:file_picker/file_picker.dart a try. Same problem occurs here too. Do you know which flutter package flet uses for the FIlePicker? @ndonkoHenri  Can you attach the stuff you made for testings. Thanks a lot

I finally tried it on a very simple network at home (only a pc and a NAS). Could not reproduce this issue here. So I guess it might  be a timing issue or caused by firewall in the company network.

Flet uses the package you mentioned above for the FliePicker: https://pub.dev/packages/file_picker

Can you attach the stuff you made for testings.

I completely forgot that. Sorry.
Here it is: https://md-editor.fly.dev

Ok, found the problem. It's a problem of the file picker package and occurs when the network is slow. The picker detects that the filedialog is closed without a selection by a timeout of 500ms. Unfortunately my network sometimes takes more than 500ms for the signal that files are selected. Thus the picker returns with FileResult None because the timeout is reached. There is already an issue about the closing of the file picker open for the package I will go on there... Just one question about the flutter package sources used in flet. Is there any easy way to modify these directly?
That's the code part which cause the issue
`void cancelledEventListener(_) {
window.removeEventListener('focus', cancelledEventListener);
  // This listener is called before the input changed event,
  // and the `uploadInput.files` value is still null
  // Wait for results from js to dart
  Future.delayed(Duration(milliseconds: 500)).then((value) {
    if (!changeEventTriggered) {
      changeEventTriggered = true;
      filesCompleter.complete(null);
    }
  });
}`

Maybe you could submit an issue in FilePicker repository?

Yes, I'll do. It's more about the architecture how this cancellation is implemented. Don't know if this can be changed easily. Anyway maybe they can provide the timeout as param to the pick files function....


Shark Tank memes Extension

This extension will generate shark tank memes and it will be a fun ad blocker.
I would like to take up this task and i'm a gssoc'22 participant.

I want to work on this under GSSOC2022. Here is my discord profile DHANANJOY DEY | Contributor#7903 can you assign me? Please assign me and give some detailed information on what issue you are facing using shark tank memes.

@VagishaGupta9 any updates on this?

@sceary-expert you want to work on this?


Rails 5 support

Adds Rails 5 support. Everything was straight forward enough, except for some special consideration around f1b4ebb.
Best reviewed per commit. Ref #103.
cc @boffbowsh

Thanks for your work on this so far. I think we'll want to have a go at a solution to the capybara/mechanize issue before merging though. I'll try and find time v soon.

Does https://github.com/alphagov/gds-sso/commit/c6ec519b0b3fa60eb4bfe0d564d04b9bdec458b3 address the problem do you think?

@boffbowsh 👍 🚢

Can you cherry-pick that onto your branch please and push it?

@boffbowsh Done.

The test failure is:
+ RBENV_VERSION=2.3
+ BUNDLE_PATH=/home/jenkins/bundles/govuk_gds_sso_branches
+ BUNDLE_GEMFILE=gemfiles/rails_4.2.gemfile
+ bundle exec rake
<snip>
Gem::LoadError: You have already activated bundler 1.10.6, but your Gemfile requires bundler 1.12.5. Prepending `bundle exec` to your command may solve this.
  /usr/lib/rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-1.12.5/lib/bundler/runtime.rb:35:in `block in setup'
  /usr/lib/rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-1.12.5/lib/bundler/runtime.rb:20:in `map'
  /usr/lib/rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-1.12.5/lib/bundler/runtime.rb:20:in `setup'
  /usr/lib/rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-1.12.5/lib/bundler.rb:95:in `setup'
  /usr/lib/rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-1.12.5/lib/bundler/setup.rb:19:in `<top (required)>'
  /usr/lib/rbenv/versions/2.2.4/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require'
  /usr/lib/rbenv/versions/2.2.4/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require'
bundler: failed to load command: rake (/home/jenkins/workspace/govuk_gds_sso_branches/tmp/signonotron2_bundle/ruby/2.2.0/bin/rake)

I've had a quick look but can't make it fail locally, and can't see anything obvious. Full log is here: https://gist.github.com/boffbowsh/779b47950cac48912cd3ab91c4276cc9

If you get no luck making it work, let me know and I'll find more time to look at it at some point.

@boffbowsh Signon's Ruby is pinned at 2.2.3 and BUNDLED_WITH 1.10.6 which I assume is that Ruby's default bundler you folks have configured? I'm pretty sure bumping Signon's Ruby to 2.3.1 (and therefore its bundler) would resolve this. PR incoming.

The signon branch is failing with the same error :(

Hmm. I guess your 2.3.1 is hosed? Travelling for the next few days but I'll try and sneak a look if I get a moment.

Rebased after #108 ❤

Needs another rebased and conflict resolution

@boffbowsh Done.


Nuget Package Creation - v1.8.15

MimeKitLite dependency update from '3.4.3' -> '3.5.0'.
Nuget package creation - v1.8.15.

Codecov Report
Patch and project coverage have no change.

Comparison is base (d02a8ac) 99.48% compared to head (dcabbd0) 99.48%.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
Additional details and impacted files
@@           Coverage Diff           @@
##             main      #42   +/-   ##
=======================================
  Coverage   99.48%   99.48%
=======================================
  Files           1        1
  Lines         782      782
  Branches      183      183
=======================================
  Hits          778      778
  Misses          2        2
  Partials        2        2

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Recommended setup for i18n?

There are several Vue libraries available for i18n, but which one provides the most seamless experience with Nuxt?
Also, will the example be revised for the upcoming release? Current one fails to specify <html lang="fr"> attribute, which is required for the browser to assign correct quotation marks and date format for example.

I'm also struggling with my project and integrating i18n, the examples used in https://nuxtjs.org/examples/i18n/ aren't working for me..

Not an expert on i18n but also interested in different ways of going about this.
For my current project I decided to stick with vue-i18n as seen in the nuxt i18n example, I also use this library in the api, server side to respond with localized messages. This library does not have any fancy pluralization support, but I think heaving unique message strings for every language is better anyway.
The html lang attribute can be changed using nuxt.config.js, or inside a page or layout file with:
<script>
  export default {
    head () {
      return {
        title: this.$t('global.myLocalizedPageName') + ' | ' + this.$store.state.site.name,
	htmlAttrs: {
          lang: this.$store.state.locale
        }
      }
    }
  }
</script>

In my current setup nuxt serves two domains, domain.nl and domain.com and the default locale is determined based on the users preference, then the requested domain. I have localized directories inside the pages directory. For instance /pages/profiel for Dutch and /pages/profile for English. inside the "profiel" directory I have this:
<script>
  import Index from '~/pages/profile/index'
  export default Index
</script>

This way I have only a single page to maintain for the profile page (I don't want to prefix my urls with /en, /nl, etc). However this might not be the best way to go about localized urls. For instance, nuxt ssr renders only for a single language and has to switch language at run-time, causing a short flicker. So running two instances is probably the only way to solve it.

@luminarious Hello there, I use htmlAttrs for setting , its work for me.

head () {
return {
meta: [
/* meta propety */
],
htmlAttrs: {
lang: 'fr'
}
}
}

If anybody has an issue with the i18n example starting, change the following:
In pages/about.vue change import About from '~/pages/_lang/about' to import About from '@/pages/_lang/about'.
In pages/index.vue change import About from '~/pages/_lang/index' to import index from '@/pages/_lang/index'.

I fixed it by just exporting the new VueI18n instance with locale and messages like so:
export default new VueI18n({
  locale: 'en',
  messages: { en }
})

The { en } here is my own object with required JSON data for my own project. 🤓

Since you seem to be using vue-i18n, and all doing it based on the example, have you guys experienced #1535 ?

I decided to switch from nuxt to regular "bare metal" vue ssr (to have more control over vue-router) using the hackernews example, but experienced this issue on both setups.
I fixed this by making sure the "browser" i18n instance has the same locale as the to be hydrated store locale: (in the hackernews example this is file src/entry-client.js)
if (window.__INITIAL_STATE__) {
  app.$i18n.locale = window.__INITIAL_STATE__.locale
  store.replaceState(window.__INITIAL_STATE__)
}

This is similar to the nuxt version found in nuxt.js/lib/app/index.js:
<% if (store) { %>
  if (process.browser) {
    // Replace store state after calling plugins
    if (window.__NUXT__ && window.__NUXT__.state) {
      store.replaceState(window.__NUXT__.state)
    }
  }

If vueI18n.locale is different than the rendered version, this will show on hydration, so make sure to change it before the call to  store.replaceState

There is also a plugin called nuxt-i18n now!


Could you share how to handle Variants like Size, Color in Cart?

Hello. Thank you so much for this great repo. This is the only one PR explain how to create shopping cart without using Typescript and optimize with React. This is really great.
By the way, please could you share how to handle Variants such as Size, Colors in Cart? I think it really need for merch site.

hey @huuphongnguyen
It's hard to say a "right" way to manage variants like that, as it kind of depends on preference, workflow, and even if you're using a CMS
if you're using flat JSON file for instance, maybe you could do:
const products = [
  {
    productID: '1234',
    title: 'My cool T-shirt',
    skus: [
      {
        sku: '1234-asdf',
        title: 'Blue - Large',
        price: '12.20'
      }
    ]
  }
]

hey @huuphongnguyen
It's hard to say a "right" way to manage variants like that, as it kind of depends on preference, workflow, and even if you're using a CMS
if you're using flat JSON file for instance, maybe you could do:
const products = [
  {
    productID: '1234',
    title: 'My cool T-shirt',
    skus: [
      {
        sku: '1234-asdf',
        title: 'Blue - Large',
        price: '12.20'
      }
    ]
  }
]

Thank you so much. I got it. :D


Add option to search by (company) name

One option I'm missing is to get results by providing the (company) name. Sometimes you don't even know the full name so you would provide a substring and get all results which contain the substring.
This option is e.g. available here: https://bgpview.io
btw. Thanks for the great tool :)

Hi YugoCode,
from what I can see you can only search by AS NAME, not by company name on the search engine you mentioned.
A lookup, for instance, for level 3 won't bear you the expected result (e.g. ASNs for company Level 3 Parent, LLC). On the other hand, searching for LVLT will output what you're looking for, since they prefix their autonomous systems names with LVLT.
If mapping AS name to number is the functionality you're looking for, that should be trivial to implement. I don't know if you can do that by using Team Cymru's data (doubt it), but for sure one could simply grep cidr-report's ASN-To-Name dataset.
The problem with that approach is that the dataset is rather slow to download, and thus a "curl + grep" approach is rather clumsy (plus one should be sure not to break any usage policy by constantly accessing it).
The obvious alternative would be to mirror the dataset locally (it's tiny after all, we're talking about ~10MBs), and maybe refresh it on a scheduled basis, but this doesn't fit nicely within the logic of this script.
Ideas?

@YugoCode, I think latest revision implements what you asked for - if not, feel free to reopen or comment further.
Thanks for your feedback!


I want to load an external JS file on page intialization?

This is a (multiple allowed):

[ ] bug
[ ] enhancement
[x] feature-discussion (RFC)

What you did
I want to display some Mathematical expression on my app. In my index.html file on mentioning the Js file under script tags, everything works well, but when I am navigating to other pages, the JS file doesn't need to be loading. So to curb the issue I wrote this on the my-app.js file:
myApp.onPageInit('numbersystem', function (page) {
$$.getScript('https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-MML-AM_CHTML')
});
Expected Behavior
The JS file should be loaded upon page initialization of numbersystem page and the Maths expression should be updated on the page.
Actual Behavior
Nothing Happened.

"Nothing Happened." more acuratly TypeError: $$.getScript is not a function was thrown because $$.getScript doesn't exist.
Why can't you refrence the script in index.html or include it's contents in the page:init handler?

Hi @ZanderBrown I have referenced the script in the Index only, but since the pages are loaded as ajax, the external js https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-MML-AM_CHTML is not loaded in other pages except index. If I have to load the external JS via page init, how can I do that?

5 mins looking at the docs for MathJax.js say to call MathJax.Hub.Typeset() after inserting dynamic content
myApp.onPageInit('*', function () {
    MathJax.Hub.Typeset();
});

Thanks a lot @ZanderBrown . Appreciate your help.

@alapanme your welcome 😄


"Which best describes you?" drop-down entry doesn't stick

I click an entry in the list of Which best describes you in the "Submit" page of Add a flow, and it doesn't seem to "stick".
To reproduce:
Click the drop-down list
Choose a role
The list contracts, but the answer you picked doesn't appear in the form.

@rhonda, I thought I saw this issue at first, too, but now I'm not able to reproduce. Could you verify that whether it happens every time for you, or only the first time you see the form?

@rmglennon--ok, so this only happens if you refresh the page, not when you are going through the flow. This happens because when you refresh, your local data is cleared. I'll create a separate ticket to make sure refreshing takes you back to the beginning of the flow.

Ah, I think you're right @meghanhade. I got into this because I clicked the terms of service link. It opened in the same browser tab (which was unexpected when it had the little box icon), so I had to press Back to get to the form again.

And this got me into a state where I clicking the Submit Feed button does nothing, either...

@rmglennon good catch! The terms page should open in a new window, otherwise it throws off the way we set up/clear data models.

@rmglennon right, it can't submit because the feed model doesn't exist after reloading.


drivers: dma: i2s: stm32: I2S Master DMA support

When configuring the I2S peripheral as a master, the DMA channel
direction must be configured to transfer data from memory to the
peripheral.
Currently the configuration of channel direction is always set for
peripheral to memory regardless of whether it is the TX or the RX
channel.
Signed-off-by: Abe Kohandel<EMAIL_ADDRESS>

--> to be applied to other dma clients like SPI


Installation of video drivers for older CPUs

I'm not sure what is the model number from which installation should not be done, for now it is 60 (My cpu is 58).

Gen7 / Haswell and older Intel iGPU need the legacy libva-intel-driver, you can get the GPU generation with:
sudo cat /sys/kernel/debug/dri/1/i915_gpu_info | grep "graphics version" | cut -d ' ' -f 3

or
sudo cat /sys/kernel/debug/dri/0/i915_gpu_info | grep "graphics version" | cut -d ' ' -f 3

(not sure what determines whether you need to use 0 or 1 in the path, but I have 1 on Fedora and 0 on a Debian machine)

I changed for use of this method. To determine what to use  in path 0 or 1 in i simply test if it exists.


[WIP][DO NOT MERGE] RayTune POC - Uppdated 01/29

Description of changes:
RayTune POC
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

This is a continuation of #860

This is a continuation of #860

Job PR-888-5 is done.
Docs are uploaded to http://autogluon-staging.s3-website-us-west-2.amazonaws.com/PR-888/5/index.html

Job PR-888-5 is done.
Docs are uploaded to http://autogluon-staging.s3-website-us-west-2.amazonaws.com/PR-888/5/index.html

Job PR-888-43 is done.
Docs are uploaded to http://autogluon-staging.s3-website-us-west-2.amazonaws.com/PR-888/43/index.html

Job PR-888-44 is done.
Docs are uploaded to http://autogluon-staging.s3-website-us-west-2.amazonaws.com/PR-888/44/index.html

Job PR-888-46 is done.
Docs are uploaded to http://autogluon-staging.s3-website-us-west-2.amazonaws.com/PR-888/46/index.html

Job PR-888-47 is done.
Docs are uploaded to http://autogluon-staging.s3-website-us-west-2.amazonaws.com/PR-888/47/index.html

Job PR-888-49 is done.
Docs are uploaded to http://autogluon-staging.s3-website-us-west-2.amazonaws.com/PR-888/49/index.html

Closing for now due to staleness


TypeScript plugin doesn't respect project references

What happened?
I have a monorepo, each package has its own paths property. When I run metro I see an error like that
error: Error: Invalid package reference: "@/responsive/useResponsive"
    at parsePackageRef (/Users/me/project/node_modules/@rnx-kit/tools-node/src/package.ts:29:15)
    at parseModuleRef (/Users/me/project/node_modules/@rnx-kit/tools-node/src/module.ts:36:48)
    at isPackageRef (/Users/me/project/node_modules/@rnx-kit/metro-plugin-typescript/src/resolver.ts:6:25)
    at resolveModuleName (/Users/me/project/node_modules/@rnx-kit/metro-plugin-typescript/src/resolver.ts:32:31)
    at resolveModuleNameLiterals (/Users/me/project/node_modules/@rnx-kit/metro-plugin-typescript/src/resolver.ts:113:28)
    at Object.host.resolveModuleNameLiterals (/Users/me/project/node_modules/@rnx-kit/metro-plugin-typescript/src/host.ts:98:34)
    at resolveModuleNamesWorker (/Users/me/project/node_modules/typescript/lib/typescript.js:124573:20)
    at resolveModuleNamesReusingOldState (/Users/me/project/node_modules/typescript/lib/typescript.js:124659:14)
    at processImportedModules (/Users/me/project/node_modules/typescript/lib/typescript.js:126176:118)
    at findSourceFileWorker (/Users/me/project/node_modules/typescript/lib/typescript.js:125954:7)

Where @/responsive/useResponsive is an import in a package with the following tsconfig
"composite": true,
"baseUrl": ".",
"paths": {
    "@/*": ["./*"]
},

P.S. I use just @rnx-kit/metro-plugin-typescript package in metro config, without any other @rnx-kit/* package.
Affected Package
@rnx-kit/metro-plugin-typescript
Version
^0.4.4
Which platforms are you seeing this issue on?

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

System Information
System:
  OS: macOS 14.6.1
  CPU: (10) arm64 Apple M1 Max
  Memory: 3.68 GB / 64.00 GB
  Shell:
    version: "5.9"
    path: /bin/zsh
Binaries:
  Node:
    version: 22.3.0
    path: ~/.nvm/versions/node/v22.3.0/bin/node
  Yarn:
    version: 1.22.22
    path: ~/.nvm/versions/node/v22.3.0/bin/yarn
  npm:
    version: 10.8.1
    path: ~/.nvm/versions/node/v22.3.0/bin/npm
  Watchman: Not Found
Managers:
  CocoaPods:
    version: 1.15.2
    path: /Users/dima/.rbenv/shims/pod
SDKs:
  iOS SDK:
    Platforms:
      - DriverKit 23.5
      - iOS 17.5
      - macOS 14.5
      - tvOS 17.5
      - visionOS 1.2
      - watchOS 10.5
  Android SDK: Not Found
IDEs:
  Android Studio: 2023.3 AI-233.14808.21.2331.11842104
  Xcode:
    version: 15.4/15F31d
    path: /usr/bin/xcodebuild
Languages:
  Java:
    version: 17.0.12
    path: /usr/bin/javac
  Ruby:
    version: 2.7.6
    path: /Users/dima/.rbenv/shims/ruby
npmPackages:
  "@react-native-community/cli": Not Found
  react: Not Found
  react-native: Not Found
  react-native-macos: Not Found
npmGlobalPackages:
  "*react-native*": Not Found
Android:
  hermesEnabled: Not found
  newArchEnabled: Not found
iOS:
  hermesEnabled: true
  newArchEnabled: false

Steps to Reproduce
Set-up monorepo, create i.e. ui-kit package
Inside ui-kit  tsconfig add these props
"composite": true,
"baseUrl": ".",
"paths": {
    "@/*": ["./*"]
},

Inside ui-kit package add some import using the path alias
Inside your app import the file
Code of Conduct

[X] I agree to follow this project's Code of Conduct

Thanks for the report! I've submitted a fix.


pull request for e2e test at 01/14/2017 20:26:13

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


[US] Project setup

Estimated story points: 8
(note this user story was started before creating this github repository)
Description

create repository, create setup code for frontend and backend.
document how to setup the project in the README

Acceptance criteria

an (empty) website is working and the server is running proper-
ly.
other user stories have their work unblocked by this setup.
the repository contains working instructions in the README on how to setup this project

This is done in the sense that the Outwatch framework works and this repository exists.

Estimated time (including testing other frameworks etc): 6 hours


Perf Monitor - persist visibility over reload

🐛 Bug Report
When I toggle Perf Monitor ON, it will not be visible after I reload/refresh the JS bundle (CMD+R), but option in Dev Menu will persist the state correctly.
To Reproduce

Open iOS Simulator
Press CMD+D
Select Show Perf Monitor
Reload CMD+R

Expected Behavior
Perf Monitor should be visible after reloading. The Dev Menu is correctly showing Hide Perf Monitor.
Quick Fix
Persist the Perf Monitor:

Open RCTPerfMonitor.m find devMenuItem and put this line

 if (devSettings.isPerfMonitorShown) [weakSelf show];

after:
__weak __typeof__(self) weakSelf = self;
__weak RCTDevSettings *devSettings = self.bridge.devSettings;
 // PUT NEW CODE HERE

Since I'm no expert on Objective-C, I didn't want to create PR with this. But if this approach is good, I can create one.

Environment
React Native Environment Info:
    System:
      OS: macOS 10.14.3
      CPU: x64 Intel(R) Core(TM) i5-7360U CPU @ 2.30GHz
      Memory: 738.29 MB / 16.00 GB
      Shell: 5.3 - /bin/zsh
    Binaries:
      Node: 10.15.0 - ~/.nvm/versions/node/v10.15.0/bin/node
      Yarn: 1.10.1 - ~/.yarn/bin/yarn
      npm: 6.4.1 - ~/.nvm/versions/node/v10.15.0/bin/npm
    SDKs:
      iOS SDK:
        Platforms: iOS 12.1, macOS 10.14, tvOS 12.1, watchOS 5.1
    IDEs:
      Android Studio: 3.1 AI-173.4819257
      Xcode: 10.1/10B61 - /usr/bin/xcodebuild
    npmPackages:
      react: 16.6.1 => 16.6.1
      react-native: 0.57.7 => 0.57.7

It would be great if you could create a PR with this solution, discussion on the change can happen there. Thanks for investigating this!


Fix typos, grammar

Hi, I went ahead and fixed the typos and some grammar issues I found in the text.

Thank you very much my man! I've added them to the master branch 👍


Update to OptaPlanner 999-SNAPSHOT

CC @lucamolteni

@baldimir or @jstastny-cz please review and merge.
This is somewhat related to https://github.com/apache/incubator-kie-issues/issues/628. AFAIK, we're not going to release quickstarts but the goal here is to have a working CI.


Redirect kotlintest.io to Github

The domain http://kotlintest.io should be redirected to this github repository

Hello everyone!
kotlintest.io is down. Should we do something about it? I was wondering yesterday that would be great if we have the docs in github pages organized with good template.

kotlintest.io is working for me ?
On Mon, 4 Nov 2019 at 08:48, Leonam Pereira Dias<EMAIL_ADDRESS>wrote:

Hello everyone!
kotlintest.io is down. Should we do something about it? I was wondering
yesterday that would be great if we have the docs in github pages organized
with good template.
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
https://github.com/kotlintest/kotlintest/issues/529?email_source=notifications&email_token=AAFVSGUIGUDLIXVKKGWVQADQSAY3LA5CNFSM4GOQV6TKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEC7P3CI#issuecomment-549387657,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAFVSGS4GRXXLH56D5EERALQSAY3LANCNFSM4GOQV6TA
.

I think the https version isn't working

@Kerooker that's it. I'm using "Https Everywhere" and yes, kotlintest.io with https isn't working.


[Retirement Aggregator] BCT/USDC removed liquidity is causing failures with USDC->BCT and amountincarbon=false

The aggregator broke for the two cases:

USDC -> BCT.
Amountincarbon = false.

In both cases bct/usdc removed liquidity is causing an error.
It took me a while to figure this one out since my live offsetting contract broke, and Timmy also reached out to me asking for help figuring out the same error "UniswapV2Library: ZERO_ADDRESS".
I'm opening a github issue.
The problem is with this assumption:
In RetireToucanCarbon

The same assumption is in the MOSS helper as well, but there's usdc/moss liquidity on quickswap so it's not an issue there

With the V1 aggregator utilizing the latest V2 interfaces, this issue should be resolved.


BUG: Firefox Shortcut Alt + H "Get Help" interferes with Highlighter Command

Version:

OS: Windows
Browser Firefox
Web Clipper version: 0.9.6
Obsidian version: 1.7.6

Describe the bug
Hotkey to Activate Highlighter Mode Alt + H interferes with native "Get Help" Firefox Command. There seems to be no option to change the shortcut easily from the extension settings.
Expected behavior
I would like to be able to set the keyboard shortcut for activating highlighter mode and would suggest that the default shortcut not overwrite native commands which work the same in every application.
URLs where the bug occurs
Any webpage.
To reproduce
Steps to reproduce the behavior:

Go to any website

Use shortcut Alt + H to activate Highlighter Mode

Toggles "Get Help" Firefox shortcut instead of activating Obsidian Clipper.

You should be able to change commands by following the instructions in the settings. What do you suggest as a command? Unfortunately there are few available mappings.

Will be changed to Alt + Shift + H


Added a feature to display the time strings either in 24-hour or am/p…

#9 ... I added a feature to show time in either 24-hour or am/pm format (on the time column of the TimePlanner widget). Note that this formatting of the time strings has nothing to do with the internal logic of how the package handles time. The time strings are formatted just before being displayed to the user. In all parts of the package, 'hour' is still an integer from 0 to 23. Time strings are formatted by default in am/pm format. To use the 24 hour format, pass the 'use24HourFormat' argument in the TimePlanner constructor.

@sami-bre Awesome, thank you
Just add comment for use24HourFormat in lib/src/time_planner.dart

Here we go : )


Adding Jenkins support

For internal continuous integration testing, adding files for Jenkins support.

Is it possible to "Whitelabel" this, or to make more clear that this is for AMD only? There are several AMD references, which makes it difficult for others to use their own Jenkins-setup.
We're trying to find a way to replace the current .gitlab-ci-gputest.yml (which holds specific info for us) with a generic one while we can keep using ours internally.

I assumed you are on GitLab and do not care about this. I can add comments stating it is AMD only. It depends on a public shared library and I can provide documentation and reference to it. Let me think about providing a separate input file. If you are planning to use Jenkins, let us discuss options to separate.

We got rid of Jenkins - far too complex to do simple stuff.
If only Stream HPC and AMD will work on this project, then indeed it's not needed. I was thinking of university groups who like to do research on this library, as there is a lot to look into. But just ignore my remark for now - we'll wait for an issue from that researcher who wants to use Jenkins.


make sure of the public npm org

there just came in the announcement of free npm Orgs unlimited for open source projects, So I think the d3 can also be a good use case take advantage of it, at least you may register this one  https://www.npmjs.com/org/d3 before anyone else register it for non-d3 related
I have been using some public organized code for a while (like @google-cloud/bigquery), pretty appreciate this kind of code organizing, so the d3 modules can also be @d3/scale @d3/format @d3/geo ... then after npm install, it put all code under<EMAIL_ADDRESS>

I’ve already registered the d3 user with npm, and no one is allowed (at least currently) to create an organization with the same name as an existing user. I could convert the d3 user to an organization, but the current workflow requires that I then rename the d3 user to something else, and since this is not of immediate pressing concern I do not plan on doing this. But thank you for the reminder.


refactor: using more common package for abort controller

BREAKING CHANGE: new module uses different to previous module types

abort-controller was purposefully replaced with node-abort-controller in https://github.com/deeplay-io/abort-controller-x/commit/77270fc2852c97b66dfd24ff0ca5ec972704f59d because the latter has better typings, which allow this library to work both in NodeJS and browser.


Missing 'Add another' link/button in inline formset

Hello, congratulations for the nice project. I have an issue with using it. I suppose there must be something that I miss so apologies if this is the case.
This is the first time that I use it. I installed it properly with pip and added it in apps setting. I have not installed django-bootstrap3.
When opening a form to edit or add a record, and the form contains an inline, there is no 'Add another' link present. Additionally, there are several errors present in browser's inspector.
If you would like me to include more information regarding the errors or my admin code please let me know.

Please report django version, d-a-b version and provide a screenshot for ui artifacts and c&p of inspector errors if caused by d-a-b.

After spending my morning and much digging, it seems that there was another script that was messing with d-a-b. So my apologies for the inconvenience. I close the issue.


Constants that depend on type parameters in generic code

Rendered
This attempts to lay down some rules involving possible uses of expressions like <T as Int>::ONE, where T is a type parameter. This is a bit tricky, and currently forbidden completely (even on my associated const branch). However, I believe that some cases can be allowed without major problems, and it may be good to explore this with associated constants before trying to deal with things like #1038.
If this is accepted (and for that matter, maybe even if this is rejected), #865 could be cut back to just mentioning simple syntax issues, and dealing with type object safety.
Note that I wrote this, then mostly rewrote it a couple of weeks later. I think that I got it roughly right in the end, but the RFC might be a bit weird in places if I missed something.

cc @nikomatsakis

cc me

My SIMD work is weakly blocked on this. Specifically it would be useful to allow associated constants in expressions, since certain SIMD operations (shuffles, mainly) require compile-time constants to work properly. One example is something like
trait Num {
    const N: u32;
}
fn shuffle2<A: Num, B: Num>(v: f64x2, w: f64x2) -> f64x2 {
    shuffle_intrinsic(v, w, A::N, B::N)
}

struct Zero;
struct One;
// ...
impl Num for Zero { const N: u32 = 0; }
impl Num for One { const N: u32 = 1; }
// ...

This can then be used like shuffle2::<Three, One>(v, w). (This would be made nicer by more sugar, but that's not necessary for now.)

Would very much like to be able to use associated constants in default implementations. As a matter of fact, I honestly thought that was the reason they existed up until yesterday. :)

I'm also blocked by this. This would allow removing almost all allocations in my Octavo crate. I.e. user could make that:
let mut digest = [0; sha3::Sha3512];

digest.result(&mut digest[..]);

And all allocations in Hmac would be unnecessary.

Substituting in defintions of constants and comparing the resulting AST would allow the type checker to prove some more values equal:
const Y = 2* PARAM;
const T = 2* Y;
let _: [u8; T] = [1; 2*Y]; // allowed
let _: [u8; T] = [1; 2*(2* PARAM)]; // allowed
let _: [u8; T] = [1; 2*2* PARAM]; // not allowed because * is not associative
let _: [u8; T] = [1; 4*PARAM]; // not allowed

So this RFC has been sitting around open for a while. I think that with the MIR transition, as well as all the work that @tsion has been doing on miri, we're starting to make some progress here. It's also clear that we want to achieve the various aims of this RFC in one way or another.
But all that said, it seems that there is enough going on, and this particular RFC is not especially active just now. Therefore, I'm going to postpone this RFC (under <issue https://github.com/rust-lang/rfcs/issues/1038>). I expect however that its content and ideas will make their way into whatever design/RFC we ultimately adopt.
Thanks to @quantheory.


Authentication work on development but not on production

Environment
No response
Reproduction
No response
Describe the bug
Sorry I don't understand where the bug is but I can provide it only code. Basically, everything working well in dev mode but when deployed, server is timing out, we've used fetch, axios, node-fetch but all return the same error. We've also hosted our app on netlify for test purposes if we made nginx config errors. And in that time it's returning error but when api request is successfull it's returning "can't read properties of undefined". But server is returning response. Here's code
import CredentialsProvider from 'next-auth/providers/credentials'
import { NuxtAuthHandler } from '#auth';
import { NOT_HACKABLE } from '@/utils/constants';
import { loginUser } from '@/api/auth'
import { ENDPOINTS, BASE_URL } from '@/config/endpoints';
import axios from "axios";
import fetch from "node-fetch"

export default NuxtAuthHandler({
  pages: {
    signIn: "/authentication/login"
  },
  secret: 'my-billing-secret',
  providers: [
    // @ts-expect-error You need to use .default here for it to work during SSR. May be fixed via Vite at some point
    CredentialsProvider.default({
      name: 'Credentials',
      credentials: {
         email: { label: 'Email', type: 'text', placeholder: '(hint: jsmith)' },
         password: { label: 'Password', type: 'password', placeholder: '(hint: hunter2)' }
      },
      async authorize (credentials: any) {
        console.log("Env vars", process.env);
        console.log("Credentails data ", credentials);
        console.log("Credentails url ", `${BASE_URL}${ENDPOINTS.USER}/`);
        try {
          if(NOT_HACKABLE !== credentials.password) {
            const userLoginData = {
              username: credentials.pnfl,
              password: credentials.password
            }
           const loginResp = await loginUser(userLoginData)

           const userResp = await axios.get(`${BASE_URL}${ENDPOINTS.USER}/${loginResp.data.id}/`, {
               headers: {
               "Content-Type": "application/json",
               "Authorization": `Bearer ${loginResp.data.access}`
             }
            })

          if(loginResp.data?.access){
            return {
              ...userResp.data.user,
              access: loginResp.access,
              refresh: loginResp.refresh
            }
          } else {
            return null;
          }
        }catch(err: any){
          console.log("Login error", err)
          throw createError({statusCode: 400, statusMessage: err.response.data?.detail ? err.response.data?.detail : err.message})
        }
      },
    })
  ]
})

Additional context
No response
Logs
No response

Hello,
Could you share your nuxt.config.js file ?
Thanks

Same issue here. Deploying on Vercel, it worked just 3-4 days ago and now all server/api calls return 204 error. And it's hard to debug what went wrong on remote server.

hi @Johongirmirzo and @nktll
im using vercel too, its working
using authjs provider
 auth: {
    isEnabled: true,
    baseURL: process.env.AUTH_ORIGIN,
    provider: {
      type: 'authjs',
    },

my package.json
"@sidebase/nuxt-auth": "0.6.0-rc.1"

@karis Please i delopy to vercel all server/api sometimes returns 500 when you refresh or revisit the page it returns 200

loginUser

hi @Timothy16
can you create reproduction on stackblitz?
did you use .env?
have you set properly on your vercel account.

@karis yes i use env and it is properly set on vercel.
As i said, every API that need auth token return error  500 sometimes and when refresh the page it return 200.

HI to all! I'm sorry for coming late, Problem is fixed! Our devops team could not correctly configure  .env file on the server. That was the root of the problem. Thanx for all for trying to help me

Hi @Johongirmirzo 👋
Glad to hear that everyone else was able to help you and you resolved your issue. Before closing this issue up, I wanted to link the docs one more time, that refer to the needed environment variable or config files to properly handle redirect URLs:
https://sidebase.io/nuxt-auth/configuration/nuxt-config#provider-authjs-baseurl
Good luck with your further work!


Added flag '-a' for command 'save'.

Adds a dependency to the list of existing dependencies.
$ godep save gopkg.in/mgo.v2
$ cat Godeps/Godeps.json

...
"Packages": [
"gopkg.in/mgo.v2"
],
...

$ godep save -a github.com/valyala/quicktemplate
$ cat Godeps/Godeps.json

...
"Packages": [
"gopkg.in/mgo.v2",
"github.com/valyala/quicktemplate"
],
...

I am closing this PR because the repo is going to be archived.


[BUG] Autoupdate crash after detection

Describe the bug
After many detections, a Node with autoupdate crashes.
The context is described in the following pics :

Network configuration

Luos test platform :
1- Discovery F0 : Gate
2- Nucleo L4 : 15 Gpio
3- Nucleo G4 : Button

How to reproduce the bug
Do many detections (random : sometimes about 20, sometimes about 200),
Additional context
Most of the times the Gate sends an incomplete start detection and this event trigs the crash of Node 2. But sometimes, Node 2 is seems to be crashed without incomplete start detection.

Many asserts on L4 mem alloc. These problems seems to be linked with known bug : mem alloc reset sequence crashes a node when it occurs during Tx process.

Linked to #187

@BiliouriV : is it corrected ?

Yes

Good ! Thank you :)

Done in 2.5.x


Add license information

Checklist

[x] npm test passes
[ ] documentation is changed or added (if applicable)
[ ] permission has been obtained to add new logo (if applicable)
[x] contribution guidelines followed here

@karianna updated PTAL


[44_perm_income_cons]_typo

Hi @jstac , this PR corrects a possible typo in lecture perm_income_cons:

So the risk-free loans are being made from one person to another within our closed set of agent. -->> So the risk-free loans are being made from one person to another within our closed set of agents.

Hi @mmcky (cc: @AakashGfude ), I find there are some successful checks for this and another PR I submitted after it.
I checked it out that it is not due to merging conflicts like what I faced last time.
Would you mind having a look at them and helping me solve this issue when you have time? Many thanks!
(I will hold on submitting PRs now.)

Hi @mmcky (cc: @AakashGfude ), I find there are some successful checks for this and another PR I submitted after it.
I checked it out that it is not due to merging conflicts like what I faced last time.
Would you mind having a look at them and helping me solve this issue when you have time? Many thanks!
(I will hold on submitting PRs now.)

hey @shlff -- this looks like it is passing CI. It might be because your PR needs to be generated from the latest master so a rebase merge in the latest master may fix your issue. Please feel free to ping me on Slack or we can Zoom.

hey @shlff -- this looks like it is passing CI. It might be because your PR needs to be generated from the latest master so a rebase merge in the latest master may fix your issue. Please feel free to ping me on Slack or we can Zoom.

hey @shlff -- this looks like it is passing CI. It might be because your PR needs to be generated from the latest master so a rebase or merge in the latest master may fix your issue. Please feel free to ping me on Slack or we can Zoom.

Great thanks for helping me fix this, @mmcky .
I updated and rebased the master in this and the other PR. Now, these checks seem to be all successful (still waiting for building PDF)! Great thx again!

hey @shlff -- this looks like it is passing CI. It might be because your PR needs to be generated from the latest master so a rebase or merge in the latest master may fix your issue. Please feel free to ping me on Slack or we can Zoom.

Great thanks for helping me fix this, @mmcky .
I updated and rebased the master in this and the other PR. Now, these checks seem to be all successful (still waiting for building PDF)! Great thx again!

Thanks @shlff and @mmcky

Thanks @shlff and @mmcky


pull request for e2e test at 12/02/2016 04:15:09

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

optest/docs/updated_at.md
:white_check_mark:Succeeded

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


How to install OLM from win64 client

Type of question

General operator-related help

Question
What did you do?
I used to install OLM 1.7 using the provided crd.yaml and olm.yaml. Bit now it seems the only way is using operator-sdk. But operator-sdk is not provided for win64 clients.

What did you expect to see?
Are crd.yaml and olm.yaml still available somehow? I could not find ot in the Github Repo anymore.

What did you see instead? Under which circumstances?

Environment
Operator type:

Kubernetes cluster type:

Minikube with kubectl on Windows 10 as client
$ operator-sdk version

$ go version (if language is Go)

$ kubectl version

Additional context

Sorry, I was looking at the wrong project. They are located in https://github.com/operator-framework/operator-lifecycle-manager/tree/master/deploy/upstream/quickstart


HHH-10757 : select new ..." with CAST( NULL AS ...) fails

See test cases in the commit for details.

Hi @gbadner, I think it's fine.

@dreab8, thanks for looking! Pushed.


github actions for build ios + browsertests in BS

a full integration for this framework can be accomplished by using github actions to

build
-- android
-- ios
test on Browserstack
-- ios
-- android

for the time being, disabled corresponding gh action/workflow manually


left-sidebar: Make subscription link non-sticky.

#20974
GIFs or screenshots:
Here is the gif for showing the non-sticky 'Subscribe for more streams' link -

@timabbott , please review and merge this.

This changes a lot of code; can you talk about why these changes are correct?

I'm sorry, it was due to rebase from main branch, i guess now it looks fine.

@jai2201 can you talk about how you verified this commit?  I'd want to use git log -p to find the commit where we did the obvious move, and investigation whether we need to undo any of the other changes involved there, and also think about the CSS details.
(E.g. are we still preserving the space where it was?)

Tim, actually the  of 'add-stream-link' which contained the  tag for subscription link was present outside of the  containing the Scrollbar so i just shifted this div inside the  of Scrollbar, so that the 'Subscription link' is now no more sticky at the end and can do down with the scrollbar content.

I have now also corrected the CSS - removed the space where it was earlier and alloted that space to "STREAMS" by making change in resize.js for removing the space from the height of STREAMS section in leftSidebar.

@timabbott , this PR is ready to be review from you once now -
changes made -
1.) Put the subscription link inside the division of scroll bar to make it non-sticky and go scrollable.
2.) Remove the height of subscription link from method of deciding the height of STREAMS in resize.js.
3.) Remove the margin-bottom and margin-top given to STREAMS list to allow the list to cover the full space of remaining left-sidebar. (since now subscription link goes scrollable.)

Playing around with the PR, the link gets covered up by the URL. I think we need to have enough blank space underneath it so that you can see it well if you scroll all the way down.

Playing around with the PR, the link gets covered up by the URL. I think we need to have enough blank space underneath it so that you can see it well if you scroll all the way down.

Left comments on this at https://chat.zulip.org/#narrow/stream/101-design/topic/.E2.80.9CSubscribe.20to.20more.20streams.E2.80.9D.20link

@timabbott  , I've made the changes as per requested in CZO discussion and they've been approved, so please have a look at the MR.

I played with the PR, and it looks good to me!

@timabbott , it would be great, if you can review this once.

@timabbott , Can you please give it a review once now.

I don't understand why GitHub closed this; @jai2201 is it possible you accidentally did a force-push of main here or something?

In any case, I went ahead and reviewed this and merged as e11c495dffea26032a25d00a2a168bd43b6bae89.  Thanks @jai2201!

Also added c4af509339b56b4438f62b62a3525701c5cc4709 on top after a bit more playing with it.
Note that I had to reformat the commit message of the second commit to line-wrap it; please take care of line-wrapping commit messages in the future.  (It's easy to check with git show or git log).


firebase_admob shows black bars until you visit url, then loses height

firebase_admob banner, size AdSize.banner on iOS...
When you first boot up it has black bars on the sides and it is returning height that is useful for moving content out of the way. Then you click on the ad and it redirects you. Then when you go back, the ad is much more aesthetically pleasing, having lost the black bars on the side, but it no longer returns a height.
https://youtu.be/sysYifbP1ec

This was an issue with my padding method.


Xcode 11.1 - Rswift from SPM not linkable

Hey guys,
am I wrong or isn't it possible to use Rswift with the Swift Package Manager even that you can add that as a package?

I haven't tried to, but I'm assuming it's not possible to use R.swift using SPM.
R.swift is an executable, not a library, so you need the executable on your system to run it before you build your code.
Perhaps you can use Mint to install R.swift?
https://github.com/mac-cain13/R.swift#mint
Note that you can use R.swift.Library from SPM, that library is also needed when using R.swift


sk_test

Linter check found the following problems:
The following problems have been found:
WARNING: /tmp/abs_2fil_gdjev/clone/recipe/meta.yaml:30: python_build_tool_in_run: The python build tool packaging is in run depends
Warnings were found


Razer.Devices does not include latest supported devices

The following devices are supported by SDK 0.4.8:

Blackwidow Chroma
Blackwidow Chroma TE
Deathadder Chroma
Mamba Chroma TE
Firefly Chroma
Tartartus Chroma
Orbweaver Chroma

Anything in Bold has not yet been added to Razer.Devices.
Also, Colore currently lists the Naga as supported although this has been confirmed as never receiving support.

Keypads are confirmed to be supported, but haven't been added to Razer.Devices class.

On top of what @njbmartin observantly mentioned, Blackwidow Chroma TE and Mamba Chroma TE are also supported, yet were also not listed in the Razer.Devices class.

@brandonscott he already pointed that out.

@Sharparam He made them bold, but it wasn't in his comment, I was simply being explicit.

Fixed in #54.

@brandonscott

Anything in Bold has not yet been added to Razer.Devices.

How is that not being explicit.

my comment was in reference to the conversation we had on Slack where you said you told Mark Keypads were supported.

Fixed in #54


CLOUD-42848 Log missing cert file

@baluchicken plz review

Jenkins build finished, all tests passed.
Refer to this link for build results: http://ci.sequenceiq.com/job/cloudbreak-pull-request/1822/


Finally GUI for QPDF but unfortunately not advanced !

Hi. Just for your knowledgement, I call GUI PDF software developers to use your QDPF as a backend.
Till now, only one respond positively & replace his backend by QPDF but unfortunately he said that he has no time to build advanced PDF editor ...... Please look to this:
https://github.com/junrrein/pdfslicer/issues/59
I do not know how can you help from your side. But from my side I'm ready to help you by money.
Regarding money support, I was planned to use private e-mail. But when I see that someone respond to me & include your great application in his GUI, I decided to post this publicly because I'm sure that there are many peoples who use Linux are very hunger for advanced PDF editor on Linux.
Frankly speaking, why you do not introduce GUI for your great application? I'm ready to support you. Just inform us how many you need & how many it will cost you?
Building strong GUI need time, & you have a family & need to eat as any other human. So, I'm - & I think many other peoples - ready to support you .....

From my point of view there is not really a need for a GUI for QPDF.
I like to render my PDFs with a simple viewer (e.g. mupdf) and do all the editing from command line.
This enables me to script my editing so instead of repeatedly performing the same clicks, I can 'tell' QPDF when and where to perform which operation (or my shell when and how to call qpdf).
So I'd rather see more developer time invested in further improving this great library and its CLI instead of in creating (and maintaining!) a TUI or GUI for it.
This is just my two cents but I'd be curious to learn about a use case a GUI could satisfy but the CLI could not.

@mschilli87
Dear I'm respecting your opinion. But this is NOT CONVENTIONAL. I'm also can use command line. But using command line is not convenient for many wanted operations ...... For example, creation or editing outlines (or bookmarks) for/of PDF.  Also, delete pages are also possible via command line but it associated with somewhat long commands.
To be more clear: we on Fedora Linux we have a sandbox tool called SELinux. It is of huge number of command line. But with GUI of SELinux, user can avoid many headache causes by avoiding entrance of such command directly ......

I think a GUI for qpdf is a good idea, and it is something that gets requested with increasing frequency. I can support its creation, but I have no intention of creating one myself. GUI code is not my primary skill area, and I would rather use my very limited time on qpdf for library and CLI functionality enhancements, of which I already have quite a backlog.
What I could do is to work with someone who is writing a GUI to add features that make it easier to support a GUI. The approach I would recommend would be to have the GUI be a wrapper around the CLI and have it expose what the CLI offers. In this case, it would be useful for the CLI to have some options that would be there specifically for communicating with a GUI. For example, as of qpdf 8.3.0, qpdf supports TAB completion with bash and zsh, and this is done by having the exact code that sets up qpdf's command-line parsing also support completion. As such, any time I add any option to qpdf, it is automatically supported by completion. If someone were dynamically constructing a GUI based on available options, it would be possible to add some way for qpdf to provide the information along with additional metadata (categories, layout, etc.) that would make it easier for the GUI to automatically reflect new options to qpdf as it was added. For example, I could imagine some something like qpdf --gui-data that would output something like a json stream that would describe a group of options by category with a mapping to the CLI options to support them. A GUI could run this and dynamically construct a GUI based on the output.
It would also be possible for someone to write a GUI that would provide functionality directly by calling the library. This might be a bit more flexible, but it would require a lot more on-going maintenance and would create a tighter coupling between qpdf and its GUI. For these reasons, I prefer the first option. But if someone wanted to do this, I could help out by moving some of the functionality that's purely implemented in the CLI, such as page splitting and merging, into the library and expose it with helper functions.
There is precedent for my doing stuff like this. In particular, qpdf has a C ABI in addition to the C++ ABI to support interoperability with other languages that can call C functions through a DLL or shared library. The C API is much more limited, but it supports lots of basic functionality, and I know it is used by people from languages such as Pascal (Delphi) and Visual Basic. I added this specifically to help out someone who was creating a Delphi wrapper. This was also the motiviation behind the initial Windows port, and I think the Delphi wrapper and Windows support were a big part of what put qpdf on the map. Additionally, qpdf 8.3.0 added support for dumping data about the PDF file to json. I added this feature to assist a user who was interfacing with qpdf on the CLI from nodejs, and that work was sponsored (they paid me for it). I have also made a few changes to support pikepdf, an excellent Python module for qpdf written by someone else that I use myself.
Regarding payment, I am willing to do sponsored qpdf work, and I have done so on two prior occasions, but there are some constraints: 1) All sponsored work must go into the open source version. I am happy for people to use qpdf in their closed-source systems and use the commercial-friendly Apache license, but if I add something to qpdf to support a commercial user, whatever I change in qpdf has to be part of the core qpdf open source product; and 2) I work according to my own priorities and schedule and won't generally be willing to commit to a particular schedule. However, I will do an estimate of the work. Basically sponsorship may enable me to alter priorities and, in some cases, I have taken a few days of leave from work to do qpdf work, which would be much harder to manage without sponsorship. All that said, what I enjoy most is to do enhance qpdf in ways that directly support other open source efforts, such as all the recent work I've done to add features used by the Linux Printing project to support printing files that contain interactive forms, or the many features I've added in response to suggestions from the community.

@jberkenbilt

regarding your replay "What I could do is to work with someone who is writing a GUI"
Who this one ?? I asked for that but only one accept but just for simple editor not for advanced one.
I asked this:
https://gitlab.com/scarpetta/pdfmixtool/issues/9
& this:
https://github.com/muriloventuroso/pdftricks/issues/28
& this:
https://github.com/linuxmint/xreader/issues/246
& as you see no one interested !

regarding your replay "All sponsored work must go into the open source version"
This is exactly what I was to insist on you after you accept this issue.
From this regard I'm with you 100%. I asked for GUI to be available for all Linux users not just for me.

regarding your replay "I work according to my own priorities and schedule and won't generally be willing to commit to a particular schedule"
Certainly I'm with you ! I did not ask any one to be slave for donation !

from my side the only conditions that I ask before donations are just 2:

sponsored work will be available as a free open source project available for every one,
project aim & road map must in direction to include ALL command line features & powers of QPDF to ensure that it will be real advanced PDF editor,
be available as AppImage/flatpak (one of them or both of them) so as to ensure that every one can utilize the new GUI project.

regarding money: it is available to me the following options:

pre-paid master cards,
master card (bank account),
I'm able to buy Bitcoin then send them to you for your wallet address,
or (I do not recommend it) real money transfer from Iraq to your Bank account or an exchanger account to receive it.

PayPal not allowed to be used for residents in Iraq, so it is useless ......

no one better than you can make GUI. However, if you recommend someone this is different story. You must, in later case, recommend exactly WHO will make GUI so as to be able to trust him.

can you inform me in approximate way about how it will cost to see how much can I cover ?

I just don't have time or inclination to do it, so there's really no point in discussing the "how" at this point. I appreciate your willingness and enthusiasm. If circumstances change and this becomes something I would consider, I will let you know. But right now, I get just a week or two in a year to work on qpdf, and there many things I want to do more than writing a GUI.

@Nokia808: Was just browsing through open Qpdf issues and came across this. If you're really willing to put money behind this I wonder if it might be worth your while to take a look at sites such as Toptal, UpWork, DonationCoder, Rent-a-Coder etc.?

I'm going to close this issue for inactivity. I have no intention of ever working on a gui for qpdf, but I think that the QPDFJob work (added since this was created) could be of help to anyone who did want to write a qpdf gui.


Query Server protocol future/stability.

Hello!
I consider writing custom query server in Python. I'm wondering to what extent I can assume that the query server protocol will be stable (or at least backwards compatible) in the forseeable future.
Are you able to share your thoughts on that?

The query server is protocol is pretty stable. The most recent additions to it over the years are the index_doc for clouseau search integration and nouveau_index_doc (on main only). If you only plan on using a subset of functionality, could try implementing just some of the commands.
Some years ago I had actually used the Python query server from https://github.com/djc/couchdb-python/blob/master/couchdb/view.py for many years in production. It worked decently well with CouchDB 1.x series. Some docs about it: https://couchdb-python.readthedocs.io/en/latest/views.html. The project unfortunately is no longer maintained. But that could provide a starting point, perhaps.

The current stdio based protocol has been stable for over a decade, modulo adding commands, and probably will remain so.
There is some work in the aborted FoundationDB fork that introduces a new HTTP based protocol and that’s something that we might adopt in mainline at some point, but there are no concrete plans for this at the moment.


Run Mode and CloudPRO

set_run_mode() added to set the run mode of the server.
CloudPRO featuress added::

server_build() to provision virtual servers
server_delete() to delete a virtual server
get_resources() to show CloudPRO resource usage

Looks good!


why running run_squad_v2.py in prediction mode with dev-v2.0.json gets zero neg example

In fact, dev-v2.0.json has 5928 neg and 5945 pos, but I get pos 12272 neg 0

Do u able to solve this issue? I have same problem.


Xcode signing issue

Is it possible use following signing?

Is your underlying question whether you need a paid developer account for this? If so, the answer is no, you don't need it. I have my free developer account settings chosen in Team and "development" as the signing cert. Otherwise the same as your screenshot.

I'm not entirely sure what the exact question is either, but the settings look similar to mine.  It seems reasonable to think that @diuming may just be trying to resolve a build problem for which he has no diagnostic output.  I know it took quite some digging for me to figure out what was causing it to fail for me.
As great as the CodeSignUpdate shell script is in the project, it does have one major problem, which is that the error messages it generates aren't displayed since they are written to stdout, which is being redirected for string building.  As a result, it just terminates with exit code 1 with no information about what went wrong.  It does generate useful error messages.  It's just that they are never actually displayed.  So you're left scratching your head about what went wrong.
I have a fork in which I essentially re-wrote the CodeSignUpdate shell script as a Swift script.  Since it doesn't need to use I/O redirection to build strings, it can actually emit its error messages, plus I check a few additional things that could cause problems that it didn't check.  You might find it helpful.  You can find it at https://github.com/chipjarred/SwiftPrivilegedHelper .  I added a README to the Scripts folder to explain how to use it.  It's not much different from the original shell script, except instead of hard coding info in the script, you set them in environment variables in your Run Script phase.
I hope it helps someone


outdated dependencies

https://github.com/auth0/auth0-electron/issues/14

updated lock here https://github.com/auth0-samples/auth0-electron-samples/pull/3


@ character provokes lexig error in block comments

Try to integrate Plant uml diagram in scenarii.
Summary
For quick doc purpose, we tried to insert plantUml diagrams in the feature to have an overview of the contained scenarrii, or for complex scenarii documentation.
Using some EDI plugins it alows to display in front of the feature a graphical view of the scenario or any uml diagram.
Expected Behavior
The feature contains the following :
Feature: Bob and Alice sample
"""
    @startuml
    Alice -> Bob: Authentication Request
    Bob --> Alice: Authentication Response

    Alice -> Bob: Another authentication Request
    Alice <-- Bob: another authentication Response
   @enduml
"""
    Background: blahblah

We expect gherkin lexer to ignore the content of the block comment and run properly.
Current Behavior
The lexer fails with
[...]
Caused by: gherkin.lexer.LexingError: Lexing error [...]

The problem is the character "@".
if we remove the "@" the scenario runs properly, but the plantUml source is not properly parsed.
Possible Solution
Solution would be to ignore @ processing in block comments, or create an escape character delimiter that allows any string inside.
Steps to Reproduce (for bugs)
Add block comment with above example, run feature.
Context & Motivation
We are implemeting behaviour tests in complex environment, with multiple actors. as the feature files count grows its becomes long to read the scenarii to know what it does exactly.
Creating a sequence diagram prior to write the scenario is often really useful. Storing it with the scenario is the best way to keep it up to date and fasten search and understanding of the feature.
Your Environment

Version used: 3.2.1
Operating System and version: Windows 10
link to plantUml : http://en.plantuml.com

Gherkin doesn't have block comments.
""" is for DocStrings, which are intended to be placed underneath steps, not in the description section of a feature.

Ok I understand you point of view about block comments.
Nevertheless, why the @ character fails in the docstring ?
2018-05-25 15:48 GMT+02:00 Aslak Hellesøy<EMAIL_ADDRESS>
Closed #398 https://github.com/cucumber/cucumber/issues/398.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/cucumber/cucumber/issues/398#event-1646681824, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AHWLiL2iYfsIpG28lXVGGsNHgib9r0vQks5t2AuRgaJpZM4UNm9_
.

@samassot As @aslakhellesoy mentioned, Gherkin doesn't support DocStrings in that way. They are intended to be used as multiline arguments to a step definition. e.g.
Given I click 'View Message'
Then I should see a message with:
"""
This is a multiline DocString, which will be passed to the `I should see a message with:` step.
"""

Ok thanks, I was misunderstanding the way to use docstring.
I tried to use correctly the description section : the @ passes if the line
doesn't start with it.
Unfortunatly to get the plantuml detect the diagram, the line has to begin
with the @startuml tag.
I'm ok with it but it would have been nice to be able to join some sequence
diagrams to our features.
If you'r interested, I could show you a screenshot of what it would look
like.
Thanx for your reactivity.
Regards.
Samuel-Alexandre Massot
2018-05-28 13:19 GMT+02:00 Andrew<EMAIL_ADDRESS>
@samassot https://github.com/samassot As @aslakhellesoy
https://github.com/aslakhellesoy mentioned, Gherkin doesn't support
DocStrings in that way. They are intended to be used as multiline arguments
to a step definition. e.g.
Given I click 'View Message'Then I should see a message with:"""This is a multiline DocString, which will be passed to the I should see a message with: step."""
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/cucumber/cucumber/issues/398#issuecomment-392499689,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AHWLiJfxQOyKM90oxPyx2W0imdHkYyZMks5t291egaJpZM4UNm9_
.


Bind Proxmoxmachine Webhook

Summary:
In This PR https://github.com/ionos-cloud/cluster-api-provider-proxmox/pull/42, the machine webhook is introduced/
but the binding was not implemented.

What is that?

Dont know what do you mean


How to select capacity mode serverless with Azure CLI commands (az cosmosdb create)?

In the documentation there is no mention of selecting serverless as an option. Is it even possible to create a serverless cosmos db resource through Azure CLI commands?
https://docs.microsoft.com/en-us/cli/azure/cosmosdb?view=azure-cli-latest#az_cosmosdb_create

For anyone struggling with the same issue as me, I found the solution, see the following:
az cosmosdb create -g $resourceGroupName -n $resourceName --capabilities EnableServerless


Rage test

Not bad :D
Autowall
AutoScope
AutoShoot
all perfectly working fine . You just need to adjust the setting
https://www.youtube.com/watch?v=vH3SpKaM-4c

That's a really good config. For some reason the AA never actually works for me and I always end up shooting the ground, did you do anything special to fix it?

I'm just copying everything from here
#739
I didn't do any modification 🤔

Not bad :D
Autowall
AutoScope
AutoShoot
all perfectly working fine . You just need to adjust the setting
https://www.youtube.com/watch?v=vH3SpKaM-4c

can you try it on an hvh sever or in mm hvh

Osiris doesn't do well vs spinners probably because it doesn't have a resolver

Osiris doesn't do well vs spinners probably because it doesn't have a resolver

it doesn't have multipoint, nor resolver
I could often hit head but I were still getting body aimed cuz I couldnt hit someone's body/head due to lack of multipoint

Not bad :D
Autowall
AutoScope
AutoShoot
all perfectly working fine . You just need to adjust the setting
https://www.youtube.com/watch?v=vH3SpKaM-4c

can you try it on an hvh sever or in mm hvh

already did . i can tap other paste cheat but not premium cheat

Osiris doesn't do well vs spinners probably because it doesn't have a resolver

it doesn't have multipoint, nor resolver
I could often hit head but I were still getting body aimed cuz I couldnt hit someone's body/head due to lack of multipoint

also the engine prediction need to be improve too . sometimes i miss shot even on nospread

Osiris doesn't do well vs spinners probably because it doesn't have a resolver

it doesn't have multipoint, nor resolver
I could often hit head but I were still getting body aimed cuz I couldnt hit someone's body/head due to lack of multipoint

also the engine prediction need to be improve too . sometimes i miss shot even on nospread

there is no engine prediction...

i tried it on an hvh server, it does pretty well for a free open source cheat.
the problem is that it targets fakes, and have a problem shotting reals. it needs a resolver.
the other problem is that then anti aim is easy to counter for the other cheats. anti-aim needs to be improved. and it misses shots quite often.

i tried it on an hvh server, it does pretty well for a free open source cheat.
the problem is that it targets fakes, and have a problem shotting reals. it needs a resolver.
the other problem is that then anti aim is easy to counter for the other cheats. anti-aim needs to be improved. and it misses shots quite often.

The "founder" of Anti aim pull request get away of cheats and course cheating. He also promise put an a resolver in December (this month) but well, he quit of cheating.


Add client_integration docs

[x] I am very sure this PR could not affect performance.

Thanks Fed!


It would be great to be able to search for class names

Sometimes when using Tachyons I blank on what a particular class name is. It'd be awesome if tachyons.io had a search feature where one can search based on class name, property, and value.

Yes this would be great. We could also make some helpers for common text editors (snippets in vim) that give you classname options for each property. Definitely a great idea though.

I was just thinking about this myself. Maybe the quickest way to search would be something like https://community.algolia.com/docsearch/
I'm sure you've seen it before but if not, a good example usage would be on the Vue.js site, top right corner. I'd be happy to add a PR in a couple weeks when I'm done moving.

Feel like this is handled in tables of properties / styles now but let me know if that doesn't fix the case.

I work at Algolia and use tachyons myself. I'll try the new documentation and see if search is needed, and submit something if it is.

I'd love that text editor feature, but this works fine for now...


Fix throwable cause in RecordEncryptionFilter WARN-level logging when log level is set to DEBUG

Type of change

Bugfix

Description
Pass throwable.getCause() to LoggingEventBuilder#setCause in RecordEncryptionFilter.java instead of just passing throwable.
Additional Context
When log level is set to DEBUG or ALL, the WARN-level logs in RecordEncryptionFilter.java don't print. This seems to be because a value (a Throwable) is only passed to setCause when DEBUG logging is enabled, and whatever that value is seems to silently break something in the logger somewhere and so no log is printed.
I found this while looking at the RequestNotSatisfiable issue on OpenShift, where the warning I was looking for appeared in the logs when logging level was set to default values, but disappeared from the logs (even though the same behaviour was occurring) when I turned the logging levels up to DEBUG or ALL via the KROXYLICIOUS_ROOT_LOG_LEVEL environment variable. The change in this PR from throwable to throwable.getCause() fixed this for me.
Checklist
Please go through this checklist and make sure all applicable tasks have been done

[ ] Write tests
[ ] Update documentation
[ ] Make sure all unit/integration tests pass
[ ] Make sure all Sonarcloud warnings are addressed or are justifiably ignored.
[ ] If applicable to the change, trigger the system test suite.  Make sure tests pass.
[ ] If applicable to the change, trigger the performance test suite. Ensure that any degradations to performance numbers are understood and justified.
[ ] Ensure the PR references relevant issue(s) so they are closed on merging.
[ ] For user facing changes, update CHANGELOG.md (remember to include changes affecting the API of the test artefacts too).

NOTE:  You must be a member of @kroxylicious/developers to trigger the system test and performance test suites.  If you are not part of this group, comment on the PR requesting a trigger, tagging @kroxylicious/developers.

This seems to be because a value (a Throwable) is only passed to setCause when DEBUG logging is enabled, and whatever that value is seems to silently break something in the logger somewhere and so no log is printed.

It sounds like you are masking a problem rather than getting to root cause.    Have you got exact steps to reproduce the issue so others can help?

@k-wall to reproduce:

Turn the logging level up to DEBUG or higher using the KROXYLICIOUS_ROOT_LOG_LEVEL environment variable
Trigger any condition in the filter that would trigger that code to run.

I was trying to reproduce the behaviour seen in #1526, with the setup described in this comment, but I'm sure there are other, simpler things you could do that would trigger this code
I think that behaviour in the above issue could be reproduced at a smaller scale by setting max encryptions per DEK to 1 and then pointing a minimum of 2 producers at the proxy instance, all sending produce requests continuously (the bug relies on multiple produce requests being in flight at the time a DEK expires, so more producers = more requests = more likely to occur)

Then do the same with logging level set to default values. At default levels, this code runs and a message is printed as we expect. At DEBUG there is no log printed, and no message to indicate why a log was not printed (or that an attempt at printing a log failed).
I agree that there's clearly something else going on here, because setCause takes a Throwable and the value of throwable is, by all accounts, a Throwable. It should work as it is, but it doesn't, and as far as I can tell the only thing that changes in that logging when DEBUG is enabled is that we pass throwable in as the cause. I'm not sure why throwable.getCause() (which returns a Throwable) works, but passing in throwable itself doesn't.
Happy if others want to take a look at this and propose other solutions 🙂

While I don't dispute the observed behaviour in your testing I don't think this is going to fix it.
If you step through https://github.com/kroxylicious/kroxylicious/blob/3c17246e61585dd6f621887def6f7229b98574ae/kroxylicious-filters/kroxylicious-record-encryption/src/test/java/io/kroxylicious/filter/encryption/RecordEncryptionFilterTest.java#L208 in a debugger with a breakpoint at https://github.com/gracegrimwood/kroxylicious/blob/4a4c05842c42a20b497e5d738798b0bc49a2e87a/kroxylicious-filters/kroxylicious-record-encryption/src/main/java/io/kroxylicious/filter/encryption/RecordEncryptionFilter.java#L103 you can see there is no difference in behaviour when using throwable or throwable.getCause(). I tried varying the log level via https://github.com/gracegrimwood/kroxylicious/blob/46e3dd5f54064bb6b732eb6d8d6ea1557a8281fb/kroxylicious-filters/kroxylicious-record-encryption/src/test/resources/log4j2-test.properties#L17.
So whats causing the problem you have observed?
My stab in the dark is https://github.com/gracegrimwood/kroxylicious/blob/544b1977d17e19ef9acba76cef7f5de6e6a197e9/kroxylicious-operator/src/main/resources/log4j2.yaml#L25 uses bash style argument defaulting and nested variables which quite possibly breaks in log4j. Resulting in who knows what log level actually applying.
So I think we need to make sure logging is being configured properly in the test image.

to help repro, I'm using the k8s example with:
+++ b/kubernetes-examples/filters/record-encryption/base/kroxylicious/kroxylicious-config.yaml
@@ -39,3 +39,5 @@ data:
         selector: TemplateKekSelector
         selectorConfig:
           template: "${topicName}"
+        experimental:
+          maxEncryptionsPerDek: 5

and hammering it with kaf and parallel
printf 'ibm: 99\n%.0s' {1..1000} > messages
parallel -N0 -j 5 'kaf -b minikube:30192 < messages' produce trades ::: {1..5}

provoking logs:
2024-11-25 22:18:45 <epollEventLoopGroup-5-4> WARN  io.kroxylicious.filter.encryption.RecordEncryptionFilter:106 - failed to encrypt records, cause message: io.kroxylicious.filter.encryption.encrypt.RequestNotSatisfiable: failed to reserve an EDEK to encrypt 1 records for topic trades partition 0 after 3 attempts
2024-11-25 22:18:45 <epollEventLoopGroup-5-4> WARN  io.kroxylicious.proxy.internal.FilterHandler:289 - [id: 0x810ea4fa, L:/<IP_ADDRESS>:48244 - R:my-cluster-kafka-0.my-cluster-kafka-brokers.kafka.svc/<IP_ADDRESS>:9092]: Filterrequest for RecordEncryptionFilter@1315371762 PRODUCE ended exceptionally - closing connection. Cause message io.kroxylicious.filter.encryption.encrypt.RequestNotSatisfiable: failed to reserve an EDEK to encrypt 1 records for topic trades partition 0 after 3 attempts
2024-11-25 22:18:45 <epollEventLoopGroup-5-8> WARN  io.kroxylicious.filter.encryption.RecordEncryptionFilter:106 - failed to encrypt records, cause message: io.kroxylicious.filter.encryption.encrypt.RequestNotSatisfiable: failed to reserve an EDEK to encrypt 1 records for topic trades partition 0 after 3 attempts
2024-11-25 22:18:45 <epollEventLoopGroup-5-8> WARN  io.kroxylicious.proxy.internal.FilterHandler:289 - [id: 0x439cf0e2, L:/<IP_ADDRESS>:48282 - R:my-cluster-kafka-0.my-cluster-kafka-brokers.kafka.svc/<IP_ADDRESS>:9092]: Filterrequest for RecordEncryptionFilter@2045593066 PRODUCE ended exceptionally - closing connection. Cause message io.kroxylicious.filter.encryption.encrypt.RequestNotSatisfiable: failed to reserve an EDEK to encrypt 1 records for topic trades partition 0 after 3 attempts

cranking it up with:
+++ b/kubernetes-examples/filters/record-encryption/base/kroxylicious/kroxylicious-deployment.yaml
@@ -24,6 +24,9 @@ spec:
       containers:
       - name: kroxylicious
         image: quay.io/kroxylicious/kroxylicious:0.9.0-SNAPSHOT
+        env:
+        - name: KROXYLICIOUS_APP_LOG_LEVEL
+          value: "DEBUG"

is emitting logs like:
2024-11-25 22:31:44 <epollEventLoopGroup-5-13> WARN  io.kroxylicious.filter.encryption.RecordEncryptionFilter:106 - failed to encrypt records, cause message: io.kroxylicious.filter.encryption.encrypt.RequestNotSatisfiable: failed to reserve an EDEK to encrypt 1 records for topic trades partition 0 after 3 attempts
java.util.concurrent.CompletionException: io.kroxylicious.filter.encryption.encrypt.RequestNotSatisfiable: failed to reserve an EDEK to encrypt 1 records for topic trades partition 0 after 3 attempts
	at java.base/java.util.concurrent.CompletableFuture.encodeRelay(CompletableFuture.java:368) ~[?:?]
	at java.base/java.util.concurrent.CompletableFuture.uniComposeStage(CompletableFuture.java:1189) ~[?:?]
	at java.base/java.util.concurrent.CompletableFuture.thenCompose(CompletableFuture.java:2309) ~[?:?]
	at java.base/java.util.concurrent.CompletableFuture.thenCompose(CompletableFuture.java:144) ~[?:?]
	at io.kroxylicious.filter.encryption.encrypt.InBandEncryptionManager.attemptEncrypt(InBandEncryptionManager.java:116) ~[kroxylicious-record-encryption-0.9.0-SNAPSHOT.jar:?]
	at io.kroxylicious.filter.encryption.encrypt.InBandEncryptionManager.lambda$attemptEncrypt$0(InBandEncryptionManager.java:138) ~[kroxylicious-record-encryption-0.9.0-SNAPSHOT.jar:?]
	at java.base/java.util.concurrent.CompletableFuture.uniComposeStage(CompletableFuture.java:1187) ~[?:?]
	at java.base/java.util.concurrent.CompletableFuture.thenCompose(CompletableFuture.java:2309) ~[?:?]
	at java.base/java.util.concurrent.CompletableFuture.thenCompose(CompletableFuture.java:144) ~[?:?]
	at io.kroxylicious.filter.encryption.encrypt.InBandEncryptionManager.attemptEncrypt(InBandEncryptionManager.java:116) ~[kroxylicious-record-encryption-0.9.0-SNAPSHOT.jar:?]
	at io.kroxylicious.filter.encryption.encrypt.InBandEncryptionManager.lambda$attemptEncrypt$0(InBandEncryptionManager.java:138) ~[kroxylicious-record-encryption-0.9.0-SNAPSHOT.jar:?]
	at java.base/java.util.concurrent.CompletableFuture.uniComposeStage(CompletableFuture.java:1187) ~[?:?]
	at java.base/java.util.concurrent.CompletableFuture.thenCompose(CompletableFuture.java:2309) ~[?:?]
	at java.base/java.util.concurrent.CompletableFuture.thenCompose(CompletableFuture.java:144) ~[?:?]
	at io.kroxylicious.filter.encryption.encrypt.InBandEncryptionManager.attemptEncrypt(InBandEncryptionManager.java:116) ~[kroxylicious-record-encryption-0.9.0-SNAPSHOT.jar:?]
	at io.kroxylicious.filter.encryption.encrypt.InBandEncryptionManager.encrypt(InBandEncryptionManager.java:94) ~[kroxylicious-record-encryption-0.9.0-SNAPSHOT.jar:?]
	at io.kroxylicious.filter.encryption.RecordEncryptionFilter.lambda$maybeEncodeProduce$1(RecordEncryptionFilter.java:92) ~[kroxylicious-record-encryption-0.9.0-SNAPSHOT.jar:?]
	at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197) ~[?:?]
	at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625) ~[?:?]
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) ~[?:?]
--
Caused by: io.kroxylicious.filter.encryption.encrypt.RequestNotSatisfiable: failed to reserve an EDEK to encrypt 1 records for topic trades partition 0 after 3 attempts
	at io.kroxylicious.filter.encryption.encrypt.InBandEncryptionManager.attemptEncrypt(InBandEncryptionManager.java:112) ~[kroxylicious-record-encryption-0.9.0-SNAPSHOT.jar:?]
	at io.kroxylicious.filter.encryption.encrypt.InBandEncryptionManager.lambda$attemptEncrypt$0(InBandEncryptionManager.java:138) ~[kroxylicious-record-encryption-0.9.0-SNAPSHOT.jar:?]
	at java.base/java.util.concurrent.CompletableFuture.uniComposeStage(CompletableFuture.java:1187) ~[?:?]
	... 91 more
2024-11-25 22:31:44 <epollEventLoopGroup-5-13> WARN  io.kroxylicious.proxy.internal.FilterHandler:289 - [id: 0x7760776d, L:/<IP_ADDRESS>:58814 - R:my-cluster-kafka-0.my-cluster-kafka-brokers.kafka.svc/<IP_ADDRESS>:9092]: Filterrequest for RecordEncryptionFilter@96014248 PRODUCE ended exceptionally - closing connection. Cause message io.kroxylicious.filter.encryption.encrypt.RequestNotSatisfiable: failed to reserve an EDEK to encrypt 1 records for topic trades partition 0 after 3 attempts
java.util.concurrent.CompletionException: io.kroxylicious.filter.encryption.encrypt.RequestNotSatisfiable: failed to reserve an EDEK to encrypt 1 records for topic trades partition 0 after 3 attempts
	at java.base/java.util.concurrent.CompletableFuture.encodeRelay(CompletableFuture.java:368) ~[?:?]
	at java.base/java.util.concurrent.CompletableFuture.uniComposeStage(CompletableFuture.java:1189) ~[?:?]
	at java.base/java.util.concurrent.CompletableFuture.thenCompose(CompletableFuture.java:2309) ~[?:?]
	at java.base/java.util.concurrent.CompletableFuture.thenCompose(CompletableFuture.java:144) ~[?:?]
	at io.kroxylicious.filter.encryption.encrypt.InBandEncryptionManager.attemptEncrypt(InBandEncryptionManager.java:116) ~[kroxylicious-record-encryption-0.9.0-SNAPSHOT.jar:?]
	at io.kroxylicious.filter.encryption.encrypt.InBandEncryptionManager.lambda$attemptEncrypt$0(InBandEncryptionManager.java:138) ~[kroxylicious-record-encryption-0.9.0-SNAPSHOT.jar:?]
	at java.base/java.util.concurrent.CompletableFuture.uniComposeStage(CompletableFuture.java:1187) ~[?:?]
	at java.base/java.util.concurrent.CompletableFuture.thenCompose(CompletableFuture.java:2309) ~[?:?]
	at java.base/java.util.concurrent.CompletableFuture.thenCompose(CompletableFuture.java:144) ~[?:?]
	at io.kroxylicious.filter.encryption.encrypt.InBandEncryptionManager.attemptEncrypt(InBandEncryptionManager.java:116) ~[kroxylicious-record-encryption-0.9.0-SNAPSHOT.jar:?]
	at io.kroxylicious.filter.encryption.encrypt.InBandEncryptionManager.lambda$attemptEncrypt$0(InBandEncryptionManager.java:138) ~[kroxylicious-record-encryption-0.9.0-SNAPSHOT.jar:?]
	at java.base/java.util.concurrent.CompletableFuture.uniComposeStage(CompletableFuture.java:1187) ~[?:?]
	at java.base/java.util.concurrent.CompletableFuture.thenCompose(CompletableFuture.java:2309) ~[?:?]
	at java.base/java.util.concurrent.CompletableFuture.thenCompose(CompletableFuture.java:144) ~[?:?]
	at io.kroxylicious.filter.encryption.encrypt.InBandEncryptionManager.attemptEncrypt(InBandEncryptionManager.java:116) ~[kroxylicious-record-encryption-0.9.0-SNAPSHOT.jar:?]
	at io.kroxylicious.filter.encryption.encrypt.InBandEncryptionManager.encrypt(InBandEncryptionManager.java:94) ~[kroxylicious-record-encryption-0.9.0-SNAPSHOT.jar:?]
	at io.kroxylicious.filter.encryption.RecordEncryptionFilter.lambda$maybeEncodeProduce$1(RecordEncryptionFilter.java:92) ~[kroxylicious-record-encryption-0.9.0-SNAPSHOT.jar:?]
	at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197) ~[?:?]
	at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625) ~[?:?]
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) ~[?:?]
--
Caused by: io.kroxylicious.filter.encryption.encrypt.RequestNotSatisfiable: failed to reserve an EDEK to encrypt 1 records for topic trades partition 0 after 3 attempts
	at io.kroxylicious.filter.encryption.encrypt.InBandEncryptionManager.attemptEncrypt(InBandEncryptionManager.java:112) ~[kroxylicious-record-encryption-0.9.0-SNAPSHOT.jar:?]
	at io.kroxylicious.filter.encryption.encrypt.InBandEncryptionManager.lambda$attemptEncrypt$0(InBandEncryptionManager.java:138) ~[kroxylicious-record-encryption-0.9.0-SNAPSHOT.jar:?]
	at java.base/java.util.concurrent.CompletableFuture.uniComposeStage(CompletableFuture.java:1187) ~[?:?]
	... 91 more
2024-11-25 22:31:44 <epollEventLoopGroup-5-13> DEBUG io.kroxylicious.proxy.internal.FilterHandler:392 - [id: 0x7760776d, L:/<IP_ADDRESS>:58814 ! R:my-cluster-kafka-0.my-cluster-kafka-brokers.kafka.svc/<IP_ADDRESS>:9092]: Channel closed

will try with the root log level env var

and with the root log level:
    - name: KROXYLICIOUS_ROOT_LOG_LEVEL
      value: DEBUG

2024-11-25 22:39:09 <epollEventLoopGroup-5-1> WARN  io.kroxylicious.filter.encryption.RecordEncryptionFilter:106 - failed to encrypt records, cause message: io.kroxylicious.filter.encryption.dek.DestroyedDekException
java.util.concurrent.CompletionException: io.kroxylicious.filter.encryption.dek.DestroyedDekException
	at java.base/java.util.concurrent.CompletableFuture.encodeRelay(CompletableFuture.java:368) ~[?:?]
	at java.base/java.util.concurrent.CompletableFuture.completeRelay(CompletableFuture.java:377) ~[?:?]
	at java.base/java.util.concurrent.CompletableFuture$UniCompose.tryFire(CompletableFuture.java:1152) ~[?:?]
	at java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:510) [?:?]
	at java.base/java.util.concurrent.CompletableFuture.postFire(CompletableFuture.java:614) [?:?]
	at java.base/java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:844) [?:?]
	at java.base/java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:482) [?:?]
	at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:173) [netty-common-4.1.114.Final.jar:4.1.114.Final]
	at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:166) [netty-common-4.1.114.Final.jar:4.1.114.Final]
	at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:472) [netty-common-4.1.114.Final.jar:4.1.114.Final]
	at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:405) [netty-transport-classes-epoll-4.1.114.Final.jar:4.1.114.Final]
	at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) [netty-common-4.1.114.Final.jar:4.1.114.Final]
	at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) [netty-common-4.1.114.Final.jar:4.1.114.Final]
	at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) [netty-common-4.1.114.Final.jar:4.1.114.Final]
	at java.base/java.lang.Thread.run(Thread.java:840) [?:?]
Caused by: io.kroxylicious.filter.encryption.dek.DestroyedDekException
	at io.kroxylicious.filter.encryption.dek.Dek.encryptor(Dek.java:113) ~[kroxylicious-record-encryption-0.9.0-SNAPSHOT.jar:?]
	at io.kroxylicious.filter.encryption.encrypt.InBandEncryptionManager.lambda$attemptEncrypt$0(InBandEncryptionManager.java:119) ~[kroxylicious-record-encryption-0.9.0-SNAPSHOT.jar:?]
	at java.base/java.util.concurrent.CompletableFuture$UniCompose.tryFire(CompletableFuture.java:1150) ~[?:?]
	... 12 more
2024-11-25 22:39:09 <epollEventLoopGroup-5-1> WARN  io.kroxylicious.proxy.internal.FilterHandler:289 - [id: 0x6994ed03, L:/<IP_ADDRESS>:50920 - R:my-cluster-kafka-0.my-cluster-kafka-brokers.kafka.svc/<IP_ADDRESS>:9092]: Filterrequest for RecordEncryptionFilter@1751924427 PRODUCE ended exceptionally - closing connection. Cause message io.kroxylicious.filter.encryption.dek.DestroyedDekException
java.util.concurrent.CompletionException: io.kroxylicious.filter.encryption.dek.DestroyedDekException
	at java.base/java.util.concurrent.CompletableFuture.encodeRelay(CompletableFuture.java:368) ~[?:?]
	at java.base/java.util.concurrent.CompletableFuture.completeRelay(CompletableFuture.java:377) ~[?:?]
	at java.base/java.util.concurrent.CompletableFuture$UniCompose.tryFire(CompletableFuture.java:1152) ~[?:?]
	at java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:510) [?:?]
	at java.base/java.util.concurrent.CompletableFuture.postFire(CompletableFuture.java:614) [?:?]
	at java.base/java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:844) [?:?]
	at java.base/java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:482) [?:?]
	at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:173) [netty-common-4.1.114.Final.jar:4.1.114.Final]
	at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:166) [netty-common-4.1.114.Final.jar:4.1.114.Final]
	at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:472) [netty-common-4.1.114.Final.jar:4.1.114.Final]
	at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:405) [netty-transport-classes-epoll-4.1.114.Final.jar:4.1.114.Final]
	at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) [netty-common-4.1.114.Final.jar:4.1.114.Final]
	at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) [netty-common-4.1.114.Final.jar:4.1.114.Final]
	at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) [netty-common-4.1.114.Final.jar:4.1.114.Final]
	at java.base/java.lang.Thread.run(Thread.java:840) [?:?]
Caused by: io.kroxylicious.filter.encryption.dek.DestroyedDekException
	at io.kroxylicious.filter.encryption.dek.Dek.encryptor(Dek.java:113) ~[kroxylicious-record-encryption-0.9.0-SNAPSHOT.jar:?]
	at io.kroxylicious.filter.encryption.encrypt.InBandEncryptionManager.lambda$attemptEncrypt$0(InBandEncryptionManager.java:119) ~[kroxylicious-record-encryption-0.9.0-SNAPSHOT.jar:?]
	at java.base/java.util.concurrent.CompletableFuture$UniCompose.tryFire(CompletableFuture.java:1150) ~[?:?]
	... 12 more
2024-11-25 22:39:09 <epollEventLoopGroup-5-13> DEBUG io.kroxylicious.proxy.internal.codec.KafkaResponseDecoder:54 - ChannelHandlerContext(responseDecoder, [id: 0x0a0008af, L:/<IP_ADDRESS>:50898 - R:my-cluster-kafka-0.my-cluster-kafka-brokers.kafka.svc/<IP_ADDRESS>:9092]): Recovered correlation Correlation(apiKey=PRODUCE, apiVersion=5, downstreamCorrelationId=740, decodeResponse=false, recipient=null, promise=null) for upstream correlation id 118
2024-11-25 22:39:09 <epollEventLoopGroup-5-16> DEBUG io.kroxylicious.proxy.internal.codec.KafkaResponseDecoder:54 - ChannelHandlerContext(responseDecoder, [id: 0xb8b4923f, L:/<IP_ADDRESS>:50918 - R:my-cluster-kafka-0.my-cluster-kafka-brokers.kafka.svc/<IP_ADDRESS>:9092]): Recovered correlation Correlation(apiKey=PRODUCE, apiVersion=5, downstreamCorrelationId=917, decodeResponse=false, recipient=null, promise=null) for upstream correlation id 13
2024-11-25 22:39:09 <epollEventLoopGroup-5-2> DEBUG io.kroxylicious.proxy.internal.codec.KafkaResponseDecoder:54 - ChannelHandlerContext(responseDecoder, [id: 0x80cebba3, L:/<IP_ADDRESS>:50916 - R:my-cluster-kafka-0.my-cluster-kafka-brokers.kafka.svc/<IP_ADDRESS>:9092]): Recovered correlation Correlation(apiKey=PRODUCE, apiVersion=5, downstreamCorrelationId=801, decodeResponse=false, recipient=null, promise=null) for upstream correlation id 13
2024-11-25 22:39:09 <epollEventLoopGroup-5-1> DEBUG io.kroxylicious.proxy.internal.FilterHandler:392 - [id: 0x6994ed03, L:/<IP_ADDRESS>:50920 ! R:my-cluster-kafka-0.my-cluster-kafka-brokers.kafka.svc/<IP_ADDRESS>:9092]: Channel closed

So logging is working as expected for you @robobario?

have checked and that bashy style recursive lookup looks to be supported:
https://logging.apache.org/log4j/2.x/manual/configuration.html#property-substitution

So logging is working as expected for you @robobario?

yes logging looks okay to me on the upstream image in quay, though I'm on linux with podman under minikube, could be an environmental difference. @gracegrimwood want to give it a go with that reduced encryptions per dek configuration using the k8s examples?

@robobario thanks! I'll give it a go locally with Minikube, as I'm wondering if it's a difference in how OpenShift does things. I would have thought it would be the same but perhaps not.
It's interesting that you aren't seeing the issue, because I was setting
- name: KROXYLICIOUS_ROOT_LOG_LEVEL
  value: DEBUG

in the kroxylicious deployment, same as you. I didn't try KROXYLICIOUS_APP_LOG_LEVEL but I'll give that a go with Minikube too, and if I need to I can spin up another ROSA cluster and see if it does the same thing there.

@SamBarker regarding this:

My stab in the dark is https://github.com/gracegrimwood/kroxylicious/blob/544b1977d17e19ef9acba76cef7f5de6e6a197e9/kroxylicious-operator/src/main/resources/log4j2.yaml#L25 uses bash style argument defaulting and nested variables which quite possibly breaks in log4j. Resulting in who knows what log level actually applying.

I wasn't using the operator stuff at all, I was using the Kroxylicious images on quay.io and deployed them with a lightly modified version of the YAMLs in the record encryption kubernetes example. I also saw the same issue on both 0.9.0-SNAPSHOT and 0.8.0, and we didn't even have the kroxylicious-operator module in 0.8.0, so I think that any issues with arguments in the operator are probably unrelated.

So I think we need to make sure logging is being configured properly in the test image.

Logging in the images should be configured via environment variables (like the ones Rob set in his deployments), I wouldn't think the images themselves would be an issue. It's worth a look though.

Logging in the images should be configured via environment variables (like the ones Rob set in his deployments), I wouldn't think the images themselves would be an issue. It's worth a look though.

Yeah, I chose the wrong words. I just meant in the running container but @robobario has confirmed that the vars work and that the syntax is valid so think thats a dead end.

I've tested on minikube and I don't see this issue, which is very weird. I'll try on OpenShift Local and then try on another ROSA cluster, I have a theory that it might actually be something to do with how OpenShift handles container logs...


Incomplete API calls

It seems that the api calls are always being cut off at the end.
For example I'm only able to pull 5 characters max using the regular api call, and for the example provided in the GIT only 3 (Seele, Sivler Wolf, Jing Yuan)
https://api.mihomo.me/sr_info_parsed/800333171?lang=en
Does this api require pagination? I wasn't able to find any documentation at all about this. Can't seem to make it load all the characters I have.

The api only returns the characters displayed in your in-game profile.

Thanks! Unfortunate to hear.


[Documentation Issue]

Page Name: dns-usage
Release: 0.13.0
changes.begin()  change to changes.create()

Thanks for the report!


Bump dotnet version to dotnet 5

Bumped used docker image to .net 5
Bumped used sonar scanner version to 5.X (required for .net 5)
Bumped installed .net runtime version to 5
Fixed an issue with JRE installation
Updated readme because the action was tested with a selfhosted sonarQube

Thanks for the .NET 5.0 and Sonar Scanner bump, good timing with the 5.0 release!
Did a quick test locally and it seems to work.  I'll probably update the readme with a reference to an earlier release of this action if .NET 3.1 is required.
Also thanks for testing it with a self-hosted SonarQube server, I haven't been able to my self.

I've published version 2.0-beta with the new .NET 5 support.