The spinner doesn't animate anymore

Please Help me out @RealOrangeOne

How strange! What version of react-native-busy-indicator and react-native are you using?

According to Package.json:
"react-native": "0.42.0",
"react-native-busy-indicator": "^1.0.9",

@RealOrangeOne I also tried re-installing the package thinking that some file would be missing but, it didn't work out!

It seems react-native slightly updated the API for <ActivityIndicator/>, the main spinner component, but these changes dont seem to be breaking at all. Explicitly setting the animated prop to true on it though might work. Could you try editing the source directly and see if this fixes it?

What should I be changing in the file precisely? Any Property or some code!?

In here, add a prop to the <ActivityIndicator/> component: animating={true}.

Still Doesn't work @RealOrangeOne

damn, that's annoying. I'll try and recreate it myself and see

Okay @RealOrangeOne Really appreciate it. Thanks for the support.


Feature/flatpak

Add flatpak build script.

is this software supposed to be on flathub ? i can't find it


perf: make filters synchronous

This is a test to check whether making the filters synchronous makes a difference to the performance under the new raw io-uring implementation.

https://github.com/googleforgames/quilkin/blob/7a81ba0016f8c9d4ce9cf4687019b8fb57eb6dd0/src/components/proxy/io_uring_shared.rs#L272-L375 Needs to be changed as well, otherwise it is still spawning tasks and sending messages rather than processing in the loop.

Maybe I wasn't clear enough, the tasks should not be spawned at all since those are on the tokio runtime, I think just processing the packet inside the loop itself would maybe make things better since it won't need to context switch out for something that should take a micro/nanoseconds.


vmess ID only for one user

Hello team,
There are several problems in v2ray that i will say  :
1: There is no clear documentation.
2: we can not count the Client connected to Server.
3: we can not limit account only for one user for example i have created vmess on v2ray that provide id for every user but v2ray
does not have an option  to limit the account to connect to server, an ID per user.
Please help to solve this problems.

I need to this!

I also want to note that the Config Reference doesn't match with the JSON values. It would be nice for it to contain both the Go type name (and capitalized) and the matching JSON value.
Example:
In https://www.v2fly.org/en_US/v5/config/proxy/vmess.html#vmess-inbound, "users" should be Users []json.RawMessage   'json:"clients"'


FIX: Only Check Web3 on home page

Currently web3 is check on each page.
Should only be on home page

May this related to #58 ?


Fix test stability

Ah, I already made a PR for this issue (I'm sorry I haven't migrated to cupy): https://github.com/pfnet/chainer/pull/2725
I think my fix is preferable. The test still occasionally fails with your fix on cupy.power test in TestFusionUfunc.test_arithmetic.
How do you think?

OK, Your PR is preferable. Please send PR.

PR submitted: https://github.com/cupy/cupy/pull/50


🐞 [BUG] - Adding name validtion in contact section form

Description
When user types name it should not contains special symbols or number
Current behaviour
it accepting special symbols and number in name filed
Expected behaviour
it should a proper error not valid name
Reproduction steps
1. Go to CONTACT PAGE WHERE GET IN TOUCH FORM
2. Click on NAME
3. Enter your name
4. See error

Screenshots

Logs
No response
Browsers
No response
OS
No response
Are you contributing for a program ?
Other
Code of Conduct

[X] I have read and agree to the Contributing Guidelines of this project.

Please go for it!... liked it

can you add kwoc label to it

@anmode  created pr


Wexflow Record use.

Hi
I'm trying to find out how this Webflow Records works.
I have created a record - Check !
I have uploadet af document for the record - Check !
Now I want to Approve this record - How do I do this - the "Approved" button is deactivated. ?
Now I want to assign this record to a user - How do I do this - The "Assign to" is deactivated ?

@janborup You must create a new approval workflow in the designer and drag and drop ApproveRecord task in the designer, select your record in the task settings and select the user assigned to the record in the task settings. Finally, go to Approvals tab and kick off your approval workflow in order to assign the record to the user.

Okay..

I created a Workflow for this a test record with an "ApproveRecord".
I assigned it to a user.
I Logged in as this user, and there was a notification

Now there is a lot of notifications, but all with the same line.:
"An approval process on the record Test has started. You must update that record by adding new file versions. You can also add comments on that record."
But now what to do next ?
What to approve, and where to do it ?

The Approve-tab is empty:

The Record-tab has the task, but the approve is diabled.

Same when openning the Record, the "Approved" is diabled.
Where do the user approve this ?
/Jan

@janborup The user can only add files and comments on the record. It's the manager who approves the record. Generally, the user who started the approval workflow.

Hi Again
I don't get what i'm doing wrong.
If I in a Workflow assign a record to a user like "RecordCreator", then this user cannot approve the record only add documents, is that right ?
The record is allready uploadet with a document, how do i sent this to a approver, and how to the approver see the attached documents ?
/Jan

@janborup If the user assigned to the record adds a document, the approver will recieve a notification. The approver can see the attachments by opening the record in Records tab.
Here is a brief overview of an approval flow:

Create a record (The manager can delete records. The user assigned to a record can modify the record by uploading new file versions and adding comments but he cannot delete the record he has not created. The user assigned to a record can only delete the records he created.).
Create a workflow that takes as input the record and the user assigned to that record (A super-Admin or Admin user in Wexflow).
When the manager (A Super-Admin user in Wexflow) kicks off an approval workflow, a notification is sent to the user assigned to the record saying that he was assigned to work on that record.
Once the user assigned to the record modifies the record (by uploading a new file version of the record for example), a notification is sent to the manager saying that he have to check that record.
Once the manager checks the record he can add comments and if so, a new notification is sent to the user assigned to the record.
If the manager deletes the record, the user assigned to the record is notified.
If the record's due date is reached, the user assigned to the record and the manager are notified.
If the manager approves the record, a notification is sent to the user assigned to the record saying that the record was approved.
If the manager rejects the record, a notification is sent to the user assigned to the record saying that the record was rejected.
The approval can be stopped by the manager.

A non-manager user can also create records and approval workflows but he cannot access the records he did not create and the approval workflows he did not create. He can only edit the records created by him or assigned to him. He cannot delete the records he did not create but he can delete the records he created. If a non-manager user modifies a record assigned to him, the manager of the record receives a notification and an email. If the manager modifies a record assigned to a user, the user assigned to the record receives a notification and an email.

Okay.. Now I got the Record-WorkFlow (RWF) to work, but I think there is serveral flaws, if this  should be functional and more user friendly.
First the issues i experienced:

If you are a SuperAdministrator, you can create a RWF, with an Administrator assigned as approver, but the SuperAdministrator can Approve the same record self, and there i no logging about who has approved the record.

There is a lot of steps that should be done, just to do a simple RWF approvement.

If you are a approver of a record, the "Approvals"-tab needs to be refactored :
--  You cannot see what record or document you are approving
-- Not see records details
-- Not see who an when has been notified for this record
-- Logging of what happens with the record.
-- You can see all this in all the other tabs, but it you just have 10 records to approve, it will take a long time to do just the approval.

If you are a record creator, all the Record / RWF creation will take long time to do.

For next version I world recommend a new task for RecordWorkFlowImport with a template to import, like the way doing the email-template.

I have attached an example how this could med the RWF-creation muck simpler.
-- For each document in a ImportFolder, this task should create a new RWF with the  af WF template

RecordWorkflowImports.xml.txt
I hope this could help simplify this RWF
Say if I should do something on this
/Cheers

@janborup I understand what you want to do. You want to create a hot folder for records and auto create and auto start the approval workflow automatically once the record's file is imported in the database from the hot folder. I will work on that in the v5.7.

@aelassas
Yep.... The Hotfolder RWF AutoCreate function will save a lot of manual time on creation.
My concerns was also about the Approval-tab, because if you are a manager approver, you actually only want it to be very simple and informative in the "Approval-Tab/page":

Click to see the next document and who has assigned it (Only started jobs)
Maybe set at comment - Shortcut: Save
Click "Approve" and Next record/document in one task.
This way you can approve 5-6 documents in a minute, and all other Wexflow functions is normally inrelevant for a normal approver.

Suggestions:

New Userprofile : Approver
Only see started jobs, and assigned for the approver.
Max One click or shortcut to open the record document
Button [Approve] - [Reject] - [Approve+Next] shortcuts.
Button [Record] to see/change the record information.
Button [Log] to see logged information.
Button [Notifications] to see notification information for the record.
This could be a time-saver for a normal approver.

Future request:

A record finished flag on the record.
Multible Approvers
Assign extra Approver in startet workflow.
Auto delete RWF at finished, but keep log information in records.
A suggestion could be a "SmartApproval" page, optimized for mobile

Hope some of this comes in you pipeline considerations.
/Jan

@janborup I added multiple approvers feature and a hot folder for importing records which by default is C:\Wexflow\Records\_HotFolder. These features will be available in the v5.7.
If you want to test importing records, pull the latest version and add this setting in Wexflow.xml:
<Setting name="recordsHotFolder" value="C:\Wexflow\Records\_HotFolder" />

Hi @aelassas
I have testet the _hotFolder to -> Record, and this works fine. 👍 - but no RWF is autocreated for this.
I think you missed the RecordWorkflowImports.xml.txt template file I suggested above, because this takes care of multible Hotfolders, with multible Workflow templates, because normally VendorInvoices, Serviceinvoices, DepartmentInvoices, Timesheets, Travelbills and more, because normally is not the same department/manager approving all documents, and if you only have one _Hotfolder in Wexflow.xml, it would be difficult to manage this goal.
Another solution the TemplateFileImport could be a WF with:

FileSystemWatcher task (For a record hotfolder)
RecordDocumentImporter task (Created records for files in hotfolder)
CreateWorkFlow task (Settings - Record: FromImporter - AssignedTo: Admin, Wexflow - LaunchType: StartUp)

I cannot get the multible Approvers to work, but maybe I doing it wrong.

I have created a WF with 2 ApproveRecord-tasks, and 2 Approval-tasks (Only the first approver work)
I have created 2 WF with 1 ApproveRecord-task, and 1 Approval-task, one for Admin and one for Wexflow (Only the first approver admin is showed up in records).

/Jan

@janborup I like the TemplateFileImport:

