[SPARK-8899][SQL] remove duplicated equals method for Row

Merged build triggered.

Merged build started.

Test build #36800 has started for   PR 7291 at commit 2e784c0.

Test build #36800 has finished for   PR 7291 at commit 2e784c0.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Merged build triggered.

Merged build started.

Test build #36880 has started for   PR 7291 at commit c95fd23.

Test build #36880 has finished for   PR 7291 at commit c95fd23.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Merged build triggered.

Merged build started.

Test build #36927 has started for   PR 7291 at commit da875b3.

Test build #36927 has finished for   PR 7291 at commit da875b3.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Merged build triggered.

Merged build started.

Test build #37517 has started for   PR 7291 at commit 2de6180.

Test build #37517 has finished for   PR 7291 at commit 2de6180.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

cc @davies

Merged build triggered.

Merged build started.

Test build #37528 has started for   PR 7291 at commit a11addf.

Test build #37528 has finished for   PR 7291 at commit a11addf.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

LGTM, merging this into maser, thanks!


use "latest" dir for API docs in doc URLs on the web site

When we released Pinniped v0.30.0, we included generated code for Kubernetes 1.30. The release process updated this config file for our web site to say 1.30: https://github.com/vmware-tanzu/pinniped/blob/main/site/config.yaml#L11
Sadly, 1.30 in YAML means the decimal value 1.3, not the string "1.30". This broke many API doc links on our web site because they accidentally use 1.3 where they should use 1.30.
This PR changes all those links to use https://github.com/vmware-tanzu/pinniped/blob/main/generated/latest/README.adoc instead of interpolating the specific version number like https://github.com/vmware-tanzu/pinniped/blob/main/generated/1.30/README.adoc.
Release note:
NONE

Merging and bypassing CI since this is only a site/ change.


Ubuntu16.04+cuda8+cudnn5.1, meets error

INFO: Starting clean (this may take a while). Consider using --expunge_async if the clean takes more than several minutes.
.
ERROR: /home/ei/github/test/tensorflow/tensorflow/contrib/session_bundle/BUILD:237:1: no such target '//tensorflow/core:meta_graph_portable_proto': target 'meta_graph_portable_proto' not declared in package 'tensorflow/core' defined by /home/ei/github/test/tensorflow/tensorflow/core/BUILD and referenced by '//tensorflow/contrib/session_bundle:signature_lite'.
ERROR: /home/ei/github/test/tensorflow/tensorflow/core/BUILD:689:1: no such package 'base': BUILD file not found on package path and referenced by '//tensorflow/core:ios_tensorflow_test_lib'.
ERROR: Evaluation of query "deps((//... union @bazel_tools//tools/jdk:toolchain))" failed: errors were encountered while computing transitive closure.
Configuration finished

I'm trying to do as http://textminingonline.com/dive-into-tensorflow-part-iii-gtx-1080-ubuntu16-04-cuda8-0-cudnn5-0-tensorflow. when it comes to './configure', terminal show errors.
Who can help me with this issue

https://github.com/tensorflow/tensorflow/issues/4312
I got an answer here


Unclear ownership of the specification

From the site:
asyncapi: '1.0.0'
info:
  title: 'Sign up email example'
  version: '1.0.0'
baseTopic: 'hitch'
host: 'asyncapi.hitchhq.com'
schemes:
  - 'amqp'
  - 'mqtt'
topics:
  accounts.1.0.event.user.signup:
    subscribe:
      $ref: '#/components/messages/userSignedUp'
  email.1.0.event.email.sent:
    publish:
      $ref: '#/components/messages/emailSent'

I think this spec can be seen from two points of view:

this specification describes what topics are available in the broker hosted at asyncapi.hitchhq.com and anyone may freely use them. With this approach, a consumer of the UserService (a service consuming from a public topic and emitting into a topic only available in the company private network) may need to read the spec of public.asyncapi.hitchhq.com and also private.asyncapi.hitchhq.com.
this specification describes entry/exit points of a microservice and that microservice is the owner of the specification (and sole maintainer). This point of view is slightly different in that it states: "if you want to interact with me (userService) you may to use these infrastructure points". I think in this approach it would be good to include a host and schemes on each topic since a service may accept incoming commands via unencrypted channels (mqtt)  but only emit events via encrypted ones (mqtts).

I think in this approach it would be good to include a host and schemes on each topic since a service may accept incoming commands via unencrypted channels (mqtt) but only emit events via encrypted ones (mqtts).

That's a very interesting point. I think we can consider it for the next version. What do you think? How do you feel about contributing to it?
Thanks!

I just realised this is particularly necessary when a microservice emits events on a topic and has a endpoint implemented using websockets.
I'll think about that.

Also, I think before I didn't get your question totally right. The spec defines what the service (the computer program) does. So when you see subscribe it means the service will be subscribed and listening to this topic. It also means, consumers will need to publish to this topic in order to communicate with the service. So we could say the spec is seen "from the service perspective" and the service is the owner of that spec.
In other words, the spec defines what the API does and not what the API expects you (as a consumer) to do.
It should probably be clearer in the docs.

@fmvilas does that mean that if ServiceA publishes to topic A, and there are 10 consumers then all 10 consumers will have to specify that they subcribe to topic A and what are the contents of the message. That would have 11 copies of the same information.
If we look at the world pre-AsyncAPI and imagine 10 service doing HTTP requests to Service A, there's no need to specify on each of those 10 services that they will consume /service-a/endpoint3/:id.
I am missing something... :-(

does that mean that if ServiceA publishes to topic A, and there are 10 consumers then all 10 consumers will have to specify that they subcribe to topic A and what are the contents of the message. That would have 11 copies of the same information.

Yes, you'd have 11 copies of the same information. However, if you don't want to copy/paste it, you can always separate the message definition in a separate file/url and link them from all the places. And the definition will just remain in a single place. For instance:
$ref: "http://path-to-my-message-definition/message.yml"

If we look at the world pre-AsyncAPI and imagine 10 service doing HTTP requests to Service A, there's no need to specify on each of those 10 services that they will consume /service-a/endpoint3/:id.

There's no need because communication in HTTP APIs is always started by the client. You make a request and expect a response. For instance, with HTTP APIs, if ServiceA wants to request something to ServiceB, then ServiceA expects a response. If you want to know how the response will be, you would have to grab ServiceB definition from ServiceA to know about it. You will have exactly the same problem.

It obviously introduces coupling at message level, but it's because the message is shared by many services, and it's actually a dependency of many services. If you're using a message broker the only idea that comes to my mind is that these messages are defined in a "shared messages" project.
If another alternative comes to your mind, please don't hesitate to make a proposal :).

If another alternative comes to your mind, please don't hesitate to make a proposal :).

Sure! What is your preferred channels to discuss proposals? Should I go with a full PR directly?

I think we should use Github issues because it allows other people to participate too. You can also join the Slack channel: https://async-apis-slack.herokuapp.com/


[CL Incentives] Align accumulator abstractions between incentives and fees

Background
Fees and incentives currently share very similar patterns of logic that are implemented with different abstractions. This makes them more confusing to understand relative to each other and overall increases the surface area for bugs in our code.
Although this is likely not release-blocking, we should align them to use similar abstractions for code hygiene.
Suggested Design

Implement UptimeGrowthBelowTick and UptimeGrowthAboveTick for incentives to abstract away the "flipping" logic of UptimeGrowthOutside, which is usually the primary source of confusion during reviews.

Acceptance Criteria

All new and existing tests pass.

Seems that this is complete


Add missing test cases for storability

A test case has been written but not all of them have been done.


Adding dask-gateway compatible image

This PR includes a new separate folder for a coffea-dask image compatible with dask-gateway API servers running on upstream Dask DockerHub images and Helm charts.

@mapsacosta thanks a lot for contribution! Do you know when is planned updates on gateway side to change requirements (dask==2.30.0)?

I actually just stumbled upon this Dockerfile in the dask-gateway repository. They are pretty much up to date with Dask releases (a month?). So this indicates that maybe the only pinned version should be dask-gateway==0.9.0 and then the only thing we should worry about is having sufficiently new versions of dask and distributed that match: this image, our EAF notebook image and some custom dask-gateway and dask-gateway-server images I will build for the EAF.
In the long run, this will probably be good esp since we're actively doing development for upstream dask-gateway integration with HTCondor. I'll get a repo set up for that in a bit.
Perhaps we can trigger a cross-repo action that keeps at least a fixed list of packages in sync? this could be useful also if other institutions want to build on top of us. Just a suggestion but let me know if this sounds good and I'll get something working by the end of the day 👍

@oshadura In the meantime, I also applied your suggested fix about changing the base, so that should be good to go too

[...] this indicates that maybe the only pinned version should be dask-gateway==0.9.0 and then the only thing we should worry about is having sufficiently new versions of dask and distributed that match: this image, our EAF notebook image and some custom dask-gateway and dask-gateway-server images I will build for the EAF.

This is done! I built and pushed "EAF dask-gateway-server" images which are for now just exact copies of upstream. See GitHub actions run and build contextt for the pipeline.

In the long run, this will probably be good esp since we're actively doing development for upstream dask-gateway integration with HTCondor. I'll get a repo set up for that in a bit.

No need, I just re-used the main EAFJupyter repo and created a subfolder: EAFJupyter/dask-gateway

Perhaps we can trigger a cross-repo action that keeps at least a fixed list of packages in sync? this could be useful also if other institutions want to build on top of us. Just a suggestion but let me know if this sounds good
and I'll get something working by the end of the day 👍

This will be easier now that we have control of all versions in dask-gateway and dask-gateway-server images. thoughts? @oshadura

Awesome! Thanks @oshadura Do you know what's the image name/tag?

@mapsacosta I added GH Actions CD workflow for this image just now, but as soon as @nsmith- will create image coffeateam/coffea-dask-cc7-gateway in Dockerhub I will let you know tag.

@mapsacosta see image in https://hub.docker.com/repository/docker/coffeateam/coffea-dask-cc7-gateway


typo Add FAQ in en install-faq

Proposed changes
Issue Number: close #xxx

Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

run buildall


Why we are getting I/O error the JWK Set source login.microsoftonline.com when applying Proxy?

First, thank you for taking the time to read over this issue. Hopefully someone will have an answer that could help us.
If by any chance, this issue is located in the wrong repository, please help us by pointing to the right one. Thank you.
Summary
We are trying to have our Spring Boot project to connect with OAuth2 with Microsoft, via a proxy, when connected to our VPN.
Previously, we have successfully implemented OAuth 2.0 security in our Spring Boot project via the VPN until the proxy was put in effect.
Using httping, we can confirm that we can reach login.microsoftonline.com, when connected:
httping -x <out-proxy-url-goes-here>:83 -g login.microsoftonline.com

However, when we modify the code in SecurityConfig.kt, to use the proxy, we get the message:
An I/O error occurred while reading from the JWK Set source: login.microsoftonline.com"

We tried to enable the debug @EnableWebSecurity(debug=true) plus other configuration that were supposed to give us more debug information but nothing extra shows up that can point us to the right direction.
We tried many other "solutions" we found online, but we keep getting the same error.
Plus, we tried adding breakpoints and going throughout the flow but after quite a while, it didn't got us further either.
Any help would be appreciated.
Description
In the application-default.yml, we have:
security:
  oauth2:
    resource:
      jwk:
        key-set-uri: https://login.microsoftonline.com/common/discovery/v2.0/keys
      id: <our-id-goes-here>

Our current code, after trying so many different ideas we found online looks as following:
package com.connectingtooauth.config

import org.springframework.beans.factory.annotation.Value
import org.springframework.context.annotation.Configuration
import org.springframework.http.client.SimpleClientHttpRequestFactory
import org.springframework.security.config.Customizer
import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity
import org.springframework.security.config.annotation.web.builders.HttpSecurity
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity
import org.springframework.security.config.annotation.web.configurers.ExpressionUrlAuthorizationConfigurer
import org.springframework.security.config.annotation.web.configurers.oauth2.server.resource.OAuth2ResourceServerConfigurer
import org.springframework.security.oauth2.config.annotation.web.configuration.EnableResourceServer
import org.springframework.security.oauth2.config.annotation.web.configuration.ResourceServerConfigurerAdapter
import org.springframework.security.oauth2.config.annotation.web.configurers.ResourceServerSecurityConfigurer
import org.springframework.security.oauth2.jwt.*
import org.springframework.security.oauth2.server.resource.authentication.JwtAuthenticationConverter
import org.springframework.security.oauth2.server.resource.authentication.JwtGrantedAuthoritiesConverter
import org.springframework.web.client.RestTemplate
import java.net.InetSocketAddress
import java.net.Proxy

@Configuration
@EnableResourceServer
@EnableWebSecurity(debug=true)
@EnableGlobalMethodSecurity(prePostEnabled = true)
class SecurityConfig : ResourceServerConfigurerAdapter() {

    // We also tried to set static values here instead of using the @Value annotation

    @Value("\${security.oauth2.resource.jwk.key-set-uri}")
    lateinit var jwkSetUri: String

    @Value("\${security.oauth2.resource.id}")
    lateinit var resourceId: String

    private var host = "<hardcoded-our-proxy-here>"
    private var port = 88

    @Throws(Exception::class)
    override fun configure(http: HttpSecurity) {
        http
            .authorizeRequests(Customizer { authorize: ExpressionUrlAuthorizationConfigurer<HttpSecurity>.ExpressionInterceptUrlRegistry ->
                authorize
                    .antMatchers("/latestChargeSessions").authenticated()
                    .antMatchers("/v3/api-docs/**", "/swagger-resources/**", "/swagger-ui/**")
                    .permitAll()
            })
            .oauth2ResourceServer { oauth2: OAuth2ResourceServerConfigurer<HttpSecurity?> ->
                oauth2
                    .jwt(Customizer { jwt: OAuth2ResourceServerConfigurer<HttpSecurity?>.JwtConfigurer ->
                        jwt.jwtAuthenticationConverter(jwtAuthenticationConverter())
                            .decoder(jwtDecoder())
                    })
            }
    }

    fun jwtDecoder(): JwtDecoder? {
        val proxy = Proxy(Proxy.Type.HTTP, InetSocketAddress(host, port))
        val requestFactory = SimpleClientHttpRequestFactory()
        requestFactory.setProxy(proxy)
        return NimbusJwtDecoder
            .withJwkSetUri(jwkSetUri)
            .restOperations(RestTemplate(requestFactory)).build()
    }

    @Throws(Exception::class)
    override fun configure(resources: ResourceServerSecurityConfigurer) {
        resources.resourceId(resourceId)
    }

    private fun jwtAuthenticationConverter(): JwtAuthenticationConverter {
        val grantedAuthoritiesConverter = JwtGrantedAuthoritiesConverter()
        grantedAuthoritiesConverter.setAuthoritiesClaimName("roles")
        grantedAuthoritiesConverter.setAuthorityPrefix("")
        val jwtAuthenticationConverter = JwtAuthenticationConverter()
        jwtAuthenticationConverter.setJwtGrantedAuthoritiesConverter(grantedAuthoritiesConverter)
        return jwtAuthenticationConverter
    }

}

We tried also variations such as:
 JwtDecoder customDecoder() {
            SimpleClientHttpRequestFactory requestFactory = new SimpleClientHttpRequestFactory();
            Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress(proxyHost, proxyPort));
            requestFactory.setProxy(proxy);
            RestOperations restOperations = new RestTemplate(requestFactory);
            String jwtKeysUri = issuerUri.concat("/discovery/keys/");
            final NimbusJwtDecoder tokenDecoder = NimbusJwtDecoder
                    .withJwkSetUri(jwtKeysUri)
                    .restOperations(restOperations)
                    .build();
            tokenDecoder.setJwtValidator(getJwtValidator());
            return tokenDecoder;
        }

         OAuth2TokenValidator<Jwt> getJwtValidator() {
            OAuth2TokenValidator<Jwt> audienceValidator = audienceValidator();
            OAuth2TokenValidator<Jwt> withIssuer = JwtValidators.createDefaultWithIssuer(issuerUri);
            return new DelegatingOAuth2TokenValidator<>(withIssuer, audienceValidator);
        }

        OAuth2TokenValidator<Jwt> audienceValidator() {
            return new JwtClaimValidator<List<String>>(AUD, aud -> aud.contains(audience));
        }

