[REDESIGN] MenuBar re-design - I have provided the sample design!

What would you like to share or ask?
With all due respect to the developer who created the current menubar, the menuBar looks decent but I can make it even better. I have created multiple menuBar in the past. Please refer to my recent work for Vibey -

Please assign me the issue under GSSoC, I am really looking forward to create a elegant menuBar for DevsInTech.
Additional information
No response

@Susmita-Dey and @devs-in-tech/devsintech-web-team look into the issue and design

Are they really assigning issues to contributors or not. I can not see much assignments from owner's side
@Varghab @prnvtripathi

@Gauravbisht231 @prnvtripathi I want to work on this issue, please have a look!

@Susmita-Dey Please have a look


Fix #228 : Try removing the hack for lang=zh-HK

$ mv app/locale/zhhk/ app/locale/zh-HK/

Then remove workarounds in app/utils.py and app/const.py
NB: Update Dockerfile by adding cssselect and pillow
#228

Thanks!
Can you separate "remove zhhk hack" part and "fix Dockerfile" part into 2 pull requests? I believe they are independent; tests on Docker should be already failing without your change.
Also, can you make the change again after pulling our latest master? I have just submitted a change to django.po files. Sorry for the conflict.

I wondering if github notified you about my last commit ?

It didn't :( Thanks for the reminder. Maybe it's a bug of Github...
Looks good to me. Did you make sure that tools/all_tests passes?

Yes, everything is alright. I just ran tests it once again.

Thanks! Merged.


[Constraint] Add an ability to attach a fix to BindOverload constraint

@swift-ci please smoke test


Generate tangents for water tiles

Fixes #524
Note that the skip-the-tangents optimization in #499 are still a significant win even though we're rolling them back a bit here. We still don't need to generate tangents for: photogrammetry models (which have much more complicated geometry than terrain), and terrain tiles without any water.

Thanks for the pull request @kring!

:heavy_check_mark: Signed CLA found.

Reviewers, don't forget to make sure that:

[ ] Cesium for Unreal Samples works.

This fixes the issue, thanks @kring!


Compatibility with ellipke

The elliptic integral ellipke is used in evaluating the magnetic field in a magnetic bottle configuration. By default ODE solvers use autodifferentiation to compute the Jacobians. However, there seems to be a compatibilty issue with many solvers used in demo_magneticbottle.jl:
sol = solve(prob, ImplicitEuler(); dt=1.5e-12, save_idxs=[1,2,3])

