[backport] Skip some failing tests for fp16 + CUDA 9.0

Backport of #4299

[automatic post] Jenkins, test this please.

Jenkins CI test (for commit 38eddfc17658ff956ca21bacd329c2366ca3d82d, target branch v8) succeeded!


How to specify hosts file?

module.ansible_provisioner.null_resource.provisioner: Error running command 'ansible-playbook  --user=ubuntu -e host=<IP_ADDRESS> interview_devops_playbook.yml': exit status 4. Output:  [WARNING]: provided hosts list is empty, only localhost is available. Note
that the implicit localhost does not match 'all'

there is no inventory file being passed.... :(
How can I specify the hosts file? I would like -i ./hosts added to the command string. Terraform is awesome, but when the code is in a module it gets cached and becomes difficult to modify.

I guess it's dynamic and does not write to an inventory file. The raw install python is not idempotent so I figured it just wasn't working.

In the raw command,  the changed does not work. Use this:

register: output
changed_when: output.stdout != ""

Inventory is spelled wrong: Create a runtime inventorty with an ip address of a host
Github is now owned by a patent troll, consider migrating to a service like Gitlab.

You should also create a group_vars/all file so people can specify the correct pem to use:
$ cat group_vars/all
ansible_ssh_private_key_file: ~/.ssh/my_key


Restore Cucumber acceptance tests

Part of this is about getting the client code into a good shape to make them test-friendly, and then getting the tests working against the Java receiver.

I think there's a good case for some utility Builder-style tooling to help create Zscript entities. Every other test seems to have a pack of setup to get this done. Let's have:

[ ] an InputStream/OutputStream-based Channel: we've got bits of this but we could have the real thing;
[ ] a ZscriptReceiver object, with a Builder that adds Modules, Channels etc. Helper methods for creating a standalone receiver;
[ ] a Connector that can connect the ZscriptDevice to a standalone receiver's IostreamChannel.

I think there's a good case for some utility Builder-style tooling to help create Zscript entities. Every other test seems to have a pack of setup to get this done. Let's have:

[ ] an InputStream/OutputStream-based Channel: we've got bits of this but we could have the real thing;
[ ] a ZscriptReceiver object, with a Builder that adds Modules, Channels etc. Helper methods for creating a standalone receiver;
[ ] a Connector that can connect the ZscriptDevice to a standalone receiver's IostreamChannel.


Incorrect separator in CSV file?

Just started using the plugin and works nicely. However the CSV output is not separated using commas but semicolons. Any reason for that?

It seems it has happened by accident in e1cf8871b. Semi colons are commonly used in continental Europe. Before it is fixed, you can set the itemDelimiter option to ,.


chore: update 'useDeeplink' default state to 'false' in the Metamask-SDK connector

This PR updates the default state of the useDeeplink parameter in the MetaMask SDK connector.
Previously:
useDeeplink: parameters.useDeeplink ?? true
Now changed to:
useDeeplink: parameters.useDeeplink ?? false
This change ensures that the useDeeplink feature is disabled by default unless explicitly set in the parameters.
It improves the user experience on mobile iOS devices.

If this isn't actively being worked on or ready for review (still in draft state), let's close it out for now.


MessageCreateBuilder#setSuppressEmbeds(true) is not respected

General Troubleshooting

[X] I have checked for similar issues on the Issue-tracker.
[X] I have updated to the latest JDA version
[X] I have checked the branches or the maintainers' PRs for upcoming bug fixes.

Expected Behaviour
Sending a message constructed by a MessageCreateBuilder with messageBuilder.setSuppressEmbeds(true) called results in a message with unsuppressed embeds.
Calling setSuppressEmbeds on a MessageCreateAction works as expected.
Both cases assume the member has the "Embed Links" permission.
Code Example for Reproduction Steps
String content = "https://google.com/";

// Bad case
MessageCreateBuilder builder = new MessageCreateBuilder();
builder.addContent(content);
builder.setSuppressEmbeds(true);
MessageCreateData data = builder.build();
textChannel.sendMessage(data).queue();

// Good case
textChannel.sendMessage(content).setSuppressEmbeds(true).queue();

Code for JDABuilder or DefaultShardManagerBuilder used
JDA jda = JDABuilder.create(BOT_TOKEN, GatewayIntent.getIntents(GatewayIntent.ALL_INTENTS))
                    .addEventListeners(new CommandListener(), new UserListener())
                    .build()
                    .awaitReady();

Exception or Error
No response

Fixed in 5.0.0-beta.13


Error when synching group with file

I confirm the following:

I have upgraded to the latest GAM release (=5.30) from https://git.io/gamreleases and I still have this issue.
I am typing the command as described in the GAM Wiki at https://github.com/jay0lee/gam/wiki

Problem Description
When synching G Suite groups with a file
gam update group "${gruppe}" sync member file "${datei}"
the command always runs and does most of its job, but more often than not shows this error:

ERROR: 404: Resource Not Found: email - resourceNotFound

Each occurrence of this error relates to an E-Mail address which will not be correctly synched (=removed) from the group
Errors appear for most, but not all of the groups I am trying to sync
For a given group, however, the problem is always reproducible

Full steps to reproduce the issue:

Create a file which contains all but some E-Mail addresses of an already existing group.
In my case these extra addresses are from outside of my domain

Synch G Suite group with your file
gam update group <group> sync member file  <file>

Expected outcome (what are you trying to do?):

No error messages
All extra E-mail addresses should be removed from the group

Actual outcome (what errors or bad behavior do you see instead?):

ERROR: 404: Resource Not Found: email - resourceNotFound
One or sometimes more E-Mail addresses remain in the group, although they are not contained in the file.

I have see this before, it is a Google issue, not a GAM bug.
Start with an empty group.
$ gam print group-members group testgroup
Getting members for<EMAIL_ADDRESS>(1/1)
group
Add a user with a proxy domain.
$ gam update group testgroup add member<EMAIL_ADDRESS>Group<EMAIL_ADDRESS><EMAIL_ADDRESS>Added as MEMBER
Add succeeds.
$ gam print group-members group testgroup
Getting members for<EMAIL_ADDRESS>(1/1)
group,id,email,role,type
testgroup@domain.com,123706166545652211789,user@proxydomain.com,MEMBER,USER
Delete the user using the email address, it fails.
$ gam update group testgroup delete member<EMAIL_ADDRESS>ERROR: 404: Resource Not Found: email - resourceNotFound
Delete the user using the UID, it succeeds.
$ gam update group testgroup delete member uid:123706166545652211789
Group<EMAIL_ADDRESS>123706166545652211789 Removed
$ gam print group-members group testgroup
Getting members for<EMAIL_ADDRESS>(1/1)
group
Ross

I have see this before, it is a Google issue, not a GAM bug.
Start with an empty group.
$ gam print group-members group testgroup
Getting members for<EMAIL_ADDRESS>(1/1)
group
Add a user with a proxy domain.
$ gam update group testgroup add member<EMAIL_ADDRESS>Group<EMAIL_ADDRESS><EMAIL_ADDRESS>Added as MEMBER
Add succeeds.
$ gam print group-members group testgroup
Getting members for<EMAIL_ADDRESS>(1/1)
group,id,email,role,type
testgroup@domain.com,123706166545652211789,user@proxydomain.com,MEMBER,USER
Delete the user using the email address, it fails.
$ gam update group testgroup delete member<EMAIL_ADDRESS>ERROR: 404: Resource Not Found: email - resourceNotFound
Delete the user using the UID, it succeeds.
$ gam update group testgroup delete member uid:123706166545652211789
Group<EMAIL_ADDRESS>123706166545652211789 Removed
$ gam print group-members group testgroup
Getting members for<EMAIL_ADDRESS>(1/1)
group
Ross

closing this since, as Ross mentioned it's not a GAM issue. Please do feel free to discuss further as necessary in the GAM discussion group though.

closing this since, as Ross mentioned it's not a GAM issue. Please do feel free to discuss further as necessary in the GAM discussion group though.

reopening this issue to see if there is also a similar problem with the api for gam print groups member.
in many cases when i run this command with an email address it returns 0 groups, but if i run the same command gam print groups member uid: it returns the full membership list.


IssueFix#176

Issue Fix#176
(1) Following changes made to DslJsonSerializer.java
(a) Added new constant for Long String (10,000 chars)
(b) Added 3 new methods for handling long string (writeLongStringField, writeLongStringValue, writeStringBuilderValue)
(c) Modified the serializeSpanContext method to call writeLongStringField (for DB Statement)
(2) Modified DslJsonSerializerTest.java to include test cases for writeLongStringField method (used spaces instead of tabs)

Since this is a community submitted pull request, a Jenkins build has not been kicked off automatically. Can an Elastic organization member please verify the contents of this patch and then kick off a build manually?

Could you modify your initial PR (https://github.com/elastic/apm-agent-java/pull/184) instead of creating a new one? Thx 🙂

Sorry, i just closed the previous pull request (#184). Let me try to open the other request back.


Rancher HA script generator inserts white lines when copy & pasting certificates.

Rancher Version: 1.0.1
Docker Version: 1.10.3
OS:  Ubuntu 14.04.3 LTS
Steps to Reproduce:  We upgraded our Rancher from 1.0.0 to 1.0.1, using that upgraded node as the bootstrap server.  Login to that server and select HA and enable for 5 nodes and copy & paste certificates into the appropriate boxes.  This was done on a Macbook OSX 10.10.5 with Firefox 45.0.2
Results:  Generate script and the resulting script has inserted a white line between every line in all certificates in the script.  Looks like the following:
-----BEGIN CERTIFICATE-----
MIIEgDCCA2igAwIBAgIIRS0mBmfiSFwwDQYJKoZIhvcNAQELBQAwSTELMAkGA1UE
BhMCVVMxEzARBgNVBAoTCkdvb2dsZSBJbmMxJTAjBgNVBAMTHEdvb2dsZSBJbnRl
cm5ldCBBdXRob3JpdHkgRzIwHhcNMTYwNDA3MDgyNTA5WhcNMTYwNjMwMDgyMDAw
WjBoMQswCQYDVQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwN
TW91bnRhaW4gVmlldzETMBEGA1UECgwKR29vZ2xlIEluYzEXMBUGA1UEAwwOd3d3
........
This results in the certificates not being valid and the load balancers never start because they do not have valid certificates to load.
Expected:  Valid certificates to be generated.  Worked around this by copy pasting the correct certificates into the script after it is generated.

Hi @duffyjay, I have successfully reproduced this with Rancher v1.0.1-rc7 with a Macbook Pro 10.11 running Firefox 45.0.2
I have tried copy/pasting PEM-encoded certificates that use line feeds (0x0A) for line breaks and carriage return line feeds (0x0D 0x0A) for line breaks. I have also tried uploading files in the two formats.
The result is always the same: the generated script has dos-style newlines for the certificates, and unix-style for all other newlines. Mixing newline style is always incorrect, and in this case we expect all unix-style newlines.

The API should convert the certificate text to unix-style LF if that's what it needs, not rely on the client to provide it.

With the new HA in 1.2, there is no more script generation so this should no longer be an issue.

We've refactored HA to be much simpler and just run additional arguments with the rancher-server command.


Excuse me.  Log printing line number, function name and other information problems

I have a problem.  When printing the log, in my project,  SetReportCaller(true);

Displayed on windows10 console.

Displayed on LINUX or CentOS 7 console.

The number of lines, function name, location, etc. are the same as the printed content. This is not right. There is no D disk in CentOS system.
Why is this problem? How can I modify it?

This is not related to logrus. Go generate a single binary with references to file path and this info includes the $GOPATH.
You can add the trimpath flag at build time to remove the $GOPATH part from the log like this :
go build -gcflags "all=-trimpath=$GOPATH"

This prints the source path options at the build time.
So that depends on your build options.

This prints the source path options at the build time.
So that depends on your build options.

ok, I get it. Thank you for your reply

This prints the source path options at the build time.
So that depends on your build options.

ok, I get it. Thank you for your reply

This is not related to logrus. Go generate a single binary with references to file path and this info includes the $GOPATH.
You can add the trimpath flag at build time to remove the $GOPATH part from the log like this :
go build -gcflags "all=-trimpath=$GOPATH"
`That's a great suggestion. Thank you.

This is not related to logrus. Go generate a single binary with references to file path and this info includes the $GOPATH.
You can add the trimpath flag at build time to remove the $GOPATH part from the log like this :
go build -gcflags "all=-trimpath=$GOPATH"
`That's a great suggestion. Thank you.


Doc bug - with portMappings, ports is unnecessary

go to https://mesosphere.github.io/marathon/docs/rest-api.html#post-v2-apps
the "ports" section appears to use the ports from the container. However, this is confusing, as these will actually be used on the host.

Would it be better to just remove the "ports" entry from this example?

The example shows most possible fields in the request. That doesn't mean that it makes sense to specify them all at once.
The API is especially confusing regarding ports, so additional (focussed) examples would make sense.
Maybe in a different page though with a link "look here for some examples".
Feel free to make a concrete suggestion with a pull request:
https://mesosphere.github.io/marathon/docs/contributing.html

Just some meta-info:

portMappings are only used with docker BRIDGE networking
for all other cases use ports

http://mesosphere.github.io/marathon/docs/ports.html


Increase memory allocation in minikube example

I noticed that deploying a simple playground ELK stack to minikube resulted in unexpected errors in Elasticsearch; see this discussion. Increasing the memory allocated to the Elasticsearch pods solved the issue.

Since this is a community submitted pull request, a Jenkins build has not been kicked off automatically. Can an Elastic organization member please verify the contents of this patch and then kick off a build manually?


Hi, thanks a lot for your work. My question is how long it takes to train such a model and what kind of GPU you used.

Hi. Thanks for your interest in our work. It's difficullt to give a definite answer due to the layout of the computation cluster we're using. Estimated training time is roughly 1-2 days for 2D data and 3-4 days for 3D data using GPUs that range from RTX 2080 to RTX A5000. Sorry for not being able to give a more detailed answer as we have not yet carried out any evaluation in this regard.


Use twig to build metadata

A proof of concept to show we can generate valid SAML metadata for EngineBlock, using Twig

@pablothedude I've created a 6.1 release branch. And targetted this PR onto that. The 6.1 branch is based on master WITH the 7.2 compat changes. But other 6.0 changes should still be merged to this branch when they start landing on master.

But I don't want to merge features into a release branch so I changed the target back to master.

Allright, but do not merge this to master before release 6.0 is completed! My intention was to use the 6.1 release branch as a temporary 6.1 development branch. It might not be fully GitFlow compatible, but with our challenging version landscape, it might not be a bad idea.

No problem, I will leave it as is for now but maybe we could make a temporary branch if we're not sure to merge it back to master and use that as work branch to prevent the pollution of release branches.

I've created an feature/metadata intermediate branch for this purpose.

Merging this POC as a starting point for our other reimagine metadata work. Thanks @pablothedude


Feature: Option to turn off continuous syncing

Currently it appears the behavior is that the controller creates the necessary AWS objects for an ALB (Security Groups, Target Groups, etc). Then as it runs it also syncs the configuration periodically so if a security group managed by the alb-ingress-controller is changed manually in the AWS console those changes are overwritten.
This would be similar in effect to the option given by external-dns policy=upsert-only or policy=sync.

will take a look for this.
Personally I like the idea of only reconcile rules managed by alb controller, maybe by adding a special description for the rules. like [k8s.io/description]: rules to support ingress traffic. Then any rule not prefixed with [k8s.io/description] are untouched.

The upsert annotation is about the only way I can get behind this. It's an inherently risky proposal to allow drift from the managed ALB and the ingress definition, akin to manually modifying your pods after they are deployed. For whatever reason this keeps coming up though. The users would need to understand that once they set upsert-only on an ingress they are signing up for an unexpected reshuffling of rules or settings when an ingress is updated.

/remove-lifecycle rotten

/remove-lifecycle stale

The upsert annotation is about the only way I can get behind this. It's an inherently risky proposal to allow drift from the managed ALB and the ingress definition, akin to manually modifying your pods after they are deployed. For whatever reason this keeps coming up though. The users would need to understand that once they set upsert-only on an ingress they are signing up for an unexpected reshuffling of rules or settings when an ingress is updated.

can you please let me know how did you solve this issue?
I am trying to manully add some listeners as well as modifying security groups.But it gets deleted after a while.


[BUG] Azure azure-security-keyvault-secrets SDK creating SecretAsyncClient created by default

Describe the bug
I'm creating a secret client but somehow by default it's creating Async Client which is breaking the expected flow (require sync client to work).
Exception or Stack Trace
2021-05-29 18:52:58.741 DEBUG 7900 --- [ctor-http-nio-2] c.a.s.k.secrets.SecretAsyncClient        : Retrieved secret - <*****>

To Reproduce
Create a default secret client using Java SDK:
new SecretClientBuilder().vaultUrl(keyVaultUrl).credential(credential).buildClient();
Code Snippet
// pom.xml dependency definition
<dependency>
            <groupId>com.azure</groupId>
            <artifactId>azure-security-keyvault-secrets</artifactId>
            <version>4.3.0-beta.6</version>
</dependency>

// Code snippet to fetch secret
public KeyVaultService(@Value("${key.vault.name}") String keyVaultName) {
        logger.info("Initialising KeyVaultService");
        String keyVaultUrl = "https://" + keyVaultName + ".vault.azure.net";
        DefaultAzureCredential credential = new DefaultAzureCredentialBuilder().build();
        secretClient = new SecretClientBuilder().vaultUrl(keyVaultUrl).credential(credential).buildClient();
}
public String getSecret(String secretKey) {
        KeyVaultSecret secret = secretClient.getSecret(secretKey);
        return secret.getValue();
}

Expected behavior
Get the Secret Sync Client by default for desired functionality
Setup (please complete the following information):

OS: Windows 10
IDE : VS Code v1.56.2
Version of the Library used - 4.3.0-beta.6

Information Checklist
Kindly make sure that you have added all the following information above and checkoff the required fields otherwise we will treat the issuer as an incomplete report

[x] Bug Description Added
[x] Repro Steps Added
[x] Setup information Added

Our Java sync clients reach the service by blocking async calls made by an internal async client, this is a pattern we follow for most of our Track 2 SDKs. What you are seeing is a log made by the internal SecretAsyncClient, not actually a bug. The actual service call will be blocked on and will behave as you would expect any synchronous method to, waiting for a result to be produced to then continue execution on the next line of code :)


Zoom not working in fullscreen

Hello there,
I'm using chewie for my video player and I run into a problem and it's to not be able to zoom in fullscreen.
Here is the code :
Future<void> _initController() async {
    // We get the file from the cache.
    final file = await _cacheManager.getSingleFile(mediaUrl);

    // We create the video player controller.
    _controller = VideoPlayerController.file(
      file,
      videoPlayerOptions: VideoPlayerOptions(
        mixWithOthers: true,
      ),
    )..addListener(_controllerListener);
    final controller = _controller;

    if (controller != null) {
      await controller.initialize();
      _chewieController = ChewieController(
        allowedScreenSleep: false,
        allowMuting: false,
        allowPlaybackSpeedChanging: false,
        aspectRatio: 4 / 3,
        autoInitialize: true,
        autoPlay: true,
        deviceOrientationsAfterFullScreen: [
          DeviceOrientation.portraitUp,
        ],
        deviceOrientationsOnEnterFullScreen: [
          DeviceOrientation.portraitUp,
          DeviceOrientation.landscapeLeft,
          DeviceOrientation.landscapeRight,
        ],
        hideControlsTimer: const Duration(seconds: 2),
        looping: true,
        maxScale: 4.0,
        showControlsOnInitialize: false,
        showOptions: false,
        showControls: widget.mediaControls,
        videoPlayerController: controller,
        // zoomAndPan: true, NOT WORKING
      );
    }
}

And here is how I do the zoom :
return _AspectRatio(
    child: chewieController != null &&
            chewieController.videoPlayerController.value.isInitialized
        ? InteractiveViewer(
            minScale: 0.5,
            maxScale: 4.0,
            child: Chewie(
              controller: chewieController,
            ),
          )
        : const Center(
            child: InfiniteSpinner(),
          ),
  );

i'm not sure if it's meant to be done like that but the zoomAndPan is not working at all inside the ChewieController.
Is there something I've done wrong or do you know something about it ?
Thank you,

Which Platform. iOS, Android or both?

Both


Fix workflow linter

What's the deal with this issue?

The linter in the workflow works differently than the linter locally 😭

I'll just close this until we experience another issue


Can't connect to Wiimmfi

When I launch CTGP-R from the channel, it gives me error 20100 but without loading CTGP-R online is working.
What can i do?
@mkwcat

im having the same issue, i can't even verify with ethernet connection

still open?

Everyone is having this problem, mkwcat talked with mrbean about this and they dont know what is causing it but hopefully it will be fixed one day.


superagent "write()" does not return "this"

Hi, when I want to test an API which accepts binary request, the test failed with .write().end is not a function
request(app)
  .post(url)
  .write(buffer)
  .end(...)

Then I checked superagent code, found write function does not return this, it's not hooked.
Request.prototype.write = function(data, encoding){
  var req = this.request();
  if (!this._streamRequest) {
    this._streamRequest = true;
    try {
      // ensure querystring is appended before headers are sent
      this._appendQueryString(req);
    } catch (e) {
      return this.emit('error', e);
    }
  }
  return req.write(data, encoding);
};

Can this case be fixed?

According to the jsdoc:
/**
 * Write raw `data` / `encoding` to the socket.
 *
 * @param {Buffer|String} data
 * @param {String} encoding
 * @return {Boolean}
 * @api public
 */

Request.prototype.write = function(data, encoding){
...

This API does return boolean instead of this. I think this is a API design issue of superagent, but I figure out a workaround:

test('Integration test', async () => {
  const req = request(app.callback()).post('/sync/push')
  req.type('application/octet-stream')
  req.write(fs.readFileSync(path.resolve(__dirname, './push-0.bin')))
  const res = await req
  expect(res.status).toBe(200)
})

@perqin Does your code actually work? I have an express server using bodyParser.raw() to handle the binary data, and I used your code to send over a Buffer of binary data like that, but the server doesn't seem to receive anything.

Have the same issue and @perqin example does not work. Is it possible to document correct example for binary post?


UX: Use properly component to show messages to user

For now, we are using YellowBox warnings and that should be improved.
Note: Errors from blockchain events and from thrown errors should use this solution.

Further note: Contract reversions from reading call functions are thrown instead of trigger an event.


fix: update type in Users database to Long (#8)

Fixes #8

Description
This commit updates the id field in the Users entity from Integer to Long .
As a result, all related classes interacting with the Users entity have been updated to reflect this change. The SQL script (schema.sql) has also been modified to change the corresponding type from INT to BIGINT on lines 39 and 62, ensuring that the database schema matches the updated code.

@nmarulo I have updated the type to Long for id but now AuthenticationService.java is expecting Integer instead of Long if you could guide me on this should i change into Long for AuthenticationService or just change the returned Long into Integer.
If you could please guide me on this.

@nmarulo I have updated the type to Long for id but now AuthenticationService.java is expecting Integer instead of Long if you could guide me on this should i change into Long for AuthenticationService or just change the returned Long into Integer. If you could please guide me on this.

@gitclonegaurang
Sure, no problem. What happens, is that, I believe that not seen the image with the classes that I indicate 😅, it is necessary to change these classes:

Everything that is related to the Id of the entity users.

I will update the changes.

Thanks @gitclonegaurang


Oauth feature - Authorization Code Grant

Completed Documentation, example demo code, library, and Integration/E2E testing for Authorization Code Grant.

Great addition!
I will take some time to study the code and give some feedback ❤

@jondot @yinho999
We need to consider to moving it to a separated crate, with the option to override the configuration.
something like that: https://crates.io/crates/rhai-loco

I've recently been looking into how I could integrate clerk-rs into Loco (the crate only has actix web middleware). This would be a great addition to make it easy to handle the OAuth myself and I don't mind going that route at all but to better my own understanding i'm still curious how we enable both implementations

@jondot @yinho999
We need to consider to moving it to a separated crate, with the option to override the configuration.
something like that: https://crates.io/crates/rhai-loco

I think create a general security crate for OAuth2, MFA or TOTP and more. Users can just toggle the feature flags for each strategy if they needed.

I have reviewed the PR, amazing work @yinho999 a few questions:

Could this support providers like Google, Facebook, and others in parallel? (i.e. login with "Google | Facebook | X") i believe there has to be some kind of provider ID concept and a way to configure multiple (like node.js Passport)
Can it also work in parallel with the regular JWT auth?

A few notes, I generally agree with @kaplanelad, I would be happy to see it as a "plug in", so try to create an initializer that wires this functionality that would be the best. Once you have it as an initializer, it can be consumed as a crate for example.

I have reviewed the PR, amazing work @yinho999 a few questions:

Could this support providers like Google, Facebook, and others in parallel? (i.e. login with "Google | Facebook | X") i believe there has to be some kind of provider ID concept and a way to configure multiple (like node.js Passport)
Can it also work in parallel with the regular JWT auth?

A few notes, I generally agree with @kaplanelad, I would be happy to see it as a "plug in", so try to create an initializer that wires this functionality that would be the best. Once you have it as an initializer, it can be consumed as a crate for example.

Yes, the current code I am running can be ran with Google credentials(OAuth2 Authorization Code). Since the OAuth2 is a standard, we should able to use any provider with Authorization Code Grant supported. Futhermore, I added provider name in the */yaml, which store as a key in the OAuth2Store BTreeMap. User can get the specific OAuth2 instance from the OAuth2 store BTreeMap.(I might realize this approach might cause conflict between different grant but same provider, I will change the naming of this.)

Yes, the login logic is completely different than jwt token, which means we need different endpoints to jwt token which works parallel to JWT.

I will start working on converting this code into a plugin/initializer few days later. I sick these few days and I will start after I get better.👍

starting to work on it right now

@jondot @kaplanelad Hello there, after exploring the initializer pattern, I'm somewhat unclear about the appropriate location for the configuration file. Currently, the OAuth2 configuration structure is placed within the src/configuration.rs file, and the variables are in the config/[..].yaml file.
However, if the OAuth2 functionality is to be separated into a different library, I'm uncertain where the configuration file and variables should be located. One solution might be to isolate the configuration into a separate file and access it through a PathBuf, although I'm not convinced that's the best approach since this approach requires the user to copy and paste the config structure by hand.

Hey @yinho999,
You can move the configuration via settings config.


feat: add column adjuster

Consumed in the pivot table here https://github.com/qlik-oss/sn-pivot-table/pull/455. Have been tested in sn-table but not quite done with that part. Will test it properly before releasing this

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

GitHub release
npm package (@latest dist-tag)

Your semantic-release bot :package::rocket:


error file missing

Hi
Any fix for file missing cudart64_92.dll
Its a fresh install of windows 10..with fresh 10.2 cuda installed...
Any help please?

https://download.mersenne.ca/CUDA-DLLs/CUDA-9.2
Download DLLs to this same dir as BitCrack executable.
I would send files to my FTP later gor direct download, but now i writing on phone so it's too dificult to do this now :)


Fix headers

The headers are missing a space between the #s and the text, causing them to render incorrectly.

The build test failures are not related to my change...


controller reader: support consumption of series of controller events

GearVRf-DCO-1.0-Signed-off-by: Mihail Marinov<EMAIL_ADDRESS>

On hold for few weeks

Rebased. Work resumed.

Oculus controller support verified


JwtHelper.decodeAndVerify method unable to verify valid JWS signatures if base64 string contains padding (=)

When using spring-security-jwt with JWTs generated by other parties, although valid JwtHelper.decodeAndVerify intermittently fails saying that the signature is invalid, we realized if the jwt claims part (in base64url encoded format) contains padding (=) at the end signature check fails. I have created a GIST demonstrating this issue (link) problem seems to be related with base64URL encoding and decoding when this happens the equals signs at the end are removed and hash calculated with the wrong input. Please let me know if gist is not enough and if you need logs etc.

same problem

@rozaydin I took a look at your gist and the JWT format is Base64 encoded NOT Base64 Url encoded, which is why your test is failing. It has to be Base64 Url encoded.
Here is your test:
@Test
public void base64Test() {
	// base64TestStr is Base64 encoded...it is NOT Base64 URL encoded
	String base64TestStr = "eyJpc3MiOiIwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMSIsInN1YiI6IjAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxIiwiYXVkIjoiTWluZFNwaGVyZSBBUyIsImlhdCI6MTUwOTM1MjI5NywibmJmIjoxNTA5MzUyMjk3LCJleHAiOjE1MDk0Mzg2OTcsInNjaGVtYXMiOlsidXJuOnNpZW1lbnM6bWluZHNwaGVyZTp2MSJdLCJ0ZW4iOiJ0ZXN0LXRlbmFudCIsImp0aSI6IjkxODE3YTJkLTU0ZjQtNDQ1OC04YTI5LWU5MGU5ZDQ3YTViIn0=";

	// Here you are encoding/decoding using Base64 URL,
	// but the data format is Base64 encoded, which is why the test is failing
	String base64StrOutput = new String(b64UrlEncode(b64UrlDecode(base64TestStr)));

	assertEquals(base64StrOutput, base64TestStr);
}

And here is the updated (and passing) test:
@Test
public void base64Test_updated() {
	String base64TestStr = "eyJpc3MiOiIwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMSIsInN1YiI6IjAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxIiwiYXVkIjoiTWluZFNwaGVyZSBBUyIsImlhdCI6MTUwOTM1MjI5NywibmJmIjoxNTA5MzUyMjk3LCJleHAiOjE1MDk0Mzg2OTcsInNjaGVtYXMiOlsidXJuOnNpZW1lbnM6bWluZHNwaGVyZTp2MSJdLCJ0ZW4iOiJ0ZXN0LXRlbmFudCIsImp0aSI6IjkxODE3YTJkLTU0ZjQtNDQ1OC04YTI5LWU5MGU5ZDQ3YTViIn0=";

	// Using b64Encode/b64Decode instead of b64UrlEncode/b64UrlDecode
	String base64StrOutput = new String(b64Encode(b64Decode(base64TestStr.getBytes())));

	assertEquals(base64StrOutput, base64TestStr);
}

You need to ensure the provider you are using is generating JWT's in Base64 Url encoded format, as defined by the spec:

A JWT is represented as a sequence of URL-safe parts separated by
period ('.') characters.  Each part contains a base64url-encoded
value.

I'm going to close this issue as things work as expected.


feat: add support for NamedTuple and TypedDict types

Change Summary

Related issue number
fix #760
fix #1324
fix #1430
Checklist

[x] Unit tests for the changes exist
[x] Tests pass on CI and coverage remains at 100%
[x] Documentation reflects the changes where applicable
[x] changes/<pull request or issue id>-<github username>.md file added describing change
(see changes/README.md for details)

Ok I added a dedicated section in the doc for both annotated types and took your remarks into account except the subclass thing (cf my remark). I feel like it's ready for another review :)

Ok I added a dedicated section in the doc for both annotated types and took your remarks into account except the subclass thing (cf my remark). I feel like it's ready for another review :)

This looks great, I'll be putting it to good use, thanks!
However there is an issue that this does not respect subclassing, for example, the following will raise a ValidationError that the name field is missing.
class OptionalUser(TypedDict, total=False):
    name: str

class User(OptionalUser):
    id: int

class Model(BaseModel):
    user: User

Model(user={'id': 1})

I had a quick look to try and fix this issue but couldn't find a complete solution.
There are __required_keys__ and __optional_keys__ attributes but they are not guaranteed to be present on all versions and we cannot calculate the optional / required keys ourselves by traversing the mro as it is discarded upon class creation.
If there is no universal solution for this issue then __required_keys__ and __optional_keys__  should be respected if they are present.

This looks great, I'll be putting it to good use, thanks!
However there is an issue that this does not respect subclassing, for example, the following will raise a ValidationError that the name field is missing.
class OptionalUser(TypedDict, total=False):
    name: str

class User(OptionalUser):
    id: int

class Model(BaseModel):
    user: User

Model(user={'id': 1})

I had a quick look to try and fix this issue but couldn't find a complete solution.
There are __required_keys__ and __optional_keys__ attributes but they are not guaranteed to be present on all versions and we cannot calculate the optional / required keys ourselves by traversing the mro as it is discarded upon class creation.
If there is no universal solution for this issue then __required_keys__ and __optional_keys__  should be respected if they are present.

Hi @RobertCraigie
First let me thank you for testing the code! It's so valuable to have feedback before a feature is actually merged.
You're right I didn't get that. My first implementation used __required_keys__ indeed but I got issues with the CI with older python versions that didn't support it. And I don't know what the best:

having a better support for python 3.8+ but it means the code will behave differently depending on python version, which I don't like. Maybe we could add a warning in this case?
having a partial support that is the same (current implementation), which is not perfect either
the answer C
I'll give answer C another go and see if I can find a way to make it work for all versions.

Hi @RobertCraigie
First let me thank you for testing the code! It's so valuable to have feedback before a feature is actually merged.
You're right I didn't get that. My first implementation used __required_keys__ indeed but I got issues with the CI with older python versions that didn't support it. And I don't know what the best:

having a better support for python 3.8+ but it means the code will behave differently depending on python version, which I don't like. Maybe we could add a warning in this case?
having a partial support that is the same (current implementation), which is not perfect either
the answer C
I'll give answer C another go and see if I can find a way to make it work for all versions.

Glad I could help!
I would also like to be able to explicitly forbid passing extra keys, is this possible?

Glad I could help!
I would also like to be able to explicitly forbid passing extra keys, is this possible?

@RobertCraigie Sure easy peasy ! :) Just needed to pass down the config like I did for dataclass.
I didn't pass it down to NamedTuple though as I feel like it makes no sense. It can probably be done in a future PR if needed.

@RobertCraigie Sure easy peasy ! :) Just needed to pass down the config like I did for dataclass.
I didn't pass it down to NamedTuple though as I feel like it makes no sense. It can probably be done in a future PR if needed.

Is there any timeframe for when we can expect this :)

@samuelcolvin Feedback taken except for the rewording on types.md.
I'm not really sure how to explain the Enum for example.
Would you mind update types.md for me please ? I'm sure it will be clearer than what I would come by with

@samuelcolvin Feedback taken except for the rewording on types.md.
I'm not really sure how to explain the Enum for example.
Would you mind update types.md for me please ? I'm sure it will be clearer than what I would come by with

Don't worry about it, the whole file needs rethinking, what's there is fine.
I'll message tomorrow.

🎉 this is great, thank you so much.


Minibasket Attribute Pricing Issues

Expected Behavior

We’ll need to update minibasket to include attribute pricing information

Current Behavior

The minibasket product information does not display or take into account attribute pricing.  So if I have $9 product, and $10 attribute, the minibasket shows that the item is $9.
In the default state, the minibasket also does not show the product’s correct sale price when the item has attribute pricing.

Attempted Fixes

FIX: Change the &mvt:item:formatted_subtotal; variable to instead use a custom calculated item subtotal to show the correct price, both taking into account attributes as well as discounts. The calculation should be the group:subtotal + looping through and adding in all option:subtotal values for that item’s attributes.
I’ve attached a screenshot of my example code for the fix as well.
For future reference: I was going to suggest we use the subtotal_comprehensive variables as a solution, but this led me to discover some issues with the subtotal_comprehensive variables available to us that Jon has now filed a bug for v10.

Steps to Reproduce (for bugs)

See Screenshot Attached

*Chrome / Windows10 / Desktop

This was addressed in Issue #39


Label & TextraLabel feature parity request: [] sets the color to the previous color

Hi!
A current behavior of TextraLabel that does not match Label is the use of [].
That syntax in Label will sets the color to the previous color defined in the label. That syntax in TextraLabel will reset the color to the label original color instead.
Example:

Code:
public class MyGdxGame extends ApplicationAdapter {

  private Stage stage;
  private Skin skin;

  @Override
  public void create () {
    stage = new Stage(new ScreenViewport());

    skin = new Skin(Gdx.files.internal("uiskin.json"));

    Label label = new Label("[RED]test [GREEN]test[] test[]", skin);
    label.getStyle().font.getData().markupEnabled = true;

    TextraLabel textraLabel = new TextraLabel("[red]test [green]test[] test[]", skin);

    Table table = new Table();
    table.add(label).row();
    table.add(textraLabel).row();

    Stack stack = new Stack(table);
    stack.setFillParent(true);

    stage.addActor(stack);
  }

  @Override
  public void render () {
    ScreenUtils.clear(0, 0, 0, 1);
    stage.act();
    stage.draw();
  }

  @Override
  public void dispose () {
    stage.dispose();
    skin.dispose();
  }
}

The request of this issue is to make TextraLabel's [] tag match the behavior of Label.
Thanks!

The main issue here is that [] also currently resets styles, such as bold and oblique. Should [] just reset the previous color, or should it rest the previous "thing in square brackets"?

Hi Tommy!
I think we can separate the styles applied by square brackets in two categories:

toggle styles. eg: bold/italic can only be toggled on and off. there is no stacking
stacking styles. eg color and size can be stacked (eg: "[%200]this [%300]is[] a test[]" or "[red]this [green]is[] a test[]")

[] could be used to toggle off styles that are toggled and to reset to the previous state (a stack pop) for stacking styles.
What do you think?

Currently what I have implemented just records whenever there's a change to the color/style/size/font-family state, and using [] should (soon?) drop back one step in the history. Getting this to work with TypingLabel effects, which use {EFFECT=parameters;for;it}, is going to be more interesting.

This should work for all square-bracket markup now. I don't see a good way to have it affect curly-brace effects, yet. You can try this (and some more related features) in https://github.com/tommyettinger/textratypist/releases/tag/v0.10.0 ; note that [ ] has replaced the old TextraTypist [] and now [] should act how it does for BitmapFont.


Add new function to get horizontal field of view of camera

Oh I  just saw this ... So i will cancel the
https://github.com/Cap-go/camera-preview/pull/5
Thank you @riderx


Impossible to retrieve saved clusters

Steps to reproduce

Go to step 2 of launching a Galaxy Cloudman appliance
Click on "Fetch Saved Clusters"

Observed results

"Retrieving Saved Clusters" is displayed but list of saved clusters never appears
Web browser console shows:

GET https://beta.launch.usegalaxy.org/cloudlaunch/api/v1/infrastructure/clouds/amazon-us-east-n-virginia/cloudman/ 404 (Not Found)
XHR failed loading: GET "https://beta.launch.usegalaxy.org/cloudlaunch/api/v1/infrastructure/clouds/amazon-us-east-n-virginia/cloudman/".

Expected results
Should be possible to select a saved cluster from a list

Thanks for reporting this. This has been fixed in: https://github.com/galaxyproject/cloudlaunch/commit/6e414211a322c39440eccb3dc0069da300732683
We'll push it out to the server tomorrow when the server is less busy.

The fix has been pushed out - let us know if it looks ok now.

Thanks, now the list of saved clusters is displayed. However, there is now a message: "SyntaxError: Unexpected token < in JSON at position 0" between "Advanced CloudMan options" and the instance type dropdown which shows "Retrieving instance types..." and is not selectable.

Closing in favor of #113


Question about reproducing results of biformer-tiny on ImageNet1K classification

Thank you for your work, I'm really interested in your model.
I've tried to reproduce your results, especially biformer-tiny, but I was not able to get the same accuracy in paper.
Since I don't have slurm cluster server, I trained on my local GPU machine with following script
python -m torch.distributed.launch --nproc_per_node=8 --use_env main.py \
--data-path ./data/in1k \
--model 'biformer_tiny' \
--output_dir './outputs' \
--input-size 224 \
--batch-size 128 \
--drop-path 0.1 \
--lr 5e-4 \
--dist-eval

I have tried several experiments such as change lr from 5e-4 to 1e-3, as mentioned in your paper, 1024 batch size with different number of GPUs, like 256 batch/GPU with 4 GPUs or 128 batch/GPU with 8 GPUs
However, the result I got was only 81.26%, failed to reproduce 81.4% in your paper (probably 81.37% according to your log, is it right?)
Could you please share the script used to train the biformer-tiny, small and base models? It doesn't matter whether the script is based on hydra_main or slurm.
Thank you.

Since I don't have slurm cluster server, I trained on my local GPU machine with following script
python -m torch.distributed.launch --nproc_per_node=8 --use_env main.py \
--data-path ./data/in1k \
--model 'biformer_tiny' \
--output_dir './outputs' \
--input-size 224 \
--batch-size 128 \
--drop-path 0.1 \
--lr 5e-4 \
--dist-eval

This looks fine. I'm not sure if the 0.1 performance drop (81.37->81.26) is a normal fluctuation because I only ran the experiment once. Try batch_size=256 (hence the effective batch size is 256 x 8=2048) also.

I have tried several experiments such as change lr from 5e-4 to 1e-3, as mentioned in your paper, 1024 batch size with different number of GPUs, like 256 batch/GPU with 4 GPUs or 128 batch/GPU with 8 GPUs

In pytroch Distributed Data Parallel (DDP), the effective batch size (i.e. number_GPUs  x per_gpu_batch_size) instead of  per_gpu_batch_size matters,  never waste your time on these trials.  Also note that the lr is automatically linearly scaled, see main.py, so you should use --lr 5e-4.

Could you please share the script used to train the biformer-tiny, small and base models? It doesn't matter whether the script is based on hydra_main or slurm.

The small model script is provided in the scripts/train.sh and I verified it right before releasing this repository.
For tiny models, see my comments above.
For base models, the effective batch size is actually 2048, since I used 2 V100 nodes to train the model.  Try --batch-size 256 --drop-path 0.4  --lr 5e-4 on your local machine with 8 GPUs if your GPU memory is large enough (e.g. A100 80G).

Thank you for reply, I thought the model was trained on 1024 batch size, as described in the paper.
Is there any reason for training the model with a batch size of 2048 while several vision backbone models were trained with a batch size of 1024?

No. At least for me, it is just a hardware issue (speed, memory, etc.). I’m not sure if it has a impact on final performance. It is too expensive to try everything.
But some literature suggests that the batch size should not affect performance once the learning rate is linearly scaled, see “Accurate, Large Minibatch SGD:
Training ImageNet in 1 Hour (1706.02677.pdf (arxiv.org)https://arxiv.org/pdf/1706.02677.pdf) ” for details.
On 15 Sep 2023, at 1:30 PM, Chanyong Shin @.***> wrote:
Thank you for reply, I thought the model was trained on 1024 batch size, as described in the paper.
Is there any reason for training the model with a batch size of 2048 while several vision backbone models were trained with a batch size of 1024?
—
Reply to this email directly, view it on GitHubhttps://github.com/rayleizhu/BiFormer/issues/32#issuecomment-1720699335, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AEYCTO4IBLEZ6C4NNAPIC2TX2PRVZANCNFSM6AAAAAA4V4CU4M.
You are receiving this because you commented.Message ID: @.***>

Thanks, I've got the answer to my question. Let me close the issue


change multi-word status to single word

this changes fail (abort) to fail_abort, solved not verified to solved_not_verified, etc
fixes #7

I think it would make sense to have those as global Constants in Experiment.py.


implement StreamMuxer for Connection; implement Substream type

Changes

implement StreamMuxer for Connection
implement Substream which implements AsyncRead + AsyncWrite; allows for reading, writing, and closing of the stream
move testcontainers test setup into a macro to reduce copypaste in every test

Tests

cargo test

Issues

closes #6

@ec2 nice, comments addressed, moved the test-only functions inside the test module. also remove the cursed InnerConnection type since it wasn't needed anymore, replaced it with one channel :D


Weird error on the following files : SwipeTableViewCell+Accessibility.swift and Extensions.swift

In the file: SwipeTableViewCell+Accessibility.swift, it shows the following error

In the file: Extensions.swift, it shows the following error

I am using the latest pod
xcode 9.2

I'm experiencing the same issue.
My environment:
MacBook Pro macOS Sierra 10.12.6 Xcode 9.2 (9C40b) pod --version = 1.5.0 ruby --version = ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-darwin16] swift -v = Apple Swift version 4.0.3 (swiftlang-9<IP_ADDRESS> clang-9<IP_ADDRESS>) Target: x86_64-apple-macosx10.9 SwipeCellKit --version = 2.2.0

iOS 11 i.e starting from swift 3, apple has provided native support for showing options while swiping a cell. Hence no need to use this library anymore.


A PR to add an exchange

Hello! I'm part of the chilean bitcoin exchange SurBTC.com and continuously see arbitrage opportunities. Would you be open to merge a (well coded) PR to add this exchange?

Sure. Can BTC/USD be traded on that exchange?


Add an option to require version numbers to increase

This adds an option to downloads RequireHigherVersion which makes Invoke-VersionCheck compare the new version of an application in CM and require it to be a higher version than currently known as well as new.

Setting it on the application might be a better choice? No chance of setting it on one download but not another accidentally.
There might be another name that makes what it does clearer, perhaps "IncrementalVersions". "MonotonicVersions" is accurate but jargon-y.

Currently this works for version and int types, and falls back to the previous behaviour if $ApplicationSWVersion can't be parsed as either of those.

Version I'm pretty confident is good - I have trouble thinking of a version numbering scheme where going backwards is normally desirable, particularly if you're using supersedence. Same with int versions.
It's easy to add other types - I thought about doing datetime, but I felt like release date sorting would probably work fine for anything using date versioning.

At the moment it's off by default with silent fallback to the previous behaviour, not sure if that's desirable either. I think the behaviour for things that look like versions and ints is solid and probably good from a principle of least surprise perspective, but it's still a behaviour change.
Any thoughts? Leaving this as a draft for a bit in case I think of anything to add or test more.
Fixes #88

I like this change so far, leaves little possibility of breaking things while improving the situation. I tried to shy away from things like this because I've seen some vendors do some crazy things, including changing the way they version their apps, to using [version] strings that don't actually cleanly convert to a [version] type. Also for apps like Chrome, the version of the installer never actually changes.

Yeah, changed version schemes were one of the things that prompted me to make it fall back to the existing behaviour if the new version number's not a [version] or [int] - and if they switch from something that doesn't look like a version to something that does, the list of existing versions from CM is filtered to only SoftwareVersions that can also be used as the same type, so in that situation the app'd be treated as new and packaged too.
If something's published with a version that fits [version] but isn't really a version, that's likely a situation where you'd want this turned off (hopefully there aren't many publishers switching away from real version numbers to things that look like versions but aren't...).
Definitely a thumbs down to Google on Chrome installer versioning, though. 😂


Strict Entries for out-of-order (parallel) processing

Hi there.
I'm in the process of performance improvement for rustup, and have settled on extracting tars in parallel, having a POC showing its effectiveness on Windows.
Currently, the tar package only supports sequential unpacking of files to disk (unpack being the primitive operation as it also writes metadata).
To sum up the currently relevant motivations of the tar package, as I understand them:

Interface: Support any Read trait implementation, not assuming it's Seek.
Lazyness: Don't read data from the Reader unless the user asked to do so, instead call skip.

Both decisions are debatable, but are certainly very decent in the design space.
Now, in order to implement parallel extraction, I would need to process Entryies out of order.
Solution space:

Make the interface require Seek - each entry can be independent, and still lazy, but this may potentially break clients.
Always be strict - with some performance hit only for complex applications that do filtering on the tar. Doesn't break the current api.

This may also simplify the API and avoid some mistakes people make by not reading the docs for entries about out-of-order processing.

Add a force function on Entry - which returns a StrictEntry, being an independent structure, which reads & contains the data strictly. This would enlarge the user-facing API though - increasing implementation & api complexity. Doesn't break the current api.

I like both approach #2 and #3, each with their own trade-offs, and choosing which way to go depends on the crate's direction.
What are your thoughts?

What's your preferred solution to the problem?
Do you give a green light to start working on the suggested solution.

Thanks for the great crate.

Oh awesome! I always assumed the slowness in rustup was around the handling of "transactions" which copied files at least 3 times IIRC and rust-docs has a huge number of files. That being said extraction in parallel is certain to be a nice boost!
I think with parallel extraction using Seek won't really work though, right? If you want to, in parallel, extract to the filesystem you'd almost for sure need an in-memory buffer with the tar to read the buffer in parallel? Otherwise if, as the crate is organized today, you've only got R then you can only read on one thread at a time (or seek).
In that sense I think this may basically just want methods that are specialized to Archive<Vec<u8>> perhaps?

Hi Alex! Thanks for the enthusiasm!
I want being precise: The performance problem in rustup is with the WriteFiles themselves - Windows Defender scans all the 15k html&js files of rust-docs syncronously, which is a pure cpu workload.
The tar extraction's performance itself is negligible.
The transactions mechanism being a second-order performance problem here, which I'll address later.
So the line of thought I had was to extract it all in memory (have Strict Entries with all the metadata together with the data), which would then be dispatched in parallel to the file system pipeline.
I also thought about the Archive<Vec<u8>> (Or more precisely Archive<&[u8]>) - but it seems this usage would be depending too much on the implementation details of this tar library - as it's a very intricate interaction between the mutable Read for mut &[u8] interface and my requirement for immutable, self-standing entries which contain a lazy data field with &[u8]s.
So we could add another option to the solution space:
4. Try to stabilize & formalize the behavior of the library in the case of &[u8] (Or other outer mutability/ inner immutability interactions)
Also, just to be sure there isn't another little misunderstanding here - the 3 points under the solution space are independent routes to solve the problem - an or not an and.
What do you think would be the right way to go here?

Hey there.
I just noticed that Archive::skip calls Read::read on the underlying reader, thus not doing any laziness at all.
Switching to read the data directly instead of using the lazy EntryIo should have almost no impact on the current performance of the library, and would simplify the surface API considerably - dropping the sequential processing ordering of Archive::entries() and also dropping the phantom lifetime from Entry<'a, R> to Entry.
The result would be that the memory would be dropped by the user on each iteration instead of being read and dropped in the Archive::skip function, which shouldn't have much of an impact overall.

Hm so it's not entirely clear to me what the proposal is here of what to do? Could you elaborate a bit on what you're thinking?
One thing I just realized as well is that the first thing to do with any tarball is decompress it which is effectively single-threaded. I wonder if this could work by perhaps quickly iterating over Archive<&[u8]> (somehow fixing skip, unsure how to best do that). The quick iteration could build a list of (Header, &[u8]) fields (effectively) and then a new function could perhaps be added to easily extract that into a file (or construct an Entry or something like that).
(or maybe this is all already what you're thinking?)

@alexcrichton, are you available on any synchronous communication channels such as IRC/gitter, etc?
What I currently thinking of implementing is as follows:

Be able to extract the whole archive into memory.
Iterate over a Vec of all extracted entries and write them to the file system in parallel.

To be able to acheive this, the limitation of sequential processing of Archive::entries would need to be lifted.
The origin of this limitation is in the EntryFields::data field being a lazy EntryIo - which holds a reference to the reader/archive.
The solution would then be to replace EntryIo::Data from a reader/archive to a Vec<u8>.
This would also imply we can remove the lifetime parameters on Entry, EntryFields, etc.
I would like to note that this won't deteriorate performance much on the existing use case of sequential processing of entries:

Archive::skip already queries the Reader for the data, and drops it's memory buffer immediately.
Only one file at a time will be resident in memory - one at each iteration of entries.

The current behavior:
for entry in archive.entries() {
    entry.unpack(...)
}

In this case, the entry's data is allocated on each iteration and the decallocated.
for entry in archive.entries() {
    // no unpack call
}

In this case, the data's entry is read & allocated temporarily in Archive::skip, then deallocated in Archive::skip.
If we have a Vec<u8> in EntryIo:

When the user code does an unpack, there should be no difference.
When the user does not use unpack, the data is read upon each iteration, and deallocated at the end of the scope of the iteration, and then there's no reading, allocation & deallocation in Archive::skip.

The only difference being the calls to the heap allocation, now having at most 1 entry's data in memory at each point, versus a bounded intermediate buffer at each point.
And I don't think it would be that terrible to have at most one entry in memory at each point in time

Ok I talked with @NightRa on discord a bit and (I think?) we concluded that probably the best way to go for now is to have a way to take an Entry<T> to an Entry<U>, replacing the underlying I/O with a different one. That way we can replace it with a slice (for example) which can disconnect the entry from the original archive and allow parallel processing.

I also thought about how we can enforce the invariants of the library at compile time, though this will require breaking the current surface-level api;
In particular, this will require not exposing an Iterator interface, but our own custom iterator type, with a for_each/process method, which can consume a file header/description in various ways, such as unpack/ignore/ other Sinks such as writing the contents to a Vec<u8>

I would like to have this feature. @NightRa Do you plan to resubmit the patch?

Yes, I do have plans to resubmit the patch soon.

Wouldn't additional impl blocks for R: Read + Seek + Clone or similar allow it to be parallelized in most cases and also make it Send?

Hi, I'm interested in the rustup performance story too :) - I've dropped the copy count down to 0 - write once and move into place. I'm not sure if more concurrency is needed or not - I'd like to see @NightRa 's prototype to experiment with. In the meantime though, I have analysed the current behaviour, and quite some time is being spent re-opening files to do mtime, permissions and so on. Adding a buffered writer may also be useful - submitting 4k blocks to the IO subsystem is way too small for todays devices (Linux being much better at coalescing than Windows)

Also a lot of time is being spent in CloseHandle - I haven't cracked out a full system profiler yet - thats pretty much next - but this is well documented as a thing for write-heavy tools like VCS's.... even with syscalls optimised in rustup we see

2:16:18.5880792 PM	0.0001307	rustup.exe	38704	CreateFile	C:\Users\robertc\.rustup\tmp\73avhrved4ed3vw1_dir\rust-docs\share\doc\rust\html\std\sync\condvar\struct.Condvar.html	SUCCESS	Desired Access: Generic Write, Read Attributes, Disposition: Create, Options: Synchronous IO Non-Alert, Non-Directory File, Open Reparse Point, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: 0, OpenResult: Created
2:16:18.5882340 PM	0.0000520	rustup.exe	38704	WriteFile	C:\Users\robertc\.rustup\tmp\73avhrved4ed3vw1_dir\rust-docs\share\doc\rust\html\std\sync\condvar\struct.Condvar.html	SUCCESS	Offset: 0, Length: 389, Priority: Normal
2:16:18.5883040 PM	0.0006485	rustup.exe	38704	CloseFile	C:\Users\robertc\.rustup\tmp\73avhrved4ed3vw1_dir\rust-docs\share\doc\rust\html\std\sync\condvar\struct.Condvar.html	SUCCESS

where CloseFile (aka CloseHandle) is taking up most of the time; I suspect that the benefit you're actually seeing is avoiding CloseHandle blocking, and if so, I have a much simpler patch up to permit parallelising that work externally without requiring any parallelisation of the iteration or extraction process.

The time in Close Handle is Windows Defender scanning the written files via
a filter driver.
Parallelising (or doing async closes) submits more jobs to defender,
allowing parallel scanning, and avoiding the implicit serialization bc of
defender.
On Sun, May 12, 2019, 1:13 PM Robert Collins<EMAIL_ADDRESS>wrote:

Also a lot of time is being spent in CloseHandle - I haven't cracked out a
full system profiler yet - thats pretty much next - but this is well
documented as a thing for write-heavy tools like VCS's.... even with
syscalls optimised in rustup we see
2:16:18.5880792 PM	0.0001307	rustup.exe	38704	CreateFile	C:\Users\robertc.rustup\tmp\73avhrved4ed3vw1_dir\rust-docs\share\doc\rust\html\std\sync\condvar\struct.Condvar.html	SUCCESS	Desired Access: Generic Write, Read Attributes, Disposition: Create, Options: Synchronous IO Non-Alert, Non-Directory File, Open Reparse Point, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: 0, OpenResult: Created
2:16:18.5882340 PM	0.0000520	rustup.exe	38704	WriteFile	C:\Users\robertc.rustup\tmp\73avhrved4ed3vw1_dir\rust-docs\share\doc\rust\html\std\sync\condvar\struct.Condvar.html	SUCCESS	Offset: 0, Length: 389, Priority: Normal
2:16:18.5883040 PM	0.0006485	rustup.exe	38704	CloseFile	C:\Users\robertc.rustup\tmp\73avhrved4ed3vw1_dir\rust-docs\share\doc\rust\html\std\sync\condvar\struct.Condvar.html	SUCCESS
where CloseFile (aka CloseHandle) is taking up most of the time; I suspect
that the benefit you're actually seeing is avoiding CloseHandle blocking,
and if so, I have a much simpler patch up to permit parallelising that work
externally without requiring any parallelisation of the iteration or
extraction process.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/alexcrichton/tar-rs/issues/160#issuecomment-491582562,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAQKWNYTPOYDO3E6E4YY7VTPU7UVZANCNFSM4FXEUKYA
.

@NightRa well - sometimes it is; its not for my traces which is why I haven't assigned specific blame.
I'd be delighted to do async closes instead, but I'm not aware of any API for doing that! Please link me up :)


TypeError: Cannot read properties of null (reading 'parentNode')

Environment
"vue": "3.4.8"
"nuxt": "3.9.1"
Reproduction
i am getting error when reload the page on ssr mode. When i go back to this page in SPA mode i dont see this error
Describe the bug
Additional context
After upgrade from nuxt 3.0.0 to 3.8.0, 3.9.0,3.10.0 i am getting this error. Triied to chaged version of vue from 3.3.8 to 3.4.8, 3.4.13 and still get an error. Tried to wrap NuxtLayout and NuxtPage into div , didnt help.Tried to remove NuxtPageIndicator also didnt help.
Logs
TypeError: Cannot read properties of null (reading 'parentNode')     at parentNode (entry.dOCZ9qXz.js:28:687)     at ReactiveEffect.he [as fn] (entry.dOCZ9qXz.js:20:54324)     at ReactiveEffect.run (entry.dOCZ9qXz.js:9:1851)     at L.$.update (entry.dOCZ9qXz.js:20:55334)     at callWithErrorHandling (entry.dOCZ9qXz.js:20:2166)     at flushJobs (entry.dOCZ9qXz.js:20:4841)     at flushJobs (entry.dOCZ9qXz.js:20:5014) logError @ entry.dOCZ9qXz.js:20

There are a number of issues raised which have the same issue.
It is a bug in Vue and will probably be addressed there.
Let's track in one of them: https://github.com/search?q=repo:nuxt/nuxt+parentnode&type=issues

what is the latest vesrion vue and nuxt that works correct without this issue ?

In that case could you open a new issue with a reproduction? 🙏

yes, sure


Add style to overwrite Jekyll site styles

Currently, the inline styles will be overwritten when specifying the "width" tag. To overwrite it properly, it would be better to add in the CSS style sheet under assets as a class, and indicate the img element to be of the indicated class type
See files changed for how it can be done :)