FileSystemWatcher task (Watching record's hotfolder)
ApprovalRecordCreator task (Creates records from files in hotfolder)
ApprovalWorkflowCreator task (Settings - Record: From Importer - AssignedTo:  a user from settings - LaunchType: StartUp)

I will try to work on RecordCreator and ApprovalWorkflowCreator tasks in the v5.7.
For multiple approvers, here is what you should do to make it work:

Create an approval workflow with only one ApproveRecord task on a record R.
Start the first workflow using the user admin.
Create a second approval workflow with only one ApproveRecord task on the same record record R.
Create a super admin user named approver for example.
Login as approver user and start the second workflow.
Approve the second workflow using the user approver.
Login as admin and approve the first workflow.

You will see a table in records tab once you click on a record containing all approvers.
I also added a label for approved records, just pull the latest version and you will see that on approved records in records tab.

Hi
Regarding the multible Approvers, I have done all above Step 1 - 7 by the book, and nothing fails.
Still in the Record, it's only the first approver for "Admin" visible in the list, not the second one.

Did you do the following steps:

Create a second approval workflow with only one ApproveRecord task on
the same record record R.
Create a super admin user named approver.
Login as approver user and start the second workflow.
Approve the second workflow using the user approver. (At this point,
go to records tab and click on your record R to see if approver user was
added)
Login as admin and approve the first workflow. (At this point, go to
records tab and click on your record R to see if admin user was added)

The two approval workflows must be different and approved by different
users.
I have just tested it two times and it works fine on my end.
Le sam. 16 mai 2020 à 16:37, Jan Borup Coyle<EMAIL_ADDRESS>a
écrit :

Hi
Regarding the multible Approvers, I have done all above Step 1 - 7 by the
book, and nothing fails.
Still in the Record, it's only the first approver for "Admin" visible in
the list, not the second one.
[image: image]
https://user-images.githubusercontent.com/6866443/82125012-461d2500-97a3-11ea-8e2f-83bf0e9bdf00.png
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/aelassas/Wexflow/issues/234#issuecomment-629672338,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAKHB2W4SJ4UY7EFF53IYRLRR26MBANCNFSM4M6EULSA
.

Okay
I only got it to work one time, but only if approver from the Second WF approves first, and the approver from first WF approves last, and that is even if both WF is started from the beginning.
The problem is also if both approvers is SuperAdmins, then in Approval-tab, both jobs is visible for both users for approval, and still in Approval-tab / job.... you have absolutely no idea about what you are approving, even the Record name, Record description or Document is visible or trackable in Approval-tab.
If you as manager have several Records to approve, you have no chance to quess what WF it belongs to.

@janborup If the two approval workflows are running in parallel, you can approve the first workflow first or second it is the same thing. To check that the approvers were added, once you start the second workflow go to records tab, refresh the page and click on the record, you will see the two approvers with approved flag set to false (unchecked). Once, you start approving the record, you can refresh the page and click on the record to see the approvers getting updated.
Regarding the Approvals tab issue, maybe naming the approval workflow with the user's username and record's name may solve this. By doing this, the logged in manager can easily find his created approval workflows and approve/reject them. But for multiple managers, the approvers must be super admin Wexflow users. For the moment, there's no way to do it otherwise.
An admin user can be an approver and can only see his approval workflows, this solves the issue but the admin user as an approver can only approve/reject his created records. He cannot share records with other admin users. Multiple admin approvers is not possible for the moment because admin users cannot share the same record.

Hi @aelassas
Just testet ApprovalRecordCreator-task, and is works fine 👌
/Cheers

A lille test problem with the ApprovalRecordCreator
I create this workflow:

Then i drop 2 or more files in the import folder.
Only the some of files is Record-created.
Maybe it's a delay problem. !!!

@janborup All fixed. Can you pull the latest version and try again? Also, you don't need FilesRemover task because files are moved from FileSystemWatcher folder to Records folder in ApprovalRecordsCreator task.

Hi @aelassas
I just fetch latest, YES - now it works like a charm. 😎
Then it only the last part of the automatisation.. the 3. ApprovalWorkflowCreator task
I will test this when you are ready.
/Cheers

@janborup I have just added ApprovalWorkflowsCreator task. Just pull the latest version, update your TasksNames.json and TasksSettings.json, add ApprovalWorkflowsCreator into your workfow, set approver and assignedTo settings, update FileSystemWatcher task and test.
ApprovalWorkflowsCreator creates an approval workflow for the record and starts it. This task must always be after ApprovalRecordsCreator task because it takes as input the records created by ApprovalRecordsCreator task.

Hi @aelassas
Very good Job done, i have testet this RecordFileImportFlow both in Windows.Net and in .Net Core, and in both environments the fileflow works great. 😎👍
I had a little stange issue when testing, because if an Approver [Reject] a record, the WF stops and nothing happens.
If the WF is then again started, but then [Stopped] by the Appover, it creates a second Approver for the creator (Admin) of the WF, not the assignedBy ??????

If the WF is then again started, and [Approved] by the approver, the created approver (Admin)m then disappers again, and only the Approver is registered as Approver.

Does it make sense - maybe this is supposed to !!!

If the WF is then again started, and [Approved] by the approver, the created approver (Admin)m then disappers again, and only the Approver is registered as Approver.

@janborup Yes, this is done by design. If you stop the approval workflow and start it again all the approved approvers are deleted and the new ones are added during the approval flow.
Did you test deleteWorkflowOnApproval setting in FileSystemImport? You don't have to configure anything, deleteWorkflowOnApproval is by default set true in ApprovalWorkflowsCreator task. Just pull the latest version, update your TasksSettings.json and test.

Yes. Sure..
Ii tested the deleteWorkflowOnApproval In both versions, and it works like a charm. 🤩
I think we got the goal for this issue, and then we take a more user friendly Approval overview, in another topic.
Thanks - good work. 😁


Remove false claim about Telegram being the most secure and fastest messaging app.

I have checked the commit regarding your changes in Indonesia translation. The updated translation matches with the updated English document. No translation error. :)
On February 2, 2017 7:43:51 AM GMT+07:00, Eric Fontaine<EMAIL_ADDRESS>wrote:

You can view, comment on, or merge this pull request online at:
https://github.com/ro31337/libretaxi-www/pull/16
-- Commit Summary --

Remove false claim about Telegram being the most secure and fastest
messaging app.

-- File Changes --
M index-es.html (2)
M index-id.html (2)
M index-pt.html (2)
M index.html (2)
-- Patch Links --
https://github.com/ro31337/libretaxi-www/pull/16.patch
https://github.com/ro31337/libretaxi-www/pull/16.diff

thanks.  There are a few other languages that I have no idea how to rewrite.


Why is this a separate repo?

Why is this a separate repo under a different account and not just a fork under the original repo? This repo seem like the main one with more commit, but it seem to remove all tie to the original repo or acknowledge it. Shouldn't there be a link somewhere to route back to the original one?

Hii,
This fork is not shown as a for as I wanted people to add pull requests and issues directly to my fork, and I actually forgot to add a note to acknowledge the original repo, but there are still mentions of the original dev in the code.
I'll update the README right now
Thank You.


[FEATURE] Run Command to Initialize deflisten Variables

Description of the requested feature
I'm making a "script" based on Hyprland's IPC: the main idea is to push workspace information in JSON format over DBus on every update. Eww, on the other end, it will listen to signals on specific addresses:
(deflisten hypr_workspaces
  "dpeek -i org.hypryuck -p /monitors -m workspaces")

(dpeek is my own DBus listener to print stripped messages to stdout)
This model works quite well most of the time, except for initialization. Currently, I'm relying on the openlayer>>gtk-layer-shell event from Hyprland to write initial workspace information on DBus. I wonder if Eww can automatically fetch the initial value or run an init command that triggers the listening stream to emit some info. For example, I have a DBus method call on org.hypryuck/rpc/query that will trigger the script to write updated information, and I was attempting to invoke the call command through a dummy variable:
(defpoll runinit :initial true :interval "86400s"
  "dpoke -i org.hypryuck -p /rpc -m query -t method_call")

This, however, only works if I use this variable somewhere. Sneaking the command into another variable could serve as a dirty workaround:
(defpoll year :initial 1970
              :interval "3600s"
  "dpoke -i org.hypryuck -p /rpc -m query -t method_call >/dev/null; date '+%Y'")

Proposed configuration syntax
Perhaps we may have a trigger command for deflisten variables?
(deflisten hypr_workspaces
  :trigger "dpoke -i org.hypryuck -p /rpc -m query -t method_call"
  "dpeek -i org.hypryuck -p /monitors -m workspaces")

Additional context
My Eww configuration

@hftsai256 could you maybe reopen this feature request? Your workaround does work but it's not really how defpoll should be used, I think your suggestion would be very useful and would make things more "clean".


feat: Cluster Proxy and Agent, with Spore minting pattern support

What does this PR do:

Adds two Type Cell called Cluster Proxy and Cluster Agent
Support use Cluster Agent to mint Spore within a Cluster
Support use "Lock Proxy Pattern" for Cluster Agent  to mint Spore within a Cluster

did you push a wrong branch? there are no code diff with master branch.

did you push a wrong branch? there are no code diff with master branch.

I switched to a base reply to make the diff works properly


[usecase] Improve manual tests to auto using ATIP

Impacted TCs num(approved): New 0, Update 1, Delete 0
Unit test Platform: Android
Android test result summary: Pass 1, Fail 0, Block 0

LGTM


Fuzz testing seems to be running without a seed corpus

If I've read the code correctly, fuzz tests attempt to construct a seed corpus from json files in the test folder, but there are none (seems to be a left-over from Boost.Json). Fuzzing without a seed corpus may reduce the effectiveness of fuzzing.

Yes. That's correct. That was some bad copy/pasting from Boost.Json. This b2 infrastructure is also kind of hard to maintain because it's doing a lot of the work ad hoc instead of through the build system. That is besides the problem of the build system used for that being b2, which is unproductive for us since we have to keep copy/pasting patterns from other places. It was something to get started but we ended up moving to other things as usual and never having the time to improve it.

@anarthal Do you have fuzz tests in boost.mysql or do you know of a pattern of fuzz tests that would be a good idea to replicate?
The pattern is got from Boost.JSON is quite problematic. I want to revisit this.

Yes, I have. You can have a look at MySQL's fuzzing, or to the new contributor guide page which explains more or less what I did.
What you're missing is a seed corpus. It should contain a variety of samples (in your case, URLs) that guide the fuzzer about how a URL looks like, so it doesn't have to start guessing from zero.
In MySQL, I created the seed corpus "by hand": I've got a thorough suite of integration tests; I ran them, captured the packets with Wireshark, and transformed them into binary files that matched what the deserialization functions expected.
In your case, there are two options: 1) look in the Internet for a corpus of URLs for testing and use that. URLs are much more common than MySQL packets, so you should be able to find some. You need to produce a set of files, one per URL. 2) Take all the URLs you use in unit tests (may be a time-consuming job) and put them into files.
If you can, create files with some ill-formed URLs, too.
JSON uses all JSON files used during unit testing as seed corpus. IIRC, these files come from an external JSON corpus designed to exercise JSON parsers.
Looking into URLs fuzzer, I'd also suggest to split what you have in several fuzzers. That would give you 5 fuzzing executables:
fuzz_absolute_uri
fuzz_origin_form
fuzz_relative_ref
fuzz_uri
fuzz_uri_reference

This is specially important if each parser considers valid a different set of values. In MySQL, there are like 10 fuzzers, since the protocol is shit and message types are inferred from the context, and not from a message type. I've got different seed corpus for each fuzzer.
If I can help anyhow, please let me know =}


ROS2-Tracing-Trace-and-Analyze fix for iron tutorial

Matching iron branch of tracetools_analysis repository must be cloned.
If the default master branch is used instead, the follow-up rosdep install --from-paths src --ignore-src -y command will fail and return a seemingly unrelated error message:
test_ros2trace_analysis: Cannot locate rosdep definition for [test_tracetools]

@Mergifyio backport jazzy rolling humble


Starting R terminal with Python extension loaded causes problems

Describe the bug
I'm not sure whether this is a bug with the R or Python extension, or both.
When I run the "Create R terminal" command, and the Python extension is active, I end up with extraneous text in the terminal pane.
To Reproduce
Steps to reproduce the behavior:

Have this extension and the MS Python extension installed
Have a folder with both .R and .py files present
Open a .py file (this loads vscode-python)
Open a .R file (this loads vscode-R)
With the .R file active, run "Create R terminal"

This results in the following text being sent to the terminal (it's used by the Python extension)
R version 4.0.2 (2020-06-22) -- "Taking Off Again"
Platform: x86_64-w64-mingw32 (64-bit)
r$> C:/Users/hongo/Miniconda3/Scripts/activate
Error: unexpected '/' in "C:/"
r$> conda activate base
Error: unexpected symbol in "conda activate"
r$>

Environment (please complete the following information):

OS: Windows 10 2004
VSCode Version: 1.46.1
R Version: 4.0.2
vscode-R version: 1.4.2

Additional context

vscode-python version: 2020.6.90262
using Radian as the rterm

Hi @hongooi73, this is caused by the Python extension. I created an issue for it: https://github.com/microsoft/vscode-python/issues/11963


Fast swiping bug

This PR address 2 things:

Currently, when you swipe really quickly within the pager, you'll notice that sometimes, the segmented control lags behind and doesn't rest on the index that it was last left to. Super easy to reproduce if you scroll in one direction, and before the animation is fully complete (before didEndDecelerating), swipe back to the previous screen. It seemed, it assumed the indices were the same and didn't actually process that swipe like it should.

On an iPad, when the pager is used inside a SplitViewController, 100% of the time, it seems the calculation of the targetContentOffset returned doesn't result in a modulo of 0 like we were expecting, therefore the segmented control failed to update. This PR changes how that index is calculated so it works on both types of devices/screens.

What are your thoughts regarding this @maxep? :)

Hi @DrJid
Sorry for the late response, I noticed this behavior, thanks for the fix! I will soon release it and integrate it into MXSegmentedPager.


Test fail if no timezone is set on system

Describe the bug
Running the tests on a system with no timezone set makes pyhanko_tests/cli_tests/conftest.py fail:
================================================================== ERRORS ==================================================================
______________________________________________________ ERROR collecting test session _______________________________________________________
/usr/lib/python3.10/importlib/__init__.py:126: in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
<frozen importlib._bootstrap>:1050: in _gcd_import
    ???
<frozen importlib._bootstrap>:1027: in _find_and_load
    ???
<frozen importlib._bootstrap>:1006: in _find_and_load_unlocked
    ???
<frozen importlib._bootstrap>:688: in _load_unlocked
    ???
/usr/lib/python3.10/site-packages/_pytest/assertion/rewrite.py:172: in exec_module
    exec(co, module.__dict__)
pyhanko_tests/cli_tests/conftest.py:52: in <module>
    FREEZE_DT = tzlocal.get_localzone().localize(datetime.datetime(2020, 8, 1))
