feat(dashboard): Auth Management v2

feat(dashboard): Auth Management v2

[x] Creates a new common component Pagination that is abstract enough to handle any pagination needs in our application (e.g. storage, database viewer).
[x] Removes users/ page ([userId].tsx) with configuration settings of the project users in favor  of opening a drawer when clicking on a user (as well as handling old URLs of an application pointing to a user configuration page.) Removes AddUser.tsx file, removes user's assets pertaining to old page.
[x] New dialog types (CREATE_USER, EDIT_USER)
[x] Structure GraphQL files to follow the same convention as components, utils, etc...
[x] Handle edits to user roles.
[x] Parse pagination state from URL (e.g. users/2/ goes to the second page)

 Auth Management v2 preview
https://user-images.githubusercontent.com/20285232/207598023-da551223-7f0b-4d18-8f6a-40a4a50c9d9f.mp4

password input should be of type password.
Error when creating user is not showing anywhere.
Don't show "Unsaved changes" when canceling creating a new user.
Use human readable "ago" text in the list. Use "yyyy-mm-dd hh:mm:ss" in detail.
Remove "Sign In Methods" column
Remove auto-generated avatar with letters. Use the actual value from the database.
Space between avatar and name/email is too short. It should be 16px.
Closing unsaved detail form should ask to discard.
How are you able to render "Password is set"? We should not be able to know this because we should not query passwordHash from the database.
Either we render all sign-in methods and mark what sign-in methods the user uses using the "active" chip. Or we render what sign-in methods the user has active and don't render the "active" chip.
sign-in methods are not left-aligned.
Default role select shows a gray area.
Cancel and save buttons should be sticky in the bottom.
"Verified" text should not be bold.
Having 30 users shows this on the first page: 1-25 of 50 users.

From all of these, the following are done:
Done:
[x] password input should be of type password.
[x] Don't show "Unsaved changes" when canceling creating a new user.
[x] Use human readable "ago" text in the list. Use "yyyy-mm-dd hh:mm:ss" in detail.
[x] Remove "Sign In Methods" column
[x] Remove auto-generated avatar with letters. Use the actual value from the database.
[x] Space between avatar and name/email is too short. It should be 16px.
[x] Closing unsaved detail form should ask to discard.
[x] Either we render all sign-in methods and mark what sign-in methods the user uses using the "active" chip. Or we render what sign-in methods the user has active and don't render the "active" chip.
[x] sign-in methods are not left-aligned.
[x] Cancel and save buttons should be sticky in the bottom.
[x] Having 30 users shows this on the first page: 1-25 of 50 users.
[x] How are you able to render "Password is set"? We should not be able to know this because we should not query passwordHash from the database.
[x] Default role select shows a gray area.
Missing:

[ ]  Error when creating user is not showing anywhere.

Not implemented
> "Verified" text should not be bold.
This one is easy to fix, but I wonder if we should apply the same logic from what Szilard mentioned (https://github.com/nhost/nhost/pull/1382#discussion_r1053151605) right now the default class for the CheckBox is a bold text, so we must both make sure that if we add it as a default class name (that the other checkbox we're using we want the bold text) and if we do it as a one-off it looks different from all of our other checkboxes (similar to the Dialog & InputLabel). @szilarddoro wdyt?

[x]  Track the ban state of a user in the drawer
[x]  Button instead of an IconButton for changing a user's password
[x]   Check the v1 route for signing up users
[x]  Close the drawer after deleting a user
[x]  Error handling for creating users (Alert on top of the create button)
[x]  Remove pagination from users not found
[x]  Pagination through URL state
[x]  show banned users in the users table

Just pushed the latest changes addressing Johan's review comments:

[x]  Password input field should be of type password (change password)
[x]  No need to ask for confirmation when canceling changing password.
[x]  Signed up at in the users list shows "-", but should show "x [unit] ago".
[x]  Banning and then unbanning a user is not working. The second operation does not go through correctly.
[x]  Changing password is not working (wasn't this working before??)

This was missing the correct GQL client with the user's app config details, so it was probably working before since the handler was moved to the form itself.

[x]  No error showing when changing the password is not working

Also added logic to check the confirm password which was missing.  .oneOf([Yup.ref('password')], 'Passwords do not match')

Addressed the code review comments by Nuno and Eugene's:

[x]   Closing the dialog & re-fetching the users table after creating a user.
[x]  Change icon colors and remove shadow in the user's table.

I've moved some the handlers one level down (now instead of passing the handlers to the payload, we just run an function after a successful submit) as suggested by Szilard this helps remove some unnecessary prop drilling.
Also added:

[x]   Handling odd pages in the URL (e.g. ?page=10023 goes to the first page.)
[x]   Handling users?user= queries in the URL (we show the loader while we search for the user and display it on the users table. We could also run a side effect to open the drawer if the user is found 🤔 )

A few remarks:

I think we should increase the spacing between the header that contains the filter bar and the table, because it looks weird when there are no users, and also when there are users. The table header is just too close to the filter bar IMO.
The avatars look very weird now. It's kind of like there should be something, but the network request failed for some reason. This can be seen as a faulty UI.

Codecov Report

Merging #1382 (3116562) into main (6ef340d) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main    #1382   +/-   ##
=======================================
  Coverage   81.39%   81.39%
=======================================
  Files          83       83
  Lines        9236     9236
  Branches      473      473
=======================================
  Hits         7518     7518
  Misses       1718     1718

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

I think the gap between the label and the icon is incorrect here.

I mentioned this issue on Discord today. Once this is fixed, we can merge IMO.


Change required annotation as per new syntax

Change "@required" to "required" as per new dart syntax

Check for more info
https://dart.dev/null-safety/faq

Merged in https://github.com/quicktype/quicktype/pull/2013


Add .circleci/config.yml

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


LIVEBOOK_FIPS link in README leads to 404

It is unclear from the README what LIVEBOOK_FIPS controls. The link leads to this page which is a 404.

@Munksgaard the docs will be updated on the next release. In the meantime you can view it on GitHub: https://github.com/livebook-dev/livebook/blob/main/docs/deployment/fips.md.
FTR in the readme, we could point to docs files directly on GitHub, but the environment variables list we reuse for the CLI docs, where relative GitHub URLs wouldn't work.


ValueError: invalid literal for int() with base 10

Hi,
I have been running prometheus_speedtest successfully for about 3 months now (k3s on rpi4). Since ~4 days, I get the following stacktrace
2021-04-09T07:42:59.803021968Z stderr F I0409 07:42:59.800787<PHONE_NUMBER>05256 prometheus_speedtest.py:134] GET /probe HTTP/1.1 - ('<IP_ADDRESS>', 36952)
--
  | 2021-04-09T07:42:59.803116225Z stderr F I0409 07:42:59.802088<PHONE_NUMBER>05256 prometheus_speedtest.py:58] Performing Speedtest...
  | 2021-04-09T07:47:59.804627911Z stderr F ----------------------------------------
  | 2021-04-09T07:47:59.804765482Z stderr F Exception happened during processing of request from ('<IP_ADDRESS>', 36952)
  | 2021-04-09T07:47:59.804811296Z stderr F Traceback (most recent call last):
  | 2021-04-09T07:47:59.804841943Z stderr F   File "/usr/local/lib/python3.7/socketserver.py", line 650, in process_request_thread
  | 2021-04-09T07:47:59.804874016Z stderr F     self.finish_request(request, client_address)
  | 2021-04-09T07:47:59.804904886Z stderr F   File "/usr/local/lib/python3.7/socketserver.py", line 360, in finish_request
  | 2021-04-09T07:47:59.804957866Z stderr F     self.RequestHandlerClass(request, client_address, self)
  | 2021-04-09T07:47:59.804996588Z stderr F   File "/prometheus_speedtest/prometheus_speedtest.py", line 125, in __init__
  | 2021-04-09T07:47:59.805025383Z stderr F     super().__init__(directory=static_directory, *args, **kwargs)
  | 2021-04-09T07:47:59.80505779Z stderr F   File "/usr/local/lib/python3.7/http/server.py", line 646, in __init__
  | 2021-04-09T07:47:59.805086938Z stderr F     super().__init__(*args, **kwargs)
  | 2021-04-09T07:47:59.805116141Z stderr F   File "/usr/local/lib/python3.7/socketserver.py", line 720, in __init__
  | 2021-04-09T07:47:59.80514377Z stderr F     self.handle()
  | 2021-04-09T07:47:59.80517151Z stderr F   File "/usr/local/lib/python3.7/http/server.py", line 426, in handle
  | 2021-04-09T07:47:59.805198787Z stderr F     self.handle_one_request()
  | 2021-04-09T07:47:59.805231175Z stderr F   File "/usr/local/lib/python3.7/http/server.py", line 414, in handle_one_request
  | 2021-04-09T07:47:59.805259397Z stderr F     method()
  | 2021-04-09T07:47:59.805286989Z stderr F   File "/prometheus_speedtest/prometheus_speedtest.py", line 137, in do_GET
  | 2021-04-09T07:47:59.805314395Z stderr F     prometheus_client.MetricsHandler.do_GET(self)
  | 2021-04-09T07:47:59.805345987Z stderr F   File "/usr/local/lib/python3.7/site-packages/prometheus_client/exposition.py", line 169, in do_GET
  | 2021-04-09T07:47:59.805378413Z stderr F     status, header, output = _bake_output(registry, accept_header, params)
  | 2021-04-09T07:47:59.805406356Z stderr F   File "/usr/local/lib/python3.7/site-packages/prometheus_client/exposition.py", line 40, in _bake_output
  | 2021-04-09T07:47:59.805436504Z stderr F     output = encoder(registry)
  | 2021-04-09T07:47:59.805469299Z stderr F   File "/usr/local/lib/python3.7/site-packages/prometheus_client/openmetrics/exposition.py", line 14, in generate_latest
  | 2021-04-09T07:47:59.805497558Z stderr F     for metric in registry.collect():
  | 2021-04-09T07:47:59.805525002Z stderr F   File "/usr/local/lib/python3.7/site-packages/prometheus_client/registry.py", line 82, in collect
  | 2021-04-09T07:47:59.805581575Z stderr F     for metric in collector.collect():
  | 2021-04-09T07:47:59.805611333Z stderr F   File "/prometheus_speedtest/prometheus_speedtest.py", line 92, in collect
  | 2021-04-09T07:47:59.805690406Z stderr F     results = self._tester.test()
  | 2021-04-09T07:47:59.805721146Z stderr F   File "/prometheus_speedtest/prometheus_speedtest.py", line 60, in test
  | 2021-04-09T07:47:59.805747923Z stderr F     timeout=self._timeout)
  | 2021-04-09T07:47:59.805774478Z stderr F   File "/usr/local/lib/python3.7/site-packages/speedtest.py", line 1091, in __init__
  | 2021-04-09T07:47:59.805799774Z stderr F     self.get_config()
  | 2021-04-09T07:47:59.805825717Z stderr F   File "/usr/local/lib/python3.7/site-packages/speedtest.py", line 1174, in get_config
  | 2021-04-09T07:47:59.805851513Z stderr F     map(int, server_config['ignoreids'].split(','))
  | 2021-04-09T07:47:59.805877142Z stderr F ValueError: invalid literal for int() with base 10: ''
  | 2021-04-09T07:47:59.805902938Z stderr F ----------------------------------------

