fix(DataStore): Fix race condition in sync mutation to cloud

Issue #, if available: During some investigation into an unrelated issue, I encountered race conditions in the SyncMutationToCloudOperation. My original implementation incorrectly subclassed it as an Operation rather than an AsynchronousOperation, which meant that after I fixed retain cycles in that class, it was being released before completing the callback. Digging into that fix led to another issue where ModelSyncedEmitter wasn't properly invoking the completion callbacks during initial sync when the sync included dropped events.
Description of changes:
Check points:

[X] All unit tests pass
[X] All integration tests pass (Excepting known failures as noted in https://github.com/aws-amplify/amplify-ios/issues/1354)
[X] PR title conforms to conventional commit style

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Codecov Report

Merging #1355 (ec2382b) into main (23eb7bc) will increase coverage by 0.08%.
The diff coverage is 78.65%.

@@            Coverage Diff             @@
##             main    #1355      +/-   ##
==========================================
+ Coverage   61.12%   61.20%   +0.08%
==========================================
  Files         664      665       +1
  Lines       20087    20130      +43
==========================================
+ Hits        12278    12321      +43
  Misses       7809     7809

Flag
Coverage Δ

API_plugin_unit_test
65.74% <ø> (-0.10%)
:arrow_down:

AWSPluginsCore
76.28% <ø> (ø)

Amplify
48.95% <50.00%> (-0.07%)
:arrow_down:

Analytics_plugin_unit_test
73.41% <ø> (ø)

Auth_plugin_unit_test
82.35% <ø> (ø)

DataStore_plugin_unit_test
76.45% <86.95%> (+0.43%)
:arrow_up:

Predictions_plugin_unit_test
33.51% <ø> (ø)

Storage_plugin_unit_test
57.72% <ø> (ø)

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

Impacted Files
Coverage Δ

...fy/Categories/Analytics/Error/AnalyticsError.swift
60.00% <0.00%> (-5.22%)
:arrow_down:

Amplify/Categories/Auth/Error/AuthError.swift
78.57% <0.00%> (-3.93%)
:arrow_down:

Amplify/Categories/DataStore/DataStoreError.swift
58.33% <0.00%> (-1.67%)
:arrow_down:

...ategories/Predictions/Error/PredictionsError.swift
63.82% <0.00%> (-2.84%)
:arrow_down:

...mplify/Categories/Storage/Error/StorageError.swift
61.01% <0.00%> (-2.15%)
:arrow_down:

Amplify/Core/Support/AmplifyOperation.swift
89.36% <ø> (ø)

...gin/Sync/InitialSync/ModelSyncedEventEmitter.swift
95.18% <66.66%> (ø)

...Queue/ProcessMutationErrorFromCloudOperation.swift
72.99% <84.21%> (+2.23%)
:arrow_up:

...ngMutationQueue/SyncMutationToCloudOperation.swift
67.83% <86.84%> (+6.04%)
:arrow_up:

Amplify/Categories/API/Error/APIError.swift
62.90% <100.00%> (-0.44%)
:arrow_down:

... and 11 more

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 23eb7bc...ec2382b. Read the comment docs.


refresh completion when no new items are available

Hello @hrsh7th, This PR indents to refresh current completion even if no new
items are there for source. (i.e., when #source.items == 0)
This may not be the best way to achieve it, but it certainly would improve
behavior.
I would show it in gif.
Before:

After:

If you feel there is a better way to achieve it please tell me, I would change that in PR.:smiley:

It's my bad. LGTM!

It's my bad. LGTM!


SEPG Automated Release - v3.0.0

SEPG Details
Release Build Link: http://sou-jenkins2.swinfra.net:8080/job/Auto-Release/364/
Build Token: github.com/WorkerFramework/worker-framework-testing/main/4be9b374807ab1c9ec8f99eea09f2a563764b7c5
Versioning Behaviour: Roll on to next minor
Artifacts For Release
Maven

com.github.workerframework.testing:workerframework-testing-integration:3.0.0-205(sources.jar,jar.asc,pom.asc,sources.jar.asc,jar,javadoc.jar.asc,pom,javadoc.jar)
com.github.workerframework.testing:workerframework-testing-util:3.0.0-205(sources.jar.asc,javadoc.jar.asc,pom.asc,jar.asc,jar,javadoc.jar,sources.jar,pom)
com.github.workerframework.testing:workerframework-testing:3.0.0-205(pom.asc,pom)

Dependent Downstream Repositories
The following jobs contain have a dependency on the repository being release:

Verity/worker-classification:develop

 Build Stage
Action
Status

Release Checks
completed
:heavy_check_mark:

Gather Release Data

:white_small_square:

QA Documentation Site Deployment

:white_small_square:

QA Deployment Branch Promotion

:white_small_square:

Docker Image Promotion

:white_small_square:

Maven Artifact Promotion (Closed Source)

:white_small_square:

NuGet Artifact Promotion

:white_small_square:

Artifactory Release Artifact Tagging

:white_small_square:

Generic Artifact Promotion

:white_small_square:

Maven Artifact Promotion (Open Source)

:white_small_square:

Maven Staging Repository Removal (Open Source)

:white_small_square:

Git Tagging

:white_small_square:

Git Release

:white_small_square:

Git Release Asset Deployment

:white_small_square:

Pull Request Merge

:white_small_square:

Release Branch Deletion

:white_small_square:

view the build log here


Fix TO Go bad params to return 400 not 5xx

What does this PR do?
Fix TO Go bad params to return 400 not 5xx
Which TC components are affected by this PR?

[ ] Documentation
[ ] Grove
[ ] Traffic Analytics
[ ] Traffic Monitor
[x] Traffic Ops
[ ] Traffic Ops ORT
[ ] Traffic Portal
[ ] Traffic Router
[ ] Traffic Stats
[ ] Traffic Vault
[ ] Other _________

What is the best way to verify this PR?
Make a request to any API endpoint which takes an ID, and pass a string. Should get a 4xx with a message, not a 5xx.
Check all that apply

[ ] This PR includes tests
[ ] This PR includes documentation updates
[ ] This PR includes an update to CHANGELOG.md
[ ] This PR includes all required license headers
[ ] This PR includes a database migration (ensure that migration sequence is correct)
[ ] This PR fixes a serious security flaw. Read more: www.apache.org/security

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/trafficcontrol-PR/2723/
Test PASSed.

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/trafficcontrol-PR/2725/
Test PASSed.


python310Packages.weconnect: 0.52.0 -> 0.54.0, python310Packages.weconnect-mqtt: 0.42.0 -> 0.42.1

Description of changes

Things done

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
23.05 Release Notes (or backporting 22.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 217463 run on x86_64-linux 1

6 packages built:

python310Packages.ascii-magic
python310Packages.weconnect
python310Packages.weconnect-mqtt
python311Packages.ascii-magic
python311Packages.weconnect
python311Packages.weconnect-mqtt


Status history plugin didn't show the history after deployment

Dear all,
Recently, I've tried to deploy the ststua history plugin into our formal RTC template in ALM. But after following your guide, we didn't see the history in the tab, shown as below:

It is blank after we change several times for the 'task' status, could you give us some suggestion on this issue? Thank you so much!

Hi @saina110
Thank you very much for reporting this to me. I've stumbled across an issue just now using the latest 2.2.0 release. It has the same consequences on my side so I assume it is the same issue. I'm currently testing the bug fix for this issue...

@saina110  have a look at Release 2.2.1 and please let me know whether this fixes your issue or not

Closing this issue as I assume the latest release has fixed it. If not, please let me know.

Hello Innerjoin,
Thank you for your fixing. Now the 2.2.1 version is working for our ALM, shown as below:

Thank you:)


Update metrics for recent libolm CVEs

🗣 Description

This PR fixes CVSS scoring for CVE-2024-45191, CVE-2024-45192 and CVE-2024-45193 which did not reflect the vulnerabilities. It also updates the SSVC section.
The changes consider libolm itself as a generic double-ratchet library, not just in the context of its use in the Matrix protocol. That would otherwise further reduce the severity.
🧪 Testing
I checked that the format is correct by running:
cat 2024/45xxx/CVE-2024-45191.json 2024/45xxx/CVE-2024-45192.json 2024/45xxx/CVE-2024-45193.json | jq

✅ Pre-approval checklist

[x] This PR has an informative and human-readable title.
[x] Changes are limited to a single goal - eschew scope creep!
[ ] All future TODOs are captured in issues, which are referenced
in code comments.
[ ] All relevant type-of-change labels have been added.
[x] I have read the CONTRIBUTING document.
[ ] These code changes follow cisagov code standards.
[ ] All relevant repo and/or project documentation has been updated
to reflect the changes in this PR.
[ ] Tests have been added and/or modified to cover the changes in this PR.
[ ] All new and existing tests pass.

✅ Pre-merge checklist

[ ] Revert dependencies to default branches.
[ ] Finalize version.

✅ Post-merge checklist

[ ] Create a release.

These CVSS changes look okay to me, except Privileges Required should remain None. (i.e., joining a public channel to attempt these attacks means that the privilege is None, not Low.)

I had this very discussion with a colleague while preparing the PR. My argument is that you, as the attacker, need some kind of relationship with the victim implementation to make it encrypt content you choose at will.
In the context of Matrix, public rooms are not encrypted so creating that relation would require to start a 1:1 message or join a shared private room.
That's why I think Privileges Requires is Low.

Hi, thanks for the improvements, we'll review and make any changes upstream in the vulnrichment workflow.

@davidegirardi these entries were reevaluated and scores updated. The data was modified upstream, making it impractical to merge this PR. Thank you for the report!


Create mark.html

i am participating in hacktoberfest merge this as my contribution with hacktoberfest tag

Hey there have merged the code would be great if you could star the repo so that it may help other contributors also. Thanks!

"Thanks for merging, and I'll star this repo."


[IDC] - MPR Crosshairs should rotate around the center of the crosshairs.

Currently the crosshairs rotate around the center of the image, so the focal points of the crosshairs move about the viewport in the linked views.
It would make more sense if the crosshairs rotated the volumes around the focal point, even if its been moved.

Done in https://github.com/OHIF/react-vtkjs-viewport/pull/123, waiting for review.
Before rotation:

After rotation:

Merging https://github.com/OHIF/Viewers/pull/2177


Compliments dont show based on current data from weather module

The compliments  modulerelies on the CURRENTWEATHER_DATA notification to display the compliments for a specific weather.
Only the currentweather module is sending it, not the new one (simply called weather).

Merged.

Merged.


[material-ui][AccordionSummary] Fix applying styles from theme

According to the code below, styles applied to gutters and contentGutters should be applied to the root and content slots respectively when disabledGutters is false.  Previously, the styles weren't applied correctly, when styles are passed through theme. This PR fixes that issue.
https://github.com/mui/material-ui/blob/64a093af2d76ae0bde17443fb2eb4488392bdaa3/packages/mui-material/src/AccordionSummary/AccordionSummary.js#L18-L20
before: https://codesandbox.io/s/festive-pond-8qwpsl
after: https://codesandbox.io/s/inspiring-glitter-xyxrlc?file=/src/Demo.tsx
Not sure about argos issue, don't think it's related to this PR

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

ping @DiegoAndai

@sai6855 I can't see the CodeSandbox playgrounds you linked.

@aarongarciah i've made to public, can you try now

I'm ok with not introducing the deprecated contentGutters; we should update the docs accordingly.
Re gutters, same, we should remove it from the docs.

I'll put this one on hold @sai6855 as per https://github.com/mui/material-ui/pull/43038#issuecomment-2303078188.
I also added it to the v7 milestone so we can review it once the v7 product and design decisions are finalized.


[BUGFIX] Fixes empty client on postgresql plugin

@askmike probably will need some more attention, because I am not able to find out why the client is empty?
https://github.com/askmike/gekko/issues/2503

What kind of change does this PR introduce? (Bug fix, feature, docs update, ...)

What is the current behavior? (You can also link to an open issue here)

What is the new behavior (if this is a feature change)?

Other information:

Yea this is not ideal: if client is undefined Gekko won't run the query and never run the next callback (basically freeze).
Instead of doing this, we should probably check the first err parameter (right now it seems ignored). Would you mind doing that instead? You can use util.die (import util first) to crash Gekko with the error. I guess it would be cleaner to actually wrap the pool exposed by handle.js in a function that checks the error and passes only proper connections on, but you can do either.

Hi @askmike my node knowledge is basic. I am still learning, i will see what i can do.

@alexvandervegt no problem! If the client is not defined it means that postgresql encountered an error. Gekko should check that like so:
https://github.com/askmike/gekko/blob/daa4eb6dacb64b3d9571c4dff04e9af07606bcc1/plugins/postgresql/handle.js#L54-L56
(if there is a DB error Gekko can crash, since there isn't much Gekko can do if the DB is down).

Let me know if you rather have me fix it, but I'll keep this open so you can finish up the PR :)

@askmike I think best would be if you fix this one. I have looked over and over but I am not able to see it yet :)

fixed here: fe8dbcd

If you run it again now Gekko will spit out why client is undefined (there was a postgres error along the way).

@alexvandervegt how did you change the database from sqlite to postgresql


Update A2

[x] Updated model with new UDS4 variables and descriptions
[x] Updated DTO and mapping
[ ] Updated form layout to match UDS4
[ ] Updated UI on page to enhance user experience
[ ] Updated validation logic

@ashleybot this is ready for another pass.


Fixing required KambojaOtion default values

Coverage remained the same at 100.0% when pulling 92423d43ddd1d7446e8a390fea26998cbfefe478 on ktutnik:master into a683acd150e8a79d6ee14b7eb1826a9e6e18d563 on kambojajs:master.


Add update and delete functionality to Shipment Tags

This branch adds the update and delete functionality to shipment tags.
It also refactors how the openapi is factored so that it now uses x-tags to allow for cleaner display of shipment functions.

the reason the additional shipment details was moved to the forefront was because of speccy rules. I can disable the rule and move it back down. And the reason for those specific functions being grouped together was because they all provided additional data regarding the shipment but were not following the normal shipment model.


Using Textmate rules for highlighting Rascal code in Asciiidoctor-based documentation?

This is a question rather than an issue.
At the moment we are working on new infrastructure for our Rascal documentation that is based on Asciidoctor (see http://asciidoctor.org). Asciidoctor supports highlighting in various ways (see http://asciidoctor.org/docs/user-manual/#source-code-blocks). Now the question is: can we convert the nice Textmate rules under development by @ahmadsalim to input for any of the supported systems by Asciidoctor:

http://coderay.rubychan.de
https://highlightjs.org
https://github.com/google/code-prettify
http://pygments.org

I would prefer to have less Ruby/Python and more Javascript in the solution we will adopt.
Any thoughts?

Maybe https://github.com/gjtorikian/pointillist could be useful?
I have not heavily investigated it yet, but it may do what is needed.

I have tried searching around for more, and unfortunately I could not find anything more directly useful.
Interestingly, it seems that AsciiDoctor itself is written in Ruby and translated to JavaScript via Opal (http://opalrb.org/), so maybe that is an alternate solution, but I am unsure how well it would work.

You are completely right about the implementation of AsciiDoctor. At the moment we are using (only at build time to avoid shipping JRuby in the Rascal jar) AsciiDoctorJ which is a Java wrapper that uses Ruby inside (via Opal as you mentioned), see https://github.com/asciidoctor/asciidoctorj.
In the future we may also want to provide documentation generation facilities at runtime and that would change the above situation.
I am currently focussing on the compiled Rascal REPL, but will come back to this issue asap.

I might have found another more palatable alternative.
One could try translating the TextMate grammar to an Atom one, and then use the Atom javascript based Highlights solution.
However, the latter seems to rely on NodeJS, so I am unsure how one could incorporate it inside the browser.

So I have made a new PR #13 which converts the grammar to an Atom compatible one using the proposed link, so that would at least solve one part of the issue I hope.


DevOps practice

https://github.com/SciFin-Team/SciFin/blob/0dbda70925492ee988ebac2c1c38c4d112e85570/scifin/classifier/classifier.py#L122
better convert this to a class instead of a function that returns a tuple of several objects
in that way, it is much easier and convenient to add, modify and test it when developing the package

Thanks Godfrey! Indeed, a class would be a good way. We are thinking of integrating this function with some others in a consistent manner.


Dashboard does not display data

Hi,
I don't see the data on dashboard unless I go on the graph save it again then go back on dashboard.
Any idea?
Thanks
a

lain

I guess that you use kibana 7.8, right?
If so, you probably have the same issue that this one: https://github.com/fbaligand/kibana-enhanced-table/issues/116
I plan to release a bug fix for that tonight.

Thank you, I will wait for the next release.

Close this issue as it is a duplicate of #116

@alaindixon
as you can see on issue #116, v1.9.2 is out with this bug fixed.


Can one passthrough GPU to the inner docker?

It is not a bug really. I just want to know if it possible to roll out a cluster of nodes with GPUs?
Say, I have 4 GPUs. Can I create k8s cluster with one CPU master nodes and 4 slave modes with GPUs?
Thank you.

Any news?


Tekd votes

@tgoldenberg @JMC11 @sixthand6th I implemented voting for questions and answers with ajax. No validations so that the user can only submit the same vote once, but check it out.
d

@tekd Attagirl!! 🙏


testcase for SMP kernel lockup on k_thread_abort

Test case for SMP kernel lockup on k_thread_abort issue #58040

If I am following things correctly, there are N cooperative threads being spawned-- 1 for each of the N cores. Since the cooperative threads will just spin and never relinquish the cores, the main thread will never never have a chance to invoke k_thread_abort().

Ah, but indeed the ztest thread is itself cooperative (you have logs in the linked bug).   So maybe this is a bug.
The ztest thread won't be preempted, as I read it, until it reaches k_thread_abort() where it will block in the join queue for the aborted thread.  And it will be preempted by the remaining worker thread at that point.  But... it now should have destroyed one of the threads, so it should have a CPU available to run on!  If it doesn't, that sounds like the thread failed to abort, or failed to wake up the sleeping thread, or something like that.
I'm still curious as to whether this behavior changes if you make the threads preemptible.  Would be good info.

@andyross
as you've looked into this part of kernel in details - should I add the test case with preemptive threads which I have as a draft in issue?

Sorry, missed the question.  For this particular bug, it doesn't actually matter as it wasn't strictly a priority bug.  I'd stick with the cooperative version as that's more constrained and easier to understand.

Remased om main (where the initial issue is fixed), cleaned up test and added documentation.
@andyross @nashif please re-review


How to add speed to this?

alike react-native-content-loader which works fine,this package doesn't provide speed option to up speed for loader, any ideas how to do?

You can pass prop 'duration', the default is 2000 (ms)


linux_mptcp: 0.94.3 -> 0.94.4

Motivation: https://github.com/multipath-tcp/mptcp/releases/tag/v0.94.4

Motivation for this change
Things done

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

[ ] NixOS
[ ] macOS
[ ] other Linux distributions

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

it's still compiling on my remote builder :/ was hoping to user the faster CI to check it compiles at least.

@timokau ok I tested it. Worked fine (the amount of changes is pretty small compared to the previous release so that was to be expected).

Great, thank you!


Why outputs aren't supported should be documented in FAQ

This discussion should be briefly summarized on https://idaholab.github.io/MontePy/faq.html
Originally posted by @tjlaboss in https://github.com/idaholab/MontePy/discussions/342#discussioncomment-9122531

I noticed that doc/source/scope.rst isn't included in the documentation tree, and isn't reachable then.


8.0 VMR all legs failing in runtime with detected package downgrade

Internal/8.0.1xx build: https://dev.azure.com/dnceng/internal/_build/results?buildId=2433696&view=results
/vmr/src/runtime/artifacts/source-build/self/src/src/tasks/WasmAppBuilder/WasmAppBuilder.csproj : error NU1605: Warning As Error: Detected package downgrade: System.Collections.Immutable from 8.0.0 to 7.0.0. Reference the package directly from the project to select a different version.  [/vmr/src/runtime/artifacts/source-build/self/src/Build.proj]
/vmr/src/runtime/artifacts/source-build/self/src/src/tasks/WasmAppBuilder/WasmAppBuilder.csproj : error NU1605:  WasmAppBuilder -> Microsoft.Build.Tasks.Core 17.8.5 -> System.Collections.Immutable (>= 8.0.0)  [/vmr/src/runtime/artifacts/source-build/self/src/Build.proj]
/vmr/src/runtime/artifacts/source-build/self/src/src/tasks/WasmAppBuilder/WasmAppBuilder.csproj : error NU1605:  WasmAppBuilder -> System.Collections.Immutable (>= 7.0.0) [/vmr/src/runtime/artifacts/source-build/self/src/Build.proj]

/vmr/src/runtime/artifacts/source-build/self/src/src/tasks/Microsoft.NET.Sdk.WebAssembly.Pack.Tasks/Microsoft.NET.Sdk.WebAssembly.Pack.Tasks.csproj : error NU1605: Warning As Error: Detected package downgrade: Microsoft.Build.Framework from 17.8.5 to 17.8.3. Reference the package directly from the project to select a different version.  [/vmr/src/runtime/artifacts/source-build/self/src/Build.proj]
/vmr/src/runtime/artifacts/source-build/self/src/src/tasks/Microsoft.NET.Sdk.WebAssembly.Pack.Tasks/Microsoft.NET.Sdk.WebAssembly.Pack.Tasks.csproj : error NU1605:  Microsoft.NET.Sdk.WebAssembly.Pack.Tasks -> Microsoft.Build 17.8.5 -> Microsoft.Build.Framework (>= 17.8.5)  [/vmr/src/runtime/artifacts/source-build/self/src/Build.proj]
/vmr/src/runtime/artifacts/source-build/self/src/src/tasks/Microsoft.NET.Sdk.WebAssembly.Pack.Tasks/Microsoft.NET.Sdk.WebAssembly.Pack.Tasks.csproj : error NU1605:  Microsoft.NET.Sdk.WebAssembly.Pack.Tasks -> Microsoft.Build.Framework (>= 17.8.3) [/vmr/src/runtime/artifacts/source-build/self/src/Build.proj]

/vmr/src/runtime/artifacts/source-build/self/src/src/tasks/WasmAppBuilder/WasmAppBuilder.csproj : error NU1605: Warning As Error: Detected package downgrade: System.Collections.Immutable from 8.0.0 to 7.0.0. Reference the package directly from the project to select a different version.  [/vmr/src/runtime/artifacts/source-build/self/src/Build.proj]
/vmr/src/runtime/artifacts/source-build/self/src/src/tasks/WasmAppBuilder/WasmAppBuilder.csproj : error NU1605:  WasmAppBuilder -> Microsoft.Build 17.8.5 -> System.Collections.Immutable (>= 8.0.0)  [/vmr/src/runtime/artifacts/source-build/self/src/Build.proj]
/vmr/src/runtime/artifacts/source-build/self/src/src/tasks/WasmAppBuilder/WasmAppBuilder.csproj : error NU1605:  WasmAppBuilder -> System.Collections.Immutable (>= 7.0.0) [/vmr/src/runtime/artifacts/source-build/self/src/Build.proj]

/vmr/src/runtime/artifacts/source-build/self/src/src/tasks/WasmAppBuilder/WasmAppBuilder.csproj : error NU1605: Warning As Error: Detected package downgrade: System.Reflection.Metadata from 8.0.0 to 7.0.0. Reference the package directly from the project to select a different version.  [/vmr/src/runtime/artifacts/source-build/self/src/Build.proj]
/vmr/src/runtime/artifacts/source-build/self/src/src/tasks/WasmAppBuilder/WasmAppBuilder.csproj : error NU1605:  WasmAppBuilder -> Microsoft.Build 17.8.5 -> System.Reflection.Metadata (>= 8.0.0)  [/vmr/src/runtime/artifacts/source-build/self/src/Build.proj]
/vmr/src/runtime/artifacts/source-build/self/src/src/tasks/WasmAppBuilder/WasmAppBuilder.csproj : error NU1605:  WasmAppBuilder -> System.Reflection.Metadata (>= 7.0.0) [/vmr/src/runtime/artifacts/source-build/self/src/Build.proj]

/vmr/src/runtime/artifacts/source-build/self/src/src/tasks/AotCompilerTask/MonoAOTCompiler.csproj : error NU1605: Warning As Error: Detected package downgrade: System.Reflection.Metadata from 8.0.0 to 7.0.0. Reference the package directly from the project to select a different version.  [/vmr/src/runtime/artifacts/source-build/self/src/Build.proj]
/vmr/src/runtime/artifacts/source-build/self/src/src/tasks/AotCompilerTask/MonoAOTCompiler.csproj : error NU1605:  MonoAOTCompiler -> Microsoft.Build 17.8.5 -> System.Reflection.Metadata (>= 8.0.0)  [/vmr/src/runtime/artifacts/source-build/self/src/Build.proj]
/vmr/src/runtime/artifacts/source-build/self/src/src/tasks/AotCompilerTask/MonoAOTCompiler.csproj : error NU1605:  MonoAOTCompiler -> System.Reflection.Metadata (>= 7.0.0) [/vmr/src/runtime/artifacts/source-build/self/src/Build.proj]

The related SDK files are not generated due to the errors mentioned above, CentOSStream8_Online_CurrentSourceBuiltSdk_x64 and Fedora38_Offline_CurrentSourceBuiltSdk_x64 are failed:
Copy Previous Build step:
found 0 files
Finishing: Copy Previous Build

Prep the Build step:
tar (child): /mnt/vss/_work/1/vmr/prereqs/packages/archive/dotnet-sdk-*.tar.gz: Cannot open: No such file or directory
tar (child): Error is not recoverable: exiting now
tar: Child returned status 2
tar: Error is not recoverable: exiting now

Build step:
Custom SDK '/vmr/.dotnet/dotnet' does not exist or is not executable

@NikolaMilosavljevic - Can you jump on this?  TIA.  This is related to https://github.com/dotnet/runtime/pull/100595

It did not repro when I built locally with latest changes: https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet/commit/75831229196c2d6d803830ad1558d20e673a16be?refName=refs/heads/release/8.0.1xx
I'm not sure why that build had a different commit that is now missing.

Look at the internal/release/8.0.1xx branch - https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet?path=/&version=GBinternal/release/8.0.1xx&_a=history

It seems that runtime now gets PVP flow for Microsoft.Build which bumps it to live (n-1) version (17.8.5) which brings 8.0.0 dependencies of System.Reflection.Metadata and System.Collections.Immutable.
17.8.5 was resolved from previously-source-built source.
Runtime defines S.C.I and S.R.M dependencies version as 7.0.0. https://github.com/dotnet/runtime/blob/ca4f0fe37455882baa00c75b1ef30a7ff1494457/eng/Versions.props#L127
    <SystemCollectionsImmutableVersion>7.0.0</SystemCollectionsImmutableVersion>

Same for the other assembly.

These are toolset dependencies, the Tasks in question go into workloads and are run in-process with the sdk/vs build
in net9 this is explicitly called out by the properties that are used
https://github.com/dotnet/runtime/blob/main/eng/Versions.props#L135-L139

Updating runtime, to remove direct package references (S.C.I and S.R.M.) was not enough. MSbuild repo was regressed with the same runtime PR (https://github.com/dotnet/runtime/pull/100595), and downgraded the versions from 17.8.5 to 17.8.3. Runtime PR added msbuild intermediate package reference with SourceBuild tag. That caused VMR sync to pick the old MSBuild SHA, instead of the one specified in sdk repo.
I tried, locally, to create a patch for runtime to remove the intermediate dependency, to check if vmr-sync would do the right thing. It did not update msbuild to a newer SHA. This runtime change is still needed and I will include it in the same patch with other runtime change mentioned above. However, we need to find a way to update VMR. If sync is not going to bring the correct msbuild SHA, can we update it directly?
@MichaelSimons @premun


Convert to Onnx Collab notebook fails on torch.onnx.export(..)

Hi i wanted to convert the model to onnx format, i tried the collab notebook, however the code fails at the conversion step - torch.onnx.export(..) Can u please look into this ? Thanks!

I met the same problem, I tried b0, b1, b4, b5, but thay all failed to produce an onnx file.

Hi,
I also have the same problem on my local machine. Tried with torch 1.2 as well as 1.4 but makes on difference. No onnx file written and no error (verbose output given appears to show onnx conversion has been successful).
Changing path in torch.onnx.export to something invalid also makes no difference, no error given.

This worked for me:
`import torch
from efficientnet_pytorch import EfficientNet
print(torch.version)
with torch.cuda.device(0):
with torch.no_grad():
model = EfficientNet.from_pretrained('efficientnet-b5')
dummy_input = torch.randn(10, 3, 240, 240)
model = model.cuda()
model.set_swish(False)
dummy_input = dummy_input.cuda().float()
input_names = ["input0"]
torch.onnx.export(model, dummy_input, "/home/tom/EfficientNet-PyTorch/test-b5.onnx", opset_version=11,
export_params=True, verbose=False, input_names=input_names)
`


Remove ortelius-console charts from GitHub Action for Release Charts

https://github.com/ortelius/ortelius/blob/svc_cat/.github/workflows/helm-chart-releaser.yml is uploading too many charts.  Either delete the ortelius-console chart from the svc_cat branch or exclude it in the helm-chart-releaser.yml

completed


Add note about keeping Shopify/shopify up to date

That's the only one I know of but we can add more if discovered.

Added shopify_app


reacr-router-dom v6版本的，使用这个库出现呢这个异常，请问一下是什么原因导致的？

The above error occurred in one of your React components:
in Unknown (created by d)
in Suspense (created by d)
in i (created by d)
in d (at App.tsx:36)
in Router (created by BrowserRouter)
in BrowserRouter (at App.tsx:35)
in div (at App.tsx:34)
in App (at src/index.tsx:12)
in QueryClientProvider (at AppProvider.tsx:76)
in AppProvider (at src/index.tsx:11)
Consider adding an error boundary to your tree to customize error handling behavior.
Visit https://fb.me/react-error-boundaries to learn more about error boundaries.
就只提示上面这段 没说是什么原因导致的

#3


Automatic PR of restapi_auto_consumption-fix into master

Created to sync https://github.com/Azure/azure-rest-api-specs/pull/2387

See https://github.com/Azure/azure-sdk-for-python/pull/1896


ability to override default settings of generated tsconfig.json

:rocket: Feature Request
Affected Languages

[x] TypeScript or Javascript
[ ] Python
[ ] Java
[ ] .NET (C#, F#, ...)

General Information

**JSII Version: *1.13.0 (build 385c325), typescript 3.9.7
**Platform:Mac Os
[ ] I may be able to implement this feature request

[ ] This feature might incur a breaking change

Description

Currently Jsii only allows outDir and rootDir fields to be modified in jsii.tsc section, it should consider additional fields which can be configured. I am running into few issues which are caused due to default settings of tsconfig. It should take additional fields into consideration as well
Proposed Solution

I have this idea where I'd like to allow folks to own their tsconfig.json and basically only have jsii enforce the configuration remains within certain boundaries (to ensure correct inter-operability). I reckon this would effectively solve your problem?

Also see #1644

We'd like to see this implemented to be able to resolve the referenced issue in the 'projen' project.

Currently there's need to include (quite ugly) script to beginning of projens compile (and watch) task to allow compilation:
replace-in-file "lib: ['lib.es2019.d.ts']" "lib: ['lib.es2019.d.ts','lib.dom.d.ts']" node_modules/jsii/lib/compiler.js. So some configuration offering would be quite nice.

This feature is no available as preview in<EMAIL_ADDRESS>For now please refer to the PR https://github.com/aws/jsii-compiler/pull/931 for documentation.
Pending beta testing, I expect this to be released next week and backported to all currently supported version lines (5.3.x and 5.2.x). Documentation and website updates are also underway.

This is now releases as an experimental feature on jsii >= 5.2
Documentation:
https://aws.github.io/jsii/user-guides/lib-author/configuration/#typescript-configuration


pipewire-screenaudio: init at 0.3.0

Description of changes
close #243147

Things done

Built on platform(s)

[x] x86_64-linux
[x] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
23.11 Release Notes (or backporting 23.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

@fufexan @Kranzes I bumped the package to 0.3.0

@NobbZ

@Kranzes @NobbZ

@fufexan @Kranzes @NobbZ Initialized at newer version

@Kranzes @fufexan @NobbZ Is this going to get merged or shouldn't I keep on bumping it's version?

I don't use pipewire, and ignored your steady pings because of this.
I cant test this, and therefore won't merge it.


Add workflow for joining the RS testnet

The workflow should only pass when all chains in the RS testnet can be synced to.

Closed by #325


Update Scale DC/OS Universe package to 5.1.0

We need to make a DC/OS Universe PR to bump version to 5.1.0.
Support must be added for Scale Elasticsearch LB environment variable.

PR in awaiting approval: https://github.com/mesosphere/universe/pull/1354

PR merged.


summary: age buckets added

Adds sliding window functionality to summary collector
I didn't forget about

[x] Tests
[x] Changelog
[x] Documentation

Close #165

Recently we had performed stress testing. We tested current summary collector (summ_origin on a screenshot) and summary with 5 age buckets and 10min buckets lifetime (summ_age on a screenshot)
The result is:

latency ratio is about 5 (~50 μs for new functionality and ~10 μs for an old one)
strange rps drops on chart while using new functionality

After some refactoring I've increased latency ratio to about 1.3-1.5

Last stress test result%


IDE Entity Manager

Add an Entity Manager for the IDE
Functionality

List all entities
Add and delete entities
List all components
View and modify components (with some sort of introspection)
Add and delete components

Blocked until part 2 of #5 is done


Corosync error while installing lustre server modules via IML

We are using IML <IP_ADDRESS> as a GUI interface to deploy the lustre. During the process, the corosync error has been arisen from the interface and the information as follows.
What version of IML? <IP_ADDRESS>
What Operating System? CentOS 7.5
while the error is captured below:
sbin/ip link set dev eno4 up: 0
/sbin/ip addr add <IP_ADDRESS>/24 dev eno4: 0
/usr/bin/firewall-cmd --add-rich-rule=rule family="ipv4" destination address="<IP_ADDRESS>" protocol value="tcp" accept: 252
FirewallD is not running
/usr/bin/firewall-cmd --remove-rich-rule=rule family="ipv4" destination address="<IP_ADDRESS>" protocol value="tcp" accept: 252
FirewallD is not running
bash -c echo ******************** | passwd --stdin hacluster: 0
Changing password for user hacluster.
passwd: all authentication tokens updated successfully.
/usr/bin/firewall-cmd --add-port=37435/udp: 252
FirewallD is not running
/usr/bin/firewall-cmd --add-port=2224/tcp: 252
FirewallD is not running
systemctl start pcsd: 0
systemctl is-active pcsd: 0
active
systemctl enable corosync: 0
Created symlink from /etc/systemd/system/multi-user.target.wants/corosync.service to /usr/lib/systemd/system/corosync.service.
systemctl enable pcsd: 0
Created symlink from /etc/systemd/system/multi-user.target.wants/pcsd.service to /usr/lib/systemd/system/pcsd.service.
pcs cluster auth OSS2.ust.hk -u hacluster -p ********************: 0
oss2.ust.hk: Authorized
pcs cluster setup --name lustre-ha-cluster --force OSS2.ust.hk --transport udp --rrpmode passive --addr0 <IP_ADDRESS> --mcast0 <IP_ADDRESS> --mcastport0 37435 --addr1 <IP_ADDRESS> --mcast1 <IP_ADDRESS> --mcastport1 37435 --token 17000 --fail_recv_const 10: 1
Destroying cluster on nodes: OSS2.ust.hk...
OSS2.ust.hk: Unable to authenticate to OSS2.ust.hk - (HTTP error: 401), try running 'pcs cluster auth'
OSS2.ust.hk: Unable to authenticate to OSS2.ust.hk - (HTTP error: 401), try running 'pcs cluster auth'
Error: unable to destroy cluster
OSS2.ust.hk: Unable to authenticate to OSS2.ust.hk - (HTTP error: 401), try running 'pcs cluster auth'
iml-diagonsis report can be provided if needed

Hi @jameslam0250,
Have you tried running "pcs cluster auth" on OSS2? It's probably worth looking through the corosync and pacemaker information to see if there are any differences between the HA pairs.
Regards,
Will

Is it possible that another machine is communicating with OSS2? For example, if you are using vm's, could another vm be trying to access OSS2 as well? If so, multiple machines could be competing to talk to OSS2. This is one of the first errors that occurs in that scenario.

We are currently building this storage system and that is the first OSS node we are going to install. So I guess there is no other machines competing each other

There may be an issue with the setup of your HA pair. Can you check the corosync configuration (/etc/corosync/corosync.conf) on both your oss1 and your oss2? Check to see if one may have an extra node, different mcast port, etc. Also, are you using two mds's as an HA pair? If so, were they able to configure properly?

Hi @jameslam0250,
Is there any chance you could setup a vagrant cluster with the version of IML you are installing and see if you run into the same problem? We have a repo that make setting up the cluster pretty simple: https://github.com/whamcloud/Vagrantfiles. Once you clone the repo, do the following:

navigate to repo and cd into the iml-sandbox directory
Run: vagrant up iscsi adm mds1 mds2 oss1 oss2
scp the IML tarball you are using to the adm node. Once it's been added, ssh into the adm node, extract the file, and run the install. IML should now be installed on the admin node.

Once you've done this, open your browser and navigate to https://localhost:8443/ui/. The webpage should load. Login with username admin and password lustre. Once logged in, navigate to configuration->servers. Click the button to add servers and in the input enter, mds[1,2].local, oss[1,2].local. Continue installing the servers from this point forward and see if you are running into the same issue.

Do we need to remove all the modules/RPM/files from the IML and OSS and install this lustre via Vagrant?
We based on the tar zip build and install the lustre

The vagrant cluster should be completely separate from your current installation. You can do it on a single computer to test if you are able to recreate the issue.

No need to roll anything back. You can do it on another system if you would like. All you need is to install virtualbox and vagrant on any system and then follow the instructions I laid out above. The goal here is to see if you are able to re-create the issue in a separate vagrant cluster (if you are then we need to look and see what specifically is causing the issue as our manual testing did not encounter this problem). If the servers deploy successfully on the vagrant cluster you can then compare your actual cluster to the vagrant cluster and see what the difference is.

and finally we find out that our DNS server uses small letters on the servers and we were using capital letters for the hostname for deployment.
and during the corosync setup the authentication rejects but small letters of hostname can authenticate correctly.
and everything goes smooth now


adds the argo workflow to run terraform templates

creates a new example runner for launching terraform templates from within the idpBuilder

cc @elamaran11

sounds good, will make the change.

@nimakaviani Is this missing the backstage templates?

@csantanapr Backstage templates are in this repo and should be added to the backstage-config and documentation is all in readme.


Upgrade trivy to v0.52.0

Upgrade trivy version to v0.52.0, it's already out since 3 days ago 😄

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


Add localization tests

Adds tests to ensure string encode and decode operations preserve language formatting

Codecov Report

Merging #4540 (ebcca50) into dev (42ad30c) will not change coverage.
The diff coverage is n/a.

Flag
Coverage Δ

*Carryforward flag

msal-angular
96.39% <ø> (ø)

msal-browser
87.50% <ø> (ø)

Carriedforward from 42ad30c

msal-common
85.08% <ø> (ø)

Carriedforward from 42ad30c

msal-core
82.67% <ø> (ø)

Carriedforward from 42ad30c

msal-node
82.25% <ø> (ø)

msal-node-extensions
76.03% <ø> (ø)

Carriedforward from 42ad30c

msal-react
92.46% <ø> (ø)

*This pull request uses carry forward flags. Click here to find out more.


[SERIOUS PROBLEM]Compilation error in got10k/datasets/lasot.py

As the title said, there is a compilation error in the file got10k/datasets/lasot.py. The code is self._check_integrity(root_dir, subset)  at the line # 31, passing 2 parameters into the function self._check_integrity. However, it just receives one argument in its definition. So, a compilation error happened when I run my code.
The error info is as the following.
Traceback (most recent call last):
  File "train.py", line 18, in <module>
    main()
  File "train.py", line 14, in main
    tracker.train1(data_path, net_storage_dir)
  File ".../.../xxx.py", line 177, in train1
    LaSOT(os.path.join(data_path, 'LaSOT/LaSOTBenchmark'), subset='train')
  File ".../.../anaconda3/lib/python3.6/site-packages/got10k/datasets/lasot.py", line 31, in __init__
    self._check_integrity(root_dir, subset)
TypeError: _check_integrity() takes 2 positional arguments but 3 were given

@fzh0917  hi i met the same problem, any idea how to solve it?

i also want to know where i can get lasot.json for training?


RFC: non-terminating recursive functions from tail-recursive definition.

Proposal
Lean currently supports these strategies to compile a recursive definition into something non-recursive that the kernel can handle:

Add as axiom with unsafe. No reduction/equations.
Add as opaque defined as default, with partial. No reduction/equations.
Structural recursion, based on .brec. Reduces definitionally.
Well-founded recursion, based on WellFounded.fix. Equalities provided propositionally.

Definition via partial orders
There are more strategies that may be useful, though. Peeking at what the Isabelle users have, we could probably support arbitrary tail-recursive definitions such as
def find (P : Nat → Prop) (start := 0) : Nat :=
  if P start then start else find P (start+1)

This can internally be compiled to a fixed-point combinator like
noncomputable
def fixMono {α : Sort u} {C : α → Sort v}
    (F : ((y : α) → C y) → (x : α) → C x)
    [(x : α) → Inhabited (C x)] : (x : α) → C x := …

where we can prove the desired equality when F is monotone with regard to the partial order default ≤ everything_else:
def moreDefined {α : Sort u} {C : α → Sort v} [(x : α) → Inhabited (C x)] (g h : (x : α) → C x) : Prop :=
  (x : α) → g x = default ∨ g x = h x

def monoF {α : Sort u} {C : α → Sort v} [(x : α) → Inhabited (C x)] (F : ((y : α) → C y) → (x : α) → C x) :=
  (g h : (y : α) → C y) → (le : moreDefined g h) →  moreDefined (F g) (F h)

def fixMono_eq {α : Sort u} {C : α → Sort v}
  (F : ((y : α) → C y) → (x : α) → C x)
  [inh : (x : α) → Inhabited (C x)]
  (mono : monoF F) : fixMono F = F (fixMono F) := …

so the two side conditions are

The range is already inhabited (same side-condition as for partial)
The function is monotone in this particular way.

The latter side condition is automatically satisfied if the function is tail-recursive.
So for tail-recursive functions with inhabited range, these would work just as well as well-founded recursions now. Much of that machinery (tupling arguments, packing mutual recursive functions, smart unfolding lemmas) should apply as is.
In the future we might derive inductive principles from well-founded recursive definitions; then well-founded definitions would have an edge again.
Syntax
Straw-many proposal: Add an optional keyword after partial:
partial tailrec def find (P : Nat → Prop) (start := 0) : Nat :=
  if P start then start else find P (start+1)

Or add it after the function, like the termination hints:
def find (P : Nat → Prop) (start := 0) : Nat :=
  if P start then start else find P (start+1)
tailrecursive

Both are kinda ugly, suggestions welcome.
A unified extensible syntax for such “derecursification-hints” (see #2812) would be nice.
Roadmap
I think this is at least nice to have, but probably less important than other nice to haves, so it’s not on my roadmap yet. I am opening this issue mostly to have place to refer to, and for possible users to indicate how much it would help them, and maybe prioritize accordingly.
Community Feedback
None yet.
Impact
Add :+1: to issues you consider important. If others benefit from the changes in this proposal being added, please ask them to add :+1: to it.

Working on this now. After internal consultation I found that most are uncomfortable with lean accepting a partial function without an explicit partial keyword, so it shouldn’t apply this method just silently.
With partial specified it shouldn’t try it either, because partial is often used for “This is a huge and ugly function that we only want to compile, and nothing else, don’t spend additional work on it”.
So the current suggestion is something like
partial def f n := …
with_equations

where the with_equations post-definition keyword can then take optional specifiers like +tailrec or +monadic, and provides room for more extensions (e.g. by $tac for explicit proofs of monotonicity ).
For unannotated functions, when all termination checks fails, Lean could still try this strategy, and if it succeeds, suggest a code action that adds partial … with_equations around the function, so that users don’t spend time trying to an explicit termination proofs when they don’t really have to.


Lightbox doesn't pop-up

Hello!
I've been building my own portfolio website with a friend of mine. For some school projects I made some movies and animations, so I want these to pop up in a lightbox inside my work section. I think Lity is a very easy and cool looking tool for this. I added the 'dist' and 'vendor' files to my own files in Coda (program I'm using for all my files and coding) and I added the code to my index.html (which I use for my project pages). When I hove my mouse over the image I see in the bottom corner the link to my Vimeo movie, but when I click nothing happens. This is my test website: http://jochemkoopman.nl/wip/work/thecloud/
I hope you can help me out! I'm pretty new at all this coding...

Looks like you're not linking to the lity files correctly:

Additionally, you do not need to include vendor/jquery.js since jQuery is already included (http://code.jquery.com/jquery-1.11.2.min.js).

Thanks! It's finally working on that page. But I have a new problem now.... I copied the exact same code from http://jochemkoopman.nl/work/thecloud/ to http://jochemkoopman.nl/work/uprooted/
The pop-up opens on the first one (/thecloud/) but not in the second one (/uprooted/). It's the exact same code, only another vimeo link and headers/text.... Can you maybe see what's going wrong here?

Glad you solved it. 👍


Handle verbose logging

Is there a way to pass the --verbose flag to ChromeDriver via this service?
In the documentation, we only get this example:
chromedriver.exe --verbose --log-path=chromedriver.log

Is there a way to pass this flag to ChromeDriver via this service?
Thanks!

I tried using both of these as options in my wdio.conf.js:
chromeDriverArgs: ['verbose'],

and
chromeDriverArgs: ['--verbose'],

but neither of them seemed to work.

I used
chromeDriverArgs: ['--verbose'],
and
chromeDriverLogs: 'ChromeDriver.txt',
and did get debug output in the file.

did you get verbose output? Because I can confirm that I am getting output to the custom chromeDriver log file, but I am only getting standard output.
I have:
chromeDriverArgs: ['--verbose'],
chromeDriverLogs: './chromedriver/logs',

and I always get the exact same output (shown in my comment above).
My versions:

wdio: 4.6.2
wdio-chromedriver-service: 0.1.0
ChromeDriver: 2.31.488774

$ cat ChromeDriver.txt
Starting ChromeDriver 2.31.488763 (092de99f48a300323ecf8c2a4e2e7cab51de5ba8) on port 9515
Only local connections are allowed.
[2.539][INFO]: COMMAND InitSession {
"desiredCapabilities": {
"browserName": "chrome",
"handlesAlerts": true,
"javascriptEnabled": true,
"locationContextEnabled": true,
"loggingPrefs": {
"browser": "ALL",
"driver": "ALL"
},
"requestOrigins": {
"name": "webdriverio",
"url": "http://webdriver.io",
"version": "4.6.2"
},
"rotatable": true
...
...
...


[Design flaw] Resource manager for texts

I've noticed that you use raw text messages directly in code, e.g.

player.PlayerView.ShowMessage("Your account has been temporarily banned by a game master.", MessageType.BlueNormal);

However, this leads to problems with translating text game server for non-English regions.  Therefore I suggest to introduce an enitity which would provided text for given ID on run-time, possibly from disk.

Thanks for your input. Localization of these messages was already on my radar, but wasn't important enough yet.
It should not be a big issue to solve this. A solution could look like this:
First, we need the culture settings a specific client prefers. We could add a property in the Account or maybe the game client already sends us this information. The original game launcher of GMO Season 6E3 has a setting for the language. I expect that this setting is sent to the server in the login process.
Then we need to copy or move all message strings which are sent to the client to the resources and replace this occurrences by calling the ResourceManager.


#133 Fixed images and tables

Changelist

Markdown now supports and uses image and link locations
Formatted Markdown according to linter

Fixes #133
TODO

[x] Travis build succeeds

@StanRonzhin I've updated the react-markdown plugin
It now supports GitHub style markdown, so tables and images are now covered without having to inject raw html

@GerwinBosch I observ strange rendering of tables.  I just updated the project and in local version I have this. However, online is ok.

@StanRonzhin Please run npm ci or npm install to update the local packages. It seems that the react-markdown plugin hasn't up


Parse.Cloud.afterSave for sending push notifications not working from Heroku server

I did the migration, from Parse to Heroku and everything went smooth. At this point I didn't have any cloud code or push notifications set up on Parse. When I was done with the migration I begin to implement cloud code to handle push notification every time I save a new text message, but the Parse.Cloud.afterSave method is not running. I know main.js is working because if I implement
Parse.Cloud.define('hello', function(req, res) {
  res.success('Hi');
});

I get "Hi" return to my console in Xcode, but for some reason Parse.Cloud.afterSave does nothing. I also know my Parse.Cloud.afterSave code is correct because it's that same code I use on another app through parse though. What am I missing?
Here in my index.js file:
var express = require('express');
var ParseServer = require('parse-server').ParseServer;
var path = require('path');

var databaseUri = process.env.DATABASE_URI || process.env.MONGOLAB_URI;

if (!databaseUri) {
  console.log('DATABASE_URI not specified, falling back to localhost.');
}

var api = new ParseServer({
  databaseURI: databaseUri || '',
  cloud: process.env.CLOUD_CODE_MAIN || __dirname + '/cloud/main.js',
  appId: process.env.APP_ID || '',
  masterKey: process.env.MASTER_KEY || '',
  fileKey: 'XXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX', // file key from parse
  serverURL: process.env.SERVER_URL || '',

  push: {
    ios: {
      pfx: '/Users/alexcruz/Desktop/Certificates.p12', // The filename of private key and certificate in PFX or PKCS12 format from disk
      bundleId: 'com.daps.DapsPush', // The bundle identifier associate with your app
      production: false // Specifies which environment to connect to: Production (if true) or Sandbox
    }
  }
});

var app = express();

// Serve static assets from the /public folder
app.use('/public', express.static(path.join(__dirname, '/public')));

// Serve the Parse API on the /parse URL prefix
var mountPath = process.env.PARSE_MOUNT || '/parse';
app.use(mountPath, api);

// Parse Server plays nicely with the rest of your web routes
app.get('/', function(req, res) {
  res.status(200).send('Make sure to star the parse-server repo on GitHub!');
});

// There will be a test page available on the /test path of your server url
// Remove this before launching your app
app.get('/test', function(req, res) {
  res.sendFile(path.join(__dirname, '/public/test.html'));
});

var port = process.env.PORT || 1337;
var httpServer = require('http').createServer(app);
httpServer.listen(port, function() {
    console.log('parse-server-example running on port ' + port + '.');
});

// This will enable the Live Query real-time server
ParseServer.createLiveQueryServer(httpServer);

Here is my main.js file:
//Push Notification for messages that are received
Parse.Cloud.afterSave("MXTMessage", function(request) {
  var messageText = request.object.get('message');
  var usersReceived = request.object.get('receiver');
  var currentUser = Parse.User.current();
  var pushQuery = new Parse.Query(Parse.Installation);
      pushQuery.equalTo('user', usersReceived);
      pushQuery.notEqualTo('user', currentUser);
        Parse.Push.send({
            where: pushQuery, // Set our Installation query
            data: {
              alert: "New message: " + messageText
             }
            }, {
      success: function() {
      // Push was successful
          },
      error: function(error) {
        throw "Got an error " + error.code + " : " + error.message;
          }
            });
});

Thank you

In node, there's no longer the concept of a 'current' user, since the server stays running while it processes many requests.  You'd need to update this code to get the user from request.user and send the push with the master key:
Parse.Cloud.afterSave("MXTMessage", function(request) {
  var messageText = request.object.get('message');
  var usersReceived = request.object.get('receiver');
  var pushQuery = new Parse.Query(Parse.Installation);
  pushQuery.equalTo('user', usersReceived);
  pushQuery.notEqualTo('user', request.user);
  Parse.Push.send({
    where: pushQuery, // Set our Installation query
    data: {
      alert: "New message: " + messageText
    }
  }, { useMasterKey: true}).then(() => {
      // Push was successful
      console.log('weeee!');
  }, (e) => {
      console.log(e);
  });
});

Hey buddy, thanks for the update. It's still not sending the pushes though. Any idea of what else can it be. I been wrestling with this for 3 days now.
@gfosco

Need more info I guess... can you enable VERBOSE=1 environment variable, add some more logging, see if you can discover where this is going wrong...

How can I enable VERBOSE ? If I run the command Heroku log I'm getting

What does your index.js look like around line 31?... liveQuery should be inside the options block passed to ParseServer..
heroku env vars are set like: heroku config:set VERBOSE=1

Line 31 is: liveQuery: {
`var api = new ParseServer({
databaseURI: databaseUri || 'mongodb://localhost:27017/dev',  //'mongodb://localhost:27017/dev',
cloud: process.env.CLOUD_CODE_MAIN || __dirname + '/cloud/main.js',
appId: process.env.APP_ID || 'vcvlqNruCCXx0ZMLej7NmAkyEuGUjkxljOvb6K4r', //vcvlqNruCCXx0ZMLej7NmAkyEuGUjkxljOvb6K4r
masterKey: process.env.MASTER_KEY || 'iXOUjz99nb604t25CAQpjHtYZidmXAFPTB5LPbe1', //Add your master key here. Keep it secret! //iXOUjz99nb604t25CAQpjHtYZidmXAFPTB5LPbe1
fileKey: '24fc72f0-55d0-4838-9a23-21663b4bd7b2', // file key from parse
serverURL: process.env.SERVER_URL || 'http://daps.herokuapp.com/parse',  //http://daps.herokuapp.com/parse  // http://localhost:1337/parse Don't forget to change to https if needed
push: {
ios: {
pfx: '/Users/alexcruz/Desktop/Certificates.p12', // The filename of private key and certificate in PFX or PKCS12 format from disk
bundleId: 'com.daps.DapsPush', // The bundle identifier associate with your app
production: false // Specifies which environment to connect to: Production (if true) or Sandbox
}
}
liveQuery: {
classNames: ["MXTMessage"] // List of classes to support for query subscriptions
}
});`

Line 31 is: liveQuery: {
`var api = new ParseServer({
databaseURI: databaseUri || 'mongodb://localhost:27017/dev', //'mongodb://localhost:27017/dev',
cloud: process.env.CLOUD_CODE_MAIN || __dirname + '/cloud/main.js',
appId: process.env.APP_ID || 'xxxxxxxxxxxxxxxxx',
masterKey: process.env.MASTER_KEY || 'xxxxxxxxxxxxxxxxx',
fileKey: 'xxxxxxxxxxxxxxxxx', // file key from parse
serverURL: process.env.SERVER_URL || 'http://myapp.herokuapp.com/parse',
push: {
ios: {
pfx: '/Users/alexcruz/Desktop/Certificates.p12', // The filename of private key and certificate in PFX or PKCS12 format from disk
bundleId: 'com.daps.DapsPush', // The bundle identifier associate with your app
production: false // Specifies which environment to connect to: Production (if true) or Sandbox
}
}
liveQuery: {
classNames: ["MXTMessage"] // List of classes to support for query subscriptions
}
});`

Line 31 is: liveQuery: {
`var api = new ParseServer({
databaseURI: databaseUri || 'mongodb://localhost:27017/dev',
cloud: process.env.CLOUD_CODE_MAIN || __dirname + '/cloud/main.js',
appId: process.env.APP_ID || 'xxxxxxxxxxxxxxxxx',
masterKey: process.env.MASTER_KEY || 'xxxxxxxxxxxxxxxxx',
fileKey: 'xxxxxxxxxxxxxxxxx', // file key from parse
serverURL: process.env.SERVER_URL || 'http://myapp.herokuapp.com/parse',
push: {
ios: {
pfx: '/Users/alexcruz/Desktop/Certificates.p12', // The filename of private key and certificate in PFX or PKCS12 format from disk
bundleId: 'com.daps.DapsPush', // The bundle identifier associate with your app
production: false // Specifies which environment to connect to: Production (if true) or Sandbox
}
}
liveQuery: {
classNames: ["MXTMessage"] // List of classes to support for query subscriptions
}
});`

You're missing the comma after the push config object... Easier to see when all properly indented, this is an object being passed to the ParseServer constructor.
var api = new ParseServer({
  databaseURI: databaseUri || 'mongodb://localhost:27017/dev',
  cloud: process.env.CLOUD_CODE_MAIN || __dirname + '/cloud/main.js',
  appId: process.env.APP_ID || 'xxxxxxxxxxxxxxxxx',
  masterKey: process.env.MASTER_KEY || 'xxxxxxxxxxxxxxxxx',
  fileKey: 'xxxxxxxxxxxxxxxxx', // file key from parse
  serverURL: process.env.SERVER_URL || 'http://myapp.herokuapp.com/parse',
  push: {
    ios: {
      pfx: '/Users/alexcruz/Desktop/Certificates.p12',
      bundleId: 'com.daps.DapsPush',
      production: false
    }
  },
  liveQuery: {
    classNames: ["MXTMessage"] // List of classes to support for query subscriptions
  }
});

When I add breakpoints on devtools it stops at:
Parse.Cloud.afterSave("MXTMessage", function(request) {
I add additional breakpoints inside the afterSave method, and it just ignores them all.

What else is in your cloud code file?... don't require or define Parse... it's a global.

This is all the code in the main.js

Parse.Cloud.afterSave("MXTMessage", function(request) {
  var messageText = request.object.get('message');
  var usersReceived = request.object.get('receiver');
  var pushQuery = new Parse.Query(Parse.Installation);
  pushQuery.equalTo('user', usersReceived);
  pushQuery.notEqualTo('user', request.user);
  Parse.Push.send({
    where: pushQuery, // Set our Installation query
    data: {
      alert: "New message: " + messageText
    }
  }, { useMasterKey: true}).then(() => {
      // Push was successful
      console.log('weeee!');
  }, (e) => {
      console.log(e);
  });
});

any logs?...

Nope

add a console log before each line in your afterSave.  where does it stop?

No where it doesn't go beyond  Parse.Cloud.afterSave("MXTMessage", function(request) {
and when I go to: http://localhost:1337/parse
I get
{"error":"unauthorized"}

How are you saving an MXTMessage object, which would trigger the afterSave?
Yeah it is unauthorized because you don't pass in the appId header, it's not for browsing.

Oh ok,
Through an iOS app. When a user sends a text message, and the message object is saved to MXTMessage that's when I want to trigger the afterSave to send the receiver a notification.

The afterSave never gets called

Please test and run this locally, on your machine, using a curl command to save an object.  See if you can get any more useful information from logs while it's running... the heroku logs get all out of order sometimes..

Running it locally and nothing. When I save a new object afterSave never gets called.
This is what the console in devtool outputs only

Every cURL command just returns {"error":"unauthorized"}

Damn buddy what you think might be the issue? I been looking around forums and theirs a few having the same issue.

If you're getting unauthorized, you're not passing in the right appId.. should look like this:
curl -X POST \
  -H "X-Parse-Application-Id: whatever" \
  -d "{\"foo\":\"bar\"}" \
http://localhost:1337/parse/classes/TestObject

curl -X POST \
  -H "X-Parse-Application-Id: myAppID" \
  -d "{\"message\":\"bar\"}" \
http://localhost:1337/parse/classes/MXTMessage

{"code":105,"error":"invalid key name: {"message":"bar"}"}Alex-iMac:daps alex$
What am I doing wrong here @gfosco  ?

Also I know main.js is running because if I use to test
Parse.Cloud.define("test", function(request, response) {
      response.success('Hi There');
});

and call it in Objective-C

        [PFCloud callFunctionInBackground:@"test"
                       withParameters:nil
                                block:^(NSString *string, NSError *error) {
                                    if (!error) {
                                        NSLog(@"connected %@", string);
                                    }
                                }];

Works as expected, but afterSave does nothing.

Same problem here Parse.Cloud.afterSave not called, do you solve the problem?

pushQuery.notEqualTo('user', request.user); seems work well with ios client, but not work with the android client and the notification not fire... any idea?

After some work, here my solution:
Let me know if also work for you..
Parse.Cloud.afterSave("MXTMessage", function(request) {
  var messageText = request.object.get('message');
  var usersReceived = request.object.get('receiver');
  var pushQuery = new Parse.Query(Parse.Installation);
  pushQuery.equalTo('user', usersReceived);
  **pushQuery.notEqualTo('installationId', request. installationId);**
  Parse.Push.send({
    where: pushQuery, // Set our Installation query
    data: {
      alert: "New message: " + messageText
    }
  }, { useMasterKey: true}).then(() => {
      // Push was successful
      console.log('weeee!');
  }, (e) => {
      console.log(e);
  });
});

what is the value stored in usersReceived? Is it a userId string or something else?


Is  a.b syntax in listeners really going to go?

I am referring to This ticket in the documentation as well as this comment in the source.
So... is the a.b syntax really going to be deprecated?
If so... may I ask you why? Without it, the use of listeners is really quite severely crippled, and it would leave the annotations as the only real alternative. At this point, wouldn't it make sense to get rid of listeners altogether?
@sorvell you made the deprecation comment... can you enlighten us?

At this point, wouldn't it make sense to get rid of listeners altogether?

This is exactly what happened. Since it is deprecated now, I am closing this issue. Please reopen if you have any more questions.


[#12] [Backend] As a user, I can see the coin’s detailed information on the Detail screen

Close #12

What happened 👀

Added CoinDetail and related Object to parse API GET coins/{id}.
Updated Unit test for Repository and UseCase.
Added Mocks

Insight 📝
As we have JSON looks like this:
"current_price": {
          "aed": 61645,
          "ars": 2955218,
          "aud": 24895,
          "usd": 16784.67
        },
        "ath": {
          "aed": 253608,
          "ars": 6913791,
          "aud": 93482,
          "usd": 69045
        },
        "ath_change_percentage": {
          "aed": -75.69159,
          "ars": -57.24712,
          "aud": -73.35158,
          "usd": -75.68881
        },

=> Created USDDecimalable protocol for usd key with Decimal value.
=> Created USDDoublable protocol for usd key with Double value.
Proof Of Work 📹

Thanks @Thieurom, I fixed it at https://github.com/nimblehq/nimble-crypto-ios/pull/78/commits/e7dd75b8cae6180283c99f7210d99163fb6c8141


Add GHC 8.2.1/8.2.2 to Travis CI. Allow to fail.

A first step towards https://github.com/hvr/packunused/issues/32.
I was having some trouble getting multi-ghc-travis to work so I added this stuff manually.

OK, the 8.2.1 and 8.2.2 builds are in allowed failures now. Let's see what turns up.

I won't have time to keep going here, but if anyone does work on #32, they can work from this.


Dictionary-based API and Multi-Cloud Support

I'm opening this issue as a discussion point around a future API interface (CRD) for the ServiceTelemetry object (servicetelemetrys.infra.watch). Most of the functionality to support this is implemented in this PR, but untested.
Additionally, I didn't the tasks to allow the Operator to support and map the existing API (flat) into the dictionary, but would, should we approve this approach.
The pattern here follows the same as used in the kiali-operator at https://github.com/kiali/kiali-operator and also uses a custom filter plugin from that repository.
By expanding this to a dictionary, it makes it cleaner when adding additional parameters and features. This would be in preparation for multi-cloud support (where a list of objects could now be passed) and allows us to override portions of the dictionary without having to specify the entire dictionary in the CustomResource.
The API pattern is to create a top-level "function" parameter (events, metrics, transport, storage, etc) and then create application-specific configuration changes within that (metrics.prometheus, events.elasticsearch, transport.qdr, storage.ephemeral, etc). If we had future endpoints we were going to support (Kafka, Observatorium, etc) then they would have a natural place to land without totally polluting the top-level API.
Not looking to merge this yet (needs more work, testing, backward compatibility added, smoketest updates, etc), but would like feedback on the general approach and API.

You'll also notice the CRD is not only more verbose, but actually starts to cover a lot more parameters that we were using, but were not actually covered in our existing CRD, so that'll be a big change even beyond this. Unfortunately, there is currently no current methods to generate the CRD from the Ansible role, unlike in a Golang operator where you can decorate the code, and the CRDs and such are auto-generated for you.
We'll need to be careful to make sure we keep the CRD up to date manually as we add / change functionality.
I suspect we want to bump the API version. I'm considering a v1beta1 bump from v1alpha1.

An example CR using the new formatting for reference. Note that the servicetelemetry_vars is an internal construct and not exposed to the API itself.
apiVersion: infra.watch/v1alpha1
kind: ServiceTelemetry
metadata:
  name: stf-default
  namespace: service-telemetry
spec:
  events:
    enabled: false
  graphing:
    enabled: true
  highAvailability:
    enabled: false
  metrics:
    enabled: true
  storage:
    ephemeral:
      enabled: true

Thank you for the PR.
TBH, I am twofold here.
First of all, the proposal makes most things much more readable. On the other side, I am having an issue with files like deploy/crds/infra.watch_servicetelemetrys_crd.yaml (the proposed changes). Level of indents are not good to identify (you can see clearly something is indented), but in most cases, and especially when code blocks are getting longer, it is hard to see the context, or to find when a piece is misaligned.
If we can find a way to work around that issue, the proposal would be perfect.

Thank you for the PR.
TBH, I am twofold here.
First of all, the proposal makes most things much more readable. On the other side, I am having an issue with files like deploy/crds/infra.watch_servicetelemetrys_crd.yaml (the proposed changes). Level of indents are not good to identify (you can see clearly something is indented), but in most cases, and especially when code blocks are getting longer, it is hard to see the context, or to find when a piece is misaligned.
If we can find a way to work around that issue, the proposal would be perfect.

I'm not really sure I follow the issue, here can you elaborate?
The layout of the CRD is basically a pattern we need to follow, and there isn't anything I can do about that. Everything follows this pattern:
<parameter>:
  description: <desc>
  properties:
    <parameter>:
      description: <desc>
      type: <type>

If you look at other CRDs, it will follow the same configuration. You can't change how it is represented.

Yes, it is clear and a shortcoming of yaml.

Yes, it is clear and a shortcoming of yaml.

Got it. I'll assume then no issues :)

I sympathize with @mrunge 's comments about getting lost in the CRD YAML. I find them absolutely ridiculous to read, but I don't think that's a problem we can really solve here.
Using a development environment with good YAML support can really help. I've seen screenshots of even better setups (details unknown to me) but personally I use https://marketplace.visualstudio.com/items?itemName=redhat.vscode-yaml  and it provides the context of the node your cursor is on in the header of the editor window like this:

It's still a bit brutal, but at least I'm not spending all my time scrolling up and down trying to figure out where I am.

/runtest

/runtest

Looking at the collectors section in the clouds dictionary, I wonder if we could replace the following?

collector_type for source
subscription_address for address

Going back to the CRD readability issues, I even more sympathize after going through the exercise of building the CRD file out for real.
A trick I did learn though is that you are going to always add a type: object after a properties header.
The pattern will basically go:
<my_object>:
  description: Something about this object
  properties:
    <something_nested>
  type: object

Every object pretty much follows this pattern. From there you can start nesting your other objects. If you have a flat nested dictionary, it will look like this:
metrics:
  description: Some sweet metrics configuration
  properties:
  type: object

I will then go back and add my nested dictionary items. Note that your new parameters go between the properties and type parameters. If you look for this pattern it will make reading the CRD easier.
metrics:
  description: Some sweet metrics configuration
  properties:
    enabled:
      description: Enable those metrics
      type: boolean
  type: object

I can just add more parameters now:
metrics:
  description: Some sweet metrics configuration
  properties:
    enabled:
      description: Enable those metrics
      type: boolean
    storage:
      description: Storage stuff
      properties:
       further_nested_property: ...
      --> OOOOOO!!!! I saw a properties! Don't forget the type: object! See next line
      type: object
  type: object

The lists objects are a bit special but not too much harder.
We start with our basic object:
clouds:
  description: Some sweet metrics configuration
  properties:

  type: object

Except we're going to replace properties with items. And we're going to replace object with array.
clouds:
  description: Some sweet metrics configuration
  items:

  type: array

And now we're going to build out the structure allowing a list of objects.
clouds:
  description: Some sweet metrics configuration
  items:
    properties:

    type: object
  type: array

Now add your properties for the object.
clouds:
  description: Some sweet metrics configuration
  items:
    properties:
      name:
        description: Name of the cloud
        type: string
    type: object
  type: array

question Did you mean to remove this file? AFAICT it's still referenced here: https://github.com/infrawatch/service-telemetry-operator/blob/master/build/test-local/start.sh#L2 but it's been awhile since I did local testing of this code, I'm not sure if maybe that script is also deprecated?

I did mean to remove it, but I did forget to look for other references to the file. I'm not sure this even works any more (or is really meant to be used this way).
I now use the build-push-delete method somewhat documented in the docs/development.md and have pretty much never used the local operator method.
I will also delete that script unless someone else happens to be using this in their development workflow (I assume not since I'm pretty sure I was the one that created this).

I now use the build-push-delete method somewhat documented in the docs/development.md and have pretty much never used the local operator method.

That's what I do to. I remember running the local operator in the very beginning, but haven't touched it in awhile. Good to drop this script and the template.

I know this PR is getting a bit out of hand, but if I'm going to do a major refactor I might as well drop things that are likely to be more confusing than useful.

/runtest

/runtest

/runtest

I gave this another once-over and haven't found anything new to comment on. This PR is hard to meaningfully review at this point; let's get it merged ASAP and address any deficiencies in smaller more digestible chunks.

Great thanks for looking this over again. It's definitely a significantly larger refactor than I had been expecting...
I'm going to do one final build/test locally removing this merge parameter to the k8s module to make sure it's not necessary, and then I'll merge this down and get an upstream release candidate created.


Debugging ASAN issues on CI - token policy

This PR is used to reproduce the known ASAN issue on CI. The reproduction on local machine was giving no results.

We fixed the ASan issue, so this PR is no longer relevant.


Update docs on push to main

Update docs on push to main.
This action runs doxygen on the project and publishes the result to a branch called "gh-pages". This branch will then be used to publish API docs for this project.
Signed-off-by: Alan Jowett<EMAIL_ADDRESS>

Coverage decreased (-2.7%) to 80.44% when pulling 9910d60bb6990e3b351fca10d2f094e92d97fd24 on Alan-Jowett:doxygen into 9804aef8c3a0e44c3582cc2a98873e5b381dfb29 on iovisor:main.

See: https://alan-jowett.github.io/ubpf/ for an example of what it would look like.


Add an option to ask users to change their passwords on the Edit User Account page

Feature Description
Our team does not allow users to register themselves ，the administrator assigns the initial user account and password instead.
However, when some users log in for the first time, they change their passwords to the original ones, which reduces login security because the initial passwords of all users are the same .
I wish the Gitea team to provide an OPTION  on the Edit User Account page to prompt the user to change his password when the next time he login. Once he does, this option will be automatically unchecked the next time the administrator enters the current user's account management page.  the administrator can determine whether the user has changed the password based on this OPTION check status. the new password cannot be the same as the previous one.
Screenshots

I think you mean require user to change password in next login? And when next time user login and changed their password, this option will be updated as unchecked.

I think you mean require user to change password in next login? And when next time user login and changed their password, this option will be updated as unchecked.

exactly yes

This seems to of existed in a previous Gitea version based on the FAQ. It makes it seem like the Admin could previously force the user to change it on next login already like this and not just from CLI commands.

I'm surprised this hasn't been reported before, those docs have been wrong since I wrote them back in 1.10 :see_no_evil:
https://github.com/go-gitea/gitea/pull/8883
https://github.com/go-gitea/gitea/blob/4d876ab1c8f2bca3bdbfa9091821267ade938bf3/routers/admin/users.go#L210-L226
https://github.com/go-gitea/gitea/blob/4d876ab1c8f2bca3bdbfa9091821267ade938bf3/templates/admin/user/edit.tmpl#L68-L105
I will update them for now, though I think this is still a valid enhancement request!


Make it possible to use this without a context manager

We currently use mock.__enter__() in the VWS Python doctest setup, and that looks messy. Make a public wrapper to that and use it there.

Look at what other mocks do - e.g. Moto

contextlib provides a good enough option:
import contextlib

 stack = contextlib.ExitStack()
 stack.enter_context(mock)

...

stack.close()


style: update adv_2022_10

Codecov Report

Merging #35 (c5b213b) into master (00d4c1e) will not change coverage.
The diff coverage is 100.00%.

@@            Coverage Diff            @@
##            master       #35   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files           11        11
  Lines          473       474    +1
  Branches        87        87
=========================================
+ Hits           473       474    +1

Impacted Files
Coverage Δ

solutions/adv_2022_10.py
100.00% <100.00%> (ø)

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


Better Insults

Added all insults i have running on my bot

No lol. We have custom reactions in the works.


Monkeypatch webrat for Nokogiri compatibility

This is an attempt to address the Webrat / Nokogiri compatibility issue discussed here.  It monkeypatches Webrat to explicitly add the old default arguments to the invocation of to_xpath.
This PR picked an unrelated failure in Rails main specs because of this commit, which removes the body content from a redirect response.  Devise has tests that check that body content, and those tests are now failing.  I would suggest we remove those specs, and I'm happy to put up a PR to do so.  Just let me know if such a PR is desired.
UPDATE: As the unrelated failure is now fixed in main, I've rebased this PR and it now exclusively addresses the Webrat issue.
cc: @carlosantoniodasilva, @flavorjones

Merged in 90f46bac373416d6ad4b3541e6ca144b1f7ee527, appreciate it!
Side note: I really need to get rid of webrat at some point, indeed. :)


Profile C++ code

The problem
We need to understand where are the bottlenecks in the C++ implementation of the evolution.
Possible solution
The best approach would probably be just to comment the findings in this issue. If some pieces of the code are surprisingly slow, it would be helpful to create separate issues for fixing that, and reference them here.

Sample results (single-input rule):

Other runs show relatively similar timings (as a percentage of running time).
A surprisingly large percent of the total comes from match ordering, which is something that can most likely be improved on.

So, inserting and deleting matches takes 3/4 of the time. That's good to know. It kind of makes sense though because for single-input rules, the matching itself is instantaneous.
It seems also to imply that the random evolution should run 4 times faster.

Tools
I decided to use perf. It requires usage of the following kernel parameters:
sudo sh -c 'echo kernel.perf_event_paranoid=1 >> /etc/sysctl.d/99-perf.conf'
sudo sh -c 'echo kernel.kptr_restrict=0 >> /etc/sysctl.d/99-perf.conf'

It is run like this:
perf record --freq=997 --call-graph dwarf -q -o /tmp/perf executable
perf script -i /tmp/perf > perf.txt

The /tmp/perf file is binary, and the perf.txt file is text, which is required for reading from by some tools.
There are many GUIs for perf, but Firefox actually has a good one that can be used to easily share logs.
Testing Sets
We already have a specific set of rules/expressions to test performance with, so those will be used.
Single
Permalink
Medium
Permalink
Sequential
Permalink
Large
Permalink
Exponential
Permalink
CA Emulator
Permalink (this one may take a while to open, and will max out your CPU while loading)
Findings
Consistently, std::set and std::map operations take a significant amount of time, due to costly OrderingSpec functions. These calls should be minimized. Perhaps some sort of caching would help as well. Every comparison recreates new ordered expressions.

Consistently, std::set and std::map operations take a significant amount of time, due to costly OrderingSpec functions. These calls should be minimized. Perhaps some sort of caching would help as well. Every comparison recreates new ordered expressions

As can be seen in #437, reducing std::map operations significantly increased performance.
I implemented OrderingSpec expressions caching to try to reduce comparison calculations, but even with a 95%+ cache hit rate, performance was actually worse, due to cache operations actually taking more time than just computing the ordered expressions.


Preventing a crash due to integer bug

Thank you for your input with this project. I wouldn't spend too much time on this because I have been working on a faster implementation.
Many Thanks
James


Revise advice about network plugin compatibility

Add a clarification that CNI has been supported from earliest version, not just the current version.

/retitle Revise advice about network plugin compatibility

I prefer the first suggestion as it was explicit.


Resolve dependencies using container

@EgorGruzdev I have copied your idea from #124 but I am using the trait directly. I have also added support for both Workflow and Activity execute method. If you could please test this out and tell me what you think that would be great!

At first I wanted to do the same, but I was confused by the different space of using this trait, if it had been allocated in Support namespace, then it would not have caused any questions.
There was also an attempt to avoid using app(), resolve(), App::make(), as a result, there is a call to App::make() in __construct(), that's why I used handle() to automatically pull up the class.
Thank you.

Everything works on the functionality that I use at the moment.
Thank you.

@EgorGruzdev https://github.com/laravel-workflow/laravel-workflow/releases/tag/1.0.9


Add support for Osram CLA60TW

Add quirk for this device: https://www.amazon.de/gp/product/B074PZKX4K
Device signature:
{
  "node_descriptor": "NodeDescriptor(logical_type=<LogicalType.Router: 1>, complex_descriptor_available=0, user_descriptor_available=0, reserved=0, aps_flags=0, frequency_band=<FrequencyBand.Freq2400MHz: 8>, mac_capability_flags=<MACCapabilityFlags.AllocateAddress|RxOnWhenIdle|MainsPowered|FullFunctionDevice: 142>, manufacturer_code=48042, maximum_buffer_size=64, maximum_incoming_transfer_size=0, server_mask=0, maximum_outgoing_transfer_size=0, descriptor_capability_field=<DescriptorCapability.ExtendedSimpleDescriptorListAvailable|ExtendedActiveEndpointListAvailable: 3>, *allocate_address=True, *is_alternate_pan_coordinator=False, *is_coordinator=False, *is_end_device=False, *is_full_function_device=True, *is_mains_powered=True, *is_receiver_on_when_idle=True, *is_router=True, *is_security_capable=False)",
  "endpoints": {
    "3": {
      "profile_id": 49246,
      "device_type": "0x0220",
      "in_clusters": [
        "0x0000",
        "0x0003",
        "0x0004",
        "0x0005",
        "0x0006",
        "0x0008",
        "0x0300",
        "0x1000",
        "0xfc0f"
      ],
      "out_clusters": [
        "0x0019"
      ]
    }
  },
  "manufacturer": "OSRAM",
  "model": "CLA60 TW OSRAM",
  "class": "cla60tw.CLA60TW"
}

Codecov Report

Merging #1388 (ba75448) into dev (f9e25f4) will increase coverage by 0.03%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##              dev    #1388      +/-   ##
==========================================
+ Coverage   81.06%   81.09%   +0.03%
==========================================
  Files         218      219       +1
  Lines        6093     6103      +10
==========================================
+ Hits         4939     4949      +10
  Misses       1154     1154

Impacted Files
Coverage Δ

zhaquirks/osram/cla60tw.py
100.00% <100.00%> (ø)

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 f9e25f4...ba75448. Read the comment docs.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

10 of 10 (100.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.03%) to 81.091%

Totals

Change from base Build<PHONE_NUMBER>:
0.03%

Covered Lines:
4949

Relevant Lines:
6103

💛  - Coveralls

The quirk basically works but sometimes this error appears:
Failed to parse broken GeneralFrame(header=CommandHeader(id=0x9F, subsystem=Subsystem.ZDO, type=CommandType.AREQ), data=b'\xD4\x9B\x84\x03\x9B') as <class 'zigpy_znp.types.commands.ZDO.ParentAnnceRsp.Callback'>


feat(FormDescription): it is now navy

Overview
Deleted one line of css to have FormDescriptions default to navy.

PR Checklist

[ ] Related to designs:
[ ] Related to JIRA ticket: ABC-123
[ ] I have run this code to verify it works
[ ] This PR includes unit tests for the code change

🚀 Styleguide deploy preview ready!https://6059169c7e4ec4008f9318a5--gamut-preview.netlify.appDeploy Logs

📬Published Alpha Packages:@codecademy/gamut-kit@0.2.28-alpha.bccc8b.0@codecademy/gamut-labs@13.0.4-alpha.bccc8b.0@codecademy/gamut@29.0.2-alpha.bccc8b.0@codecademy/styleguide@33.0.2-alpha.bccc8b.0


(Re)adding initial rebalancing changes

Still needs tests but has a few updates to address constructor and removal of a sICX Receivables VarDB entry that was previously only removed on update. If we see a need to add back the removal, please let me know.

I'm trying to figure out the "why" behind the way admin and governance states/properties were setup in the original rebalancing contract and why so few "get" methods were included in the original. Not sure the best place to ask the question - basically it's odd so I made some tweaks to bring it inline with other contracts... but I can match it 1 for 1 if you'd prefer.
In the original python code - on_install is setting admin to governance address which is passed in. I confirmed that governance was in fact what was called on the initial creation of the contract. But it sets admin to the governance value passed in and there's no way to set admin. So all the checks in the original for owner are logically actually being checked against governance as far as I can tell. Also, there are essentially no "gets" for any of these state values. It's like we wanted them secret even though other contracts expose them (more or less). Note: I'm not suggesting we change the admin value as part of the migration... just don't understand why it was set to governance and stuck that way.
In migrating, I standardized it in the pull request with other java contracts... so that admin can be set by governance, governance passed in on constructor sets governance and all the state items are gettable. But, like I said, not a strict translation though it should work as the original with the only real exception that admin isn't defaulted on install. But now it can be set. (Note: Loans, for example, sets Admin to Owner on install)
Do you want them strictly like the original in terms of gets and on_install? Do we want it standardized but maybe keep the set admin on install too still just for consistency?
Note: the very first contract call made was to setGovernance since it was not originally initialized :)

You can add 'gets' as per requirement. There is no secrets to keep in contracts. Even if there are no get methods, analyzing blockchain data will easily provide the db values.

All existing tests migrated and pass. I noticed that there is not currently a negative rebalance and I've not tried to create such a scenario (yet).

All existing tests migrated and pass. I noticed that there is not currently a negative rebalance and I've not tried to create such a scenario (yet).

Would be nice with test to cover all the cases of re balancing
All 4 paths available here:
  if (tokenAmount.compareTo(BigInteger.ZERO) == 1) {
         if (higher) {
             Context.call(loansScore, "raisePrice", tokenAmount);
         }
     }
     else {
         if (lower) {
             Context.call(loansScore, "lowerPrice", tokenAmount.abs());
         }
     }

@addouglas  If want some help with evaluating the test you can add jacoo test coverage, so you can see what code you cover int the unit tests. you can see it in the loansContract rewrite or on the bnusd pull request i showed how to add it.

@nightowl121 You taking over this review now? Not the best idea if i review my own changes :slightly_smiling_face:
Overall i think this contracts is largely ready. No integration tests done but deployment works fine. But as we have said previously it might be better to hold off on integration Testing until we decided on a structure.
Could add a score interface now but just keep it in the Rebalancing directory for now, or do you want to wait with adding interfaces for contracts until later?

Sure @AntonAndell I will take a look from here.

@nightowl121 really like the addition of score-lib and test-lib! we are starting to get some infrastructure in place. How soon do you think we can get it to master? so other devs can use and contribute to it?
Do you need any help here or on the Staking contracts? Since those contain most of the infrastructure it would ease development on other contracts to get it in asap.

@nightowl121 really like the addition of score-lib and test-lib! we are starting to get some infrastructure in place. How soon do you think we can get it to master? so other devs can use and contribute to it?
Do you need any help here or on the Staking contracts? Since those contain most of the infrastructure it would ease development on other contracts to get it in asap.

Rebalancing is ready to be merged to master.
I would definitely need help in having robust integration test framework, starting from Staking contract.

Sweet then lets merge it soon. I can do a quick review of you recent changes tonight and perhaps merge after that?
I can start looking a bit on the staking contract as well and start to contribute to the infrastructure there as soon as i've done the first draft of the rewards contract. What do you you feel we are missing currently in the staking contracts and what is missing in the integration test framework.

I would consider integration test framework as done if we could run a single command and run all the integration tests automatically. Currently the integration tests is not complete in that regards. It can be run manually though.
Once we have automation in that, we could apply CI for running integration tests in local gochain node. We could run one local gochain node and run our integration tests against it.

Sweet then lets merge it soon. I can do a quick review of you recent changes tonight and perhaps merge after that?
I can start looking a bit on the staking contract as well and start to contribute to the infrastructure there as soon as i've done the first draft of the rewards contract. What do you you feel we are missing currently in the staking contracts and what is missing in the integration test framework.

Rebalancing is ready for merge from my side, you may take a look. @AntonAndell

It looks good, but adding a scoreclient interface might be good. I can add and push, it should be quick to write

It looks good, but adding a scoreclient interface might be good. I can add and push, it should be quick to write

Yeah, Please go ahead.

Done, check that and if u don't see anything super weird, merge it!
checked that all tests pass and deployment to my local node works

Done, check that and if u don't see anything super weird, merge it!
checked that all tests pass and deployment to my local node works

Did you try keeping this compileOnly and annotation processor?

hmm no i can try it. Which one do we want annotation or compileOnly? or do you need both?

Also changed to Impl naming so when creating interfaces the syntax will be a lot more readable

Moved the interface to score-lib.


v0.3.4-alpha browse and start buttons do nothing

On v0.3.4 running on windows 7, I cannot choose a storage location with the browse button. It does not react to clicking it. Also once I filled in the path to my storage location, I click the start button and nothing happens. So I cannot start the driveshare at all. In the previous version 0.3.3 I was able to run driveshare but after it stopped working (my computer was unexpectedly shut down), the next time I opened it, it prefilled the wrong payout address by default which I didn´t notice, so I accidentally started building a new build, and after a short time noticed I was running out of space on my hard disk. This necessitated me deleting all the files of my prior build and starting over. Then when I started building with the right address again, I noticed the shards don´t actually get stored in the directory I had selected: C:/Storj/data, but a new subdirectory was created here: C:\VTRoot\HarddiskVolume2\Storj\data and all the shards where written to that directory instead.

I closed the driveshare-gui and opened it again, after which I was again presented with a prefilled screen with the wrong payout address as in v0.3.3 before. So I substituted with the correct address, and was now able to properly configure all the options and start Driveshare. Interestingly enough, this time it again started building from scratch, but on the actual directory I had specified as storage location.So again I was forced to delete all my shards that were stored in  C:\VTRoot\HarddiskVolume2\Storj\data and now I have to wait for the build to rebuild from the beginning for the second time in one day. So, far from making running driveshare easier, this just wasted most of my day in unnecessarily rebuilding my build twice. It is alpha software so I am not complaining but I hope you can fix this so that people don´t loose their builds accidentally.

@heunland Could you please copy-paste the full log here.

Sorry I cannot recreate the error log now cause I gave up using the GUI and went back to the command prompt method.


Example with multiple objects with actix-web

Howdy! Could I see an example of using this library with actix-web when there are multiple objects? Thanks!

Hello! Take a look at https://github.com/lucperkins/rust-graphql-juniper-actix-diesel-postgres and let me know if that doesn't answer your question. Good luck! 💪


How interface can have declared body ?

public interface IMapFrom
{
void Mapping(Profile profile) => profile.CreateMap(typeof(T), GetType());
}

This is my favourite new thing, it worked really well for what I was trying to accomplish with AutoMapper.
Beginning with C# 8.0 on .NET Core 3.0, you can define an implementation when you declare a member of an interface. Learn more here; https://docs.microsoft.com/en-us/dotnet/csharp/tutorials/default-interface-members-versions.
In this case it means I can add IMapFrom to any DTO and it will automatically be registered with AutoMapper for mapping. If the mapping is completely conventions based, I don't need to do anything else other than add the interface.