E   AttributeError: 'datetime.timezone' object has no attribute 'localize'
========================================================= short test summary info ==========================================================
ERROR  - AttributeError: 'datetime.timezone' object has no attribute 'localize'
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
============================================================= 1 error in 1.45s =============================================================

This is due to the following deprecated use of datetime:
>>> import datetime
>>> import tzlocal
>>> tzlocal.get_localzone().localize(datetime.datetime(2020, 8, 1))
/usr/lib/python3.10/site-packages/tzlocal/unix.py:183: UserWarning: Can not find any timezone configuration, defaulting to UTC.
  warnings.warn("Can not find any timezone configuration, defaulting to UTC.")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'datetime.timezone' object has no attribute 'localize'

On a system with a timezone set, this part still produces a deprecation warning:
>>> import datetime
>>> import tzlocal
>>> FREEZE_DT = tzlocal.get_localzone().localize(datetime.datetime(2020, 8, 1))
<stdin>:1: PytzUsageWarning: The localize method is no longer necessary, as this time zone supports the fold attribute (PEP 495). For more details on migrating to a PEP 495-compliant implementation, see https://pytz-deprecation-shim.readthedocs.io/en/latest/migration.html

See this for more info: https://pytz-deprecation-shim.readthedocs.io/en/latest/migration.html
To Reproduce
Running in a docker image is the easiest way to reproduce.
Expected behavior
Tests should pass, regardless of if a timezone is set or not.
Environment (please complete the following information):

OS: Arch Linux
Version N/A

Interesting... I guess I assumed that the local zone would default to UTC or something.
I explicitly quashed that deprecation warning because I thought that passing the timezone directly into the datetime init function would produce unexpected results on Python 3.8 (3.9?) and under---burned myself on that one in the past---but I suppose I might have to get to the bottom of that anyway. Worst case, we branch based on the Python version.
Will take a look; thanks!


Answers ?

It would be great to have a file with multiple possible answers to each question.

another great idea thanks

Can I make a pull request with some of my answers ? (I don't think they are all correct && complete)

yeah create an answers folder and a folder of the question (as a number for now) perhaps with your username. What do you suggest should be the format?
answers
\1
\ overben.js

you can keep it anonymous if you want until I figure out a system for people to submit their answers either by pull requests or online forms

I think having a directory called answers and markdown files for each question should suffice. Then link to the file from the readme.md
Example: answer for question 1 would be contained in answers/1.md

@gdi2290  just wondering if any progress was ever made on collecting answers for any of these questions? I know there is a gist linked for one of the questions...if not, i can definitely try to create a pr with some of my answers if they are acceptable.

can you create a pr and create another file with the answers

Sure, I'll start working on that today

@gdi2290 #9 :)


[C++][Parquet] Refactor parquet_reader.cc into a ParquetFileReader::DebugPrint method

This is follow up work per discussion in PARQUET-418 and https://github.com/apache/parquet-cpp/pull/18
Reporter: Wes McKinney / @wesm
Assignee: Wes McKinney](https://issues.apache.org/jira/secure/ViewProfile.jspa?name=wesm) / @wesm
Note: This issue was originally created as PARQUET-453. Please see the migration documentation for further details.

Wes McKinney / @wesm:
This was resolved in pull request:
https://github.com/apache/parquet-cpp/pull/23

Wes McKinney / @wesm:
This is done as part of https://github.com/apache/parquet-cpp/pull/23 aka PARQUET-451


Proposal: On interactive connection, timeouts, and connection conccurency

I propose changing how the hrana protocol handles interactive connections.
How it currently works
Hrana-over-HTTP has become the de facto protocol to interact with sqld. When a request is received by hrana, a Hrana Stream is created. This Stream owns an SQLite connection to execute queries sent to that stream. A Stream is identified with a baton. When a stream is opened, the baton for that stream is returned to the client. The client can pass the baton to subsequent requests so that they are executed on the stream identified by that baton. When clients want to dispose of that stream, they emit a Close command on that stream, which is closed, freeing the SQLite connection in the process. To avoid keeping streams open forever, a watchdog is associated with each stream if a client fails to complete it. If the watchdog fails to be kicked (by receiving a request on that stream), then, after a defined period (10s currently), the stream is expired, and the SQLite connection is released.
Transactions also have a timeout mechanism that is separate from the stream. Transactions are given a (configurable, default to 5s) timeslot to complete. Failing to do so yields a timeout error. The lock-stealer ensures that the transaction lock is delivered to another waiting connection, if any.
Motivation
This change is motivated by multiple factors:

Resource management: Each interactive connection holds resources during its lifetime. The incentive for sqld is to keep resource usage low. Therefore, the protocol should be designed in such a way that minimizes resource squatting.
We do see a lot of hrana stream expired in prod, which leads to user errors. That is not desirable, and we must address that somehow.
The current protocol expects that the client will be well-behaved and close their stream when they are done with it, which I believe is a fundamental design flaw, for clients, by nature, need to be trusted.
The current model limits the transaction duration, which limits the users, especially when evaluating/using the shell to interact with the database.

Solution

Default to non-interactive transaction:
On the hrana side, only return keep a stream open if the connection is not in an auto-commit state (i.e., the connection is currently in a transaction state). In other words, if the connection is not in a transaction state after executing a query, the default behavior is to close it. In that case, no baton is returned, and the resources are released. On subsequent queries, a new connection will be opened.
This solves the following issues:

A connection is by default not used for longer than necessary, alleviating resource contention on the server
The client is less likely to hold to a stream for too long, reducing the risk that their stream expires.
The interactive transaction issue is solved straightforwardly: if a transaction is still opened, a baton is returned, and the client uses it for subsequent queries. No transaction => no baton => no problem.
This API is less likely to be misused by a client not closing the streams properly

It may be desired cases. I'll use interactive connections outside of a transaction, but it would be an opt-in rather than an opt-out as it is today.

Hard and soft transaction limits
The current transaction timeout is a hard timeout. It is enforced in two ways:

The lock stealer: if a transaction runs too long, and another transaction is waiting for the lock, the waiting transaction can steal the lock and timeout the long-running transaction. I call that a soft timeout, as if no other transaction is trying to acquire the lock, a transaction is allowed to run forever.
Transaction self-monitoring: upon its execution, a transaction monitors itself to ensure that they don't exceed its allocated transaction time. This is a hard timeout since it happens no matter if another connection is trying to acquire the lock.

We should increase the timeout to let transactions run longer if there is no contention. We will still need to limit transactions so as not to prevent checkpoints, but we can also let them run for as long as a stream is open if the connection is uncontended.

Kick the watchdog*
In the CLI scenario, keeping a stream open for an extended period may be desirable. We can allow that by having the client periodically kick the stream watchdog. This may require exposing a Noop operation in the hrana protocol, whose sole purpose is to keep the stream open.

Ah, I was sure we already implement a soft limit for transactions, to let them last longer if there's no contention. So that's something we should definitely add.
And as for checkpoints, we can make them play the same stealing game - transactions only have a soft timeout, but once a checkpoint is about to be triggered, it tries to steal the lock, and potentially roll back a transaction that already passed the soft timeout.

I think the cost of re-opening a connection is completely absorbed by network latencies, but we'd need to measure that. There are other levers to improve connection creation latency on the long run as well

Issue with lazily closing is that if we return a baton, then it is assumed that it can be used withing the limits. Long lasting connections should be the exception, to reduces contention on the concurrency semaphore

Transactions are given a (configurable, default to 5s) timeslot to complete

Apologies for the sidetrack but how can users configure this timeout duration on turso or in libsql? We currently have a use-case where we're trying to write large amounts of data in a single transaction and it's constantly timing out.

hey @billythedummy, currently this option is not exposed in turso. But there is a workaround. Say you have a main table CREATE TABLE emails (addr) to which you want to bulk import transactionally. What you can do is create a CREATE TABLE emails_tmp (addr), to which you import in batch. Once all the data is loaded in the temp table, you can do INSERT INTO emails SELECT * FROM emails_tmp. That will copy all the data over to the main table, in a single transaction.


SK 1.0.1

Hello, Any release date of copilot chat with SK 1.01?

https://github.com/microsoft/chat-copilot/pull/703

Update SK to 1.0.1 #703

When will this pull request be merged?
I'm waiting for the code to be upgraded to SK V1.01 to improve the planner.

Same, looking forward to this implementation. :)

This is now released to C# Kernel 1.0.4


Type incorrectly inferred as union type when should be a string literal type

TypeScript Version:  3.2.2
Search Terms: string literal type infer
Code
type MethodNamesFrom<T> = {
  [K in keyof T]: T[K] extends Function ? K : never
}[keyof T]

const obj = {
  a: () => { },
  b: () => { },
  c: 2
}

// CASE 1: PROBLEM?
function Infer1<TObject, TKey extends MethodNamesFrom<TObject>>(o: TObject, k: TKey) {

}

Infer1(obj, 'a') // TKey infer "a" | "b"

// CASE 2: OK
function Infer2<TKey extends MethodNamesFrom<typeof obj>>(k: TKey) {

}

Infer2('a') // TKey infer "a"

// CASE 3: OK, explicity define generic types
Infer1<typeof obj, 'a'>(obj, 'a') // TKey infer "a"

// CASE 4: OK, explicity define "a" as "a"
Infer1(obj, 'a' as 'a') // TKey infer "a"

// CASE 5: OK, enforces string in TKey
function Infer3<TObject, TKey extends string & MethodNamesFrom<TObject>>(o: TObject, k: TKey) {

}

Infer3(obj, 'a') // TKey infer "a"

Expected behavior: Infer TKey as "a" | "b" in case 1
Actual behavior: Should infer TKey as "a"
Playground Link: https://www.typescriptlang.org/play/index.html#src=type MethodNamesFrom<T> %3D {
  [K in keyof T]%3A T[K] extends Function %3F K %3A never
}[keyof T]

const obj %3D {
  a%3A () %3D> { }%2C
  b%3A () %3D> { }%2C
  c%3A 2
}

%2F%2F PROBLEM%3F
function Infer1<TObject%2C TKey extends MethodNamesFrom<TObject>>(o%3A TObject%2C k%3A TKey) {

}

Infer1(obj%2C 'a') %2F%2F TKey infer "a" | "b"

%2F%2F OK
function Infer2<TKey extends MethodNamesFrom<typeof obj>>(k%3A TKey) {

}

Infer2('a') %2F%2F TKey infer "a"

%2F%2F OK%2C explicity define generic types
Infer1<typeof obj%2C 'a'>(obj%2C 'a') %2F%2F TKey infer "a"

%2F%2F OK%2C explicity define "a" as "a"
Infer1(obj%2C 'a' as 'a') %2F%2F TKey infer "a"

%2F%2F OK%2C enforces string in TKey
function Infer3<TObject%2C TKey extends string %26 MethodNamesFrom<TObject>>(o%3A TObject%2C k%3A TKey) {

}

Infer3(obj%2C 'a') %2F%2F TKey infer "a"

Related Issues:

Just to notify here that at least versions 3.3.3+ doesn't have more this bug. I think this issue can be closed.

This was fixed in #29478, yes.


Please publish to rubygems

It seems like there are almost two years of changes merged into master that have not been published to rubygems.  Is this gem abandoned?

Working on getting access to do so.
In the meantime, this will work...
gem 'omniauth-github', git: 'https://github.com/intridea/omniauth-github.git', tag: '1.2.0'

@usbsnowcrash It's now live!
https://rubygems.org/gems/omniauth-github/versions/1.2.0

Awesome thanks @tmilewski


Hub and spoke topology

First of all awesome work guys !!
We have a situation where the customer might not want full mesh connectivity between all the nodes but just the connectivity of each node just to a central hub. The central hub could be the lighthouse itself or a separate node.
Is there any way to define which connections should be allowed between which nodes.
Thanks

That should be what you use the groups for when you make the
certificates.  I've not done it but I believe that is the purpose of
the setting.
On Mon, 2021-09-20 at 01:12 -0700, chirayu-patel wrote:

First of all awesome work guys !!
We have a situation where the customer might not want full mesh
connectivity between all the nodes but just the connectivity of each
node just to a central hub. The central hub could be the lighthouse
itself or a separate node.
Is there any way to define which connections should be allowed
between which nodes.
Thanks
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or unsubscribe.
Triage notifications on the go with GitHub Mobile for iOS or Android.

Understood.. thx !!


build: tweak search path for embedding

Correct the path to allow using swift-collections embedded in a larger project.  This is meant to assist with building LSP with vendored dependencies.

We don't need to duplicate PRs like this and #338, unless there are material changes between them -- changes flow from upstream to downstream dev branches (release/1.0 → release/1.1 → main). (Unfortunately we do not have automergers set up, so this is currently done manually, as needed.)


