DataFetcherResult support to return data & errors

DataFetcherResult was introduced in the graphql-java v7.0 to allow returning a wrapper object which will contain the data the resolver is supposed to return + a list of errors.
I took the sample project to try:
    @GraphQLMutation(name = "createVendor")
    public DataFetcherResult<Vendor> createVendor(@GraphQLArgument(name = "vendor") Vendor vendor){
        Vendor createdVendor =  new Vendor((long) mockVendorStorage.size() + 1,
                vendor.getName(),
                vendor.getAddress());
        mockVendorStorage.add(createdVendor);
        List<GraphQLError> errors = new ArrayList<>();
        errors.add(new GenericGraphQLError("invalid data"));
        return new DataFetcherResult<>(createdVendor, errors);
    }

Then I invoke the method:
mutation {
  createVendor(
    vendor: {
      id: 1
      name: "hello"
      address: {
        city: "mtl"
        postalCode:"h2c1f1"
        streetAndNumber: "123 asd"
      }
      productsInStock:[
        {
          stockSize: 1
          product:{
            id: 1
            name: "aaa"
            description:"asdas"
          }
        }
      ]
    }) {
    id
    name
  }
}

Instead of returning the data + the error, it's just failing because spqr hasn't extracted the data part from the DataFetcherResult:
{
  "data": null,
  "errors": [
    {
      "message": "Validation error of type FieldUndefined: Field 'id' in type 'DataFetcherResult_Vendor' is undefined",
      "locations": [
        {
          "line": 36,
          "column": 5
        }
      ],
      "description": "Field 'id' in type 'DataFetcherResult_Vendor' is undefined",
      "validationErrorType": "FieldUndefined",
      "errorType": "ValidationError",
      "path": null,
      "extensions": null
    },
    {
      "message": "Validation error of type FieldUndefined: Field 'name' in type 'DataFetcherResult_Vendor' is undefined",
      "locations": [
        {
          "line": 37,
          "column": 5
        }
      ],
      "description": "Field 'name' in type 'DataFetcherResult_Vendor' is undefined",
      "validationErrorType": "FieldUndefined",
      "errorType": "ValidationError",
      "path": null,
      "extensions": null
    }
  ],
  "extensions": null
}

Are you planning to support this new feature from graphql-java implementation, since actually it was a big missing peace from the GraphQL spec.

Actually the mapper handling this is already present in the current master. So you'll have it in the next release. But, I'd like to make a few points:

It's good to notice the mapper is almost trivial to add yourself. See its code, it's only a couple of lines. Once you have a custom mapper, you can register it via:

generator.withTypeMappers((config, defaults) -> defaults.insertAfter(StreamToCollectionTypeAdapter.class, customMapper) //for example, other locations are also good

I really can't recommend using DataFetcherResult with SPQR in the first place. SPQR is all about non-obtrusiveness and using a library-dependent type in your code goes directly against this. You end up having a service that can not be (naturally) reused outside of GraphQL due to its tight coupling with graphql-java.
This is especially aggravating since you don't need DataFetcherResult to achieve the same benefits, the facilities for a much cleaner approach are already there: the method can return its real result or throw a custom exception that contains one or more messages. You then provide a DataFetcherExceptionHandler to the ExecutionStrategy that will map the custom exception to one or more errors in the response (using ExecutionContext#addError) e.g one error per message.

This way your Java code remains succinct and reusable. You could, for example, use the exact same method as a backend for a REST end-point. Do you agree?

Oh, wait. The mapper is already present in the released version 0.9.6. So no need to wait for anything. Were you on an older release?

@kaqqao Thanks for the reply, actually I simply did a checkout of the sample project, but I haven't noticed that it's using an older version.  I tried with 0.9.6 as you suggested, the result is better, but still not what I expected.  So far in our project, that's the biggest blocker, because for some reason (or we misunderstood something) all the libs using graphql-java are not following the GraphQL specification:

If the data entry in the response is not null, the errors entry in the response may contain any errors that occurred during execution. If errors occurred during execution, it should contain those errors.

So that's exactly what we are trying to get data + errors in the same response.  Just to be clear, for example, the request I added earlier is supposed to get this as response:
{
  "data": {
      "id": 1,
      name: "hello"
   },
  "errors": [
    {
      "locations": null,
      "message": "invalid data",
      "errorType": null,
      "path": null,
      "extensions": null
    }
  ],
  "extensions": null
}

With the version 0.9.6, I only get the error:
{
  "data": null,
  "errors": [
    {
      "locations": null,
      "message": "invalid data",
      "errorType": null,
      "path": null,
      "extensions": null
    }
  ],
  "extensions": null
}

In other words, I totally agree with you we should avoid using DataFetcherResult as much as we can, but in some specific scenario, it's just not possible, because how do you want to return data and throw an exception at the same time? ... that's the whole point of introducing the `DataFetcherResult', a result can be partially good to return some data and partially bad because of an error.
So, I would believe this issue should still be open, what do you think?

As for the spec, it does allow both the data and the errors. But this usually means that you get the data for the successfully resolved nodes and errors for unsuccessful ones. I find it very strange for the same node to produce both, especially in Java, but it is allowed.
I bumped the version in the sample to 0.9.6, thanks for pointing that out!
As for the issue you're describing, I'm still not sure I'm getting it... Here's my quick attempt at replicating it:
public static class Service {

        @GraphQLQuery
        public DataFetcherResult<String> mixed() {

            return new DataFetcherResult<>("result", Collections.singletonList(new GraphQLError() {
                @Override
                public String getMessage() {
                    return "Something went wrong";
                }

                @Override
                public List<SourceLocation> getLocations() {
                    return null;
                }

                @Override
                public ErrorType getErrorType() {
                    return ErrorType.ValidationError;
                }
            }));
        }
    }

...

ExecutionResult result = graphQl.execute("{mixed}");

After this, result.data.mixed contains the string result, while result.errors[0].message contains Something went wrong, as I'd expect.
Are you getting different behavior or am I misunderstanding your case? Could you please provide a minimal example?

Actually, I already tried to provide an example by applying only few  changes to your sample project, so just to make it clear, I provide again the code + request + actual response + expected response:
Code
https://github.com/elenigen/graphql-spqr-samples
Request
mutation {
  createVendor(
    vendor: {
      id: 1
      name: "hello"
      address: {
        city: "mtl"
        postalCode:"h2c1f1"
        streetAndNumber: "123 asd"
      }
      productsInStock:[
        {
          stockSize: 1
          product:{
            id: 1
            name: "aaa"
            description:"asdas"
          }
        }
      ]
    }) {
    id
    name
  }
}

Actual response
{
  "data": null,
  "errors": [
    {
      "locations": null,
      "message": "invalid data",
      "errorType": null,
      "path": null,
      "extensions": null
    }
  ],
  "extensions": null
}

Expected response
{
  "data": {
    "createVendor": {
      "id": 1,
      "name": "hello"
    }
  },
  "errors": [
    {
      "locations": null,
      "message": "invalid data",
      "errorType": null,
      "path": null,
      "extensions": null
    }
  ],
  "extensions": null
}

I get the same situation if I use anonymous error class like you did, so let me know if you need more details.
Thanks again!

Oh, hahahaa, I see the problem now and it's absolutely silly :laughing:
The result is exactly as you expect it, but the sanitize method called after the execution by the GraphQLSampleController destroys the data, because it creates a new ExecutionResult with the error only. This is because it's just a quick hack from the time before ExecutionResult#toSpecification used to hide the stacktrace (the comment also says something to that effect). No reason to still exist...
I've fixed up the demo code just now to follow the times. It now just calls toSpecification and sanitize is removed.
Sorry for the confusion... The sample project always lags behind because we only really update it properly before public talks. But I'll make sure to update it more regularly from now on.
We're about to release a SPQR-powered Spring Boot starter, so we'll have samples showcasing that too.

Thanks for the investigation, I know it's not an easy task to keep a sample project in sync with the original one.  One last point, I will try to debug this but when I apply the changes your suggested, it worked to send data + error, but if I add two errors in the list, for some reason, only the first one show up in the response, but it might be a graphql-java problem:
Code
    @GraphQLMutation(name = "createVendor")
    public DataFetcherResult<Vendor> createVendor(@GraphQLArgument(name = "vendor") Vendor vendor){
        Vendor createdVendor =  new Vendor((long) mockVendorStorage.size() + 1,
                vendor.getName(),
                vendor.getAddress());
        mockVendorStorage.add(createdVendor);
        List<GraphQLError> errors = new ArrayList<>();
        errors.add(new GenericGraphQLError("invalid data1"));
        errors.add(new GenericGraphQLError("invalid data2"));
        return new DataFetcherResult<>(createdVendor, errors);
    }

Response
{
  "data": {
    "createVendor": {
      "id": 1,
      "name": "hello"
    }
  },
  "errors": [
    {
      "message": "invalid data1"
    }
  ]
}

I was right, the source of the problem is from graphql-java and it was already fixed (#888), so it would be part of the next release.
As reference, here's what I did to make it work:
Code
    @GraphQLMutation(name = "createVendor")
    public DataFetcherResult<Vendor> createVendor(@GraphQLArgument(name = "vendor") Vendor vendor){
        Vendor createdVendor =  new Vendor((long) mockVendorStorage.size() + 1,
                vendor.getName(),
                vendor.getAddress());
        mockVendorStorage.add(createdVendor);
        List<GraphQLError> errors = new ArrayList<>();
        errors.add(generateFakeError("invalid data1", "path1"));
        errors.add(generateFakeError("invalid data2", "path1"));
        return new DataFetcherResult<>(createdVendor, errors);
    }

    private GraphQLError generateFakeError(String message, String path) {
        return new GraphQLError() {
            @Override
            public String getMessage() {
                return "Something went wrong";
            }

            @Override
            public List<Object> getPath() {
                return Collections.singletonList(path);
            }

            @Override
            public List<SourceLocation> getLocations() {
                return null;
            }

            @Override
            public ErrorType getErrorType() {
                return ErrorType.ValidationError;
            }
        };
    }

Request
mutation {
  createVendor(
    vendor: {
      id: 1
      name: "hello"
      address: {
        city: "mtl"
        postalCode:"h2c1f1"
        streetAndNumber: "123 asd"
      }
      productsInStock:[
        {
          stockSize: 1
          product:{
            id: 1
            name: "aaa"
            description:"asdas"
          }
        }
      ]
    }) {
    id
    name
  }
}

Response
{
  "data": {
    "createVendor": {
      "id": 1,
      "name": "hello"
    }
  },
  "errors": [
    {
      "message": "invalid data1",
      "path": [
        "createVendor",
        "path1"
      ]
    },
    {
      "message": "invalid data2",
      "path": [
        "createVendor",
        "path2"
      ]
    }
  ]
}

Finally, I was able to make it work, thanks a lot for your help!
😃 🍻  🌴

Glad we got it sorted out! Cheers! :beer:


Add produces option for /forgot

Implements the produces option for /forgot according to the framework spec.
How to verify

Checkout this branch.
Clone express-stormpath-sample-project.
Use npm link and npm link express-stormpath to link the library to the example project.
Start the server.
Navigate to http://localhost:3000/forgot.
Submit your email.
Open up the terminal and execute $ http POST localhost:3000/forgot email=[your<EMAIL_ADDRESS>--json.
Verify that you get a 200 OK response.
Modify your configuration and change web.produces to ['text/html', ''] (hack because extender currently merges arrays... which needs to be fixed, empty string overwrites second array item.).
Verify that step 5-6 works, but that step 7 responds with a 404 Not Found status.
Modify the web.produces config to ['application/json', ''].
Verify that step 5 results in a 404 Not Found and that steps 7-8 work as previous.
Modify the web.produces config again to ['', ''].
Verify that both steps 5 and 7 result in a ´404 Not Found`.

Fixes #326.

+1, looks good!  Please see note about serving the SPA root.

@timothyej This is failing. Are you looking into it?

I rebased produce-option-change against framework-spec-upgrade, then rebased this branch against produce-option-change.  As such, this branch now represents the upgrades to both of those routes.  The tests are interdependent on each other, so this makes the most since.  I added a commit to update the SPA test fixture to use the new configuration format.
Tests are good, merging.

Thanks a lot @robertjd! :)


