test: Run mypy static code analysis

Refactoring some of the code after running mypy static code analysis
Signed-off-by: Martin Belanger<EMAIL_ADDRESS>

Codecov Report

Merging #314 (6e9c7f4) into main (c5e1880) will decrease coverage by 0.03%.
The diff coverage is 28.04%.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
@@            Coverage Diff             @@
##             main     #314      +/-   ##
==========================================
- Coverage   56.52%   56.50%   -0.03%
==========================================
  Files          15       15
  Lines        2215     2223       +8
==========================================
+ Hits         1252     1256       +4
- Misses        963      967       +4

Impacted Files
Coverage Δ

staslib/service.py
19.49% <25.33%> (+1.39%)
:arrow_up:

staslib/stas.py
50.68% <57.14%> (+4.76%)
:arrow_up:

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


syntax error init.pp line 40

Hello, I am seeing the following error:
Error: Could not retrieve catalog from remote server: Error 400 on SERVER: Syntax error at 'Boolean'; expected ')' at /etc/puppet/modules/ca_cert/manifests/init.pp:40 on node (node name redacted)

The code I am using to invoke is:
  ca_cert::ca { 'CA':
    ensure => 'trusted',
    source => 'puppet:///modules/mymodule/my-ca.crt',
  }

My versions:

puppet-ca_cert (this repo) Release 2.1.1
Puppet 3.8.5, from Ubuntu repository
Ruby 2.3.1p112 (2016-04-26) [x86_64-linux-gnu]

Oh, I see. This now requires Puppet 4 or higher. Maybe a README notice?

I downgraded to release v1.8.0 and it worked.

Do you know what version you were upgrading from, or was this the first time you used this module? Puppet 3 support was dropped in v2.0.0. Puppet 3 reached EoL in December of 2016, so you'll probably start to run in to this issue quite often.
You might want to use the repository provided by Puppet instead of what Ubuntu provides. It sounds like you're using Ubuntu 16.04, so installing the puppet-release-xenial.deb package should get you running the latest version (install the puppet-agent package).

This was the first time I tried to run it. Thanks for the heads up. We'll upgrade Puppet "sometime" (typical IT shop answer 😆 ) in the future, so this is good info for me for prioritization purposes.


NotImplementedError: Dilation > 1 not supported in BasicBlock on Resnet

🐛 Bug
I tried to obtain a deeplabv3_resnet34 version based on the code that you are using for getting the resnet50 and resnet101 version
To Reproduce
def deeplabv3_resnet34(pretrained=False, progress=True,
                       num_classes=21, aux_loss=None, **kwargs):
    """Constructs a DeepLabV3 model with a ResNet-34 backbone.

    Args:
        pretrained (bool): If True, returns a model pre-trained on COCO train2017 which
            contains the same classes as Pascal VOC
        progress (bool): If True, displays a progress bar of the download to stderr
    """
    return _load_model('deeplabv3', 'resnet34', pretrained, progress, num_classes, aux_loss, **kwargs)

Expected behavior
I expected it to being created correctly. However, it throws the next error:
---------------------------------------------------------------------------
NotImplementedError                       Traceback (most recent call last)
<ipython-input-21-71ba71ca9be2> in <module>
----> 1 model=deeplabv3_resnet34(pretrained=False,num_classes=2)
      2 model.train()

~/Documents/TFG/seg/models/torchvision.py in deeplabv3_resnet34(pretrained, progress, num_classes, aux_loss, **kwargs)
     91         progress (bool): If True, displays a progress bar of the download to stderr
     92     """
---> 93     return _load_model('deeplabv3', 'resnet34', pretrained, progress, num_classes, aux_loss, **kwargs)
     94
     95 def deeplabv3_resnet50(pretrained=False, progress=True,

~/Documents/TFG/seg/models/torchvision.py in _load_model(arch_type, backbone, pretrained, progress, num_classes, aux_loss, **kwargs)
     45     if pretrained:
     46         aux_loss = True
---> 47     model = _segm_resnet(arch_type, backbone, num_classes, aux_loss, **kwargs)
     48     if pretrained:
     49         arch = arch_type + '_' + backbone + '_coco'

~/Documents/TFG/seg/models/torchvision.py in _segm_resnet(name, backbone_name, num_classes, aux, pretrained_backbone)
     18     backbone = resnet.__dict__[backbone_name](
     19         pretrained=pretrained_backbone,
---> 20         replace_stride_with_dilation=[False, True, True])
     21
     22     return_layers = {'layer4': 'out'}

~/anaconda3/envs/seg/lib/python3.7/site-packages/torchvision/models/resnet.py in resnet34(pretrained, progress, **kwargs)
    247     """
    248     return _resnet('resnet34', BasicBlock, [3, 4, 6, 3], pretrained, progress,
--> 249                    **kwargs)
    250
    251

~/anaconda3/envs/seg/lib/python3.7/site-packages/torchvision/models/resnet.py in _resnet(arch, block, layers, pretrained, progress, **kwargs)
    218
    219 def _resnet(arch, block, layers, pretrained, progress, **kwargs):
--> 220     model = ResNet(block, layers, **kwargs)
    221     if pretrained:
    222         state_dict = load_state_dict_from_url(model_urls[arch],

~/anaconda3/envs/seg/lib/python3.7/site-packages/torchvision/models/resnet.py in __init__(self, block, layers, num_classes, zero_init_residual, groups, width_per_group, replace_stride_with_dilation, norm_layer)
    148                                        dilate=replace_stride_with_dilation[0])
    149         self.layer3 = self._make_layer(block, 256, layers[2], stride=2,
--> 150                                        dilate=replace_stride_with_dilation[1])
    151         self.layer4 = self._make_layer(block, 512, layers[3], stride=2,
    152                                        dilate=replace_stride_with_dilation[2])

~/anaconda3/envs/seg/lib/python3.7/site-packages/torchvision/models/resnet.py in _make_layer(self, block, planes, blocks, stride, dilate)
    191             layers.append(block(self.inplanes, planes, groups=self.groups,
    192                                 base_width=self.base_width, dilation=self.dilation,
--> 193                                 norm_layer=norm_layer))
    194
    195         return nn.Sequential(*layers)

~/anaconda3/envs/seg/lib/python3.7/site-packages/torchvision/models/resnet.py in __init__(self, inplanes, planes, stride, downsample, groups, base_width, dilation, norm_layer)
     45             raise ValueError('BasicBlock only supports groups=1 and base_width=64')
     46         if dilation > 1:
---> 47             raise NotImplementedError("Dilation > 1 not supported in BasicBlock")
     48         # Both self.conv1 and self.downsample layers downsample the input when stride != 1
     49         self.conv1 = conv3x3(inplanes, planes, stride)

NotImplementedError: Dilation > 1 not supported in BasicBlock

Related: #2115

Related: #2115

How can i get pytorch getting updated with that addition???

Depends on how you have installed torchvision in the first place:
If you have installed from a pre-built binary with pip or conda you can't get this right now. If #2115 is merged you can install the nightly versions.
If you have installed from source you can simply perform the fix yourself locally and built afterwards. You can also clone from the fork / branch the author used for his PR and build from that. If you do that keep in mind that you will only get updates if the author keeps his fork up to date.

It looks like #2115 would fix this, is that correct?

It looks like #2115 would fix this, is that correct?

I tried installing from his pull and I got the exact same error!

@vincentqb

It looks like #2115 would fix this, is that correct?

In the current state probably not. As @fmassa has stated in https://github.com/pytorch/vision/pull/2115#issuecomment-617193790 this will require more work.

I see, thanks for pointing out the comment :)


Scaffold future docs structure

Scaffold out the future doc tree structure with placeholders to be populated as time permits.

was this meant to go live? The docs now have a lot of blank pages https://ansible.readthedocs.io/projects/molecule/working/references/cli/

This PR attempts to fill some of the blanks, but it's stuck w CI problems I don't know how to fix - https://github.com/ansible/molecule/pull/4044
It still leaves holes for sure, though. The idea was to create the 'ideal docset' structure and then start filling in the blanks.


Stabilize PBFT under stress with periodic viewchange

Description
This changeset contains three new commits, to accomplish three things.

If a view change occurs and selects an initial checkpoint which is higher than our lastExec, but which can be reached via commit certificates, we delay processing of the new view until execution completes.

On view change, resubmit the outstanding requests, and enhance the per transaction logging by printing transaction UUID when debugging is enabled.

Changes the ledger's VerifyChain function to consistently return the lowest validated block number consistently. @srderson If you especially could take a look at the last commit to this change.

Motivation and Context
This changeset is motivated by the busywork stress2b test.  The problems were observed with the following environmental configuration:
CORE_PBFT_GENERAL_TIMEOUT_REQUEST=10s
CORE_PBFT_GENERAL_TIMEOUT_VIEWCHANGE=10s
CORE_PBFT_GENERAL_VIEWCHANGEPERIOD=1
CORE_PBFT_GENERAL_TIMEOUT_NULLREQUEST=1s

This causes the network to change views at every checkpoint, resulting in over 1000 view changes during the execution.
This causes frequent small state transfers, and revealed a bug in the ledger's VerifyChain function.  This function would typically return the lowest block number in the range whose hash could be validated, but under other error conditions, like missing blocks, failing hashes, etc., the function would return the block number which had the error, sometimes leading state transfer to believe that a particular block was valid, when in fact it was otherwise corrupt.
How Has This Been Tested?
These changes were tested against the stress2b busywork test as described above.  As issues were revealed, new unit tests were added for each.
Checklist:

[X] I have added a Signed-off-by
[X] Either no new documentation is required by this change, OR I added new documentation
[X] Either no new tests are required by this change, OR I added new tests
[X] I have run goimports, go vet, and golint. I have cleaned up all valid errors and warnings in code I have added or modified. These tools may generate false positives.  The goal is clean, consistent, and readable code.

Signed-off-by: Jason Yellick<EMAIL_ADDRESS>

This PR should fix issue #1857

Travis log size exceeded out in what seem to be unrelated tests if someone could rerun.

@jyellick I saw a coupe of failures on CI.  The 2nd was just the limit. @rameshthoomu not sure if we can increase the limit.
2016/06/16 21:05:47 Replica 0 received an unknown message type <nil>
--- FAIL: TestOutstandingReqsResubmission (0.00s)
	obc-batch_test.go:220: All requests should have been resubmitted after view change
2016/06/16 21:05:47 Replica 1 obtaining startup information

The log length has exceeded the limit of 4 MB (this usually means that the test suite is raising the same exception over and over).

@binhn : Travis is supports max of 10000 lines and 4 MB size in total. Also, we don't have any option to increase the size.

This PR carries a number of commits that have been squash committed before.

@corecode I tried to do the 'rebase onto', but after about 20 minutes of trying to resolve merge conflicts in places like chaincode which had nothing to do with my PR, I've pushed as is.  I'll try to clean it up later tonight.  The diff should remain the same.

My mistake, I fixed the ledger test to honor the new VerifyChain behavior, but did not fix the state transfer mock ledger framework to do so, causing the unit test failures, pending other local test verification, I'll be pushing a fix shortly.