Components function warning every time

Created a new react native project and install NativeBase, and call the components from native-base such Container, Text.
There are many warning message display in yellowbox, all related with "componentWillMount","componentWillUpdate","componentWillReceiveProps" in nativebase components. Warning message will alert in every time when I open those page relate with nativebase. Warning message as below:
_Warning: componentWillMount is deprecated and will be removed in the next major version. Use componentDidMount instead. As a temporary workaround, you can rename to UNSAFE_componentWillMount.

Please update the following components: Container, DrawerLayout, DrawerView, Image, Text, TouchableOpacity, Transitioner, View, withCachedChildNavigation(DrawerScreen), withCachedChildNavigation(DrawerSidebar)

Learn more about this warning here:
https://fb.me/react-async-component-lifecycle-hooks_

My react version info as below:
    "native-base": "^2.3.9",
    "react": "^16.3.0-alpha.1",
    "react-native": "0.54.0",
    "react-native-elements": "^1.0.0-beta2",
    "react-native-vector-icons": "^4.5.0",
    "react-navigation": "^1.4.0"

Thank You.

NativeBase needs to update the used lifecycle methods, see RFC https://github.com/reactjs/rfcs/blob/master/text/0006-static-lifecycle-methods.md

Thanks for reply.
I know NativeBase needs to update those method call and I try to renew all for them, however some  component for example: Container, I can't find where is using componentWillMount under Container.
Or just need to wait for NativeBase official update?

+1

NativeBase 2.4.1 works fine with React 16.3.1 and React-Native 0.55.0
No fixes needed from NativeBase side. The reason because React 16.3.0-alpha.1 announced just the warning messages for deprecated lifecycle methods and not introduced its replacements.
React 16.3.1 introduced new aliases for these unsafe lifecycles namely, UNSAFE_componentWillMount, UNSAFE_componentWillReceiveProps and UNSAFE_componentWillUpdate.
https://reactjs.org/blog/2018/03/27/update-on-async-rendering.html
Very soon NativeBase will implement the new static lifecycle methods
Stay tuned!

Is there a way to hide the warnings? They cover the footer area, making it difficult to develop

@kamal0808 As i said earlier, you can upgrade versions of React and React Native to get a fix.
If you want to stick to these versions which gives you warnings, then may be you can do this console.disableYellowBox = true;  anywhere in your application

@SupriyaKalghatgi I am using the latest versions of react and react native. However console.disableYellowBox = true; disabled them for now. Thanks!

If you are using latest of React and RN, then no need to have console.disableYellowBox = true;

@SupriyaKalghatgi current version is 16.4.1, warnings will be removed in version 17. See https://reactjs.org/blog/2018/03/27/update-on-async-rendering.html

@SupriyaKalghatgi Any news?

@SupriyaKalghatgi Any news?

discussed solutions worked for me; make sure you also removed from babel config


Undefined behavior in Battery.cpp

I have a battery with the following files in sysfs:
$ ls /sys/class/power_supply/hid-0018\:04F3\:2A82.0008-battery
capacity  device  hwmon5  model_name  online  power  powers  present  scope  status  subsystem  type  uevent  wakeup37

Waybar detects this as a battery and adds it to the batteries_ map here: https://github.com/Max1Truc/Waybar/blob/master/src/modules/battery.cpp#L90
Then it tries to read files that the battery doesn't have here: https://github.com/Max1Truc/Waybar/blob/master/src/modules/battery.cpp#L166
And then it uses the values which were meant to be read from the files (but weren't, so they are uninitialized) here: https://github.com/Max1Truc/Waybar/blob/master/src/modules/battery.cpp#L182
Waybar should either not consider batteries that are missing the files that it reads, or have some fallback mechanism if it can't read the file.

May you check if it works by replacing power_now with power on the linked line ?
https://github.com/Max1Truc/Waybar/blob/master/src/modules/battery.cpp#L165
It it works I may submit a PR which checks for the presence of power if there are no current_now or power_now

That's not sufficient to fix the issue, because there will still be undefined behavior when computing the percentage using the energy_now and energy_full values.

Could you post the output of upower -i PATHOFBATTERY where you can get PATHOFBATTERY with upower -e ?
I would like to check if upower figures out a way to know the percentage.

$ upower -i /org/freedesktop/UPower/devices/keyboard_hid_0018o04F3o2A82x0008_battery
  native-path:          hid-0018:04F3:2A82.0008-battery
  model:                04F31234:00 04F3:2A82
  power supply:         no
  updated:              Tue 18 May 2021 03:48:14 PM CDT (7 seconds ago)
  has history:          yes
  has statistics:       yes
  keyboard
    present:             yes
    rechargeable:        yes
    state:               discharging
    warning-level:       critical
    percentage:          1%
    icon-name:          'battery-caution-symbolic'

It looks like it's just falling back to something near zero.
I don't think this device is properly supported by Linux, so it makes sense that it's missing charge values.

So do you think it should be ignored by Waybar ?

Probably, or at least it should be ignored if not explicitly configured, and if explicitly configured it should be reported as 0% (basically what UPower is doing).

Is it better with #1105? @danielrparks

That change still exhibits undefined behavior, because it will still attempt to read from files that do not exist.
As a result, the values power_now, energy_full, energy_now, and energy_full_design will all be uninitialized when added to the total values starting here. If the battery with missing info is the first battery, they will be garbage data; otherwise it will likely use the values from the previous battery which will skew the average.


Feature request: Auditor overviews for admins

Describe the bug
An administrator member does have the Auditor functionality available.
Not sure if there is a specific reason for this, but as an administrator I expected to also have the request/approval history available.

I personally would not expect this. An administrator should only be able to configure the app. If you want the administrator to be also an auditor just put this person into the auditors group. I think it is a nice separation of concerns.


Add possibility to take snapshot for multiple tables at once

Will be useful to take snapshot for multiple tables at once.
It is useful when a test do not change nothing in database because user perform an invalid operation, so in this case at the end of the test we should be able to assert that tables was not changed, so we just check the snapshot.

Also, will be useful to take snapshot of all tables with possibility to specify what tables to exclude.

Hmm ... that's interesting but a little more tricky, as it may  be dependent on database engine internals. I try to stay away from these :) Apart from some known issues , the API works the same for a relevant set of mainstream database engines.

This issue is subsumed by #52


event organization and preparation

[ ] List recommended testing platforms/libraries by language to software requirements on event page
[ ] Expand testing lesson
with recommended frameworks and exercises in other languages
[ ] Assign roles in schedule planning in README.md, especially instructors on day 1
[ ] Disseminate event via Nordic channels
[ ] After registrations start coming in: start looking into projects
[ ] In case of registrations without public repos, ask for access to code
[ ] If we get projects in unfamiliar languages, try to recruit more mentors
[ ] Carefully plan schedule and timing

Johan is interested in extending the testing lesson with recommended frameworks and exercises for Fortran. Also for C and C++ could be of relevance.

I will work on the C++ examples. I see that there is a Google Test example already: I will add Catch2 and Boost Test.

@robertodr sounds good with the C++ examples that you have found. I will have a look for Fortran examples or write some Fortran code from scratch.

On the Python side of things, consider adding:

Examples with Hypothesis for property-bases testing. Would require explaining what property-based testing is. The  technique is valuable and powerful, but I am not aware of frameworks for other languages.
Ward is a quite new Python testing framework.

On the automation side of things, consider mentioning Azure pipelines and removing Travis CI. The billing changes implemented in Travis CI at the end of 2020 make it much less appealing (and useful!) now than it used to be!

Fully agree, we should de-emphasize Travis. This is from a different time.


remove bower_components from repository

The bower_components should not be included in the git repository.

Good point, thanks for pointing out.


Incorrect powershell prerequisite version

This page lists PowerShell version 5.0 or higher as a prerequisite, but includes the -AsByteStream parameter of Get-Content which was not supported until version 6.0.  Running this on PowerShell 5.1 results in "Get-Content : A parameter cannot be found that matches parameter name 'AsByteStream'."

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 9a4697d7-2e64-dd45-0bb7-676c41fafe88
Version Independent ID: 92168a06-a032-873b-37bc-dcd46b37ae13
Content: Migrate TDE certificate - managed instance - Azure SQL Managed Instance
Content Source: articles/azure-sql/managed-instance/tde-certificate-migrate.md
Service: sql-managed-instance
Sub-service: security
GitHub Login: @MladjoA
Microsoft Alias: mlandzic

@KitLemmonds Thanks for the feedback.
@MladjoA Could help us clarify the statement above provided by @KitLemmonds. In this documentation it is stated that Windows PowerShell version 5.0 or higher is a perquisite. But in this documentation it says "The AsByteStream parameter was introduced in Windows PowerShell 6.0."

Thanks @KitLemmonds for reporting this. I just created a PR to clarify that with version 5.x of PowerShell, correct parameter is -Encoding Byte and with 6.0 and above -AsByteStream

#please-close


Enum Problem

Bug Report

🔎 Search Terms

🕗 Version & Regression Information

This is a crash
This changed between versions ______ and _______
This is the behavior in every version I tried, and I reviewed the FAQ for entries about _________
I was unable to test this on prior versions because _______

⏯ Playground Link

Playground link with relevant code
https://www.typescriptlang.org/play?#code/KYOwrgtgBAYg9nKBvAsAKCpqBxBATAGnSygCEBDQ9AX3XQGM4QBnOAG2ADoBzAJzjAAHABQAiAKLhoAdwCWAFwAWUAPIAjAFbB68qAGtgAT2aiAlOnVadnA8eHw4pzgDM4vceXqLhtgLwA+KEYWdi42OG5hJFtqU3M0YNYOHn4hSTxheIYmJK4+AREJKSg5JVVNbV0AN3I2MGATeMtKzhq6hvsEJ1d3T282+oCgnNDOcMikAeBYrISR5Py0kAzZxNHFwslIEoVlZp0oUHleWQazCwrrI5OOh263Dy9hYQBtWwIoKYBdUyHskOS4yi70+tXqMzocwBeVSgnSmXQQA
💻 Code

// We can quickly address your report if:
//  - The code sample is short. Nearly all TypeScript bugs can be demonstrated in 20-30 lines of code!
//  - It doesn't use external libraries. These are often issues with the type definitions rather than TypeScript bugs.
//  - The incorrectness of the behavior is readily apparent from reading the sample.
// Reports are slower to investigate if:
//  - We have to pare too much extraneous code.
//  - We have to clone a large repo and validate that the problem isn't elsewhere.
//  - The sample is confusing or doesn't clearly demonstrate what's wrong.

🙁 Actual behavior

When you iterate through enum keys you find that the keys are logged then the values of each key are logged as well when using Object.keys(). When you use Object.entries() you find that the keys and values on the original object are printed and then the values are printed as the keys and the keys printed as values. This all happens during the same iteration.
🙂 Expected behavior

I expected the keys and values to be logged when using Object.entries() . When I use Object.keys() i expect the keys to be logged not the values at all

Working as intended.  Number-valued enums contain bidirectional mappings so that, e.g. Foo[Foo.Bad] is "Bad".  This is so you can more easily look up enum values in the debugger.  If you don't want the reverse mappings you could try a string-valued enum.

This is working as intended. Enums in TypeScript are reverse mapped. You can see this by looking at the generated JavaScript:
var Foo;
(function (Foo) {
    Foo[Foo["Good"] = 0] = "Good";
    Foo[Foo["Bad"] = 1] = "Bad";
})(Foo || (Foo = {}));


use correct synapse admin api path

The old path is deprecated since synapse 1.20.0 and removed in 1.24.0
The new path has been available since forever it seems.

thank you :rocket:


azure-mgmt-iotcentral: LICENSE missing in PyPi

Package Name: azure-mgmt-iotcentral
Package Version: 9.0.0b1
Operating System: Linux
Python Version: 3.9.6

Describe the bug
The LICENSE.txt file is missing from the PyPi package.
Additional context
I am making a PR to fix this now.

@major, thanks for the feedback and future contribution (again)! Directing it to the right people, so they know!

same issue : https://github.com/Azure/azure-sdk-for-python/issues/20183

same issue : https://github.com/Azure/azure-sdk-for-python/issues/20183


omdbapi reopens; but disk still unidentified

I saw that omdbapi has reopened for free with less than 1000 queries per day.
I got a free key and put in into the config file; however, Atomic Blonde is still coming back as unidentified.
I didn't see anything in the log file saying omdb api failed and a quick look at qetvideotype.py doesn't seem to output anything to the log either.
At this point; I'm kinda lost at to what should be occurring or even the scripts are even calling getvideotype.py.
Thoughts?

Never mind; I didn't activate my key by clicking the email link.
I do suggest; however, that the scripts attempt to output a real message.
I added the following:
except Exception as err:
        return "fail - " + err

and saw that omdb was returning 401.
  File "/opt/arm/getvideotype.py", line 90, in callwebservice
    dvd_title_info_json = urllib.request.urlopen("http://www.omdbapi.com/?t={1}&y={2}&plot=short&r=json&apikey={0}".format(omdb_api_key, dvd_title, year)).read()
  File "/usr/lib/python3.5/urllib/request.py", line 163, in urlopen
    return opener.open(url, data, timeout)
  File "/usr/lib/python3.5/urllib/request.py", line 472, in open
    response = meth(req, response)
  File "/usr/lib/python3.5/urllib/request.py", line 582, in http_response
    'http', request, response, code, msg, hdrs)
  File "/usr/lib/python3.5/urllib/request.py", line 510, in error
    return self._call_chain(*args)
  File "/usr/lib/python3.5/urllib/request.py", line 444, in _call_chain
    result = func(*args)
  File "/usr/lib/python3.5/urllib/request.py", line 590, in http_error_default
    raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 401: Unauthorized


