TODOs list

Some of the TODO would be good starter tasks:
Current set as of this writing:
$ git grep TODO

Makefile:# TODO: do something about cyclomatic complexity
fgrpc/grpcrunner.go:// TODO: refactor common parts between http and grpc runners
fgrpc/grpcrunner.go:            // TODO: option to use certs
fhttp/http.go:// Version is the fortio package version (TODO:auto gen/extract).
fhttp/http.go:                  Timeout: 3 * time.Second, // TODO: make configurable
fhttp/http.go:// TODO: refactor - unwiedly/ugly atm
fhttp/http.go:  // TODO: safer to start with -1 and fix ok for http 1.0
fhttp/http.go:          // TODO: need automated tests
fhttp/http.go:                  c.code = ParseDecimal(c.buffer[retcodeOffset : retcodeOffset+3]) //TODO do that only once...
fhttp/http.go:                  // TODO handle 100 Continue
fhttp/http.go:                  // TODO: keep track of list of newlines to efficiently search headers only there
fhttp/http.go:                                          // TODO: just consume the extra instead
fhttp/http.go:          // TODO: this easily lead to contention - use 'thread local'
fhttp/http.go:// TODO: switch to Duration.Round once switched to go 1.9
fhttp/httprunner.go:    // TODO 1. use std client automatically when https url
pingsrv.go:     // TODO doesn't work for ipv6 addrs etc
stats/stats.go:// TODO: consider using an interval search for the last N big buckets
stats/stats.go: // TODO potentially merge despite different offset/scale
stats/stats_test.go:    // TODO: fix the p51 (and p1...), should be 0 not 10
stats/stats_test.go:    tP := []float64{100.} // TODO: use 75 and fix bug
ui/static/js/fortio_chart.js:// TODO: object-ify
ui/static/js/fortio_chart.js:      // TODO may need updateChart() if we persist settings even the first time
ui/templates/browse.html:<p><!-- TODO: find a way to flush/not need two p to get the form visible! -->
ui/templates/main.html:{{end}}{{end}} <!-- 2 extra header lines, TODO: add a JS 'more headers' button -->
ui/uihandler.go:// TODO: auto map from (Http)RunnerOptions to form generation and/or accept
ui/uihandler.go:// TODO: unit tests, allow additional data sets.
ui/uihandler.go:        debugPath = ".." + debugpath // TODO: calculate actual path if not same number of directories

I would like to work on this task @ldemailly. Do I need to finish all TODOS or should I select some of them?

@olimpias fantastic, thank you ! you can just pick 1 at a time! (we can create sub issues if that helps, or just address one or more in a pr)

I think, creating sub task would be great. For now, you can assign me grpcrunner.go, stats.go and stats_test.go related TODO'S as sub-task.

Okey thanks @ldemailly

@ldemailly, May I work on http.go related todos?

yes, sure  but they are trickier/harder than the others I think (for instance the calc percentile todo left and the other in stats post #61 may be worth looking at)

fhttp/http.go:                  Timeout: 3 * time.Second, // TODO: make configurable
looks easy to me, but I didnt check the code :P.  Okay I will look at them as well :)

@ldemailly https://github.com/istio/fortio/pull/116 fixes: pingsrv.go:     // TODO doesn't work for ipv6 addrs etc

@olimpias can you provide the list of TODOs that you're working on? I want to make sure not to work on the same one's as you.

@danehans I have completed  Timeout: 3 * time.Second, // TODO: make configurable and // TODO potentially merge despite different offset/scale. Also  // TODO: consider using an interval search for the last N big buckets is in PR.

unrelated but do you guys want to pull and tell me if you get any issues with the vendor submodule?