Note: due security reasons, I can't provide the data that forms the the audience used in the code above, nor the value for spring.security.oauth2.resourceserver.jwt.issuer-uri.

Here is an additional log when we try to hit one of our endpoints:
 o.s.security.web.FilterChainProxy        : Securing GET /endpoint?id=1XXXXXXXXXXX3
 s.s.w.c.SecurityContextPersistenceFilter : Set SecurityContextHolder to empty SecurityContext
 p.a.OAuth2AuthenticationProcessingFilter : Authentication request failed: error="server_error", error_description="An I/O error occurred while reading from the JWK Set source: login.microsoftonline.com"
 s.s.o.p.e.DefaultOAuth2ExceptionRenderer : Written [error="server_error", error_description="An I/O error occurred while reading from the JWK Set source: login.microsoftonline.com"] as "application/json" using [org.springframework.http.converter.json.MappingJackson2HttpMessageConverter@f2a0360]
 s.s.w.c.SecurityContextPersistenceFilter : Cleared SecurityContextHolder to complete request

We also tried to add .csrf().disable()
      http.csrf().disable()
            .authorizeRequests(Customizer { authorize: ExpressionUrlAuthorizationConfigurer<HttpSecurity>.ExpressionInterceptUrlRegistry ->
                authorize
                    .antMatchers("/latestChargeSessions").authenticated()
                    .antMatchers("/v3/api-docs/**", "/swagger-resources/**", "/swagger-ui/**")
                    .permitAll()
            })
            .oauth2ResourceServer { oauth2: OAuth2ResourceServerConfigurer<HttpSecurity?> ->
                oauth2
                    .jwt(Customizer { jwt: OAuth2ResourceServerConfigurer<HttpSecurity?>.JwtConfigurer ->
                        jwt.jwtAuthenticationConverter(jwtAuthenticationConverter())
                            .decoder(jwtDecoder())
                    })
            }

We found the solution. We needed to provide the proxy information via the VM Options such as:
-Dspring.profiles.active=dev
-Dhttp.proxyHost=our-proxy.com
-Dhttp.proxyPort=88
-Dhttp.nonProxyHosts=**.our-proxy.com|localhost*

Now, we are trying to see if we can set those programmatically so we don't have to pass them as a VM Option.


Use iced or conrod for the game windows rendering

https://docs.rs/conrod_core/0.73.0/conrod_core/widget/index.html

Done with egui!


Cross-Compatability (Windows, Linux, Mac)

Hello, may I give you a feedback? I could run this BlogTemplate on Linux by adding some fixed. If you're available, I'll make a PR.
https://github.com/tanaka-takayoshi/aspnetcore-myblog/commits/master

@tanaka-takayoshi We still haven't finalized our plans for how we'd like to manage contributions, but for now could you file some specific issues for the changes you've had to make?

At least, these two cases are essential for working on Linux.


Unwanted generated tsconfig.json file

VSCode Version: 1.3.1
OS Version: macOS (10.11.5)

Steps to Reproduce:

open terminal
cd to project dir
launch vscode with code . command
tsconfig.json file is automatically generated

Is there a way to stop this tsconfig file from being generated? My project is actually js and I have a proper jsconfig.json defined but the tsconfig.json is causing a bunch of syntax error highlighting.

@jasonfma this sounds like an issue caused by an installed extension. Can you try to run VS Code without extensions? From the command line, execute: code --disable-extensions and try your steps again to see if it reproduces. If you see it is an issue with the extension, please file it against the extension repository itself.

Yeah you're right. It's the react native extension. Thanks!


Automatically add all projects in a folder

Hey, I'm switching from VS Code Project Manager to projects. What I'm trying to do is the following:
I have a few (~3) base Dir's where I clone all my git projects. I would like to add all folders containing a GiT repo automatically to Projects. Is this built in and am I just not using the plug-in right? Or is this something I need to setup?
I would expect to find and option like "Automatically add projects from folder: [~/home/user/projects, ~/home/user/work]

@KingOfSpades take a look at neovim-project - it has declarative approach:
  projects = {
    "~/projects/*", -- add all projects inside /home/user/projects/...
    "~/p*cts/*",    -- glob pattern is supported
    "~/work/*"
  },


Possible memory leak in 1.7.22?

We just updated from 1.7.21 to 1.7.22 and saw a steady rise in memory usage that GC could not recover, across all of our servers. We reverted to 1.7.21 (the only change) and memory usage remained stable, as it was before the update. We haven't had a chance to look at a heap dump yet (we had to revert as an emergency over the weekend) but wanted to get it on your radar.
I looked over the diffs from 1.7.21 to 1.7.22 and didn't see any smoking gun, in terms of changes that might cause this. We'll try to take a deeper look this week if we can schedule that investigate around other work.

https://github.com/mrniko/netty-socketio/compare/netty-socketio-1.7.21..master#diff-8aedd92990cfbafdc292f21882a27dea90efd28afae56a69c3816b8f79090813R136
seems like it could be the leak.
schedulePing schedules a Runnable, and that Runnable unconditionally calls schedulePing again, even if the session is no longer in the clientsBox.

the way the new ping/pong stuff is implemented, for every PONG message from a client, a new timeout "loop" is started. I think if a client just sent PONGs in a loop, even without the leak in schedulePing, you could oom the server.
ideally a client would be limited to a single timeout for pings at a time

Fixed! Thanks for report


ACL 6060 reference