Fix issue #1907


Enable Prettier check over instrumentation/java

Contributes to #1063
Enables format checking over instrumentation/java section
Replaces one relref link by standard markdown link
Tweaked two code blocks (changed from console to shell)

Preview: https://deploy-preview-2363--opentelemetry.netlify.app/docs/instrumentation/java/

@cartermp @open-telemetry/javascript-maintainers - is this good to go?

@chalin did you mean to ping @open-telemetry/java-maintainers? :slightly_smiling_face:

@pichlermarc - oops, yes, sorry!
Pinging @open-telemetry/java-maintainers!

Yep, this should be good to go now.

Also, maybe the JS team should be js-maintiners/js-approvers since this has happened a few times


Root password incorrect

while using 'make vm/bootstrap' on my m1 mac ;-

What password did you try to use? Did you reset the root password to root before running make vm/bootstrap0?

What password did you try to use? Did you reset the root password to root before running make vm/bootstrap0?

yes i did reset it to 'root'  , but it's still not working .


logout doesn't work if authenticated through form

SSRS 2017
For example: If you send a GET request to get the current user
GET /me
and you don't have a current session, then an "Authentication Required" popup will appear asking for username and password

So far that all good, the problem is the session that gets created by filling the popup cannot be destroyed "logout" through the API
DELETE /Session
Is this a bug? if not how can I terminate that session?

I need a way to disable this form authentication popup? at least for APIs only?

This sounds like a behavior of your browser, if you hit the portal e.g. /reports endpoint from the browser you are redirected to the logon page, the authentication there is based on cookie and logout happens by issue an empty cookie. This is the typical flow for a user visiting SSRS when running with custom authentication.
When instyead you hit the api directly (like /me above), you got a BASIC auth prompt, that prompt is from your browser and is sent through a header, the browser is caching and sending the user+pwd in subsequent requests.

Thanks,
So it's all browser behaviour, does SSRS or the extension provide a way to avoid that so we handle 401 through the code? or even change the returned 401 to something else to prevent this behaviour?

In order to avoid the browser, the SSRS response needs to be altered to remove/rename the challenge in the WWW-Authenticate header which doesn't seem to be possible so far.
The current response is:
WWW-Authenticate | Basic Realm=""

Do you mind describing your full scenario? How are you hosting the app and authenticating to ssrs?

I'm using this extension to implement my custom authentication, then using REST to communicate with SSRS, login, get a list of reports and if the user clicks on one of the reports in opens using the embedded approach.
Now there are other parts in the app beside reports and sometimes the user gets to reports page after SSRS session has already expired this is when the user will get 401 with the popup this is isn't too bad.
The other case if the user wants to logout but SSRS has already expired as it doesn't renew/extend the session even if it is in use! then my app sends a request to SSRS to delete the session which doesn't exist but the user will be asked to log in again with the browser popup.
I don't see the new to challenge the browser to do basic authentication with APIs or at least allow a way to change that Basic in the http.sys to something else to avoid the browser behaviour.

I'm working again on the extension and I would like to see if this is possible now
I would like to modify the header in the response WWW-Authenticate from
WWW-Authenticate: Basic realm=""
to
WWW-Authenticate: xBasic realm=""
Changing the word from Basic to anything else will stop the browser's behaviour.


Captcha Generator

Fixes
#474

Description
The idea behind the project
Whenever we login into a high-security app or website You can take the example of IRCT which huge collection of databases. Then each time while login we need to enter a captcha after all verification and it acts as the last step for authentication.
How does it work
while loading you will have a collection of random latter that you need to enter this captcha in the input box if it will match then it will preview a message of matched otherwise an error message.
You will have a refresh button that you need to refresh whenever you want a new collection of latter.
https://user-images.githubusercontent.com/73521123/167189554-55e4571a-1fc1-4dbb-ac79-8a28e9ce645b.mp4
Type of change

[x] New project (non-breaking change which adds functionality)

How Has This Been Tested?

Tech Stack used:
Web Development (HTML,CSS,JS)

Checklist:

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have included a README.md file
[x] My project follows this structure: Domain Folder/ Project Name Folder/ Project files and Readme.md files
[x] I have added demonstration in the form of GIF/video file
[x] I am a GSSoC'22 Participant

@manisha-27  please review and merge it

@heet-kumar hope, I have done the required changes.

@manisha-27 thanks a lot plz take the actions on the created Prs as well.


request help: how can I migrate existing apisix(standalone, bare-metal) route config to apisix-ingress-controller

Issue description
We're using apisix in production, with lots of route and upstream configs already, planning migrate our services to k8s, is there any way I can generate CRDs file from etcd or admin api?
Environment

your apisix-ingress-controller version (output of apisix-ingress-controller version --long): v1.4.1
your Kubernetes cluster version (output of kubectl version): v1.23.7
if you run apisix-ingress-controller in Bare-metal environment, also show your OS version (uname -a):

This is a very interesting use case.
Can you describe more, or join Slack for a live chat with me ()
https://join.slack.com/t/the-asf/shared_invite/zt-1bjo8bo8k-kp5nk0DaEf28oBoDL07nlQ


Fixed inconsistent animations on controller

Right controller trigger/grab buttons only had an on/off state instead of animating smoothly. The issue has been fixed in the rig prefab and demo scene.

Yes there is a separate ticket for the stick as it was more than a five minute fix. This was just such a quick change it made sense to do it immediately.


VDI UD: offer files and do not offer table preview for download

fut steve March 20 2024:  JB is not generatin the needed wide table, so lets offer the files and the subse download without preview.

We need a way to tell if a study doesn't have the table. Is it possible to add a property to the eda study indicating as much? Could be populated by installer, I suppose.

we now UDs study_ids are EDA_UDxxxxx could that be the way to identify them>

the backend is now telling the client if  a dataset is a user dataset
https://github.com/VEuPathDB/EdaSubsettingService/pull/139

this got fixed UX wise but we still get the 500 in error emails....


Fix: Delete membership box

Prior to this change, there was a delete membership checkbox within
the add membership popup for geographical areas. This is not used as
there is a more obvious way to delete memberships.
This change removes the unused checkbox.
Jira card: https://uktrade.atlassian.net/jira/software/projects/TARIFFS/boards/127?selectedIssue=TARIFFS-51

@steveholmes nice spot! thanks, fixed


A panel for saved commands

Description of the new feature/enhancement
Hello to terminal developer team!
I think this is very useful that there would be an option for saved commands/scripts in windows terminal.

for instance I need to ssh to a server several times a day or set a vpn at beginning of my work. or there is maybe many commands that we use hardly and we don't memorize them, such as resting database, special git command, changing an option in OS and many other things ....
It would be great if we could pick the command we want from an easy accessible place inside of windows terminal. Add, remove, titling, editing before run, pin, most recent and most used commands can be good options for it too.
Proposed technical implementation details (optional)
This picture is just for visualize my idea. (I found nothing better than windows clipboard :))

There is a panel such this that commands are listed in.
Thanks in advanced.

Thanks for the suggestion! This is actually already being tracked by another issue on our repo - please refer to #1595 for more discussion.
/dup #1595


Exclusion edge case issue 1404

This PR addresses edge cases related to the inclusion and exclusion of Users and Groups already enrolled in an experiment when either a user or a group is added to the exclusion list based on the Assignment Unit and Consistency Rule.
Cases Covered:

Group added to the exclusion list:

Experiment on Individual Consistency and Individual Assignment Unit:

Already enrolled users are not removed.
New users will be excluded by the exclusion logic.

Experiment on Group Assignment Unit and Individual Consistency:

Already enrolled users are not removed.
Group enrollment data is removed.
New users will be excluded by the exclusion logic.

Experiment on Group Assignment Unit and Group Consistency:

Already marked users are removed.
New users from the group will be excluded by the exclusion logic.

User added to the exclusion list:

Experiment on Individual Consistency and Individual Assignment Unit:

The user is removed.
New users will not be excluded.

Experiment on Group Assignment Unit and Individual Consistency:

The user is excluded.
Group enrollment data is removed.

Experiment on Group Assignment Unit and Group Consistency:

The user is excluded.
Group data is removed and the group is excluded.

Is this ready? Vivek made comments and then approved, I don't know what that means.


fix(console): some imperfections, delete memberships from detail, role delete from table, app state

Closes #1540

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


Proton Fixes Context Menu

Adding Proton Fixes. So it works on FF Proton 91+

For This Context Menu

Looks good to me, thank you!

For This Context Menu

Looks good to me, thank you!

Wait there're something still left behind :/

Oh no, I hastily merged. The fault is mine, was about to test it out.
Should I go ahead and revert in the mean time?

Oh no, I hastily merged. The fault is mine, was about to test it out.
Should I go ahead and revert in the mean time?

Nono, I will add another commit hehe..


Issue 1028 | Docs: make sphinx build local docs + add save result notes

Summary
Docs: add save result notes
Details and comments
Closes #1028


⚠ T:Riza Docs has degraded performance