Renamed histEqual to histEqualize.

Working on #76
I left histEqual with deprecation message. Will leave the issue until 0.2.0 version comes, and until we remove the histEqual.
@9il seems ok?

LGTM

See also dcv/tests/performance-tests/source/performance/measure.d

See also dcv/tests/performance-tests/source/performance/measure.d

ah, tnx..

See also dcv/tests/performance-tests/source/performance/measure.d

I forgot about this one in bilateralFilter sigma separation PR, so I smuggled it here. Hope you don't mind. (it was failing to compile the benchmark app)


PATO:000001 may be typo

Hey Midori, happy new one!
I see this class in FYPO at the moment:
https://www.ebi.ac.uk/ols/ontologies/fypo/terms?iri=http%3A%2F%2Fpurl.obolibrary.org%2Fobo%2FPATO_000001&viewMode=All&siblings=true
Probably a typo (missing a 0). Talk soon!

yup, typo. fixed.


Avoid fetching entity from cache's datastore twice

This is just a simple fix for the problem being discussed in the mailing list (subject of the thread is "HttpCacheStorage#getEntry called twice on cache hit").
I applied the fix proposal on branch 4.5.x because that's the version I'm using and opened this PR just to get some feedback on the changes before patching other branches (4.6.x and master).
I separated the patch in two different commits:

10ab37b ("Removing unnecessary checks for cache invalidation calls."): removed a few references to "cacheInvalidatorWasCalled()" from tests where this didn't seem to be the primary focus of the test (basically after applying the change to the production code all these tests went red for no apparent reason).
f59181e ("Avoid fetching the cached entity twice on cache hit."): actual change and unit test to avoid regression. If the changes to the tests in 10ab37b are correct then the change to production code should not have broken anything :).

Notes:

Locally I cannot simply run "mvn install" as there's some problems reported by maven-javadoc-plugin (had to comment it out to try this locally but didn't commit those changes for obvious reasons). Am I missing some configuration to be able to run this?
Probably this module deserved a big refactor but as this is the first time I'm contributing to ASF I wanted to keep things simple and the changes as small as possible.
I'm not sure about what the process to contributing to this project is, so I'm trying this approach. Please correct me if this is not the way to go.

Am I missing some configuration to be able to run this?

HC 4.x still requires Java 1.6. You are probably using Java 1.8 to build the project. Try downgrading to Java 1.7

Probably this module deserved a big refactor but as this is the first time I'm contributing to ASF I wanted to keep things simple and the changes as small as possible

I guess we would all welcome volunteers willing to improve HttpClient cache code

I'm not sure about what the process to contributing to this project is, so I'm trying this approach. Please correct me if this is not the way to go

Just keep PRs coming. For the time being Github integration appears broken. I am trying to get it fixed. So, you might want to subscribe to<EMAIL_ADDRESS>as well.

John, would you be able to review the patch?

@leandronunes85 : first, thanks for structuring your commits this way; makes it really easy to review. I agree that the cache flushes are redundant here, and as long as TestProtocolRequirements and TestProtocolRecommendations are passing, then I'm confident this change should be approved and merged. I don't have a working dev environment at the moment, so I suggest that if @ok2c can see the tests pass then we should merge.
Thanks, @leandronunes85! 👍

@leandronunes85 all PRs have been pulled. Could you please review and close those PRs that are still open?

Thanks for the support @ok2c, @comcast-jonm  and everyone else. Is there an ETA for releasing these patches? When can I expect having them available for use (specially in the 4.5.x branch)? Also, is there anything I could do to speed this up?
I'm short on time for extra projects ATM but I plan to take a look into refactoring the caching module and propose a 'plan' for this (that I would like someone to review before actually starting implementing it). Does this sound a good plan or there is already some plan in progress?

@leandronunes85

When can I expect having them available for use (specially in the 4.5.x branch)?
Realistically, not sooner than Q3 2017
Does this sound a good plan or there is already some plan in progress?
Presently no one is working on the caching module, so this plan is as good as any. Any improvements would be quite welcome


Is this project dead?

The last nuget package I see is from 2 years ago

@terrajobst what are your plans with this project?

This package is being replaced with the upcoming .NET 5.0 SDK analyzers

Now that .NET 5.0 is life, isn't it time to mark this project and the nuget as obsolete?


Add option to skip publishing in case all tests were green

In case no test failure was detected it should be possible to optionally skip generating the report as it doesn't contain relevant information.

I don't think this is a good idea, because you will not know when the tests or the report publishing failed vs. when it run and didn't publish anything because of this flag. Why not having it there all the time.

In case of matrix builds with both ITs and UTs you can easily have 20 or more reports. To ease selection of the one containing of the failures it should be possible to optionally prevent creation of all other ones.
Regarding

when the tests or the report publishing failed

I expect the GitHub action to fail in that case!


Successfully detach LSPA9 Smart Plug but it keeps turning off after ~30s

Hello to everybody, i successfully detach a LSPA9 Smart Plug, this is the log
[?] Select the firmware version and name: 1.1.8 - BK7231N / oem_bk7231n_plug
 > 1.1.8 - BK7231N / oem_bk7231n_plug
   1.1.8 - BK7231T / oem_bk7231s_rnd_switch   <----- Tried this but fail!

[?] Select the brand of your device: Tuya Generic
   Aubess
   Topgreener
 > Tuya Generic

[?] Select the article number of your device: LSPA7 Plug
 > LSPA7 Plug