acl6060.org has been down for months... I think a better reference is:
@inproceedings{salesky_evaluating_2023,
	address = {Toronto, Canada (in-person and online)},
	title = {Evaluating {Multilingual} {Speech} {Translation} under {Realistic} {Conditions} with {Resegmentation} and {Terminology}},
	url = {https://aclanthology.org/2023.iwslt-1.2},
	doi = {10.18653/v1/2023.iwslt-1.2},
	abstract = {We present the ACL 60/60 evaluation sets for multilingual translation of ACL 2022 technical presentations into 10 target languages. This dataset enables further research into multilingual speech translation under realistic recording conditions with unsegmented audio and domain-specific terminology, applying NLP tools to text and speech in the technical domain, and evaluating and improving model robustness to diverse speaker demographics.},
	urldate = {2024-10-17},
	booktitle = {Proceedings of the 20th {International} {Conference} on {Spoken} {Language} {Translation} ({IWSLT} 2023)},
	publisher = {Association for Computational Linguistics},
	author = {Salesky, Elizabeth and Darwish, Kareem and Al-Badrashiny, Mohamed and Diab, Mona and Niehues, Jan},
	editor = {Salesky, Elizabeth and Federico, Marcello and Carpuat, Marine},
	month = jul,
	year = {2023},
	pages = {62--78},
}

Well I check today and the site was up, with translation of abstracts in all 60 languages. Not sure about the terminology though.

My bad, the site is up. There is only a security warning "SEC_ERROR_EXPIRED_CERTIFICATE"


Accessing river Admin leads to 403 Forbidden Error

Describe the bug
I try and access http:///river-admin
To Reproduce
Steps to reproduce the behavior:

With Django version 2.2
With Python version 3.6.9

Expected behavior
I expected the River Admin to load.
Screenshots

*POSTGRESQL 10
Additional context
If permission classes are added in settings, a 403 error is recieved.
I have the following added in my settings.py
REST_FRAMEWORK = {
# Use Django's standard django.contrib.auth permissions,
# or allow read-only access for unauthenticated users.
'DEFAULT_PERMISSION_CLASSES': [
'rest_framework.permissions.IsAuthenticated'
],
'DEFAULT_AUTHENTICATION_CLASSES': [
'rest_framework.authentication.TokenAuthentication',  # <-- And here
'rest_framework.authentication.SessionAuthentication',
#'rest_framework.authentication.BasicAuthentication'
'rest_framework.authentication.BasicAuthentication'
],
'EXCEPTION_HANDLER': 'river_admin.views.exception_handler'

}
When the DEFAULT_PERMISSION_CLASSES are removed, the page loads, but no authentication happens as shown in the screenshot.

Hi @rupin ,
How do you see that it is 403? An on which screen?
The rest framework settings should be as it is stated in the documentation;
REST_FRAMEWORK = {
    'DEFAULT_AUTHENTICATION_CLASSES': [
        'rest_framework.authentication.BasicAuthentication',
        'rest_framework.authentication.TokenAuthentication',
    ],
    'EXCEPTION_HANDLER': 'river_admin.views.exception_handler'
}

river-admin is authentication through two channels; Basic auth which is for the first time you log in and token-based which is for after login. The moment you log in, a token is generated as to reside in your browser session like a cookie and then that token keeps getting used for all the API calls.

When I try to access /river-admin I get a 403 Error.
See a video of this in action here https://www.loom.com/share/2f161ad4a8604de0898b87a182e21c2a
I understand the settings as stated in the documentation. But I also have a permission class
'DEFAULT_PERMISSION_CLASSES': [
'rest_framework.permissions.IsAuthenticated'
],
Which when removed from my settings, leads to the login page being visible. What are the login credentials to river-admin? these are not the same as the django admin interface?

in safari:

and csrf token presents in request.

in chrome everything is correct

in safari:

and csrf token presents in request.

in chrome everything is correct

I also face this issue
and simple way to fix that is delete csrf cookie in browser developer console
root cause has not been found
later

I faced the same error but on adding "rest_framework.authtoken" along with "rest_framework", it started working.


SQL Auth test button doesnt work

************** Exception Text **************
System.ArgumentNullException: Value cannot be null.
Parameter name: s
at System.Runtime.InteropServices.Marshal.SecureStringToGlobalAllocUnicode(SecureString s)
at ManageQueryOleDbMonitorUI.ConnectionAndQuery.convertToUNSecureString(SecureString secstrPassword)
at ManageQueryOleDbMonitorUI.ConnectionAndQuery.btnTest_Click(Object sender, EventArgs e)
at System.Windows.Forms.Control.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ButtonBase.WndProc(Message& m)
at System.Windows.Forms.Button.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

I'm sorry, I totally forget to mention, when you select the SQL Auth option the Test button suppose to be not enabled. The reason is that I can't use SCOM user authentication for any application except SCOM itself. And my test is not SCOM test it a simple C# code, that get as parameter  sql connection string and create command to connect sql. So actually, this test you did is a bug and I will solve it. If you complete the wizard it should works

When i submit the form i get

I could not get any extra information as nothing could be clicked on that screen

I have tried this on both our SQL 2014 cluster and a single server running SQL 2012 both of which error the same :(

Currently in vacation, I will review the issue on Monday. Thanks:+1:

Currently in vacation, I will review the issue on Monday. Thanks:+1:

Hi,
I am can not find any problem in the template. Is it exist event if you try to create monitor based Windows Authentication?

Hi
Sorry for not getting back to you sooner !
I have just tested windows auth and I am getting the same error, I was able to run the command using the "Test" button and that worked as expected
Thanks
Stephen.
Date: 17/10/2017 13:21:14
Application: Operations Manager
Application Version: 7.1.10226.1304
Severity: Error
Message:
: Processing the template failed. See inner exception for details.
Verification failed with 2 errors:
Error 1:
Found error in 1|DI.Overrides.and.groups|<IP_ADDRESS>|QueryOleDbMonitorInitialDiscovery.3eaa30400f8644aab5a497131c5e353f|| with message:
Failed to verify Discovery: QueryOleDbMonitorInitialDiscovery.3eaa30400f8644aab5a497131c5e353f
: Cannot find ManagementPackElement [Type=ManagementPackClass, ID=Microsoft.Windows.Computer] in management pack ManagementPack:[Name=Microsoft.Windows.Server.2008.Discovery, KeyToken=31bf3856ad364e35, Version=6.0.7323.0].

Error 2:
Found error in 1|DI.Overrides.and.groups|<IP_ADDRESS>|QueryOleDbMonitorInitialDiscovery.3eaa30400f8644aab5a497131c5e353f/DS|| with message:
The configuration specified for Module DS is not valid.
: Cannot find specified MPElement Windows!Microsoft.Windows.Computer in expression: $MPElement[Name="Windows!Microsoft.Windows.Computer"]/PrincipalName$
Cannot find ManagementPackElement [Type=ManagementPackElement, ID=Microsoft.Windows.Computer] in management pack ManagementPack:[Name=Microsoft.Windows.Server.2008.Discovery, KeyToken=31bf3856ad364e35, Version=6.0.7323.0].
Failed to verify Discovery: QueryOleDbMonitorInitialDiscovery.3eaa30400f8644aab5a497131c5e353fCannot find ManagementPackElement [Type=ManagementPackClass, ID=Microsoft.Windows.Computer] in management pack ManagementPack:[Name=Microsoft.Windows.Server.2008.Discovery, KeyToken=31bf3856ad364e35, Version=6.0.7323.0].
: Verification failed with 2 errors:
Error 1:
Found error in 1|DI.Overrides.and.groups|<IP_ADDRESS>|QueryOleDbMonitorInitialDiscovery.3eaa30400f8644aab5a497131c5e353f|| with message:
Failed to verify Discovery: QueryOleDbMonitorInitialDiscovery.3eaa30400f8644aab5a497131c5e353f
: Cannot find ManagementPackElement [Type=ManagementPackClass, ID=Microsoft.Windows.Computer] in management pack ManagementPack:[Name=Microsoft.Windows.Server.2008.Discovery, KeyToken=31bf3856ad364e35, Version=6.0.7323.0].

Error 2:
Found error in 1|DI.Overrides.and.groups|<IP_ADDRESS>|QueryOleDbMonitorInitialDiscovery.3eaa30400f8644aab5a497131c5e353f/DS|| with message:
The configuration specified for Module DS is not valid.
: Cannot find specified MPElement Windows!Microsoft.Windows.Computer in expression: $MPElement[Name="Windows!Microsoft.Windows.Computer"]/PrincipalName$
Cannot find ManagementPackElement [Type=ManagementPackElement, ID=Microsoft.Windows.Computer] in management pack ManagementPack:[Name=Microsoft.Windows.Server.2008.Discovery, KeyToken=31bf3856ad364e35, Version=6.0.7323.0].
: Failed to verify Discovery: QueryOleDbMonitorInitialDiscovery.3eaa30400f8644aab5a497131c5e353f
: Cannot find ManagementPackElement [Type=ManagementPackClass, ID=Microsoft.Windows.Computer] in management pack ManagementPack:[Name=Microsoft.Windows.Server.2008.Discovery, KeyToken=31bf3856ad364e35, Version=6.0.7323.0].

Hey,
Could you check in your environment if the Microsoft.Windows.Library MP is minimum version 7.5.8501.0
If not you should update the MP. In case it is a problem, you can fork the project. open it visual studio > replace the Microsoft.Windows.Library with your current version recompile the project and
import the mpb file

Hey
It has the correct version installed
Stephen

I have changed the way that I was referencing MPs.
instead of this:
ManagementPack mp = ManagementGroup.ManagementPacks.GetManagementPack(SystemManagementPack.Windows);
DestinationManagementPack.References.Add("Windows", mp);
I use this:
ManagementPackCriteria mpCriteria = new ManagementPackCriteria("Name='Microsoft.Windows.Library'");
IList managementPacks =
ManagementGroup.ManagementPacks.GetManagementPacks(mpCriteria);
DestinationManagementPack.References.Add("Windows", managementPacks[0]);
mpCriteria = null;
this way I'm referencing the necessary  "Microsoft.Windows.Library" MP and not counting on "SystemManagementPack.Windows" enumeration...
I hope it will fix the problem.
Thanks for your feedback!

Have just updated and I get this error (Believe its the same)
https://pastebin.com/PWvNxd6f

Im not sure why it would be using - Microsoft.Windows.Server.2008.Discovery when the the server running SQL is on Server 2012 R2 with SQL 2014, the SCOM server is also Server 2012 R2

My environment is the same.. very strange... later today I will check again, maybe I'm missing something.. anyway, if won't find anything, can I connect to your environment remotely?

I have just tried creating a new MP to store the config and I now get the following error
Note:  The following information was gathered when the operation was attempted.  The information may appear cryptic but provides context for the error.  The application will continue to run.
: Processing the template failed. See inner exception for details.
Cannot resolve identifier Health!System.Health.PerformanceState in the context of management pack SQL.Monitoring. Unknown alias: Health
: Cannot resolve identifier Health!System.Health.PerformanceState in the context of management pack SQL.Monitoring. Unknown alias: Health
Believe this is the same as #4 im running version <IP_ADDRESS>

We have lift off!!
I used this powershell script to manually add the 3 dependencies to the MP and it works now
https://blog.tyang.org/2014/10/07/powershell-script-add-mp-references-unsealed-management-packs/
Thanks

great!!!, however, still I don't understand why you need to add these MPs..


Target column named is unused In HuggingfaceTextDataModule

In HuggingfaceTextDataModule, the target_column attribute is not passed to the _InputTargetWrapper dataset class, because of which it only accesses target_column: str = "label" always (and fails when that column is not present in a dataset).
Code to reproduce:
tokenizer = transformers.AutoTokenizer.from_pretrained("bert-large-uncased")
dataset_name = "knkarthick/dialogsum"
data_module = HuggingfaceTextDataModule(
        str(data_path),
        dataset_name=dataset_name,
        tokenizer=tokenizer,
        input_column="dialogue",
        target_column="summary",
        val_size=0.05,
        seed=seed,
    )

The issues with the DataModule aren't complete, but this specific issues has been fixed in #233 . Closing this.


[] build failure

Host Environment

OS: Windows 10 64-Professional
Compiler: Visual Studio 2019

To Reproduce
Steps to reproduce the behavior:
./vcpkg install nanodbc
Failure logs
Computing installation plan...
The following packages will be built and installed:
nanodbc[core]:x64-windows

unixodbc[core]:x64-windows
Additional packages (*) will be modified to complete this operation.
Starting package 1/2: unixodbc:x64-windows
Building package unixodbc[core]:x64-windows...
CMake Error at scripts/cmake/vcpkg_fail_port_install.cmake:93 (message):
Target 'Windows' not supported by unixodbc!

Call Stack (most recent call first):
ports/unixodbc/portfile.cmake:1 (vcpkg_fail_port_install)
scripts/ports.cmake:76 (include)
Error: Building package unixodbc:x64-windows failed with: BUILD_FAILED
Please ensure you're using the latest portfiles with .\vcpkg update, then
submit an issue at https://github.com/Microsoft/vcpkg/issues including:
Package: unixodbc:x64-windows
Vcpkg version: 2020.02.04-nohash
Earlier the  nanodbc[core]:x64-windows  was getting installed properly; after vcpkg update I'm getting this issue. Earlier nanodbc[core]:x64-windows didn't need  unixodbc[core]:x64-windows.

@IshaanKarnik update vcpkg and try again.
See #12248 PR #12274 was already in progress to fix this issue,removing the dependency of unixodbc from port nanodbc on windows platforms.

Thanks Resolved.


Bug: Plugin fails install on new homebridge install.

Describe The Bug
Plugin fails install on new homebridge install after backup.
To Reproduce
Attempt to install plugin after restore from backup. Backup has/had verified Govee, switchbot, and wled plugins. Both Govee and switchbot plugins did not install despite the restore going through each plugin install process automatically. Attempted normal gui install from plugin tab only worked for Govee.
Expected behavior
Switchbot plugin intalling succesfully
Relevant log output
911 timing reifyNode:node_modules/@switchbot/homebridge-switchbot/node_modules/node-addon-api Completed in 165759ms
912 timing reifyNode:node_modules/@switchbot/homebridge-switchbot/node_modules/@mapbox/node-pre-gyp Completed in 166597ms
913 timing reifyNode:node_modules/@switchbot/homebridge-switchbot/node_modules/semver Completed in 167032ms
914 timing reifyNode:node_modules/@switchbot/homebridge-switchbot/node_modules/nan Completed in 169576ms
915 timing reifyNode:node_modules/@switchbot/homebridge-switchbot/node_modules/uuid Completed in 169669ms
916 timing reifyNode:node_modules/@switchbot/homebridge-switchbot/node_modules/axios Completed in 170417ms
917 timing reifyNode:node_modules/@switchbot/homebridge-switchbot/node_modules/mqtt Completed in 170777ms
918 timing reifyNode:node_modules/@switchbot/homebridge-switchbot/node_modules/google-auth-library Completed in 171582ms
919 timing reifyNode:node_modules/@switchbot/homebridge-switchbot/node_modules/@abandonware/noble Completed in 172590ms
920 timing reifyNode:node_modules/@switchbot/homebridge-switchbot/node_modules/js-sdsl Completed in 173199ms
921 timing reifyNode:node_modules/@switchbot/homebridge-switchbot/node_modules/node-forge Completed in 176579ms
922 timing reifyNode:node_modules/@switchbot/homebridge-switchbot Completed in 184128ms
923 timing reifyNode:node_modules/@switchbot/homebridge-switchbot/node_modules/usb Completed in 193358ms
924 timing reifyNode:node_modules/@switchbot/homebridge-switchbot/node_modules/rxjs Completed in 243619ms
925 timing reifyNode:node_modules/@switchbot/homebridge-switchbot/node_modules/googleapis Completed in 310836ms
926 timing reify:unpack Completed in 311367ms
927 timing reify:rollback:createSparse Completed in 27316ms
928 timing reify:rollback:retireShallow Completed in 46ms
929 timing command:install Completed in 426784ms
930 verbose stack Error: process terminated
930 verbose stack     at /opt/homebridge/lib/node_modules/npm/node_modules/@npmcli/arborist/lib/arborist/reify.js:198:39
930 verbose stack     at process.<anonymous> (/opt/homebridge/lib/node_modules/npm/node_modules/@npmcli/arborist/lib/signal-handling.js:51:5)
930 verbose stack     at process.emit (node:events:539:35)
931 verbose cwd /var/lib/homebridge
932 verbose Linux 5.15.32+
933 verbose node v16.15.1
934 verbose npm  v8.11.0
935 error process terminated
936 error signal SIGTERM
937 verbose exit 1
938 timing npm Completed in 430266ms
939 verbose unfinished npm timer reify<PHONE_NUMBER>776
940 verbose code 1
941 error A complete log of this run can be found in:
941 error     /home/pi/.npm/_logs/2022-06-27T20_43_26_443Z-debug-0.log

Config for homebridge-switchbot
{
            "name": "SwitchBot",
            "credentials": {
                "openToken": "#######################################################",
                "notice": "Keep your token a secret!"
            },
            "options": {
                "devices": [
                    {
                        "deviceId": "#############",
                        "configDeviceName": "SwitchBot Plug 1",
                        "offline": true,
                        "configDeviceType": "Plug Mini (US)",
                        "logging": "none"
                    }
                ]
            },
            "platform": "SwitchBot"
        }
    ]
}