In f0b5183, T:Riza Docs (https://docs.triza.dev) experienced degraded performance:

HTTP code: 200
Response time: 1772 ms

Resolved: T:Riza Docs performance has improved in ce4cb52.


French translation

Hello,
thanks for this magic module.. i dream to have the same with a french translation...may be a day...have a good day

Thanks for your issue. I would like to support as much languages as possible.
Currently the module uses these Wikipedia RSS feeds to get the data:
English: https://en.wikipedia.org/w/api.php?action=featuredfeed&feed=onthisday&feedformat=atom
German: https://de.wikipedia.org/w/api.php?action=featuredfeed&feed=onthisday&feedformat=atom
But I didn't found a french equivalent to this. Any idea of a french feed?

Hello,
I'm using MMM Widget and this feed : https://www.france-pittoresque.com/spip.php?page=ephemeride
Maybe you can integrate this for your module (for french)

i found this https://fr.wikipedia.org/wiki/Wikipédia:Accueil_principal and see "Éphéméride du 24 juillet" on right

i found this https://fr.wikipedia.org/wiki/Wikipédia:Accueil_principal and see "Éphéméride du 24 juillet" on right

I will have a look at this one. Maybe it is possible to use similar sites for the other languages, because I don't like to write different parsers for every supported language :)

I understand. The other feed is just for me..thanks again for your work

I think a simple solution could be to use the Wikipedia main site of each language and define a unique CSS selector where to find the list of events on the language specific page. To support a new language only the specific CSS selector for that language is needed.

it's a good solution. i m going to see but i m a beginner (medium maybe) and i m not sure the place of the list of events is always the same each day

I implemented the mentioned solution in branch support_more_languages. Do you have time to try it out on your mirror?

Yes. No problem. I will check tomorrow.  Thanks

Hello.
No change. It always in english

It's simply a great job..no data in first because i didn't have copy all files ...thanks again.very thanks for this nice module

Glad to hear it worked and thanks for your reply. I will fix the tests and merge it into master branch as soon as possible.
-------- Ursprüngliche Nachricht --------Von: chassain<EMAIL_ADDRESS>Datum: 27.07.20  19:01  (GMT+01:00) An: nkl-kst/MMM-OnThisDay<EMAIL_ADDRESS>Cc: Nikolai Keist<EMAIL_ADDRESS>Comment<EMAIL_ADDRESS>Betreff: Re: [nkl-kst/MMM-OnThisDay] French translation (#2)
It's simply a great job..no data in first because i didn't have copy all files ...thanks again.very thanks for this nice module
—You are receiving this because you commented.Reply to this email directly, view it on GitHub, or unsubscribe.

Glad to hear it worked and thanks for your reply. I will fix the tests and merge it into master branch as soon as possible.


WORMS REVOLUTION EXTREME [PCSE00286]

Game summary

Game name: WORMS REVOLUTION EXTREME
Game serial: PCSE00286
Game version: 01.00

Vita3K summary

Version: v0.1
Build number: 1190
Commit hash: https://github.com/vita3k/vita3k/commit/699475a

Test environment summary

Tested by: IllusionMan1212
OS: Windows 10 Pro
CPU: AMD Ryzen 5 1600
GPU: NVIDIA GTX 1050Ti
RAM: 8 GB

Issues
Softlocks while statting data.psarc
Screenshots
None atm.
Log
vita3k.log

Vita3K v0.1.5 2588-7736233e
when you press start it goes to a loading screen and crashes out with a unicorn error
vita3k.log

Vita3K summary

Version: v0.1.6
Build number: 2841
Commit hash: https://github.com/vita3k/vita3k/commit/0c75bbb5
CPU backend: Dynarmic

Test environment summary

Tested by: othmanead
OS: Windows 11
CPU: Intel i5-10300H
GPU: RTX 3060 mobile
RAM: 16 GB

Issue:
Game plays with no issues
Screenshots:

Log
vita3k.log
Recommended labels

Playable


MotD banner description of Accessdev

resolution_fixed   |    by<EMAIL_ADDRESS>
Request for new MotD banner description of Accessdev
Robin

Issue migrated from trac:76 at 2024-01-31 17:30:54 +1100

<EMAIL_ADDRESS>commented

Simple to do, what would you like the contents to be?

<EMAIL_ADDRESS>commented

MotD now up to date
Robin

<EMAIL_ADDRESS>changed owner from Admin to rmb548

ibc599 changed owner from `` to Admin

ibc599 changed reviews which not transferred by tractive

ibc599 changed status from new to assigned

<EMAIL_ADDRESS>changed resolution from `` to fixed

<EMAIL_ADDRESS>commented

Milestone Future deleted

<EMAIL_ADDRESS>changed status from assigned to closed

<EMAIL_ADDRESS>removed milestone (was Future)


polymer-cli doesn't install on Chrome OS with Linux support (Crostini)

@justinfagnani

sudo npm install -g polymer-cli --unsafe-perm=true --allow-root seems to work

You need to chown -R $(whoami) /usr/lib/node_modules/ and never install any NPM package with sudo.

All docs tell me to install polymer-cli with -g :-) eg. https://www.npmjs.com/package/@material/mwc-icon

Yes you should, but you should not run that command with sudo. E.g. instead of sudo npm i -g polymer-cli, always do npm i -g polymer-cli. To do so, you have to correct the permissions of /usr/lib/node_modules for which the previous command resolves that issue.

yeah that of course didn't work either, so I guess the Crostini needs to make the change

Anyway would be great with an error message from the installer saying what to do :)

They have docs on this issue: https://docs.npmjs.com/getting-started/fixing-npm-permissions


Adding ordering in Before hook

Order is an option in all hooks in the jvm implementations and should such be added here given the goal is conformity.