I've cloned the sources, but I'm no python developer and the fix is not obvious to me (else I would have made a PR).

Ditto, I just started getting this a few days ago. I think the spec for the return changed.

Yep, the same for me - exactly the same stack trace with ValueError: invalid literal for int() with base 10: ''.

This is due to an issue with the dependency speedtest-cli (fixed in https://github.com/sivel/speedtest-cli/commit/cadc68b5aef20f28648072cf07a8f155639b81dd).
I have proposed a fix here: https://github.com/jeanralphaviles/prometheus_speedtest/pull/41

@jeanralphaviles Can you please pull the fix in?

Same error here

Same issue here

I've forked and published new docker image here:
https://hub.docker.com/r/dmnt3d/prometheus_speedtest

I've forked and published new docker image here:
https://hub.docker.com/r/dmnt3d/prometheus_speedtest

Could you build an ARM version ? I run speedtest from rpi4

@dmnt3d I just tried your image and I get the exact same error.

what's the error you getting?
are you using stand-alone docker or kubernetes?
If it's kubernetes, you need you specify AlwaysPullImage yes to make sure
its pulling the updated image.
On Tue, Apr 13, 2021 at 2:00 AM David Langerman | Onyx Zero Software <
@.***> wrote:

@dmnt3d https://github.com/dmnt3d I just tried your image and I get the
exact same error.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/jeanralphaviles/prometheus_speedtest/issues/40#issuecomment-818012080,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ACENRVMW2EQ3N3ZKJECIEV3TIMYLZANCNFSM42UPNQ5A
.

--
live in YOUR dreams.. g3t pwn3d in M1N3

what's the error you getting? are you using stand-alone docker or kubernetes? If it's kubernetes, you need you specify AlwaysPullImage yes to make sure its pulling the updated image.
…

I can confirm the fix provided by @dmnt3d is working correctly - no sign of any issue since I applied it to my k3s cluster, 2 days ago

Confirmed the @dmnt3d fork is working for me as well. thanks!

what's the error you getting? are you using stand-alone docker or kubernetes? If it's kubernetes, you need you specify AlwaysPullImage yes to make sure its pulling the updated image.

@dmnt3d  Yeah this was my mistake I was pulling the old image. Works great, thank you!

I've forked and published new docker image here:
https://hub.docker.com/r/dmnt3d/prometheus_speedtest

ARMv7/64 builds are available here: https://hub.docker.com/repository/registry-1.docker.io/sebpiller/prometheus_speedtest/tags

thank you for providing the arm builds, here is a link that does not require docker hub sign in: https://hub.docker.com/r/sebpiller/prometheus_speedtest

Sorry for the delays all. stuertz@ fixed this with #39. I'm working on getting a new docker release out but I'm running into an unrelated issue now.

I've released a new linux/amd64 image. I've switched linux/arm64 and linux/arm/v7 to Debian to address a pip install problem, bu now they're having issues with apt-get. Still working on this.

Got the other two packages built. For the record, I had to run this command for my multi-architecture builds to work.


Add code quality checks

Copied all files directly from the template, currently without modifications

I used https://simian.quandarypeak.com/docs/ and https://documentation.scitools.com/html/understand/wwhelp/wwhimpl/js/html/wwhelp.htm for reference for those curious


#9: added database support using Hibernate

This issue aims to add database support to Vital.
It utilizes the Hibernate Framework to work with OOP in DB.
It aims to implement the same Structure as in the Spring Framework.
Repository -> Has DB access methods
Service -> More complex operations with fetched DB data from repository

Alrighty then, im gonna merge this PR!


is that possible do not override my own transform when i dynamically add an animate to my dom

is that possible do not override my own transform when i dynamically add an animate to my dom
for example
my element has transform effect as below
transform: translate(0px, 0px) rotate(0deg) rotateX(0deg) rotateY(0deg) scale(1);

when i add animate effect of animate.css
they will work together but not override

Nope, it's impossible because that's the way CSS works. A simple workaround is to add the element you're animating to a container (like a div) and add the animated classes to the container.
Like:

thx, it work as u say

Closing this as it's solved.


analytics.identify sends traits through context when userId is null (version 1.53.0)

On version 1.53.0, I tested with a client the following call:
analytics.identify(null, {
   prop1: 1,
   prop2: "2"
});

The properties will go to context payload in Segment, instead of traits.
The problem doesn't happen in version 1.52.0. I advised the client to downgrade the library.

Sore, I'm unable to repro this.

Hi @silesky. We got to reproduce also in 1.52.0. The customer is not using userId, but another column called CPF (it's like the SSN for Brazil):


This is Fantastic

Just wanted to say this (and all your other voxel libs) are fantastic! I've written this algorithm in a half dozen languages including Rust, and this is by far the cleanest impl I've ever seen. Many kudos to you and any other authors involved.

Thanks for the kind words!


$SYS

Do you have idea when are you going to implement $SYS ?

Hi,
this has no prio at the moment and can be also implemented by the user. But I am considering to implement an extension which can be used.
Best regards
Christian

@AngeloBestetti you can use a "private" topic to send sys messages.

I will consider adding a new extension lib for this project but I have no roadmap for this yet.


Clarify documentation around what is retried automatically

Hi, I'm using the Azure.Messaging.ServiceBus package version 7.1.0 from an ASP.NET core 3.1 application.
I'm trying to understand this part of the library documentation, related with exception handling. The point that is not totally clear to me is the one related with the retry policy in case of service timeout errors.
Based on my understanding the Azure.Messaging.ServiceBus library has a built in retry policy, which the developer gets for free and can customize if needed. The default built in retry policy is the one called BasicRetryPolicy. My understanding is that this retry policy is automatically applied by the library when needed. Is that correct ?
The documentation states that each time the library throws an exception of type ServiceBusException having IsTransient = true  the retry policy has already been applied and retries were unsuccessful. A few lines below the documentation states that when the ServiceBusException.Reason is ServiceBusFailureReason.ServiceTimeout the developer should evaluate whether or not to retry the failed operation.
So, my question is: in case of a ServiceBusException  having ex.Reason == ServiceBusFailureReason.ServiceTimeout is the library retry policy automatically applied, or in this case the retry is delegated to the developer ? The source of confusion is that usually timeouts are considered transient errors, so I would expect them to be automatically handled by the library retry policy.
Environment:

Name and version of the Library package used: Azure.Messaging.ServiceBus version 7.1.0
Hosting platform or OS and .NET runtime version (dotnet --info output for .NET Core projects): .NET SDK (reflecting any global.json):
Version:   5.0.302
Commit:    c005824e35

Runtime Environment:
OS Name:     Windows
OS Version:  10.0.19041
OS Platform: Windows
RID:         win10-x64
Base Path:   C:\Program Files\dotnet\sdk\5.0.302\
Host (useful for support):
Version: 5.0.8
Commit:  35964c9215
.NET SDKs installed:
5.0.302 [C:\Program Files\dotnet\sdk]
.NET runtimes installed:
Microsoft.AspNetCore.All 2.1.28 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
Microsoft.AspNetCore.All 2.2.8 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
Microsoft.AspNetCore.App 2.1.28 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 2.2.8 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 3.0.3 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 3.1.17 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 5.0.8 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.NETCore.App 2.1.28 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 2.2.8 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 3.0.3 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 3.1.3 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 3.1.17 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 5.0.8 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.WindowsDesktop.App 3.0.3 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Microsoft.WindowsDesktop.App 3.1.17 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Microsoft.WindowsDesktop.App 5.0.8 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]

IDE and version : Visual Studio Professional 2019 version 16.10.4

Thank you for your feedback.  Tagging and routing to the team best able to assist.

Hi @EnricoMassone,
If you get a ServiceBusException thrown that has IsTransient = true, it means that the exception was already retried up to the MaxTries limit.

/unresolved
Hi @JoshLove-msft thanks for replying.
To summarize: each time the library throws and error deemed to be transient, I have the guarantee that retries has already been applied by the library itself, regardless of the error Reason .
Correct ?

Hello @JoshLove-msft I have another question related with the built in retry policy in Azure.Messaging.ServiceBus
Is there a way to turn-off / disable the built in retry policy ? I mean is there a way to prevent the application of the retry policy in case of transient failures ?

You can set the MaxRetries = 0 so that no retries will occur.

You can set the MaxRetries = 0 so that no retries will occur.

Simple enough, thanks!

@JoshLove-msft Can we do the required doc update for the Oct milestone?

This has been clarified here - https://github.com/Azure/azure-sdk-for-net/blob/main/sdk/servicebus/Azure.Messaging.ServiceBus/TROUBLESHOOTING.md#handle-service-bus-exceptions


Built-in Array types don't open in new inspector

Godot version:
v3.1.dev.calinou.5df9109
OS/device including version:
Windows 10 Home v1803
Issue description:
Any of the built-in array types (Array or Pool*Array) do not open in a new inspector, even if the "Open Resources In New Inspector" option is checked, and even if the array types are added to "Resource Types To Open In New Inspector".
Not being able to open them in a new inspector window prevents me from using "Copy Params" and "Paste Params" on the Array types. This means that, if for example I need to copy over a array of integers, I currently have to do it by hand. That can get tedious quick.
Steps to reproduce:

Set the inspector to always use a new inspector window.
Create a script that exports an Array or any of the Pool*Array types.
Click on them in the inspector and notice that they don't open in a new inspector window.

Minimal reproduction project:
Should be pretty easy to check, just chuck any of the lines from this into a script:
export(Array) var array
export(PoolByteArray) var bytes
export(PoolColorArray) var colors
export(PoolIntArray) var ints
export(PoolRealArray) var reals
export(PoolStringArray) var strings
export(PoolVector2Array) var vector2s
export(PoolVector3Array) var vector3s

And then try to open them in a new inspector window.

I get kicking this to 3.2, but I'd have to disagree with it being an enhancement. They used to open in a new inspector before that whole "Open in same inspector" feature came along -- and now I'm no longer able to open them in a new inspector even when telling the editor to disable that "Open in same inspector" feature. That sounds like a bug to me.

I think this has been fixed in master, can you confirm?

I think this has been fixed in master, can you confirm?

Still not fixed as of 1e2b3ac

Works fine in 41634199. Probably fixed by #29656.

@akien-mga The original problem was that the Array types won't open in a new inspector. They open in the current inspector just fine, just not in a new inspector. Could you see if that's fixed? Because your screenshot only shows it working with the "open in current inspector" option.

Ah my bad, I misread. At the time where you wrote this, "new inspector" was usually used to refer to the new, refactored inspector dock implemented for 3.1.


Supporting ORM 2.5

The Indention fix of the composer.json should ne in a separate PR to make only the version Change part of this PR

:+1: if this could be merged before symfony 2.8 is released

ping @DavidBadura

@smoench What is missing for get this merged? Need some help?
Is this PR working actually?

@Soullivaneuh one test is failing https://travis-ci.org/simplethings/EntityAudit/jobs/88157908#L294
the failure was reported in #31 but the test case seems working in master (orm 2.4)
I think LogRevisionsListener::onFlush() and LogRevisionsListener::postFlush() needs some more improvements.

Problem is related to issue deletion: https://github.com/simplethings/EntityAudit/blob/26134f53b4725a7a14e4e6df365943d7bcc4c390/tests/SimpleThings/Tests/EntityAudit/IssueTest.php#L101
If I comment it, test passes.

Shouldn't you refresh the entity before removing it?
$this->em->refresh($reve);

Hope that solves it

@rvanlaak Nope, this change nothing.

@rvanlaak @Soullivaneuh tests are running green. would you please so kind as to test this branch in your projects. thanks in advance!

Great! Will do that before the end of the year
Op 29 dec. 2015 6:59 p.m. schreef "Simon Mönch"<EMAIL_ADDRESS>
@rvanlaak https://github.com/rvanlaak @Soullivaneuh
https://github.com/Soullivaneuh tests are running green. would you
please so kind as to test this branch in your projects. thanks in advance!
—
Reply to this email directly or view it on GitHub
https://github.com/simplethings/EntityAudit/pull/155#issuecomment-167844289
.

I've tested the branch, and all my tests still pass. Added two minor comments :+1:
Would be great if you could introduce a CHANGELOG.md with the new features?

:+1:


ETA on current master release

There is a requirement for us to have jedis version >= 3.1.0. The current master already supports that but isn't released yet. Could you do this? Any ETA on the next release?

Fixed in release 2.2.0.


Update project-keep-operator.md

Usage of column name pattern matcher is very much needed here to differentiate between project definition and project-keep definition

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

Approved by Slavik
#sign-off

@YaelSchuster: I'm sorry - only the author of this article, @shsagir, can sign off on your changes. But we do have an exception process - if you are on the Microsoft content or product team for this product area, you can ask the PR review team to review and merge it by sending mail to the techdocprs alias.


Accessing history outside of component

How to access ( push) history outside of component, e.g. when without using .props.
I tried to access via routing store e.g.
stores.routing.history.push('/dashboard/');
That doesnt worked. Accessing object created from createBrowserHistory doesnt work too.
So how to properly push to history?

Actually figured out a problem.  Its a leg shooter from a react-router itself.
https://github.com/ReactTraining/react-router/issues/5114


Consumer<Mono> support broken

Describe the bug
When using function that uses implements Supplier<Mono<Someclass>> and  spring-cloud-function-adapter-azure:3.1.3 i found out that the invocations fail on NullPointerException. This is due to a fact that FunctionInvoker  when functions uses reactive types tries to retrieve the input type regardless of the fact that its using Supplier and there is no input type
The error can be found on line 134 of FunctionInvoker
...
if (output instanceof Publisher) {
	if (FunctionTypeUtils.isMono(function.getOutputType())) {
		return (O) this.convertOutputIfNecessary(input, Mono.from((Publisher) output).blockOptional().get());
	}
	else {
		List resultList = new ArrayList<>();
		for (Object resultItem : Flux.from((Publisher) output).toIterable()) {
			if (resultItem instanceof Collection) {
				resultList.addAll((Collection) resultItem);
			}
			else {
//the FunctionTypeUtils.getRawType(function.getInputType()) is what causes the NPE
				if (Collection.class.isAssignableFrom(FunctionTypeUtils.getRawType(function.getInputType()))
						&& !Collection.class.isAssignableFrom(FunctionTypeUtils.getRawType(function.getOutputType()))) {
					return (O) this.convertOutputIfNecessary(input, resultItem);
				}
				else {
					resultList.add(resultItem);
				}
			}
		}
		return (O) this.convertOutputIfNecessary(input, resultList);
	}
}
...

Actually i remember something similar to that vaguely and believe it was fixed. What version of spring-cloud-function are you using?

@olegz

Actually i remember something similar to that vaguely and believe it was fixed. What version of spring-cloud-function are you using?

Closed this one by mistake, versions above

Hi, @olegz I just checked your Commit and I have a comment  You added the condition within the method convertOutputIfNecessary, and you trying to check if the input is null. The null check is in conjunction with an instance of check which covers the null check.
What I want to say is that I'm wondering whether the problem was actually solved because it looks like to be the behaviour was not changed by your last commit.

@bajky you're right, I didn't spend to much time looking into it, but i just did and the fix is coming. In it was already working for Supplier<Mono>, so as you suggested it may have been fixed as part of some other work, but i found few other issues, so the fix is coming shortly


Mutate block-pass arguments

These were previously not recursing and being mutated.
Remove Noop mutator--this behavior (AFAICT) is equivalent to just
being a node in the generic list. The cbase node still gets deleted.

Can you add a test for foo(&method(:bar))?

Can you add a test for foo(&method(:bar))?

I switched the examples to just use the method example.

Looks good to me!


feat: build multi-arch docker images for amd64 and arm64

Summary
Support multi-arch docker images build when version tag push
Some main changes:

base image change to Debian, and put all things in one Dockerfile
keep builder and base target cache in the docker registry as devlake:builder and devlake:base
compile libgit2 from the source in the builder stage.

Does this close any open issues?
Closes #4016
Screenshots
The test on my cloned repository: https://github.com/matrixji/incubator-devlake/actions/runs/3853279219
Other Information
Any other information that is important to this PR.

A tag with 0.15.0-alpha14 was built and pushed.
https://github.com/apache/incubator-devlake/actions/runs/3855754656

Thanks @matrixji , this is magnificent, might solve #3719 as well, we found out that libgit2 doesn't work well on alpine (possibly due to musl), it would panic and cause the whole devlake container to crash 😂
@likyh is verifying if the problem is fixed by using the image built by this PR, and we may merge this PR for v0.15 in order to fix #3719 .
Thanks again, this PoC is likely to save our release. 😁

I test a repo in my local (close VPN, use make dev):

And use docker-compose in my computer and a server, It take 15min:

Thanks @matrixji , this is magnificent, might solve #3719 as well, we found out that libgit2 doesn't work well on alpine (possibly due to musl), it would panic and cause the whole devlake container to crash 😂
@likyh is verifying if the problem is fixed by using the image built by this PR, and we may merge this PR for v0.15 in order to fix #3719 .
Thanks again, this PoC is likely to save our release. 😁

Glad to hear that we can solve another issue, for merging to v0.15, do we need to raise a new PR or cherry-pick on branch release-v0.15  ?

Thanks @matrixji , this is magnificent, might solve #3719 as well, we found out that libgit2 doesn't work well on alpine (possibly due to musl), it would panic and cause the whole devlake container to crash 😂
@likyh is verifying if the problem is fixed by using the image built by this PR, and we may merge this PR for v0.15 in order to fix #3719 .
Thanks again, this PoC is likely to save our release. 😁

Glad to hear that we can solve another issue, for merging to v0.15, do we need to raise a new PR or cherry-pick on branch release-v0.15 ?

I'll cherry-pick with other bug fixs together.


Update/battlegrounds

Updated to add seasons 5 and 6. Seperated tracks so we don't need to duplicate it for each season. Everything works for local


File not found or corrupt

File not found or corrupt for every single thing uploaded

Is this on up1.ca or on your own instance?
If the latter, a few things to check:

Does the api_key match in server.conf and config.js?

does config.js exist (did you move config.js.example to config.js)?

An issue should be created for the fact that an error handler is missing for on upload and it just plows through as if it uploaded and displays you the preview anyway.

That's a good point too - we do need that

@GGMethos is there any other information you can add to this? As we can't reproduce this, we'll be closing this if you don't. Thanks

For my own instance.

Does the api_key match in server.conf and config.js?

does config.js exist (did you move config.js.example to config.js)?

after double checking to make sure these things did in fact work, the problem still occurs.

now after restarting the server five times it seems to be working. odd.

Okay, sounds good - I'll be closing this for now. Feel free to reopen if you find the issue again.


Create -scripts as top-level resource

GlanceAPIs have no reasons to regenerate the -scripts mounted to the Pods. The scripts represent a resource that can be inherited from the top level CR.
This patch let the glance_controller generate this resource: it will be mounted (if Cinder is used as a backend) by all the GlanceAPI pods.

This is the result of my local test where Cinder is set as Glance backend.
[stack@osp-storage-05 glance-operator]$ oc rsh -c glance-api glance-external-api-77865cf879-x4fr5
sh-5.1# ls /usr/local/bin/
container-scripts/  kolla_extend_start  kolla_httpd_setup   kolla_set_configs   kolla_start         uid_gid_manage
sh-5.1# ls /usr/local/bin/container-scripts/
run-on-host

oc describe pod glance-external-api-77865cf879-x4fr5  shows:
    Mounts:
      /dev from dev (rw)
      /etc/iscsi from etc-iscsi (ro)
      /etc/nvme from etc-nvme (rw)
      /lib/modules from lib-modules (ro)
      /run from run (rw)
      /sys from sys (rw)
      /usr/local/bin/container-scripts from scripts (ro)
      /var/lib/config-data/default from config-data (ro)
      /var/lib/config-data/secret-0 from osp-glance-cinder-secret (ro)
      /var/lib/glance from lib-data (rw)
      /var/lib/kolla/config_files/config.json from config-data (ro,path="glance-api-config.json")
      /var/locks/openstack/os-brick from var-locks-brick (rw)
      /var/log/glance from logs (rw)

and
  scripts:
    Type:        Secret (a volume populated by a Secret)
    SecretName:  glance-scripts
    Optional:    false

including the /usr/local/bin/container-scripts from scripts (ro) (same story for the -internal pod).
oc get secrets | grep glance returns:
glance-config-data
glance-external-config-data
glance-internal-config-data
glance-scripts
osp-glance-cinder-secret

where we can see glance-scripts only once (and it's inherited by the other Pods).

/test functional

/test functional

I suspect we have a flaky test when Glance is loaded from sample file. I wasn't able to reproduce but I'll try to work on it in a separated patch.

/test functional


Add multilingual

Progress:

[x] Add translations migration
[x] Add Translatable trait
[x] Add method to get translated value
[x] Add method to translate the whole model
[x] Enable saving directly to the translator
[x] Enable checking if a model is translatable
[x] Create view to input translated values (#873)
[x] Make method to get original model from translator
[x] Make method to create translation
[x] Make method to update translation
[x] Make method to delete translation
[x] Make method to get meta data for translation
[x] ~Make method to get rows that have translations~~ (can come later as a PR)
[x] ~Make method to get rows that does not have translations~~ (can come later as a PR)
[x] Make tests
[x] ~Turn this into a plugin for Voyager~ (Cancelled)

Setup:
In order to use this multilingual, you must set some extra languages in the configuration. It will not work where there are only the default language.
Then you must ensure that the models you wish to use the multilingual support for have the TCG\Voyager\Translatable trait.
Along with that you must define the translatable attributes in the model as so
class Page extends Model
{
    protected $translatable = ['title', 'body'];
}

Usage:
Eager load translations
// Loads all translations
$posts = Post::with('translations')->get();

// Loads all translations
$posts = Post::all();
$posts->load('translations');

// Loads all translations
$posts = Post::withTranslations()->get();

// Loads specific locales translations
$posts = Post::withTranslations(['en', 'da'])->get();

// Loads specific locale translations
$posts = Post::withTranslation('da')->get();

// Loads current locale translations
$posts = Post::withTranslation('da')->get();

Get default language value
echo $post->title;

Get translated value
echo $post->getTranslatedAttribute('title', 'locale', 'fallbackLocale');

If you do not define locale, the current application locale will be used. You can pass in your own locale as a string.
If you do not define fallbackLocale, the current application fallback locale will be used. You can pass in your own locale as a string. If you want to turn the fallback locale off, pass false.
If no values are found, null is returned.

Translate the whole model
$post = $post->translate('locale', 'fallbackLocale');
echo $post->title;
echo $post->body;

// You can also run the `translate` method on the Eloquent collection
// to translate all models in the collection.
$posts = $posts->translate('locale', 'fallbackLocale');
echo $posts[0]->title;

If you do not define locale, the current application locale will be used. You can pass in your own locale as a string.
If you do not define fallbackLocale, the current application fallback locale will be used. You can pass in your own locale as a string. If you want to turn the fallback locale off, pass false.
If no values are found for the model for a specific attribute, either for the locale or the fallback, it will set that attribute to null.

Check if model is translatable
// with string
if (Voyager::translatable(Post::class)) {
    // it's translatable
}

// with object of Model or Collection
if (Voyager::translatable($post)) {
    // it's translatable
}

Save changes
$post = $post->translate('da');
$post->title = 'foobar';
$post->save();

This will update or create the translation for title the post with the locale da.
Please note that if a modified attribute is not translatable, then it will make the changes directly to the model itself. Meaning that it will overwrite the attribute in the language set as default.

Feedback, questions and pull requests are more than welcome.

UPDATE: Added new ways to eager load translations.

UPDATE: Added new ways to eager load translations.

UPDATE: You can now translate a Eloquent Collection like this.
$posts = Post::all()->translate('locale');
echo $posts[0]->title; // is now translated

You can also make modifications to the translated models and save them as translations like this.
$post = Post::first()->translate('locale');
$post->title = 'test';
$post->save();

Please note that if a modified attribute is not translatable, then it will make the changes directly to the model itself. Meaning that it will overwrite the attribute in the language set as default.

UPDATE: You can now use the Voyager facade to check if a object or classname is translatable.
// with string
if (Voyager::translatable(Post::class)) {
    // it's translatable
}

// with object of Model or Collection
if (Voyager::translatable($post)) {
    // it's translatable
}

Hello @marktopper!
This is a very interesting subject, since we can handle it in so different ways.
I was curious for your approach, I see you opted for the extra table, in fact we can gain a lot of features like user/author control, history, etc. But do we really need this?
I'd rater see the JSON approach, with the spatie/translatable. I have a working version of that, but need some time to create a fork. We can work on something together if you want.
Some screen shoots (you can also see the slugify in action):
BREAD

Menu

Hey @akazorg.
Thanks a lot for the screenshots, this seems like the best approach when it comes to the UI.
Will look into implementing this.
Sure, lets work on something together, that is also one of the main reasons that I have put it up as a branch that everyone can make pull requests to.
About the extra table, I just wanted to let it be flexible. However I can make it extendable so that people can easily make it into JSON instead and remove the translations table.

Hello @marktopper,
I will create a fork so you can access that code.
Meanwhile I'll test your version, and see how the UI could be implemented. I've wrote a JS, check out this guist, some notes included.

That is a quite nice script you have made there @akazorg.
Thanks for sharing. And let me know how it goes for the UI.
I will meanwhile work on some more helpers for it.
And maybe do some examples on usage at the frontend.

Thanks @marktopper.
That JS is working, just requires some revision because the initial version was aimed to work has a BREAD option, and I ended up changing the design and defining translations at Models, like you did.
It would be awesome to let user define translations has a BREAD option, this way they didn't have to edit Models, but there's some work involved. Anyway, just sharing an idea.
Happy coding, bbl with news

I like your idea @akazorg.
Well, there are two solutions for that.
1.- Editing the model when setting translatable inputs in the UI.
2.- Save the translatable fields somewhere else.
I however love the idea to make it work from the UI instead of the current way where they have to enter it directly in the model.

For updating a model's attributes, we can do this the following way:
$attribute = 'translatable';

$reflector = new ReflectionClass(\App\Page::class);
$path = $reflector->getFileName();

$content = file_get_contents($reflector->getFileName());

if (preg_match('/protected \$'.$attribute.' = (?:\[|array\()([\n\t\r\w\d\s\',]*?)+?(\]|\));/im', $content)) {
	$content = preg_replace('/protected \$guarded = (?:\[|array\()([\n\t\r\w\d\s\',]*?)+?(\]|\));/im', 'foo', $content);
} else {
	$content =preg_replace('/(class ([\n\t\r\w\d\s\':,]*?)+(\n*)?{)/im', "class $1\n    protected ${$attribute} = [];", $content);
}

file_put_contents($reflector->getFileName(), $content);

The idea of the option is great, seams to be more clear.

Just created 12 new tests to handle some of the core and basic features for the multilingual system.

@akazorg: My plan is to add the multilingual feature now and then later make it so that translatable attributes can be read from the database by setting protected $translatable = null; or something.

@marktopper it will be compatible anyway with https://github.com/dimsav/laravel-translatable?
Thanks!

@marcoocram, that package requires a bit more to integrate, but later my plan is to make it as a plugin for Voyager and remove it from the core of Voyager (maybe by v1.0 release). Then I will also use some time to do some alternative integrations like that.

@akazorg: All I need know is the integration into the views. Can you share what you had for this so I do not have to reinvent the wheel?

UPDATE: I will try to turn this into a plugin now. Since there is not reason to have it to the core of Voyager.

I prefeer, what is the ETA?

My ETA for publishing this plugin is one week after the release of Voyager v0.11.

And Voyager v0.11 should be done this sunday.

Hello @marktopper, sorry but I've been so busy with another project (not using Laravel), so I'm bit away.
This week I'll find time for working on this.

@akazorg: It is totally okay. You can also just share you view and JS with me and then I can merge it into this.
However, no hurry. Gonna build this into a separate plugin instead for Voyager.

This doesn't translates voyager's UI right? Can we use default L5.4 for that?
resources/lang/en/voyager.php
__('voyager.readmore')
As you know, lang files can be overriden like resources/lang/vendor/voyager/en/voyager.php
If that is not addressed yet, I can make a PR.

No this only makes the BREAD translatable.

Hi, how to use this multilingual without voyager? I don't need the permission tables, admin views. Is there installation guide?

Hi @ronrun. For that (without using Voyager), I suggest using another multilingual library.
Some options:

Spatie / laravel-translatable
Barryvdh / laravel-translation-manager
Dimsav / laravel-translatable

Hello guys,
I'm trying to call a post with another language in home.blade.php and i"m getting the error
Method getTranslatedAttribute does not exist.

Hi @Steve-sy, have you setup the config voyager.php and followed the instructions from docs?
If you can't sort that out, please open a new issue and we will help you.
Thanks.

Hello there,
Just to be clear, the final translation system choice is to use a specific table, no the json solution ?
And btw, thanks for all your great work !

@coppee We use the database for the BREAD translations but will use PHP files for the views-translations.

Hi @marktopper , thanks for your reply. Sorry, I was not clear enough in my question. I was talking about the other translation eloquent solution (use json in fields) proposed by @akazorg like : https://github.com/spatie/laravel-translatable

Hi @coppee Voyager is using the extra table approach, not the JSON one.
It works great this way.

Hello @marktopper
Am using your package to generate admin panel for mobile API
and I will translate the admin panel to Arabic please share more information about contribution guidelines.
I could help merging i18n and feature/rtl-support and test or improve them

Hello, I am new not Voyager, not understood how to translate to pt_br.
They could pass me one step at a time. Thank you.

Hi @vitorbrussi, check this #1364.

It would be very interesting if there was the possibility of having a auto-translator when a locale is defined, and return the translated data In fields that have translation

That's a nice idea @vitormicillo, we should work on that.

I created a not very elegant method but it works to auto translate the specific words
    private function translatedCollectionToArray(\TCG\Voyager\Translator\Collection $translatedCollection) {         $dateFields = [ 'created_at', 'updated_at', 'deleted_at' ];         $collectionArray = array();         foreach($translatedCollection as $collectionElement)         {             $collectionArray[] = array_map(function($rawAttributeData) { return $rawAttributeData['value']; }, $collectionElement->getRawAttributes());         }         foreach($collectionArray as $i => $collectionElement)         {             foreach($collectionElement as $elementKey => $elementValue)             {                 if(!in_array($elementKey, $dateFields) || $elementValue == null) { continue; }                 $collectionArray[$i][$elementKey] = strtotime($elementValue);             }         }         return $collectionArray;     }

This method recycles the use of the '\TCG\Voyager\Translator\Collection'
And stamps the dates in timestamp
I hope to help a little, to run it just send in the header your locale

Really great work on this multilingual feature!
I'm trying to think of a way to use it to store my Laravel translations (like in https://github.com/Waavi/translation but I'd like to avoid using a different package/ UI)
So basically I'm with my translation files that look something like this
'date' => 'Payment date: :date',
'amount' => 'Amount: :amount :currency',
'plan' => 'Plan: :plan',
'from' => 'From: :date',
'to' => 'To: :date',

And I'm thinking of adding a languages table with my key and label columns, making it translatable then having a class a bit like this:
class VoyagerTranslator extends Illuminate\Translation\Translator
{
	private $languages = null;

	public function get($key, array $replace = [], $locale = null, $fallback = null)
	{
		$lang = $this->getLang($key);
		$line = $lang->getTranslatedAttribute('label', $locale, $fallback);
		$line = $this->makeReplacements($line, $replace)

		return $line ?: $key;
	}

	protected function getLang($key) {
		if ($this->languages == null) {
			$this->languages = \App\Language::all();
		}

		return $this->languages->where('key', $key)->first();
	}
}

Any thoughts? Thanks!

I created a method to use the translations
private function translatedCollectionToArray(\TCG\Voyager\Translator\Collection $translatedCollection) {
    $collectionArray = array();
    foreach($translatedCollection as $collectionElement)
    {
        $collectionArray[] = array_map(function($rawAttributeData) { return $rawAttributeData['value']; }, $collectionElement->getRawAttributes());
    }
    return $collectionArray;
}

and to use:
Ex.
$language = $request->header('locale');
if($language == null || $language !== "it"){$language = "en";}
$section = $this->translatedCollectionToArray(Posts::all()->translate($language, 'fallbackLocale'));
works fine for me to use in translating api, I hope it helps many

Please include this guide in Documentation. It is hard to find it. Thank you.

Hi! How can I hide the not translated posts?

any video tutorial for how to this ?

I tried to implement this, but no luck.

When I add ['en' => 'English', 'sv' => 'Swedish'], to the 'locale' on the config it gives error.
There is no Model for Posts and Pages so, where do I make those changes?

Please update your documentation

Hiu @marktopper, you mentioned about a year ago that you wanted to make the translation library in voyager configurable: "About the extra table, I just wanted to let it be flexible. However I can make it extendable so that people can easily make it into JSON instead and remove the translations table."
Is the current implementation configurable? Could you point me to how you would replace the current translation implementation with for instance the one from Spatie: spatie/laravel-translatable
Thanks!

@marktopper Any ideas how to fix #3089 ?

@AlexanderWM, this PR has been merged. 3089 would be a much better place to ask that question


Hearty thanks

The subject of UAV payload swing angle control of load suspension has puzzled me for a long time. I sincerely thank you for your open source project, which has inspired me a lot

Nice! Thanks for your feedback @lienguang0624. Unfortunately, I only have it written in Portuguese. I was supposed to publish an article but I couldn't find time for it... Let me know if you want to learn anything more about it.

Nice! Thanks for your feedback @lienguang0624. Unfortunately, I only have it written in Portuguese. I was supposed to publish an article but I couldn't find time for it... Let me know if you want to learn anything more about it.

I found some clerical errors in the formula (it may be my derivation error)
1.In formula 3.51，z_dot_dot = fx + bxu1 +dz. Should it be the same as formula 2.39-3 z_dot_dot = fz + bzu1 +dz
2.In formula 3.56,  s1_dot =(zd_dot-dot - z_dot_dot) + lambda_z*(zd - z). Should it be s1_dot =(zd_dot-dot - z_dot_dot) + lambda_z*(zd_dot - z_dot)

I found some clerical errors in the formula (it may be my derivation error)
1.In formula 3.51，z_dot_dot = fx + bxu1 +dz. Should it be the same as formula 2.39-3 z_dot_dot = fz + bzu1 +dz
2.In formula 3.56,  s1_dot =(zd_dot-dot - z_dot_dot) + lambda_z*(zd - z). Should it be s1_dot =(zd_dot-dot - z_dot_dot) + lambda_z*(zd_dot - z_dot)

I have another question about the derivation of the formula (3.61). According to your paper, first bring the z_dot_dot in the formula (3.51) into the formula (3.56), and then the formula (3.56) into the formula (3.58) and proceed After sorting to get the formula (3.61), I checked the calculation in this order, but I did not find dz (in formula 3.51) and lambda_z * (zd-z) (in formula 3.56) in formula (3.61), so please could you help me analyze what went wrong.
Need your help very much, thank you

I have another question about the derivation of the formula (3.61). According to your paper, first bring the z_dot_dot in the formula (3.51) into the formula (3.56), and then the formula (3.56) into the formula (3.58) and proceed After sorting to get the formula (3.61), I checked the calculation in this order, but I did not find dz (in formula 3.51) and lambda_z * (zd-z) (in formula 3.56) in formula (3.61), so please could you help me analyze what went wrong.
Need your help very much, thank you

I found some clerical errors in the formula (it may be my derivation error)
1.In formula 3.51，z_dot_dot = fx + bx_u1 +dz. Should it be the same as formula 2.39-3 z_dot_dot = fz + bz_u1 +dz
2.In formula 3.56, s1_dot =(zd_dot-dot - z_dot_dot) + lambda_z*(zd - z). Should it be s1_dot =(zd_dot-dot - z_dot_dot) + lambda_z*(zd_dot - z_dot)

Nice catch! You are right about both equations!

I found some clerical errors in the formula (it may be my derivation error)
1.In formula 3.51，z_dot_dot = fx + bx_u1 +dz. Should it be the same as formula 2.39-3 z_dot_dot = fz + bz_u1 +dz
2.In formula 3.56, s1_dot =(zd_dot-dot - z_dot_dot) + lambda_z*(zd - z). Should it be s1_dot =(zd_dot-dot - z_dot_dot) + lambda_z*(zd_dot - z_dot)

Nice catch! You are right about both equations!

I have another question about the derivation of the formula (3.61). According to your paper, first bring the z_dot_dot in the formula (3.51) into the formula (3.56), and then the formula (3.56) into the formula (3.58) and proceed After sorting to get the formula (3.61), I checked the calculation in this order, but I did not find dz (in formula 3.51) and lambda_z * (zd-z) (in formula 3.56) in formula (3.61), so please could you help me analyze what went wrong.
Need your help very much, thank you

The calculations are:

You are right about (3.51), lambda_z * (zd-z) was supposed to be lambda_z * (zd_dot-z_dot). So, it must not appear in Eq. (3.61)
At this stage, I wanted to define an equation for the input and I'm not considering d_z (yet), since it is unknown. d_z is considered on the definition of eta_z which is designed based on the bounds expected for the disturbances.

I have another question about the derivation of the formula (3.61). According to your paper, first bring the z_dot_dot in the formula (3.51) into the formula (3.56), and then the formula (3.56) into the formula (3.58) and proceed After sorting to get the formula (3.61), I checked the calculation in this order, but I did not find dz (in formula 3.51) and lambda_z * (zd-z) (in formula 3.56) in formula (3.61), so please could you help me analyze what went wrong.
Need your help very much, thank you

The calculations are:

You are right about (3.51), lambda_z * (zd-z) was supposed to be lambda_z * (zd_dot-z_dot). So, it must not appear in Eq. (3.61)
At this stage, I wanted to define an equation for the input and I'm not considering d_z (yet), since it is unknown. d_z is considered on the definition of eta_z which is designed based on the bounds expected for the disturbances.

This article was my main inspiration when I designed this controller. It might help you too!

This article was my main inspiration when I designed this controller. It might help you too!

Thank you very much for your prompt reply. I have roughly understood the structure of your paper. Next, I want to repeat your simulation work, but I encountered some difficulties while reading your source code.
The return value of the rL_fun(t) function in the waypoint_shaped_flat_trajectory.m file is a matrix of 280121. I know that 2801 represents the time node, but how is this 21 obtained, and what does it specifically mean? (I can only analyze that rL_fun probably represents the position information of the suspanded load, but these are only three variables(xl,yl,zl))
The same problem is also true for yaw_fun(t). Why is the function running the result of 28013 if only one state variable is yaw?
Do you have any suggestions for reading your simulation program?
I am very sorry for taking up your precious time and looking forward to your reply.

Thank you very much for your prompt reply. I have roughly understood the structure of your paper. Next, I want to repeat your simulation work, but I encountered some difficulties while reading your source code.
The return value of the rL_fun(t) function in the waypoint_shaped_flat_trajectory.m file is a matrix of 280121. I know that 2801 represents the time node, but how is this 21 obtained, and what does it specifically mean? (I can only analyze that rL_fun probably represents the position information of the suspanded load, but these are only three variables(xl,yl,zl))
The same problem is also true for yaw_fun(t). Why is the function running the result of 28013 if only one state variable is yaw?
Do you have any suggestions for reading your simulation program?
I am very sorry for taking up your precious time and looking forward to your reply.

Thank you very much for your prompt reply. I have roughly understood the structure of your paper. Next, I want to repeat your simulation work, but I encountered some difficulties while reading your source code.
The return value of the rL_fun(t) function in the waypoint_shaped_flat_trajectory.m file is a matrix of 280121. I know that 2801 represents the time node, but how is this 21 obtained, and what does it specifically mean? (I can only analyze that rL_fun probably represents the position information of the suspanded load, but these are only three variables(xl,yl,zl))
The same problem is also true for yaw_fun(t). Why is the function running the result of 28013 if only one state variable is yaw?
Do you have any suggestions for reading your simulation program?
I am very sorry for taking up your precious time and looking forward to your reply.

Don't worry, I'm glad to help. Answering questions makes me learn more too.
I just want to ask you to create issues for new questions so we can organize the topics. I transferred your question to https://github.com/mateus-amarante/master_thesis/issues/3.

Thank you very much for your prompt reply. I have roughly understood the structure of your paper. Next, I want to repeat your simulation work, but I encountered some difficulties while reading your source code.
The return value of the rL_fun(t) function in the waypoint_shaped_flat_trajectory.m file is a matrix of 280121. I know that 2801 represents the time node, but how is this 21 obtained, and what does it specifically mean? (I can only analyze that rL_fun probably represents the position information of the suspanded load, but these are only three variables(xl,yl,zl))
The same problem is also true for yaw_fun(t). Why is the function running the result of 28013 if only one state variable is yaw?
Do you have any suggestions for reading your simulation program?
I am very sorry for taking up your precious time and looking forward to your reply.

Don't worry, I'm glad to help. Answering questions makes me learn more too.
I just want to ask you to create issues for new questions so we can organize the topics. I transferred your question to https://github.com/mateus-amarante/master_thesis/issues/3.

Thank you for your unselfish answer. Wish you good health, a successful career and a happy day in the New Year

Thank you for your unselfish answer. Wish you good health, a successful career and a happy day in the New Year


Included more parameters in realtime server http requests to the controller.

In preparation for auto-tuning of consuming segment allocation in multi-tenant
realtime cluser:
The realtime segment completion requests posted to the controller now include
the following parameters as appropriate:
memory used
number of rows consumed
build time
wait time to acquire the build semaphore.
Broadened the scope of SegmentFileAndOffset class (renamed it to SegmentBuildDescriptor) to
include more than just the file name and offset. It now serves as a return value of
buildSegmentInternal() method, and has the build time and wait time as well.

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@235c521). Click here to learn what that means.
The diff coverage is 92.1%.

@@            Coverage Diff            @@
##             master    #2722   +/-   ##
=========================================
  Coverage          ?   69.43%
=========================================
  Files             ?      871
  Lines             ?    42130
  Branches          ?     5715
=========================================
  Hits              ?    29253
  Misses            ?    11009
  Partials          ?     1868

Impacted Files
Coverage Δ

...com/linkedin/pinot/common/metrics/ServerGauge.java
95.65% <100%> (ø)

...anager/realtime/SegmentBuildTimeLeaseExtender.java
64.15% <100%> (ø)

...altime/ServerSegmentCompletionProtocolHandler.java
51.85% <100%> (ø)

...manager/realtime/LLRealtimeSegmentDataManager.java
71.95% <91.3%> (ø)

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 235c521...9ab669e. Read the comment docs.


Obj format output in reconstruction, and normals outputting for obj format

This adds obj files as a supported format from reconstruction, and enables normals output if requested.
Still need to add docs updates, and I have not tested this thoroughly, so apologies if there are mistakes.
Thanks

Thanks! I think I would prefer to put the match on the file extension somewhere else, similar to how the read_particle_positions is in the io module. Maybe simply a write_surface_mesh function with a similar structure in io.rs. Feel free to do something about this, otherwise I'll check it out over the weekend.

OK, I'll hopefully have a look at this tomorrow.

Small commit added to output normals indices on the face elements

If you have some time, I think this is the code structure you are looking for, but there is a problem with what write_vtk expects to be sent.... there may be some hackery to convert the MeshWithData into an Into, but I'm struggling with it.
Thanks

Actually &MeshWithData does implement Into<DataSet> but you have to ensure that its MeshT also implements Into<DataSet> as you can see here: https://github.com/w1th0utnam3/splashsurf/blob/a5e5497e08d32bce92d5f5016ae8a33550f5598d/splashsurf_lib/src/mesh.rs#L614-L623
If you copy these trait bounds to the write_mesh implementation it compiles. However we can write it a bit less cumbersome as:
pub fn write_mesh<'a, R: Real, MeshT: Mesh3d<R>, P: AsRef<Path>>(
    mesh: &'a MeshWithData<R, MeshT>,
    output_file: P,
    _format_params: &OutputFormatParameters,
) -> Result<(), anyhow::Error>
where
    &'a MeshWithData<R, MeshT>: Into<DataSet>

