Release v5.0.3

The v5.0.1 has been pushed out to beta. Let us use the following milestone to track the issues for which it would be nice to have fixes for:
https://github.com/commons-app/apps-android-commons/milestone/11
The issues kept in the milestone so far are:

[x] #5758
[ ] #5218
[ ] #5689
[x] #5692

Try to converge the following open PR:

[x] #5771
[ ] #4902
[x] #5761

We could use this issue to discuss further regarding this release 🙂
PS: For the note, I've also created a milestone for v5.1.0 and tagged an issue which would be nice to have in the same.

Following @mnalis' suggestion, I just pushed out v5.0.3 with the changes accumulated so far. So, renaming this issue as v5.0.3 for now.
I suppose one major issue that has been reported a bit repeatedly is #5758. So, if we get around finding a fix for it, I suppose we could do a bigfix release.

Fantastic, great to see such a healthy release pace. :-)

@sivaraam With GSoC merged and working better than ever, plus Nearby greatly improved, how about releasing a beta? :-)

@sivaraam I pushed the SDK upgrade deadline to Nov 1, 2024, so we can release without waiting for #5770 if it is before that date. It would be great to do a stable release within that window as there is a possibility that SDK upgrade will take time. Thanks! :-)

That's nice. I'll look into doing a release soon.

Flag of Loei Province
https://commons.wikimedia.org/wiki/File%3AFlag_of_Loei_Province.png

I had a few hiccups with building the project. I've now resovled them. I'll hopefully release a beta version by tbis weekend :-)

I was just trying to a sanity test of the app using the production variant of the APK to cross check if everything works fine and noticed a weird issue with the upload queue icon flickering and not being visible at all times when there is a pending upload. Was this noticed during the development of the change ?
Here are screen recording to demonstrate the issue: Queue icon flickering | Queue icon only visible after app reopen

I had not seen the first issue in a while, I thought it was solved. Would you mind creating an issue?
The second issue was found 3 weeks ago and is being worked on actively: https://github.com/commons-app/apps-android-commons/issues/5832

I've opened an issue here: #5847
I suppose we could do a beta release with this issue but we need at least a stopgap before the production release as it is basically impossible to manage the uploads when the icon is not visible at all.

The second issue was found 3 weeks ago and is being worked on actively: https://github.com/commons-app/apps-android-commons/issues/5832

I actually added the second one also as a proof to show that the queue is basically invisible while one upload is in progress. You could see the queue icon reappear after I close an reopen the app near the end of the video. I didn't notice the nearby issue that you pointed out. Good to know it is being actively worked on, though.

I was trying to test the release APK and it seems to me like #5898 is a bit of a blocker for the release as it seems to result in crashes in main flows (after each upload and while using custom selector). Fortunately, it is good that #5902 partially fixed the issue. It seems there are some non-complete changes in it, though. So, let's release a beta once the pending changes are done.

Yes I agree that the app is not in a great shape now.

Alternatively, I've pushed out a separate branch v5.1.0 which does not have changes in #5891 and #5902. It seems to be working fine without the crashes mentioned above. @nicolas-raoul could you also verify if that works fine without issues ?
If so, I'll proceed to release it to the beta track.

Got it. I hope we could address it separately. I'll proceed with creating the release notes for this release and pushing the app out to the beta track.

Great! 🙂

https://github.com/commons-app/apps-android-commons/issues/5910

https://github.com/commons-app/apps-android-commons/issues/5845#issuecomment-2451096617

After much delay I just tagged the v5.1.0 for the beta release with the changes in the v5.1.0 branch. I was planning to push it out to beta in Play store as the current troubles blocking it could hopefully be fixed before the production release.
I got stuck at one point, though. It seems we now request the FOREGROUND_SERVICE_DATA_SYNC permission. Google Play is asking us to fill a declaration for the same. It seems to have been introduced recently [ref]. It is not clear why we had to add the same for the SDK 34 upgrade. Could you possibly clarify the same @rohit9625 ?

We are using Foreground Service here and creating ForegroundInfo here to show Upload Progress. When targetting API 34, we must specify a Foreground Service Type. I followed this documentation and declared the service here in AndroidManifest file. Declaring that service requires FOREGROUND_SERVICE_DATA_SYNC.

Thank you very much for the details! I will look into doing the needful 🙂

Just wanted to mention here that the beta of v5.1.0 has been published successfully in Play Store and is available to our testers.
I've also announced the beta release itself on the mailing list as I thought it would be worthwhile to communicate the removal of the limited connection mode beforehand to the community
<EMAIL_ADDRESS>

We could focus on the pending issues such as :

[ ] https://github.com/commons-app/apps-android-commons/issues/5910
[ ] https://github.com/commons-app/apps-android-commons/issues/5845#issuecomment-2451096617
[ ] https://github.com/commons-app/apps-android-commons/pull/5901
[ ] https://github.com/commons-app/apps-android-commons/pull/5914 and other latest changes in main

Just wanted to mention here that the beta of v5.1.0 has been published successfully in Play Store and is available to our testers.

Glad to see new release! :rocket:
However, it would've be advisable in the future to mark beta releases with beta in the tag name, e.g. like we had for e.g. v4.2.0-beta.
As it was tagged with just plain numbers, it has already been picked up and published as release version by F-droid. Hopefully it's not too buggy :cold_sweat:  (note: it is also possible to publish betas on F-droid, so only people who have "Unstable updates" enabled will receive the update automatically).

I've also announced the beta release itself on the mailing list as I thought it would be worthwhile to communicate the removal of the limited connection mode to the community before the production release on Play Store. ( ref )