Codecov Report

Merging #233 (dc5efa4) into master (9f821f4) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master     #233   +/-   ##
=========================================
  Coverage     44.72%   44.72%
  Complexity      683      683
=========================================
  Files           175      175
  Lines          3557     3557
  Branches        409      409
=========================================
  Hits           1591     1591
  Misses         1863     1863
  Partials        103      103

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 9f821f4...dc5efa4. Read the comment docs.


Fixed @MidouWebDev PR errors

Well detailed description of the change :
 I worked on the SearchByUsersList.js, SearchByPostsList.js, Error404Page.js, Error500Page.js, Error404Page.css, LoginOrSignUp.css, Error500Page.css, and SearchByUsersAndPostList.css.

Context of the change :
 There are UI bugs in these files, I tried to fix them

Type of change :

[x] Bugfix

Screenshots :
Text not visible in /login
Before :

Now :

Condensed text in search + the "4 4" color isn't following the STYLE_GUIDE.md
Before :

Now :

The Mumble Logo in 404 and 500 : (mobile view)
Before:

Now :

Checklist:

[x] I have read the CONTRIBUTING document.
[x] My code follows the STYLE_GUIDE of this project
[x] I have performed a self-review of my own code
[x] I have commented on my code, particularly in hard-to-understand areas

@Hrithik5 Awesome buddy
Thanks !

