More customization options for Pipeline Hints and LineLenses

Is your feature request related to a problem? Please describe.
Inlay hints appear as comments, which isn't the case with rust-analyzer. In addition, opening a new line after a variable causes the hint to be dropped to the next line, as seen in line 27
Describe the solution you'd like
I'm not a VS code extension developer so I can't tell which mechanism rust-analyzer uses, only quote from their manual:

Note: VS Code does not have native support for inlay hints yet and the hints are implemented using decorations. This approach has limitations, the caret movement and bracket highlighting near the edges of the hint may be weird

I think these issues might not be issues in Ionide since Ionide displays the hint at the end of each line, and using these decoration might appear better than using what seems like regular comments
Describe alternatives you've considered
Irrelevant
Additional context

In this case it sounds like the request is it look like this:
foo : foo-type

as opposed to
foo // foo-type

yes?

Yeah, but I also think rust-analyzer uses some other mechanism to display the text. The font isn't monospaced in rust-analyzer's hints, and the type hint won't go down the line if stand on line 11 col 14 and press enter

We use decorations for our hints, that's basically the only way to do things in VSCode.
It's worth noting that we have two primary kinds of signature decorations:

top-level signatures (like on a module-level function)
pipeline signatures (for an individual pipeline stage)

and the latter of these is getting a bit of a rework in https://github.com/ionide/ionide-vscode-fsharp/pull/1453, so check that out and see if it addresses part of your request.
The other part of the request that I see (at least as far as the rust example shows) is to, for simple let value bindings (ie not functions) that are not already explicitly typed, render a text decoration that provides the type.
eg for
let magicNumber = 42