Did you check that the obj files with normals are correct and can be read by other tools?

I have tested the normals (my code was originally broken, but it is fixed now, & I will double check)

Thanks for the help. I have made those changes, they cmpiled fine.
I have tested the output, but I shall do so again with an example from the directory (I was symlinking to the splashsurf binary, not 100% sure i was using the right binary).

I am getting some corrupted files on large data sets, with many files. I think this is unrelated to this change (I believe the files were rsynced from the server before the files were fully written).
Would you accept some integration tests with obj-rs?

OK, no more corrupted files, it was an rsync problem.
I'll look into adding some tests to make sure the output is good.

Sounds great! Not sure what your plan is, but maybe you can manually construct a simple mesh in the test for reference. This way we don't have to rely on a reconstruction giving identical results.

Ah, missed your comment with obj-rs. Yeah, you can add it as a dev dependency. Do you want to make a round trip test, like storing with splashsurf, loading with obj-rs and then comparing?

OK, I'll have a look at it. I was thinking to go through obj-rs, but perhaps just some simple tests running through the reconstruction to start with.

OK, adding the tests is harder than I initially thought (unless I put it somewhere stupid).
Makes sense to either:
move the splashsurf/src/io.rs into splashsurf_lib/src, so we can get access to the io stuff.
or add a dependency from splashsurf_lib to splashsurf, so we can get access to io....
Which of these would you prefer?
I also have a small update #30, to make it handle more formats a bit easier. If that looks ok to you, I will rebase off master when you merge it.