Screenshots
USER: pi
DIR: /var/lib/homebridge
CMD: npm install --save @switchbot/homebridge-switchbot@latest
npm ERR! process terminated
npm ERR! signal SIGTERM
npm ERR!  Please review log for details.
Device & Model
Ras-Pi Zero W
Node.js Version
v16.15.1
NPM Version
latest
Homebridge Version
latest
Homebridge Switchbot Plugin Version
latest
Homebridge Config UI X Plugin Version
v4.48.1
Operating System
Ofiical Ras-Pi homebridge install from June 27, 2022

looks like a potential python issue since noble uses that.

I have the same issue... can't install any version...
Pi Zero WH
Node.js v16.17.1
<EMAIL_ADDRESS>└──<EMAIL_ADDRESS>815 timing reifyNode:node_modules/@switchbot/homebridge-switchbot/node_modules/nan Completed in 90378ms
816 timing reifyNode:node_modules/@switchbot/homebridge-switchbot/node_modules/mqtt Completed in 91306ms
817 timing reifyNode:node_modules/@switchbot/homebridge-switchbot/node_modules/google-auth-library Completed in 92771ms
818 timing reifyNode:node_modules/@switchbot/homebridge-switchbot/node_modules/@abandonware/noble Completed in 93339ms
819 timing reifyNode:node_modules/@switchbot/homebridge-switchbot/node_modules/node-forge Completed in 95675ms
820 timing reifyNode:node_modules/@switchbot/homebridge-switchbot/node_modules/js-sdsl Completed in 97331ms
821 http fetch GET 200<EMAIL_ADDRESS>106367ms (cache miss)
822 timing reifyNode:node_modules/@switchbot/homebridge-switchbot Completed in 110384ms
823 timing reifyNode:node_modules/@switchbot/homebridge-switchbot/node_modules/usb Completed in 125058ms
824 timing reifyNode:node_modules/@switchbot/homebridge-switchbot/node_modules/rxjs Completed in 170651ms
825 timing reifyNode:node_modules/@switchbot/homebridge-switchbot/node_modules/googleapis Completed in 221529ms
826 timing reify:unpack Completed in 221862ms
827 timing reify:rollback:createSparse Completed in 23469ms
828 timing reify:rollback:retireShallow Completed in 2ms
829 timing command:install Completed in 331567ms
830 verbose stack Error: process terminated
830 verbose stack     at /usr/local/lib/node_modules/npm/node_modules/@npmcli/arborist/lib/arborist/reify.js:199:39
830 verbose stack     at process. (/usr/local/lib/node_modules/npm/node_modules/@npmcli/arborist/lib/signal-handling.js:53:5)
830 verbose stack     at process.emit (node:events:525:35)
831 verbose cwd /usr/local
832 verbose Linux 5.10.63+
833 verbose node v16.17.1
834 verbose npm  v8.19.2
835 error process terminated
836 error signal SIGTERM
837 verbose exit 1
838 timing npm Completed in 335103ms
839 verbose unfinished npm timer reify<PHONE_NUMBER>421
840 verbose code 1
841 error A complete log of this run can be found in:
841 error     /home/pi/.npm/_logs/2022-10-14T08_19_21_051Z-debug-0.log
{
"name": "SwitchBot",
"credentials": {
"openToken": "XXXX",
"notice": "Keep your token a secret!"
},
"options": {
"devices": [
{
"deviceId": "XXXX",
"configDeviceName": "Bathroom",
"configDeviceType": "Bot",
"ble": false,
"bot": {
"mode": "press",
"deviceType": "switch",
"allowPush": true,
"doublePress": 1,
"maxRetry": 1
},
"logging": "standard"
},
{
"deviceId": "XXXX",
"configDeviceName": "Curtain",
"configDeviceType": "Curtain",
"ble": false,
"curtain": {
"hide_lightsensor": true
},
"refreshRate": 360,
"logging": "standard"
}
],
"irdevices": [
{
"logging": "standard"
}
],
"logging": "standard"
},
"platform": "SwitchBot"
},


cmd/go: go generate "quotes" unquoted environment variables in directive

What version of Go are you using (go version)?
go version go1.7.4 linux/amd64

(but same behaviour observed at tip)
What operating system and processor architecture are you using (go env)?
$ go env
GOARCH="amd64"
GOBIN=""
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH="/home/myitcv/gostuff"
GORACE=""
GOROOT="/home/myitcv/gos"
GOTOOLDIR="/home/myitcv/gos/pkg/tool/linux_amd64"
CC="gcc"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build336417079=/tmp/go-build -gno-record-gcc-switches"
CXX="g++"
CGO_ENABLED="1"

What did you do?
Place the code found here https://play.golang.org/p/PKeAQFaVSe in a package directory called playground and then run:
cd /path/to/playground
go build && PATH=.:$PATH HELLOWORLD="hello world" go generate

What did you expect to see?
len(os.Args): 3, os.Args: []string{"playground", "main.go", "main.go"}
len(os.Args): 2, os.Args: []string{"playground", ""}
len(os.Args): 4, os.Args: []string{"playground", "hello", "world", "hello world"}

What did you see instead?
len(os.Args): 3, os.Args: []string{"playground", "main.go", "main.go"}
len(os.Args): 3, os.Args: []string{"playground", "", ""}
len(os.Args): 3, os.Args: []string{"playground", "hello world", "hello world"}

Maybe my bias arises from my understanding (or lack thereof) of the behaviour of bash etc in these situations, but I see two problems here:

in the second instance, the unquoted $VARNOTSET should not have resulted in the empty string being passed as os.Args[1] to playground
in the third instance, the unquoted $HELLOWORLD should have resulted in hello and world being passed as os.Args[2] and os.Args[3] respectively, not hello world

I stumbled across this because I was looking to use environment variables to pass common flags to my go generators (to adjust log levels). But when that environment variable is not set, the empty string is passed as an argument... and flag parsing stops just before the first non-flag argument, and the empty string matches that condition.
I can think of one workaround: putting these flag environment variables at the end of all my go:generate directives).. and then ensure my go generators do not do any handling of flag.Args() (or equivalent).
Assuming for one second the current behaviour is not desirable/expected, I can't actually think of a good solution here that is backwards compatible...
cc @robpike perhaps?

It's working as intended. As documented, it doesn't run the shell, but rather uses Go quoting rules, and $VARNOTSET is an empty string. For the behavior you want, you need to run the shell, something like this (untested):
//go:generate sh - c playground $VARNOTSET "$VARNOTSET"
Please reopen if this is not the right solution.

Thanks for the quick response @robpike

As documented, it doesn't run the shell, but rather uses Go quoting rules, and $VARNOTSET is an empty string

I guess the key bit here is that this happens after tokenising (from go generate -help):
The arguments to the directive are space-separated tokens or
double-quoted strings passed to the generator as individual
arguments when it is run.

...

As a last step before running the command, any invocations of any
environment variables with alphanumeric names, such as $GOFILE or
$HOME, are expanded throughout the command line.

So it's definitely working as documented, and given that you've confirmed it's also working as intended, you've confirmed my bash bias is the root cause of my bad expectations...
The solution using sh -c does indeed work, but such an approach then makes parsing of go generate directives that bit more tricky (instead of simply using the basename of the first word after the directive, post expansion). I've opted for an alternative solution for now


Add Harness Feature Flags plugin to the microsite

Hey, I just made a Pull Request!

:heavy_check_mark: Checklist

[x] A changeset describing the change and affected packages. (more info)
[x] Added or updated documentation
[x] Tests for new functionality and regression tests for bug fixes
[x] Screenshots attached (for UI changes)
[x] All your commits have a Signed-off-by line in the message. (more info)

Hi @freben despite the PR being merged, I can't see the Plugin listed in the Marketplace yet.
cc @jhaals @OrkoHunter

@Debanitrkl It's there now. Looks like the microsite builds are taking about an hour to finish. https://github.com/backstage/backstage/actions/workflows/deploy_microsite.yml


get_game_status runs infinitely

get_game_status() runs on every re-render instead of running only when a score changes.

Fixed in 82f8f0c.


Update guardrail-java-support to 0.67.1

Updates dev.guardrail:guardrail-java-support from 0.66.0 to 0.67.1.
Changelog
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Files still referring to the old version number
The following files still refer to the old version number (0.66.0).
You might want to review and update them manually.
modules/core/build.sbt

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "dev.guardrail", artifactId = "guardrail-java-support" } ]

labels: library-update, early-semver-major, semver-spec-minor, old-version-remains

Superseded by #144.


How to add Authentication and Authorization to the schema

Is there a way to add Authentication and Authorization to the schema.json file?  The api requires  API keys to access most of the endpoints.  Swagger supports adding this to the swagger.json file.  I was looking through the code I don't see a place where I could set something to support this.