I have yet to test new release, but while I hope that new queue fixes upload issues / data losses (which was by far the biggest problem of the app IMHO, e.g. https://github.com/commons-app/apps-android-commons/issues/5762, https://github.com/commons-app/apps-android-commons/issues/5231, ...), on the first sight loss of limited connection mode sounds problematic too, esp. where one is on metered networks where they'd want to conserve as much bandwidth as possible before they get to free wifi.
Can one choose to have all uploads of media be paused by default (or paused always when on mobile data) in new regime?
I'll have to test it soon when I get some free time.

Glad to see new release! 🚀

❤

However, it would've be advisable in the future to mark beta releases with beta in the tag name, e.g. like we had for e.g. v4.2.0-beta. As it was tagged with just plain numbers, it has already been picked up and published as release version by F-droid.

I agree. This is certainly something that I should've done but missed. Thanks for pointing it out.

Hopefully it's not too buggy 😰

It certainly is not too buggy. You don't have to worry. We've tried to ensure that the basic functionality like uploads work without issues before the release. There are just some glitches here and there.

(note: it is also possible to publish betas on F-droid, so only people who have "Unstable updates" enabled will receive the update automatically).

Thanks for this note. Will definitely release this as a beta version compatible with Play Store and F-droid from the next release!

I have yet to test new release, but while I hope that new queue fixes upload issues / data losses (which was by far the biggest problem of the app IMHO, e.g. #5762, #5231, ...), on the first sight loss of limited connection mode sounds problematic too, esp. where one is on metered networks where they'd want to conserve as much bandwidth as possible before they get to free wifi.
Can one choose to have all uploads of media be paused by default (or paused always when on mobile data) in new regime? I'll have to test it soon when I get some free time.

This is a good suggestion. Having some control over the the default state of the upload based on different networks would certainly be worthwhile to have, I believe. Could you raise a separate issue regarding the same?

Hi @sivaraam can we add this issue in milestone for v5.1.0 or for v5.2.0 https://github.com/commons-app/apps-android-commons/issues/5994#issue-2717958246 considering as security patch. WDYT?

Sure, Nicolas. We could certainly include it. 👍🏼

The app now feels much more stable than 2 weeks ago somehow, almost no "wait" popups anymore. Good time for another beta I would say. :-)

I haven't used the beta as I focused on main, but if feedback was good then releasing it is would make sense. 🙂

Sure, Nicolas. I'll try to get it out to production soon including the fix mentioned by Neel and the fix for upload icon flickering.
Excuse the delay. I've got held up with some personal work.

Just wanted to update here that I pushed out v5.1.1 with the couple of changes that I mentioned and started a staged production roll out on Google Play 🙂
I'll look into publishing the other accumulated changes as a new beta soon. Thank you everyone for your continued contributions to the app! It is what helps the app thrive ❤


Rituraj dev

@djangoconfire
i have seen you have changed some code for angular layer! why is this so?


computed fields on one note aren't usable in a dataview table in another note?

If I have a note with a computed field, for example:
type:: #tasks
creation date:: 2021-04-30
last checkin:: 2021-04-30
next checkin:: `= this.last-checkin + this.recur-length`
due date::
frequency:: #frequency/monthly
recur-length:: 30 days
completed::

The next checkin field gets generated correctly within the note.
If I then have another, separate note in which I have a dataview table to aggregate some notes, for example:
table next-checkin
from #tasks

I'll get errors (inline in the table) for each note with a calculated field:
Dataview (for inline query ''): Operator '+' is not supported for 'null' and 'null
It looks like the computed field is calculated within the context of the note with the dataview table (which does not have last-checkin or recur-length fields), not the original note in which it appears?
Hoping the above is enough to reproduce, let me know if I can provide additional information.
Many thanks for this plugin and any help you can provide!

Facing the same issue and my understanding of this so far is that the expressions are fetched dynamically and refreshed every few seconds and so the result of the expression is never a part of the file content. One way I could see this working without burning in the result from the expression is perhaps to recursively execute the expression if a field has an expression as a value instead of an actual value.
See also https://github.com/blacksmithgu/obsidian-dataview/issues/167

It's possible to implement this, but it involves creating a computation graph over the vault (i.e., which pages refer to data from other pages). I will look into it eventually, but I'm currently working on QOL features in the short term.

Metadata Menu plugin should cover some of your needs for a while, I believe.

Is there any progress on this feature?


Errors

File "train.py", line 114, in
target = target.type(torch.FloatTensor)
NameError: name 'target' is not defined

You need to run it with --cuda. CUDA_VISIBLE_DEVICES=<your_gpu_id> python train.py --cuda


Make PlayMorphia framework support SCRAM-SHA-1 auth, refactor

Make sure to expand the last two files to see the majority of the changes, the rest is just deletion of generated files


Bug when installing a site as an application

Bug when installing a site as an application.
If you install any site as an application, then after installation in this application appears a black bar, if you click next to the icon of extensions and the icon itself, then the usual pop-up windows of extensions and settings of the downloaded application, Example after installing YouTube:

While this issue may have been closed awhile ago, some upstream changes to theming have effectively fixed this issue. Web applications (PWAs) now render properly under Aero Glass.

Thanks for the answer.


Feat: Added Available Condition to apply_controller

Description of your changes

Fixes #
I have:

[x] Read and followed Caravel's Code of conduct.
[x] Run make reviewable to ensure this PR is ready for review.

How has this code been tested

Special notes for your reviewer

I noticed there were some problems with the e2e, I will fix that in the future PR.

(Will Add E2E test for this in the future PR)

I wonder what issue is this PR trying to resolve?


Suspending and updating image kills ongoing plots

Is it possible to update without loosing progress on current plots?

No, unfortunately restarting the entire Docker container is a lot like rebooting your PC.  All plotting jobs are killed and can't be resumed.  I recommend that when you have running plots and need to restart/update the image:

Plotting | Stop Plotman -> this prevents new plots from being launched, let's existing ones keep running.
Wait for existing plots to complete.
Then restart/update the Machinaris image/container.

Hope this helps!


Fixes for cmdline handling

Codecov Report
Base: 66.66% // Head: 67.47% // Increases project coverage by +0.81% :tada:

Coverage data is based on head (f926ec8) compared to base (1e4e368).
Patch coverage: 72.54% of modified lines in pull request are covered.

Additional details and impacted files
@@            Coverage Diff             @@
##             main      #26      +/-   ##
==========================================
+ Coverage   66.66%   67.47%   +0.81%
==========================================
  Files          16       16
  Lines        1734     1765      +31
  Branches      790      796       +6
==========================================
+ Hits         1156     1191      +35
+ Misses        134      133       -1
+ Partials      444      441       -3

Impacted Files
Coverage Δ

include/patch/cmdline.h
100.00% <ø> (ø)

src/cmdline.cpp
75.94% <72.54%> (+4.91%)
:arrow_up:

app/main.cpp
66.66% <0.00%> (-4.77%)
:arrow_down:

src/locator.cpp
86.84% <0.00%> (-0.18%)
:arrow_down:

include/patch/applier.h
100.00% <0.00%> (ø)

include/patch/locator.h
100.00% <0.00%> (ø)

src/applier.cpp
76.69% <0.00%> (+0.22%)
:arrow_up:

src/parser.cpp
65.60% <0.00%> (+0.36%)
:arrow_up:

src/system.cpp
49.00% <0.00%> (+0.51%)
:arrow_up:

... and 1 more

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 at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


chore(firestore-bigquery-export): migration to Node.js v12

Checklist

[x] Update extension yaml resources -> properties to contain runtime: {runtime: nodejs12}
[x] Ensure compilerOptions are updated to include es2019
[x] Update firebase-functions dependency to latest
[x] Update url for pricing in readme to https://firebase.google.com/support/faq#extensions-pricing

Codecov Report

Merging #662 (02c226a) into next (612cbbf) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             next     #662   +/-   ##
=======================================
  Coverage   50.65%   50.65%
=======================================
  Files          30       30
  Lines        1313     1313
  Branches      193      193
=======================================
  Hits          665      665
  Misses        647      647
  Partials        1        1

Testing
Fails to install


[20.09] pidgin-skypeweb: 1.6 -> 1.7

Motivation for this change
backport of #97232
(cherry picked from commit 3aafbb6498badc83efd26b4864d86c74aed1f9a5)
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[x] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

fixes connection with skype.

@dasJ for nix-review

Result of nixpkgs-review pr 99720 1

Unfortunately NixOS 20.09 has reached its end-of-life status on 2021-07-01, one
month after the release of NixOS 21.05.
Since we do not accept any changes to its branches anymore, I'm closing this pull
request.


Upcall support for aarch64

This PR implements basic queue and restore upcall operations for aarch64. The implementation largely follows the x86 version, only with differences due to the exception/interrupt handling paths.
Functionality was tested with a "simple" unmapped page test. The test writes to some region of memory that is not mapped, an exception is triggered in the kernel which is sent as an upcall, the upcall handler patches that address to some valid mapped region of memory, and the test then checks if the correct value was written and if the upcall handler modified some register state.
Now the ARM kernel can handle basic upcalls sent to user space. Switching to a supervisor stack is left for future work.

LGTM. Do you think the test you describe could be implemented as a test that could be run by the test harnesses? Doesn't have to be for this PR, but it'd be nice to have a basic "does upcall still work" test.

Yes, maybe? I would have to check this to make sure it does not interfere with other tests. The test is architecture specific since it modifies the upcall frame, so I would have to think a little more on how to make this test a little more generic. I can follow this up with another PR.


Wood Oaks Jr high(The file is nb27.org)

I made it into a .zip its not the original
swot-master.zip

@anthonyk2923 I am sorry, I have to close the request without merging, because you made a mistake in a request and requested to merge too many files, most of them do not relate to the organization which you would like to add to this repository. Please ensure that you are familiar with this repository rules located at the bottom of this page and submit a new request with the correct information. Thank you for your understanding!


Use EncodeUri() if part of the URL path or EncodeUriComponent() if used as a URL parameter

https://github.com/rnadigital/monita-global-gtm-template/blob/0f2c335cbc430409d9cb24318f8f56ae6f18ab66/template.tpl#LL80C61-L80C71
When reviewing your template we've noticed that it is using parameters to build a url. It's a best practice to use EncodeUri() if part of the URL path or EncodeUriComponent() if used as a URL parameter.

Thank you. I've fixed the issue in RELEASE-1.0.1


[SvelteKit] js error in build

Hi,
Ran into an issue when trying to make a vitebook build with sveltekit
npm run vitebook:build
npm run vitebook:preview

serves a build that gives a js error:
Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'classList')
This can be reproduced in the official svetelkit example
by running the build and preview commands.
Thanks in advance for any help

hydratable compiler option was missing, add this to your config to resolve. Let me know if issue persists.

Thanks so much, solution worked.


Feature/90 known types

Motivation
Fixes #90. Scenarios 1 and 2.
Checklist

[x] Code follows coding conventions held in this repo
[x] Automated tests have been added
[x] Tests are passing
[ ] Docs have been updated (if applicable)
[x] Temporary settings (e.g. variables used during development and testing) have been reverted to defaults

How to test
Test that models are generated for senarios 1 and 2 and everything else works without a change.

I will redo the review and wait for tracking header support with that.

Mind the https://github.com/alanta/Kontent.Statiq/issues/21

Codecov Report

Merging #165 (99a2261) into master (0afa18c) will increase coverage by 88.72%.
The diff coverage is 92.13%.

: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
@@             Coverage Diff             @@
##           master     #165       +/-   ##
===========================================
+ Coverage        0   88.72%   +88.72%
===========================================
  Files           0       34       +34
  Lines           0     1188     +1188
  Branches        0      115      +115
===========================================
+ Hits            0     1054     +1054
- Misses          0      109      +109
- Partials        0       25       +25

Impacted Files
Coverage Δ

...ontent.Ai.ModelGenerator.Core/CodeGeneratorBase.cs
48.10% <0.00%> (ø)

...nt.Ai.ModelGenerator.Core/DeliveryCodeGenerator.cs
71.92% <ø> (ø)

...ore/Generators/Class/DeliveryClassCodeGenerator.cs
100.00% <ø> (ø)

...Generators/Class/DeliveryClassCodeGeneratorBase.cs
100.00% <ø> (ø)

...Core/Generators/Class/PartialClassCodeGenerator.cs
100.00% <ø> (ø)

...c/Kontent.Ai.ModelGenerator/Options/UsedSdkInfo.cs
100.00% <ø> (ø)

src/Kontent.Ai.ModelGenerator/Program.cs
52.08% <11.11%> (ø)

...t.Ai.ModelGenerator.Core/Common/ClassDefinition.cs
86.84% <50.00%> (ø)

...i.ModelGenerator.Core/DeliveryCodeGeneratorBase.cs
84.61% <84.61%> (ø)

...delGenerator.Core/ExtendedDeliveryCodeGenerator.cs
86.84% <86.84%> (ø)

... and 39 more

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more

Please adjust https://github.com/kontent-ai/model-generator-net/blob/feature/90_known_types/src/Kontent.Ai.ModelGenerator/appSettings.json to respect new options and cover related tests if necessary.

I would emphasize the Api key with the example for the section: https://github.com/kontent-ai/model-generator-net/tree/feature/90_known_types#customizing-models---extended-delivery-models