check if wasm and zkey exist

fix: https://github.com/Rate-Limiting-Nullifier/rlnjs/issues/49
description:

I will check if there are files at wasmFilePath and finalZkeyPath.
The path can be either a local file path or a URL.
There are two environments at runtime: the browser environment and the Node.js environment. During the browser environment, you cannot access the path to a local file.
I am using the window and process variables to determine if it's a browser environment.

@s-ekai  Awesome work! Could you run npm run format to fix the lint?

@mhchia
Thank you very much, I ran npm run format!

@s-ekai Great work. Thanks a lot for your contribution 😄


Changing the object camera of the opponent's strumlines

Describe your problem here.
I'm trying to make it so that the opponent's strumlines are set to camGame, as opposed to camHUD. I've tried just doing setObjectCamera('opponentStrums', 'camGame') since I remembered seeing opponentStrums used in a script once, but i'm not having much luck. Is there anything I can use in a situation like the following??
for i = 0,3 do
	setPropertyFromGroup('strumLineNotes', i, -- would i put the camGame junk here?)
end

Any help is much appreciated! I haven't really spent much time learning 0.7-era lua, since none of my scripts have required it, but I feel like this might need some knowledge about it (that or im a bit stupid lol)
Are you modding a build from source or with Lua?
Lua
What is your build target?
Windows x64
Did you edit anything in this build? If so, mention or summarize your changes.
No response

I've helped a couple people with this; I'll direct you to #14847


Pongo 2.0

See https://github.com/Kong/kong-pongo/issues/322 for breaking changes

maybe we should remove only the listed versions, and leave the artifacts in, just to keep this PR managable. After the merge we can update the artifacts.
The failures in CI; multi-dict, iirc that was the reason to add the python-dev package.

the python-dev package isn't solving this. Seems to need python 3.7 at least, and requires the wheel thing updates, see https://httpie.io/docs/cli/universal.


Deprecate z_mg and df_mg

Has anyone ever used these parameters? Otherwise I think they should go.
https://github.com/LSSTDESC/CCL/blob/593ed60ce7d9763590856fd253e6683ca18269f5/pyccl/core.py#L131

I think no-one ever used these. I agree they should probably go.

I never use them and I don't know of anyone who has. This was our first attempt at including modified gravity as I recall - we may have outgrown it. @TessaBaker @gvalogia any thoughts? (These parameters allow a general non-standard growth factor to be passed as an array - but I think this functionality is preserved in generality in @damonge's new 'Calculator Mode' which should be merged shortly, right David?)

I never use them and I don't know of anyone who has. This was our first attempt at including modified gravity as I recall - we may have outgrown it. @TessaBaker @gvalogia any thoughts? (These parameters allow a general non-standard growth factor to be passed as an array - but I think this functionality is preserved in generality in @damonge's new 'Calculator Mode' which should be merged shortly, right David?)

I haven't used these either. I think having a modified growth factor option is still desirable, but sounds like David has it covered?

I haven't used these either. I think having a modified growth factor option is still desirable, but sounds like David has it covered?

Yes, I think keeping these now is superfluous. The calculator mode allows a lot more freedom, and losing these parameters would simplify the API in the next version significantly.

Yes, I think keeping these now is superfluous. The calculator mode allows a lot more freedom, and losing these parameters would simplify the API in the next version significantly.

Cool, let's get rid of them!

Cool, let's get rid of them!

Yes, I also don't think this feature is necessary. I can see the logic behind this, I haven't seen anyone using this parametrization recently.

Yes, I also don't think this feature is necessary. I can see the logic behind this, I haven't seen anyone using this parametrization recently.


Is it possible to use with TailwindCSS?

Hello, I'm really interested in using the package, I can't seem to find a way to make it work with Tailwind however, it seems most people have their css already preprocessed and you can import it somehow, but it's not clear to me how to make it work with Tailwind
Has anyone tried this before?

Yup, I'm using it in Maizzle:
https://github.com/maizzle/framework

thanks! I ended up figuring in out how to use pure tailwind and react to render emails


New round of invites

@austin9350
We've got a new round of invites ready for this weekend.

Added


billing: Rename button to apply for sponsorship or discount.

It was not clear that the button could be used for discounts.
Plans page:

@amanagr perhaps you can fix the tests for this one?

Removed the string test for this since they weren't really testing anything.

Merged, thanks @alya and @amanagr!


fix type exports for older TS versions

This fixes an issue for consumers who are using older versions of TS that aren't compatible with export type {...} syntax

after a chat with @MonicaOlejniczak we might need to put a bit more time toward this issue so that we don't end up breaking integration with CRA

Yep, I do recall some issues with CRA when not doing things this way, what was the reason for needing to support older versions of TS?

We're going about this in a different manner


Update runtimecore to v2

Update runtimecore branch to latest lerc version (v2).

Reapply https://github.com/Esri/lerc/commit/8d8bda446adfc0bf0d2a3792ca2c67ccdbe6e052 to Lerc.cpp after merge with master.
Update lerc lua file to work with new directory structure

Testing:
vTest: http://runtime-test.esri.com:8080/job/vtest_interface/1828/downstreambuildview/ (release)
vTest: http://runtime-test.esri.com:8080/job/vtest_interface/1831/downstreambuildview/ (debug)

Note: RTC checks job doesn't appear to sync the Custom_3rdparty_binaries, hence the failures there.

Should 8d8bda4 be merged upstream?

Should 8d8bda4 be merged upstream?

@dkalowsk I don't think so. I looked into our usage of the extra parameter added to the read function and it looks like it's a bit of a shortcut to determine a priority to terrain data when there are multiple sources available (valid data has priority). I think the use case is specific to our implementation.

The Lerc API way would be to look at the returned byte mask of valid / invalid pixels. This has all the information. If you have multiple elevation sources for the same location, you could also count the number of valid pixels and go with the one that has the most. Or merge them etc.


Doc update for V1-v2 apps

PLEASE READ
Following a recent back-end update, all contributors with a local clone or fork of our repository are required to run yarn install. This does not apply to direct page edits.

[ ] Yes, I've run yarn install
[ ] No, does not apply to me

Purpose of this pull request
This pull request...

Select the type of change:

[ ] Minor Changes - Typos, formatting, slight revisions, .clabot
[ ] Update Content - Revisions, updating sections
[ ] New Content - New features, sections, pages, tutorials
[ ] Site and Tools - Updates, maintenance, dependencies, new packages for the site (Docusaurus, Gatsby, React, etc.)

The intent of this PR is covered in the PRs #3432, #3433, and #3434.


Share Scopes doesnt create new cases in switch statements

Bug report

What is the current behavior?
I don't think share scopes are working outside the default case.
What I am trying to do is import a newer component inside an older react host.
The idea is ill have an adapter which react to mount a div, then use share scope to take advantage of reactNew.render()
My idea was to create two share scopes so that legacy apps importing modern code would be able to render and mount the modern components on its own using a new version of react via share scope.
   new ModuleFederationPlugin({
      name: "app2",
      library: {type: "var", name: "app2"},
      filename: "remoteEntry.js",
      exposes: {
        "./Button": "./src/Button",
        "./ModernComponent": "./src/ModernReactComponent",
      },
      shared: ["react-dom", {
        react: {
          import: "react", // the "react" package will be used a provided and fallback module
          shareKey: "react", // under this name the shared module will be placed in the share scope
          shareScope: "default", // share scope with this name will be used
          singleton: true, // only a single version of the shared module is allowed
        },
        reactNew: {
          import: "react", // the "react" package will be used a provided and fallback module
          shareKey: "reactNew", // under this name the shared module will be placed in the share scope
          shareScope: "modern", // share scope with this name will be used
          singleton: true, // only a single version of the shared module is allowed
        },
      }],
    }),
``

Which generates the following

