PP-5812 Add payment provider to StateTransitionService log line

To enable our payment journey SLI we need to know the payment
provider when emitting events so that we can exclude sandbox. This is
being added as a structured argument.
Also take the opportunity to add the to_state and from_state as
structured arguments to the logger to make the implementation of the sli
query in Splunk simpler.

Thanks Stephen, I've corrected the format string, tested locally and now get what we expect.
{"@timestamp":"2019-11-06T08:36:19.185Z","@version":"1","message":"Offered payment state transition to emitter queue [from=SYSTEM CANCEL READY] [to=SYSTEM CANCELLED] [chargeEventId=16] [chargeId=charge1147303691]","logger_name":"uk.gov.pay.connector.queue.StateTransitionService$$EnhancerByGuice$$62bcb127","thread_name":"dw-63 - POST /v1/api/accounts/1595730147/charges/charge1147303691/cancel","level":"INFO","level_value":20000,"chargeId":"charge1147303691","provider":"worldpay","from_state":"SYSTEM_CANCEL_READY","to_state":"SYSTEM_CANCELLED","container":"connector"}

Wrt to your question, I don't think we need it in both places and the line we're using comes after the Changing charge status and after the charge status has actually been updated, so I think its preferable.


[labs/task] Add pluggable task args equality functions

Fixes: https://github.com/lit/lit/issues/3142

Adds argsEqual config option
Removes shouldRun() and performTask() protected methods
Adds shallowArrayEquals, deepArrayEquals, and deepEquals functions

The deepEquals() is inspired by fast-deep-equals, but rewritten to use modern JS, Object.is(), and have a different ordering of cases that should better match expected data (Dates would be more likely than RegExps). I did not yet include Map and Set comparison. I didn't find a nice deep equals package to depend on that fit our needs.
Talking to @rictic I think we may also want to generalize args to just "data" and not assume it's array, but this can be a step towards that with the array-assuming equality functions.

I'm a little stuck on the tests right now. Safari can't seem to load the new deep-equals test module, I would guess because there's some language feature or eagerly called DOM API that Safari 11 doesn't support yet. But I ran both the dev and prod tests in Safari 11 in a live Sauce session and they all load and pass. The GitHub actions logs are giving nothing more than a "failed to load module" error. No browser logs that say what the specific error is.


chore(deps): update dependency eslint-plugin-ember to v12.3.0

This PR contains the following updates:

Package
Type
Update
Change

eslint-plugin-ember
devDependencies
minor
12.2.1 -> 12.3.0

Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.

[ ] If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

⚠ Artifact update problem
Renovate failed to update an artifact related to this branch. You probably do not want to merge this PR as-is.
♻ Renovate will retry this branch, including artifacts, only when one of the following happens:

any of the package files in this branch needs updating, or
the branch becomes conflicted, or
you click the rebase/retry checkbox if found above, or
you rename this PR's title to start with "rebase!" to trigger it manually

The artifact failure details are included below:
File name: pnpm-lock.yaml
Segmentation fault


ExtendsContentIntoTitleBar causes the crash of the app when closing in minimized state

Describe the bug
The app will crash if you try to close it when minimized in the taskbar providing the following message:

NOTE: I'm not sure if this is more related to WinUI or WASDK.
Steps to reproduce the bug

create a new app
copy the few example lines found in the official docs: https://learn.microsoft.com/en-us/windows/windows-app-sdk/api/winrt/microsoft.ui.xaml.window.settitlebar?view=windows-app-sdk-1.6
launch the app,
minimize it
right click on the icon is taskbar and close it.

Expected behavior
No response
Screenshots
No response
NuGet package version
Windows App SDK 1.6.1: 1.6.240923002
Packaging type
Packaged (MSIX)
Windows version
Windows 10 version 22H2 (19045, 2022 Update)
IDE
Visual Studio 2022
Additional context
No response

an area of @DarranRowe.


Wrong link Profile > Show Posts > Messages

On elkarte 2.0, click on a member Profile > Show Posts > Messages , there is an incorrect link to posts:
ex:
https://www.elkarte.net/community/index.php?action=profile;u=1389;name=alirezasaraei
going to Show Posts > Messages
https://www.elkarte.net/community/index.php?topic=63.0;msg=43670;%23msg43670
instead of
https://www.elkarte.net/community/index.php?topic=63.msg43670#msg43670
The link will bring you to the first post of the topic instead of the post you want to read.

Fixed here: https://github.com/elkarte/Elkarte/commit/f1dcc282bd774cc7ef5ca78070aff185c86ec326


[Feature Request] Allow el-input-number use same input slots presents in el-input

Existing Component
Yes
Component Name
el-input-number
Description
It would be nice if we can use for the component el-input-number, some slots present in the el-input. So we can use something like this:
<el-input-number v-model="price" controls-position="right" :min="1">
    <template slot="prepend">$</template>
</el-input-number>

Thanks in advance for your time.

Sorry, we have no plan to support this.


Installation on Ubuntu. 22.04 failed

Followed the steps in the description:
wget -q https://packages.microsoft.com/config/ubuntu/$(lsb_release -rs)/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
sudo apt-get update
sudo apt-get install sysmonforlinux
E: Unable to locate package sysmonforlinux
Repo is in the source-list, had run apt update, but didn't worked.

There is no Ubuntu 22.04 Support yet. Or am I wrong?

Maybe thats the issue. Thought I read something about Ubuntu 20 or higher. But I can be wrong.

The installation instructions are declared "For Ubuntu 20.04 and later".

We don't have packages for 22.04 (yet) as the preview was released prior to 22.04 releasing. I'm in the process of making some fixes to the eBPF verifier failing to load on some distros and once that is done, we will publish new packages. In the meantime, if possible, you can always build it (or try installing the 20.04 package on 22.04).

Hey Mario, i tried  installing it on 22.04 but always get stucked. but never mind, i will wait for your guys release. take your time :)

Closing as I've pushed a fix that should resolve the issue. If you encounter it again, please reopen. Please note that you will have to build Sysmon until we get new packages out.


Handle platform-specific file names