render that in the editor as
let magicNumber: int = 42`

instead of
let magicNumber = 42 //int

(with the : int portion being a decoration).
Is that accurate?

Inline type hints as per here is certainly possible: https://github.com/dotnet/fsharp/pull/10295
but I would also say that there's a desire to generalize this as an API point in vscode (some emails in my inbox indicate this) so I'm not sure how much it's worth really diving into a bespoke implementation especially when there's a lot of little quirks to work out in the presentation with something that isn't an overlay before a line or at the end of a line.

I'd forgotten about that MR @cartermp. What do you think the odds are of merging the FCS work there so that we could easily consume it in vscode as sort of a leading example of the feature?  I suppose we could also lift the FCS portions to our FCSPatches file for trialing it...

and generally, we're fine with running custom implementations of things ahead of VSCode proper implementing a standarized form. Semantically aware syntax highlighting was the most recent example of us hacking it in before the feature standardized in the VSCode or LSP APIs.

Making these inline would be nice, but I should say that my original intent was that Ionide will make its hints a bit more distinguished than the actual code, perhaps by using a non-monospace font and using  : as the hint prefix instead of the comment characters.

You can set FSharp.pipelineHints.prefix and FSharp.lineLens.prefix to any perfix you want (with // being default).
We would accept a PR adding options to provide custom CSS for decoration type for both cases. It would require adding appropriate config entries and using them in those 2 places:

https://github.com/ionide/ionide-vscode-fsharp/blob/master/src/Components/PipelineHints.fs#L96-L98
https://github.com/ionide/ionide-vscode-fsharp/blob/master/src/Components/LineLens.fs#L117-L119

Relevant VSCode API documentation: https://code.visualstudio.com/api/references/vscode-api#ThemableDecorationAttachmentRenderOptions

Inline hints (as in dotnet/fsharp#10295) are something we plan to do, but it's out of the scope of the changes discussed here.

Rust-analyzer uses the stuff @Krzysztof-Cieslak was talking about
    const fg = new vscode.ThemeColor(`rust_analyzer.inlayHints.foreground.${hintKind}Hints`);
    const bg = new vscode.ThemeColor(`rust_analyzer.inlayHints.background.${hintKind}Hints`);
    return {
        decorationType: vscode.window.createTextEditorDecorationType({
            [pos]: {
                color: fg,
                backgroundColor: bg,
                fontStyle: "normal",
                fontWeight: "normal",
                textDecoration: ";font-size:smaller",
            },
        }),

when applied to ionide this yields a theme kinda like

I'm using pragmatapro-mono here but you'll notice the comment appears to not be mono. It is mono, it just is a bit smaller which creates the illusion of "non-mono".
When you were thinking about exposing custom css, am I right in thinking you were considering the "textDecoration" attribute? Or did you mean opening up more individual attributes?

@Krzysztof-Cieslak Moved from https://twitter.com/k_cieslak/status/1439265620504231936?s=20.

Parameter name hints are now supported with TypeScript 4.4

There's new official inlay hints (microsoft/vscode#113285) like in VS, JS/TS support (https://github.com/microsoft/vscode/issues/16221#issuecomment-879538951), and proposed (but unstable) API (https://github.com/microsoft/vscode/blob/a1e69b746f92f3e1f8ab1c586567f2b848f77f87/src/vs/vscode.proposed.d.ts#L2153-L2232).

We know have inlay hints support, so with them, code lenses, line lenses and pipeline hints there should be enough different ways to customize the experience.


Error message:  AttributeError: 'NoneType' object has no attribute 'profile_idx'

I get this error when generating images. It just seems to take longer but nothing else bad happens. This happens when I do single and batch images. I do see weird hands sometimes not sure if this is related. Running auto111 and using it for SDXL. Not sure what else I should add to this to have it make sense.
*** Error running process_batch: X:\SDXL_A111\stable-diffusion-webui\extensions\Stable-Diffusion-WebUI-TensorRT\scripts\trt.py
Traceback (most recent call last):
File "X:\SDXL_A111\stable-diffusion-webui\modules\scripts.py", line 742, in process_batch
script.process_batch(p, *script_args, **kwargs)
File "X:\SDXL_A111\stable-diffusion-webui\extensions\Stable-Diffusion-WebUI-TensorRT\scripts\trt.py", line 302, in process_batch
if self.idx != sd_unet.current_unet.profile_idx:
AttributeError: 'NoneType' object has no attribute 'profile_idx'

I believe this in the same or similar issue
https://github.com/NVIDIA/Stable-Diffusion-WebUI-TensorRT/issues/250
How do I create a profile in TensorRT? Is this referring to my posting profile here? (I know that makes no sense... only thing that pops into my head at the moment..MORE GOOGLING!!)

same problem

Here is the answer I was sent (by LarsiboyCGN :

In the Extension there is a Button named "Generate default Engines" .. watch on youtube


Page delimiter

Hey, is it possible to have a page delimiter? Like we have in Word or Excel in print preview. I'm using trumbowyg to edit a html page that will convert to pdf. But I can't see how many pages it will take before the conversion

No, sorry. I don't think to do that for now.
It's hard to do since it depends on the converter and the renderer.


Disallow instance creation before email verification

A user had an issue where he was unable to verify his email address but had already created/claimed the instance name he wanted. This led to a support ticket where he could have just created a different account and verified it otherwise.
On the other hand, email addresses can always become unreachable so I think #162 might also solve this one?

#163 will not solve this because if a bad email is done in the first place, there is no way to email a confirmation link to change it. Allowing email address changes without a confirmation link means that any hacked account can be totally stolen. So that won't work.
Maybe the solution here is to rework the signup process so no instances can be created until the account has been verified, but it will remember where you were. Something like:

input email and password
input instance name
PH emails with an account activation that ALSO creates the instance

I think that's the move. Or store 'pending' instances in the account profile somehow.

moved to roadmap


Helm upgrade doesn't uninstall old resource properly

Hi Dear Experts,
I am currently trying to install a Knative Service via helm charts.
I want to use a helm value(as below "knativeService") to control whether to deploy a Knative Service or a normal deployment + normal service.
When the "knativeService" is equal to "true", it will deploy knative Service, otherwise, it deploy a normal deployment + normal service.
However, during the switch( I am using the command: helm upgrade -i ), it will stuck at uninstall knativeService.
It seems when using Knative Service, there is an ExternalName type k8s service will be created. When I switch to a normal k8s deployment, it will also try to create a k8s service which has the same name as previous ExternalName service.
This caused the Knative controller confused and reporting error. And thus, the Knative Service CR cannot be uninstalled successfully: Similarly, If I want to switch from normal k8s deployment to Knative Service, still go problems.
But I can do helm uninstall first, then try to do install. This would properly switch.
So I am wondering:
1. What is the mechanism for using "helm upgrade"? Does it uninstall unnecessary old resource first, then try to install the new resource?
2. Is there a way to guarantee the upgrade workflow's order to make sure the unnecessary resources got delete first?
Appreciate any suggestions!
Below is my helm template:
---
{{ if eq .Values.knativeService "true" }}
apiVersion: serving.knative.dev/v1
kind: Service
metadata:
  name: {{ .Values.serviceName }}
  namespace: {{ .Values.namespace }}
spec:
  template:
    metadata:
      annotations:
        autoscaling.knative.dev/maxScale: "5"
    spec:
      containers:
      - name: {{ $container }}
        image: {{ $registry }}/{{ $container }}:{{ (tuple $scope ( index $imageVersionsList $i)) | include "imageVersion" }}

{{ else }}
---
apiVersion: v1
kind: Service
metadata:
  name: {{ .Values.serviceName }}
spec:
  selector:
    app: {{ .Values.serviceName }}
  ports:
    - name: http-web
      port: 80
      targetPort: {{ default "80" .Values.servicePort }}
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: {{ .Values.serviceName }}
  namespace: {{ .Values.namespace }}
spec:
  replicas: 1
  selector:
    matchLabels:
      app: {{ .Values.serviceName }}
  template:
    metadata:
      labels:
        app: {{ .Values.serviceName }}
    spec:
      terminationGracePeriodSeconds: 10
      containers:
      - name: {{ $container }}
        image: {{ $registry }}/{{ $container }}:{{ (tuple $scope ( index $imageVersionsList $i)) | include "imageVersion" }}
        imagePullPolicy: "Always"

{{ end }}

Helm will uninstall a resource that was installed before (exists in the current release manifest) but is not in the new release manifest. Otherwise, if the resource exists it will apply a patch to alter the resource to match the new desired state, similar to kubectl apply. It doesn't delete or apply first, it walks through the resources and affects each individually in turn:
https://github.com/helm/helm/blob/2398830f183b6d569224ae693ae9215fed5d1372/pkg/kube/client.go#L433-L454
The only idea I can think of would be to have a pre-upgrade hook that runs a kubectl command to pre-delete the Service that's being replaced.

@joejulian Thanks a lot for the suggestion. It is clear now. Let me take some look about this pre-upgrade hook or just use a shell script directly before conduct the upgrade.

I had a similar problem.
The hpa version I used was autoscaling/v2beta1 ,and helm version is 3.6.3
And then I upgrade helm to 3.10.3.
when I use helm upgrade again,  I got this error
Error: UPGRADE FAILED: unable to build kubernetes objects from current release manifest: resource mapping not found for name: "*********" namespace: "" from "": no matches for kind "HorizontalPodAutoscaler" in version "autoscaling/v2beta1"
So I changed the version of hpa to autoscaling/v2，I still got the same error. I have to use old helm uninstall old helm chart，because I will be refused by new version helm when I want to delete old helm resource

I have to use old helm uninstall old helm chart，because I will be refused by new version helm when I want to delete old helm resource

Actually, it's refused by kube-apiserver.

@tiandingyi I ran into this same problem, and https://github.com/helm/helm-mapkubeapis fixed it for me.


iOS - IOU - Preview component - Crash after tapping on the' Pay' or 'View details' buttons

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Action Performed:

Send only one request to the user A
Login in iOS app as user A
Open the DM, tap on the "View details' or 'Pay' button

Expected Result:
The user should be able in interact with payment preview component without any issues
Actual Result:
If the user has only one payment request - the App will crash after tapping on the 'Pay' or 'View details button'
if the user has few payment request - not all comments and request will be visible after tapping on the 'Pay' or 'View details button'
This scenario also present in the Web
Workaround:
Unknown
Platform:

Where is this issue occurring?

iOS

Version Number: 1.1.85-5
Reproducible in staging?: Y
Reproducible in production?: N
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos:
https://user-images.githubusercontent.com/43996225/179853753-9b6842a3-f053-4931-b42a-ef79c49845d0.mp4
https://user-images.githubusercontent.com/43996225/179853766-bd14e670-fafd-4b23-a850-5a951b71cfba.mp4
Bug5654858_crash_-_view_details.txt
Expensify/Expensify Issue URL:
Issue reported by:
Applause internal team
Slack conversation:
View all open jobs on GitHub

:wave: Friendly reminder that deploy blockers are time-sensitive ⏱ issues! Check out the open StagingDeployCash deploy checklist to see the list of PRs included in this release, then work quickly to do one of the following:

Identify the pull request that introduced this issue and revert it.
Find someone who can quickly fix the issue.
Fix the issue yourself.

@kavimuru I don't see the app crashing in your video, I assume it crashed at the last screen?

cc @Julesssss seems like this could be regression from our refactoring https://github.com/Expensify/App/pull/9878

@iwiznia  I have attached crash video too.
https://user-images.githubusercontent.com/43996225/179853766-bd14e670-fafd-4b23-a850-5a951b71cfba.mp4

Ugh. I spent all day on this other deploy blocker and didn't get around to this. If nobody has picked up it by tomorrow I'll be able to start on it

CC @chiragsalian

This might be fixed with this CP, havent got around to test this.

I have tested it now with the new main after the timezone fix and it seems fixed.
@kavimuru can you retest it with the latest Staging CP?

Tested in the App, I can't seem to reproduce so I will close this but still ask for double checking from Applause!

Thanks!


Add Idris mode overrides to comply with base16 styling schemes

Tried my best to make it look like in other modes.

It looks like a number of idris faces already inherit from the font-lock faces, so these are overrides which make it look better for the base16 themes? Can you provide a before and after screenshot?

Quick explanation:
There are two variations of the mode: Loaded(semantically colored) and Not-Loaded(plain).
Only the Loaded instance differs in color, another one is simply keywords(purple) and identifier(white).

That looks good. Thanks for your contribution!

@belak , May I ask when it gets to MELPA? :)
Thanks.

If you use melpa stable, it will be when I tag a new release. If you use normal melpa, it will happen after the next melpa build (they're automatic). I'd guess it will start soon but it may take quite a while to finish.


Prevent logs in commandExistsWindowsSync. fix #18

The default value of stdio.options in execSync is 'pipe'.

That is supposed to be equivalent to ['pipe', 'pipe', 'pipe'].
In reality there seems to be a difference here - using the default (or 'pipe') results in the extra log. Using an array solves the issue.

This PR uses an empty array since null/undefined is equivalent to 'pipe' for indices 0-2 and 'ignore' for 3+ (where the logs might be coming from).
Other things I've tried:

{stdio: 'pipe'} - same as default, so doesn't fix the issue
setting stdin, stdout, stderr as separate keys - doesn't help either (perhaps because the problem comes from a 4th stream)
setting to ignore - this breaks the functionality of the module, so not an option
{stdio: ['pipe', 'pipe', 'pipe']} - fixes the issue the same way the current fix does, but seems a bit unnecessary.

Relevant links:

execSync options
options.stdio

The fix is small (one line), so feel free to merge it if you feel like it. However since you mentioned that you don't have a working windows environment it would also be fine if you don't want to merge it.

Confirmed, this fixes it. Thanks so much!

Released to npm in version 1.2.7 thanks all! ✨


Added Space Button

Fixes Issue #1584
Hello @Spyware007 ,

Screenshots

Checklist

[x] You've linked this PR to the correct issue.
[x] You have checked that the code is working correctly.
[x] You ⭐ the repository!

It is ready to merge 💯

Hey @Spyware007 ,
Review it once


Correct Kind setting for MultiClusterController

What this PR does / why we need it:
The original implements can get the Kind when creating MultiClusterController, the GroupVersionKind() is empty.

/assign @charleszheng44

/ok-to-test

/lgtm

/hold
Let me double check if this works for CRDs.

/lgtm

/hold cancel


Rework GHA workflow

Split stable and experimental jobs
Disable experimental jobs for PRs
Add Homebrew to MacOS

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
291 unchanged lines in 23 files lost coverage.
Overall coverage decreased (-3.9%) to 76.384%

Files with Coverage Reduction
New Missed Lines
%

src/main/python/pybuilder/pip_utils.py
1
93.88%

src/main/python/pybuilder/pluginloader.py
1
87.01%

src/main/python/pybuilder/plugins/python/remote_tools/init.py
1
45.24%

src/main/python/pybuilder/terminal.py
1
75.47%

src/main/python/pybuilder/plugins/python/core_plugin.py
2
89.89%

src/main/python/pybuilder/plugins/core_plugin.py
3
87.88%

src/main/python/pybuilder/plugins/python/integrationtest_plugin.py
3
43.45%

src/main/python/pybuilder/remote/init.py
3
75.38%

src/main/python/pybuilder/plugins/python/coverage_plugin.py
4
51.83%

src/main/python/pybuilder/execution.py
5
91.4%

Totals

Change from base Build<PHONE_NUMBER>:
-3.9%

Covered Lines:
4649

Relevant Lines:
5897

💛  - Coveralls


n.b. EL7 (CentOS/RHEL) clusters may have master components enter CrashLoopBackOff

A recent Docker upgrade broke the ability to use kubectl exec and also broke liveness probes.
These broken liveness probes will cause etcd, apiserver, and controller pods to enter a CrashLoopBackOff and make the cluster masters unavailable.
Know if you're affected by running:
sudo rpm -qa | grep -i docker

Version 1.13.1-84 is the broken version. Downgrading to 1.13.1-75 will remediate this until a patch is released.
Follow the bug here: https://bugzilla.redhat.com/show_bug.cgi?id=1655975, https://bugzilla.redhat.com/show_bug.cgi?id=1655214
RH solution: https://access.redhat.com/solutions/3734981

You might want to disable host upgrades for a few days (if addon is enabled). 😄

Fixed in 1.13.1-88.
https://access.redhat.com/errata/RHBA-2018:3796


Some ideas for better Chinese support - some suggestions on Chinese support

As we know, there are 13 billons people saying chinese,there are so many web sites and desktop apps in chinese.
So if we can support chinese better ,we can make the tagui more popular .
1)make the chinese support out of box (just the download zip, and unzip, no more config)
2)make ocr support  chinese better
3)add more chinese website and desktop app sample by tagui rpa

Hi Shui Chao, thanks for raising this issue!
I've recorded a video with more context and examples of what you raised above -
https://www.youtube.com/watch?v=fHNAu9vd0Is

The config setting is only change 1 line in tagui_config.txt. If that is too much trouble, the user won't be using this tool anyway. Even though this tool can do RPA in the fastest shortest way, you will still need to map out your processes mentally into instructions to do. If there are 20 steps in a process, will need 20 lines of instructions. So if changing 1 line is too difficult for a user, then that user is not the target user for this app, for now... In future when we have more resources, we can look into this again. Until recently, the project is a 1-man show, so making multiple packaged zip per release for all 3 OSes just with 1 line of config difference, is too much work compared to using the time to create new features.

I have not use the Chinese OCR before, can you tell me how you are using it and share some examples of the accuracy? I think there is a way to upgrade the Tesseract trained models to use newer language files. But I have not tried that myself.

Can you do some sample automation workflows and share here? My laptop is not in Chinese, so all apps are in English. And I'm not familiar with Chinese websites to create examples. Also, in the video, I shared more on how you can translate existing examples in English, into Chinese with just 1 line.

Inside tagui/src folder you can use the translate.php to do this
php translate.php filename.tag to chinese

You can also translate something written in Chinese to English
php translate.php filename.tag from chinese

Above also works for other languages.
A translated workflow will be created when you run above in command prompt/terminal.
For GitHub homepage and documentation, I think can use Google Chrome browser to translate and view in Chinese.
CC @ruthtxh for info

Thank you!
I am in china.I like tagui very much, perfect for design idea.
When I run tagui in my windows desktop in chinese ,I can not ocr the chinese word in screen well.
Click as ocr,when the screen or application is chinese,for example ,these app:
http://guangxi.chinatax.gov.cn/nsfw/xzzx/201808/P020201231310677674028.zip

tagui_language = 'chinese',is well

Thanks Shui Chao, can you tell me what is the zip file? When I download I see below .exe file on my Mac computer.

@kensoh ,so this is my question when I run tagui on my chinese desktop.the zip from this website .
http://guangxi.chinatax.gov.cn/nsfw/xzzx/201808/t20180802_273222.html
we can make this sample:
1)visit this website (http://guangxi.chinatax.gov.cn/nsfw/xzzx/201808/t20180802_273222.html)
2)download zip
3)install application
4)start application click some button and input something

write the flow Script for above 4 steps with tagui.

I see.. The easiest way to do your above steps is to automate visually --> do screenshot of the UI element to click. Then tell TagUI to click on them. For example below. See below for a few examples how to automate visually. For Windows, you can use Microsoft snipping tool to capture screenshot. For Mac you can do [cmd][shift]4 to capture a snapshot.
http://guangxi.chinatax.gov.cn/nsfw/xzzx/201808/t20180802_273222.html
click download_button.png
click ...
click ...
type some_text_box.png as some value

https://youtu.be/49zGvO1aNGM?t=2948
Example automating Microsoft Excel - https://github.com/kelaberetiv/TagUI/issues/904
https://github.com/aimakerspace/TagUI-Bricks/tree/master/MS-Word-Letter
https://github.com/aimakerspace/TagUI-Bricks/tree/master/Xero-Accounting

👌，yeah，this is ok！
thank you！


DMN Runner table output column width is lost once DMN Runner table inputs are changed

During reporting #265, another issues was spotted that is related also to DMN Runner table. The problem is in resizing output columns. Output columns width is reset with each input columns value change.
Steps to reproduce

Start with steps from #265
Fill in DMN inputs with some data and resize the 'Habitability' output column, like [1]
Then change some input column value, the output column width change will be lost [2]

[1]

[2]

Originally posted by @jomarko in https://github.com/kiegroup/kie-issues/issues/265#issuecomment-1551304265

This is happening because we don't persist the width of the output column. On every change the output table is re-rendered, causing the reset.
We have an issue to implement the column width persistence: https://github.com/kiegroup/kie-issues/issues/229
I guess we could move the desired behavior covered in this issue to the #229 , WDYT?


fix deadlock #2

This seems to fix a deadlock that was commonly occurring for me.
See issue https://github.com/rhasspy/wyoming-openwakeword/issues/2 for details.

custom trace logs that lead to this
DEBUG:wyoming_openwakeword.handler:released audio lock 108
DEBUG:root:released clients_lock: openwakeword: 317
DEBUG:root:got clients_lock openwakeword: 200
DEBUG:wyoming_openwakeword.handler:getting audio lock 108
DEBUG:root:getting state.audio_lock and clients_lock
DEBUG:root:getting embeddings_lock and clients_lock: openwakeword: 270
DEBUG:root:getting embeddings_lock: openwakeword: 200
DEBUG:wyoming_openwakeword.handler:got audio lock 108
DEBUG:wyoming_openwakeword.handler:released audio lock 108
DEBUG:wyoming_openwakeword.handler:getting audio lock 108 < server was stuck here

unfortunately, it locked up over night again. this still seems to be an improvement, as before it often only took a few seconds or minutes

This seems to work fine now

Thanks!


Update comments for the xmlNewDecoder

PR Details

Description

Related Issue

Motivation and Context

How Has This Been Tested

Types of changes

[x] Docs change / refactoring / dependency upgrade
[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist

[x] My code follows the code style of this project.
[x] My change requires a change to the documentation.
[x] I have updated the documentation accordingly.
[x] I have read the CONTRIBUTING document.
[ ] I have added tests to cover my changes.
[ ] All new and existing tests passed.

Codecov Report

Merging #542 into master will decrease coverage by 0.01%.
The diff coverage is 75%.

@@            Coverage Diff             @@
##           master     #542      +/-   ##
==========================================
- Coverage    95.8%   95.78%   -0.02%
==========================================
  Files          28       28
  Lines        5838     5840       +2
==========================================
+ Hits         5593     5594       +1
- Misses        134      135       +1
  Partials      111      111

Impacted Files
Coverage Δ

xmlWorksheet.go
100% <ø> (ø)
:arrow_up:

excelize.go
90.8% <ø> (ø)
:arrow_up:

sheet.go
94.38% <100%> (ø)
:arrow_up:

rows.go
87.17% <66.66%> (-0.28%)
:arrow_down:

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 4249dad...28ac579. Read the comment docs.


adv_ DHCP options not updating

Describe the bug
Updating the adv_ DHCP options on an interface does not work properly.
To Reproduce
Steps to reproduce the behavior:
Request PUT: {"id": "opt8", "adv_dhcp_option_modifiers": "supersede subnet-mask <IP_ADDRESS>, supersede routers <IP_ADDRESS>"}
It says 200 Success but the new value is not saved.
Other things like descr are working fine:
{"id": "opt8", "descr": "foobar"}
Maybe the comma in the DHCP string is a problem?
Expected behavior
The response and the pfsense config should present the updated DHCP options
Screenshots or Response

pfSense Version & Package Version:

pfSense Version: [e.g. pfSense 2.6.0]
Package Version [e.g. v1.3.5]

Affected Endpoints:

URL: [e.g. /api/v1/interface]

Additional context
Background:
I am trying to update the dhcp option for a 5G modem interface. This only provides a /8 IP like <IP_ADDRESS> for a public ip <IP_ADDRESS>. Therefore, I am using the supersede option to set a /24 gateway (e.g. <IP_ADDRESS>) manually. After getting a new Public IP, the supersede gateway needs to be changed to the new ip range.

Hey!
The /api/v1/interface doesn't support partial updates in some cases simply due to the amount of conditional validation that is required. In this case, the type and adv_dhcp_config_advanced fields must also be specified in your request in order for the necessary validation to occur to update the adv_dhcp_option_modifiers field. Try changing your request to:
{"id": "opt8", "adv_dhcp_option_modifiers": "supersede subnet-mask <IP_ADDRESS>, supersede routers <IP_ADDRESS>", "type": "dhcp", "adv_dhcp_config_advanced": true}

Hope this helps. Let me know if you have any issues.
Thanks!

Hi!
thanks for your quick reply!
That fixed it. Thank you!


Behave test scenario making use of attributes.

Description

These changes add the following:

A behave scenario to tests chaincode making use of attributes.

An upgrade of the behave test's steps, in order to use "/chaincode" rest API endpoint instead of the deprecated "/devops/invoke|query|deploy" ones.

A way to assert hierarchical attributes in behave tests, for example:
Then I should get a JSON response with "result.message" = "10"

Motivation and Context

Fixes #2126
Makes use of "/chaincode" endpoint in behave tests.
Hierarchical attributes are required in order to support "/chaincode" service.
How Has This Been Tested?

Behave tests were executed without errors.
Checklist:

[X] I have added a Signed-off-by.
[X] this change requires no new documentation.
[X] I have either added behave tests to cover my changes.
[X] I have run golint and have fixed valid warnings in code I have added or modified. This tool generates false positives so you may choose to ignore some warnings. The goal is clean, consistent, and readable code.

Signed-off-by:
Andrés Garagiola<EMAIL_ADDRESS>/<EMAIL_ADDRESS>

@srderson I have seen that travis failed. It is because 'The job exceeded the maximum time limit for jobs, and has been terminated.'. I have added two scenarios 1) Using attributes in clear, 2) Using attributes with encryption enabled. Attributes encryption is not available yet, so in this moment in the second scenario is only setting the property "attribute-encryption.enabled = true" but the behavior is the same.  I could momentarily comment this second scenario in order to reduce the build time. Anyway I think that soon this scenario should be included again. Let me know.

@srderson @andresgaragiola Looks good to me!! Nice job!

Behave test case  (  Scenario: java SimpleSample chaincode example single peer  ) failed in Jenkins x86 with below error message:  Assertion Failed: Failed to POST to http://<IP_ADDRESS>:5000/chaincode:  {"jsonrpc":"2.0","error":{"code":-32700,"message":"Parse error","data":"Error unmarshalling chaincode request payload: json: cannot unmarshal string into Go value of type protos.ChaincodeSpec_Type"},"id":null}.
Jenkins Log file:
https://jenkins.hyperledger.org/job/fabric-github-verify-x86_64/527/artifact/gopath/src/github.com/hyperledger/fabric/bddtests/testsummary.log
Same test case is failed in Travis too.
Below is the log captured from Travis Raw log file:
Scenario java SimpleSample chaincode example single peer failed. Getting container logs (This indicates fail). @andresgaragiola please check this..

@rameshthoomu after merge java shim scenario some errors have appeared.

The most important issue is that "/chaincode" service doesn't support pass attribute 'type' of      chaincode spec by value.
If 'JAVA' is passed as type the following error is raised during Unmarshal
"Error unmarshalling chaincode request payload: json: cannot unmarshal string into Go value of      type protos.ChaincodeSpec_Type"
to avoid this the ID must be passed ("4" for the mentioned example),
    enum Type {
      UNDEFINED = 0;
      GOLANG = 1;
      NODE = 2;
      CAR = 3;
      JAVA = 4;
}

This is a problem of the "/chaincode" services and is out of the scope of this PR. I see two options    here:
a) Covert values to ids in the behave test scenario.
b) Use deprecated API again in the behave tests scenario.
I chose option a) to fix the error because in my opinion test non deprecated functions is more   relevant than use type as string, but I think this problem should be analyzed in a new issue in order to fix "/chaincode" services.

A second issue is due that while "/devops/query" service returns JAVA chaincode value encoded as JSON in this way "{u'Amount': u'100', u'Name': u'a'}",  "/chaincode" service returns as a [string] (https://github.com/hyperledger/fabric/blob/master/core/rest/rest_util.go#L49) in this way "{"Name": "a", "Amount", "100"}". Additionally is not possible escape double quotes in this way '"' in behave test scenarios:
Then I should get a JSON response with "result.message" = "{\"Name\":\"a\",\"Amount\":\"100\"}"
Don't works
To solve this problem I have chosen format values replacing """ by "'" so the scenario was wrote in this way:
Then I should get a JSON response with "result.message" = "{'Name':'a','Amount':'100'}"
I think a new issue should be open again to fix "/chaincode" service in order to be consistent between "/devops/..." and "/chaincode" formats.

@srderson @andresgaragiola The original tests can be modified to pass 4 for JAVA language type.

Thanks @xspeedcruiser in my opinion pass JAVA is easier than pass 4. As is coded now in the scenario JAVA is passed and it is translated to 4 in the step.

Rerunning Travis. It timed out earlier.

reverify jenkins

@rameshthoomu  jenkins/x86_64 is working without errors and travis-ci still failing by time out (jenkins/z  I think is not working because has failed in all the PRs that I have checked).  @srderson Let me know if you need me to remove temporarily the second scenario in order to reduce the build times in travis.

reverify jenkins

Will rerun Travis now that PR #2184 has been merged.

Nice, looks like Travis is passing now that it has been split into multiple jobs. LGTM


Bug: token_type is not always available

E.g. LinkedIn OAuth doesn't send the token_type in the response.
https://learn.microsoft.com/en-us/linkedin/shared/authentication/authorization-code-flow?tabs=HTTPS1#response
Thus the getToken flow is erroring out.
https://github.com/cmd-johnson/deno-oauth2-client/blob/master/src/grant_base.ts#L99-L104

Ugh, I just love how hard it seems to be for authorization servers to properly implement the OAuth2 standard :sweat_smile:
The OAuth2 spec requires the token response to have this field, so this is technically a bug on LinkedIn's side.
Still, I'm aware that there's a lot of implementations out there that don't follow the spec and I'll try to come up with a way to account for these discrepancies that doesn't require everyone to reinvent the wheel in the process.

Tbh I haven't managed to auth with an OAuth based service yet that didn't use a Bearer token.
Would it be safe to default token_type to Bearer if not present?

Let the title represent it's LinkedIn's bug not the library's and we're questioning the problem to achieve a solution.

We've run into this issue in https://github.com/denoland/deno_kv_oauth/pull/287. @cmd-johnson, is there any workaround?


Update AA doc for pythons 2 connections

Added description of the python2 function to retrieve an Azure Automation connection
Added an example of using the python2 connection function

@jennyhunter-msft,
Thanks for your contribution as a Microsoft full-time employee or intern. You do not need to sign a CLA.
Thanks,
Microsoft Pull Request Bot

@jennyhunter-msft : Thanks for your contribution to the Azure documentation! The author, @mgoedtel, has been notified to review your proposed change.

@jennyhunter-msft - Please correct the reference to Run As account to be consistent with our documentation.  You have it spelled RunAs or otherwise on lines 114, 127, 132 and 150.  Thanks.  #hold-off

@jennyhunter-msft - Looks good and I'm signing off on this.  Thanks! #sign-off

@jennyhunter-msft
Hi Jenny, Please note the correct capitalization for the scripting language is "Python" or "Python2" with initial cap "P". Please update this article when you get a chance.
Also, our content guidance says Microsoft employees should use the private repository (MicrosoftDocs/azure-docs-pr) for content updates. The private repo provides for more robust review of changes, including Acrolinx term checking and Validation tests on links. In the future, please make article updates by using the private repo.
Thanks!


Create Instagram code converter and update device

Create Instagram code converter and update device for get max resolution of media

@WinSide  you need to add the License Header in your classes
+/**
+ * Copyright (C) 2016 Bruno Candido Volpato da Cunha<EMAIL_ADDRESS>+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *         http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */

@krismorte Thanks!

Thanks @WinSide
About the license, I'll probably migrate to something more open soon.


[Package Issue]: GIGABYTE.GigabyteControlCenter – upgrade succeeds, stays at same version

Please confirm these before moving forward

[X] I have searched for my issue and not found a work-in-progress/duplicate/resolved issue.
[X] I have not been informed if the issue is resolved in a preview version of the winget client.

Category of the issue
Installation issue.
Brief description of your issue
$ winget upgrade
Name                                                               Id                             Version       Available     Source
------------------------------------------------------------------------------------------------------------------------------------
GIGABYTE Control Center <IP_ADDRESS>                                GIGABYTE.GigabyteControlCenter <IP_ADDRESS>   <IP_ADDRESS>   winget

winget upgrade GIGABYTE.GigabyteControlCenter

Found Gigabyte Control Center [GIGABYTE.GigabyteControlCenter] Version <IP_ADDRESS>
This application is licensed to you by its owner.
Microsoft is not responsible for, nor does it grant any licenses to, third-party packages.
Successfully verified installer hash
Extracting archive...
Successfully extracted archive
Starting package install...
Successfully installed

$ winget upgrade
Name                                                               Id                             Version       Available     Source
------------------------------------------------------------------------------------------------------------------------------------
GIGABYTE Control Center <IP_ADDRESS>                                GIGABYTE.GigabyteControlCenter <IP_ADDRESS>   <IP_ADDRESS>   winget

^ No change.
Steps to reproduce
The current version may have been installed without using WinGet – should that matter?
Actual behavior
The upgrade succeeds, but it stays at the same version.
Expected behavior
Version upgraded, removed from upgrade list.
Environment
Windows Package Manager v1.7.10861
Copyright (c) Microsoft Corporation. All rights reserved.

Windows: Windows.Desktop v10.0.22621.3374
System Architecture: X64
Package: Microsoft.DesktopAppInstaller v1.22.10861.0

Screenshots and Logs
No response

This particular issue appears to have resolved itself.


Automatically solve for dependencies for local packages

environment.yml currently needs to include dependencies for local packages. This is more a prompt to list requirements for our local packages than an issue to resolve with the cookiecutter, but as it affects the setup for as many local packages as a user desires, I'm listing it here.

added issues to our packages, closing this one


feat(cli): also delete replica indices

This PR adds a new boolean option to the algolia indices delete command: --includeReplicas.
If it's true, the command will look for any replicas of an index and deletes them with the primary index. No more dangling indices because of replicas.
DEX-784

@kai687 On it!

@kai687 The tests should pass now, there was missing matching stubs.
Makes me think the current stubs system is not explicit enough when there is missing stubs / unmatched stubs.


fix xml formatting

This PR fixes #9509

@anthonydresser once this is merged into master, could you please open a port PR for release/1.16 so we can try out the updated shiproom\codeflow process?


Install not possible

I have tried to Install the Adapter but it wont work
0 info it worked if it ends with ok
1 verbose cli [
1 verbose cli   '/usr/bin/node',
1 verbose cli   '/usr/bin/npm',
1 verbose cli   'install',
1 verbose cli   'Grizzelbee/ioBroker.dysonairpurifier#master',
1 verbose cli   '--loglevel',
1 verbose cli   'error',
1 verbose cli   '--prefix',
1 verbose cli   '/opt/iobroker'
1 verbose cli ]
2 info using<EMAIL_ADDRESS>3 info using<EMAIL_ADDRESS>4 verbose npm-session e54f7adef000d063
5 silly install loadCurrentTree
6 silly install readLocalPackageData
7 verbose prepareGitDep github:Grizzelbee/ioBroker.dysonairpurifier#master: installing devDeps and running prepare script.
8 silly fetchPackageMetaData error for github:Grizzelbee/ioBroker.dysonairpurifier#master premature close
9 timing stage:rollbackFailedOptional Completed in 1ms
10 timing stage:runTopLevelLifecycles Completed in 2424ms
11 verbose stack Error: premature close
11 verbose stack     at PassThrough.onclose (/usr/lib/node_modules/npm/node_modules/end-of-stream/index.js:47:67)
11 verbose stack     at PassThrough.emit (events.js:326:22)
11 verbose stack     at emitCloseNT (internal/streams/destroy.js:69:8)
11 verbose stack     at processTicksAndRejections (internal/process/task_queues.js:83:21)
12 verbose cwd /opt/iobroker
13 verbose Linux 4.19.0-16-amd64
14 verbose argv "/usr/bin/node" "/usr/bin/npm" "install" "Grizzelbee/ioBroker.dysonairpurifier#master" "--loglevel" "error" "--prefix" "/opt/iobroker"
15 verbose node v12.22.0
16 verbose npm  v6.14.11
17 error premature close
18 verbose exit [ 1, true ]

How did you try to install the adapter?
As far as I know at least the installation via Adapters-Tab in ioBroker and githib-icon on top of the page should work.

I have tried both, over the Adapters Tab "from github" and "from URL"

0 info it worked if it ends with ok
1 verbose cli [
1 verbose cli   '/usr/bin/node',
1 verbose cli   '/usr/bin/npm',
1 verbose cli   'install',
1 verbose cli   'Grizzelbee/ioBroker.dysonairpurifier#master',
1 verbose cli   '--loglevel',
1 verbose cli   'error',
1 verbose cli   '--prefix',
1 verbose cli   '/opt/iobroker'
1 verbose cli ]
2 info using<EMAIL_ADDRESS>3 info using<EMAIL_ADDRESS>4 verbose npm-session aeae5da2297c1928
5 silly install loadCurrentTree
6 silly install readLocalPackageData
7 verbose prepareGitDep github:Grizzelbee/ioBroker.dysonairpurifier#master: installing devDeps and running prepare script.
8 silly fetchPackageMetaData error for github:Grizzelbee/ioBroker.dysonairpurifier#master premature close
9 timing stage:rollbackFailedOptional Completed in 1ms
10 timing stage:runTopLevelLifecycles Completed in 2975ms
11 verbose stack Error: premature close
11 verbose stack     at PassThrough.onclose (/usr/lib/node_modules/npm/node_modules/end-of-stream/index.js:47:67)
11 verbose stack     at PassThrough.emit (events.js:326:22)
11 verbose stack     at emitCloseNT (internal/streams/destroy.js:69:8)
11 verbose stack     at processTicksAndRejections (internal/process/task_queues.js:83:21)
12 verbose cwd /opt/iobroker
13 verbose Linux 4.19.0-16-amd64
14 verbose argv "/usr/bin/node" "/usr/bin/npm" "install" "Grizzelbee/ioBroker.dysonairpurifier#master" "--loglevel" "error" "--prefix" "/opt/iobroker"
15 verbose node v12.22.0
16 verbose npm  v6.14.11
17 error premature close
18 verbose exit [ 1, true ]

Hmmm. Strange. There haven't been any installation issues in the beginning, and since some short time you are the second one complaining on installation issues. I'll need to do some research on that.
This line:

14 verbose argv "/usr/bin/node" "/usr/bin/npm" "install" "Grizzelbee/ioBroker.dysonairpurifier#master" "--loglevel" "error" "--prefix" "/opt/iobroker"

looks strange to me. It tries to install via npm using a part of the git-URL - which can't work.
But for now please try to install via command line using: npm install iobroker.dysonairpurifier in your ioBroker folder (e.g. /opt/iobroker) and read This Issue #75 before.

This Issue is a duplicate to #80

Should be solved with 0.8.2.
Please give it a try and close this issue if it works.


Feature Request - Custom Image Resizing

When clicking on an image in the editor you get options to resize it by 100%, 75%, 50%, and 25%.
Is there a possibility to allow a custom size in pixels?
Maybe make it part of the same dialog that displays when you click the Picture button on the image?
In the screenshot below I added a Size drop down that contains options for 100%, 75%, 50%, 25%, and Custom.

Choosing the Custom option would display Height and Width fields, as shown below.

The check box between the Height and Width would allow the user to maintain the aspect ratio, so that if they changed the Height OR Width, the other value would be adjusted automatically and keep the image from being distorted.
The refresh icon simply swaps the Height and Width values with each other.
I'm not sure of my availability, but I might be able to implement this, if you're accepting pull requests?

Yes, it is a required feature : )
Of course, I will accept your pull request !
However, it would be better to remove the dropbox and have only the "Height" and "Width" input boxes.

When the Modify button is pressed on the image, the "Height" and "Width" items will be filled with the current size.
If you change one of "Height" or "Width", the other side of the image should be changed to match the proportion of the image.

Sadly, it doesn't look like I will have time to work on this PR.

Yup, that's ok
Thank you for giving me your idea.
I will start working on this PR : )

Hi,
I have fixed this Feature Request : )

Thanks, I will try it out.


Add elfdump tool for disassembly of ELF object file .text sections

Plus a bunch of bugfixes, adding a flag -g for emitting glabel, and using that flag by default in n64split, see individual commits.
Does this seem like a reasonable addition? The main advantage compared to mips-*-objdump -dr is that the output is gas-compatible. (Well, almost; it currently only dumps the .text section, and with -g it doesn't output a definition for glabel. Future work.)

https://github.com/Decompollaborate/spimdisasm/tree/develop/spimdisasm/elfObjDisasm has now made this PR redundant.


Updated exclusions from list of exclusions here:

https://gerrit.wikimedia.org/r/plugins/gitiles/analytics/gobblin/+/refs/heads/wmf/gobblin-modules/gobblin-wmf/build.gradle#72

The first commit in this PR is a merge commit from the main branch of the main repo. This looks a bit weird to me. We can always cherry pick the single commit when merging.

Thanks a lot for the PR @tajhlande :) This is now merged!


ios Sounds folder

What is the build action needed for IOS sound files?
for android, "androidasset" seems to work, but not sure what is needed for the IOS files.
thank you

I have a Sounds folder in my IOS project, and the mp3 within is set to the BundleResource build action, but it throws an exception when trying to play the file.  on android, it works fine.


use of the escoria script from the regular gdscript side?

the escoria script is nice and quick, but sometime they are not enough for unusual uses. For example it would be nice to have a clean way to use the "change_scene" without use the restricted .esm files (regular GDScript).
Is this possible? I didn't find any guide/reference.. and also I am asking around; but still unable to figure it out.

The change_scene function is defined in the https://github.com/godotengine/escoria/blob/33139f2c47b29a04602d2d2b64c9f5fc726a9acf/device/globals/global_vm.gd#L433 file.
This file is the actual "virtual machine' that deals with instructions sent through *.esc files (not *.esm, btw). It is defined in a real node in the base global scene global/scene.scn.
You will have to manage direct calls to this VM node in order to make your call. This kind of invalidates the whole essence of the framework though, which aims at enabling game designers to write their game as a scenario (like a movie), not through script code.

Using GDscript is not currently possible in Escoria rewrite. We'll add this to the TODO list.


ORC-8. Reimplement file-metadata to use the reader API.

A first pass at reimplementing the tool. It currently does not print any of the information that is located in the stripe footers. It also doesn't print any of the file or stripe statistics, but I think it does most of what we need in a first pass.
The output looks like:
owen@laptop> build/tools/src/file-metadata examples/nulls-at-end-snappy.orc
{ "name": "examples/nulls-at-end-snappy.orc",
  "type": "struct<_col0:tinyint,_col1:smallint,_col2:int,_col3:bigint,_col4:float,_col5:double,_col6:boolean>",
  "rows": 70000,
  "stripe count": 1,
  "format": "0.12", "writer version": "original",
  "compression": "snappy", "compression block": 262144,
  "file length": 366818,
  "content": 366347, "stripe stats": 172, "footer": 275, "postscript": 23,
  "row index stride": 10000,
  "user metadata": {
  },
  "stripes": [
    { "stripe": 0, "rows": 70000,
      "offset": 3, "length": 366344,
      "index": 1060, "data": 365105, "footer": 179
    }
  ]
}

For comparison, here is a before and after for examples/decimal.orc:
Structure for ../examples/decimal.orc

 === Postscript ===
footerLength: 89
compression: NONE
version: 0
version: 12
metadataLength: 44
magic: "ORC"

 === Footer ===
headerLength: 3
contentLength: 16186
stripes {
  offset: 3
  indexLength: 54
  dataLength: 16079
  footerLength: 50
  numberOfRows: 6000
}
types {
  kind: STRUCT
  subtypes: 1
  fieldNames: "_col0"
}
types {
  kind: DECIMAL
  precision: 10
  scale: 5
}
numberOfRows: 6000
statistics {
  numberOfValues: 6000
}
statistics {
  numberOfValues: 4000
  decimalStatistics {
    minimum: "-1000.5"
    maximum: "1999.2"
    sum: "1998301.099"
  }
}
rowIndexStride: 10000

=== Stripe Statistics ===
Stripe 1:
offset: 3
indexLength: 54
dataLength: 16079
footerLength: 50
numberOfRows: 6000
    Stream: column 0 section 6 start: 3 length 7
    Stream: column 1 section 6 start: 10 length 47
    Stream: column 1 section 0 start: 57 length 12
    Stream: column 1 section 1 start: 69 length 13673
    Stream: column 1 section 5 start: 13742 length 2394
    Encoding column 0: 0
    Encoding column 1: 2
File length: 16337 bytes
Padding length: 0 bytes
Padding ratio: 0.00 %

and
{ "name": "../examples/decimal.orc",
  "type": "struct<_col0:decimal(10,5)>",
  "rows": 6000,
  "stripe count": 1,
  "format": "0.12", "writer version": "original",
  "compression": "none",
  "file length": 16337,
  "content": 16186, "stripe stats": 44, "footer": 89, "postscript": 17,
  "row index stride": 10000,
  "user metadata": {
  },
  "stripes": [
    { "stripe": 0, "rows": 6000,
      "offset": 3, "length": 16183,
      "index": 54, "data": 16079, "footer": 50
    }
  ]
}

Looks good. Are we not printing streams info anymore?

The stream listing is located in the stripe footer, which the reader isn't exposing yet.

Ok, I just extended the Reader API to get the additional details. I also added a "--verbose" flag to file-metadata that prints the streams and encoding information for each stripe.
owen@laptop> tools/src/file-metadata -v ../examples/decimal.orc
{ "name": "../examples/decimal.orc",
  "type": "struct<_col0:decimal(10,5)>",
  "rows": 6000,
  "stripe count": 1,
  "format": "0.12", "writer version": "original",
  "compression": "none",
  "file length": 16337,
  "content": 16186, "stripe stats": 44, "footer": 89, "postscript": 17,
  "row index stride": 10000,
  "user metadata": {
  },
  "stripes": [
    { "stripe": 0, "rows": 6000,
      "offset": 3, "length": 16183,
      "index": 54, "data": 16079, "footer": 50,
      "encodings": [
         { "column": 0, "encoding": "direct" },
         { "column": 1, "encoding": "direct rle2" }
      ],
      "streams": [
        { "id": 0, "column": 0, "kind": "index",
          "offset": 3, "length": 7 },
        { "id": 1, "column": 1, "kind": "index",
          "offset": 10, "length": 47 },
        { "id": 2, "column": 1, "kind": "present",
          "offset": 57, "length": 12 },
        { "id": 3, "column": 1, "kind": "data",
          "offset": 69, "length": 13673 },
        { "id": 4, "column": 1, "kind": "secondary",
          "offset": 13742, "length": 2394 }
      ]
    }
  ]
}

The --verbose will end up reading the footer for each stripe, while the default behavior will just read the file footer. That seems like a reasonable set of trade offs.

+1


disable-thorium-icons doesn't apply for cancel icon

System Details

OS: Windows 11
Thorium Version 123.0.6312.133

Problem
disable-thorium-icons setting doesn't apply for cancel icon (still colored)

This is intentional

We are still continuing to adjust the style of the icons and are also trying to redraw some icons

I understand your choice, but many users appreciate Thorium for its internal improvements and performance enhancements over standard Chromium, but may want to maintain the style they are used to. Providing an option to use the default Chromium style (maybe even as default) could make the browser more appealing to a wider range of users who prioritize that classic look and feel.
But that's just my opinion.
Regardless, Thorium is a great browser and the team is doing an excellent job. 👍


Windows - Uvicorn fails to properly shutdown process when using ctrl c from terminal

Hi all,
Thanks for putting together such a great framework! I just started learning and encountered an issue in nbs/tutorials/by_example.ipynb while using uvicorn app:app --reload to run my hello world app on Windows. As I went through the examples, I noticed that sometimes my webpage was still being served even when the server was shut down in my terminal (and server restarts would not pick up my changes). It looks like this issue is related to this GitHub issue.
I switched to using WSL, and everything worked fine. Perhaps the documentation could be updated to suggest this workaround for Windows users? I can open a PR for the update but wanted to check if this makes sense to the maintainers first.

Sure, we'd be very happy to have such a doc update to suggest WSL. Note that docs live inside the notebooks.


access from wi-fi ipv6

you can access my server that has ipv4
from a wifi network ipv6 ?.
Apple Review Reject the application because it uses for app testing a wi-fi network and ipv6
socket = WebSocket (url: URL (string: "myIpPlublic_ipv4")!)
does not work

I'm not sure what you are trying to ask here. The WebSocket initializer takes an NSURL a Foundation type from Apple. It doesn't care if it is IPV4, IPV6 or a hostname. I would guess your app is getting rejected as Apple doesn't want you to use hard set IPV4 addresses. I suggest switching over to a hostname, as it has several benefits. Short version is, this doesn't sound like a Starscream issue and more of an issue with trying to submit an app with a hard set IPV4 address.


Handle GC restarts, timeouts, disconnects

Implement graceful handling of service interruptions

@jimmydorry could you elaborate on what you consider graceful handling of the above? I'd love to see your view on things before I start implementing further stuff

Will write up a more detailed response tomorrow, but basically i meant handling of GC restart events, connection drops (i.e. when you lose internet for a few seconds locally), and steam timeouts (i.e. patch tuesdays).

This was the last time I recall the issue cropping up. https://github.com/RJacksonm1/node-dota2/issues/105
I don't know how node-steam has changed (whether it now handles this), but your bot framework should consider handling connection states, especially around the GC restarts.

Alright, I added some basic keep alive code. Node-dota2 seems to handle GC disconnects on its own, so I focused on keeping the Steam connection alive. It should now reconnect when it detects a dc.
This leaves the problem of requests failing because they're sent while GC isn't ready. Since all communication with the GC is async anyways, I'm thinking about adding a job process queue. This queue would execute in FIFO all requests and retry (with exponential back-off) if one fails cause GC isn't ready.
Thoughts?

Sounds awesome.

Queueing added. You pass a function to the bot and it will schedule it for execution as soon as the GC is available. If GC is unavailable the queue applies exponential backoff for retries

Wow, that is crazy useful.


Show enchantments as list

Since the game did not limited the count... you could literally enable as many as you want number of the enchanments (e.g. more than 9 enchantments with level 3)

That is true, however not possible to achieve in the actual game. I'm trying to shy away from this behavior because it's not guaranteed to be compatible in the future.


Can you explain the config.conf file?

Hey,
Can you add to the documentation an explanation of the config.conf file?
Maybe I can tweak it a bit.

Basically is a place to define some paths to store:

Plugins and wordlists which is can be found here.
Define where to store the result of the scan and where to store options.json file which can consider is a database for Flask API.

Just DM me via @j3ssie for any question.


goku: init 0.1.11

Motivation for this change
Things done

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

[ ] NixOS
[x] macOS
[ ] other Linux distributions

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

@GrahamcOfBorg build goku

No attempt on aarch64-linux (full log)
The following builds were skipped because they don't evaluate on aarch64-linux: goku
Partial log (click to expand)

a) For `nixos-rebuild` you can set
  { nixpkgs.config.allowUnsupportedSystem = true; }
in configuration.nix to override this.

b) For `nix-env`, `nix-build`, `nix-shell` or any other Nix command you can add
  { allowUnsupportedSystem = true; }
to ~/.config/nixpkgs/config.nix.

Success on x86_64-darwin (full log)
Attempted: goku
Partial log (click to expand)
no configure script, doing nothing
building
no Makefile, doing nothing
installing
post-installation fixup
strip is /nix/store/g5r4apl0za012ffs6ladinwa5w0m1l3k-cctools-binutils-darwin/bin/strip
stripping (with command strip and flags -S) in /nix/store/hq6f00k9q94dq2ljxx5x290lj5wsz26z-goku-0.1.11/bin
patching script interpreter paths in /nix/store/hq6f00k9q94dq2ljxx5x290lj5wsz26z-goku-0.1.11
/nix/store/hq6f00k9q94dq2ljxx5x290lj5wsz26z-goku-0.1.11/bin/gokuw: interpreter directive changed from "/bin/sh" to "/nix/store/n9hba031gjky8hpjgx9fnlaxhidyzxbz-bash-4.4-p23/bin/sh"
/nix/store/hq6f00k9q94dq2ljxx5x290lj5wsz26z-goku-0.1.11

No attempt on x86_64-linux (full log)
The following builds were skipped because they don't evaluate on x86_64-linux: goku
Partial log (click to expand)

a) For `nixos-rebuild` you can set
  { nixpkgs.config.allowUnsupportedSystem = true; }
in configuration.nix to override this.

b) For `nix-env`, `nix-build`, `nix-shell` or any other Nix command you can add
  { allowUnsupportedSystem = true; }
to ~/.config/nixpkgs/config.nix.


We're currently attempting to migrate this over to magento 2.1.x. Any caveats?

Is this still the only or best way to accomplish this task on Magento 2? We have been surprised not to find much information on this and so I am porting this over to magento 2.. any caveats would be appreciated. thanks

I haven't had a reason to look at the store codes in Mage2 but so much else is the same as Mage1 that I almost expect this will too.  On the plus side that probably means the strategy used in this extension will likely work the same as well. The essential part is in Router.php.
Good luck with your project.


Is learning_curve fully supported by Dask?

The problem is fully described here:
For 2 levels of parallelism like in GridSearchCV or RandomSearchCV problems, Dask provides its own implementation. Now for learning_curve, there is also such 2 level of parallelism. Can it be simply handled like this?
estimator = RandomForestRegressor(n_jobs=-1, **rf_params)
with joblib.parallel_backend('dask', scatter=[X,Y]):
    train_sizes, train_scores, test_scores = learning_curve(estimator, X, Y, cv=cv, n_jobs=-1, train_sizes=train_sizes)

If you take a look at the source code for the parallel part, you will see:
 out = parallel(delayed(_fit_and_score)(
            clone(estimator), X, y, scorer, train, test, verbose,
            parameters=None, fit_params=None, return_train_score=True,
            error_score=error_score)
for train, test in train_test_proportions)

If a Dask Client is created with processes=False (multi-threading parallelism), then Dask shows a warning saying that 2 levels of parallelism have been found and therefore the "inner" one is forced to have n_jobs=1. But this is not the case for multiprocessing parallelism.
In particular in the case of RandomForests, what should be the value of n_jobs for the estimator and for the learning_curve call?
(since joblib 0.12.2, RandomForests backend is not enforced to be threading, see PR here)

I just ran a few tests to check how scalable using Dask was using the following code:
worker_kwargs = dict(memory_limit="1GB", ncores=1)
cluster = LocalCluster(n_workers=8, threads_per_worker=1, **worker_kwargs) # n_workers from 2 to 16
client = Client(cluster)

estimator = RandomForestRegressor(**rf_params, n_jobs=-1)
cv = ShuffleSplit(n_splits=5, test_size=0:2)

with joblib.parallel_backend(backend, scatter=[X,Y]):
       train_sizes, train_scores, test_scores = learning_curve(estimator, X, Y, cv=cv, n_jobs=-1, train_sizes)

Here are the results (running on a computer with 16 cores, 16GB of RAM):

I froze ncores=1 and thread_per_worker=1 otherwise it introduces parallelism and I cannot judge about the scalability (but I am not sure if it is the right way to do it).
I would expect that the running time decreases as the number of workers increases, but now, looking at the results I cannot explain this behavior (I took take to run 2-3 times for each n_workers value to get a stable value).
Note that for n_workers <= 2, it takes for ever. (I kill it after 10 mins).
I currently cannot access to the Dask web UI, as soon as I will, I will use it to investigate further.

I wouldn't expect dask to offer any improvement over Joblib's other backends on a single machine. I would only recommend using the dask backend on a distributed cluster.

OK, I will run the same experiment on a distributed cluster and come back with the results.


"Getting Started" code fails with when requesting large pages on Windows

When requesting a large web page using the code in the readme, I get an error on Windows. When running the code attached below, I get this error: Error { description: "Failed writing received data to disk/application", code: 23, extra: Some("Failed writing body (8192 != 15674)") }. I do not get an error when running the same request on Arch. Unfortunately I'm fairly new to Rust and I'm not sure how to work around this error on Windows. Can anyone provide some insight into why this occurs and how best to fix it?
Complete code I am running:
//main.rs
extern crate curl;

use std::io::{stdout, Write};

use curl::easy::Easy;

fn main() {
    let mut easy = Easy::new();
    easy.url(
        "https://www.kcrw.com/music/shows/morning-becomes-eclectic/latest-show",
    ).unwrap();
    easy.write_function(|data| Ok(stdout().write(data).unwrap()))
        .unwrap();
    easy.perform().unwrap();

    println!("{}", easy.response_code().unwrap());
}

#cargo.toml
[package]
name = "kcrw-rs"
version = "0.1.0"
authors = ["Jason Watkins<EMAIL_ADDRESS>
[dependencies]
curl = "0.4.11"

System details:
Windows 10 Pro Version 1709
Arch with all packages updated
Both systems are running the latest version of rust stable.

Thanks for the report!

Still get this issue, is there a way to fix it?

Are you using write_all?
The original problem in this case is that the example code was using just write, but you can't assume that write will write the entire buffer in a single call, resulting in an error being propagated to curl. The examples now use write_all which is the correct way to handle the write callback.

Let me try write_all, I am actually running the extend_from_slice code of README.

Are you sure the error is the same as the one in this case description?

It is the same error code from libcurl and I think because I screwed up write_all in closure of write_fuction. Now there is no problem at all. Sorry for bothering you guys. 🙏


Adding organization and Validating

Overview
Organization and validation
Action Items

Discussion whether adding Organization and validating it.
Adding organization in Tag generator and how do we validate it at that point.

Resources/Instructions

@giosce
Gio is researching Django notification for new data submission

Gio is still working on it.

https://docs.djangoproject.com/en/3.1/topics/email/
We may need credential for the sender and I'm not sure whether it would be ok to have them hardcoded in the "SaveOrganization" code.

We need to send an email to the CTI validation team when someone requests to add their organization through the add organization form.
Once the email is received, the CTI validation team should confirm that the organization is valid before approving the new organization.
We need to add a "published" field to the database.

Here there are some info on how have django send email when data is submitted https://stackoverflow.com/questions/31334029/how-to-send-email-on-form-submission-using-django-forms


NFC transceive fails at second transmission on Android.

I try to use the NfcV class to transmit some commands to a corresponding tag. I registered the following function as callback for the onDiscovered events. The result is a correct answer on the first try and an exception on the second try. Did I do it wrong?

Future callbackFunction(NfcTag tag) async {
  final nfcVtag = NfcV.fromTag(tag);
  final cmd = [0x02, 0x20, 0x00].toList();
  try {
    final answer = await nfcVtag.transceive(Uint8List.fromList(cmd));
    debugPrint('First answer ' + answer.toString());
  } catch (e) {
    debugPrint('Exception on first try: ' + e.toString());
  }
  try {
    final answer = await nfcVtag.transceive(Uint8List.fromList(cmd));
    debugPrint('Second answer ' + answer.toString());
  } catch (e) {
    debugPrint('Exception on second try: ' + e.toString());
  }
}

Output:

I/flutter (17066): First answer [0, 167, 19, 240, 84, 5, 0, 3, 101]
I/flutter (17066): Exception on second try: PlatformException(not_found, Tag is not found., null)

@markus-oehme-pg40 I have the same issue. Did you find any solution to this already?

@ishwaryamamidi Sadly not. We ended up not using NFC on flutter.

I will be investigating this issue in the near future.

@okadan It would be very grateful if you could investigate this as soon as possible. As this is a major drawback currently.

@ishwaryamamidi @markus-oehme-pg40
I have found success under the following environments:

Plugin Version: nfc_manager: 2.0.0
Tag Type: I-CODE SLI (ISO15693 compatible)

final nfcv = NfcV.from(tag);
final cmd = [0x02, 0x20, 0x00];

for (int i = 1; i <= 100; i += 1) {
  try {
    final answer = await nfcv.transceive(data: Uint8List.fromList(cmd));
    print('Answer $i: $answer');
  } catch (e) {
    print('Exception $i: $e');
  }
}

@okadan Thank you for your quick investigation.
Even after updating to nfc_manager: 2.0.0, I get an error for second transceive.
Below is a sample of my code:
Future handleTag(NfcTag tag, Iterable recordList) async {
final tech = NfcV.from(tag);
if (tech == null) throw ('Tag is not compatible with NDEF.');
/if (!tech.isWritable)
throw('Tag is not NDEF writable.');/
Uint8List mbtx = Uint8List.fromList([0xDA, 0x7A]);
test_nfc(tag, mbtx);
}
test_nfc(NfcTag tag, Uint8List mbtx) async {
//NfcTag temptag = tag;
int tries = 0;
int msglength;
int mb_control_dyn = 0;
await write_MB(tag, mbtx);
tries = 0;
while ((mb_control_dyn & 0x40) != 0x40) {
tries++;
if (tries > 5) {
throw ('error in tries');
}
sleep(const Duration(milliseconds: 10));
mb_control_dyn = await read_MB_control_dyn(tag);
}
sleep(const Duration(milliseconds: 10));
msglength = await read_MB_length(tag);
return await read_MB(tag, msglength);
}
Future write_MB(NfcTag tag, Uint8List data) async {
final tech = NfcV.from(tag);
if (tech == null) throw ('Tag is not compatible with NDEF.');
int i1 = 0x22;
int i2 = 0xAA;
int i3 = 0x02;
int i11 = data.length - 1;
Uint8List write_rx;
List write_temp = new List();
transceive_id = tech.identifier;
if ((data.length < 2) || (data.length > 255)) {
throw ('new exception');
}
write_temp.insert(0, i1);
write_temp.insert(1, i2);
write_temp.insert(2, i3);
write_temp.insertAll(3, transceive_id);
write_temp.insert(11, i11);
write_temp.insertAll(12, data);
print('dummy $data');
Uint8List wrdata = Uint8List.fromList(write_temp);
print('this is write data $wrdata');
write_rx = await my_nfctransceive(tag, wrdata);
print('this is after trasceive of write ${tag.data}');
print('this is write response $write_rx');
//return write_rx;

}
Future read_MB_control_dyn(NfcTag tag) async {
final tech = NfcV.from(tag);
if (tech == null) throw ('Tag is not compatible with NDEF.');
int i1 = 0x22;
int i2 = 0xAD;
int i3 = 0x02;
int i11 = 0x0D;
List temp = new List();
Uint8List rxdata;
//int response;
transceive_id = tech.identifier;
temp.insert(0, i1);
temp.insert(1, i2);
temp.insert(2, i3);
temp.insertAll(3, transceive_id);
temp.insert(11, i11);
Uint8List txdata = Uint8List.fromList(temp);
print('this is read_MB_control_dyc_temp $txdata');
rxdata = await my_nfctransceive(tag, txdata);
print('this is after trasceive of read_control ${tag.data}');
print('this is read_MB_control_dyc $rxdata');
if (rxdata[0] != 0) {
print('Tag answered, but with error in Response_flags ');
}
print('this is read_MB_control_dyn ${rxdata[1]}');
return rxdata[1];

}
Future read_MB_length(NfcTag tag) async {
print('length function');
final tech = NfcV.from(tag);
List read_length_temp = new List();
Uint8List read_MB_length_response;
int i1 = 0x22;
int i2 = 0xAB;
int i3 = 0x02;
transceive_id = tech.identifier;
read_length_temp.insert(0, i1);
read_length_temp.insert(1, i2);
read_length_temp.insert(2, i3);
read_length_temp.insertAll(3, transceive_id);
Uint8List read_length = Uint8List.fromList(read_length_temp);
print('length data $read_length');
read_MB_length_response = await my_nfctransceive(tag, read_length);
print('this is after trasceive of length ${tag.data}');
print('this is read length response $read_MB_length_response');
if (read_MB_length_response[0] != 0) {
print('error on read MB length');
}
return read_MB_length_response[1] + 1;
}
Future read_MB(NfcTag tag, int length) async {
final tech = NfcV.from(tag);
List read_mb_temp = new List();
Uint8List read_mb_response;
int i1 = 0x22;
int i2 = 0xAC;
int i3 = 0x02;
int i11 = 0x00;
read_mb_temp.insert(0, i1);
read_mb_temp.insert(1, i2);
read_mb_temp.insert(2, i3);
read_mb_temp.insertAll(3, transceive_id);
read_mb_temp.insert(11, i11);
read_mb_temp.insert(12, length - 1);
Uint8List read_mb = Uint8List.fromList(read_mb_temp);
read_mb_response = await my_nfctransceive(tag, read_mb);
print('this is after trasceive of read ${tag.data}');
if ((read_mb_response[0] != 0) ||
(read_mb_response.length !=
length +
1)) /* Tag answered a different length (response byte + data length)  */
{
print('error in mb_read');
}
Uint8List retval = read_mb_response.sublist(1);
print('this is retval $retval');
return retval;
}
my_nfctransceive(NfcTag tag, Uint8List my_tx) async {
print('hello1');
final tech = NfcV.from(tag);
int tries = 0;
Uint8List retval;
if (tag == null) {
print("No TagV !");
return null;
}
while (true) {
try {
tries++;
print(tries);
retval = await tech.transceive(data: my_tx);
print('hello2');
break;
} catch (e) {
if (tries >= 5) {
throw (e);
}
// throw (e);
print('hello3');
sleep(const Duration(milliseconds: 10));
}
}
print('this is my_transceive $retval');
return retval;
}
}
Could you help me out with this? Thanks in advance. :)

@ishwaryamamidi
Please try with the minimal code like bellow:
final nfcv = NfcV.from(tag);
final cmd = [0x02, 0x20, 0x00];

final n = 2;

for (int i = 1; i <= n; i += 1) {
  try {
    final answer = await nfcv.transceive(data: Uint8List.fromList(cmd));
    print('Answer $i: $answer');
  } catch (e) {
    print('Exception $i: $e');
  }
}

@okadan The above minimal code worked perfectly.
But could you please let me know what is the issue in the code I have written.

Close issue because the second transmission was successful.


Add support for omnibus-caching

To save on time/bandwidth, store omnibus binaries in a named Docker Volume.
Signed-off-by: Tom Duffield<EMAIL_ADDRESS>

Code looks fancy! Just add a few tests? 😄

This is better handled via the layer system, see https://github.com/poise/poise-boiler/blob/master/lib/poise_boiler/helpers/kitchen/Dockerfile.erb#L82-L85 for an example.

@coderanger Why is it better handled there?

Because it's faster (doesn't re-run the install at all instead of just saving download time), is easier to prune, and can be shared by multiple test suites or cookbooks.

@coderanger when using the chef provisioner, the install will be run regardless, would it not? There's nothing in here that short-circuits the provisioner as far as I can tell. The image build would perform the install, and then the provisioner would come in and perform the install again.

@tduffield It does in fact skip the install :) https://github.com/test-kitchen/test-kitchen/blob/master/support/chef_base_install_command.sh#L221 (unless you request require_chef_omnibus: latest which always reinstalls for safety)

@coderanger okay, i know this PR didn't reflect it, but what if we wanted to support abstract provisioner caching?

Doesn't seem worthwhile enough to use a sub-par implementation for. Which was my whole point against the original PR :) If someone wants to have a fast, opinionated Docker setup using volumes then dokken is already great for that (and I generally recommend dokken over kitchen-docker to new users). provision_command supports any install command out there so it works fine with Ansible and Puppet too. Happy to take a doc change with examples for those if you know them off hand.


s/grunt-sed/npm script/

Fixes #18338.
CC: @XhmikosR @hnrch02 @fat for review

Wow, great job as usual!
I'm gonna try it later today or tomorrow and let you know.

@XhmikosR Had a chance to test it out yet?

@cvrebert: sorry didn't have the time yet. I'll do it this weekend.

@cvrebert: I tried it, and seems to work fine apart from the dist files. I know, that those are supposed to be generated but you know.
After that, I'd say we can merge it.

Oh, don't forget to remove the old stuff from Gruntfile.js and npm-shrinkwrap.json.
Finally, do you think we should exec this via Grunt for consistency since we don't have any other npm scripts?

Oh, also, the JS files are using 4.0.0, we might need to normalize this.

Oh, don't forget to remove the old stuff from Gruntfile.js

Done.

and npm-shrinkwrap.json.

Will re-shrinkwrap right after this is merged.

Finally, do you think we should exec this via Grunt for consistency since we don't have any other npm scripts?

Meh, particularly since this script wont be used by anyone outside of Core Team.
And I'm hoping to have more npm scripts going forward.

OK, then we should just normalize the version across the codebase and merge.

seems to work fine apart from the dist files. I know, that those are supposed to be generated but you know.

Including them feels kinda dirty, but okay, I've removed the exclusion of dist.


⚠ Jenkins Plugins Artifactory has degraded performance

In 120dfdf, Jenkins Plugins Artifactory (https://get.jenkins.io/plugins/artifactory/) experienced degraded performance:

HTTP code: 200
Response time: 1237 ms

Resolved: Jenkins Plugins Artifactory performance has improved in fda05a3 after 28 minutes.


Remove to_(device) API for all classes.

Moving data between different devices always allocates new memory. In-place version to_(device) doesn't prevent allocation. Python and C++ have the same syntax, with the to(device) method, to release the memory used before transfer.
my_unitensor = my_unitensor.to(Device.cuda)

Besides,  managed memory is allocated when the device is GPU. CPU and GPUs can access managed memory, so it may not need to allocate any memory when switching devices if all data is stored in the managed memory. If all data is stored in the managed memory, the remaining to(device) can become an "in-place" method.

This function can be used in cases like:
my_unitensor.to_(Device.cuda).other_().yetanother_()
I think it’s ok to keep this?

Instead, we can use
my_unitensor = my_unitensor.to(Device.cuda).other_().yetanother_()

In the current implementation, to_ must allocate memory if moving to different devices, so the code above is not slower. Providing in-place to_ may mislead the user that to_ doesn't allocate new memory.


Test trace stats

Hello @mmichal10! Thanks for opening this PR. We checked the lines you've touched for PEP 8 issues, and found:

In the file tests/functional/trace_fio.py:

Line 237:5: E303 too many blank lines (2)
Line 310:9: E303 too many blank lines (2)
Line 453:9: E303 too many blank lines (2)


Landing page layout isn't consistent

I think the best look is when the title and the icon are in the stars portion of the background, the text is in the purple grid and the buttons below that.
Depending on resolution, the title can wind up in the purple area, or straddling the line.
I'm thinking there might be a way to restrict the title div to the star section, then have the font shrink/flexbox to ensure it stays there.
I think the website looks best on mobile. It depends on how fussy we are willing to be.

I think your instincts are right. This should be solvable by making the background not centred vertically but instead specifying some percentage value. It probably needs to be determined empirically.