@MidouWebDev Anytime Buddy 😁✌


Adds expandable tree-like navigation for child resources

Currently the styling works only for one level of nesting.

This also adds a ConfigurationProvider service, that allows configuring some aspects of the doc browser. Namely if you don't like the fact that subresources are hidden by default, you can add this to your app.js:
angular.module('DocBrowser', ['PraxisDocBrowser'])
.config(function(ConfigurationProvider) {
  ConfigurationProvider.expandChildren = false;
});

LGTM


QuantumKernel unit test parameter bind fix

Summary
The unit tests for the QuantumKernel and QuantumKernelTrainer were changing the names of feature map parameters by manually accessing and changing the private variable parameter._name. Although this changes the name of the variable, it does not change the actual instruction in the circuit. In this case, the unit tests still work (which probably means we should add more unit tests), but generally this can lead to unexpected behaviour.
Details and comments
The code is fixed by changing parameters the intended way, i.e. setting the parameter_prefix when initialising the feature map.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
3 unchanged lines in 1 file lost coverage.
Overall coverage decreased (-0.09%) to 87.216%

Files with Coverage Reduction
New Missed Lines
%

qiskit_machine_learning/datasets/gaussian.py
3
37.11%

Totals

Change from base Build<PHONE_NUMBER>:
-0.09%