==> Toggle Tuya device's power off and on again 6 times, with ~1 sec pauses in between, to enable AP mode.
Scanning for known AP SSID prfixes:
.Found access point name: "SmartLife-3022", trying to connect..
Device 'wlp2s0' successfully activated with '41230d9b-925c-4d0c-80a6-31e79d3cfad1'.
Connected to access point.
Waiting 1 sec to allow device to set itself up..
Running initial exploit toolchain..
Exploit run, saved device config to!
output=/work/configured-devices/u1M5tPRvKKA5.deviceconfig
Saved device config in /work/configured-devices/u1M5tPRvKKA5.deviceconfig
==> Turn the device off and on again once.
Scanning for known AP SSID prfixes:
.................................Found access point name: "A-3022", trying to connect..
Device 'wlp2s0' successfully activated with '4ee48e98-7d1e-4b9d-986e-ba0eb3424b7e'.
Connected to access point.
Configured device to connect to 'cloudcutterflash'
Device is connecting to 'cloudcutterflash' access point. Passphrase for the AP is 'abcdabcd' (without ')
Cutting device off from cloud..
==> Wait for 20-30 seconds for the device to connect to 'cloudcutterflash'. This script will then show the activation requests sent by the device, and tell you whether local activation was successful.
Using WLAN adapter: wlp2s0
Dec  7 14:55:42 dnsmasq[15]: started, version 2.80 cachesize 150
Dec  7 14:55:42 dnsmasq[15]: compile time options: IPv6 GNU-getopt DBus i18n IDN DHCP DHCPv6 no-Lua TFTP conntrack ipset auth DNSSEC loop-detect inotify dumpfile
Dec  7 14:55:42 dnsmasq-dhcp[15]: DHCP, IP range <IP_ADDRESS> -- <IP_ADDRESS>, lease time 12h
Dec  7 14:55:42 dnsmasq-dhcp[15]: DHCP, sockets bound exclusively to interface wlp2s0
Dec  7 14:55:42 dnsmasq[15]: read /etc/hosts - 7 addresses
Configuration file: /dev/stdin
Using interface wlp2s0 with hwaddr 78:92:9c:ea:e1:c9 and ssid "cloudcutterflash"
wlp2s0: interface state UNINITIALIZED->ENABLED
wlp2s0: AP-ENABLED
Dec  7 14:55:48 dnsmasq-dhcp[15]:<PHONE_NUMBER> available DHCP range: <IP_ADDRESS> -- <IP_ADDRESS>
Dec  7 14:55:48 dnsmasq-dhcp[15]:<PHONE_NUMBER> client provides name: wlan0
Dec  7 14:55:51 dnsmasq-dhcp[15]:<PHONE_NUMBER> DHCPDISCOVER(wlp2s0) 38:1f:8d:e4:30:22
Dec  7 14:55:51 dnsmasq-dhcp[15]:<PHONE_NUMBER> tags: wlp2s0
Dec  7 14:55:51 dnsmasq-dhcp[15]:<PHONE_NUMBER> DHCPOFFER(wlp2s0) <IP_ADDRESS> 38:1f:8d:e4:30:22
Dec  7 14:55:51 dnsmasq-dhcp[15]:<PHONE_NUMBER> requested options: 1:netmask, 3:router, 28:broadcast, 6:dns-server
Dec  7 14:55:51 dnsmasq-dhcp[15]:<PHONE_NUMBER> next server: <IP_ADDRESS>
Dec  7 14:55:51 dnsmasq-dhcp[15]:<PHONE_NUMBER> sent size:  1 option: 53 message-type  2
Dec  7 14:55:51 dnsmasq-dhcp[15]:<PHONE_NUMBER> sent size:  4 option: 54 server-identifier  <IP_ADDRESS>
Dec  7 14:55:51 dnsmasq-dhcp[15]:<PHONE_NUMBER> sent size:  4 option: 51 lease-time  12h
Dec  7 14:55:51 dnsmasq-dhcp[15]:<PHONE_NUMBER> sent size:  4 option: 58 T1  6h
Dec  7 14:55:51 dnsmasq-dhcp[15]:<PHONE_NUMBER> sent size:  4 option: 59 T2  10h30m
Dec  7 14:55:51 dnsmasq-dhcp[15]:<PHONE_NUMBER> sent size:  4 option:  1 netmask  <IP_ADDRESS>
Dec  7 14:55:51 dnsmasq-dhcp[15]:<PHONE_NUMBER> sent size:  4 option: 28 broadcast  <IP_ADDRESS>
Dec  7 14:55:51 dnsmasq-dhcp[15]:<PHONE_NUMBER> sent size:  4 option:  3 router  <IP_ADDRESS>
Dec  7 14:55:51 dnsmasq-dhcp[15]:<PHONE_NUMBER> sent size:  4 option:  6 dns-server  <IP_ADDRESS>
Dec  7 14:55:51 dnsmasq-dhcp[15]:<PHONE_NUMBER> available DHCP range: <IP_ADDRESS> -- <IP_ADDRESS>
Dec  7 14:55:51 dnsmasq-dhcp[15]:<PHONE_NUMBER> client provides name: wlan0
Dec  7 14:55:51 dnsmasq-dhcp[15]:<PHONE_NUMBER> DHCPDISCOVER(wlp2s0) 38:1f:8d:e4:30:22
Dec  7 14:55:51 dnsmasq-dhcp[15]:<PHONE_NUMBER> tags: wlp2s0
Dec  7 14:55:51 dnsmasq-dhcp[15]:<PHONE_NUMBER> DHCPOFFER(wlp2s0) <IP_ADDRESS> 38:1f:8d:e4:30:22
Dec  7 14:55:51 dnsmasq-dhcp[15]:<PHONE_NUMBER> requested options: 1:netmask, 3:router, 28:broadcast, 6:dns-server
Dec  7 14:55:51 dnsmasq-dhcp[15]:<PHONE_NUMBER> next server: <IP_ADDRESS>
Dec  7 14:55:51 dnsmasq-dhcp[15]:<PHONE_NUMBER> sent size:  1 option: 53 message-type  2
Dec  7 14:55:51 dnsmasq-dhcp[15]:<PHONE_NUMBER> sent size:  4 option: 54 server-identifier  <IP_ADDRESS>
Dec  7 14:55:51 dnsmasq-dhcp[15]:<PHONE_NUMBER> sent size:  4 option: 51 lease-time  12h
Dec  7 14:55:51 dnsmasq-dhcp[15]:<PHONE_NUMBER> sent size:  4 option: 58 T1  6h
Dec  7 14:55:51 dnsmasq-dhcp[15]:<PHONE_NUMBER> sent size:  4 option: 59 T2  10h30m
Dec  7 14:55:51 dnsmasq-dhcp[15]:<PHONE_NUMBER> sent size:  4 option:  1 netmask  <IP_ADDRESS>
Dec  7 14:55:51 dnsmasq-dhcp[15]:<PHONE_NUMBER> sent size:  4 option: 28 broadcast  <IP_ADDRESS>
Dec  7 14:55:51 dnsmasq-dhcp[15]:<PHONE_NUMBER> sent size:  4 option:  3 router  <IP_ADDRESS>
Dec  7 14:55:51 dnsmasq-dhcp[15]:<PHONE_NUMBER> sent size:  4 option:  6 dns-server  <IP_ADDRESS>
Dec  7 14:55:51 dnsmasq-dhcp[15]:<PHONE_NUMBER> available DHCP range: <IP_ADDRESS> -- <IP_ADDRESS>
Dec  7 14:55:51 dnsmasq-dhcp[15]:<PHONE_NUMBER> client provides name: wlan0
Dec  7 14:55:51 dnsmasq-dhcp[15]:<PHONE_NUMBER> DHCPREQUEST(wlp2s0) <IP_ADDRESS> 38:1f:8d:e4:30:22
Dec  7 14:55:51 dnsmasq-dhcp[15]:<PHONE_NUMBER> tags: wlp2s0
Dec  7 14:55:51 dnsmasq-dhcp[15]:<PHONE_NUMBER> DHCPACK(wlp2s0) <IP_ADDRESS> 38:1f:8d:e4:30:22 wlan0
Dec  7 14:55:51 dnsmasq-dhcp[15]:<PHONE_NUMBER> requested options: 1:netmask, 3:router, 28:broadcast, 6:dns-server
Dec  7 14:55:51 dnsmasq-dhcp[15]:<PHONE_NUMBER> next server: <IP_ADDRESS>
Dec  7 14:55:51 dnsmasq-dhcp[15]:<PHONE_NUMBER> sent size:  1 option: 53 message-type  5
Dec  7 14:55:51 dnsmasq-dhcp[15]:<PHONE_NUMBER> sent size:  4 option: 54 server-identifier  <IP_ADDRESS>
Dec  7 14:55:51 dnsmasq-dhcp[15]:<PHONE_NUMBER> sent size:  4 option: 51 lease-time  12h
Dec  7 14:55:51 dnsmasq-dhcp[15]:<PHONE_NUMBER> sent size:  4 option: 58 T1  6h
Dec  7 14:55:51 dnsmasq-dhcp[15]:<PHONE_NUMBER> sent size:  4 option: 59 T2  10h30m
Dec  7 14:55:51 dnsmasq-dhcp[15]:<PHONE_NUMBER> sent size:  4 option:  1 netmask  <IP_ADDRESS>
Dec  7 14:55:51 dnsmasq-dhcp[15]:<PHONE_NUMBER> sent size:  4 option: 28 broadcast  <IP_ADDRESS>
Dec  7 14:55:51 dnsmasq-dhcp[15]:<PHONE_NUMBER> sent size:  4 option:  3 router  <IP_ADDRESS>
Dec  7 14:55:51 dnsmasq-dhcp[15]:<PHONE_NUMBER> sent size:  4 option:  6 dns-server  <IP_ADDRESS>
Dec  7 14:56:27 dnsmasq[15]: query[A] h3.iot-dns.com from <IP_ADDRESS>
Dec  7 14:56:27 dnsmasq[15]: config h3.iot-dns.com is <IP_ADDRESS>
Using PSK v1 - Received PSK ID version 01
[I 221207 14:56:28 web:2271] 200 POST /v2/url_config (<IP_ADDRESS>) 88.29ms
[LOG] Client request PATH: /d.json - QS: a=tuya.device.active&et=1&t=58&uuid=u1M5tPRvKKA5&v=4.4&sign=c3da1a7e2276ae4032c7272a9afd9569
[LOG] ==== Client request body ===
{'token': 'AAAAAA', 'softVer': '1.1.8', 'productKey': 'keyjup78v54myhan', 'protocolVer': '2.2', 'baselineVer': '40.00', 'productKeyStr': 'keyjup78v54myhan', 'devId': 'bf188cbb4a338b48c4j0ih', 'hid': '381f8de43022', 'modules': '[{"otaChannel":9,"softVer":"1.1.8","online":true}]', 'devAttribute': 579, 'cadVer': '1.0.3', 'cdVer': '1.0.0', 'options': '{"isFK":true,"otaChannel":0}', 't': 58}
[LOG] ==== End client request body ===
tuya.device.active - response: {'result': {'schema': '[{"type":"obj","mode":"rw","property":{"type":"bool"},"id":1},{"type":"obj","mode":"rw","property":{"min":0,"max":86400,"scale":0,"step":1,"type":"value"},"id":9},{"mode":"ro","property":{"min":0,"max":50000,"scale":3,"step":100,"type":"value"},"id":17,"type":"obj"},{"mode":"ro","property":{"min":0,"max":30000,"scale":0,"step":1,"type":"value"},"id":18,"type":"obj"},{"mode":"ro","property":{"min":0,"max":80000,"scale":1,"step":1,"type":"value"},"id":19,"type":"obj"},{"mode":"ro","property":{"min":0,"max":5000,"scale":1,"step":1,"type":"value"},"id":20,"type":"obj"},{"mode":"ro","property":{"min":0,"max":5,"scale":0,"step":1,"type":"value"},"id":21,"type":"obj"},{"mode":"ro","property":{"min":0,"max":1000000,"scale":0,"step":1,"type":"value"},"id":22,"type":"obj"},{"mode":"ro","property":{"min":0,"max":1000000,"scale":0,"step":1,"type":"value"},"id":23,"type":"obj"},{"mode":"ro","property":{"min":0,"max":1000000,"scale":0,"step":1,"type":"value"},"id":24,"type":"obj"},{"mode":"ro","property":{"min":0,"max":1000000,"scale":0,"step":1,"type":"value"},"id":25,"type":"obj"},{"mode":"ro","property":{"type":"bitmap","maxlen":6},"id":26,"type":"obj"},{"type":"obj","mode":"rw","property":{"range":["off","on","memory"],"type":"enum"},"id":38},{"mode":"rw","property":{"type":"bool"},"id":39,"type":"obj"},{"type":"obj","mode":"rw","property":{"type":"string","maxlen":255},"id":42},{"type":"obj","mode":"rw","property":{"type":"string","maxlen":255},"id":43}]', 'devId': '7GvvsLfXKPmtwKAIs8Vh', 'resetFactory': False, 'timeZone': '+02:00', 'capability': 1025, 'secKey': 'MWYB7xqERx5mBMvx', 'stdTimeZone': '+01:00', 'schemaId': '0000038vp3', 'dstIntervals': [], 'localKey': '4iRtKMYEXZWKGA8s'}, 'success': True, 't':<PHONE_NUMBER>}
[I 221207 14:56:28 web:2271] 200 POST /d.json?a=tuya.device.active&et=1&t=58&uuid=u1M5tPRvKKA5&v=4.4&sign=c3da1a7e2276ae4032c7272a9afd9569 (<IP_ADDRESS>) 95.45ms
[LOG] Client request PATH: /d.json - QS: a=tuya.device.dynamic.config.get&devId=7GvvsLfXKPmtwKAIs8Vh&et=1&t=1670424989&v=2.0&sign=02fc8e218190813bdfe43a7935f56c27
[LOG] ==== Client request body ===
{'type': '["timezone"]', 't':<PHONE_NUMBER>}
[LOG] ==== End client request body ===
tuya.device.dynamic.config.get - response: {'result': {'ackId': '0-0', 'validTime': 1800, 'time':<PHONE_NUMBER>, 'config': {'stdTimeZone': '+01:00', 'dstIntervals': [[1648342800,<PHONE_NUMBER>], [1679792400,<PHONE_NUMBER>]]}, 'timezone': {'ackId': '0-0', 'validTime': 1800, 'time':<PHONE_NUMBER>, 'config': {'stdTimeZone': '+01:00', 'dstIntervals': [[1648342800,<PHONE_NUMBER>], [1679792400,<PHONE_NUMBER>]]}}}, 't':<PHONE_NUMBER>, 'success': True}
[I 221207 14:56:30 web:2271] 200 POST /d.json?a=tuya.device.dynamic.config.get&devId=7GvvsLfXKPmtwKAIs8Vh&et=1&t=1670424989&v=2.0&sign=02fc8e218190813bdfe43a7935f56c27 (<IP_ADDRESS>) 92.29ms
[LOG] Client request PATH: /d.json - QS: a=tuya.device.uuid.pskkey.get&et=1&t=1670424992&uuid=u1M5tPRvKKA5&v=1.0&sign=80a6d953a83027ef849e532a540549b5
[LOG] ==== Client request body ===
{'t':<PHONE_NUMBER>}
[LOG] ==== End client request body ===
tuya.device.uuid.pskkey.get - response: {'result': {'pskKey': ''}, 't':<PHONE_NUMBER>, 'success': True}
[I 221207 14:56:33 web:2271] 200 POST /d.json?a=tuya.device.uuid.pskkey.get&et=1&t=1670424992&uuid=u1M5tPRvKKA5&v=1.0&sign=80a6d953a83027ef849e532a540549b5 (<IP_ADDRESS>) 95.63ms
device_id='<device_id>', ip='<wrong_ip>', local_key='<local_key>'
Device should be successfully onboarded on WiFi AP!

two highlights:

I selected the profile based on the firmware preinstalled on the smart plug, i know that i have an LSPA9
in the log file. when i say <wrong_ip> this is because that ip wasn't an ip of my wifi but the ip inside the linux ap, i don't know if this is relevant or not but i needed to reconnect to the right WiFi after the process with the tuya app

I can control the device with tinytuya, i also installed tuya-local in my home-assistant and i can turn on/off, read voltage but not read current and load.
But the main problem is that if i turn on the switch (with the physical button or with tuya-local) it automatically turn off after ~ 30 seconds
Anyone could help me? What is the best way in this case? stay with a detached fw or flash a custom one? and in this case witch one is better?
Thanks to everybody

We're finding there are a lot of different plugs with the model LSPA9 that use different power monitoring chips and pin configurations.  Custom firmware is usually the way to go because then you can control the configuration instead of relying on similar Tuya models.  However you'll have to figure out the pin settings no matter which firmware you go with.
As for 'better', that's a relative term and you'll get biased answers.  Both currently available are great options, it's more of a preference thing.  ESPHome has stronger direct HA integration and more custom modules, whereas OpenBeken takes a more Tasmota-like approach where everything that comes with the firmware is what you get after configuration.

I can't speak with authority on that, unfortunately.

As to the strange control, I'm guessing the schema that got applied to your device doesn't match and there is an inverted pin and Tuya's firmware has an action triggered when it thinks something is being held down when it really isn't.  This is why 3rd part firmware is usually the better option if you don't have an exact device/schema match.

Thanks @Cossid  i just tried to flash a custom FW, based on CB2S that seems the chip inside (look here) the process seems to end with success. i read in the terminal the progress of the download of the custom FW but there wasn't any text like "Complete" or "Success" the program simply terminated.
Now i tried to power off  and then power on the device but nothing happen. The device is not connected to the network and if put it in pairing mode i will see the network named "A-3022", that is the same name for when i used the detach process

Did you use the correct firmware?  Did you use the correct type of firmware (_UG_)?  CB2S would be BK7231N.  The fact you can still put it in pairing mode and get an A- means the new firmware did not validate.

Yes i used CB2S as board and used the file with ug in the name generated by platformio. Then i used as platform for cloudcutter the saved config of the detach. Maybe is this the error?

I'm not certain what that means.  I guess I have never detached first and then reused those values, I just go straight to flashing usually, personally.  You can just re-run the flash from scratch, and post the full log please.

This is the log
/run_flash.sh
Checking TCP port 80... Available.
Checking TCP port 443... Available.
Checking TCP port 1883... Available.
Checking TCP port 8886... Available.
Building cloudcutter docker image..
Sending build context to Docker daemon  23.04MB
Step 1/10 : FROM python:3.9-slim-buster AS base
 ---> 174676d1b146
Step 2/10 : RUN apt-get -qq update && apt-get install -qy --no-install-recommends git hostapd rfkill dnsmasq build-essential libssl-dev iproute2 mosquitto
 ---> Using cache
 ---> fc344b80d9b9
Step 3/10 : FROM base AS python-deps
 ---> fc344b80d9b9
Step 4/10 : RUN pip install --upgrade pipenv
 ---> Using cache
 ---> d605a3599fe4
Step 5/10 : COPY src/Pipfile /src/
 ---> Using cache
 ---> 809cb709e7cb
Step 6/10 : COPY src/Pipfile.lock /src/
 ---> Using cache
 ---> a288d92ed67b
Step 7/10 : RUN cd /src && PIPENV_VENV_IN_PROJECT=1 pipenv install --deploy
 ---> Using cache
 ---> 9da1901bd04b
Step 8/10 : FROM python-deps AS cloudcutter
 ---> 9da1901bd04b
Step 9/10 : COPY src /src
 ---> Using cache
 ---> 9869d2566f1b
Step 10/10 : WORKDIR /src
 ---> Using cache
 ---> 9a4c40938676
Successfully built 9a4c40938676
Successfully tagged cloudcutter:latest
Successfully built docker image
[?] Select your custom firmware file: bk7231n_app.ota.ug.bin
 > bk7231n_app.ota.ug.bin

[?] How do you want to choose the device?: By firmware version and name
   By manufacturer/device name
 > By firmware version and name
   From device-profiles (i.e. custom profile)

[?] Select the firmware version and name: 0.0.3 - BK7231N / oem_bk7231n_light_st[?] Select the firmware version and name: 1.0.0 - BK7231N / oem_bk7231n_ceiling_[?] Select the firmware version and name: 1.0.0 - BK7231N / oem_bk7231n_garage_d[?] Select the firmware version and name: 1.0.0 - BK7231T / HYS_03_018_bk7231t_t[?] Select the firmware version and name: 1.0.1 - BK7231T / HYS_03_010_RGB_soq7i[?] Select the firmware version and name: 1.0.1 - BK7231T / oem_bk7231s_light_mi[?] Select the firmware version and name: 1.0.1 - BK7231T / oem_bk7231s_ty_ffc_n[?] Select the firmware version and name: 1.0.10 - BK7231N / bk7231n_lowpower_co[?] Select the firmware version and name: 1.0.10 - BK7231T / oem_bk7231s_light_t[?] Select the firmware version and name: 1.0.2 - BK7231N / oem_bk7231n_dctrl_sw[?] Select the firmware version and name: 1.0.2 - BK7231T / bk7231t_common_user_[?] Select the firmware version and name: 1.0.2 - BK7231T / oem_bk7231s_light_mi[?] Select the firmware version and name: 1.0.3 - BK7231T / oem_bk7231s_control_[?] Select the firmware version and name: 1.0.3 - BK7231T / oem_bk7231s_light_ty[?] Select the firmware version and name: 1.0.4 - BK7231T / oem_bk7231s_ty_ffc_n[?] Select the firmware version and name: 1.0.5 - BK7231N / oem_bk7231n_dctrl_sw[?] Select the firmware version and name: 1.0.6 - BK7231N / oem_bk7231n_strip_rg[?] Select the firmware version and name: 1.0.7 - BK7231T / oem_bk7231s_rnd_swit[?] Select the firmware version and name: 1.0.8 - BK7231T / oem_bk7231s_rnd_swit[?] Select the firmware version and name: 1.0.8 - BK7231T / oem_bk7231s_ty_ffc_d[?] Select the firmware version and name: 1.0.9 - BK7231T / oem_bk7231s_ty_ffc_d[?] Select the firmware version and name: 1.1.0 - BK7231T / HYS_03_018_bk7231t_t[?] Select the firmware version and name: 1.1.0 - BK7231T / oem_bk7231s_rnd_swit[?] Select the firmware version and name: 1.1.2 - BK7231T / oem_bk7231s_control_[?] Select the firmware version and name: 1.1.2 - BK7231T / oem_bk7231s_rnd_swit[?] Select the firmware version and name: 1.1.2 - BK7231T / oem_bk7231s_ty_ffc_d[?] Select the firmware version and name: 1.1.3 - BK7231T / oem_bk7231s_irbox_mo[?] Select the firmware version and name: 1.1.3 - BK7231T / oem_bk7231s_switch_c[?] Select the firmware version and name: 1.1.4 - BK7231T / oem_bk7231s_ty_ffc_d[?] Select the firmware version and name: 1.1.5 - BK7231T / oem_bk7231s_rnd_zero[?] Select the firmware version and name: 1.1.6 - BK7231T / oem_bk7231s_light_ff[?] Select the firmware version and name: 1.1.6 - BK7231T / oem_bk7231s_switch1_[?] Select the firmware version and name: 1.1.7 - BK7231T / oem_bk7231s_light_pi[?] Select the firmware version and name: 1.1.71 - BK7231T / bk7231t_common_user[?] Select the firmware version and name: 1.1.8 - BK7231N / oem_bk7231n_plug
   1.1.6 - BK7231T / oem_bk7231s_light_ty
   1.1.6 - BK7231T / oem_bk7231s_strip_ty
   1.1.6 - BK7231T / oem_bk7231s_switch1_zero_kjd
   1.1.7 - BK7231N / oem_bk7231n_plug
   1.1.7 - BK7231T / oem_bk7231s_light_pir_ty
   1.1.71 - BK7231T / bk7231t_common_user_config_ty
 > 1.1.8 - BK7231N / oem_bk7231n_plug
   1.1.8 - BK7231T / oem_bk7231s_rnd_switch
   1.1.9 - BK7231T / oem_bk7231s_ceiling_light_ty
   1.2.1 - BK7231N / oem_bk7231n_control_switch
   1.2.16 - BK7231N / oem_bk7231n_light_ty
   1.2.7 - BK7231N / oem_bk7231n_light_ty
   1.3.2 - BK7231T / oem_bk7231s_ceiling_light_ty

[?] Select the brand of your device: Tuya Generic
   Aubess
   Topgreener
 > Tuya Generic

[?] Select the article number of your device: LSPA7 Plug
 > LSPA7 Plug

==> Toggle Tuya device's power off and on again 6 times, with ~1 sec pauses in between, to enable AP mode. Repeat if your device's SSID doesn't show up within ~30 seconds. For smart plugs long press the reset button on the device for about 5 seconds. See https://support.tuya.com/en/help/_detail/K9hut3w10nby8 for more information.
Scanning for known AP SSID prfixes: "A-" "atomi-smart-" "Geeni-" "Globe Suite-" "GRID-" "iHome-" "LDV SMART+-" "Merkury-" "Nexxt Home-" "SL-CreeLighting-" "SL-FLSNT-" "SmartLife-" "TreatLife-SL-" "UltraPro-" "Woox-"
.........................Found access point name: "A-3022", trying to connect..
Device 'wlp2s0' successfully activated with '4ee48e98-7d1e-4b9d-986e-ba0eb3424b7e'.
Connected to access point.
Waiting 1 sec to allow device to set itself up..
Running initial exploit toolchain..
Exploit run, saved device config to!
output=/work/configured-devices/EqU1xgGFbGNH.deviceconfig
Saved device config in /work/configured-devices/EqU1xgGFbGNH.deviceconfig
==> Turn the device off and on again once. Repeat 6 more times if your device's SSID doesn't show up within ~5 seconds. For smart plugs long press the reset button on the device for about 5 seconds. See https://support.tuya.com/en/help/_detail/K9hut3w10nby8 for more information.
Scanning for known AP SSID prfixes: "A-" "atomi-smart-" "Geeni-" "Globe Suite-" "GRID-" "iHome-" "LDV SMART+-" "Merkury-" "Nexxt Home-" "SL-CreeLighting-" "SL-FLSNT-" "SmartLife-" "TreatLife-SL-" "UltraPro-" "Woox-"
........................................Found access point name: "A-3022", trying to connect..
Device 'wlp2s0' successfully activated with '4ee48e98-7d1e-4b9d-986e-ba0eb3424b7e'.
Connected to access point.
Configured device to connect to 'cloudcutterflash'
Device is connecting to 'cloudcutterflash' access point. Passphrase for the AP is 'abcdabcd' (without ')
Flashing custom firmware ..
==> Wait for 20-30 seconds for the device to connect to 'cloudcutterflash'. This script will then show the firmware upgrade requests sent by the device.
Using WLAN adapter: wlp2s0
Dec  7 23:07:20 dnsmasq[15]: started, version 2.80 cachesize 150
Dec  7 23:07:20 dnsmasq[15]: compile time options: IPv6 GNU-getopt DBus i18n IDN DHCP DHCPv6 no-Lua TFTP conntrack ipset auth DNSSEC loop-detect inotify dumpfile
Dec  7 23:07:20 dnsmasq-dhcp[15]: DHCP, IP range <IP_ADDRESS> -- <IP_ADDRESS>, lease time 12h
Dec  7 23:07:20 dnsmasq-dhcp[15]: DHCP, sockets bound exclusively to interface wlp2s0
Dec  7 23:07:20 dnsmasq[15]: read /etc/hosts - 7 addresses
Configuration file: /dev/stdin
Using interface wlp2s0 with hwaddr 78:92:9c:ea:e1:c9 and ssid "cloudcutterflash"
wlp2s0: interface state UNINITIALIZED->ENABLED
wlp2s0: AP-ENABLED
Dec  7 23:07:26 dnsmasq-dhcp[15]:<PHONE_NUMBER> available DHCP range: <IP_ADDRESS> -- <IP_ADDRESS>
Dec  7 23:07:26 dnsmasq-dhcp[15]:<PHONE_NUMBER> client provides name: wlan0
Dec  7 23:07:29 dnsmasq-dhcp[15]:<PHONE_NUMBER> DHCPDISCOVER(wlp2s0) 38:1f:8d:e4:30:22
Dec  7 23:07:29 dnsmasq-dhcp[15]:<PHONE_NUMBER> tags: wlp2s0
Dec  7 23:07:29 dnsmasq-dhcp[15]:<PHONE_NUMBER> DHCPOFFER(wlp2s0) <IP_ADDRESS> 38:1f:8d:e4:30:22
Dec  7 23:07:29 dnsmasq-dhcp[15]:<PHONE_NUMBER> requested options: 1:netmask, 3:router, 28:broadcast, 6:dns-server
Dec  7 23:07:29 dnsmasq-dhcp[15]:<PHONE_NUMBER> next server: <IP_ADDRESS>
Dec  7 23:07:29 dnsmasq-dhcp[15]:<PHONE_NUMBER> sent size:  1 option: 53 message-type  2
Dec  7 23:07:29 dnsmasq-dhcp[15]:<PHONE_NUMBER> sent size:  4 option: 54 server-identifier  <IP_ADDRESS>
Dec  7 23:07:29 dnsmasq-dhcp[15]:<PHONE_NUMBER> sent size:  4 option: 51 lease-time  12h
Dec  7 23:07:29 dnsmasq-dhcp[15]:<PHONE_NUMBER> sent size:  4 option: 58 T1  6h
Dec  7 23:07:29 dnsmasq-dhcp[15]:<PHONE_NUMBER> sent size:  4 option: 59 T2  10h30m
Dec  7 23:07:29 dnsmasq-dhcp[15]:<PHONE_NUMBER> sent size:  4 option:  1 netmask  <IP_ADDRESS>
Dec  7 23:07:29 dnsmasq-dhcp[15]:<PHONE_NUMBER> sent size:  4 option: 28 broadcast  <IP_ADDRESS>
Dec  7 23:07:29 dnsmasq-dhcp[15]:<PHONE_NUMBER> sent size:  4 option:  3 router  <IP_ADDRESS>
Dec  7 23:07:29 dnsmasq-dhcp[15]:<PHONE_NUMBER> sent size:  4 option:  6 dns-server  <IP_ADDRESS>
Dec  7 23:07:29 dnsmasq-dhcp[15]:<PHONE_NUMBER> available DHCP range: <IP_ADDRESS> -- <IP_ADDRESS>
Dec  7 23:07:29 dnsmasq-dhcp[15]:<PHONE_NUMBER> client provides name: wlan0
Dec  7 23:07:29 dnsmasq-dhcp[15]:<PHONE_NUMBER> DHCPREQUEST(wlp2s0) <IP_ADDRESS> 38:1f:8d:e4:30:22
Dec  7 23:07:29 dnsmasq-dhcp[15]:<PHONE_NUMBER> tags: wlp2s0
Dec  7 23:07:29 dnsmasq-dhcp[15]:<PHONE_NUMBER> DHCPACK(wlp2s0) <IP_ADDRESS> 38:1f:8d:e4:30:22 wlan0
Dec  7 23:07:29 dnsmasq-dhcp[15]:<PHONE_NUMBER> requested options: 1:netmask, 3:router, 28:broadcast, 6:dns-server
Dec  7 23:07:29 dnsmasq-dhcp[15]:<PHONE_NUMBER> next server: <IP_ADDRESS>
Dec  7 23:07:29 dnsmasq-dhcp[15]:<PHONE_NUMBER> sent size:  1 option: 53 message-type  5
Dec  7 23:07:29 dnsmasq-dhcp[15]:<PHONE_NUMBER> sent size:  4 option: 54 server-identifier  <IP_ADDRESS>
Dec  7 23:07:29 dnsmasq-dhcp[15]:<PHONE_NUMBER> sent size:  4 option: 51 lease-time  12h
Dec  7 23:07:29 dnsmasq-dhcp[15]:<PHONE_NUMBER> sent size:  4 option: 58 T1  6h
Dec  7 23:07:29 dnsmasq-dhcp[15]:<PHONE_NUMBER> sent size:  4 option: 59 T2  10h30m
Dec  7 23:07:29 dnsmasq-dhcp[15]:<PHONE_NUMBER> sent size:  4 option:  1 netmask  <IP_ADDRESS>
Dec  7 23:07:29 dnsmasq-dhcp[15]:<PHONE_NUMBER> sent size:  4 option: 28 broadcast  <IP_ADDRESS>
Dec  7 23:07:29 dnsmasq-dhcp[15]:<PHONE_NUMBER> sent size:  4 option:  3 router  <IP_ADDRESS>
Dec  7 23:07:29 dnsmasq-dhcp[15]:<PHONE_NUMBER> sent size:  4 option:  6 dns-server  <IP_ADDRESS>
Dec  7 23:07:48 dnsmasq[15]: query[A] h3.iot-dns.com from <IP_ADDRESS>
Dec  7 23:07:48 dnsmasq[15]: config h3.iot-dns.com is <IP_ADDRESS>
Using PSK v1 - Received PSK ID version 01
[I 221207 23:07:48 web:2271] 200 POST /v2/url_config (<IP_ADDRESS>) 121.34ms
[LOG] Client request PATH: /d.json - QS: a=tuya.device.active&et=1&t=35&uuid=EqU1xgGFbGNH&v=4.4&sign=f961600775eff8d69788b61b994cd199
[LOG] ==== Client request body ===
{'token': 'AAAAAA', 'softVer': '1.1.8', 'productKey': 'keyjup78v54myhan', 'protocolVer': '2.2', 'baselineVer': '40.00', 'productKeyStr': 'keyjup78v54myhan', 'devId': 'v5w67DCScO2LIGDa4G0H', 'hid': '381f8de43022', 'modules': '[{"otaChannel":9,"softVer":"1.1.8","online":true}]', 'devAttribute': 579, 'cadVer': '1.0.3', 'cdVer': '1.0.0', 'options': '{"isFK":true,"otaChannel":0}', 't': 35}
[LOG] ==== End client request body ===
tuya.device.active - response: {'result': {'schema': '[{"type":"obj","mode":"rw","property":{"type":"bool"},"id":1},{"type":"obj","mode":"rw","property":{"min":0,"max":86400,"scale":0,"step":1,"type":"value"},"id":9},{"mode":"ro","property":{"min":0,"max":50000,"scale":3,"step":100,"type":"value"},"id":17,"type":"obj"},{"mode":"ro","property":{"min":0,"max":30000,"scale":0,"step":1,"type":"value"},"id":18,"type":"obj"},{"mode":"ro","property":{"min":0,"max":80000,"scale":1,"step":1,"type":"value"},"id":19,"type":"obj"},{"mode":"ro","property":{"min":0,"max":5000,"scale":1,"step":1,"type":"value"},"id":20,"type":"obj"},{"mode":"ro","property":{"min":0,"max":5,"scale":0,"step":1,"type":"value"},"id":21,"type":"obj"},{"mode":"ro","property":{"min":0,"max":1000000,"scale":0,"step":1,"type":"value"},"id":22,"type":"obj"},{"mode":"ro","property":{"min":0,"max":1000000,"scale":0,"step":1,"type":"value"},"id":23,"type":"obj"},{"mode":"ro","property":{"min":0,"max":1000000,"scale":0,"step":1,"type":"value"},"id":24,"type":"obj"},{"mode":"ro","property":{"min":0,"max":1000000,"scale":0,"step":1,"type":"value"},"id":25,"type":"obj"},{"mode":"ro","property":{"type":"bitmap","maxlen":6},"id":26,"type":"obj"},{"type":"obj","mode":"rw","property":{"range":["off","on","memory"],"type":"enum"},"id":38},{"mode":"rw","property":{"type":"bool"},"id":39,"type":"obj"},{"type":"obj","mode":"rw","property":{"type":"string","maxlen":255},"id":42},{"type":"obj","mode":"rw","property":{"type":"string","maxlen":255},"id":43}]', 'devId': '8eodnPMOYaw2I2aM8Tv0', 'resetFactory': False, 'timeZone': '+02:00', 'capability': 1025, 'secKey': 'nhHqKhvlUHLZgE3J', 'stdTimeZone': '+01:00', 'schemaId': '0000038vp3', 'dstIntervals': [], 'localKey': 'slYawF96IOFsJSW3'}, 'success': True, 't':<PHONE_NUMBER>}
[I 221207 23:07:49 web:2271] 200 POST /d.json?a=tuya.device.active&et=1&t=35&uuid=EqU1xgGFbGNH&v=4.4&sign=f961600775eff8d69788b61b994cd199 (<IP_ADDRESS>) 97.72ms
[LOG] Client request PATH: /d.json - QS: a=tuya.device.dynamic.config.get&devId=8eodnPMOYaw2I2aM8Tv0&et=1&t=1670454470&v=2.0&sign=8f9e3846f3c54c0cc7f06cfc944aee13
[LOG] ==== Client request body ===
{'type': '["timezone"]', 't':<PHONE_NUMBER>}
[LOG] ==== End client request body ===
tuya.device.dynamic.config.get - response: {'result': {'ackId': '0-0', 'validTime': 1800, 'time':<PHONE_NUMBER>, 'config': {'stdTimeZone': '+01:00', 'dstIntervals': [[1648342800,<PHONE_NUMBER>], [1679792400,<PHONE_NUMBER>]]}, 'timezone': {'ackId': '0-0', 'validTime': 1800, 'time':<PHONE_NUMBER>, 'config': {'stdTimeZone': '+01:00', 'dstIntervals': [[1648342800,<PHONE_NUMBER>], [1679792400,<PHONE_NUMBER>]]}}}, 't':<PHONE_NUMBER>, 'success': True}
[I 221207 23:07:51 web:2271] 200 POST /d.json?a=tuya.device.dynamic.config.get&devId=8eodnPMOYaw2I2aM8Tv0&et=1&t=1670454470&v=2.0&sign=8f9e3846f3c54c0cc7f06cfc944aee13 (<IP_ADDRESS>) 116.47ms
[LOG] Client request PATH: /d.json - QS: a=tuya.device.uuid.pskkey.get&et=1&t=1670454473&uuid=EqU1xgGFbGNH&v=1.0&sign=36388ef2af1a5ccebd4664f59db93890
[LOG] ==== Client request body ===
{'t':<PHONE_NUMBER>}
[LOG] ==== End client request body ===
tuya.device.uuid.pskkey.get - response: {'result': {'pskKey': ''}, 't':<PHONE_NUMBER>, 'success': True}
[I 221207 23:07:54 web:2271] 200 POST /d.json?a=tuya.device.uuid.pskkey.get&et=1&t=1670454473&uuid=EqU1xgGFbGNH&v=1.0&sign=36388ef2af1a5ccebd4664f59db93890 (<IP_ADDRESS>) 88.46ms
Sending firmware update message {"data":{"firmwareType":0},"protocol":15,"t":1670454476} using protocol 2.2
Firmware update messages triggered. Device will download and reset. Exiting in 30 seconds.
[LOG] Client request PATH: /d.json - QS: a=tuya.device.upgrade.get&devId=8eodnPMOYaw2I2aM8Tv0&et=1&t=1670454475&v=4.4&sign=b640d85798d37a230b4c9577ca56eea2
[LOG] ==== Client request body ===
{'type': 0, 't':<PHONE_NUMBER>}
[LOG] ==== End client request body ===
tuya.device.upgrade.get - response: {'result': {'url': 'http://<IP_ADDRESS>:80/files/bk7231n_app.ota.ug.bin', 'hmac': '13862E8F0A5D1DB55392C06241FA56D01A938E871627AF90DBB545E2893955C2', 'version': '9.0.0', 'size': '481040', 'type': 0}, 'success': True, 't':<PHONE_NUMBER>}
[I 221207 23:07:57 web:2271] 200 POST /d.json?a=tuya.device.upgrade.get&devId=8eodnPMOYaw2I2aM8Tv0&et=1&t=1670454475&v=4.4&sign=b640d85798d37a230b4c9577ca56eea2 (<IP_ADDRESS>) 7.91ms
[LOG] Client request PATH: /d.json - QS: a=tuya.device.upgrade.status.update&devId=8eodnPMOYaw2I2aM8Tv0&et=1&t=1670454477&v=4.1&sign=49010e80880570b95e5e4d7dc06d1bc7
[LOG] ==== Client request body ===
{'type': 0, 'upgradeStatus': 2, 't':<PHONE_NUMBER>}
[LOG] ==== End client request body ===
!!! Endpoint default response not found - tuya.device.upgrade.status.update
tuya.device.upgrade.status.update - response: {'success': True, 't':<PHONE_NUMBER>}
[I 221207 23:07:57 web:2271] 200 POST /d.json?a=tuya.device.upgrade.status.update&devId=8eodnPMOYaw2I2aM8Tv0&et=1&t=1670454477&v=4.1&sign=49010e80880570b95e5e4d7dc06d1bc7 (<IP_ADDRESS>) 5.17ms
[I 221207 23:08:09 web:2271] 200 GET /files/bk7231n_app.ota.ug.bin (<IP_ADDRESS>) 11994.00ms
[DEVICE OTA] Responding to device OTA HTTP request range: bytes=0-481039/481040
carmelo@carmelo-desktop:~/Desktop/tuya-cloudcutter$

i think i bricked the device with this last attempt, now the smart plug doesn't even turn on/off and when plugged in there is a blu led

That last log looks like a successful flash.  Are you sure ESPHome isn't running/connecting and you just have an incorrect configuration?

what do you mean with this last sentence?

yeah, i mean with this simple config i should at least have the web ui no?
no AP mode, it is connected to my wifi but the page at the ip address can't be reached

No, you don't have web_server or captive_portal enabled, so there is no webpage to visit.  You need to send an OTA with a new firmware with those features.  You're beyond CloudCutter here, so I'm closing this ticket.  Please move on to the ESPHome github or discord for ESPHome support.

Thanks a lot for your time @Cossid, how can i add my device with a photo? So someone in the future will knows already what to do :)

We only add profiles that also come with a full working schema.  The issue here is your device doesn't have a full working schema, and the one you tried wasn't 100% compatible.  The only way we can add a new schema is with a full firmware dump where we can verify the schema.
For now, they anybody in a similar situation will need to do by firmware version and name like you did, and it will continue to guide them the same way it did you.

Ok, good news is, i have another 3 of these, never connected never used so I will try again to dump the firmware


Registration should display the full version string

Currently the registration resource displays the normalized versions. This is incorrect as the full version string (including the build metadata) should be displayed. This happens because the database stores only the normalized version.

Fixed by https://github.com/loic-sharma/BaGet/pull/332


Dont run local-only users through access check

Configured auth providers can specify what users or groups are
whitelisted to access Rancher. This check currently will prevent a
user that was crated "locally" from within Rancher from being able
to log in.
The change will make it so that local logins are exempt from the
Site Access check.

LGTM


fix(docs): update helm chart install to use artifacthub

Feature or Problem

While the official wasmcloud Helm chart was recently updated and published to ArtifactHub, the README was still referencing the old OTP host's Helm chart.
This commit updates the helm chart README to use recent Helm install instructions that are posted to the ArtifactHub page, and also reference that page so users can find the listing.
Related Issues

Release Information

Consumer Impact

Testing

Unit Test(s)

Acceptance or Integration

Manual Verification

Hey @joonas thanks for taking a look -- I just made that change, if you wouldn't mind looking again?

Hey @joonas thanks for taking a look -- I just made that change, if you wouldn't mind looking again?

Looks good!