```js
/******/ 		__webpack_require__.I = (name) => {
/******/ 			// only runs once
/******/ 			if(initPromises[name]) return initPromises[name];
/******/ 			// handling circular init calls
/******/ 			initPromises[name] = 1;
/******/ 			// creates a new share scope if needed
/******/ 			if(!__webpack_require__.o(__webpack_require__.S, name)) __webpack_require__.S[name] = {};
/******/ 			// runs all init snippets from all modules reachable
/******/ 			var scope = __webpack_require__.S[name];
/******/ 			var warn = (msg) => typeof console !== "undefined" && console.warn && console.warn(msg);;
/******/ 			var uniqueName = "@different-react-versions/app2";
/******/ 			var register = (name, version, factory) => {
/******/ 				var versions = scope[name] = scope[name] || {};
/******/ 				var activeVersion = versions[version];
/******/ 				if(!activeVersion || !activeVersion.loaded && uniqueName > activeVersion.from) versions[version] = { get: factory, from: uniqueName };
/******/ 			};
/******/ 			var initExternal = (id) => {
/******/ 				var handleError = (err) => warn("Initialization of sharing external failed: " + err);
/******/ 				try {
/******/ 					var module = __webpack_require__(id);
/******/ 					if(!module) return;
/******/ 					var initFn = (module) => module && module.init && module.init(__webpack_require__.S[name])
/******/ 					if(module.then) return promises.push(module.then(initFn, handleError));
/******/ 					var initResult = initFn(module);
/******/ 					if(initResult && initResult.then) return promises.push(initResult.catch(handleError));
/******/ 				} catch(err) { handleError(err); }
/******/ 			}
/******/ 			var promises = [];
/******/ 			switch(name) {
/******/ 				case "default": {
/******/ 					register("react-dom", "16.13.1", () => Promise.all([__webpack_require__.e("vendors-node_modules_react-dom_index_js"), __webpack_require__.e("webpack_sharing_consume_default_react_react")]).then(() => () => __webpack_require__(/*! ../../node_modules/react-dom/index.js */ "../../node_modules/react-dom/index.js")));
/******/ 					register("reactNew", "16.13.1", () => __webpack_require__.e("vendors-node_modules_react_index_js").then(() => () => __webpack_require__(/*! ../../node_modules/react/index.js */ "../../node_modules/react/index.js")));
/******/ 				}
/******/ 				break;
/******/ 			}
/******/ 			return promises.length && (initPromises[name] = Promise.all(promises).then(() => initPromises[name] = 1));
/******/ 		};

If the current behavior is a bug, please provide the steps to reproduce.

What is the expected behavior?
Id expect to see default and modern in the switch statement

Other relevant information:
webpack version:  beta 22
Node.js version: 12
Operating System:  osx

from
  await __webpack_init_sharing__("modern");

  const container = window['app2']; // or get the container somewhere else
  // Initialize the container, it may provide shared modules
  console.log(__webpack_share_scopes__)
  await container.init(__webpack_share_scopes__.modern);

The host is not sharing reactNew here, because it never uses it. It would need to import "reactNew" to actually use this version and share it.
As sharing is optional and independent for each build, it's only done when really using the package.
That the host doesn't share reactNew doesn't prevent the containers to share it. Actually there would be no benefit when the host shares it except when container use import: false which is not recommended.
So if you want to isolate shared modules in some remotes, just omit the reactNew shared entry and the container would work as expected. They would share react with each other

The host is not sharing reactNew here, because it never uses it. It would need to import "reactNew" to actually use this version and share it.
As sharing is optional and independent for each build, it's only done when really using the package.
That the host doesn't share reactNew doesn't prevent the containers to share it. Actually there would be no benefit when the host shares it except when container use import: false which is not recommended.
So if you want to isolate shared modules in some remotes, just omit the reactNew shared entry and the container would work as expected. They would share react with each other

I have three items: a,b,c,d.
a provides modules for b and c to use. a and b want to share react. a and c don't want to share react.
d also provides modules for c to use. d and c want to share react.
At this time, how to configure shared


„Cannot create Launcher without at least one TestEngine“ — When there is indeed a TestEngine

Expected Behavior

When the Java Gradle Plugin is applied in a project, it should find test framework launcher classes and service providers that are present on the testRuntimeClasspath.
Current Behavior

When the Java Gradle Plugin is applied in a project, it fails to find test framework launcher classes and service providers that are absolutely, most definitely, and provably present on the :testRuntimeClasspath.
Context

Test tasks that are configured to execute unit tests that cover classes of a JPMS module, work perfectly fine in a project that does not have the Java Gradle Plugin applied.
Doing nothing more than merely applying the Java Gradle Plugin in a module project, however, causes JUnit 5 test execution to fail with...
...
Caused by: org.gradle.internal.impldep.org.junit.platform.commons.util.PreconditionViolationException: Cannot create Launcher without at least one TestEngine; consider adding an engine implementation JAR to the classpath
	at gradle.api@6.0-rc-2/org.gradle.internal.impldep.org.junit.platform.commons.util.Preconditions.condition(Preconditions.java:295)
	at gradle.api@6.0-rc-2/org.gradle.internal.impldep.org.junit.platform.launcher.core.DefaultLauncher.<init>(DefaultLauncher.java:58)
	at gradle.api@6.0-rc-2/org.gradle.internal.impldep.org.junit.platform.launcher.core.LauncherFactory.create(LauncherFactory.java:91)
	at gradle.api@6.0-rc-2/org.gradle.internal.impldep.org.junit.platform.launcher.core.LauncherFactory.create(LauncherFactory.java:67)
	at gradle.api@6.0-rc-2/org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.processAllTestClasses(JUnitPlatformTestClassProcessor.java:97)
	at gradle.api@6.0-rc-2/org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.access$000(JUnitPlatformTestClassProcessor.java:79)
	at gradle.api@6.0-rc-2/org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor.stop(JUnitPlatformTestClassProcessor.java:75)
	at gradle.api@6.0-rc-2/org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.stop(SuiteTestClassProcessor.java:61)
	... 25 more

...even though the JUnit 5 dependencies are configured and can be clearly observed to be present on the testRuntimeClasspath...
...
:test's classpath ---

   '    ...:$GRADLE_USER_HOME/caches/modules-2/files-2.1/org.junit.jupiter/junit-jupiter-engine/5.5.2/.../junit-jupiter-engine-5.5.2.jar:$GRADLE_USER_HOME/caches/modules-2/files-2.1/org.junit.jupiter/junit-jupiter-api/5.5.2/.../junit-jupiter-api-5.5.2.jar:$GRADLE_USER_HOME/caches/modules-2/files-2.1/org.junit.platform/junit-platform-launcher/1.5.2/.../junit-platform-launcher-1.5.2.jar:$GRADLE_USER_HOME/caches/modules-2/files-2.1/org.junit.platform/junit-platform-engine/1.5.2/.../junit-platform-engine-1.5.2.jar:$GRADLE_USER_HOME/caches/modules-2/files-2.1/org.junit.platform/junit-platform-commons/1.5.2/.../junit-platform-commons-1.5.2.jar:$GRADLE_USER_HOME/caches/modules-2/files-2.1/org.apiguardian/apiguardian-api/1.1.0/.../apiguardian-api-1.1.0.jar:$GRADLE_USER_HOME/caches/modules-2/files-2.1/org.opentest4j/opentest4j/1.2.0/.../opentest4j-1.2.0.jar    '

...

Those exact same JUnit 5 JARs are also in the module path. As proposed by JUnit 5 & OpenJDK devs @marcphilipp & @sormuras, having JUnit 5 on both paths is considered to be current best practice.
JUnit 4 tests, fail under the same conditions. But with a different error message...
...
java.lang.Exception: No runnable methods
	at gradle.api@6.0-rc-2/org.gradle.internal.impldep.org.junit.runners.BlockJUnit4ClassRunner.validateInstanceMethods(BlockJUnit4ClassRunner.java:191)
	at gradle.api@6.0-rc-2/org.gradle.internal.impldep.org.junit.runners.BlockJUnit4ClassRunner.collectInitializationErrors(BlockJUnit4ClassRunner.java:128)
	at gradle.api@6.0-rc-2/org.gradle.internal.impldep.org.junit.runners.ParentRunner.validate(ParentRunner.java:416)
	at gradle.api@6.0-rc-2/org.gradle.internal.impldep.org.junit.runners.ParentRunner.<init>(ParentRunner.java:84)
	at gradle.api@6.0-rc-2/org.gradle.internal.impldep.org.junit.runners.BlockJUnit4ClassRunner.<init>(BlockJUnit4ClassRunner.java:65)
	at gradle.api@6.0-rc-2/org.gradle.internal.impldep.org.junit.internal.builders.JUnit4Builder.runnerForClass(JUnit4Builder.java:10)
	at gradle.api@6.0-rc-2/org.gradle.internal.impldep.org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59)
	at gradle.api@6.0-rc-2/org.gradle.internal.impldep.org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:26)
	at gradle.api@6.0-rc-2/org.gradle.internal.impldep.org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59)
	at gradle.api@6.0-rc-2/org.gradle.internal.impldep.org.junit.internal.requests.ClassRequest.getRunner(ClassRequest.java:33)
	at gradle.api@6.0-rc-2/org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.runTestClass(JUnitTestClassExecutor.java:78)
	at gradle.api@6.0-rc-2/org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.execute(JUnitTestClassExecutor.java:58)
	at gradle.api@6.0-rc-2/org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.execute(JUnitTestClassExecutor.java:38)
	at gradle.api@6.0-rc-2/org.gradle.api.internal.tasks.testing.junit.AbstractJUnitTestClassProcessor.processTestClass(AbstractJUnitTestClassProcessor.java:62)
	at gradle.api@6.0-rc-2/org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.processTestClass(SuiteTestClassProcessor.java:51)
	...
	at gradle.api@6.0-rc-2/org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)
	at gradle.api@6.0-rc-2/org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
	at gradle.api@6.0-rc-2/org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33)
	at gradle.api@6.0-rc-2/org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94)
    ...

Steps to Reproduce

Download this demonstration project

In a terminal, cd into the root folder of the project and run :check

Observe in the generated HTML report, the errors reported above

Observe in the stdout printed to the terminal, that all of the JUnit 5 JARs — including the org.junit.platform.launcher module — are indeed present in the classpath and in the module path (as recommended)

In the project's build.gradle script, comment out line 14 so that the build does not use the Java Gradle Plugin:
id 'java-gradle-plugin'

Run :check again.

Observe that the test is successfully launched and passes

Your Environment

JUnit 5 v5.5.2
Gradle 6.0-rc-2
OpenJDK 12
Windows amd64

@lingocoder Thanks for raising the issue!
I'm getting the following error when running your example project with Gradle 6.0:
https://scans.gradle.com/s/efpan3mgfefak/console-log?task=:test#L26
Any ideas?

Hi @marcphilipp,
Thanks for looking into this.

„Any ideas?“

Yeah. In a nutshell, that error is the symptom of a JPMS split package. The root cause of the split package was reported in this jigsaw-dev mailing list msg

...
For some reason, Gradle's generated artifact redundantly duplicates all
the packages of two modules from the JDK: javax.xml and jdk.xml.dom.
...

To which one of the original authors of the Jigsaw/JPMS specification replied:

The Gradle devs will know but I assume these are coming from the
xml-apis-${version}.jar (Apache Xerces project). It's not clear, to me
anyway, why these API classes are still being distributed in 2019. The
XML processing API was added to Java SE 1.4, the XML stream API came a
bit later. The XML APIs started out in Java SE as "standalone
technologies" where they were in the JDK but could be upgraded by
deploying a newer version with the endorsed standards override
mechanism. It's possible, and probable, that developers have been
deploying xml-apis on the class path and got lucky that it didn't cause
problems. Anyway, none of this makes sense since Java SE 9 as both
JSR-206 and JSR-173 ceased to be standalone technologies (see the final
MR for both JSRs), and mechanism to upgrade them (the endorsed standards
override mechanism) has been removed.

I was actually in the process — right before seeing your reply  a moment ago — of nearly completing an implementation of my plugin that works around that split package issue.
Of course my workaround is merely a band-aid to unblock my progress — in the short term. But ideally, Gradle devs would hopefully be able to implement a better (or as as @AlanBateman recommends in the mailing list, a „saner“) permanent solution to the root problem.
I appreciate you probably can't make any more progress past the blocker than I did when I reported this. But what would you recommend yourself, marcphilipp? Going on what you've been able to tell so far?
TIA :+1:

Could you please raise a separate issue to remove javax.xml.transform from the gradle-api JAR?

„Could you please raise a separate issue to remove javax.xml.transform from the gradle-api JAR?“

Would that it were that straightforward, marcphilipp :)
Here is just a random sample of the internal Gradle implementation dependencies a removal of that package's containing module (java.xml) would impact:
   org.gradle.internal.impldep.org.mozilla.javascript.xmlimpl -> javax.xml.transform                                gradle-api-6.0-rc-2.jar
   org.gradle.internal.impldep.org.mozilla.javascript.xmlimpl -> javax.xml.transform.dom                            gradle-api-6.0-rc-2.jar
   org.gradle.internal.impldep.org.mozilla.javascript.xmlimpl -> javax.xml.transform.stream                         gradle-api-6.0-rc-2.jar
   ...
org.gradle.internal.xml                            -> javax.xml.transform                                gradle-api-6.0-rc-2.jar
   org.gradle.internal.xml                            -> javax.xml.transform.dom                            gradle-api-6.0-rc-2.jar
   org.gradle.internal.xml                            -> javax.xml.transform.stream                         gradle-api-6.0-rc-2.jar
...

And javax.xml.transform is just one package of several packages in the java.xml module. Even if you removed the entire java.xml module somehow,  There's a second module (jdk.xml.dom) in Gradle's shaded JAR (itself with a ton more packages) that you'd have to contend with. It also causes split packages in the exact same way.
There are tons more classes that would be impacted. So many, that you would very likely be annoyed at me if I pasted them all here. But this might give you a flavor of the general impact those two modules have within the Gradle code base.
You could run the jdeps command on the gradle-api-6.0.jar to get a more detailed picture of the impact if you need more.
The really frustrating thing that I've discovered after seeking advice in the jigsaw-dev mailing list, is that it's impossible to patch the jar the way you would ordinarily solve a split package dilemma.
I'm curious, marcphilipp. Were you able to reproduce any part of the issue I described in my original report? I gather you can't share any specific solution that might have eluded me so far?
In any case, I sincerely appreciate that you took the time to look into this. Many thanks :+1:

Were you able to reproduce any part of the issue I described in my original report?

No, I ran into the issue I linked above.
Could you please elaborate a bit more on your use case. Why do you want to run tests for a Gradle plugin using the module path? It will not be executed that way at runtime so I don't see the point.

Thanks marcphilipp,
I explain the use case in my typical boringly-verbose style here.
Tl;DR — I'm developing a Gradle plugin that enables JPMS development. Among other JPMS development-related capabilities, it also turns a project into a JPMS modular Multi-Release JAR File. It does that — not only for non-plugin projects — also for projects that are themselves plugins.

„...It will not be executed that way at runtime so I don't see the point...“

It's not a plugin run-time issue. But a plugin development-time issue. The issue is only encountered when my plugin is doing its thing on another plugin project. Because only plugin development brings in gradle-api-${version}.jar.
I discovered the issue after recently refactoring my plugin, and applying that newly-refactored version to that same gradle-modules-plugin project I linked to above. I use that project as a sort of functional test for the plugin-as-a-modular-MRJAR use case.
I do concede it is a rare use case. But  mrJar provides that capability, nevertheless, Think of it as an experimental or incubating feature — to use Gradle's terminology

Tl;DR — I'm developing a Gradle plugin that enables JPMS development. Among other JPMS development-related capabilities, it also turns a project into a JPMS modular Multi-Release JAR File. It does that — not only for non-plugin projects — also for projects that are themselves plugins.

+1 ... Modules, modules, everywhere!

Why would a Gradle plugin project need to be a "JPMS modular Multi-Release JAR"?

„Why would a Gradle plugin project need to be a "JPMS modular Multi-Release JAR"?“

Thanks for asking marcphilipp
Here's one explanation from the link I shared previously:

...
...Depending on how a particular plugin is designed, the capabilities it provides to a Gradle build, might not be physically coded in the plugin's implementations of Plugin and DefaulTask. Those implementations are merely entry points to the actual functionality of the plugin.
That actual functionality could be implemented by behind-the-scenes collaborators to which the Plugin and DefaultTask implementations delegate. Couldn't there be some value in explicitly exporting that behind-the-scenes functionality to be available for use outside of the context of a Gradle build? Obviously not in your plugin — because it wasn't designed to be a library. But could there be some value in doing it in other plugin projects?
If there could be, then there could be some value in making a plugin's distributable, usable outside of the inflexible constraints of Gradle World. If a plugin's JAR were also an explicit module, its actual behind-the-scenes implementation details could additionally be useful in the wider Java World outside of a Gradle build. That is one distinguishing point of mrJar.
...

In that case, I'd propose extracting that behind-the-scenes functionality into a separate subproject that is consumed by the gradle plugin project.


Version 1.16 of Kubernetes has moved StatefulSets and RBAC out of v1beta

The Solace Helm Chart fails with 1.16 of K&S. It worked with 1.13.
The failure:
[root@tonga solace]# helm install . -f values.yaml
Error: validation failed: unable to recognize "": no matches for kind "StatefulSet" in version "apps/v1beta1"
The reason for this is seen in the 1.16 documentation

Thanks for raising Dave, will include a fix in the next update.

I appreciate your fast response.. Ty Sir.

@bczoma Could you please tell me about how long it will take for a bug fix to be available? Is this something that will take hours, days, or weeks?
Knowing your thought on this will help me to understand how to approach this problem. If its hours or days, then I'll simply wait for the fix.
Thanks

Looks like a simple fix that can be done in the next day or so. I'll update if not.

@davesargrad , I have made the fixes but takes a bit of time to get through our internal verification.
In the meantime, here are the fixes that worked for me and you can apply the diffs to get going as well:
----------------------- solace/templates/podModRbac.yaml -----------------------
kind: ClusterRoleBinding
-apiVersion: rbac.authorization.k8s.io/v1beta1
+apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: {{ template "solace.fullname" . }}-serviceaccounts-to-podtagupdater
roleRef:
------------------- solace/templates/solaceStatefulSet.yaml -------------------
-apiVersion: apps/v1beta1
+apiVersion: apps/v1
kind: StatefulSet
metadata:
name: {{ template "solace.fullname" . }}
labels:
app: {{ template "solace.name" . }}
chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
spec:

selector:
matchLabels:

 app: {{ template "solace.name" . }}

 release: {{ .Release.Name }}

serviceName: {{ template "solace.fullname" . }}-discovery
replicas: {{- if .Values.solace.redundancy }} 3 {{- else }} 1 {{- end }}
{{- if semverCompare ">=1.7-0" .Capabilities.KubeVersion.GitVersion }}

Thanks Much. I will apply the fixes. I appreciate your fast response. Goes a long way.

I was able to get solace deployed with your fixes. :)


Remove  running of CI on push to main

Reduce the number of github action processes running by remove running the CI actions on push to main.
(see discussions on mattermost)

Added now schedule runs for integration and unit tests for midnight every day.
Will do the changes regarding draft pull requests in another pull request. This one is ready for review.

Let's merge and monitor if the checks will be ran at 00:00 as planned


[Bug] Profile selection in settings doesn't work anymore

What happened?
When going to Settings -> Profiles, it is not possible to select a different profile.
The first one will always stay active when trying to select a different one.
Version
1.7.0-rc4
What platform are you using?
macOS
What ui mode are you using?
GUI
Relevant log output or stacktrace
No response

Looks like @esaung opened it here as well, so I'm going to close this one!


Revisions to component and callbacks

@webron All comments resolved.  Could somebody please merge this before I have to resolve conflicts for the fifth time :-)


If a request isn't routed to your api you can't findout why

As described in the issue #684 not all requests get routed to the API if an API is deployed. This get be even more complicated if your app has a custom route configuration with many rules in it.
It would be nice to see in the connected application insights what routing was chosen and why. Or at least enable a debug APP mode for this.

As described in the issue #684 not all requests get routed to the API if an API is deployed. This get be even more complicated if your app has a custom route configuration with many rules in it.
It would be nice to see in the connected application insights what routing was chosen and why. Or at least enable a debug APP mode for this.

Hey @paule96 ,
We created a new discussion to get some inputs on monitoring and debugging aspect wrt Static Web Apps. Please feel free to check it out and add your comments!


EPOLLRDHUP infinite loop

Motivation:
If  is enabled and a channel is half closed it is possible for the EPOLL event loop to get into an infinite loop by continuously being woken up on the EPOLLRDHUP event.
Modifications:

Ensure that the EPOLLRDHUP event is unregistered for to prevent infinite loop.

Result:
1 less infinite loop.

@normanmaurer - FYI

@Scottmitch please cherry-pick

Cherry-picked 4.0 (366b2a8) 4.1 (d2683c3) master (bb3b637)


Send transaction fail

Hi, how are you?
I am getting the following error when try to send a transaction..
DecodingError
▿ typeMismatch : 2 elements
- .0 : Swift.Array
▿ .1 : Context
- codingPath : 0 elements
- debugDescription : "Expected to decode Array but found a dictionary instead."
- underlyingError : nil
The method that send the transaction is the following...
let walletAddress = EthereumAddress(wallet.address!)!
let toAddress = EthereumAddress(toAddressString)!
let contract = web3.contract(Web3.Utils.coldWalletABI, at: toAddress, abiVersion: 2)!
let amount = Web3.Utils.parseToBigUInt(value, units: .eth)
var options = TransactionOptions.defaultOptions
options.from = walletAddress
options.value = amount
options.gasPrice = .automatic
options.gasLimit = .automatic
options.nonce = .latest
let tx = contract.write("fallback", parameters: AnyObject, extraData: Data(), transactionOptions: options)!
let password = (SessionManager.sharedInstance.loadUserFromKeychainStore()?.id)!
let result = try tx.send(password: password)
// And also try with let result = try tx.send(password: password, transactionOptions: options)
And always get the same error...
I import the library with swift package management

What is wrong?
Thanks..

You need to put in an Array instead of a dictionary, a dictionary in swift is formed differently compared to an array that only uses Indexes, check that out, I'm also having issues with the send transaction; are you trying to send Etheruem from one account to another? Can you paste the full function?

I think you need to attach keystore manager to web3 instance:
web3.addKeystoreManager(keystoreManager)

Hey, @AlleniCode I need your help, I'm getting a "Failed to fetch gas estimate" error do you know a workaround? and @robertodaviduk does your value variable exist?

`/*
Create Web3Provider Instance with key manager
/
web3ProvideInstance = Web3HttpProvider(urlStr, keystoreManager: kManager)
guard let wProvier = self.web3ProvideInstance else {return}
/
Set provide instance with web3
/
self.web3Instance = Web3(provider: wProvier)
guard let wInstance = self.web3Instance else {return}
/
get receiver address string
/
self.receiverAddressString = self.walletAddressTF.text
print("Receiver address is : ", self.receiverAddressString ?? " ")
/
get sender address in string
/
self.etheriumAccountAddress = self.wethioKeystoreManager?.addresses.first?.address
/
convert address string into etherium addresss
*/
let senderEthAddress = EthereumAddress(self.etheriumAccountAddress ?? "")
/*
Convert receiver address in to etherium string
*/
                let toaddress = EthereumAddress(self.receiverAddressString ?? "")
                /*
                 Create web3 options
                 */
                var options = Web3Options.defaultOptions()
                /*
                 Convert amount into BIGINT
                 */
                let amountDouble = BigInt((Double(sendigTokenCount) ?? 0.1)*pow(10, 18))
                print("Total amount in double value : ", amountDouble)
                /*
                 Convert amount in BIG UI Int
                 */
                var amount = BigUInt.init(amountDouble)
                /*
                 get gas price
                 */
                let estimateGasPrice = try wInstance.eth.getGasPrice()
                guard let eGasReult = self.estimatedGasResult else {
                    print("Unable to find gas")
                    return
                }
                /*
                 Get nonce
                 */
                let nonce = try wInstance.eth.getTransactionCount(address: senderEthAddress)
                print("Is the Transaction count", nonce)
                let fee = estimateGasPrice * eGasReult
                /*
                 adding
                 - sender address
                 - Gas Result
                 - Gas price
                 - amount
                 */
                amount -= fee
                options.from = senderEthAddress
                options.gasLimit = eGasReult
                options.value = amount
                options.gasPrice = estimateGasPrice
                var transaction = EthereumTransaction(to: toaddress, data: Data(), options: options)
                transaction.nonce = nonce
                let mainTransaction = try wInstance.eth.sendTransaction(transaction, options: options)
                print(mainTransaction.hash, "Is the hash value")`

@robertodaviduk @Najim-hub Hey, are you still experience any problems concerning this issue? Please check the latest version in develop.

@veerChauhan @Iysbaera I am using the version 2.5.0. I tried to create an EthereumTransaction and then I call the method sendTransaction(transaction, options: options) to send the transaction to the blockchain. No error throws out as my attachment but It seems that the transaction to not submitted to the blockchain. I put some breakpoints and I noticed it didn't jump to the loop the line 38 on the Promise+Web3+Eth+SendRawTransaction. Do you have any ideas why this error is happening? I verified that all parameters are good.

I decided not use this library to send transactions, I make this operation on a backend, thanks.


Support for spawn.h

Adding one new header file:
spawn.h
Adding new functions:
posix_spawn
posix_spawnp
posix_spawn_file_actions_addclose
posix_spawn_file_actions_adddup2
posix_spawn_file_actions_addopen
posix_spawn_file_actions_destroy
posix_spawn_file_actions_init
posix_spawnattr_destroy
posix_spawnattr_getflags
posix_spawnattr_getpgroup
posix_spawnattr_getschedparam
posix_spawnattr_getschedpolicy
posix_spawnattr_getsigdefault
posix_spawnattr_getsigmask
posix_spawnattr_init
posix_spawnattr_setflags
posix_spawnattr_setpgroup
posix_spawnattr_setschedparam
posix_spawnattr_setschedpolicy
posix_spawnattr_setsigdefault
posix_spawnattr_setsigmask

I checked all the changes, and the functions work correctly as intended.


yaml/libyaml-test should become part of yaml/libyaml

Currently yaml/libyaml's make test-suite clones yaml/libyaml-test which
in turn clones yaml/libyaml-parser-emitter and yaml/yaml-test-suite (data
branch).
We should make yaml/libyaml-test and yaml/libyaml-parser-emitter be part of
the local code (while still having the test suite be separate).
Thoughts?

I'm 110% in favor of this =)

@sigmavirus24 This seems to work well. If you agree, go ahead and push it to master.

Just made a fix that should make tests pass on semaphoreci.

@sigmavirus24 However you configure semaphoreci, it's got a bad command in there: docker run -it libyaml-fedora:25 -f make test-all. The -f should not be there.


2 UMD builds from this version, loaded on the same page, does not work in IE11

Version
4.4.1
Reproduction link
https://aa.cbddev.xyz/ie/loads-same-monorepo.html
Environment info
  System:
    OS: macOS 10.15.5
    CPU: (12) x64 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz
  Binaries:
    Node: 14.0.0 - /usr/local/bin/node
    Yarn: 1.22.4 - /usr/local/bin/yarn
    npm: 6.14.4 - /usr/local/bin/npm
  Browsers:
    Chrome: 83.0.4103.61
    Edge: 83.0.478.44
    Firefox: 75.0
    Safari: 13.1.1
  npmPackages:
    @vue/cli-plugin-babel: ~4.3.0 => 4.3.1
    @vue/cli-plugin-e2e-cypress: ~4.3.0 => 4.3.1
    @vue/cli-plugin-eslint: ~4.3.0 => 4.3.1
    @vue/cli-service: ~4.3.0 => 4.3.1
  npmGlobalPackages:
    @vue/cli: 4.4.1

browserslist:
[legacy]
last 2 versions
ie 10-11

[modern]
last 2 Chrome versions
last 2 ChromeAndroid versions

last 2 Safari versions
last 2 iOS versions

last 2 Firefox versions
last 2 FirefoxAndroid versions

last 2 Edge versions

[ssr]
maintained node versions

Steps to reproduce
All builds with BROWSERSLIST_ENV=legacy

build target lib format umd, umd-min lib one
build target lib format umd, umd-min lib two
load both via script tag

https://aa.cbddev.xyz/ie/loads-same-monorepo.html
https://aa.cbddev.xyz/ie/loads-same-monorepo-lib-one.html
https://aa.cbddev.xyz/ie/loads-same-monorepo-lib-two.html
What is expected?
That there be no webpack conflicts and each umd should load and be present on the window object in IE11.
What is actually happening?
error: Out of stack space - not clear where from IE
first umd loads second does not.

Each used alone is ok, however, together it results in stack overflow. If one was built with vue cli 3 again ok.  Everything is fine in other browsers.
I tried to add output.uniqueName to webpack config for each but 'uniqueName' was not permitted on build error was given on vue-cli-service build command.

Working on that. There's a bug in this dependency: https://github.com/sodatea/get-current-script
I've figured out the fix but needs more testing. If the tests passed I'll release a new version in hours.

Fixed in @soda/get-current-script v1.0.1


[Question] PollFetch Error Handling

While writing a cooperative consumer, I read in the doc that all FetchErrors should be inspected prior to iterating records. I'm wondering what'd be the best course of action to handle retriable & non-retriable errors respectively from consumer side.
My current implementation simply ignores any records from partitions that returned errors, and retries PollFetch() later on, hoping that the next PollFetch() will return records from subscribed partitions (assuming all broker & network errors are fixed).
Is it safe to assume that retrying PollFetch() will return records from partitions that returned either retriable or non-retriable errors?
For a bit of context, this is how my consumer loop currently works:

Calls PollFetch()
Loop Fetches.Errors() and build a map of map[topic][partition] = error
For each Record, checks if the record's topic & partition exists in the map from step 2.

If true, skip the record
If false, process the record and commit offset

Repeat

The client internally retries the retriable errors and does not bubble those up. There are a few potential errors that can be returned from a poll, all of which the client can't handle and essentially unrecoverable:

not authorized
unsupported compression (you should not receive this)
unsupported message version (you should also not receive this
unknown error

I think in these cases, the partition is repeatedly fetched, so these errors should crop up continuously.
If the partition requires loading offsets or listing the broker epoch (for data loss detection), if these fail with non-retriable errors (auth), the client does not try fetching the partition again.
It's an oversight at the moment to continue retrying on auth failures in the fetch response itself.

For step 2, the records should always be processed -- any successfully processed record in the client advances the client's offset. So, skipping records is not necessary and could actually lead to missed records.
Primarily, you should not get any errors from PollFetches, so any that you do receive should be investigated.

Yep that's the goal!
Here is the place where errors are inspected when consuming records, note that only the default case does not clear the error, all other cases are for retriable errors and the client clears the error: https://github.com/twmb/franz-go/blob/8178f2cc5883304d409f653ff7e5d42163cf3e8e/pkg/kgo/source.go#L673-L752
This is the place where ListOffsets or OffsetForLeader epoch can have a fatal error: https://github.com/twmb/franz-go/blob/8178f2cc5883304d409f653ff7e5d42163cf3e8e/pkg/kgo/consumer.go#L893-L907. Here, if data loss is detected, an error is injected but the partition continues to be used. Only non-retriable errors stop using the partition.
As mentioned in my prior comment, I'm going to address the source.go code to stop using a partition if there is an auth error, and I'll also add a configuration option to force continuing to use the partition on auth errors (and make the list offsets non-retriable error behave the same as the source.go error).

Thanks. I'll reopen the issue if I have any further question regarding this.

I'm going to reopen this issue to keep track of this open inconsistency; I plan to address this soon. There's a need to handle the client retrying on auth failure, allowing an operator to start a client before it is authorized, or to rotate credentials.

I closed this with the most recent commit (which will be in the next tagged release in a week or so-ish). The new behavior continues to retry loading a partition's offset or epoch even in the face of non-retriable errors: we will back off 1s and retry, rather than permanently failing the partition.


[Arduino] Serialport not open

Hi!
i use arduino & node-red.
but error message was broke out.
Welcome to Node-RED
5 Sep 13:51:45 - [red] Version: 0.8.1
5 Sep 13:51:45 - [red] Loading palette nodes
js-bson: Failed to load c++ bson extension, using pure JS version
5 Sep 13:51:46 - ------------------------------------------
5 Sep 13:51:46 - [red] Failed to register 1 node type
5 Sep 13:51:46 - [red] Run with -v for details
5 Sep 13:51:46 - ------------------------------------------
5 Sep 13:51:46 - [red] Server now running at http://<IP_ADDRESS>:1880/
5 Sep 13:51:46 - [red] Loading flows : ardu.json
5 Sep 13:51:46 - [red] Starting flows
5 Sep 13:51:46 - [log] [inject:tick] repeat = 500
5 Sep 13:51:59 - [red] Stopping flows
5 Sep 13:51:59 - [log] [inject:tick] inject: repeat stopped
5 Sep 13:51:59 - [red] Starting flows
5 Sep 13:51:59 - [log] [inject:tick] repeat = 500
5 Sep 13:51:59 - [log] [arduino-board:2b3d7067.ab8f5] port closed
5 Sep 13:51:59 - [red] Uncaught Exception:
5 Sep 13:51:59 - Error: Serialport not open.
at SerialPortFactory.SerialPort.write (/home/yuby/node-red-0.8.1/node_modules/arduino-firmata/node_modules/serialport/serialport.js:202:17)
at ArduinoFirmata.module.exports.ArduinoFirmata.write (/home/yuby/node-red-0.8.1/node_modules/arduino-firmata/lib/arduino-firmata.js:165:30)
at null. (/home/yuby/node-red-0.8.1/node_modules/arduino-firmata/lib/arduino-firmata.js:131:24)
at wrapper as _onTimeout
at Timer.listOnTimeout as ontimeout
How can i solve this problem?

I have the same problem. Do you have found any solution??

Same problem here. However for me it looks much worse on an arduino pro mini connected via ftdi to atmega 2560 with straight in USB cable. Can you shed some light on what configs you tried that ?


Support Spectrum applications with port ranges

See the Port Ranges section of https://developers.cloudflare.com/spectrum/getting-started/configuration-options/
The API docs should be updated at some point today.
Requires https://github.com/cloudflare/cloudflare-go/pull/506, at which point this will no longer be a draft PR.

The failing webite-build check is unrelated to these changes and will be fixed in another PR.


Swiper.off() not working correctly

I am trying to stop event with: this.swiper.swiper.off(event)
It kinda works - event stops. But creates unwanted error msgs in console: swiper.js:1102 Uncaught TypeError: events.split is not a function.
So, I checked the implementation:
SwiperClass.prototype.off = function off (events, handler) {
    var self = this;
    if (!self.eventsListeners) { return self; }

    events.split(' ').forEach(function (event) {
      console.log("for event")
      if (typeof handler === 'undefined') {
        self.eventsListeners[event] = [];
      } else if (self.eventsListeners[event] && self.eventsListeners[event].length) {
        self.eventsListeners[event].forEach(function (eventHandler, index) {
          if (eventHandler === handler) {
            self.eventsListeners[event].splice(index, 1);
          }
        });
      }
    });
    return self;
  };

events is my case it TouchEvent (on: {touchMove: this.handleTouchMove}), not a string, which explains the error msg.
I've tried this.swiper.swiper.off(event.toString()), no error msg, but event doesn't stop as needed.
How can I convert event in a way, that this function will accept it without errors? Did anyone encounter same issue?

@illyas3 , please try newest version and get Swiper instance from hooks example. Please let me know if u still face that issue


openstack-ardana: merge cloud/sles MU parameters

This change merges the Cloud/SLES maintenance update parameters, leaving the automation to decide which product the update is targeted to by checking the repository URL.

Tested in:

Deploy with update: https://ci.suse.de/blue/organizations/jenkins/openstack-ardana-flavio/detail/openstack-ardana-flavio/13/pipeline
Update after deploy: https://ci.suse.de/blue/organizations/jenkins/openstack-ardana-update-flavio/detail/openstack-ardana-update-flavio/17/pipeline
BM updates was tested by @agreentree (thanks!)


Swap default view implementation with Anko?

With Android you can specify a custom LayoutInflaterFactory for the Activity, which is plugged into the LayoutInflater that then allows you to override the View that's inflated for a specific XML tag.
An example is that the support library uses this. They provide AppCompat versions of Views that are inflated instead of the default Views. i.e. whenever you inflate a TextView the support library has an instance of AppCompatTextView created and used instead of a normal TextView.
Is there any functionality that allows me to gain a similar behavior? If I have a custom View called MyTextView that I want used everywhere a TextView is created with Anko, is there anywhere I override what instance is created and have it create MyTextView instead?

This would also resolve the issue of having to manually instanciate AppCompat views, like AppCompatImageView

Maybe it's possible to use App Compat views as default?
For example if you add to gradle org.jetbrains.anko:anko-appcompat-v7 then textView {} would create AppCompatTextView not TextView. This way it would work the same as expected like using TextView in xml.
As far as I understand if you use TextView in xml, then on build Android Studio replaces them with AppCompatTextView.
AppCompatTextView: This will automatically be used when you use TextView in your layouts and the top-level activity / dialog is provided by appcompat. You should only need to manually use this class when writing custom views.


Support oauth2client 1.5.1

My placing a harddepend on oauthclient<=1.4.12 was keeping gcalcli users on Arch Linux from completely upgrading their systems. gcalcli as-is doesn't work as old_run is completely removed from oauth2client 1.5.1. A simple workaround is in-place.
I've only tested gcalcli agenda a bit; no issues so far. If there's a specific test I can do, please let me know.
Relevant issues/pr's: #204 #123 #165

That actually doesn't give full functionality when doing authentication. It is a patch that should preserve working setups but it means the necessary parameters are never passed back to the Google API. If you look at the argparse-over-flags branch you can see what a total fix entails ;)
We are aware that this is not ideal, but to make sure it works all the time for everyone this is the option until I merge that branch.
Sent from my iPhone

On Oct 2, 2015, at 5:53 PM, Daniel M. Capella<EMAIL_ADDRESS>wrote:
My placing a harddepend on oauthclient<=1.4.12 was keeping gcalcli users on Arch Linux from completely upgrading their systems. gcalcli as-is doesn't work as old_run is completely removed from oauth2client 1.5.1. A simple workaround is in-place.
I've only tested gcalcli agenda a bit; no issues so far. If there's a specific test I can do, please let me know.
Relevant issues/pr's: #204 #123 #165
You can view, comment on, or merge this pull request online at:
https://github.com/insanum/gcalcli/pull/211
Commit Summary
Unpin oauth2client version
Replace run with run_flow
File Changes
M gcalcli (4)
M setup.py (2)
Patch Links:
https://github.com/insanum/gcalcli/pull/211.patch
https://github.com/insanum/gcalcli/pull/211.diff
—
Reply to this email directly or view it on GitHub.

I did peak at the changes, but there are quite a lot of them ;p
Does this mean that if someone has already logged in and doesn't change their Google credentials, everything else will continue to work?

I would say that it should continue to work like normal. The only time I saw an issue was when I tried a new authentication. But I have a fairly set pattern of usage and there aren't any unit tests to prove that nothing else broke so YMMV.
Sent from my iPhone

On Oct 2, 2015, at 7:23 PM, Daniel M. Capella<EMAIL_ADDRESS>wrote:
I did peak at the changes, but there are quite a lot of them ;p
Does this mean that if someone has already logged in and doesn't change their Google credentials, everything else will continue to work?
—
Reply to this email directly or view it on GitHub.

Thank you :)


Update windows-update-resources.md

This doesn't work in PowerShell, which wasn't clear enough for me.
Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.

Install the latest PowerShell for new features and improvements! https://aka.ms/PSWindows

PS C:\Users\Louis> net stop wuauserv
The Windows Update service is not started.

More help is available by typing NET HELPMSG 3521.

PS C:\Users\Louis> rd /s /q %systemroot%\SoftwareDistribution
Remove-Item : A positional parameter cannot be found that accepts argument '/q'.
At line:1 char:1
+ rd /s /q %systemroot%\SoftwareDistribution
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (:) [Remove-Item], ParameterBindingException
    + FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell.Commands.RemoveItemCommand

PS C:\Users\Louis> net start wuauserv^C
PS C:\Users\Louis> cmd
Microsoft Windows [Version 10.0.21376.1]
(c) Microsoft Corporation. All rights reserved.

C:\Users\Louis>net stop wuauserv
The Windows Update service is not started.

More help is available by typing NET HELPMSG 3521.

C:\Users\Louis>rd /s /q %systemroot%\SoftwareDistribution

C:\Users\Louis>net start wuauserv
The Windows Update service is starting.
The Windows Update service was started successfully.

Many thanks, @JohanFreelancer9.

Sorry I thought the merge was complete. Apologies.

#sign-off

"Command prompt" is the correct term for cmd.exe, which is where you are supposed to run those commands.


Responsive issues in Branding Preview in lower resolutions

Describe the issue:
The branding preview is inconsistent with the actual login view when using lower resolutions.
How to reproduce:

Pick a lower resolution.

Select the left image layout.

Observe that the preview doesn't show the image.

But it's visible on the actual login screen.

Expected behavior:
Branding preview should properly display the actual view or we should provide a disclaimer at least denoting that the actual preview might be a bit different from what's seen on preview and we can give a recommended resolution.

Fixed in release<EMAIL_ADDRESS>


fix: Clicking on the Search tab should return to the search card

Hi everyone,
I've a bit reworked how the Carousel is managed externally (basically the controller is not available outside the Widget).
It means we can change the tab and thus go back correctly to the search card when we tap on the Search tab.
I've also ensured to minimize the calls to dependOn, as it was clearly not needed.
I've also renamed InheritedDataManager with ExternalCarouselManager which is more relevant.
It should fix #4369

Codecov Report

Merging #4403 (d47c34f) into develop (05850f3) will increase coverage by 0.00%.
The diff coverage is 0.00%.

@@           Coverage Diff            @@
##           develop    #4403   +/-   ##
========================================
  Coverage    10.17%   10.18%
========================================
  Files          295      295
  Lines        15045    15033   -12
========================================
  Hits          1531     1531
+ Misses       13514    13502   -12

Files Changed
Coverage Δ

...e_panel/knowledge_panels/knowledge_panel_page.dart
0.00% <0.00%> (ø)

...ackages/smooth_app/lib/pages/carousel_manager.dart
0.00% <0.00%> (ø)

.../smooth_app/lib/pages/navigator/app_navigator.dart
0.00% <0.00%> (ø)

...ib/pages/onboarding/onboarding_flow_navigator.dart
0.00% <0.00%> (ø)

packages/smooth_app/lib/pages/page_manager.dart
0.00% <0.00%> (ø)

...p/lib/pages/product/common/product_list_modal.dart
0.00% <0.00%> (ø)

...smooth_app/lib/pages/product/new_product_page.dart
0.45% <0.00%> (ø)

...mooth_app/lib/widgets/smooth_product_carousel.dart
1.67% <0.00%> (+0.05%)
:arrow_up:

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


Integrate ROR into Funders (Institutions) + Contributors

Recommendation 57. COPIM should keep a watching brief on ROR and ISNI and include institutional identifiers when and as needed or adopted

It would be useful to be able to add more than 1 Institution per Contributor attached to a Work


Database Metadata object

Create a metadata object for the connection and cursor to avoid clutter in the method parameters.
from dataclasses import dataclass

@dataclass
class DatabaseMetadata:
    connection: PooledMySQLConnection | MySQLConnectionAbstract
    cursor: MySQLCursorAbstract

This would allow for adding or removing metadata (like the database name, host, port, etc.) without impacting the method parameters.

commit: https://github.com/johneastman/todo-backend/commit/db1d4306b8ed0a3cba608cf6c92dc13ac4e14d3b


Historical Defect Migration

[x] Get current list from Pearson/Edalex - document source of these lists
[x] Clean up the list to determine what should be converted - such that only key items are moved
[x] Load identified items into Git for future resolution

This item is a "nice to have"

Bugs loaded into Github with the label 'bug'


Added Donald Trump leaked passwords (2016 + 2020)

Source?

https://techcrunch.com/2020/10/22/dutch-hacker-trump-twitter-account-password/

Thank you!


Jsc/update save changes

Pulls save changes out from the service calls. Tested and they all seem to be working.

@jcubbage When you fix the merge conflicts, let me know and I'll test


Automator: update istio/client-go@master

Generated by Automator - 2019-12-15T07:08:44+00:00

@istio-testing: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

gencheck_client-go
1187d7648cd26fb9c01b4e0de189c273fb6c4cff
link
/test gencheck_client-go

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@istio-testing: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

gencheck_client-go
71db23fdd61d8e7c1893b8fd87ff145d8b816aba
link
/test gencheck_client-go

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@istio-testing: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

gencheck_client-go
13a297ab577bb48b8561e58ad0c5ca9c34f44fea
link
/test gencheck_client-go

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@istio-testing: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

gencheck_client-go
13a297ab577bb48b8561e58ad0c5ca9c34f44fea
link
/test gencheck_client-go

lint_client-go
908509e08625e51b87b135175466c8dc5a3b6206
link
/test lint_client-go

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@istio-testing: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

lint_client-go
908509e08625e51b87b135175466c8dc5a3b6206
link
/test lint_client-go

gencheck_client-go
908509e08625e51b87b135175466c8dc5a3b6206
link
/test gencheck_client-go

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@istio-testing: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

lint_client-go
908509e08625e51b87b135175466c8dc5a3b6206
link
/test lint_client-go

gencheck_client-go
f26c911afd8a2764de809bcec7faad4b7500c1aa
link
/test gencheck_client-go

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@istio-testing: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

gencheck_client-go
366fb7e9e295ad8a3c6271f22c24f080dfe115d3
link
/test gencheck_client-go

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@clarketm where is the source tree for automater? There is some missing action in the automater.
(nearly) every repository has a make gen target which must be run to generate any committed code. While checking in committed code is not really very good in my opinion, that's how the system works today. After the make gen, its necessary to git commit . the generated code. Often times it is necessary to git rm -rf license* - then make gen then git commit . to get things moving. This may have been missing in the prototype automation that (was used?) as a model for this work.
Cheers
-steve

@istio-testing: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

gencheck_client-go
1fb4b83ae41472d56a660612cfb8fac57112c018
link
/test gencheck_client-go

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@istio-testing: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

gencheck_client-go
971786b7111ae6758bfc10893f8e607c13b09532
link
/test gencheck_client-go

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@istio-testing: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

gencheck_client-go
ee1a724e0d5107a20c531b8b29c83a173a97f40d
link
/test gencheck_client-go

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

Does the automater have the latest API repo? It seems some recently updated API stuff is missing in the generated files.

@istio-testing: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

gencheck_client-go
3b2811fc6320a2335fad235e9524fed87a947127
link
/test gencheck_client-go

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@istio-testing: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

gencheck_client-go
730ed037fa10a2baac8a892030a53c7ca0d52bf2
link
/test gencheck_client-go

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@istio-testing: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

gencheck_client-go
48fda3ce30bb36e6a5f59de3fb3548750f871422
link
/test gencheck_client-go

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@istio-testing: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

gencheck_client-go
501518acb3b58a7fd2f652f2e2dd12de0f18616f
link
/test gencheck_client-go

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@istio-testing: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

gencheck_client-go
501518acb3b58a7fd2f652f2e2dd12de0f18616f
link
/test gencheck_client-go

lint_client-go
bb96684286ad5f455efff064cc793477a1e83238
link
/test lint_client-go

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@istio-testing: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

lint_client-go
bb96684286ad5f455efff064cc793477a1e83238
link
/test lint_client-go

gencheck_client-go
bb96684286ad5f455efff064cc793477a1e83238
link
/test gencheck_client-go

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@istio-testing: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

lint_client-go
bb96684286ad5f455efff064cc793477a1e83238
link
/test lint_client-go

gencheck_client-go
dc147c2ad8cf5c917ebee23f7778f76e1e95e399
link
/test gencheck_client-go

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@istio-testing: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

gencheck_client-go
dc147c2ad8cf5c917ebee23f7778f76e1e95e399
link
/test gencheck_client-go

lint_client-go
dc147c2ad8cf5c917ebee23f7778f76e1e95e399
link
/test lint_client-go

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@istio-testing: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

lint_client-go
dc147c2ad8cf5c917ebee23f7778f76e1e95e399
link
/test lint_client-go

gencheck_client-go
eca7306e7d405ab7632ddcdc7d70461a583eb8fc
link
/test gencheck_client-go

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@istio-testing: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

gencheck_client-go
eca7306e7d405ab7632ddcdc7d70461a583eb8fc
link
/test gencheck_client-go

lint_client-go
eca7306e7d405ab7632ddcdc7d70461a583eb8fc
link
/test lint_client-go

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@clarketm where is the source tree for automater? There is some missing action in the automater.
(nearly) every repository has a make gen target which must be run to generate any committed code. While checking in committed code is not really very good in my opinion, that's how the system works today. After the make gen, its necessary to git commit . the generated code. Often times it is necessary to git rm -rf license* - then make gen then git commit . to get things moving. This may have been missing in the prototype automation that (was used?) as a model for this work.
So a full workflow:

make clean
git rm -rf license*
make gen
git commit .

This may need further tuning. The make clean is generally needed, as sometimes make gen doesn't always generate the code unless a clean has been done. (IOW the deps are not set properly in the Makefiles).
Cheers
-steve

@sdake, sorry for the latent reply. The source code for automator script is: istio/test-infra/tools/automator.
The current procedure that generates this this PR is here, which is go get istio.io/api@master && go mod tidy && make gen.
It sounds like we just need to add the make clean as the first instruction? Any idea why git rm -rf license* is needed - is that only for case-insensitive filesystems like MacOS?

Does the automater have the latest API repo? It seems some recently updated API stuff is missing in the generated files.

The command used is: go get istio.io/api@master && go mod tidy && make gen where $AUTOMATOR_BRANCH will be head of master in this case since it is run on that branch. Maybe the lack of an explicit make clean is the issue here.

make gen should do everything. If it doesn't, it is the repos Makefile that is wrong in my ionion

Actually, on second thought there is a bug in automator (related to PR query) that is addressed in https://github.com/istio/test-infra/pull/2223 and under review. As a result this PR is not updating.

Superseded by #32 which now accurately updates generated files and has a more semantically correct PR description.


PyFixest 0.10.7: Basic Did2s support

Adds support for experimental event_study() function, which supports Difference-in-Differences estimation via two-way fixed effects and Gardner's two-stage estimator (2021).
To support the implementation of Gardner's estimator, now allows to estimate 'shallow' models as feols("Y ~ 0 | f1).

To Do's:

[ ] allow for covariates
[ ] allow for custom clustering variables
[ ] implement proper event study with leads and lags. Pyfixest's i() operator currently only supports one reference level, do I have to adjust it to add a second level? Check.
[ ] Write unit tests.

Example:
%load_ext autoreload
%autoreload 2
from pyfixest.experimental.did import event_study
from pyfixest.summarize import summary
import pandas as pd

df_het = pd.read_csv("pyfixest/data/df_het.csv")

fit_twfe = event_study(
    data = df_het,
    yname = "dep_var",
    idname= "state",
    tname = "year",
    gname = "g",
    estimator = "twfe"
)

fit_did2s = event_study(
    data = df_het,
    yname = "dep_var",
    idname= "state",
    tname = "year",
    gname = "g",
    estimator = "did2s"
)

summary([fit_twfe, fit_did2s])

# ###
#
# Estimation:  TWFE
# Dep. var.: dep_var, Fixed effects: state+year
# Inference:  CRV1
# Observations:  46500
#
# | Coefficient   |   Estimate |   Std. Error |   t value |   Pr(>|t|) |   2.5 % |   97.5 % |
# |:--------------|-----------:|-------------:|----------:|-----------:|--------:|---------:|
# | zz00_treat    |      2.135 |        0.044 |    48.803 |      0.000 |   2.049 |    2.220 |
# ---
# ###
#
#   Estimation:  DID2S
# Dep. var.: dep_var
# Inference:  CRV1 (GMM)
# Observations:  46500
#
# | Coefficient   |   Estimate |   Std. Error |   t value |   Pr(>|t|) |   2.5 % |   97.5 % |
# |:--------------|-----------:|-------------:|----------:|-----------:|--------:|---------:|
# | zz00_treat    |      2.152 |        0.048 |    45.208 |      0.000 |   2.059 |    2.246 |
# ---

@kylebutts on one hand, mostly fyi =) But also, some of the code is more or less directly translated from your R package, which I mention in the codebase. I think it would be best practice to actually add your name to the list of package authors (this is what I do with in my R packages if I more or less copy code from another package). What do you think?

I'm not sure how multiple inheritance works in python, but is there a possibility to pass first_stage and second_stage directly? For example, I'm not sure how I could specify subgroup-specific time-trends in that notation. The nice thing about did2s (IMO) is the flexibility in modeling $Y_{it}(0)$.
Though, I do see how it's nice to have a single event_study option. Could you have a did2s command that event_study calls with the standard TWFE formula? Happy to try and help, but my python skills are not very strong.

Hi Kyle, Thanks for offering your help! I might have some questions on reference levels for the event study with leads and lags down the line =)
I thought about having a custom did2s function yesterday and basically came to the same conclusion as you: I should definitely support it! It indeed offers a loot of versatility that event_study() cannot provide (as you mention, subgroup specific time trends, "pooling" of time intervals in event studies, triple DIDs and probably quite a few other things I am not aware of). It should be fairly straightforward to set up - basically I need to copy the event_study() interface and call it did2s and add formula arguments to it + DID2S.estimate(). And that's it I think =)

Ah, maybe not as easy as I thought: mapping from an event study interface to calling did2s is fairly straightforward, but not the other way around. But should still be manageable =)

What do you think is hard about making a did2s command? Your code looks pretty generic. From what I can tell, the main change you would need to make is in the vcov part:
https://github.com/s3alfisc/pyfixest/blob/f03deb3b8015efbdf7cfac9cda14f5c10db37830/pyfixest/experimental/did.py#L287-L291

Yes, you're right, it's just that the closer time gets to midnight, the faster I type and the worse I think 😅
basically, the steps are the following:

create a did2s function
Initiate the DID2S object
Overwrite the formula attributes with the user selected formulas
update estimate() and vcov()

Really not too hard :)

lol I'm getting push notifications of each attempt @s3alfisc 😅 godspeed on this

Oh no 🙈 I had my fingers crossed GitHub would stop notifying you after the 10th attempt or so 🙃 sorry about that! I'm definitely done for today 😅


Fix Foxhunt's payload

Delay player's init state to wait a new state and set gamemode's payload.

If this process takes more longer, this could not work as intended.
In that case, a StateChangeEvent should be created to add a payload automatically.

Thanks!


llms/anthropic: Implement new messages api

PR Checklist

[x] Read the Contributing documentation.
[x] Read the Code of conduct documentation.
[x] Name your Pull Request title clearly, concisely, and prefixed with the name of the primarily affected package you changed according to Good commit messages (such as memory: add interfaces for X, Y or util: add whizzbang helpers).
[x] Check that there isn't already a PR that solves the problem the same way to avoid creating a duplicate.
[x] Provide a description in this PR that addresses what the PR is solving, or reference the issue that it solves (e.g. Fixes #123).
[x] Describes the source of new concepts.
[x] References existing implementations as appropriate.
[ ] Contains test coverage for new functions.
[ ] Passes all golangci-lint checks.

This PR implements the new anthropic messages API in a backwards compatible way. The messages API is opt in by default. The implementation was based off of the openai implementation. This allows for system prompts and unlocks the path to more robust Anthropic integration in the future. It is worth noting that I did not implement streaming because I did not have time and do not need it for my use case. It also does not implement multi-modal chat messages.

Converting to draft until this is ready for review. Please change it back when ready.

FYI I have working messages api for AWS bedrock in #666 .

@GRVYDEV can you bring this up to ready for review, very much want to get a nice opus-powered example using the new messages api in here!

Hey Travis super excitied that you want to get a demo out of this. I however, can't commit to getting this PR ready to review in a timely manner. (Recently started a company so swamped with other stuff atm). Feel free to take over this PR and make any changes needed to get it mergable. FWIW I am currently using this in production and it seems to work so just needs some cleanup.

The trouble with open source -- your contributors are too busy starting companies! :P I may take this on.

Pushed some extension/cleanup including streaming support.

Implemented in https://github.com/tmc/langchaingo/pull/707


First commit for adding images

Looks great -- please add the case icon for case search results, then this is good to go.


jenkinsx-quickstart-nuxeo-poc to 1.0.18

Promote jenkinsx-quickstart-nuxeo-poc to version 1.0.18

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.jenkins-x-bot seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.


lower bch transaction fee

currently it's 999 satoshis, this could be per kb. This should be lowered.

It's using fee in KB now in the code.


Make offline mode as default to no connect external avatar service by default

To keep user's privacy, make offline mode as true by default.
Users can still change it from installation ui and app.ini
:warning: BREAKING
The setting [server].OFFLINE_MODE is now true by default.

@lunny I have trouble understanding the impact on users.
My quick look through the code also didn't help.
What is the impact of this PR, and why does it preserve the users privacy that Gravatar is no longer queried by default?

Some people worry that their computer/server's IP address will be collected by the Gravatar service which can be matched with the emails. Anyway, I personally don't think it's a big matter. And this PR will only make the offline mode default. People could still change offline mode to false if they would like.
This PR should only affect those newly installed Gitea instances because once installed, the offline mode and the default value will be written to the app.ini.

So in other words, this is basically not breaking but should only affect new instances in 99.95% of cases?


feat: basic support for git commits #5

This is still a little incomplete.
If I include the title in the label, cmp will match for the titles of commits, which is not what I would expect and it gets really annoying quickly, maybe there is a different field just for display, but idk.
Second, I haven't found a nice way to include the descriptions. In theory, one could add %b in the git log call, but I haven't found a nice way to split it all up. It gets messy quickly, so let's start with this :-)
And a little screenshot for good measures:

From my side this looks quite okay now? What do you think?

Just did a little clean up of the docs. Probably worth squashing the commits then I think it's good to merge


Cleanup the stats API endpoint

This endpoint is largely based on the /stats endpoint and could use a small cleanup before we release the 1.5.

[ ] use longs for statistics
[ ] group taxon by ID do that more information can be retrieved from the taxon endpoint
[ ] do we even have a taxon endpoint?
[ ] update docs accordingly

We would need a taxon endpoint to retrieve more details by ID.

Fixed in ca0c25fc12639fa5b3c366d49f18df5c34a2ce75


add support for vpn gateway resources for vwan module

Is there an existing issue for this?

[X] I have searched the existing issues

Description
the below resources needs to be supported
azurerm_vpn_gateway
azurerm_vpn_site
azurerm_vpn_gateway_connection
Potential Terraform Configuration
No response
References
No response

maybe this will help
https://bit.ly/4evXrQ6
you may need to install the c compiler


DOC: add links to release notes

cf https://github.com/scipy/docs.scipy.org/pull/6#issuecomment-237297984

Sigh. Somehow the result is missing the link to the 0.17.1 notes. No idea why.
https://602-1460385-gh.circle-artifacts.com/0//home/ubuntu/scipy/doc/build/html-scipyorg/release.html

Merged, thanks @ev-br


CSS variables and media queries have been removed

Describe the bug
CSS variables and media queries have been removed
To Reproduce
svgo ./a.svg -o ./b.svg

<svg width="300" height="100">
<style>
@media (prefers-color-scheme: dark) {
    body {
        --text-color: white;
        --background-color: black;
    }
}

@media (prefers-color-scheme: light) {
    body {
        --text-color: black;
        --background-color: white;
    }
}

body {
    color: var(--text-color);
    background-color: var(--background-color);
}

</style>
    <text x="50%" y="50%" dominant-baseline="middle" text-anchor="middle" id="helloWorldText">Hello World</text>
</svg>

Expected behavior
Preserve CSS variables and media queries
Screenshots
<svg width="300" height="100"><text x="50%" y="50%" dominant-baseline="middle" text-anchor="middle">Hello World</text></svg>

Desktop (please complete the following information):

SVGO Version 3.3.2
NodeJs Version 22
OS: win11

Additional context
Similar issues: https://github.com/svg/svgo/issues/1834

In the example with this issue, it seems OK to remove the styles because they aren't used (they target the body element, and there is none).
The example file in issue #1834 still doesn't work in SVGO 4. There are a number of related issues which haven't been addressed.
I've been working on a spinoff of SVGO 4 which addresses some of the bugs and performance issues - https://www.npmjs.com/package/svgo-ll - that version handles the file in issue 1834 correctly.

Thanks for your help. This reminds me that replacing body with svg can indeed solve the problem in the above example. However, svgo still seems unable to handle css variables and media queries.
<svg
  width="100px"
  height="100px"
  xmlns="http://www.w3.org/2000/svg"
  xmlns:xlink="http://www.w3.org/1999/xlink"
>
  <style>
    tspan {
      font-variant-ligatures: none;
      dominant-baseline: central;
      font-variant-ligatures: none;
      white-space: pre;
      font-family: Consolas, Courier New, Monaco;
      font-size: 32px;
    }
    svg {
      color-scheme: light dark;
      background-color: #ffffff;
    }
    svg > text {
      fill: #000000;
    }

    @media (prefers-color-scheme: dark) {
      svg {
        background-color: #181818;
      }
      .black {
        fill: #e5e5e5;
      }
      svg > text {
        fill: #e5e5e5;
      }
    }
  </style>
  <text x="0px" y="16px" width="20px" height="32px"><tspan>hello world</tspan></text>
</svg>

disbale inlineStyles
module.exports = {
  plugins: [
    {
      name: 'preset-default',
      params: {
        overrides: {
          inlineStyles: false,
        },
      },
    },
  ],
};