Or perhaps merge this, and the io restructure, and I will add in the tests in a new PR.
Cheers

Yes, the current situation with the IO is a bit annoying for me as well for some tests in splashsurf_lib (because this results in some code duplication for the tests). I definitely don't want to have a dependency on the binary crate splashsurf in splashsurf_lib (the former should more or less only provide the CLI).
It would be possible to move the IO stuff to splashsurf_lib although this feels like a lot of clutter if you just want to run a surface reconstruction in memory/on the fly in some other crate. Of course one could move this behind a feature flag, like the current vtkio trait implementations. Alternatively I could create a separate splashurf_io crate. Do you have an opinion on this?
In any case this should be part of a different PR or I can take a look at this myself after deciding how to refactor this. However, for the current situation and this specific test couldn't you just put it somewhere in splashsurf?

Sounds like a good idea. I'll put it in splashsurf for now.

Hrm, this presents issues as well.
It's not trivial ATM to pull in from an obj or ply file (it would be just as easy to add it to the convert command...
I'm not sure how to create a dead simple .vtk file (if you have a simple cube with normals laying around... that would help)
I may perhaps just create the mesh entities directly, but that is not exactly trivial either.
Gotta drop this today. If you have a better idea for this, let me know.
Cheers

I've added support for importing meshes from ply files, here: #31.
This will make it possible to test outputting obj file from a simple ply file.