Hi et-ent,
can you please check branch [add-auth-support](https://github.com/lnaegele/PSwag/tree/add-auth-support ) if that works for you? You can see how to use it in example index.php:
$app->get('/pet/{petId}', [PetApplicationService::class, 'getPetById'])->addMiddleware(new ApiKeyAuthMiddleware());
You can implement your own AuthMiddleware behaviour by implementing ApiKeyAuthMiddlewareInterface.


Fix ability to pass in custom value ram address for blob start

Fixes ability to pass in string representing hex number.  Should work with decimal number too.
Added details in readme.
I tested this and it is working.
(sorry for the line ending issues.  a couple extra benign changes crept in.  any tips on avoiding that are appreciated.)

Thanks for making this PR @maclobdell. It looks good. @sg- can you merge this?


Fixes #30

Works now.  One thing I noticed is that the asterisks next to mapped fields are missing now.

Another thing I noticed is that any change to the mapping requires the camel context path.  We used to only prompt for this on a change which required us to edit the camel configuration.

The show/hide mapped fields filter is broken.  It just hides everything now.

There's a regression in the custom mapping browser where it's looking at the test class path again.  We want this to use compile path only.

Seeing an issue with new Fuse Transformation wizard as well.  Once I click Finish, I get:
java.io.FileNotFoundException: /private/tmp/map-0/META-INF/spring/camel-context.xml (No such file or directory)

The issue here is that the path is not prefixed with src/main/resources.  We don't show this path to the user, but you need to prefix the path to resolve it within the project.
I'm going to stop testing now.  Once these are addressed, I would maybe try and walk through building the map-3 example app starting at map-0.  I think that would catch these and anything else common.

Damn,  I noticed that too and forgot to fix it.

On Feb 20, 2015, at 1:31 PM, Keith Babo<EMAIL_ADDRESS>wrote:
Works now. One thing I noticed is that the asterisks next to mapped fields are missing now.
—
Reply to this email directly or view it on GitHub https://github.com/fabric8io/data-mapper/pull/148#issuecomment-75304007.

I probably mucked this up.  Can you expound on what kind of change requires a Camel edit and what doesn't?

On Feb 20, 2015, at 1:32 PM, Keith Babo<EMAIL_ADDRESS>wrote:
Another thing I noticed is that any change to the mapping requires the camel context path. We used to only prompt for this on a change which required us to edit the camel configuration.
—
Reply to this email directly or view it on GitHub https://github.com/fabric8io/data-mapper/pull/148#issuecomment-75304145.

Sure.  I should have mentioned that in my comment.  The only time we touch the camel config in the mapper editor is when the source or target models are changed. That requires an update to the dozer endpoint in the camel config.


Need a checklist describing what is current working in the server

It's difficult to understand exactly what is implemented in the server.  What protocols, what schemas, fields in the schema, and methods.  A maintained checklist style document in the tree would be most helpful

This seems like a lot of work for not very much benefit.  The issue tracker captures a lot of this information already and there are places in the code that could tell one something about the server's functionality... frontend.py identifies that URL paths that are implemented, for instance.  There are also a lot of fields that change frequently, some of which are not implemented but half implemented, etc. etc.  Maybe you could tell us what use for this you had in mind?

Well, one use is to prioritize subtasks of building a conformance test :) and reduce exploratory time lost to "maybe I did this wrong" exploration/time-loss for someone making a client app.

I hope it's not a lot of work, it's just a checklist.  It
appears that many request are not done and there is no way to
get this except try it and get back a 501.
This is for people trying to use the server, not develop it.
No one knows what is implemented and what is not.  They just
have to try it.  There appear to be unimplemented requests and
fields that there is no way to get into the server (and some
probably because they make no sense).
It's kind of like release notes.
Danny Colligan<EMAIL_ADDRESS>writes:

This seems like a lot of work for not very much benefit. The issue tracker
captures a lot of this information already and there are places in the code
that could tell one something about the server's functionality... frontend.py
identifies that URL paths that are implemented, for instance. There are also a
lot of fields that change frequently, some of which are not implemented but
half implemented, etc. etc. Maybe you could tell us what use for this you had
in mind?
—
Reply to this email directly or view it on GitHub.*

IMO, the checklist info should be fetchable as a JSON doc from the live server, so a client can use it to adapt to the realities on the ground. For example, a CTK might skip (and fail) a bunch of tests if a required message wasn't implemented, or if the server's schema version wasn't the same as what the tests assumed.

I don't really want to add more to the API to find out what is
implement, I just want to implement it.
Failing the tests is the right thing to do!!  Fail loud
Being able to discover the schema version the server implements
seems essential.
Wayne Stidolph<EMAIL_ADDRESS>writes:

IMO, the checklist info should be fetchable as a JSON doc from the live server,
so a client can use it to adapt to the realities on the ground. For example, a
CTK might skip (and fail) a bunch of tests if a required message wasn't
implemented, or if the server's schema version wasn't the same as what the
tests assumed.
—
Reply to this email directly or view it on GitHub.*

Having a checklist is essential to keep on track - I create one for all my projects.  I even recommended something along the same lines about a couple of months ago with a recommendation to @ekg's variant graphs tools project as an example to draw inspiration from, specifically his Development section. This does not have to be fancy, and can even be a Github formatted table that would be periodically updated.

I agree with @diekhans as we are a TDD (test-driven development) implementation and that is what is driving our incremental implementations, and keeping in sync with what the API is telling us we should be.

All of the paths that are active are listed on a web page upon server startup... just request GET /

@diekhans how is the checklist going to be any different from a less information rich version of the issue tracker?  If something is unimplemented that we want, an issue should be filed.  If more information about server operation is needed, that can go into the documentation.

@dcolligan  But they need to be publicly documented as well.  Not everyone will download the code, run the server to check these things out.  By documenting it on a website it will keep everyone in sync with the project.

The test suite's reason for having this sort of thing be machine-friendly
live-in-the-server is that since these are inter-system tests, the test
will fail slowly and an incomplete implementation in a function will
block all the corner-case tests which involve that function. Yes, those are
real failures and we will announce that loudly - but if we have a lot of
tests (and we should) then a known-incomplete condition of the server under
test will cause a bunch of essentially the same error reports, and people
become less willing to use the test suite (since it's full of repetition,
and it runs slow). The tests become less useful in driving development
when there's multiple reports driven by the same fault.
If we can tag/Categorize the tests and skip-fail the ones that are disabled
using some notification from the server then we can announce the same test
results more quickly, and not have to evaluate every failure as "oh, that's
another symptom of misordering of the X and Y fields"
On Mon, Jun 1, 2015 at 12:22 PM, Danny Colligan<EMAIL_ADDRESS>wrote:

@diekhans https://github.com/diekhans how is the checklist going to be
any different from a less information rich version of the issue tracker? If
something is unimplemented that we want, an issue should be filed. If more
information about server operation is needed, that can go into the
documentation.
—
Reply to this email directly or view it on GitHub
https://github.com/ga4gh/server/issues/430#issuecomment-107677050.

--
Wayne Stidolph  |<PHONE_NUMBER> | LinkedIn
http://www.linkedin.com/in/waynestidolph | Google+
https://google.com/+WayneStidolph | twitter
https://twitter.com/#!/wstidolph | personal blog
http://waynedge.blogspot.com/

How can one go to the issue tracker and quickly find out what has
been implemented in any particular release or commit level?  This
seems very time consuming
The suggestion is this should be part of the end user
documentation.  People not developing the server have no idea
what actually works.  It doesn't implement the full 0.5.1 API
and doesn't implement all of the attributes.
If there is already in the doc and we have missed it, then
we need to make it more obvious.
Ask a question: how does an end user find out what has been
implemented?
Danny Colligan<EMAIL_ADDRESS>writes:

@diekhans how is the checklist going to be any different from a less
information rich version of the issue tracker? If something is unimplemented
that we want, an issue should be filed. If more information about server
operation is needed, that can go into the documentation.
—
Reply to this email directly or view it on GitHub.*

I agree with a test suite, but that would be separate from the documentation.  Regarding skipping tests, usually the associated test configuration file would be sufficient to select what tests should be included and which should be excluded.  It probably is not a good idea to skip tests, since some tests depend on the type of testing that would be performed (i.e. unit, integration, regression, etc.)

how is this different than a 501?
I can see how it is useful, but I am not sure it's very high
priority.
Wayne Stidolph<EMAIL_ADDRESS>writes:

The test suite's reason for having this sort of thing be machine-friendly
live-in-the-server is that since these are inter-system tests, the test
will fail slowly and an incomplete implementation in a function will
block all the corner-case tests which involve that function. Yes, those are
real failures and we will announce that loudly - but if we have a lot of
tests (and we should) then a known-incomplete condition of the server under
test will cause a bunch of essentially the same error reports, and people
become less willing to use the test suite (since it's full of repetition,
and it runs slow). The tests become less useful in driving development
when there's multiple reports driven by the same fault.
If we can tag/Categorize the tests and skip-fail the ones that are disabled
using some notification from the server then we can announce the same test
results more quickly, and not have to evaluate every failure as "oh, that's
another symptom of misordering of the X and Y fields"
On Mon, Jun 1, 2015 at 12:22 PM, Danny Colligan<EMAIL_ADDRESS>wrote:

@diekhans https://github.com/diekhans how is the checklist going to be
any different from a less information rich version of the issue tracker? If
something is unimplemented that we want, an issue should be filed. If more
information about server operation is needed, that can go into the
documentation.
—
Reply to this email directly or view it on GitHub
https://github.com/ga4gh/server/issues/430#issuecomment-107677050.

--
Wayne Stidolph |<PHONE_NUMBER> | LinkedIn
http://www.linkedin.com/in/waynestidolph | Google+
https://google.com/+WayneStidolph | twitter
https://twitter.com/#!/wstidolph | personal blog
http://waynedge.blogspot.com/
—
Reply to this email directly or view it on GitHub.*

As to how it's different than a 501 - an unexpected 5xx certainly says
"server error" but that doesn't tell the CTK what is wrong, what tests
might be skippable as a result. So absent some form of tagging and
advice-from-the-server, the CTK will go on to run the next test, and
generate the next failure, and the next block of log entries.
But I agree there's a risk of inappropriate test-skipping , and that a
human can scrounge that information from whatever sources and build the
test-config file they want, and that "YAGNI" suggests to not worry about it
until people complain about the test failure volume.
I look forward to the collected-capabilities checklist! (I need it for the
CTK already)
On Mon, Jun 1, 2015 at 12:43 PM, Mark Diekhans<EMAIL_ADDRESS>wrote:

how is this different than a 501?
I can see how it is useful, but I am not sure it's very high
priority.
Wayne Stidolph<EMAIL_ADDRESS>writes:

The test suite's reason for having this sort of thing be machine-friendly
live-in-the-server is that since these are inter-system tests, the test
will fail slowly and an incomplete implementation in a function will
block all the corner-case tests which involve that function. Yes, those
are
real failures and we will announce that loudly - but if we have a lot of
tests (and we should) then a known-incomplete condition of the server
under
test will cause a bunch of essentially the same error reports, and people
become less willing to use the test suite (since it's full of repetition,
and it runs slow). The tests become less useful in driving development
when there's multiple reports driven by the same fault.
If we can tag/Categorize the tests and skip-fail the ones that are
disabled
using some notification from the server then we can announce the same
test
results more quickly, and not have to evaluate every failure as "oh,
that's
another symptom of misordering of the X and Y fields"
On Mon, Jun 1, 2015 at 12:22 PM, Danny Colligan <
<EMAIL_ADDRESS>wrote:

@diekhans https://github.com/diekhans how is the checklist going to
be
any different from a less information rich version of the issue
tracker? If
something is unimplemented that we want, an issue should be filed. If
more
information about server operation is needed, that can go into the
documentation.
—
Reply to this email directly or view it on GitHub
https://github.com/ga4gh/server/issues/430#issuecomment-107677050.

--
Wayne Stidolph |<PHONE_NUMBER> | LinkedIn
http://www.linkedin.com/in/waynestidolph | Google+
https://google.com/+WayneStidolph | twitter
https://twitter.com/#!/wstidolph | personal blog
http://waynedge.blogspot.com/
—
Reply to this email directly or view it on GitHub.*