Covered Lines:
2995

Relevant Lines:
3434

💛  - Coveralls


Page island is rendered in slot of layout island

[x] I have read the troubleshooting section before opening an issue.
[x] I have tried upgrading iles and vite.

Description 📖
When islands are rendered within a layout file and within a page file, the page island hydration ids start with ile-1 again. The second component from the page is rendered in the slot of the layout component (see stackblitz example)
It seems to have something to do with the newHydrationId() function but i was not able to find the root cause:
https://github.com/ElMassimo/iles/blob/df8b7935ab1afd2a8b238a3cb93a885c4634f6d1/packages/iles/src/client/app/hydration.ts#L22
Reproduction 🐞
https://stackblitz.com/edit/iles-ytnhui
npm run dev - bug reproducible
npm run now - no bug (as expected because newHydrationId() uses a different implementation for SSR during build)
Logs 📜

[Vue warn]: There is already an app instance mounted on the host container.
If you want to mount another app on the same host container, you need to unmount the previous app by calling app.unmount() first.

Hi David, thanks for reporting.
This could be another case of modules being duplicated by Vite, or a bug in how the counter is reset after navigation.
Would you check if there are two copies of client/app/hydration.ts being sent to the browser during development in your site?

Gotcha, then it's option 2, thanks for checking.