I'll merge this for now, we can add tests a bit later.


chore: cleanup docker files caches

Closes: #228

/code pr

:robot:
Review of PR: "chore: cleanup docker files caches"
.devcontainer/Dockerfile

Lines 6-9: Good addition of apt-get clean and removal of /var/lib/apt/lists/* to reduce the image size.

function/Dockerfile

Lines 32-38: The removal of apt-get autoremove -yy and rm -rf /var/cache/apt/* /tmp/* might potentially leave unnecessary files in the image, increasing its size. Consider adding back apt-get autoremove -yy to remove unnecessary packages. Also, consider whether removing /var/cache/apt/* and /tmp/* might be beneficial for your use case to keep the image lean.
Suggestion: After purging curl, it's a good practice to clean up and remove unnecessary files. However, ensure that this does not remove files needed by dependencies inadvertently.

function/Dockerfile.server

Lines 22-29: The restructuring of commands to combine apt-get update and apt-get install is efficient. However, the removal of apt-get upgrade -y could be reconsidered. While it's generally not recommended to run apt-get upgrade in a Dockerfile due to the potential for non-deterministic builds, there might be specific cases where it's necessary for security updates. If this is not one of those cases, then the removal is justified.
The addition of mkdir -p /opt/tika/libs after package installation commands is logically placed, ensuring that the directory exists before it's used.
Ensure that the removal of apt-get upgrade -y aligns with your project's policy on handling base image updates and security patches.

General Suggestions:

Consistency in cleanup: Ensure that all Dockerfiles follow a consistent approach to cleaning up after package installations to minimize the image size. This includes running apt-get clean, removing /var/lib/apt/lists/*, and potentially other temporary files that are not needed in the final image.
Security practices: Regularly review Dockerfiles for opportunities to enhance security, such as minimizing the number of installed packages, using non-root users, and scanning images for vulnerabilities.

Example for Enhancing Cleanup:
RUN apt-get update && apt-get install -y --no-install-recommends <package-name> \
    && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
    && apt-get clean \
    && rm -rf /var/lib/apt/lists/* /var/cache/apt/* /tmp/* /var/tmp/*

This example demonstrates a more comprehensive cleanup process that could be applied to ensure Docker images are as lean and secure as possible.
> gpt-4-turbo-preview [pr | 2]


Uncatchable exception occurred when disconnecting SW physical interface during session.close() execution

while 1:
    session = ConnectHelper.session_with_chosen_probe(
        unique_id=debuggers[probe_sel].unique_id,
        target_override="STM32f412xG",
        auto_open=False,
    )
    try:
        session.open()
        board = session.board
        target = board.target

        # do something

        start = time.perf_counter()
        session.close()
        end = time.perf_counter()
        print("close time: %s" % (end - start))

    except Exception as err:
        print(err)
        # do something else

    sleep(2)

If the SW physical interface is not connected, No ACK receive will be printed every two seconds.
After connecting the SW interface, disconnecting the physical connection during session.close() will throw an uncaught exception.
By the way, it takes 5 seconds to execute session.close() .
link exception during target disconnect: No ACK received
Traceback (most recent call last):
  File "G:\Program\Python3\lib\site-packages\pyocd\probe\cmsis_dap_probe.py", line 353, in read_dp_result_callback
    value = result()
  File "G:\Program\Python3\lib\site-packages\pyocd\probe\pydapaccess\dap_access_cmsis_dap.py", line 970, in read_reg_cb
    res = transfer.get_result()
  File "G:\Program\Python3\lib\site-packages\pyocd\probe\pydapaccess\dap_access_cmsis_dap.py", line 154, in get_result
    self.daplink.flush()
  File "G:\Program\Python3\lib\site-packages\pyocd\utility\concurrency.py", line 29, in _locking
    return func(self, *args, **kwargs)
  File "G:\Program\Python3\lib\site-packages\pyocd\probe\pydapaccess\dap_access_cmsis_dap.py", line 790, in flush
    self._read_packet()
  File "G:\Program\Python3\lib\site-packages\pyocd\utility\concurrency.py", line 29, in _locking
    return func(self, *args, **kwargs)
  File "G:\Program\Python3\lib\site-packages\pyocd\probe\pydapaccess\dap_access_cmsis_dap.py", line 1056, in _read_packet
    decoded_data = cmd.decode_data(raw_data)
  File "G:\Program\Python3\lib\site-packages\pyocd\probe\pydapaccess\dap_access_cmsis_dap.py", line 473, in decode_data
    data = self._decode_transfer_block_data(data)
  File "G:\Program\Python3\lib\site-packages\pyocd\probe\pydapaccess\dap_access_cmsis_dap.py", line 442, in _decode_transfer_block_data
    self._check_response(data[3])
  File "G:\Program\Python3\lib\site-packages\pyocd\probe\pydapaccess\dap_access_cmsis_dap.py", line 363, in _check_response
    raise DAPAccessIntf.TransferError("No ACK received")
pyocd.probe.pydapaccess.dap_access_api.DAPAccessIntf.TransferError: No ACK received

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "G:\Program\Python3\lib\site-packages\pyocd\board\board.py", line 137, in uninit
    self.target.disconnect(resume)
  File "G:\Program\Python3\lib\site-packages\pyocd\coresight\coresight_target.py", line 123, in disconnect
    self.dp.disconnect()
  File "G:\Program\Python3\lib\site-packages\pyocd\coresight\dap.py", line 359, in disconnect
    self.power_down_debug()
  File "G:\Program\Python3\lib\site-packages\pyocd\coresight\dap.py", line 523, in power_down_debug
    r = self.read_reg(DP_CTRL_STAT)
  File "G:\Program\Python3\lib\site-packages\pyocd\coresight\dap.py", line 471, in read_reg
    return self.read_dp(addr, now)
  File "G:\Program\Python3\lib\site-packages\pyocd\coresight\dap.py", line 752, in read_dp
    return read_dp_cb()
  File "G:\Program\Python3\lib\site-packages\pyocd\coresight\dap.py", line 740, in read_dp_cb
    result = result_cb()
  File "G:\Program\Python3\lib\site-packages\pyocd\probe\cmsis_dap_probe.py", line 358, in read_dp_result_callback
    raise self._convert_exception(error) from error
pyocd.core.exceptions.TransferError: No ACK received

Several questions for you:

By "SW interface" do you mean "software interface" or "Serial Wire Debug (SWD) interface"?
Are you connecting and disconnecting the USB device?
What debug probe are you using?

Assuming you are connecting/disconnecting the SWD cable to some board (and not USB), then this is the expected behaviour. If there's nothing on the other end of the SWD interface, you'll of course get a "No ACK received" error. There's really nothing else we can do in that case!


Add azimuth (yaw) to SensorEvent

It would be great if azimuth could be added.

It looks like pull request #2 resolves this issue. Who is the iOS-update going?

Hello, nobody at this time, feel free to contribute.

Please could this be added.


Level up dialog resetting XP and HP

In GitLab by @Asacolips on Jun 5, 2022, 17:46
Summary
When using the level up dialog, it's resetting XP to 0 and HP to the new maximum.
Acceptance Criteria

[ ] XP is reduced by the XP value determined in the system settings, rather than resetting to 0.
[ ] HP increases by the difference between the current maximum HP and the new maximum HP, rather than resetting to the new maximum HP.

In GitLab by @Asacolips on Jun 5, 2022, 19:02
Fixed in 1.5.2


add --project and --entry flags

removes need for creating temporary knip.json

There are default values for those options, Knip looks in package.json, and plugins look in more configuration files. Do you think there something common missing, or is it just for convenience?
In general I'm not after parity between CLI arguments and configuration file options, especially considering monorepos are supported as well (making CLI args cumbersome).

@webpro i would find the flags useful for scriptability. i could install knip globally and use a wrapper script with the args i prefer. i would be able to use it on any project without having to create a temporary knip.json just to define entry point.
also, i would be able to set different entry points interactively to view different graphs. (i sometimes have multiple entry points)

Going to close this issue. Once this would land, I feel like chances are the other configuration file options will be requested as CLI arguments as well. As said, in general I'm not after parity here.


handle the instance size

@vogtpet, For some computation the instance is too small to run the GWB module, which is well handled by the GWB CLI as it writes in the logs that some problems prevent the computation to occurs. As I have access to the instance status I would like t run a prelaunch analysis to know wether or not the instance is too small and catch the error before it occurs.
By doing so I would be able to display a way more convenient error message.
Do you have an idea of the complexity of all these algorithm and the amont of memory they all required (with respect to the size of the initial image) ?

Each GWB module runs a series of pre-computation tests for each input image, verifying that

required colortables and input-parameter files are in place and in the correct format
the image format (must be datatype byte)
the image type (must be of type tif and single channel)
appropriate min/max value in the image
presence of required foreground, background (and optional other) values
appropriate naming scheme of input/output directory
detect available free RAM and cross-check this with the maximum RAM amount needed for processing the input image of size X mb

Only if all tests are ok, the computation will start. If not, the error is reported in the log-file. Meaning, the prelaunch analysis is already in place inside the IDL-scripts that are executed.
In principle, one could do all those "compliance tests" in dedicated bash-scripts and in case the input image passes these tests, then launch the existing IDL-script without doing the compliance tests (if the IDL script detects the file <input_dir>/nocheck.txt, the IDL-script will automatically skip the compliance tests).
However, the compliance tests are not identical for all modules, so one would have to recode many things in bash or another language. Quite some work and somehow duplicating an already working setup...
What exactly is the issue here? I assume the problem only occurs for memory-intensive computations (MSPA and maybe FAD), or? If the error is about insufficient memory then the following could give a guideline for MSPA:
The maximum size of a square image of dimension Z (ZxZ pixels) that can be processed is: Z = sqrt(1024^3 / 20 * RAM).
For example if you have 14 GB free RAM; then Z = sqrt(1024^3/20*14) = 27400 pixels, meaning you can process an image of no more than 27400×27400 pixels.
The attached bash-script shows how we did the MSPA in bash only, earlier called the "fragmentation tool":
Line 90-111 show how to calculate the maximum supported files size of the input image for MSPA-processing on a given instance.
Line 118, 121 and then 144-158 get the input image size and compare it to the amount of free RAM.
If the problem only occurs for MSPA I can write a brief bash-startup check for file-size/memory compatibility that you could invoke before launching the GWB-MSPA module, let me know.
gtb-mspa.txt

yes that's effectively a lot of work to reimplement all that.
I normally display the log output in case of crash (If only a log file is produce I assume that the computation failed) and This information is displayed inside.
@lecrabe did a computation with the previous implementation and realized that it was lacking memory and they were nothing preventing him from launching it anyway.
I would advocate in favor of the launch anyway and read the logs that are displayed for informations

I don't understand:

lecrabe did a computation (of what - MSPA?)
with the previous implementation (fragmentation tool?)

The GWB-log file is always generated, if the computation was successful or not. The log-file in the directory output includes details (and error info if encountered) of the computation process.  If you launch GWB-MSPA and the script detects that the system has insufficient memory then the log-file will contain this message:
Skipping invalid input (wrong dimensions, image too big, not enough RAM): name of the input image
If the log-file shows this message then the current instance has insufficient (free) memory. The current instance should be stopped and a new instance with more memory should be started. If needed, we could run a small additional script (as I suggested before) that would calculate the amount of memory needed to process MSPA for name of the input image, so the user will have an indication to choose an instance with appropriate memory amount. Please let me know if such a script is considered meaningful keeping in mind that this would only address MSPA...

I meant a previous release (the one from 2 days ago). I know that log file is always generated. It's just that GWB command doesn't interact well with python so I needed to find tricks to know wether something happened or not. The solution I came up with is the following :
IF only a log file is produced, something went wrong THEN display the log to the user as an error message ELSE continue

knowing this the message shows several possible bugs : wrong dimensions, image too big, not enough RAM and what I would need is precisely what make it stop. But I must confess that I don't want to copy/paste things that are already coded.
So at the moment it will stay as it is

ok, that makes sense :-)
Still, that pre-script with imagesize/memory check for MSPA might be a valuable addition, I will think about this a bit more tomorrow...

after some more thinking: such a pre-script wouldn't do anything different than what the current IDL-script for MSPA already does. If an image is too large for processing on a given instance, the current MSPA IDL-script will report that " the image is too large for processing", write this to the log-file and exit without doing any MSPA-processing. A potential improvement could be that the error message could specify how much RAM is required to process the given image. The user would then have an idea which instance to choose to process the given image. I will see how to best implement this in an updated version.

Considering the surfaces we want to process I assume that it will be problem for all of them


User should be able to see updated share requests on the homepage according to their interests

For now, we are going with a simple list of posts. Eventually over the future sprints the filtering by recommendation / interest will be done.

This story has the following tasks:
#15
#16
#17
#18
#19

Merged the PR. Closing issue.


fix: add sleep to scc

Description
add sleep to scc da code
Release required?

[ ] No release
[ ] Patch release (x.x.X)
[ ] Minor release (x.X.x)
[ ] Major release (X.x.x)

Release notes content
add sleep to avoid timing issue when creating en_topic.
Run the pipeline
If the CI pipeline doesn't run when you create the PR, the PR requires a user with GitHub collaborators access to run the pipeline.
Run the CI pipeline when the PR is ready for review and you expect tests to pass. Add a comment to the PR with the following text:
/run pipeline

Checklist for reviewers

[ ] If relevant, a test for the change is included or updated with this PR.
[ ] If relevant, documentation for the change is included or updated with this PR.

For mergers

Use a conventional commit message to set the release level. Follow the guidelines.
Include information that users need to know about the PR in the commit message. The commit message becomes part of the GitHub release notes.
Use the Squash and merge option.

/run pipeline

/run pipeline

:tada: This PR is included in version 1.17.3 :tada:
The release is available on:

GitHub release
v1.17.3

Your semantic-release bot :package::rocket:


Response status code: Finished uploading BOM to Dependency-Track server. Error: Problem with request: read ECONNRESET Error: read ECONNRESET

I am facing this issue and dont know how to resolve it, i have tried almost everything but after 4 min 45 seconds, it just gives me this error:
Response status code:
Finished uploading BOM to Dependency-Track server.
Error: Problem with request: read ECONNRESET
Error: read ECONNRESET
if anyone can help me with this?

I do have the same problem, I use the follwoing workaround so it doesn't consume lot of time
timeout-minutes: 1   continue-on-error: true

Fixed in https://github.com/DependencyTrack/gh-upload-sbom/pull/35


Can't validate response

Traceback (most recent call last):
  File "sms.py", line 10, in <module>
    voice.send_sms("13018511936", text)
  File "/usr/local/lib/python2.7/dist-packages/googlevoice/voice.py", line 190, in send_sms
    self.__validate_special_page('sms', {'phoneNumber': phoneNumber, 'text': text})
  File "/usr/local/lib/python2.7/dist-packages/googlevoice/voice.py", line 287, in __validate_special_page
    load_and_validate(self.__do_special_page(page, data))
  File "/usr/local/lib/python2.7/dist-packages/googlevoice/util.py", line 65, in load_and_validate
    validate_response(loads(response.read()))
  File "/usr/local/lib/python2.7/dist-packages/googlevoice/util.py", line 59, in validate_response
    raise ValidationError('There was a problem with GV: %s' % response)
googlevoice.util.ValidationError: There was a problem with GV: {u'data': {u'code': 58}, u'ok': False}

So I was using pygooglevoice to monitor my server. All the sudden I get that error when I try to send a SMS.
import sys
from googlevoice import Voice
from googlevoice.util import input

voice = Voice()
voice.login(email='-snip-', passwd='-snip-')

text = sys.argv[1];

voice.send_sms("-snip-", text)

I literally posted the same problem today. Issue #44

ok


fix: fix FP test to fail when condition not met

Refs #3643

Why is this test modification needed?

Because the original test doesn't fail without the FP fix.


chore: ignore types files from code coverage

Codecov Report

:exclamation: No coverage uploaded for pull request base (main@4e1a7e1). Click here to learn what that means.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main      #61   +/-   ##
=======================================
  Coverage        ?   41.09%
=======================================
  Files           ?       33
  Lines           ?      932
  Branches        ?      348
=======================================
  Hits            ?      383
  Misses          ?      548
  Partials        ?        1

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 4e1a7e1...d07f48d. Read the comment docs.


cubefs/cubefs-server:2.4.0

cubefs/cubefs-server:2.4.0

Whether the cubefs mirror is open or not, the local and cluster cannot be pulled down

The hub also has no cubefs mirror


Accept a Redact function

Fixes #5

@davidmarkclements Here's a simple attempt. I feel like we can do away with the function check everytime and replace it with a simple statement but can't put my finger on how. Also, feel free to add/modify test names, readme changes etc. Hope this helps.

on top of the changes we also need a comparison benchmark
easiest way to do this would be to copy bechmarks/index.js - perhaps into
benchmarks/static-censor.js and benchmarks/functional-censor.js and modify the files to use static and functional benchmarks

oh could you also please run a comparison benchmark against master and post results? to see the costs of the checking?

Hi,
can I help somehow to get this pull request merged? It is just was I was looking for!

@yellowbrickc If you can help fix the review comments (adding a readme example, adding a test and benchmarks), it'd be great. I got pulled into other projects and haven't had the chance to revisit this.

I am pretty sure that I cannot fork your changes. The only thing what I can do is to fork the repo, reapply your changes and fill the gaps. Or is there some other way I don't know about?

@mrchief everything is cool, I forked your fork ;)

Oh Ok. I added you as collaborator to my fork also. If you push to that, it'll update this PR. If not, you'll need to create a new PR from your fork.

hey @yellowbrickc thanks for picking this up!
benchmark looks good, could you please run the benchmark and post the results here?
we also need to add a test for line 49 in index.js

great work @yellowbrickc  - one nit pick in package.json
thanks for confirming on the test coverage,
all we need now is to see any performance impact, could you please run the benchmarks and then post the output in this PR thread?

Sure, I can do this tomorrow morning.
I was wondering about 3 things, maybe you could give me some insights:

you are using exclusively vars. As i understand how the linking is happening don't you think that const and let would be better?
Second question: why do you never finish a function or expression with a semi-colon ?
Third question: on which node-version should the benchmark run?

hey @yellowbrickc

this was first written when const wasn't supported extensively, I'd like to keep with var for certain libraries – pino-noir is for use with pino, and pino still has a legacy branch for Node 0.10.  As for let I tend to ignore it, from practice it seems that most times when block scoping is useful, so is immutable binding (const) (also out of habit, var used to be (may still be) faster than let.
all of the official pino ecosystem modules use Standard as the linter – no semi-colons
latest is fine :)

Using let generate slower code than var. This is also true for const. Future V8 versions will fix this.

Thanks for the insights :)
Latest benchmark:
benchPinoTopLevel10000: 333.779ms
benchNoirTopLevel10000: 382.708ms
benchPinoNested10000: 491.312ms
benchNoirNested10000: 481.082ms
benchPinoDeepNested10000: 467.695ms
benchNoirDeepNested10000: 500.071ms
benchPinoVeryDeepNested10000: 518.262ms
benchNoirVeryDeepNested10000: 634.933ms
benchPinoWildcardStructure10000: 744.625ms
benchNoirWildcards10000: 610.159ms
benchPinoFunctionCensor10000: 334.572ms
benchNoirFunctionCensor10000: 459.203ms
benchPinoTopLevel10000: 265.533ms
benchNoirTopLevel10000: 329.132ms
benchPinoNested10000: 397.983ms
benchNoirNested10000: 401.191ms
benchPinoDeepNested10000: 397.944ms
benchNoirDeepNested10000: 489.064ms
benchPinoVeryDeepNested10000: 509.982ms
benchNoirVeryDeepNested10000: 643.705ms
benchPinoWildcardStructure10000: 582.878ms
benchNoirWildcards10000: 564.312ms
benchPinoFunctionCensor10000: 328.049ms
benchNoirFunctionCensor10000: 424.109ms

Hi @davidmarkclements
do you have an idea when you will merge and release this pull request?

Sorry! This fell of my radar - hopefully tomorrow or thu at latest
On Tue, 6 Mar 2018 at 21:36, Krisztina Hirth<EMAIL_ADDRESS>wrote:

Hi @davidmarkclements https://github.com/davidmarkclements
do you have an idea when you will merge and release this pull request?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/pinojs/pino-noir/pull/7#issuecomment-370936931, or mute
the thread
https://github.com/notifications/unsubscribe-auth/ABIrPKOKVhsfCTM3O6uK6su4UNOE6Zw1ks5tbwFRgaJpZM4QmTY4
.

released v2.2.0
really great collab. @yellowbrickc and @mrchief


fix: Warnings CS0436

What does the pull request do?

What is the current behavior?

What is the updated/expected behavior with this PR?

How was the solution implemented (if it's not obvious)?

Checklist

[ ] Added unit tests (if possible)?
[ ] Added XML documentation to any related classes?
[ ] Consider submitting a PR to https://github.com/AvaloniaUI/Documentation with user documentation

Breaking changes

Obsoletions / Deprecations

Fixed issues

You can test this PR using the following package version. 11.0.999-cibuild0028662-beta. (feed url: https://pkgs.dev.azure.com/AvaloniaUI/AvaloniaUI/_packaging/avalonia-all/nuget/v3/index.json) [PRBUILDID]

@workgroupengineering added a description for you. Please, could you write a description for your PRs? I just spent 15 minutes trying to work out why these changes were needed, and could have saved that time if there was a description.

You can test this PR using the following package version. 11.0.999-cibuild0029238-beta. (feed url: https://pkgs.dev.azure.com/AvaloniaUI/AvaloniaUI/_packaging/avalonia-all/nuget/v3/index.json) [PRBUILDID]


swig 4.1.1

Linter check found the following problems:
The following problems have been found:
ERROR: clone/recipe/meta.yaml:14: http_url: http://prdownloads.sourceforge.net/swig/swig-4.1.1.tar.gz is not https
ERROR: clone/recipe/meta.yaml:14: http_url: http://prdownloads.sourceforge.net/swig/swigwin-4.1.1.zip is not https
ERROR: clone/recipe/meta.yaml:27: host_section_needs_exact_pinnings: Packages in host must have exact version pinnings, except python build tools.
Errors were found

Linter check found the following problems:
The following problems have been found:
ERROR: clone/recipe/meta.yaml:14: http_url: http://prdownloads.sourceforge.net/swig/swigwin-4.1.1.zip is not https
ERROR: clone/recipe/meta.yaml:14: http_url: http://prdownloads.sourceforge.net/swig/swig-4.1.1.tar.gz is not https
ERROR: clone/recipe/meta.yaml:27: host_section_needs_exact_pinnings: Packages in host must have exact version pinnings, except python build tools.
Errors were found

Linter check found the following problems:
ERROR conda.cli.main_run:execute(124): `conda run conda-lint /tmp/abs_663j4ccp9w/clone` failed. (See above for error)
The following problems have been found:
===== WARNINGS =====

clone/recipe/meta.yaml:27: host_section_needs_exact_pinnings: Linked libraries host should have exact version pinnings.
===== Final Report: =====
0 Errors and 1 Warning were found

Linter check found the following problems:
ERROR conda.cli.main_run:execute(124): `conda run conda-lint /tmp/abs_eb174g6vjm/clone` failed. (See above for error)
The following problems have been found:
===== WARNINGS =====

clone/recipe/meta.yaml:27: host_section_needs_exact_pinnings: Linked libraries host should have exact version pinnings.
===== Final Report: =====
0 Errors and 1 Warning were found

Linter check found the following problems:
ERROR conda.cli.main_run:execute(124): `conda run conda-lint /tmp/abs_789c0r5u0p/clone` failed. (See above for error)
The following problems have been found:
===== WARNINGS =====

clone/recipe/meta.yaml:27: host_section_needs_exact_pinnings: Linked libraries host should have exact version pinnings.
===== Final Report: =====
0 Errors and 1 Warning were found


Mysterious Square Character When Changing Editor Height

In my project Code Corral, which uses CodeMirror, I have 3 editors (HTML, CSS, JavaScript) within a container.  Each editor is assigned a collapse/expand button.  When I collapse or expand any of the editors, a mysterious square character appears for a brief moment when the editor's height changes.  You can find a working example of my project here.
I made sure my encoding was set to UTF-8 in my code editor.  I tried calling cm.refresh(), but that did not help.

In which browser does it happen? I'm not seeing it in Chrome

I've tested it in both Google Chrome and Firefox on both Mac and Windows.
The square character(s) appear for a brief moment when minimizing or maximizing the editors, after which everything displays normal again.
Steps to reproduce:

Enter some HTML markup in the HTML editor.
Minimize the panel using the yellow minimize button.

for a brief moment the square character(s) will appear in the editor.

Maximize the HTML panel using the green maximize button.

for a brief moment the square character(s) will appear in the editor along with the markup,  then disappears.

From what I can see it's \f066 from
.fa-compress:before {
content: "\f066";
}


{Style} Use light theme by default on MacOS

Issue
We specify the color for warnings as ANSI color Bright Yellow without any specification of the actual RGB value:
https://github.com/Azure/azure-cli/blob/8d8d71707d6c60083d008062667cab18d0adaa25/src/azure-cli-core/azure/cli/core/style.py#L73
According to https://github.com/Azure/azure-cli/issues/18298#issuecomment-1263529261, MacOS's terminal by default uses white background and Bright Yellow is not readable on that white background.
Something like:

Personally, I think it should the terminal's theme's responsibility to make all ANSI colors readable on its background.
Change
Since MacOS's terminal by default uses white background, we by default uses light theme which uses (dark) Yellow for warnings:
https://github.com/Azure/azure-cli/blob/8d8d71707d6c60083d008062667cab18d0adaa25/src/azure-cli-core/azure/cli/core/style.py#L85
Cons
However, a disadvantage is that if the user manually chooses a dark background, or use an IDE like PyCharm with dark theme. There may be other readability issues if we default to light theme, such as blue, magenta.
As there isn't a way to detect the background color, there is no optimal solution. Users still need to run az config set core.theme=light/dark to select the color theme or totally disable color with az config set core.no_color=true.

https://stackoverflow.com/questions/58186391/text-displaying-as-bright-yellow-in-terminal
This is the interface for configuring ANSI color's real rendered RGB:


Add Device Request Globe RGBW Blub

Hi, thanks for all the great work on this project!
Would you be able to add the Globe RGBW Bulb?
Globe bulbs at Costco
Signature {"20":true,"21":"white","22":500,"23":1000,"24":"007803e803e8","25":"00373702016603e803e800000000373702000e03e803e800000000373702002303e803e800000000373702003003e803e800000000373702003e03e803e800000000","26":0}
I've worked out the dp values
20: Power (true,false)
21: Mode (white,colour,scene)
22: Brightness[only used in white mode] (0-1000)
23: WhiteColourTemp[only used in white mode] (0-1000) 2000k-5000k ie. 2000k=0 3000k=333 5000k=1000
24: Colour[only used in colour mode]
Combined hex value of Hue(Hex 000-168 [0-360]) Saturation(Hex 000-3e8 [0-1000]) Brightness(Hex 000-3e8 [0-1000]) with 0 separator.
Example of 24
"007803e803e8"
0 HUE 0 SAT 0 BRT
0 078 0 3e8 0 3e8
078 3e8 3e8 in Hex.
Hue 120(out of 360) Sat 1000(100%) Brt 1000(100%)
Probably not needed:
25: Scene Value[only used in scene mode] 0 separator
Example of 25
"25":"00373702016603e803e800000000373702000e03e803e800000000373702002303e803e800000000373702003003e803e800000000373702003e03e803e800000000"
Scene# 0, Speed 3737, Mode 2, HexColour1 166, Sat 3e8, Brt 3e8, Speed 3737, Mode 2, HexColour2 00e, etc.
Speeds are always a double number from 2828 to 6464 ie. 3232, 4747, 5151,etc
26:Unknown (Was always 0)
Thanks in advance!

I have a working version of this device on my fork. It works well but I had some glitch while developping, I don't know if they'll come back with more usage. Set your device to RGBTWGlobeLight if you want to try it.

@Rantaholic the data-points for RGBTWLight can be overridden in the latest release of this plugin. You can find the details on the Supported Devices page.
Please reopen the issue if that doesn't help.