—
Reply to this email directly or view it on GitHub
https://github.com/ga4gh/server/issues/430#issuecomment-107681485.

--
Wayne Stidolph  |<PHONE_NUMBER> | LinkedIn
http://www.linkedin.com/in/waynestidolph | Google+
https://google.com/+WayneStidolph | twitter
https://twitter.com/#!/wstidolph | personal blog
http://waynedge.blogspot.com/

We do have some release notes, but these are very sparse:
https://github.com/ga4gh/server/releases

@diekhans ok, how does another top-level item on our docs site called "Current Implementation Status" (or whatever) sound?
http://ga4gh-reference-implementation.readthedocs.org/en/develop/
Also I'd like to hear what @jeromekelleher thinks.

Would that doc be versioned along with the Server? So if I check out a
given Server tag/whatever, I get the correct "Current Implementation
Status"?
On Mon, Jun 1, 2015 at 1:17 PM, Danny Colligan<EMAIL_ADDRESS>wrote:

@diekhans https://github.com/diekhans ok, how does another top-level
item on our docs site called "Current Implementation Status" (or whatever)
sound?
http://ga4gh-reference-implementation.readthedocs.org/en/develop/
Also I'd like to hear what @jeromekelleher
https://github.com/jeromekelleher thinks.
—
Reply to this email directly or view it on GitHub
https://github.com/ga4gh/server/issues/430#issuecomment-107694574.

--
Wayne Stidolph  |<PHONE_NUMBER> | LinkedIn
http://www.linkedin.com/in/waynestidolph | Google+
https://google.com/+WayneStidolph | twitter
https://twitter.com/#!/wstidolph | personal blog
http://waynedge.blogspot.com/

Yes, the documentation is versioned along with the server.  See the docs directory.

501 == not implemented ;-)
but at this point, I would be happy to have
something resembling a coherent API and servers
that produce gigabytes of failure message.
Skipped tests should still be failures, but right now any kind
of optimization is low priority.
Wayne Stidolph<EMAIL_ADDRESS>writes:

As to how it's different than a 501 - an unexpected 5xx certainly says
"server error" but that doesn't tell the CTK what is wrong, what tests
might be skippable as a result. So absent some form of tagging and
advice-from-the-server, the CTK will go on to run the next test, and
generate the next failure, and the next block of log entries.
But I agree there's a risk of inappropriate test-skipping , and that a
human can scrounge that information from whatever sources and build the
test-config file they want, and that "YAGNI" suggests to not worry about it
until people complain about the test failure volume.
I look forward to the collected-capabilities checklist! (I need it for the
CTK already)
On Mon, Jun 1, 2015 at 12:43 PM, Mark Diekhans<EMAIL_ADDRESS>wrote:

how is this different than a 501?
I can see how it is useful, but I am not sure it's very high
priority.
Wayne Stidolph<EMAIL_ADDRESS>writes:

The test suite's reason for having this sort of thing be machine-friendly
live-in-the-server is that since these are inter-system tests, the test
will fail slowly and an incomplete implementation in a function will
block all the corner-case tests which involve that function. Yes, those
are
real failures and we will announce that loudly - but if we have a lot of
tests (and we should) then a known-incomplete condition of the server
under
test will cause a bunch of essentially the same error reports, and people
become less willing to use the test suite (since it's full of repetition,
and it runs slow). The tests become less useful in driving development
when there's multiple reports driven by the same fault.
If we can tag/Categorize the tests and skip-fail the ones that are
disabled
using some notification from the server then we can announce the same
test
results more quickly, and not have to evaluate every failure as "oh,
that's
another symptom of misordering of the X and Y fields"
On Mon, Jun 1, 2015 at 12:22 PM, Danny Colligan <
<EMAIL_ADDRESS>wrote:

@diekhans https://github.com/diekhans how is the checklist going to
be
any different from a less information rich version of the issue
tracker? If
something is unimplemented that we want, an issue should be filed. If
more
information about server operation is needed, that can go into the
documentation.
—
Reply to this email directly or view it on GitHub
https://github.com/ga4gh/server/issues/430#issuecomment-107677050.

--
Wayne Stidolph |<PHONE_NUMBER> | LinkedIn
http://www.linkedin.com/in/waynestidolph | Google+
https://google.com/+WayneStidolph | twitter
https://twitter.com/#!/wstidolph | personal blog
http://waynedge.blogspot.com/
—
Reply to this email directly or view it on GitHub.*

—
Reply to this email directly or view it on GitHub
https://github.com/ga4gh/server/issues/430#issuecomment-107681485.

--
Wayne Stidolph |<PHONE_NUMBER> | LinkedIn
http://www.linkedin.com/in/waynestidolph | Google+
https://google.com/+WayneStidolph | twitter
https://twitter.com/#!/wstidolph | personal blog
http://waynedge.blogspot.com/
—
Reply to this email directly or view it on GitHub.*

Perfect!
Danny Colligan<EMAIL_ADDRESS>writes:

@diekhans ok, how does another top-level item on our docs site called "Current
Implementation Status" (or whatever) sound?
http://ga4gh-reference-implementation.readthedocs.org/en/develop/
Also I'd like to hear what @jeromekelleher thinks.
—
Reply to this email directly or view it on GitHub.*

Sorry to come in late to this discussion. There are a couple of points here:

End points that are in the schema that we haven't implemented should return 501. We currently return 404, and this is a bug. We should fix this in master, and backport the changes to the released version.
I don't think we should implement anything that isn't in the schema, other than the information page at '/'. Our API versioning system (which is not part of the protocol) with URL prefixes is working out to be troublesome, and apparently not particularly helpful to users. The official API documentation needs to be updated with specific instructions on how API versioning should be handled, preferably via HTTP the Content-Type.
I think we should add an implementation status page to the documentation as @dcolligan has suggested above. We should add this to the documentation for our bugfix release, so that it's clear what this supports and doesn't. Possible things to note:

Limited dataset support: datasetId fields are currently ignored, etc.
Good support for variants API, should be production ready.
Initial support for Reads API. Works, but needs expert review to ensure BAM->API conversion is done    correctly.
References not supported

Cool, I've filed some more specific issues based off of this thread.  Unless anyone objects, I think this thread should be closed and discussion should take place (if needed) in the more specific threads and (if needed) other bugs should be filed for other specific issues.

Agreed; closing.


I2S_DATA_BIT_WIDTH_20BIT (IDFGH-9256)