@ldemailly no vendor submodule issues here:
$ make test
/Library/Developer/CommandLineTools/usr/bin/make submodule-sync
git submodule sync
git submodule update --init
Submodule 'vendor' (https://github.com/istio-releases/fortio-vendor.git) registered for path 'vendor'
Cloning into '/Users/daneyonhansen/code/go/src/istio.io/fortio/vendor'...
Submodule path 'vendor': checked out '868e377b7e84ee33278d978602634b7e1eb65145'
go test -timeout 60s -race . ./echosrv ./fgrpc ./fhttp ./fnet ./histogram ./log ./periodic ./stats ./ui
?   	istio.io/fortio	[no test files]
?   	istio.io/fortio/echosrv	[no test files]
ok  	istio.io/fortio/fgrpc	6.303s
ok  	istio.io/fortio/fhttp	17.326s
ok  	istio.io/fortio/fnet	1.025s
?   	istio.io/fortio/histogram	[no test files]
ok  	istio.io/fortio/log	1.027s
ok  	istio.io/fortio/periodic	23.922s
ok  	istio.io/fortio/stats	11.722s
?   	istio.io/fortio/ui	[no test files]

// TODO: make it work for port 0 and return the port found and also
// add a non blocking mode that makes sure the socket exists before returning is on PR.

I will start to work on handing http 100 response. Last time, I think, I found handling 100 response from wrong resource. I have found https://www.w3.org/Protocols/rfc2616/rfc2616-sec8.html#sec8.2.3. I will try to do things according to this resource.

I will start to work on handing http 100 response

let's finish the other 2 first. also I do think you are correct that a server will never send 100 unless the client asks for it - at least my cursory reading of that rfc section

see also https://github.com/istio/fortio/issues?q=is%3Aissue+is%3Aopen+label%3A"help+wanted"

Okay, After I finish 2, I will give priority to converting binary search from linear in stats.go instead of http 100 response.

I have tested to convert binary search for // TODO: change linear time to O(log(N)) with binary search. But benchmark result were not well for binary search. I think it is because of less number of iteration and variable allocations.
binary search result:100000000           18.8 ns/op
for loop iteartion result:200000000            5.88 ns/op
Tests code are below.
func BenchmarkBucketLookupBinary(b *testing.B) {
	slice := histogramBucketValues[maxArrayValueIndex:]
	for i := 0; i < b.N; i++ {
		sort.Search(len(slice), func(i int) bool {
			return slice[i]>99999
		})
	}
}

func BenchmarkBucketLookupIteration(b *testing.B) {
	slice := histogramBucketValues[maxArrayValueIndex:]
	for i := 0; i < b.N; i++ {
		j := 0
		for ;j<len(slice);j++ {
			if slice[j] > 99999 {
				break
			}
		}
	}
}

@ldemailly  I think, we should cancel // TODO: change linear time to O(log(N)) with binary search. what do you think?

@olimpias try SearchInts ? that lambda may be more expensive that needs be

It still is not good. Also I check the inside of SearchInts method. It uses the lambda expession search method.

ok thanks, drop that todo then. there are many open issues beside the todos too

going to close this for now and we can reopen targeted todos


Please Can I Join This Organisation? 🙏

Name: akileus
Info About the Pull Request You Made:

You can put the number of your pull request, but putting # with the number your pull request is at.
1

#28


As editors we would like a new text teaser component to promote Equinors key messaging

Figma board: Big text
Acceptance criteria

Based on current teaser component without image
Editor can toggle Title left or right displaying text on opposite side (title displays above on Ipad vertical/mobile)
Agree on font size for title
Editor can bold key words in Title
All background colours
Specific background colours could have themed options for editor to select colours:
(New) Mid blue background #49709C. White text default. Option to choose yellow theme #FFF5B8 or Mid orange theme #F8D1AF (note link arrow should also be white for this background)
(new) Mid orange #F8D1AF . Black text default. Option to choose red theme (energy red)
Link should be optional
Word limit for text as per teaser
Can this component be hidden for users except "designer" role?

In order to ensure good quality we should (Keep the ones we need for this US)

[ ] Perform integration testing
[ ] Perform functional testing
[ ] Extra focus on usability
[ ] Test for portability
[ ] Test for accessibility
[ ] Create automated acceptance test/smoke test
[ ] Perform performance and load test
[ ] Perform user testing
[ ] Perform security testing

On hold to discuss the color highlight option.

https://www.sanity.io/answers/how-to-get-the-currently-logged-in-user-inside-a-sanity-schema

@padms The new colour set up as you have created for the other components is approved to apply for this component too. Thanks

@NickHaggerty1 This is ready for review.

Hi @padms great work. This looks very good and interesting to see some new elements to play with in the theme setup. As there is a new way to do thingsI think we need to be super clear with the explanations for editors:
When user hovers over highlight. Can text say: Highlight text selected from theme below
Can the theme description text say:
Theme (for title)
When you have selected highlight in the title, choose colour combination for the title text/background. If no highlighted is selected colour will be black or white (on blue background) If no theme is selected the default is white background with black text.

@padms Only other comment, on mobile the title spacing is quite big to the text. Is this something thats easy to adjust? If you look at the screen grab below, the spacing for the Teaser should match the Text component.

@padms @fernandolucchesi approved


Update record count limit post to Sentinel using Sentinel API

Required items, please complete
Change(s):

Update record count limit when posting to Sentinel with API and make it configurable
Make the API Token field to be a secret string rather than a plain string

Reason for Change(s):

Current limit may cause the API post call to exceed Sentinel API 30Mb limit

Version Updated:

no

Testing Completed:

Yes

Hello @FortiNDR-Integration, Thanks for raising this PR. Can you share the invocation logs of the function app.

Hello @FortiNDR-Integration, Thanks for raising this PR. Can you share the invocation logs of the function app.

Hello @FortiNDR-Integration, Thanks for raising this PR. Can you share the invocation logs of the function app.

Hi @v-prasadboke , here are the screenshots of the invocation logs

Hello @FortiNDR-Integration, Thanks for raising this PR. Can you share the invocation logs of the function app.

Hi @v-prasadboke , here are the innovation logs:


1012 remote state managed scopes

What this PR does / why we need it:
This PR addresses inconsistencies in the realm import process when --import.remote-state.enabled=true. It improves the handling of scope mapping and client mapping. This enhancement ensures reliable and repeatable configuration imports.
Which issue this PR fixes (https://github.com/adorsys/keycloak-config-cli/issues/1012)
Special notes for your reviewer:
PR Readiness Checklist:
Complete these before marking the PR as ready to review:

[x] the CHANGELOG.md release notes have been updated to reflect any significant (and particularly user-facing) changes introduced by this PR

Hello @Calebasah the current behavior seems to diverge from the error posted by @sky-754 please review it and maybe he should and more clarity on the ticket thanks

Hello @AssahBismarkabah thank you for your feedback, I've reviewed the expected behavior and ensured that it is clearly stated here.

Hi @Calebasah
Hi @Calebasah,
I've noticed that the manually created ScopMappings still appear to be deleted following the recent changes?

Hi @Calebasah
I've noticed that the manually created ScopMappings still appear to be deleted following the recent changes?

Hi @AssahBismarkabah,
Thank you for the feedback. I’ve reviewed the changes, and everything appears to work as expected on my end. Could you please double-check your test setup to ensure the --import.remote-state.enable option is being applied correctly? Let me know if you’re still encountering issues.


[newrelic/nri-bundle] <enable Mongodb monitoring?>

I installed the nri-bundle chart, and everything seems to come up in my Kubernetes cluster.
I would like to monitor a MongoDB cluster as installed per Bitnami charts, which installs the side car Prometheus exporter.
https://github.com/bitnami/charts/tree/main/bitnami/mongodb
using values.yaml:
metrics:
enabled: true
extraFlags: "--collect-all --discovering-mode=true"
What is the next step?
I'm trying to follow the New Relic MongoDB instructions (containerized section) at:
https://docs.newrelic.com/docs/infrastructure/host-integrations/host-integrations-list/mongodb/mongodb-monitoring-integration-new/
The only next steps are configuring the Prometheus agent as follows, however I have no idea where this configuration is supposed to go:
(...)
new_relic_remote_write:
extra_write_relabel_configs:
- source_labels: [name]
regex: 'mongodb_.*'
target_label: mongodb_cluster_name
replacement: 'cluster-name-example'
Thanks

Is this issue only visible internally to NR? I’m unable to access it. ThanksOn Jul 26, 2023, at 5:55 PM, workato-integration[bot] @.***> wrote:
https://issues.newrelic.com/browse/NR-146234
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you authored the thread.Message ID: @.***>

Found this:
https://github.com/newrelic/nri-mongodb/blob/master/mongodb-config.yml.k8s_sample

I created the attached values.yaml to monitor the bitnami/mongodb chart installation which usese metrics.enabled=true (enables prometheus side car).  I expected to see mongo added to the ConfigMap for the NR infrastructure agent, however only see the following.  Am I following the procedure correctly?
# Source: nri-bundle/charts/newrelic-infrastructure/templates/controlplane/agent-configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
  namespace: newrelic
  labels:
    app.kubernetes.io/instance: nr
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/name: newrelic-infrastructure
    app.kubernetes.io/version: 3.15.1
    helm.sh/chart: newrelic-infrastructure-3.20.1
  name: nr-nrk8s-agent-controlplane
data:
  newrelic-infra.yml: |-
    # This is the configuration file for the infrastructure agent. See:
    # https://docs.newrelic.com/docs/infrastructure/install-infrastructure-agent/configuration/infrastructure-agent-configuration-settings/
    custom_attributes:
      clusterName: cluster-0
    http_server_enabled: true
    http_server_port: 8001
    is_forward_only: true

nri-bundle-values.yaml.scrub.txt

Hi ,
The next best step is to visit New Relic Support, where you can engage the New Relic Support Community or open a support ticket depending on your support level. The support team is best positioned to assist with your specific needs.
Please provide a link to this GitHub issue when submitting your community post or support ticket.
Thanks!


Unable to run terraform apply due to missing APNS_SANDBOX files

When I try to run terraform apply per the Getting Started instructions I get the following error:
> terraform apply

Error: Error in function call

  on register_device.tf line 95, in resource "aws_sns_platform_application" "OfflineMediaDownloader":
  95:   platform_credential       = file("./../secure/APNS_SANDBOX/privateKey.txt")  # APNS PRIVATE KEY

Call to function "file" failed: no file exists at
../secure/APNS_SANDBOX/privateKey.txt.

Error: Error in function call

  on register_device.tf line 96, in resource "aws_sns_platform_application" "OfflineMediaDownloader":
  96:   platform_principal        = file("./../secure/APNS_SANDBOX/certificate.txt") # APNS CERTIFICATE

Call to function "file" failed: no file exists at
../secure/APNS_SANDBOX/certificate.txt.

Do I need to setup push notification certificates with an Apple developer account to get this working?

@johnogle222 This should now be resolved with my latest commit; try again and let me know if it's working as expected.

Looks to be working! I'll continue testing on this soon. Thank you!


AppImage cannot be used expanded: tries to download GraalVM

Trying to investigate the behavior behind proxy

#7693

I contacted a friend behind a corporate proxy and asked him to use https://github.com/enso-org/enso/releases/tag/2023.2.1-nightly.2023.8.29. He downloaded AppImage and tried to use it on his Ubuntu. He doesn't have FUSE installed, so the AppImage told him to extract itself. After doing so, starting ./AppRun and creating the new project, everything stopped because GraalVM runtime [GraalVM 23.0.0 Java 17.0.7] not found. But the runtime is part of the AppImage!
[info] [2023-08-30T10:59:14.019Z] [org.enso.projectmanager.boot.ProjectManager$] Starting Enso Project Manager
Version:    2023.2.1-nightly.2023.8.29
Built with: scala-2.13.11 for GraalVM 17.0.7
Built from: develop* @ e0ef0a258d82dc06caac443c0af308bc9807c866
Built on:   Linux (amd64)

[info] [2023-08-30T10:59:14.034Z] [org.enso.projectmanager.boot.ProjectManager$] Started server at <IP_ADDRESS>:30535, press enter to kill server
[info] [2023-08-30T10:59:18.301Z] [org.enso.projectmanager.protocol.ClientController] Client connected to Project Manager [98f317e1-ec23-49d5-8b94-3891559fac5e]
[info] [2023-08-30T10:59:21.515Z] [org.enso.projectmanager.infrastructure.log.Slf4jLogging] Created project with actual name [New_Project_1].
[info] [2023-08-30T10:59:21.516Z] [org.enso.runtimeversionmanager.components.RuntimeVersionManager] The engine [2023.2.1-nightly.2023.8.29] found.
[info] [2023-08-30T10:59:21.516Z] [org.enso.runtimeversionmanager.components.RuntimeVersionManager] GraalVM runtime [GraalVM 23.0.0 Java 17.0.7] not found.
[info] [2023-08-30T10:59:21.517Z] [org.enso.runtimeversionmanager.components.RuntimeVersionManager] Installing GraalVM runtime [GraalVM 23.0.0 Java 17.0.7].
[warn] [2023-08-30T10:59:31.525Z] [org.enso.projectmanager.requesthandler.ProjectCreateHandler] Pending ProjectCreate response. Timeout retries left: 4.
[warn] [2023-08-30T10:59:41.545Z] [org.enso.projectmanager.requesthandler.ProjectCreateHandler] Pending ProjectCreate response. Timeout retries left: 3.
[warn] [2023-08-30T10:59:51.565Z] [org.enso.projectmanager.requesthandler.ProjectCreateHandler] Pending ProjectCreate response. Timeout retries left: 2.
[info] [2023-08-30T10:59:56.322Z] [org.enso.projectmanager.infrastructure.log.Slf4jLogging] Created project with actual name [Orders_1].
[info] [2023-08-30T10:59:56.323Z] [org.enso.runtimeversionmanager.components.RuntimeVersionManager] The engine [2023.2.1-nightly.2023.8.29] found.
[info] [2023-08-30T10:59:56.323Z] [org.enso.runtimeversionmanager.components.RuntimeVersionManager] GraalVM runtime [GraalVM 23.0.0 Java 17.0.7] not found.
[warn] [2023-08-30T11:00:01.585Z] [org.enso.projectmanager.requesthandler.ProjectCreateHandler] Pending ProjectCreate response. Timeout retries left: 1.
[warn] [2023-08-30T11:00:11.605Z] [org.enso.projectmanager.requesthandler.ProjectCreateHandler] Pending ProjectCreate response. Timeout retries left: 0

I'd say the error is in cooperation between org.enso.runtimeversionmanager.components.RuntimeVersionManager and the way AppImage is built.

Likely caused by latest GraalVM upgrade and (now) broken links:
https://github.com/enso-org/enso/blob/87ce78615afecb8bd8d586c798c97ab5e28083cd/lib/scala/runtime-version-manager/src/main/scala/org/enso/runtimeversionmanager/components/RuntimeVersionManager.scala#L637

Actually, looks like locally we download and rename artifacts to fir the old format. But we don't do that when creating the AppImage. We should.

@mwu-tow agreed to take over as this is very much in the build script/rust domain when we define bundles.


move to / before issuing the git commands

When puppet is run as user root from roots home and git_config changes the settings to another user, the commands will fail.

Opened an issue for this: https://tickets.puppetlabs.com/browse/MODULES-1863

I've cherry picked your commit into my PR as well because it ended up hitting the same issue: https://github.com/puppetlabs/puppetlabs-git/pull/61

Merged in https://github.com/puppetlabs/puppetlabs-git/pull/61


Updating Razor Views while debugging in razor class libraries

Hi,
I tested the new razor class libraries in ASP.NET Core 2.1.
There is one thing I REALLY miss there. When I debug my application, I can't update my razor Views in the class library. It works when I do that in my Webapplication, but not in my class library
This would be nice if it could be implemented.

The way this is meant to work is for the project to rebuild when it detects changes to referenced projects. If you're building on the command line, dotnet watch should took care of this.
There's currently an issue in VS - https://github.com/dotnet/project-system/issues/3163 - that does not cause a project to rebuild when files in dependent projects change. Addressing it should address this issue. In the meanwhile, manually Ctlr-F5ing your project should cause the views in the class library to recompile and your app to pick it up.
cc @BillHiebert

Thanks for contacting us. We believe that the question you've raised have been answered. If you still feel a need to continue the discussion, feel free to reopen it and add your comments.

Hello,
unfortunately dotnet watch is not able to detect changes of RCL views.
Ctr-f5ing in VS doesn't fix either, because VS build cannot run in parallel.
Please give a look, is very annoying.

Is there any way to work around the bug? The issue has been reported and tracked since April in the
#https://github.com/dotnet/project-system/issues/3163 but no resolution.
How are other people using the RCL? At the moment I have to stop and start VS debug for every little style change I make to any view which is really frustrating and time consuming.
I tried the suggestion from @joovnaz but doesn't seem to work in VS.

dotnet watch is no real solution to the problem, because it is way to slow for building up cshtml files. We have many developers in my company who are just working on the template side. When they press ctrl+s and tab over to the browser the change should be already visible there.
I have been told that a solution to use a custom IViewLocationExpander which resolves sub folders with cshtml-files at development environment has been forbidden by their design.
My idea would be to relax the limitation and make it controllable through a config variable or the environment.

@pranavkm Thanks for the tip! I'll investigate into this and call back on here.

@seriouz, did the suggestion @pranavkm has pointed out work for you?

Sadly i was ill last week and had no real time to investigate further. But it's very high on my list now. I'll give feedback  soon, promised!

I made it working for Razor Views. But how does it work for RazorPages don't they use a IFileProvider?

RazorPages use the same set of file providers for compilation and change tracking, so it should just work. Are you seeing otherwise?

I have the same problem. I can not find what the solution is. The impossibility to edit views during Visual Studio debugging is unthinkable, please help.
Why is this issue closed?

There is no solution. The Razor team says its a DotNet team issue since April and the DotNet team has opened an internal ticket that we don't have visibility to see if any progress has been made. You would have thought so that if they are promoting so hard Razor Pages or Views in RCL at least to make sure that basic things work. 3163

The workaround with the PhysicalFileProvider mentioned above by pranavkm seems to be working well for me.  I can edit page views in my RCL whilst running and the changes are reflected.  Took a while to figure out, but it is as simple as adding this to startup.cs Configure()
services.Configure(options =>
options.FileProviders.Add(new PhysicalFileProvider(Path.Combine(HostingEnvironment.ContentRootPath, "..\NAMEOFRCL")))
);
Would be great if this was properly fixed though.


Cannot subclass from AnyUrl

Initial Checks

[X] I confirm that I'm using Pydantic V2 installed directly from the main branch, or equivalent

Description
With pydantic v1 I used to subclass the AnyUrl to slightly change its behavior in a custom class.
It seems that it is not possible anymore with pydantic v2. I literally cannot subclass it anymore.
Is this expected ?
Example Code
from pydantic import AnyUrl

class A(AnyUrl):
    pass

Python, Pydantic & OS Version
pydantic version: 2.0b2
        pydantic-core version: 0.38.0 release build profile
                 install path: /home/sami/snap/alacritty/common/.cache/pypoetry/virtualenvs/docarray-OI1ry5x2-py3.9/lib/python3.9/site-packages/pydantic
               python version: 3.9.10 (main, Jan 18 2022, 17:20:31)  [GCC 9.3.0]
                     platform: Linux-5.15.0-73-generic-x86_64-with-glibc2.31
     optional deps. installed: ['typing-extensions']

This is expected, it's a Rust class, you won't be able to subclass it. What is it you are trying to do that requires you to subclass it?

I am currently adapting docarray to pydantic v2. There we define a class that inherits AnyUrl and slightly change the behavior: https://github.com/docarray/docarray/blob/main/docarray/typing/url/any_url.py
But I guess that we will have to rewrite this base class ourselves and don't rely on the built-in AnyUrl (or maybe reuse it internally without inheriting from it).

Yes and no: subclasses will have to override __new__ instead of __init__ for starters, which still makes a lot of use cases weird. Hence why I was asking @samsja what their actual goal was. I also think we should in general encourage composition over inheritance (especially when it can be done vía Annotated, which is almost always the case unless you need to add attributes, in which case you run into the __new__ thing I mentioned above). Finally I don’t know what impact that has on the generated Rust code (David H would know for sure) but since it’s not the default I imagine it’s not zero.
that said, if you still feel it’s worth it I don’t mind merging it.

On my side basically what I am looking for is:

being able to reuse some part of AnyUrl core logic. This can be done via composition over inheritance
inheriting the serilization ability of AnyUrl. Pydantic know how to deal with AnyUrl but will not know out of the box how to deal with my new class. (Though it can be solved pretty easily)

Inheriting from the class seems like the "easiest" way to do what I want to do, but it is not 100% needed honestly. Tho if there are no downside on pydantic side it could be nice to have it

FYI in V1 if you inherit from a class you inherit it’s validation and serialization. In V2 you do not.

FYI in V1 if you inherit from a class you inherit it’s validation and serialization. In V2 you do not.

hmmm interesting. Is there a way to not have to copy past the validation/ser ability of the class when inheriting ?

How about something like this?
from typing import Any

from pydantic_core import CoreSchema, core_schema

from pydantic import AnyUrl, BaseModel, GetCoreSchemaHandler, GetJsonSchemaHandler
from pydantic.json_schema import JsonSchemaValue

class MyUrl:
    def __init__(self, url: AnyUrl) -> None:
        self._url = url

    @classmethod
    def validate(
        cls,
        value: AnyUrl,
    ) -> 'MyUrl':
        assert value.host == 'example.com', 'Url must be example.com'
        return MyUrl(value)

    @classmethod
    def serialize(
        cls,
        value: 'MyUrl',
        handler: core_schema.SerializerFunctionWrapHandler,
    ) -> Any:
        return handler(value._url)

    @classmethod
    def __get_pydantic_core_schema__(cls, _source_type: Any, handler: GetCoreSchemaHandler) -> core_schema.CoreSchema:
        url_schema = handler.generate_schema(AnyUrl)
        return core_schema.no_info_after_validator_function(
            cls.validate, url_schema, serialization=core_schema.wrap_serializer_function_ser_schema(cls.serialize)
        )

    @classmethod
    def __get_pydantic_json_schema__(cls, core_schema: CoreSchema, _handler: GetJsonSchemaHandler) -> JsonSchemaValue:
        return {'type': 'string', 'format': 'uri'}

    def __repr__(self) -> str:
        return f'MyUrl({self._url})'

class Model(BaseModel):
    url: MyUrl

print(Model(url='https://example.com'))
print(Model(url='https://pydantic.dev'))
#> 1 validation error for Model:
#> Assertion failed, Url must be example.com

Or depending on what you're trying to do you could use something like this:
from typing import Annotated, Any

from pydantic import AnyUrl, BaseModel
from pydantic.functional_serializers import PlainSerializer
from pydantic.functional_validators import AfterValidator

def validate(
    value: AnyUrl,
) -> AnyUrl:
    assert value.host == 'example.com', 'Url must be example.com'
    return value

def serialize(
    value: AnyUrl,
) -> Any:
    return value.host

MyUrl = Annotated[AnyUrl, AfterValidator(validate), PlainSerializer(serialize, return_type=str)]

class Model(BaseModel):
    url: MyUrl

print(Model(url='https://example.com'))
print(Model(url='https://example.com').model_dump())
print(Model(url='https://pydantic.dev'))
#> 1 validation error for Model:
#> Assertion failed, Url must be example.com

Okay I see makes sense !
Btw where is the best way to get up to speed with pydantic v2 ? Reading your code showed me I am still missing some understanding of the new API of v2

We're actively working on documentation. Tests are probably the best documentation right now.

okay thanks !


In page navigation causes page to break in Safari

In Safari 11.1.2 (and also an earlier version I have at home)
In-page anchor links within styles > layout / typography / spacing cause the entire page to jump, not just the main content pane. The header and navigation disappear and cannot be scrolled back to. The user will need to refresh in order to carry on navigating the site.

something to do with fixed layout, as it doesn't happen here https://center-layout--govuk-design-system-preview.netlify.com/styles/layout/#example-combinations


docs: small improvements in requirements.rst

Description

small improvements

Checklist:

[x] Securely signed commits
[] Component(s) with PHPDoc blocks, only if necessary or adds value
[] Unit testing, with >80% coverage
[x] User guide updated
[] Conforms to style guide

Thank you @kenjis


Add missing methods for UIA

Current coverage is 94.43% (diff: 100%)

Merging #297 into master will decrease coverage by 0.01%

@@             master       #297   diff @@
==========================================
  Files            49         49
  Lines         19508      19518    +10
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
+ Hits          18426      18432     +6
- Misses         1082       1086     +4
  Partials          0          0

Powered by Codecov. Last update b6e72ee...c4d9d80


ci: Exempt issues with assignee

Description
In this PR we setup the stale action workflow to avoid stale issues that have been assigned to someone
https://github.com/actions/stale#exempt-all-assignees

don`t we just want to exempt issues that have actually been planned? exempt-all-milestones

Yes, maybe better. But I've also increased the period to stale or close issues ( just to be sure issues are planned into a Milestone)

LFTM


Windows: Mounting of single file does not work

Environment

Windows Server 2016 Technical Preview 5 running in Azure (I am using the ready-made VM that Azure provides)
Docker host has a directory c:\config containing a text file test-rainer.txt.

Repro
Execute Docker CLI command: docker run -it --rm -v c:\config\test-rainer.txt microsoft/windowsservercore cmd /c "type c:\config\test-rainer.txt"
Expected behavior: Print content of the file
Actual behavior: Access is denied
Additional information
The command docker run -it --rm -v c:\config\test-rainer.txt microsoft/windowsservercore cmd /c "dir c:\config" results in the following output (note that the file has become a directory):
 Volume in drive C has no label.

 Volume Serial Number is CCF3-F517

 Directory of c:\config\test-rainer.txt

09/06/2016  09:29 AM    <DIR>          .
09/06/2016  09:29 AM    <DIR>          ..
               0 File(s)              0 bytes
               2 Dir(s)  104,884,604,928 bytes free

Here is the output of docker info in case detailed configuration is needed for repro:
Containers: 7
 Running: 5
 Paused: 0
 Stopped: 2
Images: 18
Server Version: 1.12.0
Storage Driver: windowsfilter
 Windows:
Logging Driver: json-file
Plugins:
 Volume: local
 Network: nat null overlay
Swarm: inactive
Security Options:
Kernel Version: 10.0 14300 (14300.1045.amd64fre.rs1_release_svc.160705-1059)
Operating System: Windows Server 2016 Datacenter Technical Preview 5
OSType: windows
Architecture: x86_64
CPUs: 4
Total Memory: 14 GiB
Name: docker-training
ID: FM6R:LMFB:NWYI:ZE6D:4VDI:DSKA:E5WM:CYBX:E5MW:VVGO:QMT5:EPV3
Docker Root Dir: C:\ProgramData\docker
Debug Mode (client): false
Debug Mode (server): false
Username: rstropek
Registry: https://index.docker.io/v1/
Insecure Registries:
 <IP_ADDRESS>/8

I thought this was documented somewhere, although I cant find it right now. Windows cannot mount single files, and it is fairly problematic under Linux for many use cases.
cc @jhowardmsft

Yes, correct, this is by design even on post TP5 builds. @neilpeterson If not already (I couldn't immediately see it), can we document this? Applies to both Windows Server and Hyper-V containers. I might also see if it's easy to knock together a PR to give a better error.

Even stranger - something has regressed. It should have been caught by https://github.com/docker/docker/blob/master/volume/volume_windows.go#L176.

Docs updated - https://msdn.microsoft.com/en-us/virtualization/windowscontainers/management/manage_data#mount-single-files
If by design and a long term limitation we may want to also update this:
https://docs.docker.com/engine/tutorials/dockervolumes/#/mount-a-host-file-as-a-data-volume
cc @enderb-ms

Thank you very much for the clarification. The docs previously mentioned that mounting a single file should work. Now the limitation is clear and the workaround with the folder is perfectly fine.


fix(Form.Group): add disabled flag

Fixes #4435

Could anyone help with why the Vercel deployment is failing?

Could anyone help with why the Vercel deployment is failing?

https://vercel.com/semantic-ui/semantic-ui-react/2rsf2GtY7HLtJkrukYAvzAAMpkEz
https://vercel.com/semantic-ui/semantic-ui-react/FjCWFAo6wewW72a5e2QHf3jL8wCA
Going through the logs of these deployments indicates that bumping the node version from 14 to 18 has been long due. The build logs clearly say that builds after 15 Aug 2023 will fail.

@naman1608 @VaibhavMalik4187 thanks for heads up. I changed Node version in settings, all good now 🟢 I also added a test, so we are good to merge 🎉


Docs Tracker for 0.47

Provide a description of requested docs changes
PT Run > System Commands Plugin

[ ] Localization option: https://github.com/microsoft/PowerToys/issues/12063
[ ] Confirmation option: https://github.com/microsoft/PowerToys/issues/12293

Is there going to be one for .46? And is there going to be a .45.1?

Is there going to be one for .46? And is there going to be a .45.1?

This is for tracking documentation.


Implement Interpolate for Transform (feature flag)

Pretty basic, if I need to implement it for more types, let me know.

Looks good will have another look later but should be fine to merge. Might do the upgrade to the new replicon version first.


Segmentation fault during building

Hey!
Trying to build the index, using 10 threads, on a server with 128Gb ram, but keep getting a segmentation fault after a few hours. Any ideas?
Cheers ,
Rory

It's possible that you ran out of memory building the database. What genomes did you provide, and could I see the command you executed?
Thanks!

Hey, thanks for the quick reply!
I provided the default selection from the python script, i.e bacteria, archaea, viruses and human. I ran the command from the readme,
```bash bonsai build -e -w50 -k31 -p20 -T ref/nodes.dmp -M ref/nameidmap.txt bns.db find ref/ -name '*.fna.gz'
I'll try building again with the hyperlog flag!


Let configuration cache decode HashSet as LinkedHashSet

To preserve original iteration order and fix flakiness of TaskUpToDateIntegrationTest.hash set output files marks task up-to-date.

@bot-gradle test this

OK, I've already triggered ReadyForMerge build for you.


net: tcp: Running out of buffers by packet loss

When transferring a big TCP send, packet loss causes the send to return with a NOMEM error.
The tests/net/socket/tcp has been modified to reproduce this.
The packet loss is simulated by throwing away one every 8 packets in the loopback driver.
https://github.com/ssharks/zephyr/tree/tcp_big_data_transfer

@ssharks please add more information about the board you are using to reproduce this.

Totally forget to mention, I use the platform qemu_x86
Run the test using:
./scripts/twister -s tests/net/socket/tcp/net.socket.tcp.preempt -T tests/net/socket/tcp -p qemu_x86


Add some ref-related content

This allows us to track connections between related resources.

looks cool, can we get the ref'd output attribute of the other resource in this transform as well?, defaults vary by type, but if the config specifies we might be able to resolve In several cases.

@kapilt sorry, not quite sure what you're referring to here. which attribute / resource? assuming you're talking about the references test module, the only attributes that are the result of references are the "bucket" attribute in the two "aws_s3_bucket_server_side_encryption_configuration"  resources.
if you're talking about assuming that anything with the same value in the same attribute refers to each other ... that seems unlikely to me. for example, resource "aws_lb" "lb1" { name = "production" } and resource "aws_s3" { name = "production" } don't refer to each other, but have attributes w/ the same value.
on the other hand, I do see value in building the graph the other way. for example, if the "aws_s3_bucket.aes-encrypted-bucket" resource had a list of __tfmeta.refs that included aws_s3_bucket_server_side_encryption_configuration.kms-encrypted-configuration (built b/c the encryption config referred up to the bucket), I think we could get a lot of value out of that.
Let me know if I'm getting close? :flushed:

I'm just saying if we have access to the attribute name of the reference then we want to include that here. Ie references are attributes/outputs of another block, ie an s3 buckets has these attributes, https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/s3_bucket#attributes-reference
Rather than just capturing the block ref, I'm wondering if we can include the attribute name on the ref'd block

@kapilt ah! gotcha, ok, added that. Let me know if this works. Had to reach into aquasec, but at least there are tests verifying that it still works. Once we settle on a list of things we need from their library, I can make an issue/PR in their repo and hopefully get these exported upstream.

whew. that took some turns. turns out the easy way was pulling the attribute from the destination, not the source. figuring out how to find that was fun, had to do a bit more reflection to make it work. also found a few scenarios where it doesn't work (conditionals, functions, possibly more).
as an example, what would we expect to see here?
https://github.com/terraform-aws-modules/terraform-aws-vpc/blob/master/main.tf#L360
or here?
https://github.com/terraform-aws-modules/terraform-aws-vpc/blob/master/main.tf#L8
I think what we currently have is a good start, and we can always improve on it later. let the reviewing commence!


[project-config] Uncompiled presets

Hi,
Is there a reason why the uncompiled-bundled and the uncompiled-unbundled presets have es2018 in browserCapabilities instead of es2016 in the builds.ts file of project-config package?
Also, as these presets are uncompiled, should they have module as browser capabilities? By example, this version of my personal website with Polymer 3 and prpl-node-server throws an error when serving the uncompiled-bundled in Firefox 60 :
SyntaxError: expected expression, got keyword 'import'

as ES Modules are not yet completely supported in Firefox (browser-capabilities).
Finally, in the Polymer documentaition, the Polymer team recommends to serve ES6 build to the browsers that supported it for better performance and uncompiled-unbundled

is suitable for serving an implementation of the PRPL pattern to browsers that use the latest JavaScript features

Is there other gains to serve the uncompiled builds aside to use the latest features?
Let me know if you want me to make a pull request to update project-config.
Thanks!

Uncompiled means that you could use any JavaScript feature, and it will not be transpiled, so only browsers that support all of the latest JavaScript features (ES2018 at this time) are safe to serve that to. So I think this is currently correct.
For modules, yes I think you're right, the uncompiled builds should require modules. A PR to update that would be welcome!


dropdown button produces unwanted highlighted border

I have the following code setup.  That when i click on an item in the menu of the dropdown button or the button itself, the dropdown button is highlighted with a blue border that does not go away unless i click anywhere else on the browser.
const options = [   { text: 'One', value: 1 },   { text: 'Two', value: 2 }, ]
const trigger = (     <Icon name='user' /> )
<Dropdown button simple options={options}  trigger={trigger} />
Expected Behavior
click on dropdown button or item in dropdown button menu and no highlighted border around dropdown button
Actual Behavior
click on dropdown button or item in dropdown button menu and a highlighted border appears and will not disappear until an area on the browser that is not the dropdown button is clicked.
Stardust: 0.48.3
Browser: firefox and chrome
OS: windows 8
I noticed that if i remove the tabindex from the rendered html, that the dropdown button behaves as I would expect it to.  Is this correct that the rendered html has the tabindex on there for a dropdown button?

One

Two

The dropdown element retains focus when clicking on the menu since the menu is a child of the dropdown.  The focus style contains a CSS rule for the blue border.  This should be posted on Semantic-UI itself as it is a CSS issue.
Though, it is unlikely that SUI will change the focus style to not include the highlight.  This is essential when tabbing through components.  It is also a web precedent that elements become active (usually a colored border) when they are focused.
Regarding tabIndex, without this a div cannot obtain focus via the tab key.  It removes the blue border because you are then unable to focus the dropdown at all.  So, tabbing to the dropdown is not possible.
At any rate, here are more potential solutions if you are set on removing the border:

Add your own dropdown focus override CSS
Build a custom SUI theme that does not have the active style on focused dropdowns
Set tabIndex='-1' to prevent focus altogether.


Build fails on MacOS 10.13.6 with clang error: use of undeclared identifier 'IUCLC'

Thanks for this excellent Nim package!
Unfortunately the latest version v1.1.3 (and master 17fbff9) fails to build on MacOS 10.13.6. Here's the full clang error:
/Users/martin/.cache/nim/serial_d/@mserial@sserialport.nim.c:1136:111: error: use of undeclared identifier 'IUCLC'
                settings.c_iflag = (NU32)(settings.c_iflag & (NU32)((NU32) ~((NU32)((NU32)((NU32)(INLCR | IGNCR) | ICRNL) | IUCLC))));

I read up on the meaning of IUCLC here: http://man7.org/linux/man-pages/man3/termios.3.html and noted that the man page states that

IUCLC  (not in POSIX) Map uppercase characters to lowercase on input.'

So should we remove it from the serialport_posix.nim file?
Changing line 599 to remove IUCLC fixes the error.

Yes, that seems like a good solution to me, thanks.


improve quality of life when debugging invalid types

A headscratcher that came up while debugging a custom function. "invalid type: int64" should hopefully be a bit more clear than "invalid value: 3"
The panic in typeErrorPreview() was changed to an error string to avoid bizarre panic-while-panicking problems that can occur when calling panic(err), as panic would panic while trying to print the error.

Looks ok. Can you squash?


Adding subsections to WFC3 side panel

Is there an easy way for our front-end site to render a side panel for subsections of WFC3 notebooks like for the Kepler notebooks in the MAST notebooks repo? Under mast_notebooks/notebooks/Kepler, there using a leading prefix (e.g. lightkurve_) and have supplementary Markdown READMEs (e.g. lightkurve.md). If I submit a PR reorganizing our notebooks like that, will our website reorganize accordingly? @mackjenn brought it up and I agree that it could be helpful for users.

Sounds good, I'll work on that early next week.


Use MRU reuse order to evict idle connections, #166

Reactor pool is using LRU reuse by default. That means that all connections
in the pool are touched and never become idle.
This changes to MRU order.

Refs #166

Thank you for your contribution. That's merged and backported now.


[DCOS-45987] Always publish x86-64 compatible builds for CLI

we added GOARCH as 386 when we first added tools/build_go_exe.sh in Jan 2017. Considering that is relatively recent, i am going to assume no one has faced a problem with using 386 arch builds in 64 bit systems so far. Recently, a customer was using a Ubuntu in windows subsystem and they were not able to execute the binary (DCOS-45987). This is the error one gets when tried to execute the 386 binary in a ubuntu running in 64-bit Windows :
<filename>: cannot execute binary file: Exec format error.

We have two standards that we can comply with:

Our universe spec says the CLI binaries have to be x86-64 compatible (See universe repo spec and hw resource.json#L31).
DC/OS CLI uses amd64 as the value of GOARCH (See Makefile - It uses the docker image which inherits from FROM golang:1.11.0 and it has GOARCH defaulted to amd64 )
Without going in the entire argument of 386 vs x86-64, currently there is no supported / documented case of dcos-commons CLI being used as a standalone CLI for managing frameworks. So we can just say, whenever core cli works, dcos-commons CLI works too.
If we decide to support other architectures, we need to make changes to CLI, cosmos etc.. and that requires a bigger discussion.

This lgtm, but I think we should get the review from @bamarni in case this has any unintended behavior

cc/ @pires @bmcstdio

@bamarni @ArmandGrillet can someone from CLI team advise on this.
I have tested this is macOS, windows, and ubuntu in windows subsystem. See COPS-3771 for more details.

Thanks for the reviews everyone!


Part 1 issues

Remove 'create datasets' from Pre-requisite as it's done in Part 0 and part 0 is a pre-requisite already.

fixed


Added a new folder and included basic info

looks great, thanks a lot, Yasmin! I'll add your email address, as we've included that with everybody so far.


Do not falsily classify MOVED responses in logs as errors

Fixes https://github.com/snc/SncRedisBundle/issues/466

Thanks @ostrolucky


Use #cheap-module-eval-source-map for development

The build speed of cheap-module-eval-source-map is faster than just eval-source-map, and it works very well in most scenarios.
Thus I'd recommend to use cheap-module-eval-source-map for development.
webpack docs: https://webpack.github.io/docs/configuration.html#devtool

Seams to work as expect on my setups :)

I personally use #source-map. eval-source-map is fast but I found it cannot debug JS in *.vue via Chrome DevTools.

I agree with @myst729, I use only #source-map, because it allows me to debug in Firefox.
Chrome seems working well with both eval-source-map and cheap-module-eval-source-map.
@yyx990803 could we imagine that in the cli there is a question to ask the user which strategy he wants to use ?

@mdartic
Well, I don't think it's a good idea. The interactive wizard should focus the high level decisions. Let the detailed configurations stay in the files for manual adjustment. Otherwise the wizard will inevitably turn into a pain.

Yep, I understand.

Please keep the following comments：cheap-module-eval-source-map is faster for development, but chrome doesn't stop at breakpoints.


D365 RDL support

Hi,
Does it support D365 SSRS reports?

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

ID: 0feb8663-445d-8536-37ae-068672c7a5b9
Version Independent ID: 4818af9e-c69b-0fbe-a106-0d1d711b9f0d
Content: Publish a paginated report to the Power BI service - Power BI
Content Source: powerbi-docs/paginated-reports/paginated-reports-save-to-power-bi-service.md
Service: powerbi
Sub-service: report-builder
GitHub Login: @maggiesMSFT
Microsoft Alias: maggies

Thanks for your comment, @baibhav-82. This issue has been assigned to the doc author for review.

Hi, @baibhav-82 -- thanks for asking! No, it doesn't support D365 SSRS reports.

Thanks for the info


Sp_screen

Add a cartoon img for the Splash img

Hi @Maan-Sharma  ,
Thank you for your contribution to the project. I appreciate your effort in creating a splash screen for our app. However, I have some specific feedback that I believe will help improve the overall user experience and align the splash screen with our app's branding and goals.

Animation: A splash screen is the first thing users see when they launch the app, so it should grab their attention. I would recommend adding a subtle and visually pleasing animation to the splash screen. This could be a fade-in/fade-out effect, a gentle transition, or any animation that suits our app's style.

Color Palette: Our app's design emphasizes vibrant and colorful elements. Please incorporate our app's color palette into the splash screen to make it more visually appealing and consistent with our brand.

App Name: Displaying the app's name for a brief period (around 2 seconds) is a great idea. However, let's make sure the font, size, and placement of the app name are in line with our app's overall design guidelines.

I encourage you to take this feedback constructively and consider making the necessary enhancements to the splash screen. Once you've addressed these points and have an updated version to share, please feel free to open a new pull request. Your continued contributions are valued, and I'm confident that with these improvements, we can create a more compelling splash screen for our app.
Thank you for your dedication to our project.
Best regards,
@ashut0sh75
P.S You can refer to https://www.justinmind.com/blog/splash-screen-designs/  for ideas.

Thanks @ashut0sh75


"workbench.list.keyboardNavigation": "simple" breaks key chords with key

Issue Type: Bug
Setting workbench.list.keyboardNavigation to "simple" is ideal for me. However, this setting value breaks shortcuts like CTRL+K W in explorer area. I expect it to behave the same as with default setting value (highlight).
Steps to reproduce:

Set workbench.list.keyboardNavigation to "simple"
Try CTRL+K W with focus in explorer area and tabs opened

Actual result: nothing happened
Expected: tabs are closed
I actually use this shortcut to quickly collapse folders in explorer, I can't use modifiers since they're bound to other actions.
VS Code version: Code - Insiders 1.62.0-insider (ff1e16eebb93af79fd6d7af1356c4003a120c563, 2021-10-29T05:16:23.014Z)
OS version: Windows_NT x64 10.0.19043
Restricted Mode: No

System Info

Item
Value

CPUs
AMD Ryzen 7 5800H with Radeon Graphics          (16 x 3194)

GPU Status
2d_canvas: enabledgpu_compositing: enabledmultiple_raster_threads: enabled_onoop_rasterization: enabledopengl: enabled_onrasterization: enabledskia_renderer: enabled_onvideo_decode: enabledvulkan: disabled_offwebgl: enabledwebgl2: enabled

Load (avg)
undefined

Memory (System)
15.41GB (3.02GB free)

Process Argv
--crash-reporter-id e4dc281c-d5c0-4d48-9fbf-d0deab0c2568

Screen Reader
no

VM
0%

Extensions (3)

Extension
Author (truncated)
Version

vscode-eslint
dba
2.2.2

jupyter-renderers
ms-
1.0.3

(1 theme extensions excluded)

A/B Experiments
vsliv695:30137379
vsins829:30139715
vsliv368:30146709
vsreu685:30147344
python383:30185418
vspor879:30202332
vspor708:30202333
vspor363:30204092
vstes627:30244334
pythontb:30258533
pythonptprofiler:30281269
vsdfh931cf:30280410
vshan820:30294714
pythondataviewer:30285072
pythonvsuse255:30319630
vscod805:30301674
pythonvspyt200:30323110
vsccppwt:30382699
bridge0708:30335490
pygetstartedt2:30353727
bridge0723:30353136
pythonrunftest32:30365365
pythonf5test824:30361779
javagetstartedt:30350119
pythonvspyt187:30365360
pydsgst2:30361790
vsaa593cf:30376535

Just remembered there is builtin keybinding that should work in explorer, so I simplified the steps!


Feature Request: Logging Gifts

Log gifts - stores gifts in a separate text file for easy refunds
Currently gifts aren’t tracked for long periods of time as they are only kept in screenshots, this could be improved by writing to a text file for how much the value of the trade made. This would make refunds easier if someone accidentally sends a gift.
This is part of a larger wishlist. Feel free to add more suggestions in the discord #suggestions channel or in the comments or correct me if this is incorrect :)

I've made it so that you need to include the text "gift" or "donate" in the trade message for the bot to accept it: https://github.com/Nicklason/tf2-automatic/blob/v2/app/handler/trades.js#L564


Create contribution.md

Closing Issue/Referencing Issue
issue reference (#)
Changes Made In Pull Request

Please merge


Change stroke and fill texts

Hey, awesome lib, congrats!
I was wondering if it's possible to change the stroke and fill texts like with the other buttons. I couldn't find a property for that following the patter of the others.

@Peshou I see here and here that these texts are kind of parametrized already. It would be just a matter of adding them to CanvasWhiteboardOptions.
Would you mind if i submitted a PR for this?

PR usable in v4.0.2


"tags" sort order actually sorts reverse alphabetically by first tag, not by tag existence

When including "tags" as a sort key in SimplenoteSortOrder, instead of strictly going by whether or not tags exist (as the documentation says it will), it actually seems to sort in a inverse alphabetical order keyed on the first tag listed ('z' through 'a' followed by 'Z' through 'A'). This can lead to unexpected behavior when changing SimplenoteSortOrder.
If one was going strictly by "tag existence", then the expected behavior of SimplenoteSortOrder="pinned,tags,modifydate" would have notes listed in this order:

pinned and tagged by modifydate
pinned and untagged by modifydate
unpinned and tagged by modifydate
unpinned and untagged by modifydate

Instead, what one gets is:

pinned by inverse first tag name then by modifydate
unpinned by inverse first tag name then by modifydate
unpinned and untagged by modifydate

If this is intended behavior, at the least the documentation ought to be updated. Personally, tho, i'd prefer this functionality do what the docs say. ;)

Interesting, not read through this enough yet, but I thought it reminding me of something: https://github.com/mrtazz/simplenote.vim/issues/95

And less than a year later!


CI updates and tidying

Remove some debug
Bump to latest linuxkit binary (fixes #4)
Moved a little bit of .circleci/config.yml to Makefile
Simplified some commands and refactored .circleci/config.yml to avoid repetition.
Dropped moby tool, can use linuxkit build now.

Yeah, it wasn't possible, force pushed without those nice cleanups.
Also updated to an even newer linuxkit and consequently dropped moby.

I made a feature request for being able to refactor like I wanted.


distritubedgen run certs parameter is confusing

I was thinking that these certs would be TLS certs. But they're actually these things.
Would be nice if we had a better name for ^^ in the CLI. Not urgent ... Naming is hard ... just making note while this is fresh in my mind.

@jkitman Do you think this distributedgen tool will just be removed with the new config API?

Yep, the connection strings will be going away as soon as we have a replacement UI.

Closing


ESP

http://i.imgur.com/3infHOR.png they resize weirdly also if you deselect glow on dropped items and there were already dropped items with glow they will still have glow on them

I also realised if dropped items with glow won't take the glow away if you turn off glow it will only apply newly dropped items

The boxes bug depends on that, the box size and pisition is based on hitbox location, but the hitboxes aren't readed well from some distance and angle, so this bug happens (i think). Let @MarkHC look deeper into it and I think he will repair it :)

I've heard there are some fixes for it and theres a way to make it so the box doesnt change size depending on your viewangles

The glow doesn't deactivate properly & esp resizes weirdly


Matching number of samples with pixel width in SignalPlot

Hello,
I am going to use SignalPlot (ScottPlot 4.1) to display measurement preview data in real time. There will be only thousands of points, but the underlying hardware is very weak, so I am thinking about various methods of optimization. My question is:
Will I receive any (significant) performance benefit when I make the underlying data array as long as the chart pixel width, so that the chart could map the x-axis values 1:1 to the pixels?
Thank you in advance!
Klasyc

Not that I would anticipate, it's going to do basically the same math as it would anyways. And I think the coordinate-space to pixel-space conversion is going to be basically irrelevant compared to the actual drawing code. Of course the best advice is to measure, since performance can be very context-dependent.
I think if your hardware is a remotely modern PC it should be able to handle signalplots with thousands of points. It's possible that once you get close to a million you will have difficulty maintaining 60fps but that normally only matters if you have interactive plots.
If you do need end up running into performance troubles you might want to look at SignalConst. It requires more memory and that your data doesn't change very often (you have to manually call Update to change the data) but it has much better performance.


Fix #2 data inconsistencies

Closes #2
Important steps:

[ ] Arbitrary Text could be restricted with QuickCheck's PrintableString.
[ ] Our data classes need Ord instances to have them deeply sorted for data comparisons
[ ] Some testing magic is neccessary to have unique Persons, unique Tasks and valid assignees in test data, otherwise the Ord instances might not do the right thing™.

Useful other changes:

[ ] Move data generators to LiBro.TestUtil.

The commit "Add complete dataset storage/loadage" is on main and doesn't belong to this PR.


Bluetooth: Mesh: Use dedicated thread to store mesh settings

This PR solves several issues:

it solves an issue where the system workqueue can be blocked for significant time while the stack stores its configuration, which makes the device non-responsive until the storing is finished.
it solves an issue where models that need to store model's data too frequently could wear out flash quickly.
it solves an issue where models can block the BT RX thread or the system workqueue for significant time when large amount of data should be stored in the message opcode handler.

These issues are solved by adding the following features to the stack:

adding a new thread and enabling it by default to process the settings store in a separate thread thus unblocking the system workqueue from processing other work items while the storing thread waits for the controller to allocate time to perform flash operations (write or erase).
adding an API that allows models to use the stack's work item to postpone storing of the model's data and use the dedicated thread to not block the BT RX thread or the system workqueue.

The complete description of the issues is described in the commits' messages.

There is a slight gap from what I thought, the current work has not been cleaned up completely, such as
bt_mesh_net_iv_update  --> bt_mesh_rpl_reset  --> clear_rpl.
node_reset_pending_handler --> bt_mesh_reset  --> bt_mesh_settings_store_pending.

There is a slight gap from what I thought, the current work has not been cleaned up completely, such as
bt_mesh_net_iv_update --> bt_mesh_rpl_reset --> clear_rpl.

True, but can be solved separately.

node_reset_pending_handler --> bt_mesh_reset --> bt_mesh_settings_store_pending.

Reset is not a concern here. The concern is to make the device responsive when it stores configuration. When the node is reset, it won't send or relay anything.

app_key_add --> bt_mesh_app_key_add --> update_app_key_settings

Only if the amount of changes in appkeys bigger than the app_keys_update array. Same for net keys and cdb. This is a corner case which probability is significantly low.

It seems that there are still many storage operations directly carried out in BT RX, which clearly do not match the title of your PR

Right, I can rephrase that part in the documentation I added. But in general the said is truth. Most of the configuration is done in a separate work. There are more places that needs to be fixed and this will be done separately.

https://github.com/zephyrproject-rtos/zephyr/blob/main/subsys/bluetooth/host/Kconfig#L131 In the previous scenario, both BT RX and Sysworkq may store Settings, and both have a considerable increase in Stack Size. If we put the storage operation in a separate task, should we also consider reducing BT RX and sysworkq stack size?

Not necessarily. BT RX and system workqueue are still used to for processing other mesh code. They are also used to process opcodes handlers (BT RX when a message is received over the air and system workqueue when the message is received via loopback) that go to the application code. Also, from what I saw, the stack size after provisioning is bigger than needed for the settings thread.

Im curious. I can see that processing all settings related work in a separate queue will prevent starving other tasks in the system workqueue if there are multiple settings work items present in the system workqueue. But will it also prevent starvation in the case where a single settings work item is associated with huge delays, E.G. will the settings work queue yield while waiting for longer write/erase operations during handling of a settings work item, allowing the CPU to process items in the system workqueue simutaniously?

Im curious. I can see that processing all settings related work in a separate queue will prevent starving other tasks in the system workqueue if there are multiple settings work items present in the system workqueue. But will it also prevent starvation in the case where a single settings work item is associated with huge delays, E.G. will the settings work queue yield while waiting for longer write/erase operations during handling of a settings work item, allowing the CPU to process items in the system workqueue simutaniously?

To clarify, there is only one settings work item regardless of amount of data that needs to be stored. Once this settings work is submitted, the mesh stack will go through all pending data that needs to be stored (see store_pending function in mesh/settings.c).
In short, yes, it is the reason of doing this. If the synchronization between radio and the flash driver is enabled, which is by default (see CONFIG_SOC_FLASH_NRF_RADIO_SYNC_TICKER for ZLL and CONFIG_SOC_FLASH_NRF_RADIO_SYNC_MPSL for SDC), the flash driver requests the controller for a chunk of time during which it can perform a flash operation. These chunks are fixed (https://github.com/zephyrproject-rtos/zephyr/blob/7b8170dd278ed40913d5df0944f34d81975ae8f0/drivers/flash/soc_flash_nrf.c#L40-L47) regardless of the amount of data that needs to be stored (or erased). From this point, the context (thread) that triggered the flash operation will sleep (https://github.com/zephyrproject-rtos/zephyr/blob/7b8170dd278ed40913d5df0944f34d81975ae8f0/subsys/bluetooth/controller/flash/soc_flash_nrf_ticker.c#L225) until all passed data is stored or all required flash pages are erased (unless some other failure happened). The chunks of time are not provided immediately. Until a chunk of time is provided, the rescheduling happens and wakes up other threads (including cooperative). When partial erase (CONFIG_SOC_FLASH_NRF_PARTIAL_ERASE) is enabled, there will be "gaps" between each erase cycle, which can be "occupied" by other threads.
Without this change, the rescheduling were still happening, but since the settings work item was submitted to the system workqueue, the stack operation was blocked because everything (except incoming messages) in stack works on the system workqueue.

LGTM just minor issue

bt_mesh_net_iv_update --> bt_mesh_rpl_reset --> clear_rpl.

Fix is here: https://github.com/zephyrproject-rtos/zephyr/pull/57317


kubevirt device-plugin "Failed to read from '/sys/bus/pci/devices"

What happened:
provision VM with DP ( To expose PCI  device ) failed with the following error:
BTW, virt console works
{"component":"virt-launcher","level":"warning","msg":"Failed to read from '/sys/bus/pci/devices/0000:b1:00.0/config' : No such file or directory","pos":"virPCIDeviceRead:345","subcomponent":"libvirt","thread":"52","timestamp":"2020-11-17T09:56:20.853000Z"}
{"component":"virt-launcher","level":"warning","msg":"Failed to read from '/sys/bus/pci/devices/0000:b1:00.0/config' : No such file or directory","pos":"virPCIDeviceRead:345","subcomponent":"libvirt","thread":"52","timestamp":"2020-11-17T09:56:20.853000Z"}
{"component":"virt-launcher","level":"warning","msg":"Failed to read from '/sys/bus/pci/devices/0000:b1:00.0/config' : No such file or directory","pos":"virPCIDeviceRead:345","subcomponent":"libvirt","thread":"52","timestamp":"2020-11-17T09:56:20.853000Z"}
{"component":"virt-launcher","level":"warning","msg":"Failed to read from '/sys/bus/pci/devices/0000:b1:00.0/config' : No such file or directory","pos":"virPCIDeviceRead:345","subcomponent":"libvirt","thread":"52","timestamp":"2020-11-17T09:56:20.853000Z"}
{"component":"virt-launcher","level":"warning","msg":"Failed to read from '/sys/bus/pci/devices/0000:b1:00.0/config' : No such file or directory","pos":"virPCIDeviceRead:345","subcomponent":"libvirt","thread":"52","timestamp":"2020-11-17T09:56:20.853000Z"}
{"component":"virt-launcher","level":"warning","msg":"Failed to read from '/sys/bus/pci/devices/0000:b1:00.0/config' : No such file or directory","pos":"virPCIDeviceRead:345","subcomponent":"libvirt","thread":"52","timestamp":"2020-11-17T09:56:20.853000Z"}
{"component":"virt-launcher","kind":"","level":"info","msg":"Domain defined.","name":"vm1","namespace":"default","pos":"manager.go:1269","timestamp":"2020-11-17T09:56:20.859659Z","uid":"c585a070-73e8-4f41-b364-7c976eba8aa0"}
{"component":"virt-launcher","level":"info","msg":"DomainLifecycle event 0 with reason 0 received","pos":"client.go:358","timestamp":"2020-11-17T09:56:20.859765Z"}
{"component":"virt-launcher","level":"info","msg":"kubevirt domain status: Shutoff(5):Unknown(0)","pos":"client.go:241","timestamp":"2020-11-17T09:56:20.861421Z"}
{"component":"virt-launcher","level":"info","msg":"Successfully connected to domain notify socket at /var/run/kubevirt/domain-notify-pipe.sock","pos":"client.go:136","timestamp":"2020-11-17T09:56:20.862266Z"}
{"component":"virt-launcher","level":"info","msg":"Detected domain with UUID 133bf63e-9459-5126-9b21-b56e9b3d17b3","pos":"virt-launcher.go:217","timestamp":"2020-11-17T09:56:20.864060Z"}
{"component":"virt-launcher","level":"info","msg":"Monitoring loop: rate 1s start timeout 5m0s","pos":"monitor.go:164","timestamp":"2020-11-17T09:56:20.864094Z"}
{"component":"virt-launcher","level":"info","msg":"Domain name event: default_vm1","pos":"client.go:334","timestamp":"2020-11-17T09:56:20.864801Z"}
{"component":"virt-launcher","level":"info","msg":"generated nocloud iso file /var/run/kubevirt-ephemeral-disks/cloud-init-data/default/vm1/noCloud.iso","pos":"cloud-init.go:499","timestamp":"2020-11-17T09:56:20.865012Z"}
{"component":"virt-launcher","level":"error","msg":"At least one cgroup controller is required: No such device or address","pos":"virCgroupDetect:416","subcomponent":"libvirt","thread":"50","timestamp":"2020-11-17T09:56:20.876000Z"}
{"component":"virt-launcher","level":"info","msg":"2020-11-17 09:56:20.870+0000: starting up libvirt version: 6.0.0, package: 16.fc31 (Unknown, 2020-04-07-15:55:55, ), qemu version: 4.2.0qemu-kvm-4.2.0-27.fc31, kernel: 3.10.0-1062.9.1.el7.x86_64, hostname: vm1","subcomponent":"qemu","timestamp":"2020-11-17T09:56:20.888135Z"}

What you expected to happen:
one vm up and running and 1 PCI Device as requested.
**How to reproduce it (as minimally and precisely as possible)**:
apiVersion: kubevirt.io/v1alpha3
kind: VirtualMachine
metadata:
  creationTimestamp: 2018-07-04T15:03:08Z
  generation: 1
  labels:
    kubevirt.io/os: linux
  name: vm1
spec:
  running: true
  template:
    metadata:
      creationTimestamp: null
      labels:
        kubevirt.io/domain: vm1
    spec:
      domain:
        cpu:
          cores: 8
        devices:
          disks:
          - disk:
              bus: virtio
            name: disk0
          - cdrom:
              bus: sata
              readonly: true
            name: cloudinitdisk
          gpus:
          - deviceName: nvidia.com/goya
            name: gpu1
          rng: {}
        machine:
          type: q35
        resources:
          requests:
            memory: 15Gi
      volumes:
      - name: disk0
        persistentVolumeClaim:
          claimName: fedora
      - cloudInitNoCloud:
          userData: |
            #cloud-config
            hostname: vm1
            chpasswd:
              list: |
                cloud-user:rhel
                root:rheladmin
              expire: False
            ssh_pwauth: True
            disable_root: false
            ssh_authorized_keys:
            - ssh-rsa .....
        name: cloudinitdisk

Anything else we need to know?:
Environment:

KubeVirt version (use virtctl version):
Kubernetes version (use kubectl version):
VM or VMI specifications:
Cloud provider or hardware configuration:
OS (e.g. from /etc/os-release):
Kernel (e.g. uname -a):
Install tools:
Others:

@vladikr

@talcoh2x is this the end of the log file? Perhaps there is something else that happened after this?
I'm a bit confused, as it seems that the VM is running, am I correct?
In that case, I'm wondering what's the issues you are seeing? Is it that you don't see the assigned device?
"Failed to read from '/sys/bus/pci/devices/0000:b1:00.0/config' : No such file or directory","pos":"virPCIDeviceRead:345" shouldn't be an issue, AFAIR. This is just one of the implications of our constraint environment, but shouldn't affect the device assignment.

Could you please post a kubectl describe of the VMI and the node the VMI is running on?


Add support for linode cloud-provider

/remove-lifecycle stale

This should be possible because of https://github.com/kubermatic/machine-controller/issues/450


All statements and queries are closed in finally statements

SQLiteCipher crashes/hangs in cases when you don't close prepared statements correctly.
In this commit, I'm moving all cursors close statements inside of finally block.
Also missing close statements are added.

Excellent - all these make common sense. This cleanup was overdue. Great work Sergei! Do you have any more PR coming?

This is all I have for now.
I pushed sqlite cipher to my forks branch. It's a very  small diff. Will do more cleanup later on.  Thank you for quick merge of changes!

@dryganets  Sergey - if it is a small diff maybe it would make sense to incorporate it somehow to this module...I would have no objections actually..can you suggest something?

Well,  the problem is not in the Dependency size,  but in the library size. If you don't need encryption you don't want to have an extra mb to your apk.
We need to make a plugin model for Android with default implementation using system library.

@dryganets Sergey - if it is a small diff maybe it would make sense to incorporate it somehow to this module...I would have no objections actually..can you suggest something?

Also see https://github.com/andpor/react-native-sqlite-storage/issues/40#issuecomment-282312755:

I would recommend keeping encryption separate. When publishing apps with encryption people would have to follow the guide at https://discuss.zetetic.net/t/export-requirements-for-applications-using-sqlcipher/47 and it may be even worse in places like France.

According to @brodybits arguments: can we leave this optional per #ifdef direction on objC-Side and something similar on android?
For those who need encryption they can activate it then easily and others don't have to ship one more MB with the app and aren't bothered by the export-requirements for apps using cipher

I have to think about this. @brodybits touches on import/export compliance which is quite important...


docs：Add biweekly report

Add biweekly report 2023.07.03-2023.07.16

@Qizeng-api7 , same typo is found in multiple blogs, please see https://github.com/apache/apisix-website/issues/1626 and update the blogs accordingly.

I will gradually fix the typos.


R linting

Towards #1342

Probably keep issue open until we can remove most ignores, and get down to a subset that are either stylistic choices we disagree with, or things that would be harder to fix. (and a low priority issue could be filed for followups in that case.) I don't trust my own judgement on R code: I'd suggest that we should actually try to be more stringent when linting R than with a language we use more confidently.
Right now I've split off the linting as a separate job, but I'm not committed to that -- It is nice to have everything run in parallel, rather than only seeing the first error if they are run serially -- but if the R code is not under active development this is extra CI work and extra noise in the UI.

(No substantive changes, but merge from main cleared earlier approval.)


F2 rename a function or class, should result changes in __all__

Actual
Change def <F2>pre</F2>(): to def post():
__all__ = ['pre']

def pre():
    pass

Error: Undefined variable name 'pre' in __all__

__all__ = ['pre']

def post():
    pass

Expected
Change def <F2>pre</F2>(): to def post():
__all__ = ['pre']

def pre():
    pass

__all__ = ['post']

def post():
    pass

@loynoir What does your language server setting? please let us know the value of python.languageServer.

@karthiknadig
"python.languageServer": "Jedi",

@karthiknadig
BTW, do you have any languageServer recommend? Thanks.

We currently only support Pylance and Jedi. Both take different approaches to providing various language features. Pylance is written in type script, Jedi is pure python project.

Since this is a Jedi issue, I recommend filing this on https://github.com/pappasam/jedi-language-server/issues.
@loynoir Pylance supports this type of rename.

@karthiknadig Thanks! Switched to Pylance, it works.


Uncaught Error: Can't squeeze axis 1 since its dim '2' is not 1

Getting this crash when launching https://tfjs-mobilenet-webcam.netlify.com/ on Galaxy S7, Android 8.0.
This has been fixed in this fork https://github.com/kaiaai/tfjs-mobilenet-webcam
"const webcamImage = tf.fromPixels(this.webcamElement);" now also works without needing to set up a canvas.
Invoking model.execute() with input: Tensor
webpack:///./node_modules/@tensorflow/tfjs-core/dist/util.js?:248 Uncaught Error: Can't squeeze axis 1 since its dim '2' is not 1
at Object.squeezeShape (webpack:///./node_modules/@tensorflow/tfjs-core/dist/util.js?:248)
at Object.ArrayOps.squeeze (webpack:///./node_modules/@tensorflow/tfjs-core/dist/ops/array_ops.js?:348)
at Object.exports.executeOp (webpack:///./node_modules/@tensorflow/tfjs-converter/dist/operations/executors/transformation_executor.js?:16)
at Object.executeOp (webpack:///./node_modules/@tensorflow/tfjs-converter/dist/operations/operation_executor.js?:43)
at eval (webpack:///./node_modules/@tensorflow/tfjs-converter/dist/executor/graph_executor.js?:139)
at Array.reduce ()
at eval (webpack:///./node_modules/@tensorflow/tfjs-converter/dist/executor/graph_executor.js?:137)
at Object.Tracking.tidy (webpack:///./node_modules/@tensorflow/tfjs-core/dist/tracking.js?:36)
at GraphExecutor.execute (webpack:///./node_modules/@tensorflow/tfjs-converter/dist/executor/graph_executor.js?:135)
at FrozenModel.execute (webpack:///./node_modules/@tensorflow/tfjs-converter/dist/executor/frozen_model.js?:161)

Thank you for fixing the issue!  It would be great if you can send me a pull request.  I'd love to incorporate your fix!


Secor upgrade

@SanthoshVasabhaktula @maheshkumargangula Review the latest changes.

As this is not in a state to review, hence closing this pull request.


visitor for alternative formatting/validation

hi,
I propose to write an enchancement to this package that allows me to write tools such as a better formatter and validator to work with the ast nodes. I think a simple visitor pattern implementation will do.
func (node Select) Accept(v Visitor) { v.VisitSelect(node) }

If you argee with the feature and implementation then I will create a PR for it.

Sure. That would be more than welcome!

See https://github.com/emicklei/sqlparser/commit/7c029964dd0ca23db970d5940b2d7eda35f45899 for the initial setup.

Looks good. Looking forward to your PR.

@emicklei did you have a chance to create the PR? would love to see this feature too :-)

@matthewmueller current state is still work-in-progress. I soon realized that the language is very very rich and therefore had many many nodes to handle. So I started to wonder if the approach taken is the correct one. Maybe I should spent some time on a code generator instead that emits all the boilerplate.


Fixed #20488 -- Added copy and move methods to the storage API

implemented these methods in the default FileSystemStorage
fix issue with storage tests: each test from FileStorageTests was run twice (when inheriting from a TestCase class all test_ methods are ran in the subclass as well)

Hopefully we can update the note added in 931a340f1feca05b7a9f95efb9a3ba62b93b37f9 to use this new API rather than os.rename().

buildbot, add to whitelist.

So, why it's not merged? I also want to have copy and move methods, and it's still not in master.


planning

neurological data, binned time series (100ms bins, num spikes within each bin)
descriptors for each neuron - location of neuron, neuron id,animal id, stimulus, concentraition,
csv format
raw data, need to binning

Pipeline

data read
binning (bin length)
op
3.1. dimensionality reduction (clustering)
3.2. classification
3.3. ....?
sensitivity analyis to bin length

Software Features

Pipeline as a python script
testing
documentation
CI

If we are writing a Tool to do things with Time related data and would like to maintain the important element of silliness, I propose we call it a sonic-screwdriver


🎉 2.0.0

ℹ About this release

Version: 2.0.0
Type: major
Last Release: 1.0.1 (11/13/2022, 5:24:39 PM) [?]
Commits to merge: 27 [?]

Build System

Native ESM support (7b86a4f)

⚡ BREAKING CHANGES

Only Support for node.js ^12.20.0 || >=14.13.1

📦 Development Dependencies

Added c8 ^7.11.3
Added esm ^3.2.25
Update @qiwi/semantic-release-gh-pages-plugin from ^5.2.0 to ^5.2.3
Update @semantic-release/exec from ^6.0.2 to ^6.0.3
Update @types/mocha from ^9.0.0 to ^9.1.1
Update @types/node from ^16.11.10 to ^18.0.0
Update @typescript-eslint/eslint-plugin from ^5.4.0 to ^5.30.0
Update @typescript-eslint/parser from ^5.4.0 to ^5.30.0
Update eslint from ^8.3.0 to ^8.18.0
Update eslint-plugin-jsonc from ^2.0.0 to ^2.3.0
Update mocha from ^9.1.3 to ^10.0.0
Update mochawesome from ^7.0.1 to ^7.1.3
Update ts-node from ^10.4.0 to ^10.8.1
Update typedoc from ^0.22.10 to ^0.23.2
Update typescript from ^4.5.2 to ^4.7.4
Removed nyc

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

v2.0.0
GitHub release
v2.0.0

Your semantic-release bot :package::rocket:


[MM-59483] Remove legacy preload and custom login code

Summary
This PR removes code in the Desktop App that was left to support older versions of the Mattermost Server/Web App:

Removed the legacy preload listeners using window.postMessage, needed for server versions <v9.4
Removed the custom login code that allows the app to go out to another site and login with the app, needed for versions <v9.2.

What this does mean is that as of this change, Mattermost servers running versions under v9.4 will now have a reduced experience, and may or may not function at all. We will be dropping support for those server versions in the Desktop App officially as of v5.11.
This is being done to both reduce complication, improve security (in the case of custom logins) and potentially improve performance (in the case of the preload script changes)
Ticket Link
https://mattermost.atlassian.net/browse/MM-59843
Remove legacy code for older unsupported Mattermost servers

@yasserfaraazkhan We can test this whenever, but since we're removing support for older versions, we should double check that the versions we support are all working well :)
I ran E2E tests on my local machine and everything went okay - but a bit more thorough testing seems applicable here.


Game crashes ("invalid java runtime configuration")

when i try to lauch minecraft with bclib (1.3.0 and 1.3.1), the game shows me this error window. 1.2.5 works just fine but makes my server crashes when i try to start it.

Please provide your logs


docs: add svelte:element/document chapters

from old tutorial - also updates some existing content

Ok just copying over the whole thing turns out to be more cumbersome than surgically updating and moving the folders


ci: remove chart-version-bumper

Is this a new chart
No
What this PR does / why we need it:
Removes the homemade chart-bumper action. This should reduce overall noise from linters and security alerts picking up outdated nodejs libraries on the repo.
Renovate should take care of bumping the charts.
Special notes for your reviewer:
Checklist
[Place an '[x]' (no spaces) in all applicable fields. Please remove unrelated fields.]

[ ] Chart Version bumped
[ ] Variables are documented in the README.md
[ ] Title of the PR starts with chart name (e.g. [mychartname])

Could you remove this too ?


pyinfra does not handle SSH certificates

Describe the bug
Currently pyinfra doesn't handle OpenSSH Certificates. Paramiko does have support for them via load_certificate. I have been working on a patch or two for this as it is pretty easy to handle but does require some assumptions and loading of the public key. Do you think this would be better handled via an additional command line flag or by having it be the default behaviour to look for -cert.pub certificates of the given keys? I should note that OpenSSH defaults to searching for those when loading private keys.
I was a bit torn on whether to do this as a bug report or as a feature request.
To Reproduce
Generate OpenSSH certificate keys, set up a pki, and attempt to run pyinfra with the -cert.pub signed public keys and observe how they are not loaded.
Expected behavior
Load the certificates and use them when calling paramiko.

@terrorbyte this seems reasonable - do you know where OpenSSH looks for these? And is it part of the SSH config?
Should be relatively simple to implement assuming they have expected/known locations and/or explicit SSH config directives.

Yes I do, so the lookup logic for OpenSSH is to search for the public key in the same directory path as the loaded private key and it searches for -cert.pub and .pub [1]. There is the CertificateFile directive, but by default if that's not specified in the SSH config it should default to what I stated before. The exact excerpt is [2]:

If no certificates have been explicitly specified by the CertificateFile directive, ssh will also try to load certificate information from the filename obtained by appending -cert.pub to identity filenames.

I appreciate you being so responsive to these. Happy to test or give guidance if need be (or patches).
[1] - https://github.com/openssh/openssh-portable/blob/049297de975b92adcc2db77e3fb7046c0e3c695d/ssh-keygen.c#L2453
[2] - https://man.openbsd.org/ssh#i

I have now implemented this in https://github.com/Fizzadar/pyinfra/commit/deba79dd1af70a9e88a02c0eadf61f86c79f9c79 + https://github.com/Fizzadar/pyinfra/commit/7f811970abe16ab4242e216c311c19ded646ea29.

Now released in 0.16!


Division by 0

It has a crash after division by 0. Sorry, if it's my program fault, but anyway.

If you mean that an exception is being thrown, yes, that is intended. A division by zero has an undefined result, therefor throwing an exception is the best course of action for the library to treat that situation. You will have to catch and handle that exception in your code.

Thanks!

"Potential"? Not that I know of. However, you can always evaluate the expression and catch the resulting Exception and work from there. It depends on what exqctly you'd like to do, though.


Add: search and help commands

Let me know if you'd like me to handle the delete within search thing differently. I just wanted it to give users a grace period.
Did this out of necessity and can confirm that it works well.

Hi @yunginnanet thanks for your work.
Do we need search command while there has been a keys command already?
Or we can just add the delete option to keys command?

Coverage decreased (-6.4%) to 77.728% when pulling de7735df1fb28205c925766bc05d8b72044a7df9 on yunginnanet:master into 28b094ff21e7efdff177c1c138c9270dabbfb078 on Sora233:master.


data type problem.

Hi,
I'm using Adept in my code and I have this kind statement
const xdouble a, b;
xdouble lambda1;
lambda1 = 0.5*(std::max(fabs(lambda1),  a*b) - lambda1);

But I got this compiling error:
 no matching function for call to ‘max(adept::internal::UnaryOperation<double, adept::internal::Fabs, adept::Active<double> >, adept::internal::enable_if<true, adept::internal::BinaryOperation<double, adept::Active<double>, adept::internal::Multiply, adept::Active<double> > >::type’
    lambda1 = 0.5*(std::max(fabs(lambda1), sat_Vn*rhoA) - lambda1);

Could you please help me fix this problem?
Thanks,
Ge

Guess you figured out that you should replace std::max by max because Adept overloads this function and it is not in the std namespace.  (You may need to replace fabs by abs, I can't remember.)

Yes, I used std::max<adouble>() instead.


Store which doesn't store: Bus / Pub Sub

Describe the problem
Due to the structure of the application I'm working on it's useful for components to not be aware of each other but to announce state changes, while using an ordinary store is fine the message stored could old, and I don't want to have to require sending a "null" message out.
Describe the proposed solution
It would be useful if there was a type of store which didn't "store" the message, similar to (currently unverified/tested)
/**
 * Create a `Bus` store, a writeable store that doesn't store the value (and can't update), only announces by subscription.
 */
function bus<T>(queue = false, start : StartStopNotifier<T> = (()=>undefined)) : Omit<Writable<T>, "update"> {
    let stop : (() => void) | null | undefined
    const subscribers = new Set<[Subscriber<unknown>, Invalidator<T>]>();
    function set(new_value : T): void {
        if (stop) { // store is ready
            // eslint-disable-next-line @typescript-eslint/naming-convention
            const run_queue = !subscriber_queue.length;
            for (const subscriber of subscribers) {
                subscriber[1]();
                subscriber_queue.push([subscriber[0], new_value]);
            }
            if (run_queue) {
                for (let i = 0; i < subscriber_queue.length; i += 2) {
                    subscriber_queue[i][0](subscriber_queue[i + 1]);
                }
                subscriber_queue.length = 0;
            } else if (!queue) {
                subscriber_queue = []
            }
        }
    }
    function subscribe(run : Subscriber<T>, invalidate : Invalidator<T> = () => undefined) : Unsubscriber {
        const subscriber: [Subscriber<unknown>, Invalidator<T>] = [run as Subscriber<unknown>, invalidate];
        subscribers.add(subscriber);
        if (subscribers.size === 1) {
            stop = start(set) ||( () => undefined);
        }
        run(undefined as T);
        return () => {
            subscribers.delete(subscriber);
            if (subscribers.size === 0 && stop) {
                stop();
                stop = null;
            }
        };
    }
    return { set, subscribe };
}

This would mean that upon subscription we get "undefined" however any "set" means that all current subscription (or the one future subscript if queue is set to true) but not later subscribers -- get the new value, however only once and only at that moment.
Alternatives considered
I considered using setting it to null before hand or adding a dependency, however this is the preferred solution. If it's not accepted there are alternatives that I could use. I just feel that this is an appopriate addition.
Importance
would make my life easier
Additional Information
No response

/**
 * Create a `Bus` store, a writeable store that doesn't store the value (and can't update), only announces by subscription.
 */
function bus<T>(queue = false, start : StartStopNotifier<T> = (()=>undefined)) : Omit<Writable<T>, "update"> {
    let stop : (() => void) | null | undefined
    const subscribers = new Set<[Subscriber<unknown>, Invalidator<T>]>();
    function set(new_value : T): void {
        if (stop) { // store is ready
            // eslint-disable-next-line @typescript-eslint/naming-convention
            const run_queue = !subscriber_queue.length;
            for (const subscriber of subscribers) {
                subscriber[1]();
                subscriber_queue.push([subscriber[0], new_value]);
            }
            if (run_queue) {
                for (let i = 0; i < subscriber_queue.length; i += 2) {
                    subscriber_queue[i][0](subscriber_queue[i][1]);
                }
                subscriber_queue.length = 0;
            } else if (!queue) {
                subscriber_queue = []
            }
        }
    }
    function subscribe(run : Subscriber<T>, invalidate : Invalidator<T> = () => undefined) : Unsubscriber {
        const subscriber: [Subscriber<unknown>, Invalidator<T>] = [run as Subscriber<unknown>, invalidate];
        subscribers.add(subscriber);
        if (subscribers.size === 1) {
            stop = start(set) ||( () => undefined);
        }
        run(undefined as T);
        return () => {
            subscribers.delete(subscriber);
            if (subscribers.size === 0 && stop) {
                stop();
                stop = null;
            }
        };
    }
    return { set, subscribe };
}

The beauty of the store contract is that it's very extensible, you can create your own or choose from a wide range of existing store packages on npm - maybe some even do the desires pub/sub. But we're not going to add something like this to Svelte core, which we want to keep lean, therefore closing.


delegating to superclass default constructor

[@gavinking] It would be nice to let you write:
 new New(Float x) extends super(x) {}

To delegate to the default constructor of the superclass.
[Migrated from ceylon/ceylon-spec#1253]

Not doing this.


Closure::__set_state()

In my module.config.php i add a entry to the service_manager for a factory, lambda style:
    'service_manager' => array(
        'factories' => array(
            'Thun\\Model\\V2\\Option\\Option' => function(){
                return (new \Thun\Model\V2\Option\Factory())->create();
            },
        ),

Than i make a change in the Admin UI, the value for the factory entry is rewritten to:
    'service_manager' => array(
        'factories' => array(
            'Thun\\Model\\V2\\Option\\Option' => Closure::__set_state(array(
            )),
        ),

Now i am getting the error
Fatal error: Call to undefined method Closure::__set_state()

Am i defining my factory in a wrong place?

Related? https://github.com/zfcampus/zf-apigility/issues/95

Yes you are.
Because of the way zf-configuration handle parameters files with key-values in arrays, you shouldn't put any closure in your API module config file.
Instead, declare as a value the FQCN of a factory class that implements FactoryInterface and put the logic of your factory inside createService.
Julien.

Le 4 juin 2015 à 06:42, Michal-sk<EMAIL_ADDRESS>a écrit :
In my module.config.php i add a entry to the service_manager for a factory, lambda style:
'service_manager' => array(
    'factories' => array(
        'Thun\\Model\\V2\\Option\\Option' => function(){
            return (new \Thun\Model\V2\Option\Factory())->create();
        },
    ),

Than i make a change in the Admin UI, the value for the factory entry is rewritten to:
'service_manager' => array(
    'factories' => array(
        'Thun\\Model\\V2\\Option\\Option' => Closure::__set_state(array(
        )),
    ),

Now i am getting the error
Fatal error: Call to undefined method Closure::__set_state()
Am i defining my factory in a wrong place?
—
Reply to this email directly or view it on GitHub.

Ok. I followed what was described on: http://framework.zend.com/manual/current/en/modules/zend.service-manager.intro.html#service-factories


Ternary operator

Implements a ternary operator. A little like np.where. Extremely useful for replacing values in an SArray.
Returns an SArray with the same values as g with values above 10
clipped to 10

>>> g = SArray([6,7,8,9,10,11,12,13])
>>> SArray.where(g > 10, 10, g)
dtype: int
Rows: 8
[6, 7, 8, 9, 10, 10, 10, 10]

Returns an SArray with the same values as g with values below 10
clipped to 10

>>> SArray.where(g > 10, g, 10)
dtype: int
Rows: 8
[10, 10, 10, 10, 10, 11, 12, 13]

Returns an SArray with the same values of g with all values == 1
replaced by None

>>> g = SArray([1,2,3,4,1,2,3,4])
>>> SArray.where(g == 1, None, g)
dtype: int
Rows: 8
[None, 2, 3, 4, None, 2, 3, 4]

Also fixes a bunch of oddities with SArray.from_const.
Previously,
gl.SArray.from_const([1], 10, list)

will produce an SArray of
[[1.0],[1.0],[1.0],[1.0],[1.0]...]
converting each of the integers to a float.
Now it does the right thing.

@hershaw the ternary operator we discussed.

This is great! Simpler and more flexible than the numpy implementation.

@haijieg updated.

LGTM


calculator.js file updated with DRY code + functionality for add/subt…

…ract/multiply/devide - passing all tests

Delete me and write your Pull Request message here!

Hi Dan -
I seem to be really running into some issues when trying to make a pull request here - bit odd but figured Id ask for a bit of guidance -
Below are the setting that are failing could you please give me some advice on how / what should be changed?
Thanks in advance,
Walter

Hey, you found a bug @wallythewebdev! You're the first user who has authored commits on a different user's repo.
Right now, the guard that closes these PRs checks whether the logged in user making the pull request (@wallythewebdev) is the same as the user in the base branch (@openSource-wallythewebdev).
Historically, this guard was put in place to prevent users making pull requests on behalf of other users.
One solution would be to open this pull request from your @openSource-wallythewebdev account, otherwise I can look into supporting multi-user PRs. What do you think?

HI Dan -
That's really cool to know I was the first person doing that and thank you for your reply! I was worried that I was making some silly mistake (which might still be the case).
I decided to section my work into different organizations on gitHub i.e
frontend-wallythewebdev
backend-wallythewebdev &
openSource-wallythewebdev
But it is me as the user with different organizations rather than a different account (unless git hub classes different organizations as different accounts).
I'd be happy to try and tweek my approach by your suggestion, there might not be a need to the work put into looking into supporting multi-user PRs (as I am the only person to experience the issue).

Ah, I didn't realize @openSource-wallythewebdev was an organization, I thought it was another user account you owned. You're definitely the first person to fork this repo into an organization. How interesting!
As for completing this exercise, the fastest thing would be to fork this repo into your personal account @wallythewebdev, and re-submit a PR from that repo. However, the conversion is the most important part of a PR, which you're getting experience with by having this conversation 😁
If you'd like, I can look into organization support, but I have to admit it's a rather unconventional setup for a single person to have. Can I ask why you chose to open multiple orgs for yourself?

Ok I can fork the project into my main account - and even more cool to note that I am the only person running it thought an organization. I chose this set up to make it a little easier for me to show case work to a potential employer, I figured that it would be a good way to organize my repos (pains of trying to land that first official developer job).
Could you expand a little on "the conversion is the most important part of a PR" I'm interested but might not have fully understood (thanks in advance)
It seems like I've taken a different approach than the norm so maybe it would be easier for me to just change my approach rather than you cater for the (probably less than) 1%.
Thanks again for the reply

I see. I think it's still a bit unconventional, but that's great if it works for you!
All I mean is that opening a pull request is starts a conversation with the repo owner about proposing your change. In addition to the code in your proposed change, the conversation between you and the repo owner (me, in this case), is an important part of the process.
You did a great job proposing your question, providing sufficient details when asked, and asking for clarification when necessary. It's been a pleasure having a conversation with you and I wish you the very best of luck in your web dev journey.

HI Dan,
Ah I see ok sorry must have misread that part about opening the convocation and yes totally agree.
Thank you for the kind words and help on the subject, have an amazing week ahead.
Wally