But that seems to be the wanted behavior?

The idea behind resetting was to simulate the behavior that would occur during build, where each page starts from 1.
Since ids are not meant to be relied on by the user, a potential fix is to avoid resetting ids.

I don't understand why this bug does not manifest in the docs site, need to check.
Perhaps this has to do with how Vue reuses DOM elements when re-rendering the layout (layout does not change between pages so islands in layout are not re-rendered, so newHydrationId is not called until the first page island, which then overlaps with the layout islands).

@davidlueder After trying the example, I noticed it only happens when using router-link, but not when using a.

Perhaps this has to do with how Vue reuses DOM elements when re-rendering the layout

That theory turned out to be correct.
Fixed by changing the way ids are recycled during dev: instead of resetting to zero on navigation, we now mark ids as available once islands are unmounted.
As a result, we prevent using ids which are currently taken, but ids still match what you would see during build:

Thanks again for reporting! @davidlueder


slider-neighbor bug fix

1.修复auto-play时，left的图片不显示
2.修复neighbor-space属性设置与实际不符

 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.chuyi 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.

@Rowandjj 我先帮你 “on hold”，另外有劳你根据上面的提示签署一下 CLA


Setting different log level in init does not affect seq::log calls

The set levels in init do not seem to be taken over for the default shared instance of the logger. This has the effect that if you set e.g. the level to fatal, even verbose messages are logged to the console.
Steps to reproduce:
seq::init("<IP_ADDRESS>", logging_level::fatal, logging_level::verbose, 1'000);
seq::log_info("hello!");

you see hello on the console. If I use an instance though it works properly. The reason for this problem is that the meyers singleton used for the shared instace is using a constructor resetting the level to verbose:
// cppcheck-suppress noExplicitConstructor
        seq(bool) {
            _s_initialized = false;
            _s_terminating = false;
            base_level = logging_level::verbose;
            base_level_seq = logging_level::verbose;
            _s_dispatch_interval = std::chrono::seconds(10);
            _static_instance = true;
            register_logger(this);
        }

But removing this code is not even sufficient. It would be nice if this is fixed as having a static instance is fine for my use case.

Sorry for a delay. Didn't have the environment set up first, and then had to deal with few things 😅
Looking at it now


Fixup response code on incorrect credentials

Description
This PR fixes https://github.com/apache/cloudstack/issues/8662
The issue got introduced in 4.19. When we try to login, we check login credentials using different types of authenticators. While verifying in case of wrong password with oauth2 authenticator and there are no providers setup for it, it throws a CloudRuntime Exception. Because the error isn't caught, we respond with 200 status code but with empty response. This results in UI getting stuck. This PR fixes this by skipping the authentication check if the secret code is null.

While logging in, if the user doesn't exist it fails with a valid error

If the user exists, but the password is wrong then loading starts on top and the UI gets stuck. I had to clean up my local storage to make the browser work again.

In order to reproduce, use username as "admin" or any other user which exists. For password, enter anything except the password.

Types of changes

[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] New feature (non-breaking change which adds functionality)
[x] Bug fix (non-breaking change which fixes an issue)
[ ] Enhancement (improves an existing feature and functionality)
[ ] Cleanup (Code refactoring and cleanup, that may add test cases)
[ ] build/CI

Feature/Enhancement Scale or Bug Severity
Feature/Enhancement Scale

[ ] Major
[ ] Minor

Bug Severity

[ ] BLOCKER
[ ] Critical
[ ] Major
[x] Minor
[ ] Trivial

Screenshots (if appropriate):
How Has This Been Tested?

How did you try to break this feature and the system with this change?

@blueorangutan package

@vishesh92 a [SL] Jenkins job has been kicked to build packages. It will be bundled with  KVM, XenServer and VMware SystemVM templates. I'll keep you posted as I make progress.

Packaging result [SF]: ✖ el7 ✖ el8 ✖ el9 ✖ debian ✖ suse15. SL-JID 8690

@blueorangutan package

@DaanHoogland a [SL] Jenkins job has been kicked to build packages. It will be bundled with  KVM, XenServer and VMware SystemVM templates. I'll keep you posted as I make progress.

Packaging result [SF]: ✔ el7 ✔ el8 ✔ el9 ✔ debian ✔ suse15. SL-JID 8695

@blueorangutan package

@vishesh92 a [SL] Jenkins job has been kicked to build packages. It will be bundled with  KVM, XenServer and VMware SystemVM templates. I'll keep you posted as I make progress.

Packaging result [SF]: ✔ el7 ✔ el8 ✔ el9 ✔ debian ✔ suse15. SL-JID 8705

@blueorangutan test

@vishesh92 a [SL] Trillian-Jenkins test job (centos7 mgmt + kvm-centos7) has been kicked to run smoke tests

code LGTM. @vishesh92 can you please quickly verify the same when oauth is enabled.

Same issue was happening even if oauth was enabled because the provider name is not there in the request params. It's resolved after this change.

code LGTM. @vishesh92 can you please quickly verify the same when oauth is enabled.

Same issue was happening even if oauth was enabled because the provider name is not there in the request params. It's resolved after this change.

thanks @vishesh92

@blueorangutan package

Packaging result [SF]: ✔ el7 ✔ el8 ✔ el9 ✔ debian ✔ suse15. SL-JID 8712

[SF] Trillian test result (tid-9284)
Environment: kvm-centos7 (x2), Advanced Networking with Mgmt server 7
Total time taken: 49654 seconds
Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr8671-t9284-kvm-centos7.zip
Smoke tests completed. 129 look OK, 0 have errors, 0 did not run
Only failed and skipped tests results shown below:

Test
Result
Time (s)
Test File

[SF] Trillian test result (tid-9306)
Environment: kvm-centos7 (x2), Advanced Networking with Mgmt server 7
Total time taken: 42343 seconds
Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr8671-t9306-kvm-centos7.zip
Smoke tests completed. 129 look OK, 0 have errors, 0 did not run
Only failed and skipped tests results shown below:

Test
Result
Time (s)
Test File

@blueorangutan package

@vishesh92 a [SL] Jenkins job has been kicked to build packages. It will be bundled with  KVM, XenServer and VMware SystemVM templates. I'll keep you posted as I make progress.

@vishesh92 a [SL] Jenkins job has been kicked to build packages. It will be bundled with  KVM, XenServer and VMware SystemVM templates. I'll keep you posted as I make progress.

Packaging result [SF]: ✖ el7 ✖ el8 ✖ el9 ✖ debian ✖ suse15. SL-JID 9055

@blueorangutan package

@vishesh92 a [SL] Jenkins job has been kicked to build packages. It will be bundled with  KVM, XenServer and VMware SystemVM templates. I'll keep you posted as I make progress.

Packaging result [SF]: ✖ el7 ✖ el8 ✖ el9 ✖ debian ✖ suse15. SL-JID 9059

@blueorangutan package

@vishesh92 a [SL] Jenkins job has been kicked to build packages. It will be bundled with  KVM, XenServer and VMware SystemVM templates. I'll keep you posted as I make progress.

Packaging result [SF]: ✖ el7 ✖ el8 ✖ el9 ✖ debian ✖ suse15. SL-JID 9062

@blueorangutan package

@vishesh92 a [SL] Jenkins job has been kicked to build packages. It will be bundled with  KVM, XenServer and VMware SystemVM templates. I'll keep you posted as I make progress.

Packaging result [SF]: ✖ el7 ✖ el8 ✖ el9 ✖ debian ✖ suse15. SL-JID 9078

Packaging result [SF]: ✖ el7 ✖ el8 ✖ el9 ✖ debian ✖ suse15. SL-JID 9103

@blueorangutan package

@vishesh92 a [SL] Jenkins job has been kicked to build packages. It will be bundled with  KVM, XenServer and VMware SystemVM templates. I'll keep you posted as I make progress.

Packaging result [SF]: ✖ el7 ✖ el8 ✖ el9 ✖ debian ✖ suse15. SL-JID 9111

@blueorangutan package

Packaging result [SF]: ✖ el7 ✖ el8 ✖ el9 ✖ debian ✖ suse15. SL-JID 9112

@blueorangutan package

@blueorangutan package

@vishesh92 a [SL] Jenkins job has been kicked to build packages. It will be bundled with  KVM, XenServer and VMware SystemVM templates. I'll keep you posted as I make progress.

@blueorangutan package

@vishesh92 a [SL] Jenkins job has been kicked to build packages. It will be bundled with  KVM, XenServer and VMware SystemVM templates. I'll keep you posted as I make progress.

Packaging result [SF]: ✔ el7 ✔ el8 ✔ el9 ✔ debian ✔ suse15. SL-JID 9119

@blueorangutan test

@vishesh92 a [SL] Trillian-Jenkins test job (centos7 mgmt + kvm-centos7) has been kicked to run smoke tests

[SF] Trillian test result (tid-9649)
Environment: kvm-centos7 (x2), Advanced Networking with Mgmt server 7
Total time taken: 49881 seconds
Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr8671-t9649-kvm-centos7.zip
Smoke tests completed. 129 look OK, 0 have errors, 0 did not run
Only failed and skipped tests results shown below:

Test
Result
Time (s)
Test File

@blueorangutan package

@vishesh92 a [SL] Jenkins job has been kicked to build packages. It will be bundled with  KVM, XenServer and VMware SystemVM templates. I'll keep you posted as I make progress.

Packaging result [SF]: ✔ el7 ✔ el8 ✔ el9 ✖ debian ✔ suse15. SL-JID 9717

[SF] Trillian test result (tid-10306)
Environment: kvm-centos7 (x2), Advanced Networking with Mgmt server 7
Total time taken: 46962 seconds
Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr8671-t10306-kvm-centos7.zip
Smoke tests completed. 131 look OK, 0 have errors, 0 did not run
Only failed and skipped tests results shown below:

Test
Result
Time (s)
Test File


django 1.8 support

Anyone wants to help out?

follow #107

I believed in Django 1.8 has django.contrib.postgres.fields.HStoreField internally.

@9gix it has but it doesn' have the same features and API of django-hstore, so we'll make a new release that is compatible with django 1.8 and then gradually wrap django's implementation and our additional features on it.

#107 is merged, please test and open new issues if you find any django 1.8 related bug


special non empty string config handler

add a check for non empty tags, which doesn't have a uniform case across.

Please remove all the things not related to the main topic of this PR.

No changes after 7 days. I close the PR.


Nexixpay flow

Type of Change

[ ] Bugfix
[x] New feature
[ ] Enhancement
[ ] Refactoring
[ ] Dependency updates
[ ] Documentation
[ ] CI/CD

Description

Additional Changes

[ ] This PR modifies the API contract
[ ] This PR modifies the database schema
[ ] This PR modifies application configuration/environment variables

Motivation and Context

How did you test it?

Checklist

[ ] I formatted the code cargo +nightly fmt --all
[ ] I addressed lints thrown by cargo clippy
[ ] I reviewed the submitted code
[ ] I added unit tests for my changes where possible

@mrudulvajpayee4935  Could you please remove additional comments in the PR which are added for debugging purpose.


Tech demo: USB endpoint struct messaging

how many tx/rx structs can be done at once? should they all be array style with sequence number and timestamp as the first two fields?

<IP_ADDRESS>.1 32 endpoints max, what kind of transfers make the most sense for this?


tests/storage-vm: Temporarily exclude local refresh on Btrfs

This is related to the bug https://github.com/canonical/lxd/issues/13085.

I have added https://github.com/canonical/lxd-ci/pull/104 to address the failing cluster suite.


Tiny change to take in account gtag.js?

Hi @duyet ,
Thanks for this repo, it's one of the most implemented (docker, helm...)!
I'm getting some troubles to make your proxy working and I would appreciate some help 😄
I'm using GA4 (Google Analytics 4) and my frontend plugin in Vue.js fetches the Google script from:
https://www.googletagmanager.com/gtag/js
I set:
GOOGLE_ORIGIN: "https://www.googletagmanager.com"
And used as resource URL www.mydomain.com/gtag/js. I saw the script being proxified but inside the URL were not replaced.
From what I see on
https://github.com/duyet/gaxy/blob/42db1406dd667bc98b90e9e958a42024bcb4d50e/server.go#L151-L155
I think the domain www.googletagmanager.com should be added.
I download the proxified script, modified manually and used a:
  <script async src="/ana.js?id=XXXXXXX"></script>
  <script>
    window.dataLayer = window.dataLayer || [];
    function gtag() { window.dataLayer.push(arguments); }
    gtag('js', new Date());

    gtag('config', 'XXXXXXX', {
      send_page_view: true
    });
  </script>

And I'm able to see in realtime the session in GA4. So I guess that's just this tiny change to do.
Could you please redeploy everything for this? Otherwise will manage my own Docker image.
Thank you 😄

Hi @sneko,
Thanks for your feedback. I just have added the Google Tag Manager domains. The new image has been released at https://github.com/duyet/gaxy/releases/tag/v0.1.2-beta.2.
Let me know if you have any more concerns :D.
Thanks,

@duyet unfortunately it seems there is an additional thing to change that I didn't see on friday (sorry about that).
When taking the script:
https://www.googletagmanager.com/gtag/js?id=G-XXX

(use your measurement ID so the script is fully filled)
You can find the line:
var a="www";XA&&WA&&(a=WA);return"https://"+a+".google-analytics.com/g/collect"

Which mean when the proxy will replace the domains the frontend will try in all cases to push on:
https://www.mysubdomain.mydomain.com/g/collect

In my cases I could make some workarounds so I have a certificate for the additional prefix "www" but it sounds weird since the original domain was: mysubdomain.mydomain.com (which is used to retrieved the script).
I guess we have to find a regex or a hard replace to have at the end only:
var a="www";XA&&WA&&(a=WA);return"https://mysubdomain.mydomain.com/g/collect"

(I tried to look at the WA variable, but didn't find a way to customize it from the outside, and also since there is the remaining "dot", it's stuck (https://"+a+".))

To sum up, I succeeded in making it working... I didn't make a PR because I feel it's a bit hacky to "route" the proxy request to the right Google domain with hard conditions.
But in case it can help understanding the issue, I'm replacing all those domains:
		find := []string{
			"\"+(a?a+\".\":\"\")+\"analytics.google.com",
			"ssl.google-analytics.com",
			"\"+a+\".google-analytics.com",
			"www.google-analytics.com",
			"google-analytics.com",
			"www.googletagmanager.com",
			"googletagmanager.com",
		}

(we are fine until the Google minifier will replace a by another variable, but very unlikely since it depends on the function variables number and their order)
And inside handleRequestAndRedirect() I just check if that's a "collect" endpoint from Google. If so, it's targeting their GA domain.
	// Trim prefix
	reqURI := string(c.Request().RequestURI())
	if config.RoutePrefix != "" && strings.HasPrefix(reqURI, config.RoutePrefix+"/") {
		reqURI = strings.TrimPrefix(reqURI, config.RoutePrefix)
		upstreamReq.SetRequestURI(reqURI)
	}

	// [WORKAROUND] To "easily" manage multiple Google domains, set this hard condition
	var targetOrigin string
	if strings.HasPrefix(reqURI, "/g/collect") {
		targetOrigin = "https://www.google-analytics.com"
	} else {
		targetOrigin = config.GoogleOrigin
	}

	// Overwrite
	url, _ := url.Parse(targetOrigin)
	upstreamReq.SetHost(url.Host)
	upstreamReq.URI().SetScheme(url.Scheme)

Once more, I'm not satisfied about this but it will help me moving forward. Curious to know your thoughts @duyet 😃
If someone wants to test please use the image sneko/gaxy:v0.1.2-beta.3 (additional v for the version haha sorry)


Bug: Can't query __type on type Query

After upgrading to apollo-android 1.1.3, when trying to generate classes I'm getting the following error:
Failed to parse GraphQL file /Users/myuser/android-app/app/src/main/graphql/types.graphql (2:4)
  Can't query `__type` on type `Query`
  ----------------------------------------------------
  [1]:query getNameTypesEnum {
  [2]:    __type(name: "NameTypes") {
  [3]:        nameTypeValues: enumValues {
  ----------------------------------------------------

The content of the file is the following:
query getNameTypesEnum {
    __type(name: "NameTypes") {
        nameTypeValues: enumValues {
            name
        }
    }
}

With Apollo 1.0.2 it was working fine it seems a regression from previous version.

Could you please check if you do have __type field on Query object in your schema?

I have just checked my schema.json and it doesn't seem I have any field called __typeunder Query fields

then it's a valid error, you are trying to request a field that doesn't exist. Either  your schema is not up to date, or query is wrong.

But this is the way to query all enum values. I’m doing this way on apollo-angular and Apollo-iOS, and it was working properly on Apollo-Android 1.0.2.
How am I supposed to query all enum values then?

Ic, so you are trying to run introspection query via Apollo, interesting.


Add Support for tvOS using Carthage

This allows to build iOS and tvOS Versions of the Framework using
carthage update --platform iOS,tvOS

Thank you Lutzifer! I will have a look at this tomorrow..


Node VCX Wrapper resolves path correctly in OSX

Apart from resolving proper postfix for the library file, I am also proposing to change expected directory for OSX to /usr/local/lib which seems as a more proper place for this kind of library, and also in order to to stay consistent with indysdk wrapper. IndySDK Nodejs wrapper expects libindy.dylib to be located at /usr/local/lib, see https://github.com/hyperledger/indy-sdk/blob/master/wrappers/nodejs/README.md
I guess this change will break someone's stuff! Maybe we should have both /usr/local/lib and /usr/lib for OSX?
And I am not sure about linux, but seems like the indysdk nodejs wrapper expects it to be in /usr/lib.
Didn't test on Windows, so not sure if it really works there.

Seems like I accidentally tried to merge to master myself.

@Patrik-Stas Thank you for the contribution!
However, it cannot be accepted without a sign-off from you about intellectual property.
Please see https://github.com/probot/dco#how-it-works and instruction about how to fix it: https://github.com/hyperledger/indy-sdk/blob/master/docs/contributors/signing-commits.md#how-to-sign-previous-commits
Could you sign your commit (first one) and update the PR?

@jovfer thank you, will do

@jovfer Signed off.


Make Swagger::parse() public

What do you think about making Swagger::parse() public to allow to merge several swagger definitions ?
This way we could call Swagger::parse() after the object initialization with another swagger definition and maybe even choose a merging strategy (override, only if not set/default, merge).

No, I want to keep the parse() method private. However, I like your idea of merging. In current master (I'm testing this locally at the moment and it looks good) it is already possible to merge all collections that this lib containts. For example:
$swagger = Swagger::fromFile('api.json');
$anotherSwagger = new Swagger($json);

$swagger->getDefinitions()->setAll($anotherSwagger->getDefinitions());

I'm not sure about individual properties yet, as they are set on a let's call it "per-project" basis (e.g. the info section). So it wouldn't make sense for me to provide a merge here.
What do you think? What would you need?

I wanted to merge several partial specifications (I wanted to generate the doc of an api with different libraries and then merge their output) but after investigating a bit more, I think you're right, they are too many edge cases so it should be better to have my own merger to do exactly what I want.
I close this PR as this is not the best thing to do :)
And your example looks good ! What about even renaming setAll to addAll or similar to be clearer ?
Thanks for taking care of this library !

For collections that are key-based (Maps) it is setAll for items (List) it is addAll at the moment. Similarly to their respective set and  add methods - dunno about it either, because it relates to the internal logic.
If you need more merge methods then open a PR, I'm happy to accept them since this is what I started with the collections stuff.

@gossi ok makes sense :)
I'll open a PR to show you what I'd like. This is a consequent change so there won't be all the changes needed but only some to see if you agree with my vision or not.


Bug in Keras Guide

URL(s) with the issue:
https://www.tensorflow.org/guide/keras#multiple_gpus
Description of issue (what needs changing):
The last line of this guide produces a bug when ran on the associated colab notebook (maybe everywhere, I haven't checked).
Raises listed and defined
---------------------------------------------------------------------------
InvalidArgumentError                      Traceback (most recent call last)
/usr/local/lib/python3.6/dist-packages/tensorflow/python/client/session.py in _do_call(self, fn, *args)
   1333     try:
-> 1334       return fn(*args)
   1335     except errors.OpError as e:

19 frames
InvalidArgumentError: No OpKernel was registered to support Op 'NcclAllReduce' used by {{node training/TFOptimizer/NcclAllReduce}}with these attrs: [reduction="sum", shared_name="c0", T=DT_FLOAT, num_devices=1]
Registered devices: [CPU, GPU, XLA_CPU, XLA_GPU]
Registered kernels:
  <no registered kernels>

	 [[{{node training/TFOptimizer/NcclAllReduce}}]]

During handling of the above exception, another exception occurred:

InvalidArgumentError                      Traceback (most recent call last)
/usr/local/lib/python3.6/dist-packages/tensorflow/python/client/session.py in _do_call(self, fn, *args)
   1346           pass
   1347       message = error_interpolation.interpolate(message, self._graph)
-> 1348       raise type(e)(node_def, op, message)
   1349
   1350   def _extend_graph(self):

InvalidArgumentError: No OpKernel was registered to support Op 'NcclAllReduce' used by node training/TFOptimizer/NcclAllReduce (defined at /usr/local/lib/python3.6/dist-packages/tensorflow_estimator/python/estimator/estimator.py:1254) with these attrs: [reduction="sum", shared_name="c0", T=DT_FLOAT, num_devices=1]
Registered devices: [CPU, GPU, XLA_CPU, XLA_GPU]
Registered kernels:
  <no registered kernels>

Are there currently visuals? If not, will it clarify the content?
Submit a pull request?
No, I'm only beginning in TF/Keras :)

@pouannes Thanks for trying TF Keras colab. I was able to execute the colab successfully as is. Are you changing any module version or parameter in the colab?

@pouannes Thanks for trying TF Keras colab. I was able to execute the colab successfully as is. Are you changing any module version or parameter in the colab?

I've checked again, the issue was that by habit I used a GPU in colab. Maybe it's not a bug anymore then? I don't really know, but you should be able to reproduce the exception by choosing a GPU as the hardware accelerator.

I see. You have to install TF-gpu to use gpu accelerator. Closing this issue since it's not a bug and works in colab (without hardware accelerator). Thanks!


support to get/set segment_leaderboard_opt_out on activities

Similar to https://github.com/strava/go.strava/issues/16
If/when the API supports it I don't mind making a PR for this library.
It doesn't look like the api supports getting/setting the new segment_leaderboard_opt_out attribute on activities. Do you know if/when support for that will be added?
I found the name by looking at what the front end does, when it PUTs to https://www.strava.com/athlete/training_activities/xxxxxxxx

Good question! - Yeah, typically the API supports it when they decide they want to implement it in their mobile apps.   I don't know if they really have a roadmap for improvements to their API.  I know the changes often catch us by surprise, though maybe I'm just not subscribed to the right mailing list to get notified of those :)

Thanks, the mobile app seems to support it (at least iOS does) I haven't gone as far as trying to sniff the network traffic to work out what's going on...

I think this is supported by strava now.


AWS Elasticache

I wanted to run this by you all first before I setup create the branch and submit the pull-request.
I will implement the following

add a Elasticache flag to the HashClient

dynamically identify the nodes and set them accordingly.
add the Jenkins hashing function - Elasticache uses Jenkins by Default, but they also make murmur3 available

Perhaps it would make more sense to inherit from the HashClient Class and create a new one called "ElasticacheClient".
What are your thoughts?

I think I prefer the separate ElasticacheClient approach.

I'm closing this given that the issue is primarily a question and the next step would be to discuss a proposed pull request.


Add timestamp to comment

As seen above, the comment should have a human-readable timestamp beneath the username.
The timestamp will have to be stored in the metadata so the IComment type will have to be amended.

Resolved in #21