ERROR: LoadError: MethodError: no method matching Float64(::ForwardDiff.Dual{ForwardDiff.Tag{SciMLBase.UJacobianWrapper{ODEFunction{true, typeof(trace_analytic_relativistic!), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, Float64, Tuple{Float64, Float64, typeof(getE), typeof(getB)}}, Float64}, Float64, 6})
Closest candidates are:
  (::Type{T})(::Real, ::RoundingMode) where T<:AbstractFloat at rounding.jl:200
  (::Type{T})(::T) where T<:Number at boot.jl:760
  (::Type{T})(::AbstractChar) where T<:Union{AbstractChar, Number} at char.jl:50
  ...
Stacktrace:
  [1] ellipke(x::ForwardDiff.Dual{ForwardDiff.Tag{SciMLBase.UJacobianWrapper{ODEFunction{true, typeof(trace_analytic_relativistic!), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, Float64, Tuple{Float64, Float64, typeof(getE), typeof(getB)}}, Float64}, Float64, 6})
    @ Elliptic ~/.julia/packages/Elliptic/WKWjT/src/Elliptic.jl:54
  [2] getB_Bottle(x::ForwardDiff.Dual{ForwardDiff.Tag{SciMLBase.UJacobianWrapper{ODEFunction{true, typeof(trace_analytic_relativistic!), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, Float64, Tuple{Float64, Float64, typeof(getE), typeof(getB)}}, Float64}, Float64, 6}, y::ForwardDiff.Dual{ForwardDiff.Tag{SciMLBase.UJacobianWrapper{ODEFunction{true, typeof(trace_analytic_relativistic!), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, Float64, Tuple{Float64, Float64, typeof(getE), typeof(getB)}}, Float64}, Float64, 6}, z::ForwardDiff.Dual{ForwardDiff.Tag{SciMLBase.UJacobianWrapper{ODEFunction{true, typeof(trace_analytic_relativistic!), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, Float64, Tuple{Float64, Float64, typeof(getE), typeof(getB)}}, Float64}, Float64, 6}, distance::Float64, a::Float64, b::Float64, I1::Float64, I2::Float64)
    @ TestParticle.MagneticConfinement /home/local/hongyang/Documents/julia/TestParticle.jl/src/utility/confinement.jl:29
  [3] getB(xu::Vector{ForwardDiff.Dual{ForwardDiff.Tag{SciMLBase.UJacobianWrapper{ODEFunction{true, typeof(trace_analytic_relativistic!), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, Float64, Tuple{Float64, Float64, typeof(getE), typeof(getB)}}, Float64}, Float64, 6}})
    @ Main /home/local/hongyang/Documents/julia/TestParticle.jl/src/examples/demo_magneticbottle.jl:53

This is a case where the electron velocity is very close to the speed of light, and since we are solving in SI units, we need really high accuracy while keeping the velocity not exceeding the speed of light. I don't have a clue on how to solve it nicely: the current working method is to use a fixed timestep scheme with extremely small timestep.

As I have more experience with DifferentialEquations.jl, I realized that in general an implicit solver is not compatible with auto-differentiation. Therefore usually we need ImplicitEuler(autodiff=false) to make it work.


[Improvement] Improve some maven profile configurations

Why are the changes needed?

Improve some maven profile configurations for releasing 0.7.0
Brief change log

Rename profile flink-pre-1.15 to flink-optimizer-pre-1.15
Remove deploy-maven-central profile
Simplify profile build-mixed-format-trino configuration
Fix amoro-mixed-format-trino spotless plugin configurations
Fix some format error of amoro-mixed-format-trino

How was this patch tested?

[ ] Add some test cases that check the changes thoroughly including negative and positive cases if possible

[ ] Add screenshots for manual tests if appropriate

[x] Run test locally before making a pull request

Documentation

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

Thanks for the review! @czy006


changes in readme.md

I have tried to make readme file more brief and understandable to other "i hope you like it maintainer it's my first contribution  "

Summary by CodeRabbit

New Features

Introduced a new .yarnrc file for Yarn version management.
Added a "Table of Contents" in the README for improved navigation.

Documentation

Updated badge formats for Actions Status, npm, and node.
Rephrased introductory text and reformatted sections for clarity.
Streamlined Quick Start and Usage sections for easier understanding.
Enhanced overall structure for better readability.

@aniketprajapati-sud
Thank you for creating a PR.
Please make sure that most of the information in the README has been erased by the code changes before creating a PR.
I intentionally did not include a table of contents because I want you to quickly look at the Features and Quick Start.
I'm sorry, but I will close this PR.

ok i will make sure of this thing  : )
On Sun, Oct 13, 2024 at 8:31 AM Kazuki Yamada @.***>
wrote:

@aniketprajapati-sud https://github.com/aniketprajapati-sud
Thank you for creating a PR.
Please make sure that most of the information in the README has been
erased by the code changes before creating a PR.
I intentionally did not include a table of contents because I want you to
quickly look at the Features and Quick Start.
I'm sorry, but I will close this PR.
—
Reply to this email directly, view it on GitHub
https://github.com/yamadashy/repopack/pull/118#issuecomment-2408797345,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/BKNAFD3JYO2YGTSNCZXEKH3Z3HO7ZAVCNFSM6AAAAABP2YIFC2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDIMBYG44TOMZUGU
.
You are receiving this because you were mentioned.Message ID:
@.***>


/tournaments/ docs

I tried to follow the current method of outlining endpoints and documenting responses, etc.

It would definitely be useful to have some format for grouping our docs so we could reference sections or individual endpoints instead of a single file for all of the associated endpoints.

@jonobrien

It would definitely be useful to have some format for grouping our docs so we could reference sections or individual endpoints instead of a single file for all of the associated endpoints.

I really liked @CarbonAlabel navigation section. for breaking up the endpoints at the same time showing how to walk it.
Try this flavor: https://github.com/timpanogos/eveonline-third-party-documentation/blob/master/docs/crest/misc/tournament/tournamentCollection.md.  Note indexed building of full url's is also valid and should be noted.

FWIW, you have my vote for this PR to happen anytime.

I'll add navigation later, I was just posting this as a wip as I've been working with these endpoints for a few months now, noted a few nuanced points for each endpoint as I found them.

some notes on some other findings, as they still exist as bugs #199 with CCP support ticket still status:open, and hopefully everything is fixed for AT XIV :wink: CCPSoon(tm) :wink:

@jonobrien Have you tried if the endpoints are working on SISI? According to this dev blog, there should be a fixed version there, but I haven't noticed them acting any differently than the ones on TQ.

no, I've been working off tq as the docs are in tq for the most part I think, and I have been meaning of looking at the sisi endpoints.

also @CarbonAlabel that devblog only mentions endpoints I haven't wanted to mess with yet.  I have avoided the /realtime/ and /static/ endpoints, but have noticed their existence before as well.

#199 still happens on sisi with errors for root tournament ids saying errors, where I can hardcode other endpoints for the first 7 or so series and their data exists, as poorly explained in that issue.

ccp-bartender noted to me just the other day that https://api-sisi.testeveonline.com/tournaments/1/ should be fixed on sisi upon next restart and that /9/ worked for at the time being.  I just double checked and id's 1 to 14 indeed return valid information now., thus #199 seems resolved for next release

@timpanogos yes I noted in my issue that only the first 7 were not returning results, the last 7 were fine.

@timpanogos if you haven't already, the json in this PR is from the endpoints accessible from the root tournament endpoint.
I just checked sisi and they(1-7) do not return valid data for tournament/id/

@jonobrien I looked at all 14 and got responses.  Just from right now I got a huge response for /1/
note this just changed:
13:48:23.895 WARN  [CccBlockingExecutor-4] c.c.c.c.c.c.t.TournamentGetSeries$Structure - outgoingLoser has a field not currently being handled:
outgoingLoser={"href":"https://crest-tq.eveonline.com/tournaments/1/series/124/"}
i.e. they added outgoingLoser along with the existing outgoingWinner
partial:
13:48:23.900 DEBUG [CccBlockingExecutor-4] c.c.c.c.c.c.t.TournamentGetSeries - Series
pageCount: 1
pageCountStr: 1
totalCount: 126
totalCountStr: 126
teams:
TeamInfo
length: 1
lengthStr: 1
redTeam:
TeamWrapper
team:
Team
teamName: Circle-Of-Two
teamUrl: https://crest-tq.eveonline.com/tournaments/teams/1/
...

if you haven't already looked at it, the json in this PR is from the endpoints accessible from the root tournament endpoint.

oh yea, and loved having them ty ... yes PR should happen anytime before my stuff, which I assume will basically merge into what we all agree upon based off of @CarbonAlabel pattern.
damn work keeps pulling me away from finishing the "tournamentGroup.md" I promised soon as a change proposal to carbon's current navigation ... it's soonerish now

@timpanogos yeah I saw the existing outgoingWinner before, are you sure you are checking sisi? those href's are for tq

@jonobrien thanks for the heads up on the sisi, I'm at work and did not update my properties file to point to it... at least my detection for new/unknown fields is working.
1..14 still worked for me .. snippet follows:
pageCount: 1
pageCountStr: 1
totalCount: 126
totalCountStr: 126
teams:
	TeamInfo
		length: 1
		lengthStr: 1
		redTeam:
			TeamWrapper
				team:
					Team
						teamName: Circle-Of-Two
						teamUrl: https://crest-tq.eveonline.com/tournaments/teams/1/
		blueTeam:
			TeamWrapper
				team:
					Team
						teamName: SCUM.
						teamUrl: https://crest-tq.eveonline.com/tournaments/teams/64/
		matchesWon:
			MatchesWon
				redTeam: 1
				redTeamStr: 1
				blueTeam: 0
				blueTeamStr: 0
		matches:
			ExternalRef
				url: https://crest-tq.eveonline.com/tournaments/1/series/0/matches/
				linkType: null
		self:
			ExternalRef
				url: https://crest-tq.eveonline.com/tournaments/1/series/0/
				linkType: null
		winner:
			TeamWrapper
				team:
					Team
						teamName: Circle-Of-Two
						teamUrl: https://crest-tq.eveonline.com/tournaments/teams/1/
		loser:
			TeamWrapper
				team:
					Team
						teamName: SCUM.
						teamUrl: https://crest-tq.eveonline.com/tournaments/teams/64/
	TeamInfo
		length: 1
		lengthStr: 1
		redTeam:
			TeamWrapper
				team:
					Team
						teamName: Of Sound Mind
						teamUrl: https://crest-tq.eveonline.com/tournaments/teams/32/
		blueTeam:
			TeamWrapper
				team:
					Team
						teamName: YOUR VOTES DON'T COUNT
						teamUrl: https://crest-tq.eveonline.com/tournaments/teams/33/
		matchesWon:
			MatchesWon
				redTeam: 0
				redTeamStr: 0
				blueTeam: 1
				blueTeamStr: 1
		matches:
			ExternalRef
				url: https://crest-tq.eveonline.com/tournaments/1/series/1/matches/
				linkType: null
		self:
			ExternalRef
				url: https://crest-tq.eveonline.com/tournaments/1/series/1/
				linkType: null
		winner:
			TeamWrapper
				team:
					Team
						teamName: YOUR VOTES DON'T COUNT
						teamUrl: https://crest-tq.eveonline.com/tournaments/teams/33/
		loser:
			TeamWrapper
				team:
					Team
						teamName: Of Sound Mind
						teamUrl: https://crest-tq.eveonline.com/tournaments/teams/32/
	TeamInfo

I don't see it working on the root. I'm not questioning other endpoints off the root working, as I documented them as working on tq in this PR

still, not the point of this PR, DOCS are ok to merge for current api results, unless others find issues.

still, not the point of this PR, DOCS are ok to merge for current api results, unless others find issues.

fixed all index alphabetical orderings on index pages in my PRs

Thanks! Cherry-picked as 4ae75df35d4a65897886f93691203196b050f1bc.


dir is too slow

CD into a GCS bucket/folder that has more than 500 objects. Type dir -Recurse.
Expected: It takes a while, sure.
Observed: After a minute or so I gave up.

I just tried this on the doublehelixbackup bucket, and while it was slow, it was displaying the objects as they were returned from the server. Can you point me to bucket where this fails as you describe?

This is fixed with https://github.com/GoogleCloudPlatform/google-cloud-powershell/pull/468 and https://github.com/GoogleCloudPlatform/google-cloud-powershell/pull/391.


Token 'xxxxxxx' does not exist

Can the code be altered to be less strict if the references don't exist. In my code I have some Yaml which references tags that aren't yet in the file, I'd still like to be able to generate the bundled copy.

I've been looking in the code and can see this isn't in the swagger-cli, it's in apidevtools/swagger-parser so closing the issue.


real-time cartesian control

Hi all!
I am working on real-time cartesian control of the robot. I am using a joy_node to send new vx vy vz from the cartesian_velocity_example_controller. Previously I have done also modified the joint_velocity_example_controller to send joint velocities from a joy_node. I am moving with maximum speed of 0.02m/s per axis of the end-effector. Currently I am running into the "cartesian_motion_generator_joint_acceleration_discontinuity" which according to the libfranca docs the joint jerk violation caused by motion generation by the internal IK of the robot. I wonder if anyone could tell me what kind of IK solver does franka use internally?

Kinda fixed it by running SLSQP optimization for motion generations


Unable to use this library on the latest stable channel release (2021)

I'm running into this error when I add ic-stable-memory to my Cargo.toml packages.

Do I have to switch to the nightly release channel to use this library or am I doing something wrong?

My Rust installation details look like this

This is fixed now


Move from thread_safe gem to concurrent-ruby

This also updates the gem to require Ruby 1.9.3 or greater.

Build fixed.

Hello?

I have merged this change. Thank you for submitting the pull request.

Thanks, let me know when you release so I can ensure Rails picks it up.


API docs or JavaScript example

I'm trying to use the service from the browser with JavaScript and am having trouble understanding the API from the Python example. Would it be possible to add a JavaScript example using fetch or perhaps general http request documentation. Thanks

I will be adding in more languages to the docs here soon.

Hi @nadermx. How looks progress in js support :)?

I must say, for support requests, these follow ups are tolerable.  I'll dedicate some time this month and close up some of these issues

@nadermx any chance we could get an update here?
Purchased a monthly plan and would love to use it, but just can't hack it in Javascript or CURL.

https://backgroundremover.app/api/?javascript#g-i18n-simply_replace-safe


MIT License

The library is great. Any chance you could license it under MIT or BSD-3-Clause so I can use it at work, where they only let us use libraries licensed under MIT or BSD-3-Clause?

@bartbutler are you happy for your contributions to be re-released under MIT?

No objections here!

Thanks for the quick reply! I've changed the license to MIT and I'll release a new version later today (probably with some other namespace/API changes, so maybe to 1.0).


Nicolas/playing with kernels

Notebook manipulating kernels in the new format

This is great. I guess it could be improved with visualisations of the higher dimensional examples, but we're not in this to write an intro book I guess :)


Screwdriver bug

The mithril screwdriver doesn't work since the last update of the screwdriver function add...

@LeMagnesium introduce this issue in his last update of screwdriver, i assigned the issue to him

https://github.com/Ombridride/minetest-minetestforfun-server/commit/b291b1587d39206458809a324817595a4706f4ca
Fixed.


Make this application more near to human handwriting (I have a suggestion for that).

So what this application currently doing is its taking font file which has every character of any respective language and accordingly you replace all character with those character provided in the file but the problem is when a human writes something, In its handwriting not always same characters look exactly same, so what you can do is take 2 or 3 characters for each character and randomly distribute them while generating a handwritten image, this makes handwriting which is more near to human way of writing. By the way, it's an awesome application thanks to the contributors.

Hey @Pratikmehta1729, there is an option available for custom writing fonts that can be generated using calligrapher, it also randomizes the handwriting fonts.

@amaan-ahmad  great, thanks!


ID converter in README.md is invalid

The website used to convert username's to ID's is no longer available.
You can use this one I found on Google as a replacement:
https://customapi.aidenwallis.co.uk/api/v1/twitch/toID/

Thank you for letting me know. It's something I wanted to rework, so you don't need the channel_id and can just enter the channel username.
I'm going to create a new release with a breaking change in the config.
Instead of channel_ids and own_channel_id in the config there will now be a channels and own_channel which will take the username of the channel. I think this is more intuitive overall.

The release https://github.com/Radioh/ha_twitch_helix/releases/tag/v.0.5.0 has been created
Let me know if you update and experience any issues with the new build.


Mermaid integrate new version?

[x] I agree to follow the Code of Conduct that this project adheres to.
[x] I have searched the issue tracker for a feature request that matches the one I want to file, without success.

Is your feature request related to a problem? Please describe.
Inserting a mermaid diagram with a C4Context doesn't result in a diagram.
https://mermaid.js.org/syntax/c4.html
Describe the solution you'd like
Latest mermaids features supported in draw.io
Describe alternatives you've considered
Workaround: Export mermaid to svg and then insert as image

I appreciate the idea, but this could effectively be a permanent issue open since we'll spend most of the time out of date. We update Mermaid for security issues, otherwise every 6-12 months. But, it's not a critical part of the app, so we won't update on every release.


Editorial: Address item 1-4 in #26

Improve the spec with editorial changes suggested by @anba in
https://github.com/tc39/proposal-intl-locale-info/issues/26
Other issues will be addressed by other PRs

@anba -please take a look. Thanks


Roll Flutter Engine from 70d4068e6bae to 6e208093781a (1 revision)

https://github.com/flutter/engine/compare/70d4068e6bae...6e208093781a
2022-06-02<EMAIL_ADDRESS>Roll Skia from 89fea08f6b16 to ee62fad9a422 (1 revision) (flutter/engine#33779)
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Please CC<EMAIL_ADDRESS>on the revert to ensure that a human
is aware of the problem.
To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose
To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Commit queue failed; closing this roll.


Events stopped after about 1-2 minutes

Hi,
I'm running demo code from readme ( connect and read some events)
But after of 1-2 minutes of running the script the events are stopped to be printing to console. After rerun script for a few times i have same problem. 1-3 minutes of events are printed and then stopped
Also I had error events that unable to upgrade to websockets. After i set enableWebsocketUpgrade: false error is not appears but events still not printed, and the same for raw data

Hi, having the same issue

is the disconnect event triggered?

I dont recieve info from events

I have tested it and the connection remains until the stream ends.

Check if the library is up to date. Command: npm update
Check if you are using a up to date NodeJS version.

Checked but no results

Yeah, few last days works fine. Didn't change anything


Teach cxx to catch (Map)ParseException

This implements the last suggestion in https://github.com/brson/wasm-opt-rs/issues/95#issue-1408530390.
Avoids needing to wrap every function that might throw wasm::ParseException in its own individual try { ... } catch (const wasm::ParseException &e) { throw parse_exception_to_runtime_error(e); }.
I included an update to cxx 1.0.79 to pull in https://github.com/dtolnay/cxx/pull/1114 for a slight convenience.

Neat. Thanks again. I'll have to update my blog post to talk about this now!


Fix typo in architecture.html & xml.html

What is the purpose of the change
fix typo in architecture.html & xml.html
Brief changelog
regiter -> register
leveel ->level
Follow this checklist to help us incorporate your contribution quickly and easily:

[x] Make sure there is a GITHUB_issue filed for the change (usually before you start working on it). Trivial changes like typos do not require a GITHUB issue. Your pull request should address just this issue, without pulling in other changes - one PR resolves one issue.
[ ] Format the pull request title like Fix UnknownException when host config not exist #XXX. Each commit in the pull request should have a meaningful subject line and body.
[ ] Write a pull request description that is detailed enough to understand what the pull request does, how, and why.
[ ] Test your code locally by running docsite start, and make sure it works as expected.
[ ] Make sure no files under build directory is added.
[ ] If this contribution is large, please follow the Software Donation Guide.

You only have to change the markdown file, not the HTML, thank you @dut-xiayuan

sorry, new to open source, i have fix it

Thanks @dut-xiayuan


Repository commit search doesn't work when search for a specific SHA1 hash (short/long)

Currently with gogs <IP_ADDRESS>4 (on https://try.gogs.io), we can browse commits. When I try to search for a commit sha1 hash it doesn't work. It should also not matter one which branch/commit/tag we are currently browsing on.
Suggestions for sha1 searches:

Gogs length hash (10 characters): faf497c2ed

Git log shorthash (7 characters) faf497c2

Full-hash: faf497c2ed60abfab0e8a6782bcd1df51fb73ece

Test to see if commit works: https://try.gogs.io/admin1/php-src/commits/ faf497c2ed60abfab0e8a6782bcd1df51fb73ece

Test search gogs shorthash from master branch: https://try.gogs.io/admin1/php-src/commits/master/search?q=faf497c2ed

Test search full-hash from master branch: https://try.gogs.io/admin1/php-src/commits/master/search?q=faf497c2ed60abfab0e8a6782bcd1df51fb73ece

This also improves the search task list as suggested in this issue: https://github.com/gogits/gogs/issues/13
Hopefully this is clear enough, or else ask :-)

I think this is rather a feature request.... the search feature is searching for commit message right now...

You are right, but then the search box text is misleading currently:

The text would better be: Search commit message

Yes...


Reloader: fix unclosed file

[] CHANGELOG entry if change is relevant to the end user.

Changes

Verification

the ci on master branch is not work?

@scuzhanglei your branch is out of date, you need the up to date master.


Submodule::url panics

I have not found out why yet but we do a call to Submodule::url which is supposed to return an option but it panics unwrapping an internal option instead.
Apparently the return value of git_submodule_url is null which gets converted into None by opt_bytes and then unwrapped.
A stacktrace showing the issue can be seen here: https://github.com/getsentry/sentry-cli/issues/361

Oh dear, seems bad!  Should be fixed now though!

(fixed in https://github.com/alexcrichton/git2-rs/commit/350da2009cf3f2a1b0ae78875cfe1f2e0ce403e1)


Links for videos.

There is no link attached to watch movie or any related videos to redirect it to another page.

Please assign me this issue under gssoc'24 EXTENDED and hacktoberfest.

Already assinged to someone else.


Generate cache image task failures

https://github.com/microsoft/vscode/actions/runs/3424164785/jobs/5703527546

Seems to fail quite often recently.

Appears to be a networking issue in Actions with yarn. Not much we can do on our end I think.
#11 746.4 info There appears to be trouble with your network connection. Retrying...
#11 780.0 info There appears to be trouble with your network connection. Retrying...
#11 813.6 info There appears to be trouble with your network connection. Retrying...
#11 847.4 info There appears to be trouble with your network connection. Retrying...
#11 951.6 info There appears to be trouble with your network connection. Retrying...
#11 1096.0 info There appears to be trouble with your network connection. Retrying...
#11 1129.4 info There appears to be trouble with your network connection. Retrying...
#11 1163.2 info There appears to be trouble with your network connection. Retrying...
#11 1196.8 info There appears to be trouble with your network connection. Retrying...
#11 1236.3 error An unexpected error occurred: "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.3.tgz: ESOCKETTIMEDOUT".
#11 1236.3 info If you think this is a bug, please open a bug report with the information provided in "/repo-source-tmp/yarn-error.log".

This seems to have started when the markdown language server was added - unclear why tho.

Increasing the network timeout fixed it. https://github.com/microsoft/vscode/pull/171968/commits/d575c86bffe5f31f78ff1f670b2e2d3d03b0ee8d


lint statements for single child statements

Description
addresses https://github.com/fireeye/capa-rules/issues/382
Documentation

[x] I have updated the CHANGELOG.md, this is required for:

Bug fixes (non-breaking change which fixes an issue)
New features (non-breaking change which adds functionality)
Breaking changes (fix or feature that would cause existing functionality to not work as expected)

[ ] This change requires a documentation update

[ ] I have made the corresponding changes to the documentation

Tests

[ ] I have added tests that prove my fix is effective or that my feature works
[x] No new tests needed

lint should work after merging https://github.com/fireeye/capa-rules/pull/386


uBlock Origin prevents the demo app from loading

The demo app fails to load when using uBlock Origin (popular ad blocker) on Chrome. I don't know if it's anything you can solve, but it's worth knowing about.
Successful load:

Failed load:

Chrome version: 65.0.3325.181 (Official Build) (64-bit)

Thanks for letting us know. I'll fold this issue into #172 since it fits the general theme of badly-behaved third-party software interfering based on URLs.
I expect if we have to we could just serve the wasm file without any filename extension - it won't make any difference to the browser.


Metadata update to support "Add to Steam" feature.

Hii
This PR adds some assets and changes the preview metadata json file to reflect these additions.
It's still missing some assets, which I couldn't find on the internet:

Banner (needs to be 600 x 900) Example

StarRail: cn/bilibili
Genshin: cn/bilibili
Honkai: cn, kr, jp

Preview (needs to be 920 x 430) Example

StarRail: cn/bilibili
Honkai: cn, kr, jp

If anyone knows how to find or has any of the missing assets, please let me know.
All made of official art, with some taken from https://www.steamgriddb.com/

Should only be merged with the release of the preview with the "Add To Steam" feature.
Part of the https://github.com/CollapseLauncher/Collapse/issues/358 implementation process

Since this require changes in metadata, we will need to update our metadata internal tooling first as currently it doesn't have any builder for the necessary changes
CC @neon-nyan

Hi @bagusnl and @gablm,
As per changes that's still in the works for this addition on the metadata level, I came up with how the property would be.
IMO, we can have the ZoneSteamAssets property to be a Dictionary<string, SteamGameProp> which each own properties (Logo, Hero, Banner and Preview) would be the key in the Dictionary then inside of SteamGameProp class, there would be URL and MD5 property.
So basically, with how that come out. The usage would be something like this:
SteamGameProp steamGameLogoProp = ConfigV2Store[CurrentGameTitle][CurrentGameRegion].ZoneStreamAssets["Logo"];
// Do something with steamGameLogoProp.URL and steamGameLogoProp.MD5
...

Hi!
I think that your approach works out fine.
Gonna change main-repo PR to reflect the naming and dictionary changes.

Agreed with the change, it makes it much cleaner and better for us when we switch to different cdn as well

Everything is all good on CDN side, Thank you for the work! Go ahead and make the necessary changes in the main PR to support direct feed from main CDNs @gablm


Support overlapping presale and public sale windows

Background
Thanks so much for adding support for allowlist/presale features to this repo. We are relying on this feature in the mint UI of the songcamp CC0lab website.

Site: https://cc0lab/songcamp.band/mixtape
Code: https://github.com/songcamp/cc0lab

I've copied the code to our repo and made changes needed to support overlapping presale/pub sale windows. Other changes have been made to support custom markup, but that's out-of-scope for this discussion.
The following issues were addressed:

The MintButton component does not support overlapping presale/public sale windows and will not appear in the event that both are active. This case is not covered by the boolean expressions which wrap the two button markup cases:

https://github.com/public-assembly/zora-drops-utils/blob/3ce14339dbb4ffaa51f7c097e8019290506d5729/packages/zora-drops-utils/src/components/drop-components/MintButton.tsx#L136
https://github.com/public-assembly/zora-drops-utils/blob/3ce14339dbb4ffaa51f7c097e8019290506d5729/packages/zora-drops-utils/src/components/drop-components/MintButton.tsx#L164

The totalPurchasePrice always reflects the publicSalePrice and does not change to reflect the presale price. (That said, it seemed to work when I was testing with a different contract on goerli where the presale was active, but the public sale was not. Not sure if my memory is accurate on this point though)

https://github.com/public-assembly/zora-drops-utils/blob/3ce14339dbb4ffaa51f7c097e8019290506d5729/packages/zora-drops-utils/src/context/DropsContractProvider.tsx#L68

Proposal
Rather than making a proper PR for this I felt it better to discuss what would likely be a better solution.

When both presale and public sale options are available, they should both be presented to the user—by default—so that the user can choose, as is done on the create.zora.co.
To support existing use cases, an option should be provided, to always prefer presale or public sale when both are available.

In our case, the presale option is always preferable, so there is no need to show the public sale option when the connected wallet is on the allowlist.
cc/ @0xTranqui @dblodorn

Thanks for so much detail on this! @dblodorn has been maintaining + moving this repo forward so will defer to him mostly, but have some thoughts about the public/presale options to provide -- which is that I agree with u completely that only showing presale when both are available to the given user (ex: if they are logged in, and they are on presale list, they only see that) makes total sense to me. Perhaps lets just provide an override in the component itself that would let a dev allow both if that was needed for some reason, without them having to fork the package

Hey @neatonk thanks so much for the insight and sharing the updates you made in your codebase.
Yeah I had been thinking in terms of either or. So this is really helpful.
I have a big pr to merge into main and will implement your work along with some other features i've been thinking on.
One of which is a conditional rendering wrapper to displaying elements based on sale state. This  use case surfaced in a project where messaging and some ui not related directly to sales functionality needed to change based on sale state.
Thank you ser. Will ping you on the pr when it's ready!


add a version to handshakes so we can ignore old ones

This adds a version to the daemon handshake / logout handshake. This way we can ignore straggling callbacks

[ ] clear wating store when incrementing to clean slate

@keybase/react-hackers cc: @akalin

I think this may fix the remaining Windows problem

yeah it did fix it
:thumbsup:
merge it!
(I still think the timing needs to be changed on windows but it at least comes up eventually)


Cursor position snapping to center when CURSOR_DISABLED is set

On Linux, Ubuntu 18
The cursor example shows this, commit 0ef149c8f2451fbc8e866834675a075cfc295b6c (current master, at the time of posting)
Steps to reproduce:
Compile the library:
mkdir build && cd build
cmake ..
make -j

Run the example:
tests/cursor

Press 'D' to 'disable' the cursor (hide the cursor & 'grab' it into the window)
Every second or so, the cursor position snaps to the center of the window. This sometimes doesn't happen - i'm not sure what causes this. Not moving the mouse at all stops the snapping - the snapping only happens after / during a mouse movement.
This is a pretty brutal bug, as any 1st person 'mouselook' applications are broken under this. There's no workaround, other than ignoring all mouse inputs in the center of the screen, because there's no way to hide the mouse & 'do it yourself' (as the mouse will just get stuck on the edges of the screen, afaik there's no way to get mouse movement deltas)
I'm using the tiling window manager 'i3', however I have disabled 'mouse warping' (the behaviour that snaps the cursor to the center of the window when a window is focused) with mouse_warping none in my I3 config - the behaviour persists.
Is there any workaround for this at least?
Thanks!

Please post the GLFW version string returned by glfwGetVersionString and, if possible, some output from the test program that shows the error.

5.947: Cursor position: 320.000000 474.000000 (+0.000000 -1.000000)
5.964: Cursor position: 320.000000 473.000000 (+0.000000 -1.000000)
5.964: Cursor position: 320.000000 472.000000 (+0.000000 -1.000000)
5.980: Cursor position: 320.000000 471.000000 (+0.000000 -1.000000)
5.997: Cursor position: 320.000000 470.000000 (+0.000000 -1.000000)
5.997: Cursor position: 320.000000 469.000000 (+0.000000 -1.000000)
6.014: Cursor position: 320.000000 530.000000 (+0.000000 +61.000000)

Here's some output, you can see that the cursor snaps back to 320,530 after a short time, resulting in a huge delta
Version string is 3.4.0 X11 GLX EGL OSMesa clock_gettime evdev
I also just noticed I got these errors as it starts running, using the 'cursor' example in the glfw repo:
Error: X11: Standard cursor shape unavailable
Error: X11: Standard cursor shape unavailable
Error: X11: Standard cursor shape unavailable

This is completely fixed when using raw mouse motion:
if (glfwRawMouseMotionSupported())
glfwSetInputMode(window, GLFW_RAW_MOUSE_MOTION, GLFW_TRUE);
I'm guessing this is because my setup is (somehow, despite disabling mouse warping through i3) warping the mouse pointer to the center of the window (since in x11_window.c:1482 it seems like SOME value is being set when raw mouse input is off). The warp in this file happens when it gets an XEvent of type MotionNotify. Looking at this struct, it doesn't look like there's any extra data to indicate that this is a 'fake' movement..?
Assuming that this IS my system warping the pointer, this can probably be closed given that it's not a GLFW 'bug'. But I think this still poses a problem for devs that don't realise that some systems (like mine) will present this strange mouse warping behaviour when GLFW_CURSOR_DISABLED is set.
How common is raw mouse motion support? Will it likely be available on all systems which do this kind of weird mouse warping? Is it possible to add something to the docs indicating that some systems will behave poorly when GLFW_CURSOR_DISABLED is set when not using raw mouse motion, and to make sure raw mouse motion is being used for these cases where possible? Plus maybe some link to this issue, just in case anyone else using i3 (or whatever is causing this issue) encounters the same problem?
Thanks!

Wait!
This actually isn't fixed by raw mouse motion. As soon as I press any key or mouse input, the issue comes back - although the mouse warping doesn't warp directly back to the center, instead it tends to warp in two steps. Here's the input of the cursor program with raw mouse motion enabled:
4.255: Cursor position: 787.000000 341.000000 (+0.000000 -1.000000)
4.255: Cursor position: 786.000000 340.000000 (-1.000000 -1.000000)
5.734: Cursor position: 545.000000 384.000000 (-241.000000 +44.000000)
7.737: Cursor position: 480.000000 530.000000 (-65.000000 +146.000000)

See how from time 4.255 to 5.734 it does a big jump (-241, 44), then ANOTHER big jump at 7.737 (-65, 146), directly to the center of the screen?
I have literally no idea what's happening here...

I managed to reproduce this without i3 - just on the default ubuntu window manager, which makes this way less niche of a bug
I put in a PR which seems to solve the issue for me, unsure about other OSes


Error decoding response body: missing field id

Describe the bug
I now have the following code
use openai_api_rs::v1::api::Client;
use openai_api_rs::v1::chat_completion::{self, ChatCompletionRequest};

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let client = Client::new_with_endpoint("http://localhost:8080".to_string(), "NOKEY".to_string());
    let req = ChatCompletionRequest {
        model: "ggml-gpt4all-j".to_string(),
        messages: vec![chat_completion::ChatCompletionMessage {
            role: chat_completion::MessageRole::user,
            content: String::from("What is Bitcoin?"),
            name: None,
            function_call: None,
        }],
        functions: None,
        function_call: None,
        temperature: None,
        top_p: None,
        n: None,
        stream: None,
        stop: None,
        max_tokens: None,
        presence_penalty: None,
        frequency_penalty: None,
        logit_bias: None,
        user: None,
    };
    let result = client.chat_completion(req).await?;
    println!("{:?}", result.choices[0].message.content);
    Ok(())
}

I run ggml-gpt4all-j using the following
docker run -p 8080:8080 -it --rm ghcr.io/purton-tech/fine-tuna-model-api

When the call returns I get the following error
Error: APIError { message: "error decoding response body: missing field `id` at line 1 column 549" }

Looks like this line would need to be optional https://github.com/dongri/openai-api-rs/blob/main/src/v1/chat_completion.rs#L85 for local AI compatibility.
To Reproduce
As above.
Code snippets
No response
OS
Any
Rust version
1.64
Library version
1.12

This library only supports the official OpenAI API.
https://platform.openai.com/docs/api-reference/chat/create
The id is required in the response. Incompatible APIs are not supported


Transaction execution order issue

Environment
Knex version: 0.95.10
Database + version: pg 8.7.1
OS: Linux
Bug
Since 0.20.11 there is a transaction synchronization issue. On a production workflow even with forUpdate locking this causes data to be read and executed on out of order. The transaction is rearranged to the proper order after the commit but with values that 'arent possible' if it had been executed sequentially.

Create simple loop where transactions are used and log their execution
Notice that for a moment the transactions occur out of order leading to corrupted data

Simple repro code:
const db = knex({
  client: "postgresql",
  connection: "{{connection}}",
  pool: {
    min: 2,
    max: 10,
  }
});

async function insert(iteration: number) {
  return db.transaction(async (tx: any) => {
    logger.debug(`STARTING CONNECTION ${iteration}`);
  });
}

for (let i = 0; i < 10; i++) {
  insert(i);
}

0.20.10
0.20.11+

2021-08-26T19:49:20.446Z [debug]: STARTING CONNECTION 0
2021-08-26T19:47:37.918Z [debug]: STARTING CONNECTION 0

2021-08-26T19:49:20.447Z [debug]: STARTING CONNECTION 1
2021-08-26T19:47:37.919Z [debug]: STARTING CONNECTION 1

2021-08-26T19:49:20.447Z [debug]: STARTING CONNECTION 2
2021-08-26T19:47:37.920Z [debug]: STARTING CONNECTION 2

2021-08-26T19:49:20.447Z [debug]: STARTING CONNECTION 3
2021-08-26T19:47:37.920Z [debug]: STARTING CONNECTION 3

2021-08-26T19:49:20.447Z [debug]: STARTING CONNECTION 4
2021-08-26T19:47:37.921Z [debug]: STARTING CONNECTION 4

2021-08-26T19:49:20.447Z [debug]: STARTING CONNECTION 5
2021-08-26T19:47:37.924Z [debug]: STARTING CONNECTION 6

2021-08-26T19:49:20.447Z [debug]: STARTING CONNECTION 6
2021-08-26T19:47:37.924Z [debug]: STARTING CONNECTION 7

2021-08-26T19:49:20.450Z [debug]: STARTING CONNECTION 7
2021-08-26T19:47:37.925Z [debug]: STARTING CONNECTION 8

2021-08-26T19:49:20.450Z [debug]: STARTING CONNECTION 8
2021-08-26T19:47:37.925Z [debug]: STARTING CONNECTION 9

2021-08-26T19:49:20.451Z [debug]: STARTING CONNECTION 9
2021-08-26T19:47:37.926Z [debug]: STARTING CONNECTION 5

I will try, but no guaranties i will succeed, sorry in advance

Locally tested, BEGIN; query finish not in the ascending order, dont think it wrong behavior.
Can you please provide more info?
Also await before insert supposed to be omitted? (i tested both, await variant constantly provide sequential results as expected)

@maximelkin sure
In our real use case we use a row lock before reading then writing the difference in a status change. What we write is old_status new_status. We use an await before the row lock, before the read, and before the write.
What happens is the item that is out of order, say 5 coming after 7, 5 will read the data from number 7 then its old_status will be what 7 wrote. After all the transactions are done they get re-ordered such that 5 now comes before 7, but it has 7's data, making the write an 'impossible' transition.
An example output looks like this. Note the rows go from bottom to top where the value of the right column should be the value of the left at the higher row:

But when we roll back to the earlier version:

Heres the code for a slightly more complex example:
Migration file for db:
-- migrate:up
CREATE EXTENSION IF NOT EXISTS pgcrypto WITH SCHEMA public;

CREATE TABLE public.items (
    id uuid DEFAULT public.gen_random_uuid() NOT NULL PRIMARY KEY,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL
);

CREATE TABLE public.item_status_events (
    id uuid DEFAULT public.gen_random_uuid() NOT NULL PRIMARY KEY,
    item_id uuid NOT NULL REFERENCES items,
    created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    old_status int NOT NULL DEFAULT -1,
    new_status int NOT NULL DEFAULT -1
);

INSERT INTO items (id) VALUES ('3e741808-1a69-4ed4-83ca-3cf9832bd080');
INSERT INTO item_status_events (item_id) VALUES ('3e741808-1a69-4ed4-83ca-3cf9832bd080');

Test code:
import { knex } from "knex";
import { logger } from "./logger";

type ItemStatusEvent = {
  item_id: string;
  old_status: number;
  new_status: number;
  created_at: Date;
};

const db = knex({
  client: "postgresql",
  connection: "connection",
  pool: {
    min: 2,
    max: 10,
  },
});

const itemId = "3e741808-1a69-4ed4-83ca-3cf9832bd080";

function insert(iteration: number) {
  db.transaction(async (tx) => {
    logger.debug(`STARTING CONNECTION ${iteration}`);

    await tx("items").forUpdate().whereIn("id", [itemId]);

    const latest_event = await tx<ItemStatusEvent>("item_status_events")
      .where({ item_id: itemId })
      .orderBy("created_at", "desc")
      .first();

    logger.debug(`LATEST UPDATE ${JSON.stringify(latest_event)}`);

    await tx<ItemStatusEvent>("item_status_events").insert({
      item_id: itemId,
      old_status: latest_event?.new_status,
      new_status: iteration,
    });

    logger.debug(`Finished insertion for iteration=${iteration}`);
  });
}

for (let i = 0; i < 10; i++) {
  insert(i);
}

0.20.10
0.20.11+

@maximelkin so as you can see above iteration 7 of the issue which starts after 9 was able to read the value of 9 and update to its value of 7 but then was rearranged to being lower than iteration 9

But why
for (let i = 0; i < 10; i++) {
  insert(i);
}

and not
(async () => {
for (let i = 0; i < 10; i++) {
  await insert(i);
}
})()

Not sure its good idea to be dependent on order of their execution in first case. (This is start of 10 independent tasks, ordered only by start, they could go in other order from any difference in execution time i.e. BEGIN query execution time)
Sorry, probably I'm trying to solve wrong problem, because I can't understand, why this should be explicitly in that way.

@maximelkin in our production system we have separate services issuing requests. each does call await but since they are separate systems in this example its misleading to do it here

@maximelkin for our use case we should be able to get by with switching to clock_timestamp but that indicates that the first log message announcing the start of the transaction is actually later than it "really" started if the timestamps it generates occur earlier. would that maybe have to do with the db.transaction statement issuing begin before it has a pool connection or some other processing that delays reaching the first log statement?

I can't really get which conditions should order your parallel transactions in correct way. Maybe you should change
    const latest_event = await tx<ItemStatusEvent>("item_status_events")
      .where({ item_id: itemId })
      .orderBy("created_at", "desc")
      .first();

to also require strictly previous step? (i.e. add filter & check after if any rows selected)

I probably get it, going to recheck why this would happen

So basically, start of transaction A on postgres server happens before start of transaction B, but on applications side transaction A start observed after start of transaction B.

I don't see any problem in the original post.... If you launch 10 queries / transactions in parallel, nothing guarantees their execution order.

Closing since this doesn't look like a bug, but expected behavior.


docs: Create Codeowners

This adds renovate-config to the open-source group purview so that we can assist with issues and maintenance. Before merging, @SpotOnInc/open-source will need to be added to the repo with write permissions.

https://docs.renovatebot.com/key-concepts/automerge/#codeowners

I plan to automatically merge almost all updates in this repo

https://github.com/SpotOnInc/renovate-config/blob/main/.github/renovate.json5

Test results: CODEOWNERS without branch protection dint stop auto-merge.


Ionic 2 - ion-select support modal interface as well

Ionic version:  (check one with "x")
[ ] 1.x
[ x] 2.x
I'm submitting a ...  (check one with "x")
[ ] bug report
[x ] feature request
[ ] support request => Please do not submit support requests here, use one of these channels: https://forum.ionicframework.com/ or http://ionicworldwide.herokuapp.com/
Current behavior:
ionic 2 select only supports alert and action sheet interfaces .
Expected behavior:
ionic 2 select should also support modal interface as well.
Other information:
For now any workarounds to have ionic 2 open a modal window and options are displayed in a list item with a search bar on top of the list.

You can do this by making the button open a modal, and when the modal closes, send data back and use the onClose() method (or something like that).

In the past i did something like that..but the requirement needs to have a look and feel of a select element (like the ionic-select).. so kind of stuck there..

Hello everyone! Thanks for the feature request. I'm going to move this issue over to our internal list of feature requests for evaluation. We are continually prioritizing all requests that we receive with outstanding issues. We are extremely grateful for your feedback, but it may not always be our next priority. I'll copy the issue back to this repository when we have begun implementation. Thanks!

This issue was moved to driftyco/ionic-feature-requests#91


Supporting arbitrary user defined virtual services

Problem: How to support arbitrary VSes (e.g., with timeout retry values / match clauses / ...) in iter8's CRD
Proposal: Consider the following virtual service.
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: test
  namespace: demo
spec:
  hosts:
  - test1
  gateways:
  - test-gateway
  http:
    - match:
        - headers:
            apikey:
              exact: 111
        - headers:
            apikey:
              exact: 222
        - uri:
            prefix: /path1/
        - uri:
            prefix: /path2/
      rewrite:
        uri: /newpath/v1/
        authority: test2
      route:
        - destination:
            host: test2
    - match:
        - headers:
            apikey:
              exact: 333
      route:
        - destination:
            host: test2
            subset: v1
          headers:
            response:
              remove:
              - foo
    - fault:
        abort:
          httpStatus: 444
          percent: 100
      route:
      - destination:
          host: test3

When creating an iter8 experiment spec, we can require the user to provide a reference to this virtual service, along with the appropriate route index. For e.g., the index in this case could be 1 which indicates that iter8 will leave the rest of the VS alone and will only manipulate the route where apikey == 333. Further, for subset v1, it will leave the header manipulation logic untouched, and only play with the weights. After an iteration in iter8, the same VS above could like the following.
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: test
  namespace: demo
spec:
  hosts:
  - test1
  gateways:
  - test-gateway
  http:
    - match:
        - headers:
            apikey:
              exact: 111
        - headers:
            apikey:
              exact: 222
        - uri:
            prefix: /path1/
        - uri:
            prefix: /path2/
      rewrite:
        uri: /newpath/v1/
        authority: test2
      route:
        - destination:
            host: test2
    - match:
        - headers:
            apikey:
              exact: 333
      route:
        - destination:
            host: test2
            subset: v1
            weight: 25
          headers:
            response:
              remove:
              - foo
        - destination:
            host: test2
            subset: v2
            weight: 75
    - fault:
        abort:
          httpStatus: 444
          percent: 100
      route:
      - destination:
          host: test3

@kimikowang @kalantar Doesn't this approach work with user supplied / pre-existing virtual services (referenced in iter8 experiment spec) -- at least for deployment based experiments (if not service based experiments)? My understanding is that it will also work for both edge services and services not exposed to the external world. Isn't this so?

@fabolive @sushmarchandran  Is this approach worth exploring in iter8-KUI? Specifically, letting the user provide a VS along with a route index, where weights are surgically patched, and everything else is left along as they already are in the VS.

Thanks @kimikowang for clarifying many related questions on slack. Closing.


Update Multiselect.d.ts

Added missing slots to the type definition.
Solves https://github.com/vueform/multiselect/issues/276

Thank you!


[deactivate] - Ensure form has at least a single owner

It's currently possible to remove all form owners from a form.
We need to update to ensure at least a single user is assigned to a form.

We should update at the UI and API level

Work completed here: https://github.com/cds-snc/platform-forms-client/pull/2365


Revisit kube-reserved calculation for containerd

Background
kube-reserved is meant to capture resource reservation for kubernetes system daemons (not including pods). For the amazon EKS ami it's mainly just the kubelet and container-runtime today. kube-reserved is typically a function of pod density on the nodes.
The current kube-reserved calculation is 2-3 years old (last updated as part of this experiment we did) when docker (+ shim) was the only container runtime option in the AMI. However, Amazon EKS ended support for Docker starting with the Kubernetes version 1.24 launch. Containerd is the only supported runtime now.
Here's the kube-reserved logic we have in our AMIs today:
https://github.com/awslabs/amazon-eks-ami/blob/6b1df1107d6e7ec2f46612ebb509c16101ded22d/files/bootstrap.sh#L214
https://github.com/awslabs/amazon-eks-ami/blob/6b1df1107d6e7ec2f46612ebb509c16101ded22d/files/bootstrap.sh#L221-L225
Problem
Per the k8s containerd GA release blog the containerd integration consumes less CPU/memory in comparison with the docker integration (~10-12% - see below). We'll need to repeat the experiment given containerd versions being used in our AMIs are newer (1.5+). But overall we should expect notable savings.
At the steady state, with 105 pods, the containerd 1.1 integration consumes less CPU and memory overall compared to
Docker 18.03 CE integration with dockershim. The results vary with the number of pods running on the node, 105 is
chosen because it is the current default for the maximum number of user pods per node.

As shown in the figures below, compared to Docker 18.03 CE integration with dockershim, the containerd 1.1
integration has 30.89% lower kubelet cpu usage, 68.13% lower container runtime cpu usage, 11.30% lower kubelet
resident set size (RSS) memory usage, 12.78% lower container runtime RSS memory usage.

Additional Notes

With the recent launch of the Prefix Delegation (PD) feature in our AMIs, the supported pod densities have gone up for various instance types. The new logic sets max pod density as 110 for <= 30 vCPU instance-types and 250 for > 30 vCPU instance-types (xref). Discussed more in this issue. While PD should also be taken into account for kube-reserved calculation, that can happen independent from this change IMO since docker -> containerd switch is a common denominator. The drop in baseline usage will help customers reap incremental benefits, even if it means bumping it up later for PD-specific customers
Another issue is that - the bottlerocket AMI seems to have copied the same kube-reserved calculation as the EKS AMI (xrefs - cpu, mem) despite using containerd. Once we fix the calculation here, we should go have them update it too

@suket22 @mmerkes @natherz97 @jayanthvn @akestner - You've all been close to the ground here. Please add any thoughts you may have.

Related to https://github.com/awslabs/amazon-eks-ami/issues/1145

I've just roughly re-run the tests on an AL2 EKS v1.29 node and have the following results.

Kubelet + containerd use about 65Mb with no pods running
Each pod with a single container adds around 6Mb to the runtime usage
110 pods with 1 container uses about 680MB for the runtime
110 pods with 5 containers uses about 1200MB for the runtime


Master

I added a bootstrap functionally to phinx. We are migrating away from mybatis migrations to phinx. But mybatis bootstrap  is a functional part of our provisioning and development process.

Thank you for contributing! The branch you made this PR against is no longer accepting patches. This probably happened because we didn't merge your changes fast enough. :sob:
Please create a new PR against the 0.5.x-dev branch if you want to see these changes merged.
Please also squash your commits into a single commit. This makes it easier to identify your changes in the future.


[QUESTION]: Mounting is failing with 32 error

How can the Team help you today?
Details: ?
Warning  FailedMount  2m55s  kubelet            MountVolume.SetUp failed for volume "pmax-fe9c72ad63" : rpc error: code = Internal desc = error performing private mount: mount failed: exit status 32
mounting arguments: -t xfs -o nouuid,defaults /dev/disk/by-id/dm-uuid-mpath-360000970000497600159533030334430 /var/lib/kubelet/plugins/powermax.emc.dell.com/disks/csi-QA-pmax-fe9c72ad63-event-mesh-dev-000497600159-003D0
output: mount: /var/lib/kubelet/plugins/powermax.emc.dell.com/disks/csi-QA-pmax-fe9c72ad63-event-mesh-dev-000497600159-003D0: mount(2) system call failed: Structure needs cleaning.

we are using dell csi drive 2.3

2023-07-13T16:45:52.490023958+10:00 {"args":"-t xfs -o nouuid,defaults /dev/disk/by-id/dm-uuid-mpath-360000970000497600159533030334430 /var/lib/kubelet/plugins/powermax.emc.dell.com/disks/csi-QA-pmax-fe9c72ad63-event-mesh-dev-000497600159-003D0","cmd":"mount","error":"exit status 32","level":"error","msg":"mount Failed","output":"mount: /var/lib/kubelet/plugins/powermax.emc.dell.com/disks/csi-QA-pmax-fe9c72ad63-event-mesh-dev-000497600159-003D0: mount(2) system call failed: Structure needs cleaning.\n","time":"2023-07-13T06:45:52.489913168Z"}
2023-07-13T16:45:52.490078645+10:00 {"CSIRequestID":"48","level":"info","msg":"Cleaning up private target","privTgt":"/var/lib/kubelet/plugins/powermax.emc.dell.com/disks/csi-QA-pmax-fe9c72ad63-event-mesh-dev-000497600159-003D0","time":"2023-07-13T06:45:52.490009688Z"}
2023-07-13T16:45:52.490078645+10:00 {"cmd":"umount","level":"info","msg":"unmount command","path":"/var/lib/kubelet/plugins/powermax.emc.dell.com/disks/csi-QA-pmax-fe9c72ad63-event-mesh-dev-000497600159-003D0","time":"2023-07-13T06:45:52.490028206Z"}
2023-07-13T16:45:52.500907680+10:00 {"cmd":"umount","error":"exit status 32","level":"error","msg":"unmount failed","output":"umount: /var/lib/kubelet/plugins/powermax.emc.dell.com/disks/csi-QA-pmax-fe9c72ad63-event-mesh-dev-000497600159-003D0: not mounted.\n","path":"/var/lib/kubelet/plugins/powermax.emc.dell.com/disks/csi-QA-pmax-fe9c72ad63-event-mesh-dev-000497600159-003D0","time":"2023-07-13T06:45:52.500829762Z"}
2023-07-13T16:45:52.500907680+10:00 {"CSIRequestID":"48","level":"info","msg":"Error unmounting privTgt /var/lib/kubelet/plugins/powermax.emc.dell.com/disks/csi-QA-pmax-fe9c72ad63-event-mesh-dev-000497600159-003D0: unmount failed: exit status 32\nunmounting arguments: /var/lib/kubelet/plugins/powermax.emc.dell.com/disks/csi-QA-pmax-fe9c72ad63-event-mesh-dev-000497600159-003D0\nOutput: umount: /var/lib/kubelet/plugins/powermax.emc.dell.com/disks/csi-QA-pmax-fe9c72ad63-event-mesh-dev-000497600159-003D0: not mounted.\n","time":"2023-07-13T06:45:52.500896753Z"}
2023-07-13T16:45:52.501030530+10:00 {"level":"info","msg":"/csi.v1.Node/NodePublishVolume: REP 0048: rpc error: code = Internal desc = error performing private mount: mount failed: exit status 32","time":"2023-07-13T06:45:52.501017253Z"}
2023-07-13T16:45:52.501035719+10:00 {"level":"info","msg":"mounting arguments: -t xfs -o nouuid,defaults /dev/disk/by-id/dm-uuid-mpath-360000970000497600159533030334430 /var/lib/kubelet/plugins/powermax.emc.dell.com/disks/csi-QA-pmax-fe9c72ad63-event-mesh-dev-000497600159-003D0","time":"2023-07-13T06:45:52.501027293Z"}

hi @soudamsugit  , could you provide the environment details and steps you are following during this error ,

Hello @boyamurthy ,
its on openshift 4.10 and Dell Operator 1.10 with CSI Driver 2.3

logs from the powermax daemonset:
START: multipath.DelPath
{"CSIRequestID":"21132","DeviceID":"003D0","DeviceName":"dm-2","DevicePath":"/dev/dm-2","Retry":0,"SymmetrixID":"000497600159","WWN":"60000970000497600159533030334430","level":"info","msg":"multipath - del path: /dev/sdh","time":"2023-07-13T07:18:25.077734366Z"}
{"CSIRequestID":"21132","DeviceID":"003D0","DeviceName":"dm-2","DevicePath":"/dev/dm-2","Retry":0,"SymmetrixID":"000497600159","WWN":"60000970000497600159533030334430","level":"info","msg":"multipath command: chroot args: /noderoot multipathd del path /dev/sdh","time":"2023-07-13T07:18:25.077786813Z"}
{"CSIRequestID":"21132","DeviceID":"003D0","DeviceName":"dm-2","DevicePath":"/dev/dm-2","Retry":0,"SymmetrixID":"000497600159","WWN":"60000970000497600159533030334430","level":"debug","msg":"multipath command output: ok\n","time":"2023-07-13T07:18:25.102463896Z"}
END: multipath.DelPath
START: scsi.DeleteSCSIDeviceByName
START: scsi.DeleteSCSIDeviceByPath
{"CSIRequestID":"21132","DeviceID":"003D0","DeviceName":"dm-2","DevicePath":"/dev/dm-2","Retry":0,"SymmetrixID":"000497600159","WWN":"60000970000497600159533030334430","level":"info","msg":"device state is: running","time":"2023-07-13T07:18:25.102621442Z"}
{"CSIRequestID":"21132","DeviceID":"003D0","DeviceName":"dm-2","DevicePath":"/dev/dm-2","Retry":0,"SymmetrixID":"000497600159","WWN":"60000970000497600159533030334430","level":"info","msg":"writing '1' to /sys/class/block/sdj/device/delete","time":"2023-07-13T07:18:25.102667742Z"}
END: scsi.DeleteSCSIDeviceByPath
END: scsi.DeleteSCSIDeviceByName
START: multipath.DelPath
{"CSIRequestID":"21132","DeviceID":"003D0","DeviceName":"dm-2","DevicePath":"/dev/dm-2","Retry":0,"SymmetrixID":"000497600159","WWN":"60000970000497600159533030334430","level":"info","msg":"multipath - del path: /dev/sdj","time":"2023-07-13T07:18:25.156766662Z"}
{"CSIRequestID":"21132","DeviceID":"003D0","DeviceName":"dm-2","DevicePath":"/dev/dm-2","Retry":0,"SymmetrixID":"000497600159","WWN":"60000970000497600159533030334430","level":"info","msg":"multipath command: chroot args: /noderoot multipathd del path /dev/sdj","time":"2023-07-13T07:18:25.156815435Z"}
{"CSIRequestID":"21132","DeviceID":"003D0","DeviceName":"dm-2","DevicePath":"/dev/dm-2","Retry":0,"SymmetrixID":"000497600159","WWN":"60000970000497600159533030334430","level":"debug","msg":"multipath command output: ok\n","time":"2023-07-13T07:18:25.16242243Z"}
END: multipath.DelPath
END: baseConnector.cleanDevices
END: baseConnector.disconnectDevicesByDeviceName
END: FCConnector.DisconnectVolumeByDeviceName
{"level":"info","msg":"Check for disk path /dev/disk/by-id/wwn-0x60000970000497600159533030334430 not found","time":"2023-07-13T07:18:26.163599214Z"}
{"level":"info","msg":"/csi.v1.Node/NodeUnstageVolume: REP 21132: XXX_NoUnkeyedLiteral={}, XXX_sizecache=0","time":"2023-07-13T07:18:26.163821526Z"}


FR: Prevent something like "SQL Injection" out-of-the-box

Operating System version: Cloud Functions environment
Firebase SDK version: 5.13.0
Firebase Product: Firestore

Something similar to a SQL injection, would possible with the Firebase Admin SDK in a code like this:
app.post("/getDocument", async (req, res) => {
    const ref = firestore.collection("users").doc(userId);
    const snap = await ref.get();
    const doc = snap.data();
    res.status(200).send(JSON.stringify(doc));
});

A user could hack into the system by sending not only the sending the userId but also some additional path to a subdocument, like this: [[userId]]/secrectCollection/[[id]].
The code above would return this, even if the user isn't expected to be allowed to retrieve this document. I know I should have checked the Bearer and so on, but let's assume that I've done this, but including a middleware and so on.
There may be some cases where a developer won't expect to that there may be a path to a document and rather only would like to allow an id.
My suggestion would be to allow a path to a document or a collection only in the .collection() and.doc() functions of the interface FirebaseFirestore.Firestore and not on FirebaseFirestore.DocumentReference and FirebaseFirestore.CollectionReference
So this would be allowed:
VERSION 1:
admin.firestore().doc(`users/${userId}/secrectCollection/${someId}`)

And this will cause an error:
VERSION 2:
admin.firestore().collection("users").doc(`${userId}/secrectCollection/${someId}`)

I personally don't see any drawback on this, besides backwards compatility, as you could always use VERSION 1, which could be more complicated, but I think would make the Firestore in the Admin SDK more secure to prevent accidentially unexpected/unhandled paths.
What do you think?

In general, we'd recommend just connecting to the database directly if you're just reading a document. I'm sure this example is simplified/contrived, but Security Rules exist to definitively manage exactly this kind of issue.
Your proposal is an interesting one, but I think it ultimately creates a confusing API. The same method having different rules depending on when you call it is something that's likely to surprise developers.
Ultimately if you're using user-supplied data to call the Admin SDK, you should always sanitize and carefully validate the data*. This would be true even with your proposed change.
Thanks for the suggestion, though!

Yeah, this example is massively simplified, so this is not a simple use-case like this.
Ahh and to the point of confusing API. Currently, there are different functions available depending on what type of object you are working on.
E.g.
Firestore: Both .collection() and .doc()
DocumentReference: Only .collection()
CollectionReference: Only .doc()

I probably thought because of this decision to only allow the opposite that you can ONLY get a direct child of the reference. I thought several times why isn't there a .doc() function on a DocumentReference since I discovered that I can also add a path here.

I think there would be a way to add this feature in a non-confusing way :D
Just add two new functions: .childDoc() and .childCollection() or something with a similar name.

So with the 1) and 2) the API could look like this:
Firestore has all of these .collection(), .doc(), .childCollection(), .childDoc()
DocumentReference has .collection(), .doc(), .childCollection()
CollectionReference has .collection(), .doc(), .childDoc()
And to sanitization YES, we ARE doing this for everything, this is just another addition to the Firestore API as a second chance to prevent errors like this.
In SQL would never put in user-supplied data directly in a query you would always use parameterized queries.

With any kind of API, we would still ask you to sanitize your input. When you are using the Server SDKs, you have full admin access to Firestore, and hence any write that is based on user data needs to be guarded against any type of injection attack.
I will push a PR to disallow slashes in DocumentReference.doc() and CollectionReference.collection(), as this is already the case in the Firestore Mobile SDKs. As with these SDKS, the main accessors (Firestore.collection(), Firestore.doc()) will remain unchanged. This ensures parity across the SDK surfaces and addresses part of your concern.
We have explicitly decided to support slashes in Firestore.collection() and Firestore.doc() to allow for easy access to nested documents and subcollections. You should never pass unsanitized user input to these helpers.


feat(app): add NetworkSettings to RobotSettings Dashboard

Overview
This will add NetworkSettings screen to RobotSettings Dashboard.
Calling network setup function will be added in a following PR.

Test Plan
Requirements

connected status and ssid name for WiFi
connect a dev kit to a wifi network and Robot Dashboard -> Settings(Navigation) -> Network Settings

connected status for Ethernet
plug an ethernet cable into a dev kit and Robot Dashboard -> Settings(Navigation) -> Network Settings

For this PR USB is descoped since not implemented the detect function right now.

Changelog

Add NetworkSettings component

Review requests

Risk assessment
low

[ ] export Chip as a component

[ ] merge edge


Feat: Add a prompt template parameter to qa with structure chains

Description of Changes
This pull request introduces a new feature to the LangChain QA Retrieval Chains with Structures. The change involves adding a prompt template as an optional parameter for the RetrievalQA chains that utilize the recently implemented OpenAI Functions.
The main purpose of this enhancement is to provide users with the ability to input a more customizable prompt to the chain. By introducing a prompt template as an optional parameter, users can tailor the prompt to their specific needs and context, thereby improving the flexibility and effectiveness of the RetrievalQA chains.
Changes Made

Created a new optional parameter, "prompt", for the RetrievalQA with structure chains.
Added an example to the RetrievalQA with sources notebook.

My twitter handle is @El_Rey_Zero

thanks @ElReyZero!


get_as_text() works fine in editor but fails when exporting game

On Windows 10, Godot 2.1 beta:
Somewhere in my game code I have this line:
my_game_settings.parse_json(file.get_as_text())

where the file has the path 'res://settings.cfg'. I am choosing not to save to user:// since this isn't a game save but something only internal.
In the editor when playing the scene, it works just fine & loads the file with no errors.
However, when I build an .exe I get the error:
ERROR: _File::get_as_text: Condition ' !f ' is true. returned: String()
At: core\bind\core_bind.cpp:1582

I superstitiously tried changing everything! It won't budge! Same error & I don't understand C++ to know why.

When you export, res:// is now inside the .exe (or .pck if exported as such). Thus you can't write there. I'm talking this because you said "save".
But since you're trying to read, it should be available if you exported the file. The engine by default only exports used resources, and since settings.cfg is not a resource name, it's ignored. So you need to explicitly add that file/extension in the export settings.

settings.cfg is exported as settings.cfb which is a binary format.

BTW, you can use Globals.get_property_list(). It mixes the settings with other properties, but if you know what you are looking for, then it's fine.

Yup, I wasn't exporting .cfg files.  Sorry about the ignorance!


Is there a cloudwatch events example.

I see the cloudwatch_events.go file in the repo but there is no example for this. I have tried using the type but the import does not seem to work. My problem seems to be getting the details of the message.
Thanks, I am new to go so it could be my problem, but I think I am using thing correctly.
My use case is I am trying to use a cloudwatch_event to trigger my lambda.

The details are stored in a json.RawMessage type. See https://golang.org/pkg/encoding/json/#RawMessage for more details about that type
From the documentation it looks like json.RawMessage is really just byte[] so you should be able to use it just like:
json.Unmarshal(some_json_raw_message, &some_struct)

Let me know if that helps

I would also like some docs on this. I simply want to export the event as json.

Here's my example decode of the CloudWatch Event
func handler(event events.CloudWatchEvent) (s string, err error){
	some_url := "https://something.com"
	payload := []byte(`{"category": "AWS CloudWatchEvent", "summary": "AWS event parsing in aws* fields" `+
        `, "details": {`+
        `"aws-version":`+ "\""+event.Version+"\""+
        `, "aws-id":`+"\""+event.ID+"\""+
        `, "aws-detail-type":`+"\""+event.DetailType+"\""+
        `, "aws-source":`+"\""+event.Source+"\""+
        `, "aws-account":`+"\""+event.AccountID+"\""+
        `, "aws-time":`+"\""+event.Time.String()+"\""+
        `, "aws-region":`+"\""+event.Region+"\""+
        `, "aws-resources":`+"\""+strings.Join(event.Resources, " ")+"\""+
        `, "aws-message":`+"\""+string(event.Detail)+"\""+
        `}}`)
	req, err := http.Post(some_url, "application/json", bytes.NewBuffer(payload))
	return fmt.Sprintf("%s", req), err
}

Works for getting CloudWatch events out to a generic http endpoint.

Hey guys! I'm in the process of converting my python over to Go and was struggling with this a bit myself :( Considering the CloudWatchEvent.Details field doesn't cover all of the events one could possibly handle/ unmarshall, you may want to consider using a map[string]interface{} to unmarshall the event details. This makes it easy to capture the elements from the resulting map that you may need as a local var.  Here's my example for capturing details for an AWS API Event Via Cloud Trail and displaying them to STDOUT.
P.S @xiy has the best method for unmarshalling structured json, but some of these events are huge and change based on certain parameters, ergo my current usage of type map. Maybe there is a better way?
And I totally agree, having more concrete examples would help the newbies like myself 👍
package main

import (
	"context"
	"encoding/json"
	"fmt"
	"github.com/aws/aws-lambda-go/events"
	"github.com/aws/aws-lambda-go/lambda"
	"log"
)

/*

Sample Event Type we need to unmarshall

type CloudWatchEvent struct {
	Version    string          `json:"version"`
	ID         string          `json:"id"`
	DetailType string          `json:"detail-type"`
	Source     string          `json:"source"`
	AccountID  string          `json:"account"`
	Time       time.Time       `json:"time"`
	Region     string          `json:"region"`
	Resources  []string        `json:"resources"`
	Detail     json.RawMessage `json:"detail"`
}

 */

var eventDetail map[string]interface{}

//HandleRequest is a required function for Lambda and GoLang
func HandleRequest(ctx context.Context, jsonEvent events.CloudWatchEvent ) {

	//Unmarshall the CloudWatchEvent Struct Details
	err := json.Unmarshal(jsonEvent.Detail, &eventDetail)
	if err != nil {
		log.Fatal("Could not unmarshal scheduled event: ", err)
		fmt.Println("Could not unmarshal scheduled event: ", err)
	}
	fmt.Println("This is the event Details: ", string(jsonEvent.Detail))

	outputJSON, err := json.Marshal(eventDetail)
	if err != nil {
		log.Fatal("Could not unmarshal scheduled event: ", err)
		fmt.Println("Could not unmarshal scheduled event: ", err)
	}

	fmt.Println("This is the JSON for event details", string(outputJSON))

	version := jsonEvent.Version
	id := jsonEvent.ID
	detailType := jsonEvent.DetailType
	source := jsonEvent.Source
	accountId := jsonEvent.AccountID
	eventTime := jsonEvent.Time
	region := jsonEvent.Region
	resources := jsonEvent.Resources
	detail := string(outputJSON)

        //convert python to goLang for each field
	//eventname = detail['eventName']
	eventname := eventDetail["eventName"]

	//arn = detail['userIdentity']['arn']
	//principal = detail['userIdentity']['principalId']
	//userType = detail['userIdentity']['type']
	//user = detail['userIdentity']['userName']
	//date = detail['eventTime']
	//items = detail['responseElements']['instancesSet']['items'][0]['instanceId']

	fmt.Println("This is the version: ",version)
	fmt.Println("This is the id: ",id)
	fmt.Println("This is the detailType: ",detailType)
	fmt.Println("This is the Source: ",source)
	fmt.Println("This is the accountId: ",accountId)
	fmt.Println("This is the eventTime: ", eventTime)
	fmt.Println("This is the region: ",region)
	fmt.Println("This is the resource: ",resources)
	fmt.Println("Here is the eventName: ", eventname)
	fmt.Println("Here are the details: ",detail,"\n")
}

func main() {
	lambda.Start(HandleRequest)
}

package CloudTrailApiEvent

import "time"

type AutoGenerated struct {
	EventVersion     string    `json:"eventVersion"`
	EventID          string    `json:"eventID"`
	EventTime        time.Time `json:"eventTime"`
	EventType        string    `json:"eventType"`
	ResponseElements struct {
		OwnerID  string `json:"ownerId"`
		GroupSet struct {
		} `json:"groupSet"`
		ReservationID string `json:"reservationId"`
		RequestID     string `json:"requestId"`
		InstancesSet  struct {
			Items []struct {
				ProductCodes struct {
				} `json:"productCodes"`
				VpcID      string `json:"vpcId"`
				CPUOptions struct {
					ThreadsPerCore int `json:"threadsPerCore"`
					CoreCount      int `json:"coreCount"`
				} `json:"cpuOptions"`
				InstanceID     string `json:"instanceId"`
				ImageID        string `json:"imageId"`
				SubnetID       string `json:"subnetId"`
				AmiLaunchIndex int    `json:"amiLaunchIndex"`
				InstanceType   string `json:"instanceType"`
				GroupSet       struct {
					Items []struct {
						GroupName string `json:"groupName"`
						GroupID   string `json:"groupId"`
					} `json:"items"`
				} `json:"groupSet"`
				Monitoring struct {
					State string `json:"state"`
				} `json:"monitoring"`
				CapacityReservationSpecification struct {
					CapacityReservationPreference string `json:"capacityReservationPreference"`
				} `json:"capacityReservationSpecification"`
				StateReason struct {
					Message string `json:"message"`
					Code    string `json:"code"`
				} `json:"stateReason"`
				PrivateIPAddress   string `json:"privateIpAddress"`
				VirtualizationType string `json:"virtualizationType"`
				PrivateDNSName     string `json:"privateDnsName"`
				SourceDestCheck    bool   `json:"sourceDestCheck"`
				BlockDeviceMapping struct {
				} `json:"blockDeviceMapping"`
				Placement struct {
					Tenancy          string `json:"tenancy"`
					AvailabilityZone string `json:"availabilityZone"`
				} `json:"placement"`
				InstanceState struct {
					Code int    `json:"code"`
					Name string `json:"name"`
				} `json:"instanceState"`
				NetworkInterfaceSet struct {
					Items []struct {
						Status           string `json:"status"`
						MacAddress       string `json:"macAddress"`
						SourceDestCheck  bool   `json:"sourceDestCheck"`
						VpcID            string `json:"vpcId"`
						Description      string `json:"description"`
						Ipv6AddressesSet struct {
						} `json:"ipv6AddressesSet"`
						NetworkInterfaceID string `json:"networkInterfaceId"`
						PrivateDNSName     string `json:"privateDnsName"`
						GroupSet           struct {
							Items []struct {
								GroupName string `json:"groupName"`
								GroupID   string `json:"groupId"`
							} `json:"items"`
						} `json:"groupSet"`
						InterfaceType string `json:"interfaceType"`
						Attachment    struct {
							Status              string `json:"status"`
							DeviceIndex         int    `json:"deviceIndex"`
							DeleteOnTermination bool   `json:"deleteOnTermination"`
							AttachmentID        string `json:"attachmentId"`
							AttachTime          int64  `json:"attachTime"`
						} `json:"attachment"`
						TagSet struct {
						} `json:"tagSet"`
						SubnetID              string `json:"subnetId"`
						OwnerID               string `json:"ownerId"`
						PrivateIPAddressesSet struct {
							Item []struct {
								PrivateDNSName   string `json:"privateDnsName"`
								Primary          bool   `json:"primary"`
								PrivateIPAddress string `json:"privateIpAddress"`
							} `json:"item"`
						} `json:"privateIpAddressesSet"`
						PrivateIPAddress string `json:"privateIpAddress"`
					} `json:"items"`
				} `json:"networkInterfaceSet"`
				EbsOptimized   bool   `json:"ebsOptimized"`
				LaunchTime     int64  `json:"launchTime"`
				Architecture   string `json:"architecture"`
				Hypervisor     string `json:"hypervisor"`
				RootDeviceType string `json:"rootDeviceType"`
				RootDeviceName string `json:"rootDeviceName"`
			} `json:"items"`
		} `json:"instancesSet"`
	} `json:"responseElements"`
	AwsRegion    string `json:"awsRegion"`
	EventName    string `json:"eventName"`
	UserIdentity struct {
		UserName       string `json:"userName"`
		PrincipalID    string `json:"principalId"`
		AccessKeyID    string `json:"accessKeyId"`
		InvokedBy      string `json:"invokedBy"`
		SessionContext struct {
			Attributes struct {
				CreationDate     time.Time `json:"creationDate"`
				MfaAuthenticated string    `json:"mfaAuthenticated"`
			} `json:"attributes"`
		} `json:"sessionContext"`
		Type      string `json:"type"`
		Arn       string `json:"arn"`
		AccountID string `json:"accountId"`
	} `json:"userIdentity"`
	EventSource     string `json:"eventSource"`
	RequestID       string `json:"requestID"`
	UserAgent       string `json:"userAgent"`
	SourceIPAddress string `json:"sourceIPAddress"`
}

Here is an EventsDetails struct I built for monitoring MediaConvert events in CloudWatch. It contains entries for all (most) Status events posted by AWS Elemental Media Convert.
type MediaConvertEventDetail struct { 	Timestamp int 	AccountId string 	Queue string 	JobId string 	Status string 	ErrorCode int 	ErrorMessage string 	FramesDecoded int 	JobProgress struct { 		PhaseProgress struct { 			PROBING struct { 				Status string 				PercentComplete int 			} 			TRANSCODING struct { 				Status string 				PercentComplete int 			} 			UPLOADING struct { 				Status string 				PercentComplete int 			} 		} 		JobPercentComplete int 		CurrentPhase string 		RetryCount int 	} 	OutputGroupDetails []struct { 		OutputDetails []struct { 			OutputFilePaths []string 			DurationInMs    int 			VideoDetails    struct { 				WidthInPx  int 				HeightInPx int 			} 		} 		PlaylistFilePaths []string 		Type              string 	} }

None of the above works for me. I had created a CloudWatch Event Rule. Configure input was Matched event.
Here is the output from CloudWatch Log Group for my Lambda function:
05:09:57
START RequestId: ac7b74f9-9401-4d83-ae13-bd0db9c3cf09 Version: $LATEST

05:09:57
Detail = {}

05:09:57
END RequestId: ac7b74f9-9401-4d83-ae13-bd0db9c3cf09

05:09:57
REPORT RequestId: ac7b74f9-9401-4d83-ae13-bd0db9c3cf09	Duration: 0.49 ms	Billed Duration: 100 ms	Memory Size: 512 MB	Max Memory Used: 25 MB

At a loss since this contradicts the documentation here
Here is my code:
package main

import (
	"context"
	"fmt"

	"github.com/aws/aws-lambda-go/events"
	"github.com/aws/aws-lambda-go/lambda"
)

func main() {
	lambda.Start(handleRequest)
}

func handleRequest(ctx context.Context, event events.CloudWatchEvent) {
	fmt.Printf("Detail = %s\n", event.Detail)
}

@HeathNaylor it looks like you have an empty payload or you aren't deserializing the event which is a byte array. What does the details portion of your event look like? You can grab sample data from CloudTrail API logs OR attempt to find examples online. I would suggest going to look at the event in question in the CloudTrail logs so you have something to test against.
Here's an example of what I mean by needing details:
{
  "version": "0",
  "id": "6a7e8feb-b491-4cf7-a9f1-bf3703467718",
  "detail-type": "EC2 Instance State-change Notification",
  "source": "aws.ec2",
  "account": "111122223333",
  "time": "2017-12-22T18:43:48Z",
  "region": "us-west-1",
  "resources": [
    "arn:aws:ec2:us-west-1:123456789012:instance/ i-1234567890abcdef0"
  ],
  "detail": {
    "instance-id": " i-1234567890abcdef0",
    "state": "terminated"
  }
}

It seems like your event or test payload is using something like this or you simply aren't deserializing the event when you go to handle the request.
{
  "version": "0",
  "id": "6a7e8feb-b491-4cf7-a9f1-bf3703467718",
  "detail-type": "EC2 Instance State-change Notification",
  "source": "aws.ec2",
  "account": "111122223333",
  "time": "2017-12-22T18:43:48Z",
  "region": "us-west-1",
  "resources": [
    "arn:aws:ec2:us-west-1:123456789012:instance/ i-1234567890abcdef0"
  ],
  "detail": {}
}

event.Detail is typically serialized as a byte array; so you'll more than likely need to deserialize the event.Detail using the Json SERDE lib or defaulting to a map[string]interface{}.
I've replicated this on my end with :
Payload with Details: https://play.golang.org/p/Ru-vj1AKx8I
Payload without Details: https://play.golang.org/p/R4VMtU69ZlR

I ran into the same issue as @HeathNaylor
In my case, I wanted CloudWatch Events to pass constant JSON to lambda as input as shown below:

Turns out, when Constant (JSON text) is being used as input, the events.CloudWatchEvent  struct I get in lambda handler is empty. The Detail field of the struct also is empty.
Handling it is simple. Either of these can be used:
type Request {
    CountryISO string `json:"country_iso"`
}

func handleRequest(ctx context.Context, req Request) {
}

or
func handleRequest(ctx context.Context, b json.RawMessage) {
    // json.RawMessage is basically []byte i.e raw json
    // that can be unmarshalled
    // json.RawMessage can be used to check what's being passed
}

If you go to eventbridge schema registry and select schema on the left hand side menu, there is a library of schemas.  You can download code bindings for them (but not in go).  However, if you download the openapi spec there are tools online eg. https://github.com/OpenAPITools/openapi-generator that will generate the structures you require in go.


Add .jshintrc with instruction for linting tools

adding .jshintrc to inform linting tools that we are using ES6 and that our app is a Node.js app - this solves all false-positive issues raised by CodeClimate
fixing one real code issue with incorrect comparison

If you think it's needed, ie. we are using tools that do not recognise .jshintrc but will recognise . eslitnrc, then we can add it as well. Or, in such case I could check if CodeClimate will work with . eslitnrc.

Will merge that now and investigate the .eslintrc later.


feat: use albumentations for resizing

Use albumentations for resizing functions

I noticed my formatter (black) changed a bit the layout.
Let me know what you use and I can change it back.

Fixed a test. When we keep the ratio and resize only if bigger, we need to have only one side smaller than the desired size.
Otherwise an image 100 x 200 would be resized to 150 x 250 (with a desired size of 150).
This is the same logic for center crop.

@rom1504 I can do #27 after you merge this one if you want


Navigation bar not showing

Checklist

[X] I have read the documentation at the Wiki.

Description
Hi, I have been trying out the navigation bar and I've copied and pasted the code from git. I even downloaded the raw file but the nav bar is still not showing.

As you can see here, the background color of the nav bar is shown but not the links.

It looks cause by streamlit 1.39.0
this issue has already reported in #28

Issue still exists with streamlit 1.41.1


Disable ScrollView vertical scroll whilst swipe is happening and vice versa

I am trying to find a way to prevent the ScrollView parent from scrolling when a gesture is being used by Swipeout to swipe. At the moment I can accidentally swipe in both the X & Y directions which makes for a bad user experience.
I tried hooking into the 'scroll' property to enable and disable the ScrollView scrolling depending on whether it gets called with true or false but this doesn't seem to work. Is there an idiomatic way of doing this that I'm missing?

I initially was looking for the same until I realised that the scroll prop could be used for it. This works for me
    constructor(props) {
        super(props)
        this.state = {
            allowVerticalScroll: true
        }
    }

    SwipeScrollEvent(allowParentScroll) {
        if (this.state.allowVerticalScroll != allowParentScroll) {
            this.setState({'allowVerticalScroll': allowParentScroll})
        }
    }

<ScrollView scrollEnabled={this.state.allowVerticalScroll}>
<SomeWrapper scroll={this.SwipeScrollEvent.bind(this)}/>
</ScrollView>

And for the Swipeout in the wrapper class I have
            <Swipeout right={swipeBtns}
                autoClose={true}
                backgroundColor='white'
                scroll={this.props.scroll}
                >

What I get is:

When I swipe over the x-axis the parent ScrollView does not allow Y-axis scrolling, but the Swipeout menu works. This behaviour remains true until I close the swipe menu. After closing the Swipeout menu Y-axis scrolling of the parent ScrollView works again.
When I swipe over the Y-axis of the parent Scrollview I cannot swipe left to open the Swipeout menu.

@ixje That looks pretty similar to what I was trying although I was using a FlatList rather than a ScrollView. FlatList is implemented using ScrollView so I would have thought this would have worked for both. Maybe I was doing something obvious wrong! I've since started using react-native-swipe-list-view in the end because it has this behaviour built in - and a few other built in nice-to-haves. It does however use the old style ListView so I might try this out again at some point.

@richg-rma Makes sense to me what you're saying. Looking at #162 it appears your not alone when it comes to FlatList usage not working as some expect. A recent issue on the react-native repo on this topic might be worth following: https://github.com/facebook/react-native/issues/14240
For what it's worth, I've only tested my solution on ios.

@ixje this is exactly where I got, onPanResponderTerminationRequest: () => false doesn't reject the FlatList gesture for some reason...  https://github.com/dancormier/react-native-swipeout/issues/182

Here the doc about scrollview.

Doesn't yet support other contained responders from blocking this scroll view from becoming the responder.

The same question, how do you solve it？

I ended up using another module which represented a full list in the end called react-native-swipe-list-view

Thank you. I'll take a look

I solved this problem by doing the following:
I've added scroll callback to Swipeout component which first parameter will tell you whether swipeout is being dragged (while dragging swipeout the parameter will be false, and after you finish dragging it will become true). So I figured I could use that to control my FlatList scrolling.
<Swipeout>
	scroll={(scrollEnabled) => { this.setState({ scrollEnabled }); }}
	...
</Swipeout>

And then just added
<FlatList
	scrollEnabled={this.state.scrollEnabled}
	...
</FlatList>

Hope this is what you are looking for!

@lpetkovic thanks for sharing. That seems to work for iOS but not Android for me?


Readability of Entity Retrieval

This issue is directed at calls to Entities, specifically an enemy within a room, but likely exists elsewhere. The current call to retrieve the object is as follows:
level.getRoom(player.getPosY(), player.getPosX()).getEntityFromIndex(i)

Within Utility, parseCommand() passes this as the target parameter to attack():
player.attack(map.getRoom(player.getPosY(),player.getPosX()).getEntityFromIndex(Integer.parseInt(inputSplit[1])));

This is cumbersome, difficult to read, and a pain to fix when syntax errors inevitably crop up. The second call in particular is broken up over multiple lines for the sake of readability. I believe we can begin replacing many of these long calls with variables or objects that update when necessary. Each time the method is invoked we can generate new Entity objects that are simply pointers with shorter names.
I'm sure there are other areas where this can be implemented so feel free to bring them up.

player.getPosY() and player.getPosX() pass their values into new integer variables x and y within run(). The player's current location is also stored in currentRoom, which simply points to level.getRoom(x,y) and is updated when you move.
All methods within run() will be given new parameters to pass these values in. It should clean up the code dramatically.

irrelevant to newer builds


Fix typos

Codecov Report

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

@@            Coverage Diff            @@
##             master     #159   +/-   ##
=========================================
  Coverage     70.47%   70.47%
  Complexity      267      267
=========================================
  Files            67       67
  Lines          1148     1148
  Branches        128      128
=========================================
  Hits            809      809
  Misses          280      280
  Partials         59       59

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 115124b...a96c692. Read the comment docs.

LGTM, but when you commit, you need to add a DCO sign-off. It's pretty annoying because if you get even the slightest thing wrong, the system will reject it. See DCO for more details.

Hey, yeah, will fix
Meanwhile tron has 6000 commits: https://github.com/tronprotocol/java-tron
Started with network requests inside static init {} blocks
I often wonder if all this ceremony just gets in the way :/

@sappenin
I force pushed with an amended -s commit

I force pushed with an amended -s commit
Awesome! Last time I tried that the DCO bot wouldn't turn green, so glad to hear that's working now.


vcpkg_from_github lack of documentation

When attempting to create a package and its portfile, I wanted to use the common function
vcpkg_from_github
The repository I want to pull from does not have reference or tag for stable version, therefore requiring a head build. Using
vcpkg_from_github(
    OUT_SOURCE_PATH SOURCE_PATH
    REPO kmammou/v-hacd
    HEAD_REF master
)

The functions crashes at line 98 of vcpkg_from_github.cmake because the cmake function makes use of the variable VCPKG_USE_HEAD_VERSION not reported in the documentation (and not found with the search box):
https://vcpkg.readthedocs.io/en/latest/maintainers/vcpkg_from_github/
Either it is a problem of documentation and the user must set VCPKG_USE_HEAD_VERSION to true beforehand in the portfile, or the function must be fixed.
EDIT
By chance, my problem is explained in issue #1206 (with unrelated title). From my point of view, the documentation is not sufficient and/or confusing. Personally, on repository where the master is the stable branch without any tag, it would seem natural to use the HEAD by default and fall back to the specified commit if it did not work. Anyway this should be explained in detail in the documentation to avoid any surprise.

See #1382, you can do REF <commit-number> if that repo doesn't have any release.


Remove old benchmarking tools

lwaftr/tests/end-to-end/ folder contains old benchmarking utilities which are no longer used AFAIK:

benchmark-end-to-end.sh: Was a copy-paste of end-to-end.sh tests which run with the apps/lwaftr/benchmark.lua script instead.
benchmark-pcaps.sh: Similar to benchmark-end-to-end.sh but runs in one test case.
benchrun.lua: Runs a command N times and prints out some stats (average, standard deviation, etc).

The apps/lwaftr/benchmark.lua script loops through a given pcap input and pushes packets to its correspondent nic interfaces (inet or b4).
Since we are no longer using these tools and they are not run automatically either, I think they should be removed unless they still can be of some use and we can refactor them and update them to something useful. Thoughts? @kbara @wingo

On Mon 19 Sep 2016 20:00, Diego Pino<EMAIL_ADDRESS>writes:

Since we are no longer using these tools and they are not run
automatically either, I think they should be removed unless they still
can be of some use and we can refactor them and update them to something
useful. Thoughts? @kbara @wingo

SGTM.
Andy

Probably for the best. Is the idea to then have to run the full hydra performance testing suite to get these numbers?

If we want Hydra to run these benchmarks we would need to rework them, because I think at this moment these tests cannot be run (they code is broken).
We only paid attention to these tests while developing the prototype, and actually we shortly stop use them as a means to improve performance, that's when "lwaftr bench" landed. I'm all in for removing these code, specially since we're planning to update lwaftr in upstream soon.