Each hook deserve more comphrehensive testing than this and requires separate tests (ie. don't mix it with "the big one"). I imagine essentially four scenarios for each hook:

Before / Before: in order
Before / Before(10000): in order
Before / Before(9999): reversed

.. with similar tests for each other type of hook.

Order is an option in all hooks in the jvm implementations and should such be added here given the goal is conformity.

Thanks for your feedback, @badeball! So ordering has to be implemented in all of these -   Before,
After,
BeforeStep,
AfterStep,
BeforeAll,
AfterAll?

Yes, all hooks and yes, reverse sorted in all after-type hooks!

Each hook deserve more comphrehensive testing than this and requires separate tests (ie. don't mix it with "the big one"). I imagine essentially three scenarios for each hook:

Before / Before: in order
Before / Before(order: 10000): in order
Before / Before(order: 9999): reversed

.. with similar tests for each other type of hook. This can be accomplished using X scenario outlines.

Is it a good idea to put all of these tests in the same feature file (hooks_ordering.feature)? Or should I create a separate feature file for each hook?

Is it a good idea to put all of these tests in the same feature file (hooks_ordering.feature)?

Yeah, one feature file is fine for this purpose.

Addressed your comments @badeball. Please let me know your thoughts on it!

Excellent, thank you. I've merged and released this with v19.2.0. For reference, you can check out 1e3643a to see how I used scenario outlines to shorten everything.


CB-9633 iOS Taking a Picture With Option destinationType:NATIVE_URI not working

In case sourceType == Camera we receive nil as Uri because image is stored in memory. This PR adds logic to save image locally before obtaining resultant uri in this case

LGTM. Rebasing and merging.


Added - Copy Node Keys task block

I have added the code for issue 210 when demo certs is false and handle install is true, redpanda_key_file should be copied onto server. Please test and approve it thanks.

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


Multi-level ref expansion doesn't handle path correctly

When my top-level OpenAPI file has a ref:
$ref: user/User.yaml

and that file also has a ref:
$ref: CreateUser.yaml

openapi-resolver looks for CreateUser.yaml in the top-level directory instead of the user subdirectory.
$ python -m openapi_resolver api.yaml
Traceback (most recent call last):
  File "/usr/lib/python3.6/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/usr/lib/python3.6/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/home/boris/iron_ox/server/.venv/lib/python3.6/site-packages/openapi_resolver/__main__.py", line 32, in <module>
    main(args.src_file, args.dst_file)
  File "/home/boris/iron_ox/server/.venv/lib/python3.6/site-packages/openapi_resolver/__main__.py", line 17, in main
    resolver.resolve()
  File "/home/boris/iron_ox/server/.venv/lib/python3.6/site-packages/openapi_resolver/__init__.py", line 98, in resolve
    self.traverse(self.openapi, cb=self.resolve_node)
  File "/home/boris/iron_ox/server/.venv/lib/python3.6/site-packages/openapi_resolver/__init__.py", line 194, in traverse
    self.traverse(i, k, parents, cb, context)
  File "/home/boris/iron_ox/server/.venv/lib/python3.6/site-packages/openapi_resolver/__init__.py", line 194, in traverse
    self.traverse(i, k, parents, cb, context)
  File "/home/boris/iron_ox/server/.venv/lib/python3.6/site-packages/openapi_resolver/__init__.py", line 194, in traverse
    self.traverse(i, k, parents, cb, context)
  [Previous line repeated 6 more times]
  File "/home/boris/iron_ox/server/.venv/lib/python3.6/site-packages/openapi_resolver/__init__.py", line 227, in traverse
    self.traverse(ancestor[needle], key, parents, cb, context)
  File "/home/boris/iron_ox/server/.venv/lib/python3.6/site-packages/openapi_resolver/__init__.py", line 194, in traverse
    self.traverse(i, k, parents, cb, context)
  File "/home/boris/iron_ox/server/.venv/lib/python3.6/site-packages/openapi_resolver/__init__.py", line 194, in traverse
    self.traverse(i, k, parents, cb, context)
  File "/home/boris/iron_ox/server/.venv/lib/python3.6/site-packages/openapi_resolver/__init__.py", line 194, in traverse
    self.traverse(i, k, parents, cb, context)
  File "/home/boris/iron_ox/server/.venv/lib/python3.6/site-packages/openapi_resolver/__init__.py", line 210, in traverse
    ancestor[needle] = cb(key, node, context)
  File "/home/boris/iron_ox/server/.venv/lib/python3.6/site-packages/openapi_resolver/__init__.py", line 263, in resolve_node
    _yaml = self.get_yaml_reference(n)
  File "/home/boris/iron_ox/server/.venv/lib/python3.6/site-packages/openapi_resolver/__init__.py", line 243, in get_yaml_reference
    self.yaml_cache[host] = open_file_or_url(host)
  File "/home/boris/iron_ox/server/.venv/lib/python3.6/site-packages/openapi_resolver/__init__.py", line 63, in open_file_or_url
    with open(host) as fh:
FileNotFoundError: [Errno 2] No such file or directory: 'CreateUser.yaml'

api-resolver-issue-26.tar.gz

Thanks for filing this @bburtin
It would be great if you can add a test and propose a fix.
I know it might not be trivial...


security: policy that allows end users on the distribution list

@envoyproxy/security-team PTAL

@envoyproxy/security-team updated PTAL


mobile nav toggle menu adding close (X) icon

Describe the bug
In menu toggle of mobile nav , after clicking the menubar there need to close the menubar for that we need close (X) icon
Smartphone (please complete the following information):

Device: any phone

below is the reference gif

@Dharmik3 , has this issue been assigned to anyone? If not, can you assign this issue to me?
I would make a conditional statement that would be fired at the click of the menu icon. When the menu icon is clicked that mobile menu is active the close icon would be displayed.

hey @Dharmik3 u can work on itt

Hello @mohityadav0903 if you assign this issue under hectober label it would be helpful for me .
Thanking you.

@Dharmik3 , has this issue been assigned to anyone? If not, can you assign this issue to me?
I would make a conditional statement that would be fired at the click of the menu icon. When the menu icon is clicked that mobile menu is active the close icon would be displayed.

Hey @Barkty I am working on this issue , if I need any help I'll interact with you
Thanks!


checkInContaner REGEX need to be adjusted

Version
4.3.1
Environment info
  System:
    OS: Linux 4.19 Alpine Linux
    CPU: (4) x64 Intel(R) Core(TM) i7-8565U CPU @ 1.80GHz
  Binaries:
    Node: 12.16.1 - /usr/local/bin/node
    Yarn: 1.22.0 - /usr/local/bin/yarn
    npm: 6.13.4 - /usr/local/bin/npm
  Browsers:
    Chrome: Not Found
    Firefox: Not Found
  npmPackages:
    @vue/babel-helper-vue-jsx-merge-props:  1.0.0
    @vue/babel-plugin-transform-vue-jsx:  1.1.2
    @vue/babel-preset-app:  4.3.1
    @vue/babel-preset-jsx:  1.1.2
    @vue/babel-sugar-functional-vue:  1.1.2
    @vue/babel-sugar-inject-h:  1.1.2
    @vue/babel-sugar-v-model:  1.1.2
    @vue/babel-sugar-v-on:  1.1.2
    @vue/cli-overlay:  4.3.1
    @vue/cli-plugin-babel: ~4.3.0 => 4.3.1
    @vue/cli-plugin-eslint: ~4.3.0 => 4.3.1
    @vue/cli-plugin-router:  4.3.1
    @vue/cli-plugin-vuex:  4.3.1
    @vue/cli-service: ~4.3.0 => 4.3.1
    @vue/cli-shared-utils:  4.3.1
    @vue/component-compiler-utils:  3.1.2
    @vue/preload-webpack-plugin:  1.1.1
    @vue/web-component-wrapper:  1.2.0
    eslint-plugin-vue: ^6.1.2 => 6.2.2
    vue: ^2.6.11 => 2.6.11
    vue-eslint-parser:  7.0.0
    vue-hot-reload-api:  2.3.4
    vue-loader:  15.9.1
    vue-style-loader:  4.1.2
    vue-template-compiler: ^2.6.11 => 2.6.11
    vue-template-es2015-compiler:  1.9.1
  npmGlobalPackages:
    @vue/cli: Not Found

Steps to reproduce
Hello,
I'm using Minikube (Kubernetes dev environment).
So my vue application run in a container (pod).
My Minikube version is v1.9.2
What is expected?
After an upgrade to minikube v1.9.2
I noticed that the checkInContainer return false instead of true !
https://github.com/vuejs/vue-cli/blob/dev/packages/%40vue/cli-service/lib/commands/serve.js#L344
Indeed with my old version of Minikube (v1.4.0) the output of /proc/1/cgroup was:
bash-5.0# cat /proc/1/cgroup
11:hugetlb:/kubepods/besteffort/pode62a77e6-9d4b-4974-8376-8bb98df015bb/2e26a995b0f0108a688b6b30b24bc424cc95efc20c1a59827ef0bad5e66f9c67
10:perf_event:/kubepods/besteffort/pode62a77e6-9d4b-4974-8376-8bb98df015bb/2e26a995b0f0108a688b6b30b24bc424cc95efc20c1a59827ef0bad5e66f9c67

So it's was good, and checkInContainer return true.
But now with minikube v1.9.2:
bash-5.0# cat /proc/1/cgroup

11:perf_event:/kubepods.slice/kubepods-besteffort.slice/kubepods-besteffort-pod4877e3c2_9915_4991_aa79_cd978f8b89e9.slice/docker-605ec9359d21c5b9fe4e5d511b1edb496e9f53f631a6a48a4798c08021e8b4d9.scope
10:freezer:/kubepods.slice/kubepods-besteffort.slice/kubepods-besteffort-pod4877e3c2_9915_4991_aa79_cd978f8b89e9.slice/docker-605ec9359d21c5b9fe4e5d511b1edb496e9f53f631a6a48a4798c08021e8b4d9.scope

What is actually happening?
It's return false instead of true,  the regex need to be upgraded to support the new output of the /proc/1/cgroup
and need to grep "kubepods.slice" ?

The current regex used in the function checkInContainer is searching for patterns like /docker/, /kubepods/ and /lxc/. The cgroup names are changing a lot with the different Kuebernetes or Docker versions used. Maybe a less restrictive regex can be used, only searching for the keywords without the /?

A quick contribution: it's looking like replacing return /:\/(lxc|docker|kubepods)\//.test(content) by  return /(lxc|docker|kubepods)/.test(content) in serve.js will fixed th issue (not tested).

Anyone can contribute? This would be my first contribution to OSS

Fixed by https://github.com/vuejs/vue-cli/pull/5681


yq binary seems to be neccessary

The yq binary is necessary for this one feature only:
https://github.com/mekkyz/ymlio/blob/d1392e646377e4aa19d9f851db7f284534996f0a/utils/utils.go#L45
Can we somehow do the conversion on our own without having to introduce this dependency?

Yes we could
Fixed


Add SamplerDescriptor to Texture (#399)

GLTF loader now grabs (some) sampler information from the respective
GLTF sampler struct.

Please let me know whether the construction of SamplerDescriptor from a GLTF sampler is too convoluted this way. My previous attempt can be viewed here, which is more procedural.

I love it. This will be a nice usability boost.


Country picker: overflow issue on iOS

What
A right overflow is visible on the country picker on iOS (iPhone SE 3rd gen)
Screenshot

Also reproducible on the Settings tab

it seems like we are having some overflow issues here and there, can we use something like this


Updating Jenkinsfile with branch name and build ID as docker build ta…

…g params

Adding to master branch too for consistency


Support Java 8

Hi!
We use the library in https://github.com/krzema12/snakeyaml-engine-kmp. There's a request to support Java 8 (https://github.com/krzema12/snakeyaml-engine-kmp/issues/202), however urlencoder is compatible with Java 11+:
https://github.com/ethauvin/urlencoder/blob/dd3d500496b8768a89ff94d1cd0343e739a72940/buildSrc/src/main/kotlin/buildsrc/conventions/lang/kotlin-multiplatform-base.gradle.kts#L46-L50
Would it be possible to support Java 8 as well? Technically it's an LTS release that is still supported by some major vendors.

Hi @krzema12!
I don't recall specifically, but I believe we couldn't support Java 8 because of some KMP restrictions.
@aSemy might be able to clarify some more.

The config specifying Java 11 was already defined before I started updating the project to KMP :)
https://github.com/ethauvin/urlencoder/blob/34b69a7d1f3570aa056285253376ed7a7bde03d8/lib/build.gradle.kts#L50-L54

@krzema12 It's a little more complicated than that.
If @aSemy is willing to make the changes and test them, I'll publish a new version. I just don't have the bandwidth for much more than that right now.

It'd be nice to be able to build with Java 21, but set the Java target to 8, and then use Java 8 to run the tests.
I've been trying to learn how to do that with KGP, but I've always struggled. So this would be a good opportunity to learn...
But yes, I also think that Java 8 is too old and should die 😄
I'll see if I have time this week to make a PR.

Hi @ethauvin and @krzema12,
I arrived here backtracking from KAML like you initially did. Since I need KAML for a Kotest PR in Java 8 compatibility I thought I'd try to get it working. I created a PR which looks good locally. Strangely, the GitHub Action won't start in my repo. Nevertheless, I hope my change works and is fine for you. If anything happens in the pipeline I'll fix it.
Cheers,
Ronny

@rbraeunlich thanks for picking it up! I see CI for 8 us failing on not having the Java's HTTP client:
https://github.com/ethauvin/urlencoder/blob/dd3d500496b8768a89ff94d1cd0343e739a72940/buildSrc/src/main/kotlin/buildsrc/utils/Rife2TestListener.kt#L46
I think what we ideally want is building with newest possible JDK, but targeting desired Java versions - what @aSemy suggested.

Sorry, I didn't see this in the IDE. I've replaced the HttpClient with Apache Http. Hope it works now. Or maybe we could use a different Java version for buildSrc, since it shouldn't end up in the final JAR.

Thanks @rbraeunlich and @krzema12 for doing this.
I've just published a new snapshot with your changes and some additional updated dependencies. Unfortunately, I do not have the bandwidth to fully test it at this time, so please report any issues.
@aSemy any thoughts on this?

Looks good to me 👍
If you will allow me to be a perfectionist though, I would recommend the following:

Hardcode Gradle to use a specific JDK for the Daemon. https://docs.gradle.org/8.10/userguide/gradle_daemon.html#sec:daemon_jvm_criteria
This will permit using the HttpClient (requiring JDK 11+) in buildSrc.
(This can be done in a lazy way)
Use kotlin { jvmToolchain(21) } to make Kotlin use JDK 21 to compile Kotlin. (Newer JDKs are faster/have more fixes, though I will concede the impacts will be minor.)
Set -Xjdk-release=8 to make the compiled Java compatible with Java 8.
Add new separate JVM test runs that use a specific Java launcher to test the code runs using JDKs 8, 11, 17, 21 (probably don't need all of these versions, maybe only 8 and 21).
Add the Foojay toolchain resolver so Gradle can automatically get the required JDKs.

But this can be implemented in the future, especially as some of the features as still incubating. The current solution is good enough!

Looks good to me 👍
If you will allow me to be a perfectionist though, I would recommend the following:

No worries, greatly appreciated. This is definitely more your cup of tea than mine.

Hardcode Gradle to use a specific JDK for the Daemon. https://docs.gradle.org/8.10/userguide/gradle_daemon.html#sec:daemon_jvm_criteria
This will permit using the HttpClient (requiring JDK 11+) in buildSrc.
 If curl was an option, I'd use it.

Use kotlin { jvmToolchain(21) } to make Kotlin use JDK 21 to compile Kotlin. (Newer JDKs are faster/have more fixes, though I will concede the impacts will be minor.)

I changed the GH publish action to use 21. Thanks for pointing it out.

Set -Xjdk-release=8 to make the compiled Java compatible with Java 8.

Isn't that redundant, since the jvmTarget compile option is already set? As far as I can tell, kotlinc thinks it's not needed and simply ignores it.

That, frankly, I don't care about. If curl was an option, I'd use it.

Completely reasonable. My reasoning is because I prefer to use a few external dependencies as possible. Also, using a consistent JDK for Gradle also increases build cache hits, although again. But I'll fully admit I'm nitpicking: the impact is negligible for a small library without remote cache.

Set -Xjdk-release=8 to make the compiled Java compatible with Java 8.

Isn't that redundant, since the jvmTarget compile option is already set? As far as I can tell, kotlinc thinks it's not needed and simply ignores it.

I thought the jvmTarget and -Xjdk-release flags were incompatible with each other, but maybe that's changed...

@rbraeunlich is the snapshot working for you?

That's a tough one @ethauvin
What I can say is that all SnakeYaml Engine KMP tests pass with target Java 8 and the 1.6.0-SNAPSHOT. You can check here: https://github.com/rbraeunlich/snakeyaml-engine-kmp/actions/runs/11416460433
But I cannot tell how extensive the tests in that project cover the UrlEncoder.

If the SnakeKMP tests pass with the snapshot version, then that's a very good indication 👍. I say go ahead with the 1.6.0 release.

Version 1.6.0 is out. Might take a bit to show up on Maven Central.


handle _Brain size gracefully with pyvista

closes #7426
Also removes u" at beginning of docstrings in the edited file.
It turns out that pysurfer.Brain doesn't really check size at all:
https://github.com/nipy/PySurfer/blob/master/surfer/viz.py#L557-L561
So I just did what seemed sensible to me.

Any idea why the CIs are not happy?

Nevermind. This has been reported in https://github.com/Teemu/pytest-sugar/issues/187

@GuillaumeFavelier this has been rebased with the pytest-sugar fix, ready to go when CIs are green.

Thanks @drammock


EC GFp ladder

Summary
The SCA hardening introduced by #6009, #6070 and related PRs had the undesirable side-effect of negatively affecting the performance of EC cryptosystems, as reported, e.g., in #6396 and #6512 .
In #6690 a new ladder scaffold was introduced to allow EC_METHOD implementations to provide specialized and optimized implementations for differential addition-and-doubling to attain better performance while retaining the various SCA countermeasures alongside such an implementation for binary curves.
The impact of the SCA hardening on the performance of cryptosystems built on top of prime curves was definitely less significant when compared to the binary curve implementation, but is still noticeable.
This PR leverages the Montgomery ladder scaffold introduced in #6690 to provide a specialized differential addition-and-double implementation to speed-up prime curves, while keeping all the features of ec_scalar_mul_ladder against SCA attacks.
The arithmetic in ladder_pre, ladder_step and ladder_post is auto generated with tooling, from the following formulae:

ladder_pre: Formula 3 for doubling from Izu-Takagi "A fast parallel elliptic curve multiplication resistant against side channel attacks", as described at https://hyperelliptic.org/EFD/g1p/auto-shortw-xz.html#doubling-dbl-2002-it-2
ladder_step: differential addition-and-doubling Eq. (8) and (10) from Izu-Takagi "A fast parallel elliptic curve multiplication resistant against side channel attacks", as described at       https://hyperelliptic.org/EFD/g1p/auto-shortw-xz.html#ladder-ladd-2002-it-3
ladder_post: y-coordinate recovery using Eq. (8) from Brier-Joye "Weierstrass Elliptic Curves and Side-Channel Attacks", modified to work in projective coordinates.

The main author of this PR is @bbbrumley and it is co-authored by @romen .
Impact
As shown from the table below, this implementation offers a speed-up of ~ 20% over current master (as of 275bfc56a6c4efa7e80c8cbb11fda0c3f9be818d ).
Note that the figures for evp_digestsign_verify are stable, as that codepath (operating only on public values) has not been affected by the SCA hardening process.
The new implementation is still slower than 1.1.1-pre3 (before the latest SCA hardening process started), but:

latest master includes also other SCA countermeasures which have an impact on performance (see, e.g., #6662, #6664 );
1.1.1-pre3 scalar multiplication uses less EC operations, giving a major boost in performance. Yet this savings is detrimental to SCA security: leaking scalar digit values in keygen, derive, and sign, and additionally bit length for keygen and derive;
1.1.1-pre3 has no bug attack or DPA mitigations (see, e.g., #6501 ).

Benchmark table
The following table presents the CPU cycles average computed over 10000 runs
per operation.
The benchmarks were executed on Intel Core i7-6700 CPU, running at 3.40GHz, with
Turbo Boost disabled, no frequency scaling and on a single core reserved only
for the execution of the benchmark, while the rest of the system was mostly
idle.

Curve/Operation
pre3
master
this
this/pre3
this/master

prime192v1

evp_pkey_keygen
630 141
1 026 793
759 732
1.21
0.74

evp_pkey_derive
640 005
1 062 775
793 928
1.24
0.75

evp_digestsign
724 864
1 104 544
832 623
1.15
0.75

evp_digestverify
810 189
803 340
813 636
1.00
1.01

secp256k1

evp_pkey_keygen
1 032 030
1 732 314
1 343 351
1.30
0.78

evp_pkey_derive
1 078 728
1 793 829
1 421 131
1.32
0.79

evp_digestsign
1 186 401
1 867 009
1 475 106
1.24
0.79

evp_digestverify
1 338 854
1 352 783
1 323 565
0.99
0.98

secp384r1

evp_pkey_keygen
1 934 810
3 719 463
2 974 983
1.54
0.80

evp_pkey_derive
1 989 063
3 813 044
3 095 676
1.56
0.81

evp_digestsign
2 198 436
3 964 449
3 231 836
1.47
0.82

evp_digestverify
2 466 940
2 546 661
2 528 587
1.02
0.99

Checklist

[x] documentation is added or updated

Ping to @mattcaswell as he was following this and related issues about EC SCA hardening!

Soap box for a moment. Are you a lurking researcher / academic? This PR shows just how easy it is to integrate the differential addition and doubling math. It should serve as a call to action -- think you have better formulae? Drop them in and show us.

As for reference to #6664 (as also having impact on performance). It actually has no performance impact [in comparison to pre-#6522]. Rather contrary, you can measure even marginal improvement on some platforms.

"Ready" label is removed, because re-base is required.

"Ready" label is removed, because re-base is required.

@dot-asm just rebased on latest master: the need to rebase will keep happening as long something else is merged on master that adds entries to the CHANGES file (it cannot be automatically solved because the changes to CHANGES include fixing an old typo).
If this happens again is it possible to keep the ready label and trivially solve the change when you will merge?

As for reference to #6664 (as also having impact on performance). It actually has no performance impact [in comparison to pre- #6522]. Rather contrary, you can measure even marginal improvement on some platforms.

#6664 is mentioned more about the discussion in it and the related changes mentioned in there, rather than for the "reverting blinding in ECDSA signature" itself.

I'm putting "ready" label back after confirming that re-base affected only CHANGES. If @richsalz doesn't explicitly objects I'm going to proceed with merge...

But is it actually that big burden for you?

No, it was just to prevent a possibly endless cat-mouse situation where this is ready to be merged, something else adding a CHANGES entry gets merged delaying the merge of this PR for something trivial and that does not affect functionality at all.
I then rebase, we wait for tests to reevaluate, you reapprove, and the loop starts again!

please merge this, @dot-asm !

Merged. Thank you very much, guys! As for re-base loop. I for one don't feel that it's that big problem. Yes, I realize it can be annoying, but not "pita" enough... Thanks again.

I've been away, so didn't get the chance to review this - but nice work all!!


STM32 Clock Config:  Peripheral bus min definition should start from AHB1 in clock config

There is an issue in the bus gating clock definitions for STM32.
file : stm32u0_clock.h file.
Problem: The definitions for bus gating clocks specify the following:
#define STM32_CLOCK_BUS_AHB1    0x48
#define STM32_CLOCK_BUS_IOP     0x4C
#define STM32_CLOCK_BUS_APB1    0x58
#define STM32_CLOCK_BUS_APB1_2  0x60

#define STM32_PERIPH_BUS_MIN    STM32_CLOCK_BUS_IOP
#define STM32_PERIPH_BUS_MAX    STM32_CLOCK_BUS_APB1_2

Expected Behavior: STM32_PERIPH_BUS_MIN should be defined as STM32_CLOCK_BUS_AHB1 to ensure the peripheral bus range is correct.

Thanks @ExaltZephyr. Related PR: https://github.com/zephyrproject-rtos/zephyr/pull/80471


fix(es/minifier): Fix panic in bitwise logic and incorrect values

Description:
This PR fixes all issues listed in #9256 as well as the following:
1.7976931348623157e+308 << 1.7976931348623157e+308 - swc currently does not transform this and leaves it as-is
Anything involving low floating-point numbers, like 5e-324, such as 5e-324 >> 5e-324, 5e-324 >> 0 etc - swc currently panics; https://play.swc.rs/?version=1.6.7&code=H4sIAAAAAAAAA0vTME3VNTYyUbCzUzDQBACkm%2Ft7DgAAAA%3D%3D&config=H4sIAAAAAAAAA32UO3LjMAyG%2B5zCozrFjostcoDtcgYOTYIyvXxoCNCxJuO7L0TJj40hdRI%2B%2FAAJgPh%2B2%2B26E5ruY%2FfNn%2Fwz6IJQ7v9swTGRvrClAxM1muIH6t5v9IQTcjogNNN1Jh3p0gM1Fe5%2F7feLogs5I9wUiy365N34nNPkOBRAfLKxlUPWCInwf%2F3CSv6aAJX6bD%2FkHECnDaI0Kp8IeihSYJND0AOCOusiRJlOqovHLKWYYCWwaih5EHmynnxOnPOVWtBWmWxBQL6AIX8GSca5WJaQryfcp2ELh9r3rc8%2F1HDWoWoScsKltYRPK0Q9Zo%2BkXE1SCWe4UoMZLsX9qfROFaBa0qvulH1a6clfAK5A0IhJR5DiNg%2FH87SmdptKnxyPLI0C5%2FmWbpmg56Iq751Q2akyUMhL3Sxgq4GpskY6zoJXyofeggLneFaE0PjlyRylpDQOkJ0AuL%2FaSVM1A3V%2FhSt8ehAb%2BA%2FfkuQBWzyipuM6xTEecthIEIGO2W44cCsor%2BPCW%2BIyrPOaLPBogBVdKjbwugT4AVBWoe3Ll9ng58ERVR%2Fy4bEmFofrfQ9HnfrHe59X8dvi0MVsa4PLkp%2F6O6%2Fm393D6baF7wfvPH7elC3p9R%2BoYzQdMAYAAA%3D%3D
This PR also fixes shiftCount being incorrect and incorrect conversion between f64 and i32/u32. A new API in swc_ecma_utils has been added, to_js_int32 and to_js_uint32 that allows external callers to convert f64s to i32 and u32 so they can perform bitwise operations themselves if they're trying to replicate JavaScript behaviour.
I also believe the updated bit shifting logic should be accessible externally via swc_ecma_utils, but unsure about this.
Related issue:

Closes https://github.com/swc-project/swc/issues/9256

CI failed. Can you take a look?

Not sure if that was the problem or if something else was wrong. Will take a look once it's done.

block berfore #9251 get merged

lgtm, will update once this is merged

Will rebase properly shortly. Not sure how this is always so troublesome on my end lol

Not sure if there's a better way to implement as_int32 and as_uint32, the current implementations are correct, test_fold_bit_shifts doesn't fold everything with the impl in #9251 as it doesn't overflow correctly in as_uint32

Some implementations are available for reference:

https://github.com/boa-dev/boa/blob/b38b3654d9c96862419cf9e194476e0e4ffbc40f/core/engine/src/builtins/number/conversions.rs

https://github.com/trynova/nova/blob/4a01961d434ba9760f88bbfc720131421ea6181c/nova_vm/src/ecmascript/abstract_operations/type_conversion.rs#L335-L368

In my opinion, leveraging the Rust standard library is optimal. Should there be any discrepancies from ECMAScript, we address those particular instances. The worst case would be to develop everything from scratch.

Some implementations are available for reference:

https://github.com/boa-dev/boa/blob/b38b3654d9c96862419cf9e194476e0e4ffbc40f/core/engine/src/builtins/number/conversions.rs

https://github.com/trynova/nova/blob/4a01961d434ba9760f88bbfc720131421ea6181c/nova_vm/src/ecmascript/abstract_operations/type_conversion.rs#L335-L368

In my opinion, leveraging the Rust standard library is optimal. Should there be any discrepancies from ECMAScript, we address those particular instances. The worst case would be to develop everything from scratch.

I don't think Rust has a std function that behaves the same as the ECMAScript functions. I've seen the functions in V8 engine src before (like the ones you sent), the current impl follows ECMAScript spec. I guess we could implement one of those instead just to be sure. The only issue with trunc() from what I saw is that negative values don't overflow.


Question Around Security Hub Event Rule

Hi,
This is a general question that has come from some of the developers on our project.
In some of our AWS accounts within Control Tower the Event Rule that sends all Security Hub Findings to a Lambda that writes to CloudWatch Logs, AWSAccelerator-SecurityRe-SecurityHubEventsLogSecu*, has been disabled manually, in the console.
This is because the Lambda would become very busy at certain times, start throttling, and cause a CloudWatch alarm to raise an OOH alert to support teams.
Where this is disabled we'd like it to remain so. If LZA is upgraded at some point in the future is there any danger of the upgrade re-enabling this event rule - or will it only become re-enabled if it is manually re-enabled in the console?
Thanks.
Chris Thorpe.
GDS.

Hi @cjthorpe , thanks for creating this issue. My suspicion is that any pipeline run will likely re-enable this Lambda function. We have implemented a new property in the configuration to allow customers to disable the logging of Security Hub events through Lambda in each account which will allow you to disable these functions through LZA. This feature will be released as part of the next major version of LZA, currently planned for the end of Q3.

Hello,
The feature my colleague mentioned has been implemented as part of our v1.5.0 release. You may learn how to configure it here.
Thank you for your support of the LZA! I will mark this issue as resolved.


Add better logging for profile page views

Summary of Changes

Added optional logging fields index and source to the GetUser API.
Removed mandatory inclusion of index and source to GetTableData API

Tests

Added tests for Profile Page logging params
Added logging params to various tests.

Documentation
What documentation did you add or modify and why? Add any relevant links then remove this line
CheckList
Make sure you have checked all steps below to ensure a timely review.

[ ] PR title addresses the issue accurately and concisely. Example: "Updates the version of Flask to v1.0.2"

In case you are adding a dependency, check if the license complies with the ASF 3rd Party License Policy.

[ ] PR includes a summary of changes, including screenshots of any UI changes.
[ ] PR adds unit tests, updates existing unit tests, OR documents why no test additions or modifications are needed.
[ ] In case of new functionality, my PR adds documentation that describes how to use it.

All the public python functions and the classes in the PR contain docstrings that explain what it does

[ ] PR passes all tests documented in the developer guide
[ ] I have squashed multiple commits if they address the same issue. In addition, my commits follow the guidelines from "How to write a good git commit message"

Codecov Report

Merging #239 into master will increase coverage by 4%.
The diff coverage is 100%.

@@            Coverage Diff            @@
##           master     #239     +/-   ##
=========================================
+ Coverage   70.18%   74.19%     +4%
=========================================
  Files         125       24    -101
  Lines        3250     1054   -2196
  Branches      401       87    -314
=========================================
- Hits         2281      782   -1499
+ Misses        937      245    -692
+ Partials       32       27      -5

Impacted Files
Coverage Δ

amundsen_application/api/metadata/v0.py
74.41% <100%> (+0.15%)
:arrow_up:

...ication/static/js/components/common/Tabs/index.tsx

...ndsen_application/static/js/ducks/search/api/v0.ts

...ication/static/js/components/common/Flag/index.tsx

...ts/common/ResourceListItem/TableListItem/index.tsx

...sen_application/static/js/ducks/allTags/reducer.ts

...tatic/js/components/common/ScrollTracker/index.tsx

...pplication/static/js/ducks/popularTables/api/v0.ts

...static/js/components/common/ResourceList/index.tsx

...tic/js/components/common/ResourceList/constants.ts

... and 82 more

Continue to review full report at Codecov.

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

@jinhyukchang can you take a look at the question regarding changes in amundsen_application/api/metadata/v0.py?


Add MPC notebook

I'm currently working on resolving an issue with the animated plots for this notebook. The contents can otherwise be reviewed.

bump @barpit20 :)

Sorry for the delay, I will fix this up soon.

bump :)

Can documenter show gifs? This could be a cool tutorial to include.


Tapping view behind the dynamic overlay not possible

Hi. I have a map view behind the dynamic overlay but it is not tappable or draggable any more. How can I get it interactive again?

This is a duplicate of #2.

This is a duplicate of #2.


RC test: Vector Addition: Equations 1.0.0-rc.2

@KatieWoe, @arouinfar, vector-addition-equations/1.0.0-rc.2 is ready for RC testing.
This release does not include PhET-iO or a11y.
This sim consists of the Equations screen from Vector Addition. So please document issues in https://github.com/phetsims/vector-addition/issues (not vector-addition-equations) and link to this issue.
Assigning to @ariel-phet for prioritization.

General RC Test

What to Test

Click every single button.
Test all possible forms of input.

Test all mouse/trackpad inputs.
Test all touchscreen inputs.

If there is sound, make sure it works.
Make sure you can't lose anything.
Play with the sim normally.
Try to break the sim.
Test all query parameters on all platforms. (See QA Book for a list of query parameters.)
Download HTML on Chrome and iOS.
Make sure the iFrame version of the simulation is working as intended on all platforms.
Make sure the XHTML version of the simulation is working as intended on all platforms.
Complete the test matrix.
Don't forget to make sure the sim works with Legends of Learning.
Check this LoL spreadsheet and notify AR or AM if it not there.
If this is rc.1 please do a memory test.
When making an issue, check to see if it was in a previously published version
If there is a console available, check for errors and include them in the Problem Description.

Focus and Special Instructions
This RC does not require a full test matrix.  You can spot check the issues in "Issues to Verify" on a subset of supported platforms.

Issues to Verify

[x] credits
[x] 0 vector has larger pointer area
[x] Upside-down f vector when d vector and e vector cancel
[x] Assertion failed: Not handling arcs with start/end angles that show differences in-between browser handling
[x] labels overlap for vector <-x,0>
[x] incorrect (solid) leader lines when sum vector is made visible
[x] missing leader line when sum vector component is zero
[x] grabbing the origin manipulator clears the selected vector

Link(s)

Simulation
iFrame
XHTML
Test Matrix
Legends of Learning Harness

FAQs for QA Members

There are multiple tests in this issue... Which test should I do first?
Test in order! Test the first thing first, the second thing second, and so on.

How should I format my issue?

We typically assign the developer who opened the issue in the QA repository.

My question isn't in here... What should I do?
You should:

Consult the QA Book.
Google it.
Ask Katie.
Ask a developer.
Google it again.
Cry.

[ ] Win 10 chrome
[ ] Win 10 firefox
[ ] Win 10 edge

[ ] Mac 10.15 chrome
[ ] Mac 10.15 safari

[ ] Win 7 IE
[ ] Mac 10.12 safari

[ ] ChromeOS
[ ] iPadOS 13

QA is done

🎉 Thank you @KatieWoe and QA team!   Proceeding to publication of 1.0.0.


More E2E tests for Component Browser

Pull Request Description
More cases in E2E tests checking all ways of using component browser.
The tests found one actual bug: sometimes we displayed only a few entries after opening CB because the scroller size was not refreshed (we assumed it will be available in the next tick). Refactored Component Browser so it does not use nextTick anymore.
Important Notes

Checklist
Please ensure that the following checklist has been satisfied before submitting the PR:

[x] The documentation has been updated, if necessary.
[ ] Screenshots/screencasts have been attached, if there are any visual changes. For interactive or animated visual changes, a screencast is preferred.
[x] All code follows the
Scala,
Java,
and
Rust
style guides. In case you are using a language not listed above, follow the Rust style guide.
All code has been tested:

[ ] Unit tests have been written where possible.
[x] If GUI codebase was changed, the GUI was tested when built using ./run ide build.

i kinda skimmed over the actual E2E tests, someone else may notice if maybe there are some cases that are still not being checked


Powershell returns 'can'g open device' even after I have set the variable

I ran set TESTER_UART_PORT=COM and run uart_send, but still got the following error
Can't Open /dev/ttyUSB0. Did you set port using:
export TESTER_UART_PORT=/dev/ttyXXX (On Linux)
set TESTER_UART_PORT=COMx (On Windows)

I think powershell variable setting uses $Env:TESTER_UART_PORT = 'COM1' instead


Snowflake pandas

Tagging @jfyu also
Would love to have a bit of a discussion about this PR before taking any action to see if folks align on the approach here. I've overridden the to_pandas function for Snowflake. If no size is provided it will use the internal snowflake function to get the pandas df. If size is provided to will use the existing inherited database functionality.
I was reluctant to change to the insert_dataframe_to_table to use write_pandas(). The 2 are slightly different in their approach. Our method is not using COPY like the internal snowflake method but inserting directly via a INSERT statement, and provides table creation and schema abilities. I updated the docs to explain this. I think if people are really keep on using write_pandas they should be able to call it directly from the cursor.
Any thoughts on the above?

Instead of replacing, I think it might be a better idea to combine insert_dataframe_to_table and write_pandas() . More specifically, we should keep the functionality of table creation, but replace the INSERT statements to use write_pandas(). Also, we need to do some performance tests to see how write_pandas() improves the speed.

Whether to use COPY or INSERT I think depends on the performance. But I really like the create table feature because that's a very big use case.
It does look like snowflake-connector-python has an insertion method as well (https://docs.snowflake.com/en/user-guide/python-connector-api.html#pd_writer) but only for SQLAlchemy

There is a bigger question about the insert_dataframe_to_table method. Should we add a flag like use_snowflake_copy which will use the underlying snowflake feature if selected vs our version? It should be simple enough and can do it in the next PR if we all agree on that?


Improve error messages for external config files

We're currently showing the wrong error message (can't fetch config file) whenever the external config file cannot be parsed. This issue was surfaced in this PR comment.
The idea behind this PR is to raise sooner to inform users about where the issues lie. This is a bit hacky atm, improvements would be welcome!

@cnagadya @hmaurer I've updated the PR to add support for inline config lists, would appreciate another review.


Info for using pyfujitsu_for_homeassistant on 0.113.x

With the change in 0.113.x to the minumum Python version it is necessary to update the dependencies folder - to fix I renamed the folder \deps\lib\python3.7 to \deps\lib\python3.8.  Working perfectly post upgrade to 0.113.x

@chiefcomm  what version of code are you using? @xerxes87 's latest code?

After a reboot the 'module not found' error on the config checker went away and the integration works fine :)

@chiefcomm what version of code are you using? @xerxes87 's latest code?
I get a module not found error even though i adjusted the path that you mentioned.

@meichthys I confirm I am using the latest code of @xerxes87, 0.113.x does not support python version lower than 3.7.1 so I renamed the dependencies folder \deps\lib\python3.7 to \deps\lib\python3.8 which solved the issue.

I cannot find any reference in the code included in this repo towards 3.7.1 <-> 3.8. The original code is based on the API maintained in another repo here:: https://github.com/Mmodarre/pyfujitsu
For better performance, it would also be a good idea to include the current_temperature in the API directly as well (instead of getting the value from the whole json response)

@tomdb-BE  The python 3.8 is required because Homeassistant itself has moved to the python 3.8 requirement.
It would indeed be better to include the code in pyfujitsu but there are no active forks of the original repo that i know of.

After a reboot the 'module not found' error on the config checker went away and the integration works fine :)

worked for me as well. Thanks @meichthys for your hints

Hi,
I'm on 0.112.4 version and I tried to rename folder \deps\lib\python3.7 to \deps\lib\python3.8.
I rebooted HA, but now I have:

entity climate not available
following error in log:

Logger: homeassistant.components.climate
Source: custom_components/fujitsu_general_heatpump/climate.py:68
Integration: Termostato (documentation, issues)
First occurred: 8:34:22 (1 occurrences)
Last logged: 8:34:22
Error while setting up fujitsu_general_heatpump platform for climate
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 178, in _async_setup_platform
await asyncio.wait_for(asyncio.shield(task), SLOW_SETUP_MAX_WAIT)
File "/usr/local/lib/python3.7/asyncio/tasks.py", line 442, in wait_for
return fut.result()
File "/usr/local/lib/python3.7/concurrent/futures/thread.py", line 57, in run
result = self.fn(*self.args, **self.kwargs)
File "/config/custom_components/fujitsu_general_heatpump/climate.py", line 68, in setup_platform
import pyfujitsu.api as fgapi
ModuleNotFoundError: No module named 'pyfujitsu'

Hi,
I also updated to code version available here https://github.com/xerxes87/pyfujitsu_for_homeassistant but now I have another error:
Logger: homeassistant.config
Source: custom_components/fujitsu_general_heatpump/climate.py:7
First occurred: 9:20:15 (1 occurrences)
Last logged: 9:20:15
Platform error: climate
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/config.py", line 780, in async_process_component_config
platform = p_integration.get_platform(domain)
File "/usr/src/homeassistant/homeassistant/loader.py", line 322, in get_platform
f"{self.pkg_path}.{platform_name}"
File "/usr/local/lib/python3.7/importlib/init.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 1006, in _gcd_import
File "", line 983, in _find_and_load
File "", line 967, in _find_and_load_unlocked
File "", line 677, in _load_unlocked
File "", line 728, in exec_module
File "", line 219, in _call_with_frames_removed
File "/config/custom_components/fujitsu_general_heatpump/climate.py", line 7, in
import pyfujitseu
ModuleNotFoundError: No module named 'pyfujitseu'
and my entity climate don't works...

Hi,
I updated to 0.113.3 and now all seems to work fine...so I suppose this workaround work only from 0.113 version of HA...

@chiefcomm i think we can close this.

Agreed @meichthys


Coverage : Change color of line partially covered

Clear and concise description of the problem
The color for lines covered and lines partially covered are the same
Suggested solution
Choose color orange for lines partially covered
In this example, llines 108 and 110 are partially covered, but line 109 is not covered at all. So it's a bit confused
Image here :

Alternative
No response
Additional context
No response
Validations

[X] Follow our Code of Conduct
[X] Read the Contributing Guidelines.
[X] Read the docs.
[X] Check that there isn't already an issue that request the same feature to avoid creating a duplicate.

Coverage interface is controlled by the vscode itself. I tried to find setting to change the colors, but didn't find any. You can open an issue in vscode repository directly to ask for this feature.

Ok, I see


Removing logger file configuration from Teku config file

PR Description
Fixed Issue(s)

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


Rename UtTestCase #519

Description

Renamed UtTestCase class to UtMethodTestSet.
Also renamed all related local variables and functions to ...testSet....
Along with this, renamed UtValueTestCase to UtMethodValueTestSet. FYI: it's only used in our tests.

Fixes #519
Type of Change

Refactoring (typos and non-functional changes)

Checklist:

[x] The change followed the style guidelines of the UTBot project
[x] Self-review of the code is passed
[x] No new warnings
[x] All tests pass locally with my changes

Also:

examples/SummaryTestCaseGeneratorTest.kt:100
org/utbot/framework/codegen/model/constructor/tree/CgTestClassConstructor.kt:53
org/utbot/examples/UtModelTestCaseChecker.kt:96
org/utbot/examples/UtValueTestCaseChecker.kt:2295

Also:

org/utbot/examples/UtValueTestCaseChecker.kt:2339
org/utbot/examples/UtValueTestCaseChecker.kt:2479
org/utbot/framework/plugin/api/FuzzerTestCaseGeneratorTest.kt:18

Looks like

org/utbot/contest/Contest.kt:336

shouldn't be renamed

Also:

org/utbot/cli/BunchTestGeneratorCommand.kt:107
org/utbot/cli/GenerateTestsCommand.kt:105
org.utbot.cli.GenerateTestsAbstractCommand#generateTestSets
org/utbot/framework/coverage/CoverageCalculator.kt:143
org/utbot/intellij/plugin/generator/CodeGenerationController.kt:98

(?) org/utbot/framework/codegen/model/constructor/tree/CgMethodConstructor.kt:1365
(?) org/utbot/framework/codegen/model/constructor/tree/CgMethodConstructor.kt:1312

Looks like these uses of "case" are correct.


Develop outside - run inside and RSEcon24

Goal Title
What will this work achieve?
Description
Specific aims
Definition of Done
When will this be considered as succesfully completed?
Details

RACI

Accountable team or person:
Responsible team or person:
Informed and consulted people:

Estimated effort in total FTE:

Task and issue breakdown
Breakdown in specific tasks of maximum a month duration, tasks and issues may be added as necessary
Issues may span across repositories when necessary

issue alan-turing-institute/data-safe-haven-team#X
issue alan-turing-institute/data-safe-haven#X
issue alan-turing-institute/trusted-research
issue sa-tre/satre-specification#X
issue sa-tre/satre-team#X

Checklist

[ ] This Story have been agreed with project members, it tackles prioritised work

[ ] If not: Label as ForPrioritisation so it discussed in the next monthly meeting, do not set a status

[ ] I have filled in the Team Accountabe field
[ ] I have included this Story in the agreed upon Milestone, set status as Planned

[ ] If not: set status as Backlog, to be Planned via weekly meetings or async discussions

[ ] The work to be done is likely to span over a month
[ ] I have broken down the work in monthly issues and added them above
[ ] I have labeled this issue according to its main project: SATRE, TRESA, CORE DSH (ELA) or other (please agree and create a new label if necessary)
[ ] If known: sum the total effort (points) of tracked issues and add it on the body
[ ] Select a Story level of effort in the project fields

This is hte priority of development, aiming to finalise by RSEcon and our presentation. It also includes actually preparing the presentation, which we could start soon and get an outline.


refactor transport into abstract class for new serial implementations.

Fix #117
This PR separate the Webserial transport into an abstract class AbstractTransport and ISerialOptions for such transport class construct options.
This should enable external serial implementation such as node serialport.
PTAL @cubicap

Thanks a lot but I do not think this solves the original problem.
To me, it seems like the class implementing the Transport interface still has too much responsibility. I believe the algorithms (e.g. slip reader, hexConvert...) implemented in the class could be separated further away, as they will be the same in different serial port implementations.
I think the Transport "interface" should only implement read, write, setDTR/RTS, getInfo, getPID, connect and disconnect. (I hope I didn't miss anything).
Another thing I would like you to consider when defining the interface - at least Chromium's webserial is quite fast and is able to set dtr/rts with low enough latency not to cause too many problems. This is not true for serial port implementations for Node.js, which have problems with inverting both of the signals at once during the reset sequence (specifically the SerialPort library has this problem).
It then causes that while the signal on the EN pin is rising (which takes a surprisingly long time), there is a short period when the boot pin is set to logical 1 as well and so the esp boots in the wrong mode (I'm not sure now which sequence it was but can investigate this further later this week).
In my fork, I've solved this problem by updating the reset strategy string and its interpretation:

W - works as before
D - sets DTR state to a local cache
R - sets RTS state to a local cache
S - takes DTR and RTS states from the cache and sets them to the port (new command)

This solution needs some function for setting both of the pins at once to be present in the interface. Also, I don't know, whether changing the strategy string is a viable option.
Another problem, I see with the implementation is in the _appendBuffer function (and its use). Because Uint8Array serves as a view to an ArrayBuffer instance, the internal buffer can have a different size, than what is being viewed. Because webserial seems to return data in exactly allocated buffers, the function works. This is however not true for Node SerialPort, which always seems to allocate at least something like 32 KiB. As a result, _appendBuffer which concatenates the internal buffers causes the use of uninitialized memory (and seems to generate data from thin air).
Anyways, the use of ArrayBuffer in that place does not make any sense, because Uint8Array has the same API for setting data. (I have spent an annoyingly long time trying to debug where this uninitialized data was coming from when creating my fork)
And just a little nitpick - wouldn't an interface suit the function better than an empty abstract class?

Also, could you please comment on the section, where I'm discussing the handling of DTR/RTS in connection to the reset sequence?

The current rawRead is already async (need to return a Promise which is how async functions are defined in abstract classes).
The write function is also implemented as async with a Promise result. Is there a need for rawWrite ? Formatting is done from calling functions in exploder (readFlash and command).
I didn't think about the reset functionality because it seems to me that those src/reset.ts function are basically sequential calls to setDTR and setRTS. Assuming that a setDTR is working correctly the sequence in src/reset.ts should remain equally working no ?
We could add a way to inject these usbJTAGSerialReset and customReset functions currently used in connection attempt.

The problem is not the fact whether the functions are async, but the fact that they have too much responsibility.
The way they are, the Transport can't implement the simple concept of "read N bytes". Instead, it has to implement "read N bytes and apply some algorithm to it" (whether it is the slip reader or some kind of buffering). This will lead to unnecessary code duplication when implementing a second Transport.
Regarding the reset, the same problem occurred not only with the reset string but with the mentioned functions, which implement the sequence directly. The problems I've encountered are caused by the configuration of the signals being too slow in node serialport (at least on Windows), which causes unexpected output during the transition phases that result in the esp ending in the wrong boot mode.

Isn't read N bytes rawRead ? I expect read needs to do some formatting of some sort anyway but I remove slipReader and slipWriter from abstract class. As you can see slip reader does have some dependency to transport implementation that is why I didn't separate like slipWriter.
Removed some of these function from abstract class and refactor reset methods and other functions.
What do you think @cubicap ?

I'm also interested in using esptool-js in node.js and I'd like to echo @cubicap's comments, specifically that read and the slip stuff should be moved out of the base transport. As far as I can tell, the reason that read in is there is to be able to push read data back into the this.leftOver buffer for future consumption. If you add an unread method to the transport that does just that (essentially unread(buffer) { this.leftOver = buffer }) you should be able to move read and slipReader out of the WebSerialTransport.

Sorry for late response @cubicap @tve
I've removed the read function to src/utils/slip.ts and implemented mentioned changes.
Please take a look when you can.

Thanks a lot, the refactor looks mostly like what I had in mind.
I'd say, the methods rawRead and write should have more consistent names (both with or without the "raw" prefix).
Also, I'm still not convinced that using an abstract class instead of an interface for AbstractTransport is right, because an interface enforces the implementation of its methods as well. To me, an abstract class serves more like an incomplete base while an interface only specifies what the class/object should be capable of (which is exactly what AbstractTransport is for).
The last thing is tracing -- I'm not sure, whether trace should be a method of the transport object. At this stage, it seems like something logically standalone but somehow connected through the transport. I think it would make more sense for a "tracer" to be an argument of esploader (or if the transport wants tracing, of transport as well). The separation would remove another method, which is needed for the full implementation of a transport and would make it easier to redirect traces to a different output (if someone chooses to do so).

The problems with the reset sequence I've mentioned before will still probably persist but I'll investigate further and write a separate issue when I have the time for that.
On a separate note - I'd like to ask, whether Espressif is interested in maintaining the implementation of other selected (possibly popular) transports (like node-serialport or connection through WebUSB). It could make it more clear to users that esptool-js is usable outside of the web context.

Oh, I've looked inside the WebSerialTransport and it seems I've missed some stuff regarding slip - while slip is mostly separate, it still partly lives inside webserial transport:
The attribute slipReaderEnabled is weird. Whether reads should be parsed using slip should be in the competence of the caller. It is definitely not the property of a transport. To me, it seems like an artefact of the older version.
The write method should also implement only a "raw" interface and transparently write data to the serial port without any processing. That should be done in the competence of the caller.
Another thing is the leftOver buffer. It does not seem like a good practice to directly access the internal state of the transport. It would be better to have a method unread on the transport, which returns data back to the buffer. The same applies to the read operation, which definitely should not directly touch the buffer (especially when there is the rawRead method).
slipReaderFormat looks more like it should be called slipReaderParse as it takes raw data, parses them and finds a packet.
My suggestion would be to create a class Slip, which takes a reference to the transport and transforms reads and writes to use the slip protocol (like the diagram I sent in December). I think it would be way cleaner than the current free functions, which keep their state in a somewhat independent object.
(a large reason for these changes is that exposing data directly means there is no clear contract as to what can be done with them, which in turn means that to implement a custom transport, the user needs a deeper understanding of how the buffer is used and how it should be managed)

Thank you for the feedback @cubicap ! Updated the changes to a Slip class and further remove from Transport layer and other changes like the tracer object into a Trace interface. the leftOver was reimplemented in @tve unread(buffer) method. Thank you @tve
Regarding the reset functions you can see that the user can override the reset functions passing reset functions objects to esploader in loaderOptions.
Please take a look guys.
About supporting other transport I would be happy to add support for them if they don't require too much maintaining but community can help. Hopefully we can add an implementation that could be use in node electron and others.

Thank you, that looks great!
The last thing about the unread method - it serves as a kind of "buffer swap", which to me seems unintuitive. I think, in the places, where we want to just "empty" the internal buffer, using read would be more clear. For returning data back to the buffer, it would probably be more intuitive if the data was prepended to the current leftover bytes - e.g.
function leftOver(buffer) {
    this.leftOver = this.leftOver.length == 0 ? buffer : appendArray(buffer, this.leftOver);
}

I guess, this would mean the behaviour of transport's read would have to change slightly - maybe a special timeout value for reading only the internal buffer?
I think it's a bit closer to what @tve meant.

I've completely missed the changes to reset. That looks like it should be able to fix most of the problems I've encountered - thanks for that.
I've just noticed that some of the functions like classicReset are not used anywhere inside of esptool. I think it's useful to have the named reset sequences but it might be better to express them using the customSequence to reduce logic duplication (and to make it easier to globally change their behaviour).
It might also be nice to always use the named resets inside of esploader instead of sequence strings to make the behaviour more clear?

I'm just writing a node-serialport transport to test whether things work in node.js and am wondering whether the packet argument to read is really needed - it only has data that is prepended before the received data. Does it have to be in the read function? It seems like something that can be just as easily done by the caller. Omitting it might make things a bit more clear.

I've just finished testing the new version with node.js and have encountered several problems:

the intended behavior of read is not very intuitive (e.g., even if the packet argument is larger than minData, it has to read at least something - I think the packet argument really should be removed, as I'd suggested yesterday)

node module resolution is somewhat different than what rollup works with, which leads to some compatibility issues

all relative imports must have the .js file extension to be proper ES imports
importing json files using ES import does not work in node.js (it is possible with import attributes, which are, however not yet part of the official ECMAScript standard and thus are not widely supported)

it would be nice to have the various resets exposed via methods of esploader (so the user can, for example, easily call hard reset)

most attributes of LoaderOptions are not optional, while they probably should be (the constructor of esploader treats them that way)

Just to illustrate the first point - I believe I know how esptool-js works internally and how it should be used better than an average user. Still, I've spent more than an hour debugging what I am doing differently than the webserial transport.
To make the tool portable, the json files will probably have to be loaded using a different approach. (the solution I use in my fork is transforming the jsons into ts source files, but it's not very elegant, and I'm not sure if it is even ok because of their license).

Other than that, things seem to work well.

I had a typo in one of my comments - in the code snippet, the function name should have been unread instead of leftOver.
The current version behaves differently than the typical "unread" operation. Intuitively, it should just put the data back to the input, so they are the first bytes read by a read operation.
Please take a look at C's ungetc - it only pushes the character into the read buffer. Similar behaviour can be observed with Node.js' Readable.unshift
Such behaviour would be preferable because it is easier to imagine and more conventional.
Changing the behaviour would remove a way just to read the leftOver buffer, but I think Slip could be changed not to rely on that. Alternatively, read could have a special timeout value, with which only the buffer content is returned.

Interesting... When I tried the last commit with my ESP32-S3, things seemed to work fine both in a browser and Node.js. (I did not notice any difference from before)

@cubicap I've rebase and went back a bit to update the PR. Please take a final look so we can merge.
Also @balloob Please take a look, this PR should not change the behavior but allow NodeJS projects to also use it.

Thanks for the work you've done.
At first glance, I see a few things missing - the unread operation we discussed is not implemented and the read operation therefore still suffers from the mentioned problems.
I am also not sure about Node.js - the imports of json stubs in the "target.ts" files do not seem to work under it.
And just a nitpick regarding the reset functions interface - the ESPLoader constructor appears to check all of the reset functions for being defined (which seems sensible and allows for not specifying the defaults explicitly), however, the interface ResetFunctions does not allow for the functions to be undefined (individually).

I haven't been able to successfully refactor leftOver out of slip read function without breaking the whole connection workflow. If you manage to do so please let me know or suggest some way to do because I can't seem to fix it.
About reset function can fix this. Regarding the JSON import, I believe tsconfig.json resolveJsonModule should allow to import it in your project. Isn't that the case ? Maybe we can test with a dynamic import() ?

I have resolveJsonModule set to true, but it still does not work.
I think the problem is that while TypeScript has the concept of json imports, ES does not. AFAIK, it should work in CommonJS modules but ES is the standard that should be targeted (or that's what I believe). Dynamic import will probably have the same problems as the "normal" one. There is a proposal for ES to add "import attributes", which should allow json imports but it's not standardized yet.
I wanted to finalize the interface as much as possible so that more breaking changes are not necessary in the near future. If it's not a problem, I can look at the leftOver and try to come up with something when I have more time (which, to be honest, does not seem to be very soon).


Automatic tagging on any changes to the template app

@stebo85 @aswinnarayanan
I wonder -- is it possible to configure Github so every time certain files are changed, all the developers will be tagged?
If that's possible, can you refer me to an explanation on how to do it? Since we all use the template app to create new containers, I would like to configure Github to notify everybody on any changes there.

We could lock the master branch - then every change has to go via a pull request, which would notify people. @aswinnarayanan what do you think?

Other than Neurocontainers, is there any other repository in the Neurodesk
organisation that can be modified directly rather than via a pull request?
On Tue., 13 Dec. 2022, 8:59 am Steffen Bollmann, @.***>
wrote:

We could lock the master branch - then every change has to go via a pull
request, which would notify people. @aswinnarayanan
https://github.com/aswinnarayanan what do you think?
—
Reply to this email directly, view it on GitHub
https://github.com/NeuroDesk/neurocontainers/issues/193#issuecomment-1347398099,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AB7FUI4M2WLUUF2Z2EAIOZDWM6N2TANCNFSM6AAAAAAS3SM7MI
.
You are receiving this because you authored the thread.Message ID:
@.***>

no - we locked all other repositories down as well to avoid breaking things that people rely on - I think it would make sense to do the same for neurocontainers

Yeah locking down master makes sense, we'd need to update the documentation correct?

not much - I think we documented everything as pull requests already - assuming that contributors come from outside

completed now: Neurocontainers repo now only works via pull requests. I removed the option in the documentation to clone repo and directly commit to master, because not everyone is familiar enough with git to avoid merge conflicts that then trigger other builds.


Cohere's models not on the list.

Not sure if there's a requirement for truly open licencing to be on the list you have curated here, but Cohere's Command-R and Command-R+ probably deserve to be on it.

Sure! Welcome PR!


microbenchmarks stock_build_iteration and stock_layout_iteration have regressed.

Pretty clear signal around https://github.com/flutter/flutter/pull/57252.

platform_views_scroll_perf_ios__timeline_summary average_vsync_transitions_missed also looks like it's affected by this roll.


Sleep deprivation

I am seeing some very strange behaviour when returning to Lens after the computer wakes from sleep:

Should look like this:

Observed on 5.4.0-beta.0, macos
I will try to narrow down the issue

Also see this, not after sleep (though screen saver probably kicks in), but after leaving Lens open for a while, connected to a cluster:

on Windows, beta.0

Not again :(

After resuming from sleep (overnight, so may involve some long timeouts):

all spaces clusters (whether connected or not just before sleep) error out with ESOCKETTIMEDOUT
local clusters that were connected just before sleep seem to be connected but the dashboard content is incomplete (see below). Looks like watches are failing ("network timed out at: ...")
local clusters that were not connected before sleep appear to connect fine after resuming.


Bullet points not showing when custom SpannableConfiguration is passed to setMarkDown method

I am new to this library, Sorry if this isn't an issue or it might be a configuration issue!
When I use setMarkDown method with just  a textview and String the bullet point is showing:
Markwon.setMarkdown(binding.markDownParser, configuration, "* first Bulletin")
However when I pass a SpannableConfiguration the bullet point stops showing.
`       val latoTypeFace = ResourcesCompat.getFont(context!!, R.font.lato_regular)!!
    val latoTypeFace = ResourcesCompat.getFont(context!!, R.font.lato_regular)!!
    val textSizeMultipliers = floatArrayOf(1.5f, 1.5f, 1.5f, 1f, .5f, .25f)
    var configuration: SpannableConfiguration = SpannableConfiguration.builder(context!!)
            .theme(SpannableTheme.builder()
                    .codeBackgroundColor(ContextCompat.getColor(context!!, R.color.white))
                    .codeTextSize(activity!!.resources.getDimensionPixelSize(R.dimen.font_size_16))
                    .codeTypeface(latoTypeFace)
                    .headingTypeface(latoTypeFace)
                    .headingTextSizeMultipliers(textSizeMultipliers)
                    .build())
            .build()
    binding.markDownParser.setTextColor(ContextCompat.getColor(context!!, R.color.primary))
    Markwon.setMarkdown(binding.markDownParser, configuration, "* first Bulletin")`

Bullet points not showing when custom SpannableConfiguration is passed to setMarkDown method.
Do I have to add anything to the SpannableConfiguration builder to fix this?

Hello @kannans2 !
You are using SpannableTheme#builder method to create an instance of SpannableTheme builder, but this one has no defaults at all (so you should provide everything to it). If instead you would use SpannableTheme#builderWithDefaults(Context) factory method, bullet lists (and many more!) should be displayed correctly

Oh!! Really Sorry... My Bad..Didn't notice that!!
It's Working!!