Problem statement
I just got bitten by this. If you have a field name that ends in something like "_windows", then the file produced will end with "_windows.go", and will only be included in the build if you are on that OS. Likewise for other fields that happen to match a possible GOARCH or GOOS value (see https://golang.org/pkg/go/build/)
I could imagine several ways to handle this:

Stop using underscores in file names, since it's not recommended anyway
Warn or err when a path component would overlap with GOARCH/GOOS
Rather than warn or err, use some replacement

How about adding the windows word as a custom initialism (with CLI option)?
It should render as _WINDOWS and this is likely to pass the build. Just as thought, I haven't tested thix.

we can add this to the mangle name function. We rewrite numbers and operators already, we can make sure we don't override os names

@dankinder if you have a sample spec to reproduce this, I may fix it quick and good. Thanks.

Create apispec.yaml with this:
swagger: '2.0'

info:
  version: 1.0.0
  title: MyApp
  description: (Description pending)

paths:
  /hello:
    get:
      summary: Simple Hello World endpoint
      tags: ['Hello']
      responses:
        '200':
          description: service is saying hello
          schema:
            $ref: '#/definitions/somethingEndingInWindows'

definitions:
  somethingEndingInWindows:
    type: object

Then:
$ swagger generate client -f apispec.yaml
2018/07/06 17:49:03 validating spec /home/dkinder/go/src/ghe.iparadigms.com/iParadigms/goswagtest/apispec.yaml
2018/07/06 17:49:05 preprocessing spec with option:  minimal flattening
2018/07/06 17:49:05 building a plan for generation
2018/07/06 17:49:05 planning definitions
2018/07/06 17:49:05 planning operations
2018/07/06 17:49:05 grouping operations into packages
2018/07/06 17:49:05 planning meta data and facades
2018/07/06 17:49:05 rendering 1 templates for model somethingEndingInWindows
2018/07/06 17:49:05 name field somethingEndingInWindows
2018/07/06 17:49:05 package field models
2018/07/06 17:49:05 creating generated file "something_ending_in_windows.go" in "models" as definition
2018/07/06 17:49:05 executed template asset:model
2018/07/06 17:49:05 rendering 2 templates for operation
2018/07/06 17:49:05 name field GetHello
2018/07/06 17:49:05 package field hello
2018/07/06 17:49:05 creating generated file "get_hello_parameters.go" in "client/hello" as parameters
2018/07/06 17:49:05 executed template asset:clientParameter
2018/07/06 17:49:05 name field GetHello
2018/07/06 17:49:05 package field hello
2018/07/06 17:49:05 creating generated file "get_hello_responses.go" in "client/hello" as responses
2018/07/06 17:49:05 executed template asset:clientResponse
2018/07/06 17:49:05 rendering 1 templates for operation group
2018/07/06 17:49:05 name field hello
2018/07/06 17:49:05 creating generated file "hello_client.go" in "client/hello" as client
2018/07/06 17:49:05 executed template asset:clientClient
2018/07/06 17:49:05 rendering 1 templates for application MyApp
2018/07/06 17:49:05 name field MyApp
2018/07/06 17:49:05 package field client
2018/07/06 17:49:05 creating generated file "my_app_client.go" in "client" as facade
2018/07/06 17:49:05 executed template asset:clientFacade
2018/07/06 17:49:05 Generation completed!

For this generation to compile you need to have some packages in your GOPATH:

	* github.com/go-openapi/runtime
	* golang.org/x/net/context
	* golang.org/x/net/context/ctxhttp

You can get these now with: go get -u -f ./...
$ go install ./models
can't load package: package ghe.iparadigms.com/iParadigms/goswagtest/models: no buildable Go source files in /home/dkinder/go/src/ghe.iparadigms.com/iParadigms/goswagtest/models
$ ls models/
something_ending_in_windows.go


Allow custom includePaths for sass

Allow developers to customize includePaths for sass-loader by specify environment variable SASS_INCLUDEPATHS, e.g. SASS_INCLUDEPATHS="./node_modules".
See also: https://github.com/material-components/material-components-web-react/issues/109.
Fixes #4494, #4651.

SASS already has support for the SASS_PATH env variable - http://sass-lang.com/documentation/Sass.html
How about just allowing this instead instead of introducting new config?
I was able to get this working just by adding this one line to env.js:
...
PUBLIC_URL: publicUrl,
SASS_PATH: process.env.SASS_PATH

Adding the following to .env at root of project worked for me:
SASS_PATH=node_modules

Same as https://github.com/facebook/create-react-app/pull/5599#issuecomment-440277096,
For multiple directories, you can do this:
SASS_PATH=node_modules:src:some_directory


language detection does not work as expected

OS: windows
Verisons used
"i18next": "^11.2.3",
"i18next-browser-languagedetector": "^2.1.0",
"i18next-express-middleware": "^1.8.2",
"i18next-xhr-backend": "^1.5.1",
I am using i18next with nodeJs express server.
When any request flows into the server, the language is changed based on req.language but the key value of the message is always english
I have the code something like this
i18next
.use(i18nextMiddleware.LanguageDetector)
.use(i18NodefsBackend)
.init({
debug: true,
preload: ['de','en','es','fr','it','ja','ko','pt','zh'],
fallbackLng: ['en'],
ns: ['translation'],
backend: {
loadPath: "src/server/locales/{{lng}}/{{ns}}.json"
}
});
app.use(i18nextMiddleware.handle(i18next));
and in my route handler I have this code
function handler(req, res) {
//i18next.changeLanguage(req.language);    // LINE-1
i18next.t('unauthorized'); // I always get english strings
}
When I un-comment LINE-1 this works. But I do not want to changeLanguage setting for every request and this is supposed to be handled by i18nextMiddleware.
In the logs I can see a message
i18next: languageChanged de
though the language is changed, the translated values is always in english. I tried all the options but could not figure out the issue.

you can't use 18next.t('unauthorized') that's accessing a singleton inside an async request -> think of concurrency of two requests having need for different language -> you won't get what you expect.
use req.t like shown: https://github.com/i18next/i18next-express-middleware#wire-up-i18next-to-request-object

I tried that as well, and the output of the line
console.log(req.t('unauthorized'));
is
translation:unauthorized

looks, like you calling t before translations were loaded...

beside that ... don't call changeLanguage of i18next - but the one you get in request...req.i18n.changeLanguage("en");
just keep in mind: concurrent request - using singleton is bad - only use what is on req.

Sure and Thank you.
The translation files are loaded as the node server starts up.
And the call what we are making is in the route request.. so the files are loaded and I can see them when the sever started when I have debug set to true and also before the route method is invoked I can see the language change happening as mentioned

well, seeing the key instead of the value is a clear sign of it does not exist (neither in detected nor in fallback language)...you will have to dig deeper as I can't...sorry...

you also might try req.i18n.changeLanguage("en", function() { console.log(req.t('unauthorized'));  } );

I tired the above one as well... here is the output of all
if you see the first line, it shows that the translations are loaded as it gives the value.
i18next.t('unauthorized') : User is not authorized to access
req.t('unauthorized') : translation:unauthorized
req.i18n.changeLanguage('en')...  : translation:unauthorized
Am I missing anything... When should we defines the I18Next .. I did it globally in app.js of express

can you make a minimal sample for reproduction...honestly...I can't follow this by all the small snipplets pasted...

sure.. will make a sample and send it

I created a simple app, to check the language switch.
and it does not work.
I am using header/queryparam  so that languagedetector kicks in but it does not happen.
It would be great if you could help me out in fixing the issue.
i18next_sample_node_express.zip

I created a simple app, to check the language switch.
and it does not work.
I am using header/queryparam so that languagedetector kicks in but it does not happen.
It would be great if you could help me out in fixing the issue.
i18next_sample_node_express.zip

did following changes:
var express = require('express');
var request = require('request');

var i18next = require('i18next');
var i18nextMiddleware = require("i18next-express-middleware");
var i18NodefsBackend = require('i18next-node-fs-backend');

i18next
    .use(i18nextMiddleware.LanguageDetector)
    .use(i18NodefsBackend)
    .init({
        debug: true,
        preload: ['de','en','zh'],
        fallbackLng: ['en'],
        ns: ['translation'],
        backend: {
            loadPath: "/locales/{{lng}}/{{ns}}.json"
        }
});

var app = express();
module.exports.app = app;

app.use(i18nextMiddleware.handle(i18next));

app.get('/i18test', function (req, res) {
    //i18next.changeLanguage(req.headers["accept-language"]);
    console.log("i18next.t('unauthorized') : "+i18next.t('unauthorized'));
    console.log("req.t('unauthorized') : "+req.t('unauthorized'));
    res.send(req.language + '  ==  ' +i18next.t('unauthorized'));
});

app.listen(8443, function() {
    console.log("Server listening on port", 8443);
});

fixed the path (might be only structure of in this zip archive - but there is no /src/)
required the backend (import might work on your side)
added the app.get('/i18test', function (req, res) { after the express-middleware so that runs before route...

==> all works
http://localhost:8443/i18test --> en-US == unauthorized
http://localhost:8443/i18test?lng=de --> de == unauthorized
What's the deal?

Yeah.. I dint include the src... that was correct in my case.
The only difference I see is that moving the app.use(i18nextMiddleware.handle(i18next)); solved the issue
Thank you

If you like this module don’t forget to star this repo. Make a tweet, share the word or have a look at our https://locize.com to support the devs of this project.
If you liked my support / work - I would enjoy a coffee sponsored using the “:purple_heart:Sponsor Button”.
There are many ways to help this project :pray:


DBZ-3642 CloudEventConverter can also work with source records

I started this to make combination of Outbox SMT and CloudEventConverter working. Maybe it also can be used for other use cases when the converter receives records after some SMT was applied.
This change works when a payload contains just data of a "business-event" along with type of an event: the new test uses such JSON: "{\"email\"<EMAIL_ADDRESS>\"type\": \"SomeType\"}",
It is not the final version; it is needed:

to pass in runtime a record instead of record.value() to CloudEventsConverters.fromConnectData
to get rid of data->payload nesting
to change CloudEventsMaker.ceId implementation not to generate id bur get it from a record's header

@Naros
done


Support valuePath leading to a promise

In one of my cells I am trying to display a value from a function that returns a promise, but it seems like
the object being displayed is the promise object.
Related code:
export default Ember.Component.extend({

  model: null,

  columns: Ember.computed(function() {
    return [
     ...
      {
        label: 'Price',
        valuePath: 'calculatedPrice',
        format: function(param){
          return param.then(function (data) {
            return data;
          });
        }
      },
    ];
  }),

  table: Ember.computed('row.servicebillings', function() {
    return new Table(this.get('columns'), this.get('row.servicebillings'));
  }),
});

and calculatedPrice is computed as
calculatedPrice: Ember.computed('customerservice', 'price', function() {
    let that = this;

    return this.get('customerservice.service.latestPricing').then(
      function(pricing){
        let price = null;
        if (that.get('price')){
          price =  that.get('price');
        }
        else if (pricing){
          price = pricing.get('price');
        }
        return price;
      }
    );
  })

In the rendered table I see [object Object] which I am assuming is the promise object. If I try changing calculatedPrice to return an arbitrary value (and the code in the cell's format function) I can see the content correctly in my cell.
If I understand correctly this means that the promise is not resolved, and I think I've done "my part".
Am I missing something?

What you're observing is the default / expected behavior
format: function(param){
          return param.then(function (data) {
            return data;
          });

since you're returning a promise here, as you've mentioned, and format isn't promise aware, then you get the promise object itself.
I could probably suggest some things you should do, but I don't think they'd be pretty. any reason you cant just block the table from loading until the data is resolved. Or similarly use the body loader?
http://offirgolan.github.io/ember-light-table/docs/modules/Component Declaration.html

Blocking the table from loading would perhaps be the best solution. I am also thinking of using a custom 'cellComponent', wrapping the promise in DS.PromiseObject and resolving it there.
Any possible examples on how I could block the table? I am not sure how this is implemented..

Blocking the table from loading would perhaps be the best solution. I am also thinking of using a custom 'cellComponent', wrapping the promise in DS.PromiseObject and resolving it there.

That was one of the alternatives I was thinking. I would go this route if I were loading column data asynchronously and wanted to display loading indicators on columns, but show the data per each column as soon as it is available.
I would use the body-loader if I had one promise for the whole table or didn't want to show data until everything was loaded.
There's several ways to get the state of a promise ranging from lo-fi to hi-fi:

Keep track of the state manually a la .then((data) => { this.set('value', data); this.set('loading', false); }) :-1:
https://www.emberjs.com/api/classes/Ember.PromiseProxyMixin.html
http://ember-concurrency.com/#/docs

Thank you @alexander-alvarez. I will take a look at those. I will close this since it is not actually an ember-light-table issue. Or an actual issue, for that matter.


Return a 400 status instead of 412 for API version checks

Resolves #217

@royclarkson I don't think this change is the right one. What the OSB API spec says is:

In this scenario [the Service Broker's expected version doesn't match the Platform's provided version] the Service Broker MAY reject the request with 412 Precondition Failed

This behavior should be preserved.
The case that wasn't being handled is when the X-Broker-API-Version header is missing from the request, even though it's required by the spec. The suggestion was that a 400 Bad Request should be returned in this case.

Hi @royclarkson, I agree with @scottfrederick about preserving this behavior:

In this scenario [the Service Broker's expected version doesn't match the Platform's provided version] the Service Broker MAY reject the request with 412 Precondition Failed

In the issue https://github.com/spring-cloud/spring-cloud-open-service-broker/issues/217 I mean about behavior of the response when X-Broker-API-Version in the request is missing. Because according to the OSB spec the status of 412 Precondition Failed should be returned when the header X-Broker-API-Version doesn't match, but not missing.

@aukhatov @scottfrederick thanks for the feedback. I misunderstood the requirement. I'll modify this PR to only return a 400 if the developer has configured a specific version for the service broker AND the header is missing. However, if the header is missing, but there is no version configured, then we'll continue to ignore it as was previously discussed. Do I have the requirement sorted now? :)

@royclarkson Yes, thank you!
What version do we need to expect?

Closing in favor of community contribution #219


Update ioBroker.type-detector

Hi, I just looked at your really successful adapter.
I just noticed that you are using a very old version of the ioBroker.type-detector, it would be cool if you could update it.

Hello, you are right, that was really a very old version. Just updated to the current version (can already be tried with the current Github version of iQontrol and will be included in the next release). Thank you!


Inject HTTPClientFactory to the Krakend BackendFactory.

Version of KrakenD you are using
v2.0.6
Is your feature request related to a problem? Please describe.
I have been struggling to enhance the behavior of the http.Client used in the backend layer.
Is it possible to wrap or inject HTTPClientFactory so that I can customize the behavior of the HTTPClient, i.e. wrap the Transport layer?
Describe the solution you'd like
The idea is to inject an HTTPClientFactory to the BackendFactory something like the diff below:
diff --git a/backend_factory.go b/backend_factory.go
index 519f436..a3d2b24 100644
--- a/backend_factory.go
+++ b/backend_factory.go
@@ -36,13 +36,12 @@ import (
 // - metrics collector
 // - opencensus collector
 func NewBackendFactory(logger logging.Logger, metricCollector *metrics.Metrics) proxy.BackendFactory {
-	return NewBackendFactoryWithContext(context.Background(), logger, metricCollector)
+	return NewBackendFactoryWithContext(context.Background(), logger, metricCollector, client.NewHTTPClient)
 }

 // NewBackendFactory creates a BackendFactory by stacking all the available middlewares and injecting the received context
-func NewBackendFactoryWithContext(ctx context.Context, logger logging.Logger, metricCollector *metrics.Metrics) proxy.BackendFactory {
+func NewBackendFactoryWithContext(ctx context.Context, logger logging.Logger, metricCollector *metrics.Metrics, clientFactory client.HTTPClientFactory) proxy.BackendFactory {
 	requestExecutorFactory := func(cfg *config.Backend) client.HTTPRequestExecutor {
-		clientFactory := client.NewHTTPClient
 		if _, ok := cfg.ExtraConfig[oauth2client.Namespace]; ok {
 			clientFactory = oauth2client.NewHTTPClient(cfg)
 		} else {
@@ -71,6 +70,6 @@ func NewBackendFactoryWithContext(ctx context.Context, logger logging.Logger, me

 type backendFactory struct{}

-func (backendFactory) NewBackendFactory(ctx context.Context, l logging.Logger, m *metrics.Metrics) proxy.BackendFactory {
-	return NewBackendFactoryWithContext(ctx, l, m)
+func (backendFactory) NewBackendFactory(ctx context.Context, l logging.Logger, m *metrics.Metrics, clientFactory client.HTTPClientFactory,) proxy.BackendFactory {
+	return NewBackendFactoryWithContext(ctx, l, m, clientFactory)
 }
diff --git a/executor.go b/executor.go
index 9d77104..1c91e65 100644
--- a/executor.go
+++ b/executor.go
@@ -39,6 +39,7 @@ import (
 	"github.com/luraproject/lura/v2/logging"
 	"github.com/luraproject/lura/v2/proxy"
 	router "github.com/luraproject/lura/v2/router/gin"
+	clientHttp "github.com/luraproject/lura/v2/transport/http/client"
 	serverhttp "github.com/luraproject/lura/v2/transport/http/server"
 	server "github.com/luraproject/lura/v2/transport/http/server/plugin"
 )
@@ -87,7 +88,7 @@ type ProxyFactory interface {

 // BackendFactory returns a KrakenD backend factory, ready to be passed to the KrakenD proxy factory
 type BackendFactory interface {
-	NewBackendFactory(context.Context, logging.Logger, *metrics.Metrics) proxy.BackendFactory
+	NewBackendFactory(context.Context, logging.Logger, *metrics.Metrics, clientHttp.HTTPClientFactory) proxy.BackendFactory
 }

 // HandlerFactory returns a KrakenD router handler factory, ready to be passed to the KrakenD RouterFactory
@@ -171,7 +172,7 @@ func (e *ExecutorBuilder) NewCmdExecutor(ctx context.Context) cmd.Executor {

 		pf := e.ProxyFactory.NewProxyFactory(
 			logger,
-			e.BackendFactory.NewBackendFactory(ctx, logger, metricCollector),
+			e.BackendFactory.NewBackendFactory(ctx, logger, metricCollector, clientHttp.NewHTTPClient),
 			metricCollector,
 		)

Describe alternatives you've considered
An alternative to this is to completely override the BackendFactory. Though the drawback to this is when it comes to upgrading the Krakend version I will need to make sure that I've updated the custom BackendFactory that I've created.
Additional context
This will allow me to create a derived BackendFactory from the BackendFactory of Krakend like this:
type backendFactory struct {
}

func (b backendFactory) NewBackendFactory(
	ctx context.Context,
	logger logging.Logger,
	m *krakendGin.Metrics,
	clientFactory client.HTTPClientFactory,
) proxy.BackendFactory {
	return krakend.NewBackendFactoryWithContext(ctx, logger, m, func(ctx context.Context) *http.Client {
			c := clientFactory(ctx)
			// c.Transport = some custom transport here for example.
	})
}

Hi @jbactad ,
For this level of customization, you should use proxy.CustomHTTPProxyFactory from lura that already allows you to inject your custom HTTPClientFactory.
https://github.com/luraproject/lura/blob/master/proxy/http.go#L24-L29


No rule on some target

Hi!
I've encountered a peculiar bug when trying to make musl-cross-make. I'm building a project that relies on the compiler generated by musl-cross-make, so my Makefile will build it, you can see the relevant portions here:
MUSLDIR    := $(CURDIR)/musl-cross-make/output
CC         := $(MUSLDIR)/bin/$(ARCH)-gcc
dependencies: $(CC)

# Clean the dependencies - Use this sparingly, musl-cross-make takes  along time to build
clean-dependencies:
	rm -rf musl-cross-make

# Build musl-cross-make
$(CC):
	-git clone https://github.com/richfelker/musl-cross-make.git -j`nproc`
	$(MAKE) -C musl-cross-make/ TARGET=$(ARCH) install

This was working when I would build with make ARCH=x86_64-linux-musl dependencies. When I tried to build for armeb-linux-musleabihf, I got an error (below). When I cleaned up my directory and tried building for x86_64-linux-musl I got the same error. Any insight on how to fix this?
The log below is the second time I run make ARCH=x86_64-linux-musl  dependencies, the first time generates a large output, of course, of everything building fine until I get to the below:
git clone https://github.com/richfelker/musl-cross-make.git -j`nproc`
fatal: destination path 'musl-cross-make' already exists and is not an empty directory.
make: [Makefile:38: /home/kali/Desktop/Stage0/musl-cross-make/output/bin/x86_64-linux-musl-gcc] Error 128 (ignored)
make -C musl-cross-make/ TARGET=x86_64-linux-musl install
make[1]: Entering directory '/home/kali/Desktop/Stage0/musl-cross-make'
cd build/local/x86_64-linux-musl && make OUTPUT=/home/kali/Desktop/Stage0/musl-cross-make/output install
make[2]: Entering directory '/home/kali/Desktop/Stage0/musl-cross-make/build/local/x86_64-linux-musl'
ln -sf lib obj_sysroot/lib32
ln -sf lib obj_sysroot/lib64
cd obj_musl && make MULTILIB_OSDIRNAMES= INFO_DEPS= infodir= ac_cv_prog_lex_root=lex.yy MAKEINFO=false DESTDIR=/home/kali/Desktop/Stage0/musl-cross-make/build/local/x86_64-linux-musl/obj_sysroot install-headers
make[3]: Entering directory '/home/kali/Desktop/Stage0/musl-cross-make/build/local/x86_64-linux-musl/obj_musl'
make[3]: *** No rule to make target '../src_musl/arch/x86_64-linux-musl/bits/alltypes.h.in', needed by 'obj/include/bits/alltypes.h'.  Stop.
make[3]: Leaving directory '/home/kali/Desktop/Stage0/musl-cross-make/build/local/x86_64-linux-musl/obj_musl'
make[2]: *** [Makefile:231: obj_sysroot/.lc_headers] Error 2
make[2]: Leaving directory '/home/kali/Desktop/Stage0/musl-cross-make/build/local/x86_64-linux-musl'
make[1]: *** [Makefile:185: install] Error 2
make[1]: Leaving directory '/home/kali/Desktop/Stage0/musl-cross-make'
make: *** [Makefile:39: /home/kali/Desktop/Stage0/musl-cross-make/output/bin/x86_64-linux-musl-gcc] Error 2

This:

git clone https://github.com/richfelker/musl-cross-make.git -j`nproc`
fatal: destination path 'musl-cross-make' already exists and is not an empty directory.

suggests you didn't actually rm -rf it. I don't know what kind of stale tree state you have left around but presumably you deleted part but not all of the tree and cloning failed to get it back because of what was still there.
FYI there is no need or reason to wipe the mcm directory between builds for different targets. If you want (e.g. to rebuild same target you already built from scratch) you can wipe the build and optionally output directories for it. But if you're building a different target it will happily build alongside the existing one without deleting anything.


feat: add linked-ci details modal for application and app group

Description
Hotfix for https://github.com/devtron-labs/dashboard/pull/1672/files
Fixes # (issue)
Type of change

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update

How Has This Been Tested?
Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration

[ ] Test A
[ ] Test B

Checklist:

[ ] The title of the PR states what changed and the related issues number (used for the release note).
[ ] Does this PR require documentation updates?
[ ] I've updated documentation as required by this PR.
[ ] I have performed a self-review of my own code
[ ] I have commented my code, particularly in hard-to-understand areas

Hotfixed using commit hash


Fix naming and dependencies.

@madiator can you also change the naming in tests/test_validator.py and in validator.__init__.py

Ah yes! Sorry about that. Fixed.

@aaravnavani I added a comment to your PR.
I have updated this PR now with the namespace.


[Bug] ZXingAutofocusScannerView.java error: getParameters failed

BUG REPORTS WITHOUT PROVIDING THESE INFORMATIONS WILL BE CLOSED DIRECTLY. DON'T REMOVE THE SECTIONS!
Describe the bug
A clear and concise description of what the bug is.
To Reproduce
Steps to reproduce the behavior:

Go to '...'
Click on '....'
Scroll down to '....'
See error

Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Logs
If applicable, add the verbose output of flutter run.
Environment (please complete the following information):

[ ] iOS? Version: ...
[ ] Android? Version: ...
[ ] Real Device? Which?: ...
[ ] Emulator/Simulator? Which?: ...
Version of barcode_scan
Output of flutter --version:

Flutter ...

Additional context
Add any other context about the problem here.

Duplicate of #33


examples/kubernetes: removing leftover system:nodes group in RBAC

Signed-off-by: André Martins<EMAIL_ADDRESS>

This change is

test-me-please

Coverage decreased (-0.02%) to 42.012% when pulling 7cb0e7d4ecdaa4d4870a9bee2e796c2ca87d9004 on pr/removing-group-system-nodes into 655df67c7dd766ffb45a6428d20c68956f6be3d5 on master.


TIMEOUT: bm_fullstack_streaming_pump BM_PumpStreamServerToClient

https://source.cloud.google.com/results/invocations/94aef143-44c9-46a3-a3bd-16d864ff76b7/targets/grpc%2Fcore%2Fpull_request%2Flinux%2Fgrpc_microbenchmark_diff/log
2020-02-05 00:42:21,173 TIMEOUT: bm_fullstack_streaming_pump BM_PumpStreamServerToClient<MinSockPair>/0 counters new 2/10 [pid=12072, time=3605.1sec]

2020-02-05 00:46:21,179 TIMEOUT: bm_fullstack_streaming_pump BM_PumpStreamServerToClient<SockPair>/0 counters new 1/10 [pid=4476, time=3605.7sec]

2020-02-05 01:23:31,229 TIMEOUT: bm_fullstack_streaming_pump BM_PumpStreamServerToClient<SockPair>/0 counters old 3/10 [pid=20604, time=3605.1sec]

This is currently the #2 flakiest test in the repo. @jtattermusch do you have bandwidth to look at this?

Dupe of https://github.com/grpc/grpc/issues/22055.


Commands spawned twice and panic on fail

A lot of Command::new are spawned twice as .status() and .output() internally spawn a process and wait for it to complete. Only one should be used .output() which also contains .status.
They also panic after completion if an error occurred when spawning the command by using .expect().
Eg. https://github.com/mario-eth/soldeer/blob/660b6c95e33965e532dabedce30d0e48c5d174bc/src/dependency_downloader.rs#L220-L230
Note that .status and .output have different output capturing semantics, mainly that .status pipes and .output captures into fields, so this also has to be kept in mind.

Thanks for the comment, i was never happy how i was dealing with status/output, i have to work a bit around it.

Will be fixed in 0.4.0 I guess, this has all been refactored


Can "Mount" action mount a local file?

I'd like the mount action to mount a local sparsebundle/dmg file, but the help only shows examples to smb:// and afp://. Can I do something like:
'file://Users/me/Personal.sparsebundle' ?

No need for that, just use the open action, and as long a you haven't changed the file-app associations for sparsebundles, it'll work just fine.

👍 for this question (and the answer) - I was wondering the exact same thing, seeing how my attempts to 'mount' a .sparsebundle all failed.


THANK YOU FOR MAKING THIS

MFW when I finally pushed to a URL via an action:

I know this is wrong place but I just blew half my sunday on trying to hack react-redux-router to get what it advertised it would do, and now I'm really happy thanks to what you've made.
TYVM fam

Might as well add my thanks too. Had a bad feeling about other popular options - I find it's usually a bad sign when you need an additional adapter library to glue two other libraries together. Glad I gave this a try instead and hopefully I'll get a chance to make some contributions here and there

Glad to be of service 😃 This kind of thread always makes a maintainer's day!

I'm never closing this issue btw


Add to Grape projects

This is an awesome gem. Please add to https://github.com/ruby-grape/ruby-grape.github.io/blob/master/projects/index.md, thanks!

I tried to push my modification but it seems there's a permission issue... Any idea? :)

Please make a pull request

I'm sorry but I can't push my branch to make a proper pull request:
ERROR: Permission to ruby-grape/ruby-grape.github.io.git denied to L-Oto
I'm puzzled :)

Check out https://github.com/ruby-grape/ruby-grape.github.io/blob/master/CONTRIBUTING.md? You should fork the project and push to your fork, not to the upstream repo, then make a PR :)

Thank you for your patience. My PR is waiting to be merged :)


How do I use angular2-jwt library ?

I added angular2-jwt and I want to use but I am getting error  localStorage is not defined

@sergeu90 AFAIK this is because angular2-jwt still don't support Angular Universal. You can follow the details here: https://github.com/auth0/angular2-jwt/issues/30
In any event, I'm using angular2-jwt with JavaScriptServices by postponing the JWT validation until the client-side kicks in. The way I achieve this is by skipping the isLoggedIn (my canActivate method) validation when localStorage is undefined.
My particular use case allows me to return true (logged) from the server-side and wait for the client-side to perform the JWT validation and retrieve the data from the API. The problem with this solution - whether you are returning true or false for server-side isLoggedIn calls - is the same from the alternative mentioned at the angular2-jwt issue page.

What I don't like about this though is when the app loads and they are logged in the app will show the not logged in state until the client side kicks in

I understand this is not the ideal solution, and it's not even related with JavaScriptServices, but I'm sharing it here in case you want to give it a try before this issue is closed.

thanks,issue can be close


gitlab: 13.6.1 -> 13.7.1

Motivation for this change
Update to the latest release of GitLab.
Things done

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

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

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

I think you where using an older version of vgo2nix. Could you regenerate the files with the newest version?

You want me to use the new version from c60ef6a249b952ed975c51a8701d1bd22a6185d1?

Tested: Upgrade from 13.6.1, created a repository, cloned a repository, pushed to a repository, edited a file in the web editor, created a MR and merged it.

After upgrading one of our gitlab servers, I had to flush the feature_flag configuration files before the gitlab service would start:
rm -rf /var/gitlab/state/config/feature_flags/*


Compressing large files in zip vs streaming

Hi my problem is that I'm tying to zip a folder containing multiple files which can be executed e.g this way:
 [OZZipFile *zFile = [[OZZipFile alloc] initWithFileName:zipFilePath mode:OZZipFileModeCreate];

        NSFileManager *fm  = [NSFileManager new];

        NSDirectoryEnumerator *directoryEnumerator = [fm enumeratorAtPath:folderPath];

        BOOL isDir;

        for (NSString *file in directoryEnumerator)
        {
            NSString *path = [folderPath stringByAppendingPathComponent:file];
            [fm fileExistsAtPath:path
                     isDirectory:&isDir];

            if (isDir)
            {
                continue;
            }

            OZZipWriteStream *stream = [zFile writeFileInZipWithName:file
                                                    compressionLevel:compressionLevel];

            NSData *inputDataBuffer;
            NSFileHandle *readHandle = [NSFileHandle fileHandleForReadingAtPath:path];

            [readHandle seekToFileOffset:0];

            while( [(inputDataBuffer = [readHandle readDataOfLength:2048 * 32]) length] != 0 ) {

                @autoreleasepool {

                    [stream writeData:inputDataBuffer];
                }
            }

            [stream finishedWriting];
        }

        [zFile close];

The problem is that some of those files may be big like i have 600mb video there, so the compression on even quiet good iPad may fail like iPad Air1 will not be able to compress the file.
I even tried doing some NSFileHandle as shown up and chunking write, but no memory footprint reduction at all.
So my question is. Does it really write like a stream or its just a name ? is there any other way to somehow compress big file in memory efficient way?
Regards
Marcin

Ok turns out while is wrong and generates leak after fix all work as expected/


Add a bunch of filters

[ ] Generalized Kernel Filters API (like Pixel Filter API that currently exists)
[ ] Blur

[ ] Gaussian
[ ] Radial
[ ] Box
[ ] Linear

[ ] Math

[ ] Add
[ ] Sub
[ ] Multiply
[ ] Divide

[ ] Position Manipulation

[ ] Scale
[ ] Tile
[x] Clip
[ ] Shift
[ ] Flip Horizontal
[ ] Flip Vertical
[ ] Rotate

[ ] Edge Detection
[ ] Threshold
[ ] Pixel Sort
[ ] Drawing Shapes

[ ] Circle
[ ] Rectangle
[ ] Polygon

I made Clip with a Resize enumerable

Added several blend modes but we were only tracking the math ones here


feat(meta): support commit epoch on multiple graphs at once

I hereby agree to the terms of the RisingWave Labs, Inc. Contributor License Agreement.
What's changed and what's your intention?
Support commit epoch for multiple graphs at once.
Different graphs can have different committed epoch, and newly added table ids from multiple streaming jobs can be added together all at once.
When upstream and creating jobs have data to commit at the same time, they can call commit epoch together in a single run.
Checklist

[ ] I have written necessary rustdoc comments
[ ] I have added necessary unit tests and integration tests
[ ] I have added test labels as necessary. See details.
[ ] I have added fuzzing tests or opened an issue to track them. (Optional, recommended for new SQL features #7934).
[ ] My PR contains breaking changes. (If it deprecates some features, please create a tracking issue to remove them in the future).
[x] All checks passed in ./risedev check (or alias, ./risedev c)
[ ] My PR changes performance-critical code. (Please run macro/micro-benchmarks and show the results.)

[ ] My PR contains critical fixes that are necessary to be merged into the latest release. (Please check out the details)

Documentation

[ ] My PR needs documentation updates. (Please use the Release note section below to summarize the impact on users)

Release note
If this PR includes changes that directly affect users or other significant modifications relevant to the community, kindly draft a release note to provide a concise summary of these changes. Please prioritize highlighting the impact these changes will have on users.

Please provide more elaboration in the PR's description, need more clarification.

Support commit epoch for multiple graphs at once.

Do you mean multiple graphs, each with different epochs can be committed together? And previously on graphs with the same epoch can be committed together?

Different graphs can have different committed epoch, and newly added table ids from multiple streaming jobs can be added together all at once.

Could you elaborate on this? Is "different graphs" in reference to the distinct graph corresponding to each streaming job?
And what do you mean by "newly added table ids from multiple streaming jobs can be added together". Where will they be added to?

When upstream and creating jobs have data to commit at the same time, they can call commit epoch together in a single run.

What do you mean by "at the same time". Do you mean that for different epochs, all their barriers are collected. E.g. epoch A and epoch B all barriers from A are collected within some stream job, all barriers from B are collected within some stream job.
And it just happens to line up when meta is attempting to commit barriers. Then both A and B can be committed in that step?

Please provide more elaboration in the PR's description, need more clarification.

Support commit epoch for multiple graphs at once.

Do you mean multiple graphs, each with different epochs can be committed together? And previously on graphs with the same epoch can be committed together?

Different graphs can have different committed epoch, and newly added table ids from multiple streaming jobs can be added together all at once.

Could you elaborate on this? Is "different graphs" in reference to the distinct graph corresponding to each streaming job? And what do you mean by "newly added table ids from multiple streaming jobs can be added together". Where will they be added to?

When upstream and creating jobs have data to commit at the same time, they can call commit epoch together in a single run.

What do you mean by "at the same time". Do you mean that for different epochs, all their barriers are collected. E.g. epoch A and epoch B all barriers from A are collected within some stream job, all barriers from B are collected within some stream job. And it just happens to line up when meta is attempting to commit barriers. Then both A and B can be committed in that step?

Just updated the PR description.


Belarusian language

Belarusian translation of language files

Please check why error occurs on ThemePage.be.json. format-json.ps1 give no errors locally:
`Scanning C:\Users\CARMANBY\Downloads\FanControl.i18n-main\FanControl.i18n-main
No problem found!`


0 error(s) displayed in red

Something like this line is displayed in the error color, but it should actually be green:
Code Analysis Complete -- 0 error(s), 0 warning(s)

Does anyone know the proper regex which fixes cases like this? Also msbuild text like {The previous error was converted to a warning because the task was called with ContinueOnError=true.} gets colored in red.

I know it might look like a dirty trick, but I'll get it done: a white list of safe messages baked right into the extension.
"Code Analysis Complete -- 0 error(s), 0 warning(s)"
"The previous error was converted to a warning because the task was called with ContinueOnError=true."
....

I don't think the whitelist is very dirty, after all it's easier than having regexes which are totally unreadable because of all the exceptions which need to be added. Like I just noticed a project I'm working on has a file warning.c :]

Just released beta 1. I'll look to add this before the final release.

I'll add an additional pattern. For now you can add it yourself. I used.

Beta 4 out. Give 'er a spin.
https://github.com/mike-ward/VSColorOutput/releases

Tested on VS2013 and all is fine, thanks!

Somewhat late, but I can also confirm it works. Thanks.


Is there a way to disable console text-output?

I get this output every time I run say() function
Playing WAVE '/tmp/tmplGOau7.wav' : Signed 16 bit Little Endian, Rate 22050 Hz, Mono
I want to disable that for easier debugging from console, when there is less stuff in the console it's easier to read. It would help if it didn't output anything else than what it's suppose to do: output sound from text that is given to it.
Or at least have option for disabling it. If there is one I haven't found it or it's not mentioned in the docs or anywhere is it?

I think it can be made quieter by adding a --quiet to this line:
https://github.com/grigi/talkey/blob/master/talkey/base.py#L259
e.g. `cmd = ['aplay', '--quiet', str(filename)]
And you are right, this should probably only ever show if debug logging is turned on.

Is there any intention to fix this issue?

I think it can be made quieter by adding a --quiet to this line:
https://github.com/grigi/talkey/blob/master/talkey/base.py#L259
e.g. `cmd = ['aplay', '--quiet', str(filename)]
And you are right, this should probably only ever show if debug logging is turned on.

Doesn't work for systems where that is not manually edited.
Hacky way to fix this by globally defaulting the subprocess.Popen not to output to stdout/stderr:
from talkey import Talkey

import subprocess
from functools import partial
subprocess.Popen = partial(  # type: ignore
    subprocess.Popen,
    stdout=subprocess.DEVNULL,
    stderr=subprocess.DEVNULL)

tts = Talkey()
tts.say("Hello world")

Another hacky way with automatic "unmuting" after the end of the SubprocessSilencer -block:
from talkey import Talkey

from typing import Any
from functools import partial
import subprocess
class SubprocessSilencer:
    def __enter__(self) -> None:
        self.popen = subprocess.Popen
        subprocess.Popen = partial(  # type: ignore
            subprocess.Popen,
            stdout=subprocess.DEVNULL,
            stderr=subprocess.DEVNULL)

    def __exit__(self, *args: Any) -> None:
        subprocess.Popen = self.popen  # type: ignore

tts = Talkey()
with SubprocessSilencer():
    tts.say("Hello world")


Update db-active-record.md

You can also call [[yii\db\ActiveRecord::markAttributeDirty()]] to explicitly mark an attribute as dirty.

Q
A

Is bugfix?
no

New feature?
no

Breaks BC?
no

Tests pass?
no

Fixed issues
no

非常感谢！


Interactions have changed

A few interactions are different than what seems to be described:

When I select the action, hit space, enter a query: I expected search results to show as a list below, but instead it does nothing.
When I select the action, hit space, enter a query, and hit enter: I expected the highlighted (probably first) search result to be opened, but instead an empty Evernote note window is opened.
When I select the action, hit space, enter a query, and hit Shift + Cmd + Enter: I expected the Evernote application to open with this search query entered and results showing, but instead it showed a list of results inside LaunchBar as per the screenshot in the README.md.

Or am I doing something wrong?
Running macOS 10.15.4, LaunchBar 6.12 and Evernote 7.14.

Hi Rob,
may I assume that you have a lot of notes in Evernote?
There has been a problem with Evernote's AppleScript integrations for quite a long time now that makes the search feature very, very slow. I have around 7.000 notes and it takes 10s of seconds to get a search result when queried with my extension.
Having said that, all features work for me, once Evernote returns search results. Can you double check, if that's the same for you?

Yikes. Yes, you are right. I've got half of your notes and it took me quite a number of seconds too. Keeping in mind extended wait times, all my previous comments work as expected. That is rather disappointing of Evernote to have such poor support. Thanks for getting back to me!


Added energy bank filter

Description:

added energy to bank filters

Changes:

made it so energy can have uppercase & lowercase E
made alias "en"

Other checks:

[x] I have tested all my changes thoroughly.

Divination Issue Thread #5602

This needs to be generated dynamically from the energy list.

const energy = divinationEnergies.flatMap(i => i.item.id);

Will work as a dynamic solution. Just be sure to update imports and lint.

This needs to be generated dynamically from the energy list.

done. thank you @nwjgit

This needs to be generated dynamically from the energy list.

I added what jonesy posted and added the import


add impersonate traitor objective

About the PR
new objective that requires you to have the same identity as the target, so id + wear a mask.
presumably youd have to kill them too to avoid any "why is this guy running around with my id pretending to be me"
Why / Balance
cool new objective to spice up rounds a bit from the boring mostly just stealing and killing.
Technical details

impersonate logic literally just checks Identity of you
made TargetObjective's Title optional and added description so its more customizable.
added AntiSocialObjective marker component since it makes it easier to maintain social's blacklist with kill and impersonation and anything else in the future that would fit in.

Media
silly urist

i am the captain now

le epic greentext

[X] I have added screenshots/videos to this PR showcasing its changes ingame, or this PR does not require an ingame showcase

Breaking changes
no
Changelog
:cl:

add: The Syndicate may now assign operatives the goal of assuming the identity of crewmembers.

Isnt this a ling objective

yes and the condition could be reused for it, its still a nice objective for traitors (and sometimes is already mandatory e.g. nuke disk impersonating cap is a lot easier than trying to hide from sec in space forever)

If it’s checking identity wouldn’t an agent ID let you do this for free

If it’s checking identity wouldn’t an agent ID let you do this for free

yes and read the comment it explains why thats fine ish
Good Players should still actually replace the person not just be a duplicate
of course if someone does just do this theyll instantly get outed so it isnt a very good strat

Good Players should still actually replace the person not just be a duplicate
of course if someone does just do this theyll instantly get outed so it isnt a very good strat

Saying "good players won't abuse the abusable objective logic" doesn't really make sense. I don't see how just letting someone buy an agent ID on the shuttle for a free greentext is a good or interesting objective

Saying "good players won't abuse the abusable objective logic" doesn't really make sense. I don't see how just letting someone buy an agent ID on the shuttle for a free greentext is a good or interesting objective

they can also just hide the real id in their bag then equip it instantly
perhaps it should just be you have to wear it for 10 minutes total then its complete, so you cant do this scumbag strat and theres a little danger. unless you are lew pel then hide in disposal unit with it

they can also just hide the real id in their bag then equip it instantly

then they at least need to steal the real ID instead of just spending 3 TC and calling it a day

then they at least need to steal the real ID instead of just spending 3 TC and calling it a day

its still not impersonating if you just put an id on last second, agent id or not.

every shitty tactic is now impossible :trollface:

you can still just spend 3 TC on an agent ID and then chill in maints for 10 minutes

its pretty likely that you get caught just doing that, also it has to be 10 minutes before evac so you cant do it 10 minutes roundstart then destroy the agent id

you arent able to its unique

its pretty likely that you get caught just doing that, also it has to be 10 minutes before evac so you cant do it 10 minutes roundstart then destroy the agent id

I'm maint ratting for 30 minutes with "Literally an agent ID name" as my display name to get a single medical doctor to cry on comms for sec to show up and a single cadet comes after like 10 minutes.
On average.

I had this idea a while ago myself since its actually REALLY cool, i just never bothered to set the conditions more because of all the conflicts there are with abuses.

This is a ling objective and shouldn't be given to traitor.
It's also exceptionally hard to complete this objective for people who are regulars.
Metagaming between rounds is typically against the rules but people usually know how their friends act. And if you don't act like them at all you'll be sticking out like a sore thumb.

ive impersonated plenty of times as a syndicate, the objective itself isnt impossible… but i do agree its better for a changeling; no idea if lings are coming to 14 though

Does it really matter if the objective is easy or not?
Syndicate are not forced to complete objectives to begin with, they are just a suggestion.

Or when you spend all round waiting for the cap to give you an opening to do any objective regarding them.
If people want to wait forever for an objective, they will do so, be it with this one or any other objective.

i agree with keron that this doesn't really make sense as a traitor objective. For ling, stealth is a primary means to accomplish your goal. Traitors on the other hand have a variety of different methods by which they can choose to complete their objectives: stealth exists primarily as a means to an end, rather than a core trait in and of itself.

shouldnt be a traitor obj should be ling or paradox twin

who wants to code ling or paradox twin

who wants to code ling or paradox twin

who wants to code ling or paradox twin

Paradox twin is already a thing in Delta V or Parkstation (I forgot which)

ok no more

ling objective requires transforming as well

Can this be modified to keep as unused? For when ling is added

It shouldn't be added unless it has a current use, unless that policy changed.

ling objective requires transforming as well

Polymorph should take care of this


[Detection][Arch]Modify inference architecture to support multi-inputs and multi-outputs. Add A algorithm and its related ops.

Modify inference architecture to support multi-inputs and multi-outputs. Add A algorithm and its related ops.
@jackieseu

Approved this pull request


doxyqml not working if using --prefix during setup

doxyqml (0.3.0) is not working if installed to a "--prefix" directory, for eample:
python3 setup.py install --prefix=$HOME/opt/doxyqml
~/opt/doxyqml/bin$ ./doxyqml :
Traceback (most recent call last):
File "./doxyqml", line 9, in
from doxyqml import doxyqml
ImportError: No module named doxyqml
My solution was to put
sys.path.append(os.path.dirname(os.path.realpath(__file__)) + "/../lib/python3.2/site-packages")
before the line
from doxyqml import doxyqml
in $HOME/opt/doxyqml/bin/doxyqml

Hi, I just pushed a branch which makes doxyqml uses setuptools rather than distutils (https://github.com/agateau/doxyqml/tree/setuptools) can you try it and tell me if it fixes your problem?

Hi,
thanks. I just gave it a try.
It's working if PYTHONPATH is set before running
installation. That variable must be set to the same
value when executing doxyqml.
I'm not very familiar with python (perl rulez :-D), but might be ok:
export PYTHONPATH=$HOME/tmp/doxyprefix/lib/python3.2/site-packages/
./setup.py install --prefix $HOME/tmp/doxyprefix

Btw: The value needed for PYTHONPATH is printed when running the setup.py from above
with PYTHONPATH being empty.

I think this is fixed in master. Closing it. Let me know if something is wrong.


Parameter order is incorrect and appears to be random.

I've found an issue when using multiple parameters, the ordering is incorrect and random.
Rust:
&lang.notification_post_reply_body(&person.name, &comment.content, &inbox_link)
JSON:
"notification_post_reply_body": "
Post reply

{username} - {comment_text}

inbox",
Yet when I do a hover / check the order, it shows:
pub fn notification_post_reply_body(&self, comment_text: impl ::std::fmt::Display, inbox_link: impl ::std::fmt::Display, username: impl ::std::fmt::Display) -> ::std::string::String
Somehow the order of name, comment content, inbox link, got changed to comment content, inbox link, username during the rosetta build process.

It looks alphabetical? Is that intentional?
If it is intentional it would probably be better to make the arguments more like keyword arguments because this is a footgun.

Yep, seems alphabetical, rather than ordered by position.

It looks alphabetical? Is that intentional?

Yes, parameters are ordered in alphabetical order to avoid breaking changes in the generated code if parameters are reordered in translations. Since all parameters have the same type (impl Display), reordering will not produce any compiler error, and this be unnoticeable.
If you are using an extension like rust-analyzer on VS Code, parameters are shown when typing the function, so there shouldn't be any confusion. However, it's obviously not the case with all editors, I understand that it can be confusing.
Some ideas to solve the problem:

Add a configuration option in rosetta-build to select which order to use (position or alphabetical)
Function-like macro to set parameters with a key-value style (t!(lang, "key", foo = bar) - #7)

Add a configuration option in rosetta-build to select which order to use (position or alphabetical)

I def like that option the best, with maybe the default being positional.
Also it'd be good to note that alphabetical ordering is how its currently done in the docs. Took me a while to find this, because its not how I've seen any other i18n do it, and there was nothing in the docs about alphabetical ordering.

A simpler solution than a macro could just be generating a struct as "keyword arguments".

The first option repeat the key name twice, which can be quite long. For the second one, it will be necessary to add a lang field to each struct, which can be quite repetitive. However, I think it's better that macros to specify key names
What about something like typed-builder, with a generated builder type with generics to ensure all parameters are provided at compile time and that implement Display.
lang
    .notification_post_reply_body()
    .comment_text(&comment.content)
    .inbox_link(&inbox_link)
    .username(&person.name)
    .to_string()  // Implements `Display` if all parameters are provided

It is very similar to struct for keys with multiple parameters, but does not require any additional import. For keys with fewer parameters, it is more readable, in my opinion.
lang.notification_mention_title().username(&person.name)

// vs

lang.notification_mention_title(NotificationMentionTitle{
  username: &person.name
})

// vs

NotificationMentionTitle {
  lang,
  username: &person.name
}

It also combine advantages of your both proposals: the builder implement Display and it is a method of the Lang type.

I definitely like the explicit typed builder approach best.

I will start working on a 0.2 release of rosetta next week, with the builders for keys with arguments.


Select UX and accessibility issues

Describe the bug
There are several UX and accessibility issues in the behavior of the Select component:

Pressing the Label should focus on the Trigger
The Trigger should not have focus when opening the Popover
On exit/selection from the Popover the Trigger should be focus

Shadcn/Radix demo:
https://github.com/huntabyte/bits-ui/assets/125300/883af62f-bb62-48c5-b166-1d6fbc27674a
Shadcn/Bits/Melt demo:
https://github.com/huntabyte/bits-ui/assets/125300/c6eb4870-0987-4c38-ab60-1797b1fc4f64
Reproduction
https://github.com/huntabyte/bits-ui/assets/125300/c6eb4870-0987-4c38-ab60-1797b1fc4f64
Logs
No response
System Info
System:
    OS: macOS 14.5
    CPU: (8) arm64 Apple M1 Pro
    Memory: 69.33 MB / 16.00 GB
    Shell: 5.9 - /bin/zsh
  Binaries:
    Node: 20.14.0 - ~/.volta/tools/image/node/20.14.0/bin/node
    npm: 10.7.0 - ~/.volta/tools/image/node/20.14.0/bin/npm
    pnpm: 9.2.0 - ~/.volta/bin/pnpm
    bun: 1.1.12 - ~/.bun/bin/bun
  Browsers:
    Chrome: 125.0.6422.142
    Safari: 17.5
  npmPackages:
    @sveltejs/kit: 2.5.10 => 2.5.10
    bits-ui: 0.21.10 => 0.21.10
    svelte: ^5.0.0-next.111 => 5.0.0-next.151

Severity
annoyance

Closing as fixed in bits-ui@next


App Crashed when I press OpenCameraKit

Describe the bug
App Crashed when I press OpenCameraKit
Expected behavior
Launch CameraKit
Smartphone (please complete the following information):

Device: [ iPhone 15Pro Max]
OS: [iOS17.2]

Additional context
Add any other context about the problem here.
`import 'package:camerakit_flutter/camerakit_flutter.dart';
import 'package:camerakit_flutter/configuration_camerakit.dart';
import 'package:camerakit_flutter/lens_model.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:hyborg/src/camera_screen/snap_const.dart';
import 'lens_list_view.dart';
import 'media_result_widget.dart';
class CameraDemeScreen extends StatefulWidget {
const CameraDemeScreen({super.key});
@override
State createState() => _CameraDemeScreenState();
}
class _CameraDemeScreenState extends State
implements CameraKitFlutterEvents {
/// There will be interface that we will implement on [_CameraDemeScreenState] class in the future,
/// right now we have no method to show override any function
late String _filePath = '';
late String _fileType = '';
late List lensList = [];
late final _cameraKitFlutterImpl =
CameraKitFlutterImpl(cameraKitFlutterEvents: this);
bool isLensListPressed = false;
@override
void initState() {
super.initState();
final config = Configuration(
SnapConstants.cameraKitApiToken,
SnapConstants.groupIdList,
SnapConstants.cameraKitLensId,
);
_cameraKitFlutterImpl.setCredentials(config);
}
// Platform messages are asynchronous, so we initialize in an async method.
Future initCameraKit() async {
// Platform messages may fail, so we use a try/catch PlatformException.
// We also handle the message potentially returning null.
try {
await _cameraKitFlutterImpl.openCameraKit();
// await _cameraKitFlutterImpl.getGroupLenses(SnapConstants.groupIdList);
} on PlatformException {
if (kDebugMode) {
print("Failed to open camera kit");
}
}
}
// Platform messages are asynchronous, so we initialize in an async method.
getGroupLenses() async {
// Platform messages may fail, so we use a try/catch PlatformException.
// We also handle the message potentially returning null.
try {
_cameraKitFlutterImpl.getGroupLenses(SnapConstants.groupIdList);
} on PlatformException {
if (kDebugMode) {
print("Failed to open camera kit");
}
}
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text('Camera Kit'),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
ElevatedButton(
onPressed: () {
isLensListPressed = true;
setState(() {});
getGroupLenses();
},
child: const Text("Show Lens List")),
ElevatedButton(
onPressed: () {
initCameraKit();
},
child: const Text("Open CameraKit")),
isLensListPressed ? const CircularProgressIndicator() : Container()
],
),
),
);
}
@override
void onCameraKitResult(Map<dynamic, dynamic> result) {
setState(() {
_filePath = result["path"] as String;
_fileType = result["type"] as String;
  Navigator.of(context).push(
    MaterialPageRoute(
      builder: (context) => MediaResultWidget(
        filePath: _filePath,
        fileType: _fileType,
      ),
    ),
  );
});

}
@override
void receivedLenses(List lensList) async {
isLensListPressed = false;
setState(() {});
await Navigator.of(context).push(MaterialPageRoute(
builder: (context) => LensListView(lensList: lensList)));
}
}
`

@dokind can you please share the error details? Any console logs?
Are you using the cameraKit staging or production environment?
In case of production, the snap app must be approved and live in production.
Also, make sure you have also set up the platform identifiers for both iOS and Android.

It's working in staging but not working in prod
So My app didn't deployed yet. So I have to use prod token after I deploy my app in appstore ?

It does not require the app to be deployed on the app store but it should be approved in the Snapchat developer portal.
Please read here how to set up production and staging environments.
You must have a version approved in production as well.

https://github.com/DevCrew-io/camerakit-flutter/issues/24


PNG / JPEG Compressor: Save all button doesn't work

Description
Nothing happens if I press the Save all button.

NOTE: The Save as button works as expected.

Steps To Reproduce

Go to PNG/JPEG Compressor
Add image
Press the Save all button

Expected behavior
The original image files should be overwritten with the reduced version.
DevToys Version
<IP_ADDRESS>
Relevant Assets/Logs
Nothing relevant in the logs.txt.
BTW I can see the reduced version of the image in the %localappdata%\...\LocalCache folder.

I am experiencing this issue in Windows 10. It seems related to a folder picker that should open to select where to save the pictures.
In my case that picker never opens and just steps out of the property setter.

Can you give us information about Windows version?

Could you give us information about your Windows version?

Windows 10 v2004, Build 1904

If you can, would you please be able to checkout the latest commit and try the app on your machine to see if it works?

I had not tried it in a recent code version and I did it now and it works correctly, I consider this issue is solved in main branch.

Awesome! Thank you for checking :) I will close the issue.

Thank you very much! You guys are awesome! 😄


Missing build? linux-64/0.19.1=cuda120py312

Solution to issue cannot be found in the documentation.

[X] I checked the documentation.

Issue
For some reason, it is not possible to install torchvision with the combination above.
Following the file listing at https://anaconda.org/conda-forge/torchvision/files, I cannot find the file available on the server.
Would it be possible to add this build?  I'm available to do any PRs if need be.
Installed packages
N/A

Environment info
N/A

I restarted the job after the merge of #95, which failed with
=========================== short test summary info ============================
FAILED test/test_ops.py::TestRoIAlign::test_autocast_cpu[rois_dtype0-x_dtype1-True-False] - AssertionError: Tensor-likes are not close!

Mismatched elements: 1 / 5000 (0.0%)
Greatest absolute difference: 0.0078125 at index (3, 13, 4, 0) (up to 0.005 allowed)
Greatest relative difference: 0.01513671875 at index (3, 13, 4, 0) (up to 0.005 allowed)
FAILED test/test_ops.py::TestRoIAlign::test_autocast_cpu[rois_dtype0-x_dtype1-False-False] - AssertionError: Tensor-likes are not close!

Mismatched elements: 1 / 5000 (0.0%)
Greatest absolute difference: 0.0078125 at index (3, 13, 4, 0) (up to 0.005 allowed)
Greatest relative difference: 0.01513671875 at index (3, 13, 4, 0) (up to 0.005 allowed)
FAILED test/test_ops.py::TestRoIAlign::test_autocast_cpu[rois_dtype1-x_dtype1-True-False] - AssertionError: Tensor-likes are not close!

Mismatched elements: 1 / 5000 (0.0%)
Greatest absolute difference: 0.0078125 at index (3, 13, 4, 0) (up to 0.005 allowed)
Greatest relative difference: 0.01513671875 at index (3, 13, 4, 0) (up to 0.005 allowed)
FAILED test/test_ops.py::TestRoIAlign::test_autocast_cpu[rois_dtype1-x_dtype1-False-False] - AssertionError: Tensor-likes are not close!

Mismatched elements: 1 / 5000 (0.0%)
Greatest absolute difference: 0.0078125 at index (3, 13, 4, 0) (up to 0.005 allowed)
Greatest relative difference: 0.01513671875 at index (3, 13, 4, 0) (up to 0.005 allowed)
= 4 failed, 21456 passed, 16703 skipped, 1017 deselected, 1 xfailed, 367 warnings in 568.55s (0:09:28) =

Not sure if a restart will change anything, but since it only happened to one build out of 12, there's hope.

it passed! flaky tests be flaky!


mjml misses extend/block feature

I often use template engines like jinja2/twig/django and mjml clearly misses feature like extend and block.
I had to add nunjucks on my project to have this.

I use posthtml-include instead of mj-include, and posthtml-extend for extends and block.
Transpiles: posthtml -> mjml -> html


release mockotlpserver 0.6.0

This bumps mockotlpserver to v0.6.0 for release.
It also tweaks the notes added to GitHub releases from this
repo to include links to the package README and changelog.
It also adds build/push of a mockotlpserver Docker image
during release:
ghcr.io/elastic/elastic-otel-node/mockotlpserver
Closes: #467

workflow run: https://github.com/elastic/elastic-otel-node/actions/runs/12380517266

That failed. Fixing in https://github.com/elastic/elastic-otel-node/pull/491


Use CMake components to separate runtime vs. development install targets

Package maintainers may want to create separate packages for runtime support (just the .so's basically) vs. development (the .a's and headers). We need to separate the install targets.

Fixed by #33.


Use fixed gcloud version

Motivation
This pins the gcloud version in the build jobs preventing them from running out of disk space.
Description
Gcloud has a new release every few days and that new release gets installed without the old one being removed if no version is pinned.
This over multiple weeks causes the self hosted runners to fill up on data and their disks run full causing them to fail builds that they normally wouldn't.
Test Plan

n/a

TODO

[x] Explain motivation or link existing issue(s)
[x] Test changes and document test plan
[x] Update documentation as needed
[x] Update changelog as needed

bors merge


Fix double slash in GOPATH env var

Example:
# before
/home/username/.go//go/root/go-1.9.2
# after
/home/username/.go/go/root/go-1.9.2

That was fixed later, paths were not ok anyway.
You should now synchronize that repo.
Thanks ;)


Admin roles advanced functionalities

Let's be consistent with the file naming - Create_resource, Edit_resource, Delete_resource


The Speaker and Mic Icons do not appear when using Chrome on a Amazon Fire Tab

Checklist:

[ x] I updated to the latest version available
[x ] I cleared the cache of my browser

Release with the issue:
5.2
Last working release (if known):
N/A
Browser and Operating System:
Chrome on Amazon Fire OS v <IP_ADDRESS>

Description of problem:

I'm using an Amazon Fire tablet for HA wall-mounted use. The frigate card does not show the Speaker, Microphone, or Pause icons.
Frigate card diagnostic information

{
  "ha_version": "2023.12.0b2",
  "card_version": "5.2.0",
  "browser": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/<IP_ADDRESS> Safari/537.36",
  "date": "2023-12-05T15:39:26.918Z",
  "frigate_version": {
    "cf264c8c4e585535f4c048eeb234805d": "5.0.0-beta.3/0.13.0-614a36a"
  },
  "lang": "en",
  "timezone": "America/Chicago",
  "git": {
    "build_version": "5.2.0-HEAD+g69249b6",
    "build_date": "Fri, 23 Jun 2023 15:26:26 GMT",
    "commit_date": "Thu, 22 Jun 2023 09:21:26 -0600"
  },
  "config": {
    "type": "custom:frigate-card",
    "cameras": [
      {
        "camera_entity": "camera.doorbell",
        "live_provider": "go2rtc",
        "go2rtc": {
          "modes": [
            "webrtc"
          ],
          "stream": "doorbell_stream"
        }
      }
    ],
    "menu": {
      "buttons": {
        "microphone": {
          "enabled": true,
          "icon": "mdi:microphone",
          "type": "momentary",
          "alignment": "matching"
        },
        "mute": {
          "enabled": true
        },
        "expand": {
          "enabled": false
        },
        "play": {
          "enabled": true
        }
      },
      "style": "overlay",
      "position": "top"
    },
    "live": {
      "microphone": {
        "always_connected": false,
        "disconnect_seconds": 0
      }
    },
    "view": {
      "default": "live"
    },
    "performance": {
      "profile": "high"
    }
  }
}

Javascript errors shown in the web inspector (if applicable):

Additional information:

I have the same issue but it's just with default frigate-card in Home Assistant. Even though my HA instance is running over HTTPS and go2rtc is enabled on cameras (in Frigate on Unraid > MQTT > HA), the mic will not show on the frigate-card.

In both cases, if you cannot visit the go2rtc interface and successfully use your microphone (i.e. not using the card at all), the issue is less likely to be the card and more something is wrong with your setup.
For both of you, if you set the show_image_during_load under live (documentation) does the stream still load? If webrtc connection was overall failing, you'd see this behavior (and it might be masked by having HomeAssistant images refreshing every 1s, so perhaps you don't notice).

Mic, speaker, and pause icons appear on Android Phone, IOS and PC and work. Mic, speaker, and pause icons do not appear on Fire tablet. Please explain again slowly, in detail, for us slow learners how that's a setup problem.

My previous statement remains accurate (your setup includes limitations associated with your device), and previous debugging instructions/questions remain valid and unanswered.

Mic, speaker, and pause icons appear on Android Phone, IOS and PC and work. Mic, speaker, and pause icons do not appear on Fire tablet. Please explain again slowly, in detail, for us slow learners how that's a setup problem.

This is Open Source! You get the benefit of (in the case of this card) hundreds of hours of development, for no cost to you. The flip side of that, is that it's often -- as is the case here -- provided in precious limited "hobby" time. There is zero obligation for support, and users who ask for support are entirely dependent on goodwill. In that light, lack of civility and poor choice of tone in communicating are very unlikely to get users the support they may wish to receive.
I hope you figure out your issue. Good luck.


UVI Request

--- UVI JSON ---
{
  "vendor_name": "Linux",
  "product_name": "Kernel",
  "product_version": "versions from v4.14.204 to before v4.14.253",
  "vulnerability_type": "unspecified",
  "affected_component": "unspecified",
  "attack_vector": "unspecified",
  "impact": "unspecified",
  "credit": "",
  "references": [
    "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=7ed80e77c908cbaa686529a49f8ae0060c5caee7",
    "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=8e6bfb4f70168ddfd32fb6dc028ad52faaf1f32e"
  ],
  "extended_references": [
    {
      "type": "commit",
      "value": "7ed80e77c908cbaa686529a49f8ae0060c5caee7",
      "note": "introduced"
    },
    {
      "type": "commit",
      "value": "8e6bfb4f70168ddfd32fb6dc028ad52faaf1f32e",
      "note": "fixed"
    }
  ],
  "reporter": "joshbressers",
  "reporter_id": 1692786,
  "notes": "",
  "description": "ocfs2: fix data corruption after conversion from inline format\n\nThis is an automated ID intended to aid in discovery of potential security vulnerabilities. The actual impact and attack plausibility have not yet been proven.\nThis ID is fixed in Linux Kernel version v4.14.253 by commit 8e6bfb4f70168ddfd32fb6dc028ad52faaf1f32e, it was introduced in version v4.14.204 by commit 7ed80e77c908cbaa686529a49f8ae0060c5caee7. For more details please see the references link."
}
--- UVI JSON ---

This issue has been assigned UVI-2021-1001958


Map doesn't show

Type of issue

[x ] Bug
[ ] New feature
[ ] Improvement

Description
The map doesn't show in some deployments.  Either a static map or a dynamic map should always be shown.

I see the BingMap with latest deployment. @maple10001 and @spryor could you guys confirm if you see BingMap with latest deployment?

I see the following with a deployment from this morning:

from deployment on 10/17:

Fix checked in, closing.


Include all non-default global python kernel specs

For #6389

[x] Pull request represents a single change (i.e. not fixing disparate/unrelated things in a single PR).
[x] Title summarizes what is changing.
[x] Has a news entry file (remember to thank yourself!).
[x] Appropriate comments and documentation strings in the code.
[ ] Has sufficient logging.
[ ] Has telemetry for enhancements.
[ ] Unit tests & system/integration tests are added/updated.
[ ] Test plan is updated as appropriate.
[ ] package-lock.json has been regenerated by running npm install (if dependencies have changed).

I want to be a little careful with this change (per Teams discussion). Per the previous function comment it looks pretty clear to me that the initial change was to exclude these kernels, and not just the default ones. Right now with the kernels that I register using --user like so:
https://ipython.readthedocs.io/en/stable/install/kernel_install.html#kernels-for-different-environments
I can create kernelspecs that all point at the originating interpreter path. And since the full path is specified they don't look ambiguous as the kernel finder code correctly matches them up with the right interpreter (conda kernelspecs that I created match up with the conda env that created them. Same with venvs).

Codecov Report

Merging #6395 (9b464eb) into main (1b385e3) will decrease coverage by 0%.
The diff coverage is 100%.

@@          Coverage Diff           @@
##            main   #6395    +/-   ##
======================================
- Coverage     69%     69%    -1%
======================================
  Files        407     410     +3
  Lines      27929   28246   +317
  Branches    4140    4185    +45
======================================
+ Hits       19499   19598    +99
- Misses      6818    6986   +168
- Partials    1612    1662    +50

Impacted Files
Coverage Δ

.../localPythonAndRelatedNonPythonKernelSpecFinder.ts
87% <100%> (+<1%)
:arrow_up:

...science/jupyter/kernels/kernelDependencyService.ts
79% <0%> (-10%)
:arrow_down:

src/client/common/installer/productInstaller.ts
41% <0%> (-7%)
:arrow_down:

...client/datascience/commands/activeEditorContext.ts
87% <0%> (-4%)
:arrow_down:

...rc/client/common/process/pythonExecutionFactory.ts
82% <0%> (-3%)
:arrow_down:

...rc/client/datascience/jupyter/debuggerVariables.ts
76% <0%> (-3%)
:arrow_down:

src/client/datascience/baseJupyterSession.ts
70% <0%> (-2%)
:arrow_down:

...e-window/nativeInteractiveWindowCommandListener.ts
9% <0%> (-1%)
:arrow_down:

src/client/common/types.ts
100% <0%> (ø)

src/client/datascience/types.ts
100% <0%> (ø)

... and 31 more

Test issues. Will hold off and investigate on this.

We chatted on teams quick. I think there is more going on here. Don't want to take this fix for release. Will update #6389 with more info.


Add Windows CI

Is your feature request related to a problem? Please describe
These tools and jobs are running on Windows workers.
Describe the solution you'd like
Add GHA CI for Windows.
Describe alternatives you've considered
No response
Additional context
No response

@gaiksaya Please review my PR.


Downloading paused when the activity is onPause() state

Reading the wiki it seems that it support background downloading. But when I am using SINGLE TASK TEST and start to download a file everything is going well. But when I am going bac to the main activity the downloading is paused.
If downloading in the background is supported how to use it?
I am confused.

OK, In SINGLE TASK TEST , We pause downloading tasks manually in onDestroy, So it is paused when you back to the main activity.

Yes absolutely, FileDownloader support downloading in the background. It isn't bound Activity Lifecycle. But there is only one thing you need to notice: because if you set the listener when you start a download task in the Activity,  In the normal case is when you left the Activity, you will lose the holder of the listener, so you have to manage you own listeners for 'downloading in background'. You can handle such problem Ref here.

Thanks.
I'm checking this stuff.


Improve consistency of results from azure provider

Hey, I just made a Pull Request!
Improve consistency of results from azure provider
The search feature does not produce consistent results across api pages. This seems to be more likely if the pages are sorted by rank.
This changes the sort order, in order to make the pages a little bit more consistent as the search index in azure changes.
:heavy_check_mark: Checklist

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

fixes https://github.com/backstage/backstage/pull/19478


Developer Cheats

To add eventually
# What is my rank?
flux overlay lookup $(hostname)
0

# Count the nodes (including control plane)
count=$(flux hostlist --count local)
worker_count=$(flux hostlist -x $(hostname) --count local)
echo "Found ${count} total nodes, and ${worker_count} not including the control plane"

nodes=$(flux job info $FLUX_JOB_ID R | jq -r .execution.nodelist[0])
echo "Found nodes ${nodes} in Job ${FLUX_JOB_ID}"

flux kvs put ${kvs_path}.usernetes=yes
flux kvs put ${kvs_path}.usernetes_root=${usernetes_root}
usernetes_root=$(flux kvs get ${kvs_path}.usernetes_root)

There are simpler ways to get much of this information:
To get the current broker's rank
$ flux getattr rank

Get the total number of brokers:
$ flux getattr size

Get the hostlist for a job:
$ flux hostlist JOBID

(Note that flux job info $FLUX_JOB_ID R | jq -r .execution.nodelist[0] could actually return incorrect information since there may be more than one entry in the execution.nodelist array)
There's some useful hints in


relicense to dual MIT/Apache-2.0

I am planning to relicense this project under a dual MIT/Apache-2.0 license. In practice this won't limit what people can do with the codebase compared with today's single MIT license, but it's a better, more robust choice than MIT alone, and it will make it easier and cleaner to put neon and neon-cli together in a single repo (I'm pretty sure it wouldn't be necessary, but it'll be easier for people to understand).
Contributor checkoff
To agree to relicensing, please leave a comment on this issue with:
I license past and future contributions under the dual MIT/Apache-2.0 license, allowing licensees to choose either at their option.

[x] @dherman
[x] @watilde
[x] @mmun
[x] @as-cii
[x] @maxbrunsfeld
[x] @GabrielCastro
[x] @ffflorian
[x] @jedireza
[ ] @linclark
[x] @EdShaw
[x] @bantic
[x] @eddyb

I'll check people's names off as they leave their comments. Once we get all the signoffs I'll go ahead and do the relicensing.
I apologize for the inconvenience and really appreciate everyone's help, both for this relicensing and for your contributions to Neon!

I license past and future contributions under the dual MIT/Apache-2.0 license, allowing licensees to choose either at their option.

I license past and future contributions under the dual MIT/Apache-2.0 license, allowing licensees to choose either at their option.

I license past and future contributions under the dual MIT/Apache-2.0 license, allowing licensees to choose either at their option.

I license past and future contributions under the dual MIT/Apache-2.0 license, allowing licensees to choose either at their option.

I license past and future contributions under the dual MIT/Apache-2.0 license, allowing licensees to choose either at their option.

I license past and future contributions under the dual MIT/Apache-2.0 license, allowing licensees to choose either at their option.

I license past and future contributions under the dual MIT/Apache-2.0 license, allowing licensees to choose either at their option.

I license past and future contributions under the dual MIT/Apache-2.0 license, allowing licensees to choose either at their option.
🐈

I license past and future contributions under the dual MIT/Apache-2.0 license, allowing licensees to choose either at their option.

I license past and future contributions under the dual MIT/Apache-2.0 license, allowing licensees to choose either at their option.

I license past and future contributions under the dual MIT/Apache-2.0 license, allowing licensees to choose either at their option.

I license past and future contributions under the dual MIT/Apache-2.0 license, allowing licensees to choose either at their option.

Thank you everyone!! 😍


post_computer_crc starting address.

This code is from tools/post_compute_crc.py.
    if start == 0x8000 or start == 0x88000:
        pad_addr = start - 0x3000
        # Create hex file
    elif start == 0 or start == 0x80000:
        pass
    else:
        assert 0, "Unsupported start address 0x%x" % start

Can someone explain what's going on here. It seems to be creating hex files for the interface firmware and not for the bootloader. The issue that I'm having is that when the interface firmware starting address is not at 0x8000 or 0x88000 I get an error.
The HIC I'm working with has a flash sector size of 0x2000. I don't have enough room for the bootloader code and have a page for the "CONFIG_ADMIN" page.

Hi @kgills, the first 'if' is for creating legacy builds. Firmware for new boards shouldn't need this. The 'elif' is for versions which don't need a legacy build so all addresses are accounted for.
Addresses which cause a legacy build to be created in addition to the regular build:
0x8000 - Legacy application start for the K20DX and KL26Z
0x88000 -  Legacy application start for the atsam3u
Ignored addresses:
0x0 - Ignores Bootloader for K20DX and KL26Z, interface for lpc11u35
0x80000 - Ignores bootloader for the atsam3u.

Would it be acceptable to remove the assertion? If only legacy builds need these hex files, and their starting addresses won't change, I don't think we need the assertion.

Yeah, you can either remove the assert or add the new offset to the elif case. If the assert is left in then it will ensure all offsets are accounted for.

I'll create a PR to remove the assertion. Since only the legacy builds need this and their starting addresses won't change, we won't have to add a new starting address every time a new HIC wants to use a different starting address.

@kgills can this be closed since #186 has been merged?


Add the Ability to Change the Format of Date and Timestamp Fields

As a user, when looking at documents that match my mongo DB query, I would like to see my date property values in the format "4/17/20 12:00:08.976 AM UTC" so that I know how many Milliseconds have passed between records (My mongo DB contains log entries).  Right now they look like "4/17/20 12:00:08 AM UTC" and I cannot change the format.
Let me know if you need more information.
Wonderful plugin!!!

I just learned that I can control the format of the query results by specifying an Aggregator, like this:
{     $set:{         ts: {$dateToString: {format: "%G-%m-%d %H:%M:%S.%L ", timezone:"America/Chicago", date: "$timestamp"}},     } }
Where $timestamp matches the 'timestamp' property in my documents.


[Removal]: please remove from the denylist

Hotspot Name
Slow Carrot Rooster
Hotspot b58 Address
112QPKsLnAbcSa8gnGxaThMhKCjqYbdNFn4rdXohuyPkMT2WUHiQ
Discord Handle
No response
Hotspot Manufacturer
Sensecap
Removal Reason
I bought this unit and a 2 on the secondary market. Unfortunately I didn't realize they were on the reject list. I put this one in the workshop and used it according to the actual location. Please check the removal from the reject list. Thank you very much.
Modifications
No
Extra forwarders
No
Extra antennas
No
Additional Information

We have taken into account this removal request in the next iteration of the denylist. It may take some time before it's processed. This is an automated comment due to the volume of addition and removal requests. A future tool is in the works to provide more insight into the analysis approach made by the Helium team and community members that maintain this list.


Revert "Add sklearn 1.5 to CI matrix"

Reverts intel/scikit-learn-intelex#1842 due to introduced GPU CI failures

@Alexsandruss with merge of #1855 this can now be reverted.


Getting _PARTITION_EOF error when using consume

I am using the Consumer.Consume method with a 30 sec timeout (because I want to receive just 1 message) however randomly (about 1/10 times) the returned MessageAndError contains the error "_PARTITION_EOF"
this is how I set up my consumer
Config kafkaConfig = new Config()
 {
      GroupId = replyInboxString, // this is a random guid-string
       DefaultTopicConfig = new TopicConfig { ["auto.offset.reset"] = "smallest" },
       EnableAutoCommit = true
};

Then I use assign and set each offset for each partition for my one topic to be Offset.Beginning
My cluster is setup with 3 partitions.
am I doing something wrong? why do I get this error randomly?

It's not really an error, it's just a notification that your consumer has reached the end of that partition and there aren't any other messages immediately available on it. If you're not interested in it you can just ignore it.

I am trying to create a request/reply wrapper with RdKafka, I am expecting one message to be consumed from the topic, I understand that only one partition will have the message, is this "_PARTITION_EOF" coming from the other 2 partitions then?

Nope, it will come from the partition from which you just consumed the last message. Or at start, from empty partition or with no new message
Example: let's assume you are consuming and there is no new message in any partition.
You are then trying to consume, and timeout every 30s, which means a null message is return from Consume (and typically just ignore it, look at eventConsumer for example)
You then push 3 messages, 2 to P0 and 1 to P1 (assuming 3 partitions)
Your loop will then:

A1 : Consume and return immediately message 1 from P0
B1 : Consume and return immediately message 1 from P1
A2 : Consume and return immediately message 2 from P0
A3 : Consume and return immediately EOF from P0 (as there is no more available message in the internal queue)
B2 : Consume and return immediately EOF from P1
Consume and wait for timeout (no more message available)

Note that A and B (A for P0 and B for P1) may be mixed in whatever order (A1/A2/A3/B1/B2 or B1/A1/A2/B2/B3 are other possible flow, there is one thread for each partition internally)
In an application where you receive lot of messages but can easily keep up with the throughput, you will receive lot of EOF. It just means you are not cowling under request.
In a topic with lot of partition which are partitioned, when you process lot of past data from kafka, it allow you to know when all data from a partition have been received so you can process them immediately.
In your use case, it seems useless :) If you are not interested by eof notifications, you can either ignore them or desactivate them via conf (conf["enable.partition.eof"] = "false")
By the way ( @ah- correct me if i'm wrong) you should stick with a 1s timeout as consume also triggers errors (transport error for example) so you may want to get them immediately and not wait for a timeout (i'm not entirely sure with this)

ahh I see thanks for the explanation @treziac.
on another note, i mentioned I was using Assign to reset each topics partitions to Offset.Beginning, however, When use subscribe like so
               consumer.Subscribe(new List<string> { replyInboxString });
The consumer does not get any messages sometimes. what is the difference between using Assign and Consume vs Subscribe and Consume?

oups, didn't post this when getting off, still post it for info :)
Subscribe use group.id, group coordinator and rebalance mechanism (see here for more explanations)
https://www.safaribooksonline.com/library/view/kafka-the-definitive/9781491936153/ch04.html
TL;DR :
Subscribe put consumer in a group depending of it's group id. All consumers from a group share the data (if a topic has 3 partitions and there is two consumers from same group subscribing to this topic, one will receive message from 2 of th partition and the second from the third partition)
If you don't close consumer properly, group coordinator don't know the consumer exited the group until session timeout (30s by default for librdkafka)
Also that's why you shouldn't put a 30s timeout - you could just be ejected from group as you don't send hearthbate, so you may have to wait an other 30s to get a rebalance callback...
If you run multiple consumer and you want all of them to receive message, you can give them a different group id (still not possible to use subscribe with no group id)
Assign just assign directly the partition to the consumer. No group coorinator. Also no discovery of new partition, sharing or other. But you will consume immediatly and are not impacted by other consumer
Note that you can use OnPartition Assigned/Revoked to see what is happening (check the advanced consumer example)


Add ability to upload photos to the registration page

Allow users to upload photos into a store, which is then used to populate the new Product setup in Shopify

@dwdowns Do you still want this?