Is your feature request related to a problem?
I'm trying to get an ESP32-S3 device work with the ADAU7002 Stereo PDM-to-I2S device (https://www.analog.com/media/en/technical-documentation/data-sheets/ADAU7002.pdf).  Currently I see the following bit width support:
typedef enum {
I2S_DATA_BIT_WIDTH_8BIT    = 8,            /*!< I2S channel data bit-width: 8 /
I2S_DATA_BIT_WIDTH_16BIT   = 16,           /!< I2S channel data bit-width: 16 /
I2S_DATA_BIT_WIDTH_24BIT   = 24,           /!< I2S channel data bit-width: 24 /
I2S_DATA_BIT_WIDTH_32BIT   = 32,           /!< I2S channel data bit-width: 32 */
} i2s_data_bit_width_t;
It's unclear to me whether just using the integer 20 would work or not.  I've been struggling to configure this part to work in stereo and it's difficult to know whether it's the part or the I2S configuration.
More details on my debug/progress and some code snippets here:
https://www.esp32.com/viewtopic.php?f=13&t=31748&p=108985#p108985
Describe the solution you'd like.
Formal support for 20-bit data width I2S.
Describe alternatives you've considered.
Just simply using 20 as the value for .data_bit_width:
i2s_std_slot_config_t slot_cfg = {
.data_bit_width = 20,
...
Additional context.
https://www.esp32.com/viewtopic.php?f=13&t=31748&p=108985#p108985

Unfortunately, PDM output only support 16-bit width (mentioned in the pdm example)

This would be standard I2S via the ADAU7002 part.  Are you saying even using the ESP32-S3 I2s_std is limited to 16-bits?  If I were interfacing via PDM to the IM69D130 part I could understand the 16-bit limitation, but the ADAU7002 is a standard i2s interface with 20-bit resolution.

Oh, sorry, if you just want output 20-bit width in standard format, set i2s_data_bit_width_t  to 20 should work.

Ok, so then this would be a feature request to formally add that.

So with a 20-bit data_bit_width, and a 32-bit ws_width, I'm not having much success.  My config is as follows:
`   i2s_chan_config_t rx_chan_cfg = I2S_CHANNEL_DEFAULT_CONFIG(I2S_NUM_AUTO, I2S_ROLE_MASTER);
ESP_ERROR_CHECK(i2s_new_channel(&rx_chan_cfg, NULL, &rx_chan));
i2s_std_clk_config_t clk_cfg = {
    .clk_src = I2S_CLK_SRC_DEFAULT,
    .sample_rate_hz = SAMPLE_RATE,
    .mclk_multiple = I2S_MCLK_MULTIPLE_384};

i2s_std_slot_config_t slot_cfg = {
    .data_bit_width = BIT_WIDTH,
    .slot_bit_width = I2S_SLOT_BIT_WIDTH_AUTO,
    .slot_mode = I2S_SLOT_MODE_STEREO,
    .slot_mask = I2S_STD_SLOT_BOTH,
    .ws_width = I2S_DATA_BIT_WIDTH_32BIT,
    .ws_pol = false,
    .bit_shift = true,
    .left_align = false,
    .big_endian = false,
    .bit_order_lsb = false};

i2s_std_config_t rx_std_cfg = {
    .clk_cfg = clk_cfg,
    .slot_cfg = slot_cfg,
    .gpio_cfg = {
        .mclk = I2S_GPIO_UNUSED,
        .bclk = I2S_BCLK,
        .ws = I2S_WS,
        .dout = I2S_GPIO_UNUSED,
        .din = I2S_DIN,
        .invert_flags = {
            .mclk_inv = false,
            .bclk_inv = false,
            .ws_inv = false,
        },
    },
};

rx_std_cfg.slot_cfg.slot_mask = I2S_STD_SLOT_BOTH;
ESP_ERROR_CHECK(i2s_channel_init_std_mode(rx_chan, &rx_std_cfg));`

Sample rate is 44100, bit width is 20.
Has this even been tested?  Are you sure this is possible?

Hello @plasmaphase,
I'm also trying the ADAU7002 with ESP32-S3, and saw your post. I still can't manage to extract the channels (left/right) data from the i2s_channel_read buffer. Can you please post the complete code as an example?
Thank you!


disallowSpacesInAnonymousFunctionExpression: Removed semicolon.

I found a bad grammar. so removed semicolon in sample.

Thank you!


install.js

I am trying to build node-sass, rebuilding also doesn't work.
My node version: v11.3.0
My OS: Amazon Linux 2 AMI
After executing the scripts/install.js
I cannot download linux-x64-67_binding.nodedue to
Downloading binary from https://github.com/sass/node-sass/releases/download/v4.5.3/linux-x64-67_binding.node
Cannot download "https://github.com/sass/node-sass/releases/download/v4.5.3/linux-x64-67_binding.node":

HTTP error 404 Not Found

Thanks for help!

Consult the Node compatibility table on the release notes for your
node-sass version.
On Wed., 5 Dec. 2018, 6:53 pm Konrad<EMAIL_ADDRESS>wrote:

I am trying to build node-sass, rebuilding also doesn't work.
My node version: v11.3.0
My OS: Amazon Linux 2 AMI
After executing the scripts/install.js
I cannot download linux-x64-67_binding.nodedue to
Downloading binary from https://github.com/sass/node-sass/releases/download/v4.5.3/linux-x64-67_binding.node
Cannot download "https://github.com/sass/node-sass/releases/download/v4.5.3/linux-x64-67_binding.node":
HTTP error 404 Not Found
Thanks for help!
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/sass/node-sass/issues/2554, or mute the thread
https://github.com/notifications/unsubscribe-auth/AAjZWM_wuCDIL9E-QmNe57FSmylIYPt2ks5u13tsgaJpZM4ZCLqK
.


SHELL-1536

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


v1.16.4

Which issue(s) this PR fixes:
Fixes: N/A
What this PR does / why we need it:
Prepare v1.16.4 release
Docs Changes:
N/A
Release Note:
N/A

I'm working on this now.

I'm seeing

#4354

#4354

is not ready for v1.16.4, so I removed it from this milestone.
Now, we are ready to release v1.16.4.
If there are any oversights, please let me know.

Rebased to include

#4436

Checking CI...

Looks like #4433 works!
However, there are still a lot of unstable tests...
We need to fix them little by little.


Compiler loses ability to infer Root of KeyPath when it is Optional and Sendable

Description
When you require a keypath to be Sendable using & Sendable and then make that Optional the compiler loses the ability to infer the root and the KeyPath always needs to be fully qualified to compile.
Reproduction
import Foundation

struct SendableTest: Sendable {
    var text: String = "Hello, World!"
}

struct Storage {
    let keyPath: KeyPath<SendableTest, String> & Sendable
    let optionalKeyPath: (KeyPath<SendableTest, String> & Sendable)?
    let nonSendableKeyPath: KeyPath<SendableTest, String>
    let nonSendableOptionalKeyPath: KeyPath<SendableTest, String>?
}

let storage = Storage(
    keyPath: \.text,
    // Cannot convert value of type 'KeyPath<_, String>'
    // to expected argument type 'KeyPath<SendableTest, String>'
    optionalKeyPath: \.text,
    nonSendableKeyPath: \.text,
    nonSendableOptionalKeyPath: \.text
)

Expected behavior
The Root should be inferable even if the sendable keypath is optional.
Environment
Tested with:
swift-driver version: 1.115 Apple Swift version 6.0 (swiftlang-<IP_ADDRESS>.10 clang-16<IP_ADDRESS>)
swift-driver version: 1.115 Apple Swift version 6.0 (swiftlang-<IP_ADDRESS>.11 clang-16<IP_ADDRESS>)
Additional information
No response

We’re also experiencing issues with the ternary operator, and we assume it’s related to the same root cause.
In small projects, it works fine, but in larger codebases, the ability to infer the correct type seems to break.
struct Object: Sendable {
    let property : String
}

typealias KeyPathForProperty = KeyPath<Object, String> & Sendable

func test(keypath: KeyPathForProperty?) {}

let condition = true
test(keypath: condition ? \Object.property : nil) // Type of expression is ambiguous without a type annotation

You need to wrap it and use standard conditions to get it to compile.
var wrapped: KeyPathForProperty? {
    if condition {
        return \Object.property
    } else {
        return nil
    }
}

test(keypath: wrapped)


Can't reproduce pytorch behavior

Hello! I am new to reinforcement learning, and thought I'd start with a simple example using REINFORCE / Vanilla Policy Gradient and a very simple environment.
The environment is very simple: An entity at the center of a 10 space 1d grid. It can move left or right, and is rewarded if it goes all the way right and punished if it goes all the way left. In python, it very quickly converges on always moving to the right, as can be seen here:

python code
The same algorithm, written in Rust using tch-rs, never learns:

Rust code and Rust env.

As far as I can tell, the algorithms are identical. The only difference is that the Rust code uses bevy to run the loop, instead of a simple for loop. Is there some sort of global config that pytorch performs that I might be missing? Or anything else you can think of that would explain this difference?

Hello,
It's quite tricky to debug by just looking at the code but maybe you forgot to register the variables to the optimizer. By the way COptimizer is a low level api and we would recommend using the modules from nn instead, e.g. in your case:
let optimizer = nn::Adam::default().build(env.vs(), 1e-4).unwrap();

Where vs would be the VarStore from your environment that you've used to build policy_net. This would be used to inform the optimizer of the variables that it should perform gradient descent on.

Thanks for the reply!
Switching from COptimizer seems to have helped some, but it's still nowhere near the level of the python version.

I did find those examples, thanks, and that's where I started, but when I couldn't get them to work, I thought I'd try something simpler. I'll try playing with those examples more, I have learned some things since then and may have been doing something wrong.

I just implemented the policy_gradient example for my environment, and it looks much better. I don't know enough to discern the real differences between it and my port of the python example, but I'll go ahead and close this issue. Thanks again.

I just implemented the policy_gradient example for my environment, and it looks much better. I don't know enough to discern the real differences between it and my port of the python example, but I'll go ahead and close this issue. Thanks again.


Hide "rancher-webhook" chart

Currently "rancher-webhook" chart is available as experimental. It should be hidden.

"rancher-webhook" chart is not seen anymore in rancher repo.


Mapping ALT/META (:map  blah) keys get scrambled.

Issue
Any mapping that uses <m-key> or <a-key> gets scrambled into some other code.
The same behavior can be observer in all terminal configurations tested: (xterm, rxvt, Eterm, Linux console, tmux/no tmux, screen/no screen).
Steps to reproduce:
:map <m-s> blah|map
Expected result
<m-s> blah
Actual result
ó blah
Environment

VIM - Vi IMproved 8.0 (2016 Sep 12, compiled Dec 21 2016 20:05:08)
Ubuntu 18.04
terminator 1.91
tmux 2.6
echo $TERM = screen-256color-bce
set term? = term=screen-256color-bce

@AmokHuginnsson
After some careful testing, it appears as though this will fix most meta key mappings in terminal vim. Although, I could not get <m-@> to work in any terminal other than xterm, <m-[> and <m-]> didn't work in any terminal, <m-O> did not seem to cooperate in most terminals except for xterm (that's capital "Oh"), <c-up> and ` did not work in any terminal, and a few other nuances. However, mapping pretty much anything works in gvim and neovim.
if !has('nvim') && !has('gui_running')
  " set up Meta to work properly for most keys in terminal vim
  " NOTE: these do not work: <m-space>,<m->>,<m-[>,<m-]>,<m-{up,down,left,right}>
  " NOTE: <m-@>,<m-O> only work in xterm and gvim - not st, urxvt, etc
  " NOTE: map <m-\|> or <m-bar>
  for ord in range(33,61)+range(63,90)+[92]+range(94,126)
    let char = ord is 34 ? '\"' : ord is 124 ? '\|' : nr2char(ord)
    exec printf("set <m-%s>=\<esc>%s", char, char)
    if exists(':tnoremap') " fix terminal control sequences
      exec printf("tnoremap <silent> <m-%s> <esc>%s", char, char)
    endif
  endfor
  " set up <c-left> and <c-right> properly
  " NOTE: if below don't work, compare with ctrl-v + CTRL-{LEFT,RIGHT} in INSERT mode
  " NOTE: <c-up>,<c-down> do not work in any terminal
  exe "set <c-right>=\<esc>[1;5C"
  exe "set <c-left>=\<esc>[1;5D"
endif

The tnoremap should fix a small bug in the terminal as well. Overall, this has treated me quite well, and I have had no major issues in vim 8.1 and 8.2.
Here is how you can test it (note: you have to manually type each key):
let s:lhs = {'|':'bar'}
let s:rhs = {'|':'bar', "'":"''"}
for ord in range(33,61)+range(63,90)+[92]+range(94,126)
    let char = nr2char(ord)
    let l = get(s:lhs, char, char)
    let r = get(s:rhs, char, char)
    exe printf("nnore <m-%s> :echo 'M-%s'<cr>", l, r)
endfor
" NOTE: you have to test manually; below doesn't work
" let s:lhs = {'|':'bar', '":'\"'}
" for ord in range(33,61)+range(63,90)+[92]+range(94,126)
"     let char = nr2char(ord)
"     let l = get(s:lhs, char, char)
"     let r = get(s:rhs, char, char)
"     redir => out
"     call feedkeys(eval('"\<m-'.l.'>"'), 't')
"     redir end
"     unsil echom (out == 'M-'.l)
" endfor

Now just go through each key by typing, for example, Alt# and seeing if it echos M-# (or the corresponding echo for whatever key combination you pressed).


all: Go 1.13.11 release status

Issue tracking the go1.13.11 release by releasebot.

Building Go toolchain1 using /tmp/workdir/go1.4.

Building Go toolchain2 using go_bootstrap and Go toolchain1.
Building Go toolchain3 using go_bootstrap and Go toolchain2.
Building packages and commands for freebsd/386.

##### Testing packages.
ok  	archive/tar	0.074s
ok  	archive/zip	0.535s
ok  	bufio	0.100s
ok  	bytes	7.046s
ok  	compress/bzip2	0.201s
ok  	compress/flate	0.995s
ok  	compress/gzip	0.326s
ok  	compress/lzw	0.179s
ok  	compress/zlib	1.052s
ok  	container/heap	0.018s
ok  	container/list	0.006s
ok  	container/ring	0.014s
ok  	context	1.071s
ok  	crypto	0.012s
ok  	crypto/aes	0.044s
ok  	crypto/cipher	0.032s
ok  	crypto/des	0.091s
ok  	crypto/dsa	0.088s
ok  	crypto/ecdsa	0.355s
ok  	crypto/ed25519	0.335s
ok  	crypto/elliptic	0.055s
ok  	crypto/hmac	0.011s
ok  	crypto/internal/subtle	0.010s
ok  	crypto/md5	0.030s
ok  	crypto/rand	0.047s
ok  	crypto/rc4	0.112s
ok  	crypto/rsa	0.221s
ok  	crypto/sha1	0.009s
ok  	crypto/sha256	0.010s
ok  	crypto/sha512	0.017s
ok  	crypto/subtle	0.010s
ok  	crypto/tls	4.113s
ok  	crypto/x509	2.882s
ok  	database/sql	0.800s
ok  	database/sql/driver	0.031s
ok  	debug/dwarf	0.026s
ok  	debug/elf	0.083s
ok  	debug/gosym	0.014s
ok  	debug/macho	0.023s
ok  	debug/pe	0.031s
ok  	debug/plan9obj	0.009s
ok  	encoding/ascii85	0.024s
ok  	encoding/asn1	0.020s
ok  	encoding/base32	0.078s
ok  	encoding/base64	0.026s
ok  	encoding/binary	0.008s
ok  	encoding/csv	0.034s
ok  	encoding/gob	0.038s
ok  	encoding/hex	0.025s
ok  	encoding/json	0.190s
ok  	encoding/pem	0.018s
ok  	encoding/xml	0.070s
ok  	errors	0.018s
ok  	expvar	0.019s
ok  	flag	0.037s
ok  	fmt	0.107s
ok  	go/ast	0.039s
ok  	go/build	0.251s
ok  	go/constant	0.011s
ok  	go/doc	0.083s
ok  	go/format	0.027s
ok  	go/importer	0.207s
ok  	go/internal/gccgoimporter	0.019s
ok  	go/internal/gcimporter	4.400s
ok  	go/internal/srcimporter	3.089s
ok  	go/parser	0.037s
ok  	go/printer	0.421s
ok  	go/scanner	0.008s
ok  	go/token	0.035s
ok  	go/types	2.602s
ok  	hash	0.020s
ok  	hash/adler32	0.042s
ok  	hash/crc32	0.012s
ok  	hash/crc64	0.009s
ok  	hash/fnv	0.012s
ok  	html	0.031s
ok  	html/template	0.061s
ok  	image	0.222s
ok  	image/color	0.033s
ok  	image/draw	0.092s
ok  	image/gif	0.603s
ok  	image/jpeg	0.391s
ok  	image/png	0.084s
ok  	index/suffixarray	0.521s
ok  	internal/cpu	0.066s
ok  	internal/fmtsort	0.135s
ok  	internal/poll	0.064s
ok  	internal/reflectlite	0.013s
ok  	internal/singleflight	0.026s
ok  	internal/trace	0.188s
ok  	internal/xcoff	0.034s
ok  	io	0.057s
ok  	io/ioutil	0.009s
ok  	log	0.044s
ok  	log/syslog	1.333s
ok  	math	0.023s
ok  	math/big	1.182s
ok  	math/bits	0.024s
ok  	math/cmplx	0.036s
ok  	math/rand	1.135s
ok  	mime	0.020s
ok  	mime/multipart	0.294s
ok  	mime/quotedprintable	0.016s
ok  	net	17.862s
ok  	net/http	8.735s
ok  	net/http/cgi	0.749s
ok  	net/http/cookiejar	0.023s
ok  	net/http/fcgi	0.014s
ok  	net/http/httptest	0.110s
ok  	net/http/httptrace	0.007s
ok  	net/http/httputil	0.048s
ok  	net/http/internal	0.012s
ok  	net/http/pprof	2.049s
ok  	net/internal/socktest	0.007s
ok  	net/mail	0.010s
ok  	net/rpc	0.049s
ok  	net/rpc/jsonrpc	0.013s
ok  	net/smtp	0.045s
ok  	net/textproto	0.013s
ok  	net/url	0.017s
ok  	os	0.855s
ok  	os/exec	0.588s
ok  	os/signal	5.844s
ok  	os/user	0.008s
ok  	path	0.007s
ok  	path/filepath	0.061s
ok  	plugin	0.015s
ok  	reflect	0.581s
ok  	regexp	0.410s
ok  	regexp/syntax	0.771s
ok  	runtime	65.985s
ok  	runtime/debug	0.128s
ok  	runtime/internal/atomic	0.071s
ok  	runtime/internal/math	0.032s
ok  	runtime/internal/sys	0.020s
ok  	runtime/pprof	7.909s
ok  	runtime/pprof/internal/profile	0.007s
ok  	runtime/trace	1.671s
ok  	sort	0.099s
ok  	strconv	1.099s
ok  	strings	5.675s
ok  	sync	0.468s
ok  	sync/atomic	0.053s
ok  	syscall	0.341s
ok  	testing	0.557s
ok  	testing/quick	0.082s
ok  	text/scanner	0.011s
ok  	text/tabwriter	0.024s
ok  	text/template	0.090s
ok  	text/template/parse	0.012s
ok  	time	3.091s
ok  	unicode	0.049s
ok  	unicode/utf16	0.030s
ok  	unicode/utf8	0.012s
ok  	cmd/addr2line	3.015s
ok  	cmd/api	0.020s
ok  	cmd/asm/internal/asm	2.877s
ok  	cmd/asm/internal/lex	0.009s
ok  	cmd/compile	0.008s
ok  	cmd/compile/internal/gc	40.608s
ok  	cmd/compile/internal/ssa	1.094s
ok  	cmd/compile/internal/syntax	0.018s
ok  	cmd/compile/internal/test	0.006s [no tests to run]
ok  	cmd/compile/internal/types	0.006s
ok  	cmd/cover	3.312s
ok  	cmd/doc	0.101s
ok  	cmd/fix	0.084s
ok  	cmd/go	88.622s
ok  	cmd/go/internal/auth	0.023s
ok  	cmd/go/internal/cache	0.975s
ok  	cmd/go/internal/dirhash	0.010s
ok  	cmd/go/internal/generate	0.021s
ok  	cmd/go/internal/get	0.029s
ok  	cmd/go/internal/imports	0.013s
ok  	cmd/go/internal/load	0.160s
ok  	cmd/go/internal/lockedfile	0.021s
ok  	cmd/go/internal/lockedfile/internal/filelock	0.058s
ok  	cmd/go/internal/modconv	0.223s
ok  	cmd/go/internal/modfetch	0.040s
ok  	cmd/go/internal/modfetch/codehost	0.010s
ok  	cmd/go/internal/modfile	0.019s
ok  	cmd/go/internal/modload	0.019s
ok  	cmd/go/internal/module	0.007s
ok  	cmd/go/internal/mvs	0.022s
ok  	cmd/go/internal/note	0.115s
ok  	cmd/go/internal/par	0.046s
ok  	cmd/go/internal/renameio	0.526s
ok  	cmd/go/internal/search	0.021s
ok  	cmd/go/internal/semver	0.009s
ok  	cmd/go/internal/sumweb	0.074s
ok  	cmd/go/internal/tlog	2.836s
ok  	cmd/go/internal/txtar	0.007s
ok  	cmd/go/internal/web	0.009s
ok  	cmd/go/internal/work	0.018s
ok  	cmd/gofmt	0.056s
ok  	cmd/internal/buildid	0.406s
ok  	cmd/internal/dwarf	0.017s
ok  	cmd/internal/edit	0.033s
ok  	cmd/internal/goobj	1.609s
ok  	cmd/internal/obj	0.026s
ok  	cmd/internal/obj/arm64	0.023s
ok  	cmd/internal/obj/x86	5.541s
ok  	cmd/internal/objabi	0.010s
ok  	cmd/internal/src	0.007s
ok  	cmd/internal/test2json	0.207s
ok  	cmd/link	11.937s
ok  	cmd/link/internal/ld	3.881s
ok  	cmd/link/internal/sym	0.021s
ok  	cmd/nm	5.159s
ok  	cmd/objdump	4.007s
ok  	cmd/pack	2.745s
ok  	cmd/trace	0.044s
ok  	cmd/vet	15.043s

##### os/user with tag osusergo
ok  	os/user	0.015s

##### GOMAXPROCS=2 runtime -cpu=1,2,4 -quick
ok  	runtime	47.468s

##### moved GOROOT
ok  	fmt	0.070s

##### Testing without libgcc.
ok  	crypto/x509	0.970s
ok  	net	0.016s
ok  	os/user	0.006s

##### sync -cpu=10
ok  	sync	0.553s

##### ../misc/cgo/stdio
PASS

##### ../misc/cgo/life
PASS

##### ../misc/cgo/test
PASS
ok  	misc/cgo/test	6.436s
PASS
ok  	misc/cgo/test	5.760s
PASS
ok  	misc/cgo/test	6.858s
PASS
ok  	misc/cgo/testtls	0.007s
PASS
ok  	misc/cgo/testtls	0.006s
PASS
ok  	misc/cgo/testtls	0.008s
PASS
ok  	misc/cgo/nocgo	0.006s
PASS
ok  	misc/cgo/nocgo	0.004s
PASS
ok  	misc/cgo/nocgo	0.005s
PASS
ok  	misc/cgo/test	4.650s
PASS
ok  	misc/cgo/test	4.526s

##### ../misc/cgo/testgodefs

##### ../misc/cgo/testso
ok  	misc/cgo/testso	1.016s

##### ../misc/cgo/testsovar
ok  	misc/cgo/testsovar	1.093s

##### ../misc/cgo/errors
PASS

##### ../doc/progs
       11.54 real        25.19 user         9.79 sys

##### ../doc/articles/wiki
PASS
./test.bash: line 14: 15164 Terminated              ./final-test.bin

##### ../doc/codewalk
        8.71 real         3.58 user         1.62 sys

##### ../test/bench/go1

##### ../test
# go run run.go -- locklinear.go
exit status 1
panic: lockmany: too slow: 1000 ops: 17.525971ms; 2000 ops: 434.470861ms

1000 88.939516ms 2000 88.228811ms (1.0X)
1000 21.806403ms 2000 18.572751ms (0.9X)
1000 8.969297ms 2000 89.686538ms (10.0X)
1000 49.2124ms 2000 36.911953ms (0.8X)
1000 11.804853ms 2000 168.206574ms (14.2X)
1000 51.17913ms 2000 285.482372ms (5.6X)
1000 79.79394ms 2000 90.053345ms (1.1X)
1000 17.525971ms 2000 434.470861ms (24.8X)

goroutine 1 [running]:
main.checkLinear(0x80fd003, 0x8, 0x3e8, 0x8103c9c)
	/tmp/workdir/go/test/locklinear.go:73 +0x564
main.main()
	/tmp/workdir/go/test/locklinear.go:134 +0x5f
exit status 2

FAIL	locklinear.go	7.220s
2020/05/14 18:35:20 Failed: exit status 1

##### API check
Go version is "go1.13.11", ignoring -next /tmp/workdir/go/api/next.txt
2020/05/14 18:35:56 FAILED
2020/05/14 14:36:56 $ /Users/andybons/go-releasebot-work/go1.13.11/gopath/bin/release -target freebsd-386 -user andybons -version go1.13.11 -staging_dir /Users/andybons/go-releasebot-work/go1.13.11/release-staging/ab079c950f1de6014a420919b3d7d873ff8e9e3b_922189679 -rev ab079c950f1de6014a420919b3d7d873ff8e9e3b
2020/05/14 14:54:36

The release is ready.

Please review and submit https://go-review.googlesource.com/q/I6fb5fbb3caf64e7d33412be4893edf8564e3a4de
and then run the release stage.

 Refer to the playbook for the next steps.

Thanks for riding with releasebot today.


setting theme from music overwrites the current theme. Can't revert

No content

Issue created by BlueBubbles Bot in the BlueBubbles commnity on behalf of @zach in #feedback.

Hopefully you remember the convo we had @tneotia


Error: "Backward sending grads, but get None"

Hi, I'm encountering an error Backward sending grads, but get None raised by the bwd_postprocess_task() during the model training. It seems that tensor will lose its requires_grad property after passing into this source code tensor_recv_next = xm.all_reduce(xm.REDUCE_SUM, tensor_recv_next, groups=groups) in src/neuronx_distributed/pipeline/comm.py.
This error also happens when I tried the demo Training Llama-2-13B/70B with Tensor Parallelism and Pipeline Parallelism (neuronx-distributed ) provided by the neuron document.
This is the log and compiler info:
simple.log
`2024-04-01 06:59:57.748428: W torch_xla/csrc/lowering_context.cpp:71] No custom opname metadata! op_type=xla___op_TransferWithStaticRingTransfer
  File "/home/ubuntu/qwb_venv_pytorch/lib/python3.8/site-packages/neuronx_distributed/pipeline/model.py", line 982, in _exec_schedule
    self._exec_instr()
  File "/home/ubuntu/qwb_venv_pytorch/lib/python3.8/site-packages/neuronx_distributed/pipeline/model.py", line 920, in _bwd_postprocess_task
    raise RuntimeError(rmsg("Backward sending grads, but get None"))