By running .\KontentModelGenerator.exe -p ABC -e true -k XYZ for project 6d7f2b4b-9432-012e-f6be-c9feb74c3912.
I got also got for *.Generated. inheritance from IContentItem`.


Can't access "process.env" variables in index.html or other html files

How can i get / access webpack ENV (process.env) variables during process time (not runtime in browser) ? the webpack.DefinePlugin(...) doesn't seem to work in html files, i don't have access to ENV variables in the main index.html
any solution ? is it normal ?

I'm assuming you're using something like HtmlWebpackPlugin since you reference process (build?) time, not runtime.  To work around similar issues, I've configured my plugin like:
Object.assign(pluginConfig, config); return new HtmlWebpackPlugin({     vendorsFilename: process.env.NODE_ENV === 'production' ? 'vendors.min.js' : 'vendors.js',     inject: false,     hash: true });
or replace with any other boolean logic if your DefinePlugin assignment doesn't match the build time env.
Then in my HTML template I'll do something like:
`
`
P.S. Webpack uses github issues for tracking bugs with webpack.  For questions like this, please prefer StackOverflow.

@wcjordan well i thought this was more a bug than a question since
`
conf = {
NODE_ENV: '"production"'
}
new webpack.DefinePlugin({
'process.env': conf
})
gives access to NODE_ENV in any of the js filesrc/` of the webpack project but not in html files.
With what you said above, can i access NODE_ENV in the index.html main file of the project ? it doesn't seem to be the case in mine

I don't think what you're asking is a bug nor a supported use case.  Webpack doesn't expect you to be exposing global variables for the main html file to access.  You could try making a "var" build using the output.libraryTarget config option and exporting the desired values, but I'm not sure what the use case for that would be.
Either way I recommend switching to SO, you'll likely get more help there.

Yeah, please re-open at Stack Overflow for more ideas. I would recommend looking into html-webpack-plugin.

The use case would be for exemple, adding an API KEY to a script src.
<script src="https://api.google.com/maps.js?key={{ API_KEY }}"></script>
Le 7 oct. 2016 20:29, "Chris Jordan"<EMAIL_ADDRESS>a écrit :

I don't think what you're asking is a bug nor a supported use case.
Webpack doesn't expect you to be exposing global variables for the main
html file to access. You could try making a "var" build using the output.libraryTarget
config option
http://webpack.github.io/docs/configuration.html#output-librarytarget
and exporting the desired values, but I'm not sure what the use case for
that would be.
Either way I recommend switching to SO, you'll likely get more help there.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/webpack/webpack/issues/3105#issuecomment-252326737,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABXDtYDdfS1e0NP0VvqG68_3EodPo_7Wks5qxo-ZgaJpZM4KRCbh
.

html-webpack-plugin and a custom template can definitely do that.

The simple way you can use
in HTML
<p>%NODE_ENV%</p>
and in script
<script type="text/javascript" charset="utf-8" src="static/'%NODE_ENV%'==='production'?'vendors.min.js':'vendors.js'"></script>
or
<script> if('%NODE_ENV%' === 'production') { .... some code } </script>


How can I export COCO data format?

Hello!
I just installed Xtreme1 on my computer using Docker and I'm trying to export files.
According to the update information, it should be possible to export in COCO format, but I can't find that option on my page.
What should I do?

Oops!
I mistakenly thought that COCO format can also be used for 3D datasets!
I apologize for the confusion and will close this issue.


Teams team listv1.0

Teams team list beta to V1.0

Fixes 'teams team list ' command. Closes #2507

Seems that some tests are failing. Would you mind taking another look @dips365?

Seems that some tests are failing. Would you mind taking another look @dips365?

@waldekmastykarz I'm supporting @dips365 to help get the tests of the line, so asked him to push his latest code, so I will be looking at this over the next couple of days.

Thanks @garrytrinder !!

@dips365 it looks like you may have accidentally pulled commits from the v4 branch into this PR, could you take a look before I look at the tests? If it's easier, could you create a new branch from the main branch, make your changes and raise a new PR.

@garrytrinder  Ohh !!
I have created new PR against Main branch.

Thanks @dips365 as this is no longer required, I will close the PR and work on the new one you have created.


Server

Server
Checks before requesting a review

[x] I have performed a self-review of my code.
[x] If it is a core feature, I have added tests.
[ ] If it is a front-end feature, I have manually tested it.
[x] I have added detailed documentation to my code.

Summary
This is the server implementation that handles the clients requests sent through websockets calling the correct API. The server deals with requests meant for the Warehouse microservice.

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


Bug 1722878: reseting configured storages before DeepCopy()

When migrating from one storage to another configs/cluster Status ended up
showing multiple storage configurations, for example:
status:
  storage:
    emptyDir: {}
    s3:
      bucket: rmarasch-cluster-66-575tx-image-registry-us-east-1-porcoxpfplu
      encrypt: true
      keyID: ""
      region: us-east-1
      regionEndpoint: ""

This patch resets Storage property before running any DeepCopy(), making
sure that if the storage is changed to another media we will update
correctly.

/assign @dmage @gabemontero

/сс @coreydaley

We also need to provide a way to fix existing resources that already have two storage configurations in status. Ideally it should be fixed automatically by the operator.

I think that there should be one place in the code that checks to see whether the storage configuration has changed from one type to another, and it would then clear the old storage configuration (should it run the finalizer?) and set up the new storage as if it had started from a clean slate, rather than checking/resetting each time that we do a copy of spec to status.
Thoughts?

I also thought that https://github.com/openshift/cluster-image-registry-operator/blob/master/pkg/storage/storage.go#L84 was supposed to catch that? Maybe we are not implementing it correctly or maybe I am mistaken about what it is supposed to do?

@dmage Are you sure you linked the right BZ? Is the problem related there solved by this patch? I have no idea I was solving it when I worked on this one :-)

I think that there should be one place in the code that checks to see whether the storage configuration has changed from one type to another, and it would then clear the old storage configuration

I have added a function on #368 that checks if the storage has been changed, that function is used for metrics but could be adjusted for the purpose(check if there are more than one storage enabled on Status and reset it to be the Spec one).

(should it run the finalizer?)

I am really not sure about this one. Is it desirable? By finalizer you mean delete the old storage right? I would prefer to let it there because a simply typo on the config should not make the user to loose its entire data(at least not without an extra confirmation step), well, I am assuming that finalizer is indeed delete.

I also thought that https://github.com/openshift/cluster-image-registry-operator/blob/master/pkg/storage/storage.go#L84 was supposed to catch that? Maybe we are not implementing it correctly or maybe I am mistaken about what it is supposed to do?

This avoids the Driver to be created with multiple storage at the same time, the problem here seems to be when we "swap" storages from, let's say, s3 to emptyDir.

We also need to provide a way to fix existing resources that already have two storage configurations in status. Ideally it should be fixed automatically by the operator.

I could do small adjustments on https://github.com/openshift/cluster-image-registry-operator/pull/368/files#diff-f201afca3f23e7411fe9cb0cfc8a2011R135 and get this working but I would need #368 merged first.

@dmage @coreydaley What do you guys think about something like this?
https://github.com/openshift/cluster-image-registry-operator/pull/394/commits/00ada4a83cf3cd7b0cb4b3804ff863084e9c23f2

@dmage @coreydaley What do you guys think about a workaround like https://github.com/openshift/cluster-image-registry-operator/pull/394/commits/dba9c37e74ecf316a246d0af139912b207914786 ?

@adambkaplan as the fix is relatively straightforward, I'd like to backport it to 4.2.

/cherrypick release-4.2

/lgtm

@dmage @ricardomaraschini I don't think we can backport without some level of unit or e2e tests. QE does not have the bandwidth to verify every bug in every weekly z-stream.

@dmage @ricardomaraschini I don't think we can backport without some level of unit or e2e tests. QE does not have the bandwidth to verify every bug in every weekly z-stream.

I will write a e2e test case to cover this.


Release 2.2.0

As requested in https://github.com/quarkiverse/quarkus-kerberos/issues/119#issuecomment-2242198727

Oops, looks like the docs is missing its pom.xml, I'll fix this ASAP


Allow for Multi-Colored SVG Icons

We have a need for multiple colors to be included/embedded in SVGs in out icon sets. This is easily done in IcoMoon, but is a shortcoming of Fontello.

In IcoMoon we can touch internal paths, e.g.:
.icon-sun-happy .path1:before {
  content: "\e900";
  color: rgb(255, 204, 51);
}
.icon-sun-happy .path2:before {
  content: "\e901";
  margin-left: -1em;
  color: rgb(255, 102, 0);
}
.icon-sun-happy .path3:before {
  content: "\e902";
  margin-left: -1em;
  color: rgb(255, 102, 0);
}
.icon-sun-happy .path4:before {
  content: "\e903";
  margin-left: -1em;
  color: rgb(255, 102, 0);
}

Fonts are not meant to include colors if I recall correctly. I usually just apply a CSS color property to color the font

As been said - this job is for CSS, not related to fontello.

Hi,
can you please reopen this issue?
The point is that multi-colored SVGs need to be split into multiple glyphs that can be rendered on top of each other.

The coloring can indeed be done by CSS
However, the splitting is something that can be done by Fontello

IcoMoon does this:

Font glyphs cannot have more than one color by default. Using CSS, IcoMoon stacks multiple glyphs on top of each other to implement multicolor glyphs. As a result, these glyphs take more than one character code and cannot have ligatures.

Using this SVG: , IcoMoon understands it is a multi-colored SVG that needs to be split into multiple following glyphs, and it generates the required CSS to color those glyphs and stack them on top of each other:
.icon-Account-circle-duotone .path1:before {
  content: "\e900";
  color: rgb(86, 134, 225);
  opacity: 0.3;
}
.icon-Account-circle-duotone .path2:before {
  content: "\e901";
  margin-left: -1em;
  color: rgb(86, 134, 225);
}

It creates a \e900 glyph for the background and a \e901 glyph for the foreground.
This is also how FontAwesome works: https://blog.pieeatingninjas.be/2022/12/13/fontawesome-duotone-icons-in-maui-and-xamarin-forms/


Strings deserialized as BigInts

Strings are interpreted as BigInts if they contain only numbers. This happens when i get data from a collection of projections using findOne.
An error is then thrown when i send these objects in an api response, since BigInts are not properly serialized.

@insulationman, indeed, that's an unexpected side effect of the recent changes when I introduced the custom serialiser to support the _version property.
I'm going to need to make it smarter, let me outline the challenges:

BigInt support in JSON.parse and stringify is non-existing out of the box, that's why I introduced JSONSerialiser (available in @event-driven-io/dumbo) that's capable of serialising it,
when serialising, that's pretty easy as I know the type. When deserialising back it's hard, as the string could be either bigint or just a string (as you mentioned).

There are multiple strategies how to deal with that:

custom encoding, but that makes filtering more complex and also passing the serialised string as it is,
adding the custom metadata about the type or using document schema.

I'll probably go with the second option, as it'll be useful also for other cases. But this will take a bit time.
So, as a quick fix, you could use the JSONSerialiser to serialise the payload; if that's urgent, I could also try to provide the fix that changes the default serialisation behaviour, not to (de)serialise version as a string.
@insulationman thoughts?
Also, as I have you here, could you share a bit more about your setup? I'd be happy to get more information on another possible alignment to use Pongo for you. Thank you in advance!

Sounds good! For now i will just validate for number only strings, as the application is simple.
I'm building an mvp for niche service that relates to file uploads and processing. I like the event sourcing methodology so i started using Emmet with Pongo. Fits like a glove.
This is my first serious express/ts backend so I'm learning a lot.


[JavaScript] Implement ordered

There is an unimplemented function called ordered in the Utilities.js file.
Please implement this function:
https://github.com/SergeyOvchinnik/open-class/blob/main/web/Utilities.js#L51

Miles do this one

Implemented in:
https://github.com/SergeyOvchinnik/open-class/pull/42


Can't load a scenario locally because of redirect

I'm currently setting up the local machine of @MichielDenHaan but I can't load any scenario because:
    def store_last_etm_page
      render_not_found && return unless @interface.current_tab # <-- culprit line

      tab_key     = @interface.current_tab.key
      sidebar_key = @interface.try(:current_sidebar_item).try(:key)
      slide_key   = @interface.try(:current_slide).try(:short_name)

      Current.setting.last_etm_page =
        play_url(tab_key, sidebar_key, slide_key)
    end

It makes sense stating that he never ever loaded a single scenario and therefor doesn't have a current_tab to speak off. 🤔

FYI: The database of ETModel is completely empty in this local situation

Ofcourse Tabs is a database row .... 🙄 whoops


When executes upon definition

The expectation for When() should be that it allows for the registration of predicates and actions which are executed when a given object is validated.  That is to say that one should always be able to rely upon one of the Validate() virtual methods being called prior to either of the predicates being executed.
What is in fact happening is that the When() delegates are executed at the point of registration.  This creates an issue if one needs to execute some code (e.g. retrieve a request-scoped service) prior to the When() delegates being executed.  I'm not sure if the Validate() methods are even thread-safe, so perhaps one shouldn't resolve services within the Validate method at all (a question I'd love to hear the answer to).  Nevertheless, I submit that the current implementation doesn't behave how I believe most would expect it to.

So the behaviour of When is intentional - Rule definitions must be constructed and added to the internal rules collection when the valisator is fist instantiated so that it's in a complete state by the time validation occurs.
You're correct about service resolution - this shouldn't happen during validation -
Any dependencies should be passed in via the constructor.

First, apparently validators are cached by Web API (see here), which is the behavior my team is seeing.  So, while it seems you can inject services, they can't be scoped at the request level.  If you're doing something like multi-tenancy, you may need the services providing data needed for your validation to be resolved every time.  Therefore, it seems that it is necessary to resolve them via the service locator pattern.  Please advise if there is a way to get this working otherwise.
That aside, I'm not familiar with the internals of your framework, but it would seem there should be a way to define the predicate conditions and associated rules to add to a rules collection without having to execute the delegates at the point of registration.  I realize this may not be a viable change with the current design, but the delegates of When() really shouldn't be executed until a validation is occurring, as the semantics suggest that you're defining behavior that will be true at the point of validation (i.e. after a logical "OnValidating()" event has occurred).
Given the current implementation and due to the fact that our validators are being cached by Web-API, we're currently finding it necessary to resolve dependencies using a service locator within the scope of each delegate passed to each When.  So, 2 When() conditions results in 4 service locator calls for each dependency.  Obviously this isn't ideal, so we'd love to hear any suggestions to overcoming this issue given the state of the current implementation.

The validators are designed to be cached, but rather than injecting the
services directly, it'd be better to inject a Func which can be
used to retrieve a request-scoped service at runtime.
The When method basically only applies the defined condition to each rule
in turn - it's semantically the same as doing:
RuleFor(...).When(condition)
RuleFor(...).When(condition)
...but just provides a shortcut. All the rules need to be defined at
instantiation because a) the validators aren't designed to be modified at
runtime (they should be immutable) and 2) the metadata functionality
wouldn't work correctly.
I understand that it might not be doing quite what you're after, but it's
not something I'm planning on changing.
On Thursday, August 20, 2015, Derek Greer<EMAIL_ADDRESS>wrote:

First, apparently validators are cached by Web API (see here
http://stackoverflow.com/questions/15092809/dependency-injected-validation-in-web-api),
which is the behavior my team is seeing. So, while it seems you can
inject services, they can't be scoped at the request level. If you're doing
something like multi-tenancy, you may need the services providing data
needed for your validation to be resolved every time. Therefore, it seems
that it is necessary to resolve them via the service locator pattern.
Please advise if there is a way to get this working otherwise.
That aside, I'm not familiar with the internals of your framework, but it
would seem there should be a way to define the predicate conditions and
associated rules to add to a rules collection without having to execute the
delegates at the point of registration. I realize this may not be a viable
change with the current design, but the delegates of When() really
shouldn't be executed until a validation is occurring, as the semantics
suggest that you're defining behavior that will be true at the point of
validation (i.e. after a logical "OnValidating()" event has occurred).
Given the current implementation and due to the fact that our validators
are being cached by Web-API, we're currently finding it necessary to
resolve dependencies using a service locator within the scope of each
delegate passed to each When. So, 2 When() conditions results in 4 service
locator calls for each dependency. Obviously this isn't ideal, so we'd love
to hear any suggestions to overcoming this issue given the state of the
current implementation.
—
Reply to this email directly or view it on GitHub
https://github.com/JeremySkinner/FluentValidation/issues/108#issuecomment-132987016
.

Injecting a Func is effectively what we're doing, though our implementation is injecting a service locator interface to avoid having to explicitly register Func for services we want resolved in a mulit-tenant configuration (i.e. you don't get that for free in Autofac when using a multi-tenant container).
I understand changing the way this works might present more redesign work than you're willing to take on now, but I do appreciate the confirmation that the approach we've arrived at appears to be the only viable one given the circumstances (i.e. resolving dependencies anew within the body of each delegate).

For anyone else that stumbles upon this issue, we ended up moving our validation hook to a global ActionFilterAttribute:
  public class FluentValidatorActionFilterAttribute : ActionFilterAttribute
  {
    public override void OnActionExecuting(HttpActionContext actionContext)
    {
      var arguments = actionContext.ActionArguments;
      var messages = new List<string>();

      foreach (var argument in arguments)
      {
        var openValidatorType = typeof (IValidator<>);
        var validatorType = openValidatorType.MakeGenericType(argument.Value.GetType());
        var validator = (IValidator) GlobalConfiguration.Configuration.DependencyResolver.GetService(validatorType);

        if (validator != null)
        {
          var result = validator.Validate(argument.Value);
          messages.AddRange(result.Errors.Select(x => x.ErrorMessage));
        }
      }

      if (messages.Count > 0)
      {
        var response = new FailureApplicationResponse(messages.ToArray());
        actionContext.Response = actionContext.Request.CreateResponse(HttpStatusCode.BadRequest, response);
      }
    }
  }


Clean up unused field from the pkg/registry/core/seed.Strategy

How to categorize this PR?

/kind cleanup
What this PR does / why we need it:
The CloudProfiles field in pkg/registry/core/seed.Strategy seems to be unused. It is introduced with https://github.com/gardener/gardener/commit/568eb02bf99d4622f61ebd270882da184910d8aa for a migration code in strategy. In https://github.com/gardener/gardener/commit/7fea07bc8a851fdad009a20b5b3d52aec1c48726 this migration code is dropped but the CloudProfiles field is not removed.
Which issue(s) this PR fixes:
N/A
Special notes for your reviewer:
N/A
Release note:

NONE

/retest

/test pull-gardener-e2e-kind


Request Basketball Dataset

Hi, Colin. This is Yandong. I am really impressed with your work.
Is that possible to get the same Basketball Dataset from you? It's only for academic purposes.
I found this the original dataset from STATS is not available.

Hi Yandong, thanks for your interest! I'll look into this - I want to make sure that sharing it won't get me into trouble first.

Update: the data was once publicly available, but the owners removed it at some point in time. I'm not sure exactly why they decided to do this, but I'd rather not cause any problems by sharing data that I'm not authorized to share. It seems like I'm not the only one who has made this decision (see this repo for another example). Your best bet will be to contact them and see if they're willing to share it with you if you're using it for academic purposes.


Add retries to CLI test framework for network errors

Allows the CLI test framework to perform retries when a network error occurs.
Description

Related issue and scope

[ ] I opened an issue to propose and discuss this change (#????)

My changes affect the following components

[ ] API
[ ] Controller
[ ] Message Bus (e.g., Kafka)
[ ] Loadbalancer
[ ] Invoker
[ ] Intrinsic actions (e.g., sequences, conductors)
[ ] Data stores (e.g., CouchDB)
[x] Tests
[ ] Deployment
[ ] CLI
[ ] General tooling
[ ] Documentation

Types of changes

[ ] Bug fix (generally a non-breaking change which closes an issue).
[ ] Enhancement or new feature (adds new functionality).
[ ] Breaking change (a bug fix or enhancement which changes existing behavior).

Checklist:

[x] I signed an Apache CLA.
[x] I reviewed the style guides and followed the recommendations (Travis CI will check :).
[ ] I added tests to cover my changes.
[ ] My changes require further changes to the documentation.
[ ] I updated the documentation where necessary.

Codecov Report

Merging #3694 into master will increase coverage by 0.01%.
The diff coverage is n/a.

@@            Coverage Diff            @@
##           master   #3694      +/-   ##
=========================================
+ Coverage   74.49%   74.5%   +0.01%
=========================================
  Files         126     126
  Lines        5994    5994
  Branches      392     392
=========================================
+ Hits         4465    4466       +1
+ Misses       1529    1528       -1

Impacted Files
Coverage Δ

...rc/main/scala/whisk/common/ForcableSemaphore.scala
88.46% <0%> (+3.84%)
:arrow_up:

Continue to review full report at Codecov.

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

General existential question: I'm unclear if this changes any semantics in our tests. The main issue I could see (and I'm not sure if its really a problem) is that our requests are not necessarily idempotent. That is: A connection error might happen at any stage of the connection so you'll never know if it's safe to retry.
This might still make things better but it could certainly harm debuggability in tests. It might make sense to add a logline stating it's retrying because of a network issue to be able to tell later if an inconsistency was caused by that. Thoughts?

@mdeuser, anything else on this one?

PG4 1807 ⏳

pg :large_blue_circle: :+1:


How to watch a single file without an extension?

Is there a way to watch a single file without an extension?

Currently no. But feel free to submit a pull request :)


Add support for env in bash scripts

Bash scripts are often using the env command instead of an actual command. This PR adds support for it but keeps the original functionality.

Check out issue #69 and the branch shell-detection. Does that address your needs? It will never be a perfect implementation without a system call, but it can be good enough.


NTR: idiopathic

We need a new "disease characteristic" term to define the new "idiopathic disease" class https://github.com/monarch-initiative/mondo/issues/3169
Proposal:
Preferred term label:
idiopathic
Definition (free text, please give PubMed ID, if applicable, in format PMID:#######)
A characteristic of a disease in which the disease has an uncertain or unknown cause.
Parent term
disease characteristic (MONDO:0021125)
Note : we probably need to have an 'idiopathic vs non-idiopathic' class under 'disease characteristic'

@cmungall :
We don't think the term 'idiopathic' is used to refer to a phenotype, therefore @nicolevasilevsky and I think Mondo is the best place for this term (instead of PATO).
Do you agree?

pato is more general than phenotype, however, I think it's still good to
have this in the mondo characteristic hierarchy, it can always be moved
later. So go ahead and add, and let's make a yaml DP too
On Thu, Jun 24, 2021 at 12:31 PM sabrinatoro @.***>
wrote:

@cmungall https://github.com/cmungall :
We don't think the term 'idiopathic' is used to refer to a phenotype,
therefore @nicolevasilevsky https://github.com/nicolevasilevsky and I
think Mondo is the best place for this term (instead of PATO).
Do you agree?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/monarch-initiative/mondo/issues/3177#issuecomment-867898390,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAAMMOKMOHQPUXWBHY5S733TUOB2PANCNFSM47IQE7OA
.


feat(rag): Support RAG SDK

Description
Release RAG SDK.
How Has This Been Tested?
Install sdk:
pip install "dbgpt[rag]>=0.5.2rc0" --upgrade

For specific steps, see docs/docs/awel/cookbook/first_rag_with_awel.md.
Snapshots:
Include snapshots for easier review.
Checklist:

[x] My code follows the style guidelines of this project
[x] I have already rebased the commits and make the commit message conform to the project standard.
[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have made corresponding changes to the documentation
[x] Any dependent changes have been merged and published in downstream modules

Test AWEL RAG Local Embedding Example
# 1.init embedding factory
from dbgpt.rag.embedding import DefaultEmbeddingFactory

embeddings = DefaultEmbeddingFactory.default("/data/models/text2vec-large-chinese")

import asyncio
import shutil
from dbgpt.core.awel import DAG
from dbgpt.rag import ChunkParameters
from dbgpt.rag.knowledge import KnowledgeType
from dbgpt.rag.operators import EmbeddingAssemblerOperator, KnowledgeOperator
from dbgpt.storage.vector_store.chroma_store import ChromaVectorConfig
from dbgpt.storage.vector_store.connector import VectorStoreConnector

# Delete old vector store directory(/tmp/awel_rag_test_vector_store)
shutil.rmtree("/tmp/awel_rag_test_vector_store", ignore_errors=True)

# 2.init vector_connector
vector_connector = VectorStoreConnector.from_default(
    "Chroma",
    vector_store_config=ChromaVectorConfig(
        name="test_vstore",
        persist_path="/tmp/awel_rag_test_vector_store",
    ),
    embedding_fn=embeddings
)

# 3. write awel assembler_task
with DAG("load_knowledge_dag") as knowledge_dag:
    # Load knowledge from URL
    knowledge_task = KnowledgeOperator(knowledge_type=KnowledgeType.URL.name)
    assembler_task = EmbeddingAssemblerOperator(
        vector_store_connector=vector_connector,
        chunk_parameters=ChunkParameters(chunk_strategy="CHUNK_BY_SIZE")
    )
    knowledge_task >> assembler_task

chunks = asyncio.run(assembler_task.call("https://docs.dbgpt.site/docs/latest/awel/"))
print(f"Chunk length: {len(chunks)}")


UHF-9250 Preinstall configurations for v3 [Part 1]

UHF-9250 Platform config V3 update - Part 1

This PR is consists of custom update hook and preinstalled configurations which will ease up the installation of platform config v3. Otherwise the site-install will just fail.
❗ This PR needs to be merged on develop & main before the actual platform config v3 PR ❗
What was done

Added user roles: Editor, Super administrator to tackle platform config v3 installation issues.
Preinstall views bulk operations and views bulk edit.
Added initial settings for content lock.
Update banner design before the platfrom v3 change.
Added simple_sitemap default configuration.
Preinstall filter formats and editor settings.
Preinstall simple_sitemap settings for nodes and tpr entities.
Preinstall simple sitemap configuration as it would break during platform config v3 update.
Uninstall config update module.

How to install

Make sure your instance is up and running on develop branch.

git checkout develop
make fresh

Switch to this branch

git checkout UHF-9250_preinstall_configurations_for_v3

Run make drush-deploy

How to test

[ ] Check that the site installs normally and there are no errors during installation.
[ ] Check that code follows our standards

Automatic- / Regression tests

[ ] This PR makes no changes that effects any tests. (This will be caught in automatic testing later on, but please, please run regression tests always on PR before asking for a review)
[ ] This PR passes regression tests. (make test-pw)

Other PRs

https://github.com/City-of-Helsinki/hel-fi-drupal-grants/pull/1052

Some prints in the db updates:
> >  [warning] The "field_lower_content" at "tpr_service:tpr_service" references the "paragraph:event_list" entity type that does not exist. Please take action. ResourceTypeRepository.php:454
And same in config import. A LOT more:
>  [warning] The "field_lower_content" at "tpr_service:tpr_service" references the "paragraph:event_list" entity type that does not exist. Please take action. ResourceTypeRepository.php:454
Do we need to worry about these?

Subtheme does not compile.
 error  ModuleNotFoundError                                                                                8:42:41 AM Module not found: Error: Can't resolve 'src/js/accordion.js' in '/app/public/themes/custom/hdbt_subtheme' Did you mean './src/js/accordion.js'? Requests that should resolve in the current directory need to start with './'. Requests that start with a name are treated as module requests and resolve within module directories (/app/public/themes/custom/hdbt_subtheme/node_modules). If changing the source code is not an option there is also a resolve options called 'preferRelative' which tries to resolve these kind of requests in the current directory too.
This with 6 modules:

src/js/accordion.js
src/js/common.js
src/js/dialog.js
src/js/matomo.js
src/js/restrictedDatepicker.js
src/js/webform.element.help.js

Are these imported incorrectly in our subtheme?

Subtheme does not compile.
 error ModuleNotFoundError 8:42:41 AM Module not found: Error: Can't resolve 'src/js/accordion.js' in '/app/public/themes/custom/hdbt_subtheme' Did you mean './src/js/accordion.js'? Requests that should resolve in the current directory need to start with './'. Requests that start with a name are treated as module requests and resolve within module directories (/app/public/themes/custom/hdbt_subtheme/node_modules). If changing the source code is not an option there is also a resolve options called 'preferRelative' which tries to resolve these kind of requests in the current directory too.
This with 6 modules:

src/js/accordion.js
src/js/common.js
src/js/dialog.js
src/js/matomo.js
src/js/restrictedDatepicker.js
src/js/webform.element.help.js

Are these imported incorrectly in our subtheme?

Actually, merging our current development branch to this one seemed to fix this issue.

@strangeworlder this breaks our styles, even rebuilt those and still missing some things:

Some prints in the db updates: > > [warning] The "field_lower_content" at "tpr_service:tpr_service" references the "paragraph:event_list" entity type that does not exist. Please take action. ResourceTypeRepository.php:454
And same in config import. A LOT more: > [warning] The "field_lower_content" at "tpr_service:tpr_service" references the "paragraph:event_list" entity type that does not exist. Please take action. ResourceTypeRepository.php:454
Do we need to worry about these?

No need to worry about these. These references will be taken care of in the Part 2.

@strangeworlder this breaks our styles, even rebuilt those and still missing some things:

The update causes stricter rules to be applied to processed_text's text format. Changing all of our processed texts to webform markups (that are used in other parts of our forms for the exact same purpose) fixes this problem.


R4 resource update

uses resouceType rather than 'urn:uuid' for reference prefixes
Adds identifiers to resources exported for r4

Looks good for R4. Did we want to do this for STU3 as well? Personally I don't see an immediate need for this, as our inferno testing will be in R4 now, which is why we need this in the first place

@mgramigna I started to go that route with the identifier for Encounter, but once I realized it would be a lot more than just that, decided to just do r4 as that's what the tests were now hitting.
I would vote to leave stu3 until we have a need to--it's fairly easy to port over the change if we need to, and no reason I can see to do that extra work/review currently.


[BUG] - INNER JOIN on empty selection takes really long and/or fails with CurcuitBreaker

CrateDB version:
4.4.1
Environment description:
CrateDB Cloud

Problem description:
INNER JOIN on a table with a selection criteria, that leads to 0 rows takes really long to finish or fails with cuircuit breaker

Steps to reproduce:

CREATE TABLE IF NOT EXISTS r."t1" (
    obj OBJECT(DYNAMIC) AS (
        batch TEXT
    ),
    ts TIMESTAMP,
    type TEXT
);

Insert ~100.000 values following the scheme:
INSERT INTO r.t1 (obj,ts,type) VALUES
        ('{"batch":"a"}',now(),'non-test'),
        ('{"batch":"b"}',now(),'non-test'),
        ('{"batch":"c"}',now(),'non-test'),
        ('{"batch":"d"}',now(),'non-test');

SELECT obj['batch'], MAX(ts) "last_record"
FROM r.t1 "tx1"
WHERE tx1.type = 'test'
GROUP BY obj['batch']

--> 0 results as no records of type 'test' are -inserted
Inner JOIN with same table:
SELECT * FROM
(SELECT obj['batch'], MAX(ts) "last_record"
FROM r.t1 "tx1"
WHERE tx1.type = 'test'
GROUP BY obj['batch'] ) last_recs
    INNER JOIN r.t1 "tx2" ON (last_recs.last_record = tx2.ts);

--> takes really long or fails on bigger datasets

Seems okay to me?
cr8 timeit --host localhost:4200 -r 200 -c 10 <<EOF
SELECT
    *
FROM (
    SELECT
        obj['batch'],
        MAX(ts) "last_record"
    FROM
        r.t1 "tx1"
    WHERE
        tx1.type = 'test'
    GROUP BY
        obj['batch']) last_recs
    INNER JOIN r.t1 "tx2" ON (last_recs.last_record = tx2.ts);
EOF

Runtime (in ms):
    mean:    26.582 ± 1.017
    min/max: 14.701 → 45.262
Percentile:
    50:   26.179 ± 7.335 (stdev)
    95:   39.544
    99.9: 45.262

select count(*) from r.t1;
+----------+
| count(*) |
+----------+
|   100000 |
+----------+

I generated some sample data like this:
mkjson --num 100000 obj.batch="fromRegex('[a-z]{2}')" type="'none-test'" | cr8 insert-json --table r.t1 --hosts localhost:4200

(I added a default clause for the ts column:)
CREATE TABLE IF NOT EXISTS r."t1" (
    obj OBJECT(DYNAMIC) AS (
        batch TEXT
    ),
    ts TIMESTAMP default current_timestamp,
    type TEXT
);

should have said ~1.000.000 values
SELECT COUNT (*) FROM r.t1 limit 100;
-- 2.293.766

SELECT * FROM
(SELECT obj['batch'], MAX(ts) "last_record"
FROM r.t1 "tx1"
WHERE tx1.type = 'test'
GROUP BY obj['batch'] ) last_recs
    INNER JOIN r.t1 "tx2" ON (last_recs.last_record = tx2.ts) limit 100;
-- SELECT OK, 0 rows in set (24.068 sec)

with 4.587.796
--> 75.864 sec
3 nodes (12 cores / 21 GB Ram)

Can reproduce it now, thanks for the additional information. It only happens with multiple nodes. On a single node the 1e6 records are also fast.

Changed the classification from bug to a performance improvement.
This will take a bit more effort than expected.
The problem is that for an inner hash join we've two phases:
A build phase where we build a hash-buffer for parts of the left side
A probe phase where we go through the right side and look for matches in the hash-buffer.
Now, even if the right side is empty we always start with the build phase for the left side.
I thought we could integrate some kind of short-circuit behavior, so that it stops as soon as it figures out that the right side is empty, but even then the build phase can consume a large amount of rows from the left side because of how internal paging across nodes is currently implemented.
Looking first if there are rows in the right side would have the some problem. The "look if there is something" can be expensive.
We had a short conversation on what we could do about that. One idea is to introduce some kind of cheap hasNext probe mechanism, but even that may have problems in case of sub-queries where we need to evaluate several operators to figure out if there is a result or not. In the case of pipeline breakers that would be problematic. E.g. a GROUP BY + HAVING
Another idea is to tweak the internal paging. In any case, this needs some more thoughts on how to solve properly.


added for condition in missing_number_test.py file

Pull Request Template
Title
[Provide a succinct and descriptive title for the pull request, e.g., "Improve caching mechanism for API calls"]
Type of Change

[ ] New Challenge Solution
[ ] Refinement of Existing Solution
[ ] FAQ/README Updates
[ ] Repository Maintenance

Description
[Provide a detailed explanation of which challenge you attempted and how you approached the solution. If refining an existing solution, call out wht your refinement accomplishes]
Testing and Test Results
[Detail the test results for your solution, and any additional test cases you added. Note that you get extra points for adding meaningful test cases]
Additional Information
[Any additional information that reviewers should be aware of.]
Checklist

[ ] The code in this PR only relates to one challenge.
[ ] My code adheres to the coding and style guidelines of the project.
[ ] I have fully tested the code to be added.
[ ] I have performed a self-review of my own code.
[ ] I have commented my code, particularly in hard-to-understand areas.
[ ] I have added myself to the set of CodeOwners for the challenge in this PR.

nice code!


bugfix: use buffered channel for signal notifications

What type of PR is this?
/kind bug
What this PR does / why we need it:
bugfix: use buffered channel for signal notifications
When I upgrade to go 1.17, executing make will cause an error:
# go version
go version go1.17.1 darwin/amd64
# make
go fmt ./pkg/... ./cmd/...
pkg/yurthub/network/dummyif_test.go
pkg/yurthub/network/dummyif_unsupported.go
go vet ./pkg/... ./cmd/...
# github.com/openyurtio/openyurt/cmd/yurt-tunnel-server
cmd/yurt-tunnel-server/server.go:39:2: misuse of unbuffered os.Signal channel as argument to signal.Notify
make: *** [vet] Error 2

FYI: https://github.com/golang/go/blob/ee91bb83198f61aa8f26c3100ca7558d302c0a98/src/os/signal/example_test.go#L14-L17
Which issue(s) this PR fixes:

Fixes #
Special notes for your reviewer:

Does this PR introduce a user-facing change?

NONE

other Note

/lgtm
/approve


Update CI Vitis-AI PyXIR version to 0.1.3

#6343 needs update of PyXIR version to 0.1.3 for tests to pass.
@comaniac @zhiics @tmoreau89

FYI, #6769 is duplicated with this PR.

Closed due to duplication


Add support for IPv6

Hi,
A small MR to handle IPv6 addresses.
PS: I would need to update mod.go once https://github.com/longhorn/go-iscsi-helper/pull/35 is merged i suppose ?
Cheers

@Frankkkkk Yes. Engine code has a dependency on the go-iscsi-helper.

Hi @yasker
It's still missing some things but I guess that we can still merge this :-)
Thanks and have a nice week


Added process of quotes

If the .env file has a value wrapped in single or double quotes it will be parsed into a simple string:
.env file:
VARIABLE="value with double quotes"
Before:
$_ENV['VARIABLE] = "value with double quotes";
Now:
$_ENV['VARIABLE] = value with double quotes;
Also:

Separate the process of variables and the configuration to other classes
Added test to this feature
Modified README

Hi! @devcoder-xyz,
had you have time to look at this propossal? My intention is to use this package in several projects and it would be nice to add features like this and the process of numbers, for example.
I'm glad to help and hear your opinion about this so if there is something that you are not comfortable adding there will be no problems. Greetings

@jaumarar Thanks for your help, had you read my comments ? i submit review if you can fix it

Hi @devcoder-xyz i'm not seeing any reviews or comments in the mr nor other branches.
can you link me here those comments? maybe are marked as draft or the reviews has not been started

ok no problem :+1:
Processor.php : Can you create a class unique for one resolve ?
in the Processor class, create a collection of Resolver and each resolver resolves a value
its possible ?

Sure, something like?
Processor.php
Processor
  | BooleanProcessor.php
  | QuotedProcessor.php

Where Processor.php
class Processor
{
  execute($value)
  {
    foreach ([new BooleanProcessor(), new QuotedProcessor()] as $processor) {
      if ($processor->canBeResolved($value)) {
        return $processor->execute($value);
      }
    }

    return $value;
  }
}

yes like this but Processor's Name willl be added in DotEnv  (constructor)

I think it should be finished now

Hi @devcoder-xyz should I change anything more?

Yes please , you not see my comment ?
src/DotEnv.php
you forget "?" after array type,
Default value is NULL its ok but if $processors is null set Processors(null) , There will be a fatal error
src/Processor/QuotedProcessor.php
isWrappedByChar can be a private method
thank you very much @jaumarar it's perfect

Hi @devcoder-xyz I was away for a long time..
I hace added a test to proof that that DotEnv::setProcessors() should be safe to pass anything invalid since it filters invalid values, let me know if you need anything more


⚠ Bofrost.at has degraded performance

In 5fad24e, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 1021 ms

Resolved: Bofrost.at performance has improved in d0761da after 309 days, 22 hours, 33 minutes.


Fix NPE from HttpSessionHander.isAcquirable()

Motivation:
When the client sends an options request for upgrade, the server can respond with the following data in the order:

101 switching protocol
HTTP/2 settings frame
HTTP/2 response for the options request

When the client process the HTTP/2 response, an NPE is raised because:

the end of stream of the response for options request is set to true and it triggers Http2ResponseDecoder.onStreamClosed()
HttpSessionHandler.isAcquirable() is also called but NPE is raised because responseDecoder isn't set.
The task for setting the response decoder is in the event loop queue: https://github.com/line/armeria/blob/863e27c5268631360c14e50e13cd3e38d84c9db5/core/src/main/java/com/linecorp/armeria/client/HttpClientPipelineConfigurator.java#L421

Modifications:

Add HttpSessionHandler.isAcquirable(KeepAliveHandler) method so that we can check the healthiness when the response decoder isn't set.

Result:

No more NullPointerException from HttpSessionHander.isAcquirable().

Thanks for the review. 😉


Decorators with named parameters?

Currently, it seems that decorators only accept arguments positionally. I'm wondering if it would be feasible/beneficial to support keyword arguments.
// 1 - Positional makes it hard to know the expected inputs when there are many options
@petDecorator("Fluffy", 10, "orange", "tuna")
...

// 2 - Makes it a lot easier to know what you are setting, and only set those parameters you care about.
@petDecorator(name: "Fluffy", age: 10, color: "orange", favoriteTreat: "tuna")
...

// 3 - Alternatively, you could just have many small decorators.
@petName("Fluffy") @petAge(10) @petColor("orange") @petFavoriteTreat("tuna")
...

@petDecorator({name: "Fluffy", age: 10 }) works today, I'm not sure named parameters add much on top if this?

This syntax works for me. @timotheeguerin do you agree?

I think my main problem with what we have now is that there is no help and validation of the params is hard.
Passing an object is fine, though slightly uglier. We just need to make sure we'll be able to have CADL do type validation on that.(which i think really is dependent on the subtype/supertype issue like a lot of other things)

related to https://github.com/microsoft/typespec/issues/1955


Default install of yamlreader from pip causes ImportError ( __main)

If I try installing yamlreader on my Ubuntu system into a virtualenv it fails to work properly with an install.  I get the error
Traceback (most recent call last):
  File "/tmp/test-yamlreader/bin/yamlreader", line 7, in <module>
    from yamlreader import __main
ImportError: cannot import name __main

I'd expect a default install to work fine.
NAME="Ubuntu"
VERSION="16.04.1 LTS (Xenial Xerus)"
Here's a log from the install.
mikedd@carla /tmp> virtualenv test-yamlreader
Running virtualenv with interpreter /usr/bin/python2
New python executable in /tmp/test-yamlreader/bin/python2
Also creating executable in /tmp/test-yamlreader/bin/python
Installing setuptools, pkg_resources, pip, wheel...done.
(test-yamlreader) mikedd@carla /tmp> pip install yamlreader
]Collecting yamlreader
Collecting PyYAML (from yamlreader)
Collecting six (from yamlreader)
  Using cached six-1.10.0-py2.py3-none-any.whl
Installing collected packages: PyYAML, six, yamlreader
Successfully installed PyYAML-3.12 six-1.10.0 yamlreader-3.0.2
(test-yamlreader) mikedd@carla /tmp> yamlreader
Traceback (most recent call last):
  File "/tmp/test-yamlreader/bin/yamlreader", line 7, in <module>
    from yamlreader import __main
ImportError: cannot import name __main

(test-yamlreader) mikedd@carla /tmp> python --version
Python 2.7.12

Your install is not broken. The import stanza is not right, which is your problem.
When you do
from yamlreader import ...

you hit the __init__.py in the yamlreader module (the folder in src/main/python in this git repository).
This file doesn't have a __main. It imports data_merge, yaml_load, YamlReaderError from yamlreader.py (using from .yamlreader import ...) though so you could import these symbols.
If you want something from the module (yamlreader.py as opposed to the package, yamlreader with an __init__.py) you need to import from the module, not from the package.
e.G. from yamlreader.yamlreader import __main
Does that make sense? Python's import syntax can be confusing and here it doesn't help that the module has the same name as the package.
If the package was named lib you'd do from lib.yamlreader import __main which is clearer I guess.

I'm closing this since
from yamlreader.yamlreader import __main

solves the issue. If you need more help or this didn't fix your problem, feel free to reopen!

This isn't my code.  It's the yamlreader command line tool.

Unfortunately I can't reopen this issue.  You need to be a repository collaborator to do that.  @mriehl could you please reopen the ticket.

Oh, you're right. I totally misread the issue, sorry. I think it's just that the setuptools entry point configuration fails to fully qualify the module, I'll fix it today. Thanks for reporting.

On 17 Jan 2017, at 20:42, Michael De La Rue<EMAIL_ADDRESS>wrote:
Unfortunately I can't reopen this issue. You need to be a repository collaborator to do that. @mriehl could you please reopen the ticket.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

I've fixed it. But I don't have permissions to release on PyPI. @snordhausen could you do a release or setup travis upload?

The fixed version is now on Pypi (I bumped the version number, this made our internal build pass).


Fix:Added UpgradeTimeout instead of TimeoutHeight and TimeoutHeight

Description

closes: #3410
Commit Message / Changelog Entry
fix:used UpgradeTimeout instead of TimeoutHeight and TimeoutHeight

see the guidelines for commit messages. (view raw markdown for examples)

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

[x] Targeted PR against correct branch (see CONTRIBUTING.md).
[x] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
[x] Code follows the module structure standards and Go style guide.
[x] Wrote unit and integration tests.
[x] Updated relevant documentation (docs/) or specification (x/<module>/spec/).
[x] Added relevant godoc comments.
[x] Provide a commit message to be used for the changelog entry in the PR description for review.
[x] Re-reviewed Files changed in the Github PR explorer.
[x] Review Codecov Report in the comment section below once CI passes.

@vishal-kanna thanks a lot of taking this issue, but could you please open the PR against the channel upgradability feature branch instead of main? Thanks!

I believe we can close this, because it's superseded by https://github.com/cosmos/ibc-go/pull/3429.


add module test method

Add NFW.test() method to run nosetest using np.testing.Tester.

Merging module test method.

Oops, closed by accident. Wanted to merge.


Filtering on an indexed text field doesnt honour quotations in phrase queries

When the filter query is built for a text field it strips all the quotations from the string. So im my solr query i would run something like this,
q=:*:&fq=body:"William Doran" and this will search for a phrase query and for example i get back 200 documents
however, when i load up my solr index as a DF or RDD, and issue a similar query
df.where("body = "William Doran"").select("id").take(1) this gets translated into
q=:*:&fq=body:William Doran without the quotation marks and causes a term query with the two terms which attempts to return 10million results......BOOM!
i have tried the same with spark SQL but the same behaviour occurs. any ideas on where to look in the code to figure out where the fq filters are being parsed and converted.
Id also be keen to know why you can only provide a standard query param at config time instead of only using (fq), It seems as tho this would be useful to be able to provide a q param when issuing a select or filter command in a dataset/rdd

@williedoran you can provide any arbitrary param at query time. See https://github.com/LucidWorks/spark-solr#solrparams
Regarding fq, this code (https://github.com/lucidworks/spark-solr/blob/master/src/main/scala/com/lucidworks/spark/util/SolrRelationUtil.scala#L122) is called from SolrRelation class (https://github.com/lucidworks/spark-solr/blob/master/src/main/scala/com/lucidworks/spark/SolrRelation.scala#L247)
In this case, I wonder if Scala passes down or strips down the quotes when passing down the filters. I will take a look later

thanks for the reply @kiranchitturi. yes i saw the solr.params option in the wiki, but my understanding is it only applies for when you load the Dataframe first time, and this query is used on every action within the Dataframe. I guess my use-case is different where i want to do a different query each time and not just (q=:) and also filter down by timestamps.
Essentially my use case is to join a big DB table of peoples names and search for those names in an indexed field in Solr, based on the persons name and a date range. Being able to issue both a  "q=body:"William Doran"&fq=[NOW TO THEN] would be useful in my use case but i can see that this doesnt fit nicely the way the "where clauses"/df.filter() operations are mapped.
If i can get to the bottom of why the fq param is stripping off the quotations, then i guess i can use a fq for both my main query and the date range. I wont get any of solr scoring ranking but i can live with that i think.

Lot of bug fixes have been pushed since this question. Please try with the latest version
If you have the same issue, please elaborate your question in a new issue. Closing this as inactive


Alignment doesn't take alias expansion into account

Hi and thanks for the excellent library!
I found the following minor bug with the latest version: When you make a cell with right-aligned text, the width of the text is calculated before expanding aliases. If the alias is wider than its expansion (e.g. {nb} is wider than 1) then the text is not aligned all the way to the right. Instead, there's a gap between the text and the right border. The following program demonstrates it:
package main

import "github.com/jung-kurt/gofpdf"

func main() {
	pdf := gofpdf.New("P", "mm", "A4", "")
	pdf.SetFont("Helvetica", "", 16)
	pdf.AddPage()
	pdf.CellFormat(50, 10, "Without alias", "1", 0, "R", false, 0, "")
	pdf.CellFormat(50, 10, "With alias: {nb}", "1", 0, "R", false, 0, "")
	pdf.AliasNbPages("")
	pdf.OutputFileAndClose("test.pdf")
}

Thanks for the report, @lassik. Aliasing is pretty lame with this library; the substitutions are strictly lexical with no awareness of the special formatting that put the '{nb}' key where it lands in the document. We could maybe implement some logic that puts the space difference between the key (for example, '{nb}') and the substitution value (for example, '42') some place. I will muse on this a bit.


Please add support for C++

As titled.

Sure thing, coming later this week! Anything else? Would you like for me to make the the comments and prints uneditable once hidden? It would prevent silly mistakes.

Would you want C too?

That'd be great and shouldn't be too difficult given C and C++'s similarity.

Uploading a new extension soon that has greated language support and more features. Will deprecate this one and link the new one


Fix bad link

The link is leading readers to the wrong part of the file.
Fixing it to the correct range of lines.

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

Would be amazing to use Github Code Definitions though, but it can't C#

Tested that the new link works well
https://github.com/Azure/azure-cosmos-dotnet-v3/blob/master/Microsoft.Azure.Cosmos.Samples/Usage/ItemManagement/Program.cs#L676-L772
#sign-off

@arleypadua  Thank you for your feedback, your PR will be merged shortly. I will add code regions and update the doc soon.


Envoy not retrying Http2 streams sent but ignored by server after a GOAWAY frame and returning 503s

Title: Envoy not retrying Http2 streams sent but ignored by server after a GOAWAY frame and returning 503s
Description:
After configuring an Http2 AWS Application Load Balancer (ALB) as an upstream target and running load tests through Envoy, we observed sporadic 503s  (a few out of every 10k) and did some investigation.
The problem appears to stem from ALB's default behavior of sending a GOAWAY frame every time a connection hits 10000 streams:

We validated this by looking at access logs and grouping them by TCP connection (upstream_local_address). Every observed 503 response would be the 10001+ request on that TCP connection.
I also captured and decrypted a PCAP between Envoy and the ALB and saw the same thing. At the very end of the TCP stream, Envoy sends an HTTP2 frame to the ALB with 6 streams inside, corresponding to 6 GET requests (19999, 20001, 20003, 20005, 20007, 20009)

The next frame is a GOAWAY response from the ALB indicating that the last stream processed was 19999:

The ALB then gives the response for stream 19999 and sends a FIN ACK.
The problem is that each of those other streams that were sent in the frame before the GOAWAY are never retried. Each one of those requests results in a 503 from Envoy to the downstream (verified by looking at the request_id header in Wireshark)
Reading the HTTP2 RFC, I think both AWS and Envoy are a little to blame. I think Envoy is supposed to retry those streams on a new connection:

If the receiver of the GOAWAY has sent data on streams with a higher stream identifier than what is indicated in the GOAWAY frame, those streams are not or will not be processed. The receiver of the GOAWAY frame can treat the streams as though they had never been created at all, thereby allowing those streams to be retried later on a new connection.

However, the ALB should also probably be more graceful about how it handles shutdowns on the 10k request mark:

A server that is attempting to gracefully shut down a connection SHOULD send an initial GOAWAY frame with the last stream identifier set to 2^31-1 and a NO_ERROR code. This signals to the client that a shutdown is imminent and that initiating further requests is prohibited. After allowing time for any in-flight stream creation (at least one round-trip time), the server MAY send another GOAWAY frame with an updated last stream identifier. This ensures that a connection can be cleanly shut down without losing requests.

Doing some more digging, it looks like the official Go HTTP2 package also has the same issue with how to handle the ALB's abrupt GOAWAYs: https://github.com/golang/go/issues/18639
Is this a bug with Envoy's Http2 client? Should it be retrying lost streams on a new connection when it receives a GOAWAY for with a stream ID lower than the last one it sent?
I am also pursuing this with AWS support on the ALB side as well.
Repro steps:
Point to an Http2 Amazon ALB as an upstream cluster and run a load test with hey:
hey -z 5m  http://<IP_ADDRESS>/ping

After a few minutes, some 503s will start to appear
Config:
admin:
  address:
    socket_address:
      address: <IP_ADDRESS>
      port_value: 9090

static_resources:
  listeners:
    - name: envoy-listener-8080
      traffic_direction: OUTBOUND
      address:
          socket_address:
            address: <IP_ADDRESS>
            port_value: 8080
            protocol: TCP
      filter_chains:
        - name: default_filter_chain
          filters:
            - name: envoy.filters.network.http_connection_manager
              typed_config:
                '@type': type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager
                stat_prefix: ingress_http
                server_name: envoy
                use_remote_address: true
                generate_request_id: true
                request_id_extension:
                  typed_config:
                    '@type': type.googleapis.com/envoy.extensions.request_id.uuid.v3.UuidRequestIdConfig
                    use_request_id_for_trace_sampling: false
                access_log:
                  - name: envoy.access_loggers.file
                    typed_config:
                      '@type': type.googleapis.com/envoy.extensions.access_loggers.file.v3.FileAccessLog
                      path: "/dev/stdout"
                      log_format:
                        json_format:
                          component: http
                          # log the original authority before its rewritten
                          authority: "REQ(:AUTHORITY)"
                          bytes_received: "%BYTES_RECEIVED%"
                          bytes_sent: "%BYTES_SENT%"
                          downstream_local_address: "%DOWNSTREAM_LOCAL_ADDRESS%"
                          downstream_remote_address: "%DOWNSTREAM_REMOTE_ADDRESS%"
                          duration: "%DURATION%"
                          method: "%REQ(:METHOD)%"
                          path: "%REQ(X-ENVOY-ORIGINAL-PATH?:PATH)%"
                          protocol: "%PROTOCOL%"
                          request_id: "%REQ(X-REQUEST-ID)%"
                          requested_server_name: "%REQUESTED_SERVER_NAME%"
                          response_code: "%RESPONSE_CODE%"
                          response_code_details: '%RESPONSE_CODE_DETAILS%'
                          response_flags: "%RESPONSE_FLAGS%"
                          start_time: "%START_TIME%"
                          upstream_cluster: "%UPSTREAM_CLUSTER%"
                          upstream_host: "%UPSTREAM_HOST%"
                          upstream_authority: "%REQ(:AUTHORITY)%"
                          upstream_protocol: "%UPSTREAM_PROTOCOL%"
                          upstream_path: "%REQ(:PATH)%"
                          upstream_local_address: "%UPSTREAM_LOCAL_ADDRESS%"
                          upstream_service_time: "%RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)%"
                          upstream_transport_failure_reason: "%UPSTREAM_TRANSPORT_FAILURE_REASON%"
                          upstream_request_attempt_count: "%UPSTREAM_REQUEST_ATTEMPT_COUNT%"
                          upstream_request_bytes_received: "%UPSTREAM_HEADER_BYTES_RECEIVED%"
                          upstream_connection_pool_ready_duration: "%UPSTREAM_CONNECTION_POOL_READY_DURATION%"
                          upstream_peer_subject: "%UPSTREAM_PEER_SUBJECT%"
                          upstream_peer_issuer: "%UPSTREAM_PEER_ISSUER%"
                          upstream_tls_session_id: "%UPSTREAM_TLS_SESSION_ID%"
                          upstream_tls_cipher: "%UPSTREAM_TLS_CIPHER%"
                          upstream_tls_version: "%UPSTREAM_TLS_VERSION%"
                          upstream_peer_cert: "%UPSTREAM_PEER_CERT%"
                          upstream_peer_cert_v_start: "%UPSTREAM_PEER_CERT_V_START%"
                          upstream_peer_cert_v_end: "%UPSTREAM_PEER_CERT_V_END%"
                          user_agent: "%REQ(USER-AGENT)%"
                          x_forwarded_for: "%REQ(X-FORWARDED-FOR)%"
                          upstream_connection_id: "%UPSTREAM_CONNECTION_ID%"
                          stream_id: "%STREAM_ID%"
                          upstream_connection_pool_ready: "%UPSTREAM_CONNECTION_POOL_READY_DURATION%"
                http_filters:
                  - name: envoy.filters.http.router
                    typed_config:
                      '@type': type.googleapis.com/envoy.extensions.filters.http.router.v3.Router
                route_config:
                  virtual_hosts:
                    - name: poc-alb
                      domains: ["*"]
                      routes:
                        - match:
                            prefix: "/"
                          route:
                            cluster: poc-alb

  clusters:
    - name: poc-alb
      dns_lookup_family: V4_ONLY
      connect_timeout: 5s
      type: LOGICAL_DNS
      lb_policy: ROUND_ROBIN
      transport_socket:
        name: envoy.transport_socket.tls
        typed_config:
          '@type': type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext
          common_tls_context:
            key_log:
              path: /configs/keylog.log
      typed_extension_protocol_options:
        envoy.extensions.upstreams.http.v3.HttpProtocolOptions:
          "@type": type.googleapis.com/envoy.extensions.upstreams.http.v3.HttpProtocolOptions
          auto_config:
            http_protocol_options: {}
            http2_protocol_options: {}
      load_assignment:
        cluster_name: poc-alb
        endpoints:
          - lb_endpoints:
            - endpoint:
                address:
                  socket_address:
                    address: <IP_ADDRESS> # private ALB IP address
                    port_value: 443
                    protocol: TCP

Logs:
The debug logs during the load test are ~650MB. I will try to do some filteirng and sorting if there's specific things I should be grepping for?

FWIW and to anyone having the same problem we've been able to avoid this problem by setting the following in our cluster configs that point to HTTP2 ALBs:
common_http_protocol_options:
    max_requests_per_connection: 9500

Basically we just try not hit the 10k maximum number of requests per connection that AWS enforces on the ALBs to avoid this issue

Envoy should be capable of retrying on a different connection (or a different endpoint) but the retry behavior is configurable, so maybe "GOAWAY" is not considered a retriable reason (https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_filters/router_filter#x-envoy-retry-on).
CC @wbpcode

Thank you - yes I should have mentioned that. I uploaded a minimally reproducible example config, but I've also configured the route with this retry_policy:
retry_policy:
  retry_on: retriable-status-codes,reset,reset-before-request,refused-stream,connect-failure,retriable-headers
  retriable_status_codes: [500, 502, 503, 504]
  num_retries: 3
  per_try_timeout: 5s

We still see 503s on the 10001+ request per connection
From what I can tell, none of these retry_on scenarios apply. The server does respond to the H2 frame (for only the 10000th stream) and then closes the connection, so I don't think Envoy is interpreting it as a reset or connect-failure. And it's not a reset-before-request because the request stream was actually sent and ACK'd by the server.
Not sure what else to try but all suggestions appreciated 👍


.Net: Bug: Semantic Kernel inflates token usage of input prompt by 20% due to Unicode escaping and URL encoding of the prompt

Describe the bug
the semantic kernel package in c# is inflating the usage tokens by around 20% for my prompts because it escapes Unicode characters and URL encodes the string of the content field of the messages array.
I tested it on a prompt that has 49k input tokens based on the metadata information from the Azure OpenAI api, and when using semantic kernel it inflates the input tokens to 63k
It's very easy to see the prompt differences when it has JSON in it
Platform

OS: Windows
IDE: Visual Studio
Language: C#
Source: NuGet package version 1.15

@markwallace-microsoft  can you please check #705

Fixed via https://github.com/microsoft/semantic-kernel/pull/7098

Do we have a right way to see a prompt is actually sent to the azure open ai instead of checking chat history message? I have the same issue here but with function calling, somehow uses it a lot of tokens even though the function returns a very simple data and end up with thousands of tokens used

Do we have a right way to see a prompt is actually sent to the azure open ai instead of checking chat history message? I have the same issue here but with function calling, somehow uses it a lot of tokens even though the function returns a very simple data and end up with thousands of tokens used

@sonphnt Yes, if you enable LogLevel.Trace in your application, you will be able to see the prompt that is sent to AI connector, like on the screenshot in previous comment.

Any update about it ? Looking at the sources it seems it comes from the way the chat history is logged using JsonSerializer without any option.
Locally I can reproduce by serializing a TextContent, then I can fix with this options:
JsonSerializerOptions options = new ()
{
Encoder = JavaScriptEncoder.UnsafeRelaxedJsonEscaping
};
Perhaps being able to pass down this option would be a way to fix this. It is quite destabilizing when looking at the logs.
Moreover, I do not feel entirely confident on how the data is really sent at the end.


How to programmatically run tests?

How to programmatically run tests?

const { runCLI } = require("jest");
runCLI(YOUR_OPTIONS, [__dirname]).then(result => console.log(result));

Example: https://github.com/Itrulia/jest-schematic/blob/master/src/run/index.ts#L5

Thank your for your response.
I was trying to use jest with typescript and webpack - encountering this problem:

Projects/nativescript-rnview/node_modules/jest-jasmine2/build/index.js:74:13: JS ERROR SyntaxError: Unexpected token '.'. Expected a ':' following the property name 'global'.

So I thought I could go around it using ts-jest

You will need ts-jest, but ts-jest is not a replacement for jest.
See the documentation how to use it: https://kulshekhar.github.io/ts-jest/

Close as this question is related to jest repository.
Thanks @Itrulia a lot for helping with supporting.


Make fails on Noetic-devel

Hi TEB team,
thank you for your exceptional software!
I am currently trying to move our robotics stack from Melodic to Noetic. But when I build my project with the noetic-devel branch, I get the following errors:
/home/fe/korjakow/Projects/catkin_ws/src/forks/navigation/local_planner/teb/src/teb_config.cpp:196:57: error: ‘class teb_local_planner::TebLocalPlannerReconfigureConfig’ has no member named ‘feasibility_check_lookahead_distance’
  196 |   trajectory.feasibility_check_lookahead_distance = cfg.feasibility_check_lookahead_distance;
      |                                                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/fe/korjakow/Projects/catkin_ws/src/forks/navigation/local_planner/teb/src/teb_config.cpp:210:43: error: ‘class teb_local_planner::TebLocalPlannerReconfigureConfig’ has no member named ‘use_proportional_saturation’
  210 |   robot.use_proportional_saturation = cfg.use_proportional_saturation;
      |                                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/fe/korjakow/Projects/catkin_ws/src/forks/navigation/local_planner/teb/src/teb_config.cpp:228:52: error: ‘class teb_local_planner::TebLocalPlannerReconfigureConfig’ has no member named ‘obstacle_proximity_ratio_max_vel’
  228 |   obstacles.obstacle_proximity_ratio_max_vel = cfg.obstacle_proximity_ratio_max_vel;
      |                                                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/fe/korjakow/Projects/catkin_ws/src/forks/navigation/local_planner/teb/src/teb_config.cpp:229:50: error: ‘class teb_local_planner::TebLocalPlannerReconfigureConfig’ has no member named ‘obstacle_proximity_lower_bound’
  229 |   obstacles.obstacle_proximity_lower_bound = cfg.obstacle_proximity_lower_bound;
      |                                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/fe/korjakow/Projects/catkin_ws/src/forks/navigation/local_planner/teb/src/teb_config.cpp:230:50: error: ‘class teb_local_planner::TebLocalPlannerReconfigureConfig’ has no member named ‘obstacle_proximity_upper_bound’
  230 |   obstacles.obstacle_proximity_upper_bound = cfg.obstacle_proximity_upper_bound;
      |                                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/fe/korjakow/Projects/catkin_ws/src/forks/navigation/local_planner/teb/src/teb_config.cpp:253:46: error: ‘class teb_local_planner::TebLocalPlannerReconfigureConfig’ has no member named ‘weight_velocity_obstacle_ratio’
  253 |   optim.weight_velocity_obstacle_ratio = cfg.weight_velocity_obstacle_ratio;
      |                                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/fe/korjakow/Projects/catkin_ws/src/forks/navigation/local_planner/teb/src/teb_config.cpp:261:47: error: ‘class teb_local_planner::TebLocalPlannerReconfigureConfig’ has no member named ‘max_number_plans_in_current_class’
  261 |   hcp.max_number_plans_in_current_class = cfg.max_number_plans_in_current_class;
      |                                               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/fe/korjakow/Projects/catkin_ws/src/forks/navigation/local_planner/teb/src/teb_config.cpp:267:44: error: ‘class teb_local_planner::TebLocalPlannerReconfigureConfig’ has no member named ‘selection_dropping_probability’
  267 |   hcp.selection_dropping_probability = cfg.selection_dropping_probability;
      |                                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
make[2]: *** [forks/navigation/local_planner/teb/CMakeFiles/teb_local_planner.dir/build.make:128: forks/navigation/local_planner/teb/CMakeFiles/teb_local_planner.dir/src/teb_config.cpp.o] Error 1

Is it possible that the TebLocalPlannerReconfigureConfig is generated incorrectly?
System:
Ubuntu 20
ROS Noetic

@wittenator did you manage to fix this on Noetic?

Hi @ljburtz ,
I ended up using the Melodic version on Noetic which seems to work as far as I see. At least it didn't throw any errors yet.

same here. fingers crossed this isn't the cause of any issues. I'm not knowledgeable enough to attempt fixing the Noetic make

I came across the same issue. It turns out I already had the release version of teb_local_planner installed (via apt), so catkin_make used the installed header files, which don't have those parameters (the noetic release is from mid 2020).
sudo apt remove ros-noetic-teb-local-planner

then rebuild and it should work


separate job for QA tests

I think that would be a logical move

coverage is missing, should it simply be added to requirements-unit-test.txt, or should it come from openwisp-utils[qa]?

may be should be added to requirements-unit-test.txt

This sound great!


Guard against TextFormat encoding of unknowns from overflowing the stack

This makes a lot of sense. It looks like the recursion here to dissect potential submessages would yield quadratic performance in the depth of the tree, so the limit here could be a significant performance win (in addition to limiting stack consumption). As a follow-up, would it make sense to add an option to completely suppress dissecting unknown sub messages?

Not sure I follow the perf concern.  For each length delimited, it would walk the tags (not looking for sub messages) and if it works, then expand the message; and in doing the expansion, it would attempt to do that for sub messages.  But at each level, it isn't fully recursive.
Options - There already is a bool to not include unknowns; and TextFormat isn't really a good wire format in the first place because you can't read back in unknowns (you don't know something is a group or message when seen in TextFormat; and I'm not sure all platforms are specific enough on fixed vs. varint output to tell those apart). Anyway, we could add it, just not sure what it really buys folks.

Ah, yes.  You're right, at each level, the length-delimited fields get skipped entirely, so those bytes don't even get scanned, much less parsed.