RuntimeError: [rank_8_pp1_tp0_dp0] Backward sending grads, but get None
Traceback (most recent call last):
  File "run_simple_model_nxd.py", line 289, in <module>
    _mp_fn(0, args)
  File "run_simple_model_nxd.py", line 225, in _mp_fn
    train_simple_model(args)
  File "run_simple_model_nxd.py", line 188, in train_simple_model
    loss = model.run_train(
  File "/home/ubuntu/qwb_venv_pytorch/lib/python3.8/site-packages/neuronx_distributed/trainer/model.py", line 25, in run_train
    return self.module.run_train(*args, **kwargs)
  File "/home/ubuntu/qwb_venv_pytorch/lib/python3.8/site-packages/neuronx_distributed/pipeline/model.py", line 542, in run_train
    loss = self._run_train(**kwargs)
  File "/home/ubuntu/qwb_venv_pytorch/lib/python3.8/site-packages/neuronx_distributed/pipeline/model.py", line 561, in _run_train
    self._exec_schedule(self.train_scheduler)
  File "/home/ubuntu/qwb_venv_pytorch/lib/python3.8/site-packages/neuronx_distributed/pipeline/model.py", line 982, in _exec_schedule
    self._exec_instr()
  File "/home/ubuntu/qwb_venv_pytorch/lib/python3.8/site-packages/neuronx_distributed/pipeline/model.py", line 920, in _bwd_postprocess_task
    raise RuntimeError(rmsg("Backward sending grads, but get None"))
RuntimeError: [rank_24_pp3_tp0_dp0] Backward sending grads, but get None`

Package version:

Other system details:
instance: Trn1
OS: Ubuntu 20.04
If you need other information, please let me konw. Thanks.

Hi @wfckl789, thank you for raising the issue.
The issue is happening because of a bug in torch-xla where the gradient property is not retained after an all-reduce operation. The fix is already applied in the torch-xla code, but it is not available in the torch-xla==2.1 release. As a temporary workaround, we have added a patch in Neuronx-Distributed for this particular case and it should be available with 2.18 release.
If you could upgrade to Neuronx-Distributed==0.7, this issue should be resolved.