Safari Never Auto-Play setting causes long delay ending in fileerror with no information.

Issue Details

Version used: 1.0.0

Describe whats happening:
If desktop Safari is set to Never Auto-Play, after registering a sound, there is a several second delay, and then a fileerror event. The event doesn't contain any info to determine that this setting was the cause.

Example
<!DOCTYPE html>

<html lang="en">
  <head>
    <meta charset="utf-8" />
    <title>Sound JS Test</title>
    <script src="https://code.createjs.com/1.0.0/soundjs.min.js"></script>
  </head>

  <body onload="setup()">
    <script>
      function setup() {
        console.log("setup");
        createjs.Sound.registerPlugins([createjs.HTMLAudioPlugin]);
      }

      function playSound() {
        console.log("playSound");

        createjs.Sound.on("fileload", function (result) {
          console.log("fileload", result);
          createjs.Sound.play("tone");
        });

        createjs.Sound.on("fileerror", function (error) {
          console.log("fileerror", error);
        });

        createjs.Sound.registerSound("audio/tone.mp3", "tone");
      }
    </script>

    <button onclick="playSound()">Play Sound</button>
  </body>
</html>

Resulting logs:
[Log] setup (sound-js, line 13)
[Log] playSound (sound-js, line 18)
[Log] fileerror (sound-js, line 24)

Event
  bubbles: false
  cancelable: false
  currentTarget: function()
  data: 100
  defaultPrevented: false
  eventPhase: 2
  id: "tone"
  immediatePropagationStopped: false
  propagationStopped: false
  removed: false
  sprite: undefined
  src: "audio/tone.mp3"
  target: function()
  timeStamp:<PHONE_NUMBER>722
  type: "fileerror"
  Event Prototype

OS & Browser version
Safari Version 14.0.3 (166<IP_ADDRESS>.4)

Do you know of any workarounds?
Interestingly, if createjs.Sound.play("tone"); is called within the fileerror callback, the sounds still plays?! However, this is a ridiculous hack which breaks any other attempts at actually handling errors.

How can I react and or work around the Never Auto-Play setting in desktop Safari?

Will take a look.. I have not used registerSound directly... as I use PreloadJS for sounds - maybe PreloadJS uses registerSound in the background.  Anyway - as a temporary fix, perhaps try PreloadJS for the sounds?  It would be interesting to know if that works for you - as it is working for us.  Or, I would recommend that you contact Apple and have them fix their sound.... okay... hahaha - teasing.  Will do a little digging and if anyone else reading this has a thought, please pitch in.  @curiousdustin - fyi, this is early in a community based help movement called loosely the CreateJS Consortium ;-).  We have just been given access to make changes and are carefully approaching issues.

Thank you for the suggestion, however, I do not wish to preload sounds as my use case is streaming longer audio files. Which is also why I am using HTMLAudioPlugin.

@curiousdustin - just tested your code and it works on my Macbook AIR OS Sierra (10.12.6) with Safari 10.1.2.  Is there a way that you might test on another computer and see how it does there?  Also, try another sound just to make sure.  I will wait to hear back and then could try upgrading my Mac.  Cheers.

Per original description I see this issue in: Safari Version 14.0.3 (166<IP_ADDRESS>.4)

Yes - I know - I am on an older version.  Do you have another computer to check on - or with a colleague.  And, have you tried a different sound with your set-up.   Or perhaps test my file here: https://zimjs.com/test/soundsafari.html  Does it work in Safari for you?  If not, I guess, I will update my Mac and test further.

Trying your test in Safari 14 results in the same error I get on my test.
No sound is played, and fileerror is reported after several second delay.

Okay - well that is seeming like there might have been a change in how Safari is handling things.  I just hesitated to update my Safari because knowing Apple... I will probably have to update my OS... and that will mean I have to replace my computer.  But... I will go update it and let you know what happens and then start digging - probably something like they stopped supporting HTML Audio or whatever the plugin works with.  Wish me luck.

Torture!  25 minutes of constantly being thwarted as I try and update Safari - I think I have to update the OS.  So I look for Catalina and can't figure out how to get it... it is not in the app store, it is not in the system updates, etc. I think it is because they are toting Big Sur how... so gave up and am downloading Big Sur...

@curiousdustin - okay - went to Big Sur with Safari 14.03 - it plays but I realize now, I forgot to check the Never Auto-Play option.  Sigh... would have been nice to know if the older Safari had the same issue.   Anyway - yes... with Never Auto-Play I get no sound playing after pressing the button.  Looking into it.

@curiousdustin Hi Dustin - could you try using this version of CreateJS for your test and see if it works for you: zimjs.com/cdn/1.3.2/createjs_doc_sound.js
The CreateJS SoundJS is complex - like 7 levels of abstraction with register(), preload(), load(), etc. happening in many of them... it seems to all go back through Sound, HMTLAudioPlugin, AbstractPlugin, AbstractMediaLoader, AbstractLoader, SoundLoader to Loader which is really complex.
So... instead of going to the root of it, we are testing for Safari and HTMLAudioPlugin and polling if the sound is ready based on if the playState != "playFailed". When it is ready, it plays... but we want to dispatch an event.  For some reason it once it plays, we can't play it again right away consistently... a few times my mac says it is playing but I can't hear it and it only resets when I restart - ARRRGGG Apple.  So anyway... at the moment it has a timeout of 150 ms before playing (after it was ready to play) - it would be nice to remove that and we should be able to - but just for now, is it working for you with the changes in the zimjs.com/cdn/1.3.2/createjs_doc_sound.js file?
Here is our test file https://zimjs.com/test/soundsafari.html

@danzen, that does work in my simple test. I will try to test it in my main app soon, and let you know.

Actually, how can I compare the version you provided with the official version I was using? They have different formatting, so I can't just do a diff compare.

I guess what I am getting at... is this new version likely to break things in other browsers? Are the changes fairly minimal? I want to view the changes so I can understand the possible consequences.

Understandable - I am just getting used to CreateJS on GitHub here... so there is probably a way that I can set up a fork to try with existing code and merge it in once tested... I am just new at all that stuff.  So for now, here is what I added to the Sound class under registerSound()
// this replaces:
// loader.on("complete", this._handleLoadComplete, this);
// loader.on("error", this._handleLoadError, this);

var pollSound = false;
if (s.activePlugin.toString()=="[HTMLAudioPlugin]") {
    var ua = navigator.userAgent.toLowerCase();
    if (ua.indexOf('safari') != -1) {
        if (ua.indexOf('chrome') == -1) {
            pollSound = true;
        }
    }
}
if (pollSound) {
    // poll here for Safari sound and call complete or error
    var tries = 0;
    var interval = 50;
    var num = (loadItem.loadTimeout||8000)/interval;
    // events expect a target.getItem() that has a src property of the sound
    var event = {target:{getItem:function(){return loadItem;}}};

    function testSound() {
        tries++;
        var cjss=createjs.Sound.play(loadItem.id, {volume:0});
        if (cjss && cjss.playState != "playFailed") {
            clearInterval(inter);
            cjss.stop();
            // the sound actually plays here if we let it... but want to dispatch event
            // can't seem to replay the sound right away on dispatch - what the heck apple?
            setTimeout(function () {
                s._handleLoadComplete(event);
            }, 150); // 50 won't work - sigh...
        } else {
            if (tries > num) this._handleLoadError(event);
        }
    }
    var inter = setInterval(testSound,interval);
    testSound(); // also test right away

} else { // original event code

    loader.on("complete", this._handleLoadComplete, this);
    loader.on("error", this._handleLoadError, this);

}

ok, so... that DOES work in the simple test playing a simple sound.
However, my use case is to stream larger audio files such as podcasts and such.
When I try within my actual project with actual audio files, this fails.
If I increase the 150 timeout to around 300 it works again. This makes me very think that this delay would be different from machine to machine and audio file to audio file...
I am reluctant to call this a solution.

Another thing about this fix is it appears to cause issues with the removeSound(id) method.
p.removeSound = function (src) {
		if (!this._soundInstances[src]) { return; }
		for (var i = this._soundInstances[src].length; i--; ) {
			var item = this._soundInstances[src][i];
            // Error! item is sometimes null
            item.destroy();
		}
		delete(this._soundInstances[src]);
		delete(this._audioSources[src]);
		if(this._loaders[src]) { this._loaders[src].destroy(); }
		delete(this._loaders[src]);
	};

@curiousdustin, did you get a chance to try these out... any thoughts?

After some testing, it works, but... it doesn't.
The delay needed to make it work seems to be different for every file I try.
And then, how do I know the delay will work on various machines? Will a poor performance machine require a longer delay?
Just seems like an unusable solution to me. I could use some insane delay like 2000ms, and maybe it would be... fine. But at the same time punishing all my users who have not selected this Never Auto Play setting?
A convoluted alternative I came up with, but still not happy with is based on your solution:

After some testing, it works, but... it doesn't.
The delay needed to make it work seems to be different for every file I try.
And then, how do I know the delay will work on various machines? Will a poor performance machine require a longer delay?
Just seems like an unusable solution to me. I could use some insane delay like 2000ms, and maybe it would be... fine. But at the same time punishing all my users who have not selected this Never Auto Play setting?
A convoluted alternative I came up with, but still not happy with is based on your solution:

Instead of a delay, add an argument such as autoPlayOnSafari
In testSound, if this argument is true, let the sound play instead of stopping it.

Issues:

Since, registerSound isn't really meant to play a sound, the play in testSound doesn't automatically get the various props that would normally come from the play call.
I also need the instance of the sound, so that would need to be passed in the fileload event.

Like I said, convoluted, and I don't like it either...
Maybe there is some sort of approach related to this idea, allowing the sound to "auto play" on load?

Hey @curiousdustin sorry for the delay - missed the response.  I certainly see what you mean and am never happy with a polling solution especially when there are users that will not need it and we can't seem to tell.  Somehow I only seem to get in these binds with Apple.
What is frustrating is that the sound plays in the load test.  We can capture that it plays.  Yet when we stop it and try and play it again it will not play.  Arrrg.
Your idea would at least get a sound playing. What would happen if we just paused the sound?  Perhaps we can pass in a config object https://createjs.com/docs/soundjs/classes/PlayPropsConfig.html for the autoPlayOnSafari.
What is going on with the interaction though... don't we still have to interact first before the sound will play?
Anyway - will await your thoughts then see if we can code something.  If you have a start, you are welcome to send it along.  Cheers.


UI Enhancement #7

Made the following UI improvements:

Revamped the buttons to make them more appealing
Added a scroll functionality such that clicking on the "Get Started" button scrolls you directly to the form
Used more colors on the site
Screenshots:

Good Job man.

Glad you like it!


Update embeddings

Reviewer: @amiraliemami
Estimate: 1h

Ticket
Fixes: JIRA_TICKET_LINK
Description
Goal
We decided to switch to  text-embedding-inference. This PR will replace our custom FastAPI embeddings app text-embedding-inference.
Changes

Create a make function to start local embeddings.

Added an option for arm architecture devices (which requires a different approach to deployment.

Updated docker compose with new embeddings
To test :
Set PGVECTOR_VECTOR_SIZE to 1024
Modify litellm_proxy.yamlto use the huggingface embeddings instead of openai embeddings
Set  HUGGINGFACE_API_KEY, HUGGINGFACE_MODEL  and EMBEDDINGS_ENDPOINT on environment or on .env file (can use example on template.env)
If you are testing on an arm device: run make build-embeddings-arm
Run docker compose

How has this been tested?

Ran the local embeddings in dev mode
Ran local embedding on docker compose

Checklist
Fill with x for completed.

[x] My code follows the style guidelines of this project
[x] I have reviewed my own code to ensure good quality
[x] I have tested the functionality of my code to ensure it works as intended
[x] I have resolved merge conflicts

(Delete any items below that are not relevant)

[ ] I have updated the automated tests
[ ] I have updated the scripts in scripts/
[ ] I have updated the requirements
[ ] I have updated the README file
[ ] I have updated affected documentation
[ ] I have added a blogpost in Latest Updates
[ ] I have updated the CI/CD scripts in .github/workflows/
[ ] I have updated the Terraform code

because

I suggested we add documentation in a different PR. Because this is a blocker for MomConnect repo. If that works, if things work well can you approve so I can merge?
About the complexity, it is due to the fact that I wanted to streamline local deployment. If we only want the logic to deploy on an instance it can be quite straightforward. But I am not sure we want to do that. We can discuss that.


SD 2019 #38

#38

Pull Request Test Coverage Report for Build 191

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 66.205%

Totals

Change from base Build 188:
0.0%

Covered Lines:
909

Relevant Lines:
1373

💛  - Coveralls


What‘s the difference between llm-awq and this？

Hi，What‘s the difference between llm-awq and autoawq？thanks in advance！！！

llm-awq was the original research artifact and has not been maintained. AutoAWQ is the easy way to run the AWQ algorithm on transformer models and is integrated with Huggingface's transformers. You can also use vLLM for easy inference as it is directly compatible with AutoAWQ.

hi，when I use the LLAMA3-8b-Instruct-AWQ-INT4 model to inference，the time is much slower than FP16 when I used in A6000. Can u help me to solve this？the time of FP16 is 0.03token/s, the time of AWQ-INT4 is 0.43token/s, the code is as follows:
from transformers import AutoTokenizer, AutoModelForCausalLM
import torch
#MALI
import time
from transformers import LlamaForCausalLM, LlamaConfig
model_dir= r'/extra_data/llama/Meta-Llama-3.1-8B-Instruct-AWQ-INT4'
device = 'cuda'
tokenizer = AutoTokenizer.from_pretrained(model_dir)
model = AutoModelForCausalLM.from_pretrained(model_dir, torch_dtype=torch.float16, device_map=device)
while 1:
print(f'Enter a prompt to generate a response:')
prompt = input()
messages = [
{'role': 'system', 'content': 'aaa'},
{'role': 'user', 'content': prompt}
]
text = tokenizer.apply_chat_template(
    messages,
    tokenize=False,
    add_generation_prompt=True
)

model_input = tokenizer([text], return_tensors='pt').to(device)
attention_mask = torch.ones(model_input.input_ids.shape, dtype=torch.long, device=device)
start_time = time.time()

generated_ids = model.generate(
    model_input.input_ids,
    max_new_tokens=512,
    attention_mask=attention_mask,
    pad_token_id=tokenizer.eos_token_id,
)

generated_ids = [output_ids[len(input_ids):] for input_ids, output_ids in zip(model_input.input_ids, generated_ids)]

response = tokenizer.batch_decode(generated_ids, skip_special_tokens=True)[0]

end_time = time.time()
per_token_time = (end_time - start_time)/len(generated_ids[0])
print(f"单个token耗时: {per_token_time:.6f}秒")

print(f'{response} \n')


Very long I ams

Look a bit weird in mobile website

Resolved in the new theme

Resolved in the new theme


Click event not firing server side

Hello! I'm new to GoLive but I'm really excited about this project! I've ran the examples and I've tried to create my own from the start to get familiar but I'm struggling to get a simple button click event to fire on the server side.
I have the following HTML:
<button go-live-click="HandleUp">+</button>

And on the server I have this but the Println() doesn't seem to fire.
func (t *Thermostat) HandleUp() {
	fmt.Println("UP")
	t.Temperature = 50
}

I would really appreciate any help!

Hi! Thank you opening this issue!
I had to iterate again and it took me a bit of time.
One of the first things I would say for you to be aware of is that the component needs to have a single dom element at the root of the render.
If this is not the problem, could you provide me with a repository with the reproduction?

That was the issue! Is there any way golive could give me an informative error I could have discovered how to fix this myself?

Surely the library could warn this at runtime. I've been working lately on a version to support composition and will already add this warning on first run
Thank you very much for the feedback!!


globalization: add Polish translation

Added Polish language.

Thank you! Could you please, also add following at the top of i18n.js file:
import plTranslation from './locales/pl.json';

and to resources:
pl: { translation: plTranslation },

I know it's very inconvenient to add the repetitve lines couple times and I think I should come up with a more efficient way to let i18next know where to get translations from, but for now there are very few languages so I left it like that 😄

Done. 👌

Thank you! And especially for good pr naming :)


MODE-1660: Shell example

Not for merging yet

@okulikov, what is the objective of the example program? I realize it's incomplete, but do we really want an example and its configuration files in the modeshape-shell module?

@rhauch , do you mean modeshape-shell module in example git repository? Probably it is not good name for example, should be modeshape-shell-example. The purpose is to demonstrate how to incorporate shell and allow to try it. Example builds application with the following directory structure:

bin for OS shell scripts;
-lib for modeshape jars;
-conf for config files

There are two OS shell scripts:

run.sh it starts repository and waits for infinite;
-console.sh it starts modeshape-shell console;

The sequence is as follows:

build the applications mvn clean install;
switch to the application root folder cd target\modeshape-shell;
-start repository bin/run.sh;
-start console bin/console.sh;
-execute shell commands (browse, create, modify, remove node, change properties, upload/download binaries, backup/restore, etc).

What would be interested in my opinion for this example is to show how to use the power of OS shell for preparing complex scripts.

@okulikov, I understand that its in the example repository, but I guess I wasn't aware that other applications would embed the shell. Instead, I thought a user would simply run one of the other examples and be able to run the standard shell (which presumably will be an artifact of the build process) to interact with the existing repository.

What would be interested in my opinion for this example is to show how to use the power of OS shell for preparing complex scripts.

I completely agree. So for this I could see an example in this repository that had one complex (or several minor) scripts that could be applied to a repository.

@rhauch you are actually right with

I thought a user would simply run one of the other examples and be able to run the standard shell (which presumably will be an artifact of the build process) to interact with the existing repository.

I just decided to isolate it into dedicated sample. The basis is embedded repository example and everything else just configuration and build process, plus demo shell scripts

@okulikov IMO, we need documentation that describes how a user will use the actual released shell. An example could have a repo pre-configured so they can just start using the shell with it. But I don't understand why this example would be anything but another example repository.

@rhauch , @hchiorean since shell is not completed yet this example allows us to find out in details how released shell will be used by the user. So let's try to identify what is good and what is bad with the shell looking into this sample.

@okulikov, @rhauch: I also don't understand what the purpose of this example is :smile:
The console should have 2 parts:

the "server" part which facilitates interaction with the repository (which is what https://github.com/ModeShape/modeshape/pull/1538 is for)
the "client" part which contains the console shell (command line) and other client-related code which will be a separate project

(1) should not have any client-facing documentation while (2) should have client-facing documentation but not in the form of code, but Confluence style documentation (similar to the the documentation for Wildfly's console for example).
modeshape-examples is supposed to be for examples which use the repository by embedding it and IMO the console should never be used like that.

@hchiorean , @rhauch , Let's keep this PR open at least for our development purposes and close it it if we will decide that it shouldn't exist. For now I am using it to play with console features and and for better understanding how it should work.
@hchiorean , @rhauch "client" is a one class project in this case. So what is better:

create one class project modeshape-console;
merge server and client classes in one project ?

I vote for having a separate project, even if it will only initially have one class. In addition it will probably have its Maven build, some scripts perhaps ?

I vote for merging. I just can't imagine what kind of other classes except console itself will be here in feature.

@rhauch ?

@okulikov, I agree with Horia that this is not the appropriate place for experimentation. If the plan is to provide the server-side functionality inside ModeShape, then let's do that and experiment there.
Yes, modeshape-console might have just one Java class in the module, but there will certainly be other files (e.g., scripts, starter config file, log file, etc.) that the module has to include in its ZIP artifact that contains client installation. Plus the module's POM is the best place to specify how Maven is to produce the ZIP artifact. Even if the JAR is a runnable JAR (which IMO would be good), I like your suggestion of having scripts that hide the ugliness of the Java executable command.
It is important that the client-side tool contain only the JARs and Java classes required for running the client. Even if the client requires some of the same JARs as used on the server (e.g., perhaps modeshape-common), they should be utilities and should not affect how the client communicates. Specifically, the client and server should not share any code, such as classes that prescribe the messaging; we should plan for the console to be able to talk to multiple versions of ModeShape.

@rhauch , @hchiorean I see your point.

@rhauch, @okulikov : so can this be closed and the actual code moved to a separate repo ? (which most likely needs to be created first)

@hchiorean, the client could go in a separate repo or could be just another module with new artifact in the main repo. The server functionality should go in the main repo, tho. Yes?

@hchiorean , closing this PR

@rhauch: yes


windows icon and title

Currently the icon in the top right corner is the love2d icon, and the title says 'Untitled'.
Can change the icon using
imageData = love.image.newImageData( "filename.png" )
success = love.window.setIcon( imageData )

Need a 32x32 image to become the windows icon.
and can change the title using
love.window.setTitle( "Silly Sam" )

I've just added a placeholder image to see how it loads and added the title. Leaving this open until one of the artists supplies an image that replaces the placeholder.

replaced old window_icon with my own. lemme know if you need anything else for this

Reopening since the windows icon is still the old sam art.


Wrap captured exceptions in a PyeeError

In #94 we noted that when an error is captured in the AsyncIOEventEmitter, it can be tough to debug due to losing the context in which the handler was called.
One way to address this may be to create a wrapper exception type which includes the event name, args and kwargs the event handler was called with. This is, as far as I know, not something Node.js does, and it's a real weakness with the abstraction! But this approach is somewhat similar to twisted's Failures and pyee will sometimes raise PyeeExceptions today so it's not too much of a stretch.
I've been wanting to rename PyeeException to PyeeError for some time, and this seems like a good opportunity to introduce that interface by inheriting from PyeeException and adding contextually meaningful metadata to error subclasses.

Unfortunately, as noted in #143, a naive raise PyeeError(...) from exc doesn't help matters. That said, the filer in #94 suggested attaching the function, args and kwargs to the error as context - that's still an option.

I was able to refactor #143 to, in certain cases, carry the context suggested in #94. It's heavily dependent on doing error handling in the handler code - when we catch the exception, wrap it in an UnhandledError with the attached context - but where that's possible, it seems to work.
I'm not entirely happy with that implementation:

it's pretty inconsistent - base EventEmitters and TwistedEventEmitters can't pass context this way and manually emitted error events can't take advantage of it in general
it's a massive breaking change to the error handling code - you'd now have to catch an UnhandledError instead of the original exception
I'm not sure UnhandledError is the right semantics. Are the errors really unhandled?

Even so, it's a proof-of-concept.

After some thought, I'm going to close this issue. It's not a bad idea, but having all errors wrapped in a special error type is a pretty bitter pill to swallow. It might be worthwhile if I could wrap ALL errors and guarantee the context is carried over, but between the warts with the EventEmitter API and the weird asyncio behavior, I think it's better to leave it as-is.
Some additional thoughts in this Twitter thread:
https://twitter.com/jfhbrook/status/1727783221075792056
Ultimately, I just think this is something that's a practical limitation of the EventEmitter API. I feel like if you want everything to feel buttery smooth, you should probably be using a different abstraction, like channels.


README.md is reporting FAILED

Not so much a bug, but the README.md is reporting FAILED.  Does this mean this package is not safe to use at this time due to some security or build concern?

Hi @alfreema - this a relic left behind that we haven't gotten back to eliminate. We no longer make use of Circle CI and haven't eliminated the badge from all of our repos. This module is still tested using the internal mocha tests and dependencies are kept up to date. So despite to badge, the module is safe and available for use.
Cheers,
Bob

No, it's just that we are no longer using circleci, but of course this is messy, so it makes sense for us to fix this to use github CI actions. Issue should stay open.

Maybe in the meantime, you should just remove or comment out line 3 of your README.md?


fix: subpath imports issue

Hi @aleclarson
I'm having the same issue in https://github.com/aleclarson/vite-tsconfig-paths/issues/141 If I add both imports in package.json and paths in tsconfig.json, it works but my LSP breaks for whatever reason, so shooting my shot at adding a workaround for this issue. What do you think? Appreciate any help, also let me know if there's any official fix unrelated to this package

Hi @aleclarson

Although there are some hiccups but yes https://devblogs.microsoft.com/typescript/announcing-typescript-5-4/#auto-import-support-for-subpath-imports
It seems to work with .ts files but not .tsx https://github.com/fcasibu/vitest-issue-react

2. It seems to work with .ts files but not .tsx

The problem in your repro is not the extension. It's your use of an array, which is not spec-compliant according to Vite maintainers.

Thanks @aleclarson will look into them

If you want to continue work on this, let me know and I'll reopen.


ci: test napi in buildkite too

Is that enough?
How to make sure this runs NAPI from the logs?

If you enable "DEBUG=*" it should log out weather it's using NAPI or not

It worked ✅


removed check for last dask chunk size in to_zarr

When storing a dask-chunked dataset to zarr, the size of the last chunk
in each dimension does not matter, as this single last chunk will be
written to any number of zarr chunks, but none of the zarr chunks which
are being written to will be accessed by any other dask chunk.

[x] Closes #6255
[x] Tests added
[x] User visible changes (including notable bug fixes) are documented in whats-new.rst

cc'ing @rabernat who seems to have worked on this lately.

Thanks for working on this Tobias! Yes I implemented much of the Dask / Zarr interface and would be happy to review when you're ready.

Thanks Ryan for having a look into this.
Accidentally I didn't run enough of the tests locally before submitting the PR. I've now checked the failing tests and came to the conclusion that the previously existing tests had been overly restrictive and rewrote them to reflect more closely what I believe that we actually want.

came to the conclusion that the previously existing tests had been overly restrictive

Sounds very likely!

Indeed, those variable names have been quite unfortunate! I've changed them to goodenc.
Thanks again for the review.


[Feature] Let me keep some notes for Hunters I have played with

I would love to be able to add notes to Hunters, maybe even a rating or something like thumbs-up, thumbs-down. Depending on your region and MMR bracket you may meet people again often, and it would be helpful to have some insight into how people behaved the last match.
 On the flip side, if I had some great interaction I also would like to be able to remember.
Now obviously a problem is when Hunters use different names, but that's a limitation currently already in place and I don't think there's much we can do about it, it will just appear as a different Hunter then. Nevermind I see you keep track of the steam profileid.

There's many things one could do here, but for a minimal feature request I'd want:

to be able to add/edit/remove notes in textform to each Hunter that I have played with.

Let me know your thoughts. I would be willing to implement it and provide a PR, if you want. Love the tool by the way, the MMR chart is a killer feature!

I had been thinking about something similar!
I think that'd be pretty easy to implement, I'm imagining it'd just have to be a new database column in the hunters table that can be appended

I love this idea. Thanks @majikat768

That's a good question, the way it's set up currently it'd probably only query the last N hunts...something I was thinking about with the limit though is having a separate tab that can show "career" stats, information like KDA and hunters from all recorded hunts, and have it update less frequently.  So I could probably do something similar with looking up hunters.


Refactor the codebase to use the OpenFF toolkit

Description
This is the main PR which tracks the conversion of the codebase to use the OpenFF toolkit, rather than OE directly. The conversion will happen over several PRs so that the changes being made can be tracked more cleanly.
The discussed way forward for this is to identify which parts of the codebase are necessary to downstream dependencies and only convert those portions over. All other parts of the codebase will then be removed. Currently it seems like the WBOFragmenter and PfizerFragmenter classes and all of the methods they call are the ones to retrain.
Possible Behaviour Changes

The code produced by the updated find_torsion_around_bond (and hence to_torsiondrive_json which is the only function which uses it) is not guaranteed to return the same result after the refactor. See #77 for details.

While the toolkit should give very similar WBOs to the pure OE approach this may not be guaranteed in all cases - it seems that the older versions of OE will produce slightly different WBOs for the same input conformer when computing them using a newer OE version but the same input conformer. See #80 for details.

The number of conformers generated by the chemi.generate_conformers function may be less after the refactor. It seems that setting omega.SetCanonOrder(True) (old behaviour) will lead to more conformers than setting it to false (OpenFF toolkit behaviour). See #80 for this change.

Ortho groups are now detected using SMARTS matching approach. While care was taken to try and ensure that the two approaches are equivalent, the implementations are different enough that subtle differences may have creeped in. See #83.

When expanding fragments to include the functional groups an atom is in all functional groups the atom appears in are now considered. Previously only the last group and atom assigned to would be considered given that only a single 'fgroup' could be stored in that atoms data. See #84, #88 and #91.

The WBOFragmenter._build_fragment and child methods were pretty substantially rewritten which may lead to operations being performed and new atoms to be considered in slightly different orders leading to different fragments. See #88.

The OE code which extract the fragment molecule from the parent based on a set of atom and bond indices was modified to include hydrogens which are bound to atoms to include in the substructure search. This is so that those in the final fragment will retain their map indices which should be more helpful and will also more closely match of the output of the RDKit implementation. See #89.

The indexing of some rings may change after #90 when using OpenEye due to differences in how the OpenFF toolkit canonically orders OE molecules.

Questions

[ ] RDKit does not currently treat pyramidal nitrogens as stereogenic while OE does which will lead to to the two toolkits expecting / generating different stereoisomers. Will this cause issues when fragmenting? (see also #76)

Notes

While care has been taken to ensure that the code which builds a fragment molecule from a parent molecule and a set of atom and bond subset indices it is possible that the RDKit and OE approaches (#89) may yield different fragment molecules depending on how they perceive atom valences. This has not yet been observed in the small set of unit tests, but may manifest itself when moving to the regression molecule set.

Status

[ ] Ready to go

I've added Josh Horton, Lily Wang, and myself as non-blocking reviewers on this. Each of us interacts with fragmenter in a different way, so this may be a nice place to provide input.
@SimonBoothroyd, unless otherwise stated, I don't think anything we say in blocking, though this may be a good chance to provide feedback before features/scope are set in stone. Let us know if you have a "merge-by" date in mind so we can provide feedback in a reasonable amount of time.

Ok I have finished making the changes that I would like to make and this PR is now ready for regression testing (cc @jthorton)
@j-wags, @mattwthompson, and @lilyminium if you would like to review this then could you please provide any further feedback before the end of this week?

Sorry, it looks like I won't have time to give this a useful review by the deadline.

Same. Thanks @SimonBoothroyd for looping me in on the timeline, and to @lilyminium for combing through and doing a great review! Looking forward to trying this out after the release.

Thank you @lilyminium for the thorough and thoughtful review - I think I've made most of the changes you recommended!

Unless either @j-wags or @ChayaSt have any objections I will merge this into master first thing tomorrow morning (GMT) to save this PR from growing even larger.

No objections from me. Thanks for spearheading this!


mjml-core miss babel-runtime dep

The mjml-core module doesn’t work as a standalone module. It errors on import.
Use case: The main mjml module brings in a ton of dependencies that we don’t want (including mjml-cli which brings in the somewhat problematic fsevents via chokidar). We just need the mjml2html() function so I hoped to get that from mjml-core.
Reproduction Steps:
$ npm i mjml-core
   [ …usual install output… ]
$ node
> var mjmlCore = require('mjml-core');
Error: Cannot find module 'babel-runtime/helpers/toConsumableArray'
    at Function.Module._resolveFilename (module.js:538:15)
    at Function.Module._load (module.js:468:25)
    at Module.require (module.js:587:17)
    at require (internal/module.js:11:18)

MJML version:
4.0.0
Node: 8.9.4
NPM: 5.6.0

hi @iRyusa
I have added babel-runtime (6.26.0), now I'm getting this error:
events.js:160
      throw er; // Unhandled 'error' event
      ^
Error: Error in file /xxx/xxx.mjml: Cannot read property 'mj-container' of undefined

Really weird error considering that mj-container doesn't exist anymore, can you try to reinstall or provide the template to reproduce?

I'm using mjml-core in my own package (https://github.com/matass/swu-mjml). so I'll try to make fresh mjml app and compile some templates

Looks like a dep issue in your project, you're using mjml-core 4.0 + gulp-mjml (MJML3.0 dep).
Note that gulp-mjml isn't up to date with MJML4

Ok, thanks. I think I have to rollback to previous mjml-core version. Do You have any plans to make mjml-4 compatible with gulp-mjml?

Here https://github.com/mjmlio/gulp-mjml/issues/34 but we're focusing on MJML4 fixes before.

Hi @natesilva this has been fixed in the new release mjml4.2-beta, which you can install with npm install mjml, you can check if it solves the problem

Thank you. It works.


WIP: Cohort Tracker for Segment for WhatsApp

Adds cohort tracker to tell segment when whatsapp button is displayed

tracking event being sent to segment looks like this -->
{"experiment":"whatsAppShare","variationname":"cohort1","user_sighash":"xxxx", user_signonid: xxxx}
user_sighash, usersignonid, experiment and variationnname will appear as columns in the segment table


db_blobs_* entries in instance.yaml like db_blobs_location are not deprecated but seem to be broken

From the Changelog:

Fix: Introduce consistent naming of all db_blob_* and deprecate all db_blobs_*. [@jensens, 2024-07-01]

In my local setup, I see that db_blobs_location is now ignored and the default path to the blobs is used.  With deprecated I assume the entries still work but throw a warning that they will be removed in a later version.
@jensens Was this your intention and is deprecated the wrong name, or should the db_blobs_* still work in version 2.1.1 and this this a bug?

It's should work, but emit a warning. So: bug


add more node options for grid auto-register

This pull request adds selenium grid node options support to selendroid grid auto-register.
These help to improve the selendroid scaling and high availability.
The default option value for these options are configured to fit selenium-server default ones with exception of browserTimeout.
I put the default browserTimeout value should be equal to sessionTimeoutSeconds, its default value is 30min.

I have pushed additional commit.
This correct number of maxInstances and maxSession for grid auto-register.
With current implementation of selendroid, it seems impossible to run multiple tests on single device at a time, so maxInstance should be 1 and putting number of devices into maxSession is preferable.
This will keep selendroid behavior of existing these options because this changes only their default values.

For @lukeis comment, I added description about -maxSession default value.

thanks!


Write a Scala program to convert string to snakecase

Description
Write a Scala program to convert string to snakecase
Snakecase is a style of writing in which all letters are lowercase and spaces are replaced with underscores.
Input  : "hello world"
Output : "hello_world"

How to contribute

Save the solution in program/convertStringToSnakecase.scala file
Add convertStringToSnakecase.scala file in convert-string-to-snakecase folder

!assign


[TSLA-7211] CC: Add release note for new installation version 19.4.1

Product Version(s):
Calico Cloud

Issue:
https://tigera.atlassian.net/browse/TSLA-7211

Link to docs preview:

SME review:

[ ] An SME has approved this change.

DOCS review:

[ ] A member of the docs team has approved this change.

Additional information:

Merge checklist:

[ ] Deploy preview inspected wherever changes were made
[ ] Build completed successfully
[ ] Test have passed

LGTM!


[Request] Add Homekit Secure Video

Is there any way to implement this? I have seen a lot of chatter about it here - https://github.com/homebridge-plugins/homebridge-camera-ffmpeg/issues/338. It looks like it is now possible to save mp4 videos using ffmpeg.

I was wondering when someone would ask that... and am actually surprised that it has taken this long.
Personally, I am not particularly interested in HomeKit Secure Video. It isn't supported on my iCloud storage tier, and for me doesn't justify paying for a higher iCloud tier. I also don't see what it would usefully add to this plugin since the SkyBell already records video to its own cloud server. It would just be copying the same video clips to Apple's servers.
Are you aware of any Homebridge plugins that support HomeKit Secure Video? When there is an example I may take a look to see how much effort it would be to add support, but I certainly won't be doing anything before then.

Homebridge support for HomeKit Secure Video does not seem to be making much progress, and I still cannot see much point adding it to this plugin. Hence, I am closing this issue for now.


Add new AngularJS Router

Add the new AngularJS Router when its released with AngularJS 1.4

The new router wasn't released as part of version 1.4. An unstable version can be used but i rather wait until Angular 1.5 when it will hopefully be officially released.
http://angularjs.blogspot.co.uk/2015/05/angular-140-jaracimrman-existence.html


[stable/treafik] Upgrade to Træfik v1.7.1

What this PR does / why we need it
Upgrade Træfik to v1.7.1
Which issue this PR fixes
containous/traefik#3952
Special notes for your reviewer
Thanks for making Helm and Kubernetes awesome! ❤
Checklist

[x] DCO signed
[x] Chart Version bumped
~[ ] Variables are documented in the README.md~

/ok-to-test

@Starefossen Can you please update your commit with the Correct DCO? Hit the "Details" to see whats going on :)
Thanks!

@dtomcej ahh.. good catch! I amended to the commit and tried to sign-off one more time. Fixed!

@Starefossen need to update the readme.md to to match the new tag

Thanks @cpanato – another good catch! Fixed 😄

/lgtm

@Starefossen Sorry to be a bother. Can you rebase and bump the chart version?

@dtomcej done and done 😄

/lgtm


Add gapic generated code for long running operation API

Sorry. There is some misunderstanding here. LRO should be part of google-gax gem. Close this PR.


Support TLD

It would be useful to allow TLD assignment so a service can, for example, support github.com and not just www.github.com.

This is now supported with .github.com via #24


Cannot compile on Mac OS 10.14 Mojave with build-cuda-plugins

Hey, I'm unable to compile under Mojave when I have the feature build-cuda-plugins enabled. I get this error when running cargo build --release:
--- stderr
nvcc fatal   : The version ('10.0') of the host compiler ('Apple clang') is not supported
CMake Error at cuckatoo_cuda_29_generated_mean.cu.o.Release.cmake:219 (message):
  Error generating
  /Users/fafrd/Documents/crypto/grin/grin-miner/target/release/build/cuckoo_miner-1452aa9dd2467131/out/build/CMakeFiles/cuckatoo_cuda_29.dir/cuckoo/src/cuckatoo/./cuckatoo_cuda_29_generated_mean.cu.o

I tried using gcc5 instead, which I installed via macports; I then ran using gcc5 with
CUDA_HOST_COMPILER=x86_64-apple-darwin18-gcc-5.5.0 cargo build --release
and got this error:
--- stderr
nvcc fatal   : GNU C/C++ compiler is no longer supported as a host compiler on Mac OS X.
CMake Error at cuckatoo_cuda_29_generated_mean.cu.o.Release.cmake:219 (message):
  Error generating
  /Users/fafrd/Documents/crypto/grin/grin-miner/target/release/build/cuckoo_miner-1452aa9dd2467131/out/build/CMakeFiles/cuckatoo_cuda_29.dir/cuckoo/src/cuckatoo/./cuckatoo_cuda_29_generated_mean.cu.o

I have CUDA 10.0.3 and rust 1.29.2 installed.

Hi @fafrd, I had a related nvcc which had C or CXX related issues. I solved most of them by upgrading from gcc-6 to gcc-7.  Give it a try and let me know if it solves your problem.
Had to do a lot of "update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 15"  to make sure all C and CXX compilers are set to gcc-7. Things like c++, cc, and the likes weren't what they were supposed to be for reasons I can't recall.

Hey @fafrd, I had this same issue.
Cuda only supports XCode 9.4 on Mac OSX 😕
To Downgrade to XCode 9.4:

Download Xcode_9.4.xip here
Extract it: xip -x Xcode_9.4.xip
Move /Applications/Xcode.app to /Applications/Xcode.app 10
Move /Downloads/Xcode.app to /Applications/Xcode.app
Run: sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
Run: cargo build


[Bullet] 3D RigidBody collisions with static collision shapes still bumpy

Godot version:
3.2.2-stable, 3.2.3-stable, edit: 3.2.4rc3, 3.1-stable
OS/device including version:
Windows 10 20H2, Kubuntu 20.10
Issue description:
When sliding a RigidBody in character mode over a flat static terrain, most often it will bump up into the air at the "shape boundaries"-- e.g. the edges of individual triangles in a trimesh, or the edges of convex shapes, but not the edges of BoxShapes. Much less frequently the RigidBody will get stuck on the edge. The bumpy collision will slightly change the direction of motion as well, for example, I'll be trying to go straight forward but end up 10 degrees or so towards the right. What I expect to see is the RigidBody being able to slide across a flat surface in a straight line.
I've only seen this behavior when using Bullet. (When I switch to GodotPhysics the collision boundaries still seem broken, but in a different way so that's beyond the scope of this issue).
I know this is very similar to #21341, but I'm still having this problem. Increasing the physics step as mentioned there helped slightly but did not eliminate the issue, and I've been using the "smooth trimesh collision" option as well. Hoped this might be fixed in 3.2.3, but having the same issue in both 3.2.2 and 3.2.3.
Steps to reproduce:

Enable "visible collision shapes" in the editor
Create a flat terrain out of trimesh (Many ways to do this, I used a GridMap to repeat a cube shape).
Add a RigidBody in character mode that can be moved around using the keyboard.
Don't forget to add a camera :)
Run the scene and observe the bumpy behavior.

Minimal reproduction project:
IsPhysicsFixed_3_2_3.zip
Make sure "visible collision shapes" is checked. Arrow keys to move, space to jump. Orange is planes with trimesh, red is cubes with trimesh, yellow is cubes with convex shapes, and green is cubes with BoxShapes.

@bluecorn745 Can you test this in 3.2.4rc3?

hello I tried it and if the same problem with 3.2.4 rc3 and rc4

@Calinou Yeah, I don't know how to get rc4 but got the same results as drcucaracha in rc3. No change that I could tell.

This issue persists in v3.4.stable.official [206ba70f4]

Same for 3.4.3 RC 2.

I hope that its ok to mention UE4s solution here. In UE4 you can set a "Rest Offset" value and its working pretty good. Maybe Godot can have something similar? I dont know how hard it would be to implement but it doesnt sound to complicated.

I just found out about "physics/3d/smooth_trimesh_collision" and it solved the problem for my project. But as op already said, it will no solve this issue.

I downloaded Godot_v3.4.3-rc2_x11.64 and found the smooth_trimesh_collision option that Smarty mentioned. It didn't help for my project. The only thing that somewhat mitigates this issue is jacking physics frames to 240. Upping the frames also introduces new problems in physics, and would require a rewrite of my scripts (not to mention increasing hardware usage). I can also report that this problem is slightly less noticeable using Godot Physics instead of Bullet, but it's still there.


饼图的提示性文字lable 文字显示不全

Version
4.8.0
Steps to reproduce
父元素较小的情况下，关闭饼图动画，lable中的文字会呈现圆形裁切
What is expected?
文字正常显示，文字为 一二三、一二三四、一二三四五
What is actually happening?
文字被裁切

5.0 fix this issue, please try it.


Combination of vflip and compact rendering results in broken rendering

This can be seen in the editor. To reproduce:
{
  "reg": [
  	{"name": "first",  "bits": 3},
  	{"name": "second", "bits": 7},
  	{"name": "third",  "bits": 6},
  	{"name": "",       "bits": 16}
  ],
  "config": {
  	"lanes": 2,
        "compact": true,
  	"vflip": true
  }
}

@whitequark should be fixed in the v3.2.0

Thanks a lot!


I can't extract the Thermal Image from JPG

Hello, I made this and got this error:
import flir_image_extractor
>>> fir = flir_image_extractor.FlirImageExtractor()
>>> fir.process_image('FLIR0421.jpg')
Warning: [minor] Possibly incorrect maker notes offsets (fix by -42?) - FLIR0421.jpg
Warning: [minor] Possibly incorrect maker notes offsets (fix by -42?) - FLIR0421.jpg
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "flir_image_extractor.py", line 66, in process_image
    self.thermal_image_np = self.extract_thermal_image()
  File "flir_image_extractor.py", line 136, in extract_thermal_image
    thermal_img = Image.open(thermal_img_stream)
  File "/usr/lib/python3/dist-packages/PIL/Image.py", line 3008, in open
    raise UnidentifiedImageError(
PIL.UnidentifiedImageError: cannot identify image file <_io.BytesIO object at 0x7fd124880d10>

and I cannot plot or export to CSV any data, look:
fir.export_thermal_to_csv('file.csv')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "flir_image_extractor.py", line 270, in export_thermal_to_csv
    x, y = e[0]
ValueError: not enough values to unpack (expected 2, got 0)

and plot...
>>> fir.plot()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/wagner/Downloads/flir_image_extractor.py", line 228, in plot
    plt.imshow(thermal_np, cmap='hot')
  File "/home/wagner/.local/lib/python3.10/site-packages/matplotlib/pyplot.py", line 2695, in imshow
    __ret = gca().imshow(
  File "/home/wagner/.local/lib/python3.10/site-packages/matplotlib/__init__.py", line 1442, in inner
    return func(ax, *map(sanitize_sequence, args), **kwargs)
  File "/home/wagner/.local/lib/python3.10/site-packages/matplotlib/axes/_axes.py", line 5665, in imshow
    im.set_data(X)
  File "/home/wagner/.local/lib/python3.10/site-packages/matplotlib/image.py", line 701, in set_data
    raise TypeError("Image data of dtype {} cannot be converted to "
TypeError: Image data of dtype object cannot be converted to float

here one of my files...

Hey man. It's weird I'm using this library and the code is working perfectly!


Aggregate attempt of prognoses functions

###This is the coursework required by the professor. I'm trying to apply the aggregate patterns for the prognoses functions

Thanks for the PR -- we're not considering major architectural changes currently, but we appreciate the contribution to open-source software!


[Question] Multiprocess application profiling

What I'm most interested in is that, you guys mentioned you've managed to "aggregate stacktraces from multiple processes". May I ask how is that achieved? Are you running a standalone stack sampler for each process?

Hi @JokerQyou,
Yep; we run one sampler in each process, and have each process listen on a fixed, distinct port. Then we query each one in turn and aggregate the resulting data. This works really well for our some use cases (a generally fixed number of independently started, long-lived worker processes), but less so for others (e.g., dynamically spawned subprocesses). We'd love to hear more about your use case :)

Well, unfortunately my use case is about profiling dynamically spawned subprocesses. Basically it works this way:
First I start a main process, which is a webserver, and fork a sibling process which is a guard.
Then if the webserver receives a request telling it to do some work, it spawns a subprocess to do the work.
If the subprocess encountered some kind of exceptions other than fatal error, it quit quietly.
The guard process will scan at an interval to see whether all subprocess has finished its job, if not, it spawns a new subprocess to continue working on previous work.
What I'm interested here is that some subprocesses seem to took way too much time doing their job, but this situation is very hard to reproduce in test environment. So I want to find a way to gather profiling data in production environment.


Improve url_matches pipeline documentation

Changing scope on this, now I'm coming back to it I think the script workflow is basically ok


ConfirmOrCancel i18n fix

Describe the changes you have made in this PR
Small fix
Type of change (Remove other not matching type)

fix: Bug fix (non-breaking change which fixes an issue)

How has this been tested?
Manually
Checklist

[x] My code follows the style guidelines of this project and performed a self-review of my own code
[x] New and existing tests pass locally with my changes
[x] I checked if I need to make corresponding changes to the documentation (and made those changes if needed)

Thanks!


fix: 🐛 明细表大数据量下滚动条无法滚动到顶部

✅ Closes: #1528
👀 PR includes

✨ Feature

[ ] New feature

🎨 Enhance

[ ] Code style optimization
[ ] Refactoring
[ ] Change the UI
[ ] Improve the performance
[ ] Type optimization

🐛 Bugfix

[ ] Solve the issue and close #0

🔧 Chore

[ ] Test case
[ ] Docs / demos update
[ ] CI / workflow
[ ] Release version
[ ] Other ()

📝 Description
🖼 Screenshot

Before
After

❌
✅

🔗 Related issue link

🔍 Self-Check before the merge

[ ] Add or update relevant docs.
[ ] Add or update relevant demos.
[ ] Add or update test case.
[ ] Add or update relevant TypeScript definitions.

:tada: This PR is included in version @antv/s2-v1.23.0-alpha.3 :tada:
The release is available on:

npm package (@alpha dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This PR is included in version @antv/s2-v1.23.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This PR is included in version 1.0.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


urls are bytes on py3

thanks to "chrismay" in #autobahn for finding this

Current coverage is 56.69% (diff: 100%)

Merging #767 into master will not change coverage

@@             master       #767   diff @@
==========================================
  Files            69         69
  Lines         11374      11374
  Methods           0          0
  Messages          0          0
  Branches       1755       1755
==========================================
  Hits           6449       6449
  Misses         4364       4364
  Partials        561        561

Powered by Codecov. Last update 08327bc...b52c489


Separate Search Bar for Location in Adm Event Page

Add a separate search bar to Adm Event Page so that admin shall be able to search events with an address keyword.

A second search bar to Adm Event Page for address search has been added.


opt add a variable to control varchar length in ctas

add a new session variable: use_max_length_of_varchar_in_ctas
In CTAS (Create Table As Select), if CHAR/VARCHAR columns do not originate from the source table, whether to set the length of such a column to MAX, which is 65533. The default is true.

run buildall

run feut


[WIP] VIVO Harvester

Work in progress for the VIVO harvester.

Just to explain really quickly why the build failed, we have enforced style guidelines. If you click the Details button on the travis PR check, you will see the following output:
./scrapi/settings/local-dist.py:49:17: E126 continuation line over-indented for hanging indent

./scrapi/harvesters/vivo.py:5:68: W291 trailing whitespace

./scrapi/harvesters/vivo.py:15:1: F401 'parse' imported but unused

./scrapi/harvesters/vivo.py:18:1: F401 'HumanName' imported but unused

./scrapi/harvesters/vivo.py:22:1: F401 'requests' imported but unused

./scrapi/harvesters/vivo.py:26:1: F401 'compose' imported but unused

./scrapi/harvesters/vivo.py:29:1: W293 blank line contains whitespace

./scrapi/harvesters/vivo.py:30:1: E302 expected 2 blank lines, found 1

./scrapi/harvesters/vivo.py:46:1: E302 expected 2 blank lines, found 1

./scrapi/harvesters/vivo.py:52:1: E302 expected 2 blank lines, found 1

./scrapi/harvesters/vivo.py:69:73: W291 trailing whitespace

./scrapi/harvesters/vivo.py:71:26: W291 trailing whitespace

./scrapi/harvesters/vivo.py:74:122: W291 trailing whitespace

./scrapi/harvesters/vivo.py:84:74: W291 trailing whitespace

./scrapi/harvesters/vivo.py:92:97: W291 trailing whitespace

./scrapi/harvesters/vivo.py:95:27: W291 trailing whitespace

./scrapi/harvesters/vivo.py:97:59: W291 trailing whitespace

./scrapi/harvesters/vivo.py:113:40: W291 trailing whitespace

./scrapi/harvesters/vivo.py:117:40: W291 trailing whitespace

./scrapi/harvesters/vivo.py:121:40: W291 trailing whitespace

./scrapi/harvesters/vivo.py:130:39: W291 trailing whitespace

./scrapi/harvesters/vivo.py:148:38: W291 trailing whitespace

./scrapi/harvesters/vivo.py:157:122: W291 trailing whitespace

./scrapi/harvesters/vivo.py:171:124: E226 missing whitespace around arithmetic operator

./scrapi/harvesters/vivo.py:176:51: F821 undefined name 'process_sponsorships'

./scrapi/settings/local-dist.py:53:15: E126 continuation line over-indented for hanging indent

Obviously you don't really have to worry about this for now, but just making sure you know.

Oh, looks like you fixed it already. Nevermind then!

Also, you can run this locally with flake8 .

Thanks, there is still some issues to correct, I'll have this in mind to check my changes before pushing.

I left some comments about things that may be able to move to top level fields, I hope that is helpful!
Also, our schema is also on github (https://github.com/CenterForOpenScience/SHARE-schema), so if you have any suggestions for improving it, feel free to bring them up there

Also, I am fabianvf on IRC, you can usually find me in the #cos channel on freenode.

fabianvf VIVO has Academic Article
Article
Award or Honor
Blog Posting
Book
Case Study
Catalog
Chapter
Concept
Conference Paper
Conference Poster
Database
Edited Book
Editorial Article
Equipment
Extension Document
Human Study
Journal
Newsletter
News Release
Patent
Proceedings
Report
Research Proposal
Review
Series
Software
Thesis
Video
Webpage
Website
Alexander Garcia Castro [9:47 PM]
do u want to harvest everything ?
Alexander Garcia Castro [9:47 PM]
or do u want to limit the harvesting just to some specific types?

Looks like you need to add a requirement to the requirements.txt

Also, sorry, looks like I missed your comment from earlier. I think nearly all of those are interesting. I would start just by harvesting them all, but provide a mechanism to limit it later if we decide something is irrelevant.

Looks pretty good to me. Most comments are related to making the functions a little less dense/noisy, but didn't see any real logical issues. Once you get the build passing I can take another look and see what the data looks like when I run it locally. If you have any questions or disagreements, feel free to voice them! I am on the #cos IRC channel on freenode, but if there is another way you would like to chat, just let me know and I can get in there. Really appreciate this PR, I am very excited to get it in.

:+1:


Games Crashes When I join in 1.13

What is the output link of /viaversion dump?
https://dump.viaversion.com/a7102350b3883432dc2a8e8ac6474606ddcf785671a6c5fb69ebc50b74829ae4
Are you using any additional software like BungeeCord? If so, what software and version? (Please list your plugins as well)
No, I am using Spigot for Minecraft version 1.12.2

How does this error happen? login? Using an item?
Sometimes the game crashes on login in 1.13, other times it crashed when I change worlds.
Is there an error in the console? Use pastebin.com. Is there a kick message?

It seems to be with NoCheatPlus. Does it happen without it installed?
It's relatively common for anti-cheats to mess up with protocol hacks (since they both work with packets).

I think it has something to do with Multiverse.  Sometimes the server lets me login, but if I try to change worlds, my game crashed and it just says that I disconnected.

Could you try the latest dev build - https://ci.viaversion.com/job/ViaVersion?

I tried it and it fixed the problem. Thank you so much.  It also made it where I could see my server icon in 1.13.

My console is filled with the message Received invalid biome id and it is either the number 65 or 71

Do you use a custom world generator?

Your server possibly uses custom terrain which uses a invalid biome id, we'll probably look into a way to reduce the spam in the future of invalid biome


Copy paste naming bug

Godot version
v4.0.dev.20211108.official [596865366]
System information
Windows 10
Issue description
When you copy and paste a node, it gets a weird name like: CollisionShape2D -> @CollisionShape2D@23668
I'm not quite sure if this is a bug or if it's intentional, however it was different in the previous build.
Steps to reproduce
v4.0.dev.20211108.official [596865366]:

v4.0.dev.20211027.official [157cba393]:

Edit: Okay it is definitely a bug:

Minimal reproduction project
No response

That's a consequence of #54072, some calls to add_child in the copy-paste logic need the true boolean flag. CC @KoBeWi


🌐 Add Chinese translation for docs/zh/docs/how-to/index.md

🌐 Add Chinese translation for docs/zh/docs/how-to/index.md

📝 Docs preview for commit 5231a80e72e036fb31d8cbb9de495d3cbe3ab7d8 at: https://2ac05a96.fastapitiangolo.pages.dev

@KAZAMA-DREAM 大兄弟，这个已经过期了，要不你再提交新的一版？

This page has been translated by another PR https://github.com/fastapi/fastapi/pull/11443, so I think we can close this one.
Thanks @KAZAMA-DREAM for the efforts here though, we definitely appreciate any contribution in writing and reviewing Chinese PRs! 🙏


Cosine Similarity Algorithm is used on movies_data

The solution I'd like
Apply Cosine Similarity Algorithm on cleaned movies_data
The alternatives you can consider
Find some alternative algorithms than can be helpful for the recommendation system.

Hello Mangalam, I have already registered for KSOC'22 and I'd like to work on this issue. May I?


⚖ Register Validator:

Network Choice
nemeton-1
Who are you?
Enigma is a professional proof of stake validator operating on more than 20 mainnets (Axelar, Juno, Umee…) and testnets.
We provide reliable services (IBC bot, monitoring, price bot, faucets, data analytics https://info.junoswap.com/ ..) and run our nodes on strong infrastructure.
We are also a relayer operator relaying for many projects in the Cosmos ecosystem (more than 64 channels) and maintaining IBC clients in order to avoid their expiration.
More informations about us: Our website
gentx
{"body":{"messages":[{"@type":"/cosmos.staking.v1beta1.MsgCreateValidator","description":{"moniker":"Enigma","identity":"6223697ACA24A4FF","website":"https://enigma-validator.com/","security_contact":"contact@enigma-validator.com","details":"Proof of Stake Validator on different projects -- Passionate about Data Science and Technology"},"commission":{"rate":"0.050000000000000000","max_rate":"0.200000000000000000","max_change_rate":"0.010000000000000000"},"min_self_delegation":"1","delegator_address":"okp418j08f030z4jym2ftjwcly2neh9cdhqx3nfnpv5","validator_address":"okp4valoper18j08f030z4jym2ftjwcly2neh9cdhqx3xwrgj4","pubkey":{"@type":"/cosmos.crypto.ed25519.PubKey","key":"jGFuJl7yM2ML9vyb0pR2+93ZBuRDQNSudjESMdSZpfg="},"value":{"denom":"uknow","amount":"10000000000"}}],"memo":"a009a02a23428538b57591f73ba5a6462c476a70@<IP_ADDRESS>:26656","timeout_height":"0","extension_options":[],"non_critical_extension_options":[]},"auth_info":{"signer_infos":[{"public_key":{"@type":"/cosmos.crypto.secp256k1.PubKey","key":"A3KbR3TSalXfhMiHa6LlInkxVQLuZLF8f78JpoZMCaJe"},"mode_info":{"single":{"mode":"SIGN_MODE_DIRECT"}},"sequence":"0"}],"fee":{"amount":[],"gas_limit":"200000","payer":"","granter":""},"tip":null},"signatures":["HhQ8Cfqb/HgSuIZV/Sp2IRLfYcgMu3U56ZPXVKV08kQlRiUASUD3m8Y8huugVQat4t0dBonLN9rgYA0PrGEBKQ=="]}

😉 Here is the corresponding PR: https://github.com/okp4/networks/pull/283


Support for Terraform v0.15.x

Seeing the following error when trying to use with Terraform v0.15.0
│ Error: Error in function call
│
│   on .terraform/modules/ucstaging_gke_cluster.vpc_network/modules/vpc-network/main.tf line 68, in resource "google_compute_subnetwork" "vpc_subnetwork_public":
│   68:     for_each = var.log_config == null ? [] : list(var.log_config)
│     ├────────────────
│     │ var.log_config is object with 3 attributes
│
│ Call to function "list" failed: the "list" function was deprecated in Terraform v0.12 and is no longer available; use tolist([ ... ]) syntax to write a literal list.
╵
╷
│ Error: Error in function call
│
│   on .terraform/modules/ucstaging_gke_cluster.vpc_network/modules/vpc-network/main.tf line 124, in resource "google_compute_subnetwork" "vpc_subnetwork_private":
│  124:     for_each = var.log_config == null ? [] : list(var.log_config)
│     ├────────────────
│     │ var.log_config is object with 3 attributes
│

Hi @brianpham thanks for your issue. We have to properly support TF 0.14 first, then I imagine the upgrade to TF 0.15 will be slightly more difficult due to some of the language changes. e.g: list is deprecated as I can see above. I'll leave this issue open for now.

Apologies for the delay in responding to this issue. Please see below:
Sunset notice
We believe there is an opportunity to create a truly outstanding developer experience for deploying to the cloud, however developing this vision requires that we temporarily limit our focus to just one cloud. Gruntwork has hundreds of customers currently using AWS, so we have temporarily suspended our maintenance efforts on this repo. Once we have implemented and validated our vision for the developer experience on the cloud, we look forward to picking this up. In the meantime, you are welcome to use this code in accordance with the open source license, however we will not be responding to GitHub Issues or Pull Requests.
If you wish to be the maintainer for this project, we are open to considering that. Please contact us at<EMAIL_ADDRESS>


[Lite]Add fake APIs to make Lite-17 compatible with Cordova Plugin 1.7.0

New XWALK APIs are added in Crosswalk-18, accordingly the Cordova
Plugin uses those APIs. It complains compile error because in Lite-17
those new added APIs are not exist.
So we add fake APIs into Lite-17 to make it compatible with Cordova Plugin.
This modification is not needed in Lite-19.
BUG=XWALK-6488

@PeterWangIntel  @halton  Please help to review, thanks.

LGTM， thx


update documentation with supported ruby version and macOS instructions

Updated the documentation to help out macOS users who might be using the standard Ruby version installed.
Specified a supported Ruby version since latest (v2.4.2) didn't work for me.
Added some detail about configure the Trello API credentials too.

@evanshortiss Any chance of following up on the points from my review?

@dobbymoodge I don't see any review? perhaps you didn't finish/publish it?

@evanshortiss of course you've found the problem :rofl:


Naming a field 'type' breaks tablegen

The following table cannot be generated:
Score: {
      key: ["entity", "type"],
      schema: { entity: "bytes32", type: "uint8", value: "uint256" },
   },

This error message should be improved and the naming issue should be caught in the typechecking.

related to #580

Naming a field 'is' breaks tablegen

closing in favor of https://github.com/latticexyz/mud/issues/1396


Demo fixes

support protocol-relative links for https
cleanup ~3GB of space from OpenCV
add a new all-in-one chart (requires use of an ingress controller)

thanks Gabe :D


[Issue]: GPU pipeline errors - With AMD Clang++

Problem Description
Running rocAL python examples with GPU backend throws errors
Sample
root@x1001c1s1b0n0:/data/unittests_qa/rocAL/tests/python_api# python decoder.py gpu
Optional arguments: <cpu/gpu image_folder>
OK: OpenVX using GPU device - 0: AMD Instinct MI250X [gfx90a:sramecc+:xnack-] with 110 CUs on PCI bus c1:00.0

OK: loaded 125 kernels from libvx_rpp.so
Pipeline has been created succesfully
ERROR: kernel org.rpp.Resize can't be grouped with other kernels on GPU
[ERR]  {rocalVerify}   { verify } vxVerifyGraph failed -1
Verify graph failed
Segmentation fault (core dumped)

Operating System
ALL
CPU
ALL
GPU
ALL
ROCm Version
ROCm 6.2.3
ROCm Component
No response
Steps to Reproduce
No response
(Optional for Linux users) Output of /opt/rocm/bin/rocminfo --support
No response
Additional Information
No response

@SundarRajan28 - Using ROCm mainline <IP_ADDRESS>400-crdnnh.15205~22.04 Build #15205+ no issues were found with TOT rocAL. Please update ROCm to 15205 or above and if you still see an issue, reopen.
ctest
Test project /home/kiriti/develop/rocal/rocal-kiriti/test
      Start  1: basic_test_cpu
 1/14 Test  #1: basic_test_cpu .....................   Passed    1.88 sec
      Start  2: basic_test_gpu
 2/14 Test  #2: basic_test_gpu .....................   Passed    0.21 sec
      Start  3: basic_test_gray
 3/14 Test  #3: basic_test_gray ....................   Passed    0.36 sec
      Start  4: basic_test_rgb
 4/14 Test  #4: basic_test_rgb .....................   Passed    0.42 sec
      Start  5: dataloader_multithread_cpu
 5/14 Test  #5: dataloader_multithread_cpu .........   Passed    2.16 sec
      Start  6: dataloader_multithread_gpu
 6/14 Test  #6: dataloader_multithread_gpu .........   Passed    1.47 sec
      Start  7: performance_tests_cpu
 7/14 Test  #7: performance_tests_cpu ..............   Passed    7.21 sec
      Start  8: performance_tests_gpu
 8/14 Test  #8: performance_tests_gpu ..............   Passed    6.37 sec
      Start  9: performance_tests_with_depth_cpu
 9/14 Test  #9: performance_tests_with_depth_cpu ...   Passed    2.37 sec
      Start 10: performance_tests_with_depth_gpu
10/14 Test #10: performance_tests_with_depth_gpu ...   Passed    1.44 sec
      Start 11: unit_tests_cpu
11/14 Test #11: unit_tests_cpu .....................   Passed   10.81 sec
      Start 12: unit_tests_gpu
12/14 Test #12: unit_tests_gpu .....................   Passed    9.81 sec
      Start 13: unit_tests_gray
13/14 Test #13: unit_tests_gray ....................   Passed    4.21 sec
      Start 14: video_tests
14/14 Test #14: video_tests ........................   Passed   51.24 sec

100% tests passed, 0 tests failed out of 14

Total Test time (real) =  99.98 sec

ctest
Test project /home/kiriti/develop/rocal/rocal-kiriti/pytest
    Start 1: rocal_pybind_test_decoders
1/6 Test #1: rocal_pybind_test_decoders .......   Passed    1.05 sec
    Start 2: rocal_pybind_test_functions
2/6 Test #2: rocal_pybind_test_functions ......   Passed    0.20 sec
    Start 3: rocal_pybind_test_pipelines
3/6 Test #3: rocal_pybind_test_pipelines ......   Passed    0.20 sec
    Start 4: rocal_pybind_test_randoms
4/6 Test #4: rocal_pybind_test_randoms ........   Passed    0.20 sec
    Start 5: rocal_pybind_test_readers
5/6 Test #5: rocal_pybind_test_readers ........   Passed    0.20 sec
    Start 6: rocal_pybind_test_types
6/6 Test #6: rocal_pybind_test_types ..........   Passed    0.13 sec

100% tests passed, 0 tests failed out of 6

Total Test time (real) =   1.98 sec

looking into the detailed logs, the tests don't fail, but the test did not catch the issue - ERROR: kernel org.rpp.Resize can't be grouped with other kernels on GPU @SundarRajan28 -- we have to exit when verify graph fails.
6: Test command: /home/kiriti/develop/rocal/rocal-kiriti/test/dataloader_multithread/dataloader_multithread "/opt/rocm/share/rocal/test/data/images/AMD-tinyDataSet" "1"
6: Test timeout computed to be: 1500
6: Number of GPUs: 1
6: Running on GPU: 0
6: shard_id: 0
6: Running on GPU: 0
6: shard_id: 1
6: OK: OpenVX using GPU device - 0: Radeon RX 7900 XT [gfx1100] with 84 CUs on PCI bus 03:00.0
6: OK: loaded 125 kernels from libvx_rpp.so
6: OK: OpenVX using GPU device - 0: Radeon RX 7900 XT [gfx1100] with 84 CUs on PCI bus 03:00.0
6: OK: loaded 125 kernels from libvx_rpp.so
6: Remaining images 128
6: Augmented copies count 1
6: output width 224 output height 3584 color planes 3 n 1
6: ERROR: kernel org.rpp.Resize can't be grouped with other kernels on GPU
6: [ERR]  {rocalVerify}   { verify } vxVerifyGraph failed -1
6: Could not verify the augmentation graph
6: For shard_id: 0
6: Load     time:  1854
6: Decode   time:  39256
6: Process  time:  18020
6: Transfer time:  3594
6: Processed 128 images/frames.
6: Total Elapsed Time: 0 sec 175347 us
6: OK: HIP buffer usage: 160, 2/2
1/1 Test #6: dataloader_multithread_gpu .......   Passed    2.31 sec

The following tests passed:
	dataloader_multithread_gpu

100% tests passed, 0 tests failed out of 1

Total Test time (real) =   2.31 sec

Test 7 - performance_tests_cpu -- @SundarRajan28 AMD clang++ is exposing issues which were previously masked by using GNU and passing suppress warnings flags.
Start 7: performance_tests_cpu

7: Test command: /usr/bin/ctest "--build-and-test" "/opt/rocm/share/rocal/test/performance_tests" "/home/kiriti/develop/rocal/rocal-kiriti/test/performance_tests" "--build-generator" "Unix Makefiles" "--test-command" "performance_tests" "/opt/rocm/share/rocal/test/data/images/AMD-tinyDataSet" "224" "224" "1" "16" "0"
7: Test timeout computed to be: 1500
7: Internal cmake changing into directory: /home/kiriti/develop/rocal/rocal-kiriti/test/performance_tests
7: ======== CMake output     ======
7: -- INFO:ROCM_PATH Set -- /opt/rocm
7: -- OpenCV Found -- Version-4.6.X Supported
7: Configuring done
7: Generating done
7: Build files have been written to: /home/kiriti/develop/rocal/rocal-kiriti/test/performance_tests
7: ======== End CMake output ======
7: Change Dir: /home/kiriti/develop/rocal/rocal-kiriti/test/performance_tests
7:
7: Run Clean Command:/usr/bin/gmake -f Makefile clean
7:
7: Run Build Command(s):/usr/bin/gmake -f Makefile && [ 50%] Building CXX object CMakeFiles/performance_tests.dir/performance_tests.cpp.o
7: In file included from /opt/rocm/share/rocal/test/performance_tests/performance_tests.cpp:34:
7: In file included from /opt/rocm/include/rocal/rocal_api.h:31:
7: /opt/rocm/include/rocal/rocal_api_augmentation.h:1251:63: warning: 'rocalNonSilentRegionDetection' has C-linkage specified, but returns incomplete type 'std::pair<RocalTensor, RocalTensor>' (aka 'pair<rocalTensor *, rocalTensor *>') which could be incompatible with C [-Wreturn-type-c-linkage]
7:  1251 | extern "C" std::pair<RocalTensor, RocalTensor> ROCAL_API_CALL rocalNonSilentRegionDetection(RocalContext context,
7:       |                                                               ^
7: In file included from /opt/rocm/share/rocal/test/performance_tests/performance_tests.cpp:34:
7: In file included from /opt/rocm/include/rocal/rocal_api.h:33:
7: /opt/rocm/include/rocal/rocal_api_meta_data.h:42:41: warning: 'rocalCreateLabelReader' has C-linkage specified, but returns incomplete type 'RocalMetaData' (aka 'vector<rocalTensorList *>') which could be incompatible with C [-Wreturn-type-c-linkage]
7:    42 | extern "C" RocalMetaData ROCAL_API_CALL rocalCreateLabelReader(RocalContext rocal_context, const char* source_path, const char* file_list_path = "");
7:       |                                         ^
7: /opt/rocm/include/rocal/rocal_api_meta_data.h:54:41: warning: 'rocalCreateVideoLabelReader' has C-linkage specified, but returns incomplete type 'RocalMetaData' (aka 'vector<rocalTensorList *>') which could be incompatible with C [-Wreturn-type-c-linkage]
7:    54 | extern "C" RocalMetaData ROCAL_API_CALL rocalCreateVideoLabelReader(RocalContext rocal_context, const char* source_path, unsigned sequence_length, unsigned frame_step, unsigned frame_stride, bool file_list_frame_num = true);
7:       |                                         ^
7: /opt/rocm/include/rocal/rocal_api_meta_data.h:62:41: warning: 'rocalCreateTFReader' has C-linkage specified, but returns incomplete type 'RocalMetaData' (aka 'vector<rocalTensorList *>') which could be incompatible with C [-Wreturn-type-c-linkage]
7:    62 | extern "C" RocalMetaData ROCAL_API_CALL rocalCreateTFReader(RocalContext rocal_context, const char* source_path, bool is_output,
7:       |                                         ^
7: /opt/rocm/include/rocal/rocal_api_meta_data.h:71:41: warning: 'rocalCreateTFReaderDetection' has C-linkage specified, but returns incomplete type 'RocalMetaData' (aka 'vector<rocalTensorList *>') which could be incompatible with C [-Wreturn-type-c-linkage]
7:    71 | extern "C" RocalMetaData ROCAL_API_CALL rocalCreateTFReaderDetection(RocalContext rocal_context, const char* source_path, bool is_output,
7:       |                                         ^
7: /opt/rocm/include/rocal/rocal_api_meta_data.h:88:41: warning: 'rocalCreateCOCOReader' has C-linkage specified, but returns incomplete type 'RocalMetaData' (aka 'vector<rocalTensorList *>') which could be incompatible with C [-Wreturn-type-c-linkage]
7:    88 | extern "C" RocalMetaData ROCAL_API_CALL rocalCreateCOCOReader(RocalContext rocal_context, const char* source_path, bool is_output, bool mask = false, bool ltrb = true, bool is_box_encoder = false, bool avoid_class_remapping = false, bool aspect_ratio_grouping = false, bool is_box_iou_matcher = false);
7:       |                                         ^
7: /opt/rocm/include/rocal/rocal_api_meta_data.h:99:41: warning: 'rocalCreateCOCOReaderKeyPoints' has C-linkage specified, but returns incomplete type 'RocalMetaData' (aka 'vector<rocalTensorList *>') which could be incompatible with C [-Wreturn-type-c-linkage]
7:    99 | extern "C" RocalMetaData ROCAL_API_CALL rocalCreateCOCOReaderKeyPoints(RocalContext rocal_context, const char* source_path, bool is_output, float sigma = 0.0, unsigned pose_output_width = 0, unsigned pose_output_height = 0);
7:       |                                         ^
7: /opt/rocm/include/rocal/rocal_api_meta_data.h:107:41: warning: 'rocalCreateTextFileBasedLabelReader' has C-linkage specified, but returns incomplete type 'RocalMetaData' (aka 'vector<rocalTensorList *>') which could be incompatible with C [-Wreturn-type-c-linkage]
7:   107 | extern "C" RocalMetaData ROCAL_API_CALL rocalCreateTextFileBasedLabelReader(RocalContext rocal_context, const char* source_path);
7:       |                                         ^
7: /opt/rocm/include/rocal/rocal_api_meta_data.h:115:41: warning: 'rocalCreateCaffeLMDBLabelReader' has C-linkage specified, but returns incomplete type 'RocalMetaData' (aka 'vector<rocalTensorList *>') which could be incompatible with C [-Wreturn-type-c-linkage]
7:   115 | extern "C" RocalMetaData ROCAL_API_CALL rocalCreateCaffeLMDBLabelReader(RocalContext rocal_context, const char* source_path);
7:       |                                         ^
7: /opt/rocm/include/rocal/rocal_api_meta_data.h:123:41: warning: 'rocalCreateCaffeLMDBReaderDetection' has C-linkage specified, but returns incomplete type 'RocalMetaData' (aka 'vector<rocalTensorList *>') which could be incompatible with C [-Wreturn-type-c-linkage]
7:   123 | extern "C" RocalMetaData ROCAL_API_CALL rocalCreateCaffeLMDBReaderDetection(RocalContext rocal_context, const char* source_path);
7:       |                                         ^
7: /opt/rocm/include/rocal/rocal_api_meta_data.h:131:41: warning: 'rocalCreateCaffe2LMDBLabelReader' has C-linkage specified, but returns incomplete type 'RocalMetaData' (aka 'vector<rocalTensorList *>') which could be incompatible with C [-Wreturn-type-c-linkage]
7:   131 | extern "C" RocalMetaData ROCAL_API_CALL rocalCreateCaffe2LMDBLabelReader(RocalContext rocal_context, const char* source_path, bool is_output);
7:       |                                         ^
7: /opt/rocm/include/rocal/rocal_api_meta_data.h:139:41: warning: 'rocalCreateCaffe2LMDBReaderDetection' has C-linkage specified, but returns incomplete type 'RocalMetaData' (aka 'vector<rocalTensorList *>') which could be incompatible with C [-Wreturn-type-c-linkage]
7:   139 | extern "C" RocalMetaData ROCAL_API_CALL rocalCreateCaffe2LMDBReaderDetection(RocalContext rocal_context, const char* source_path, bool is_output);
7:       |                                         ^
7: /opt/rocm/include/rocal/rocal_api_meta_data.h:147:41: warning: 'rocalCreateMXNetReader' has C-linkage specified, but returns incomplete type 'RocalMetaData' (aka 'vector<rocalTensorList *>') which could be incompatible with C [-Wreturn-type-c-linkage]
7:   147 | extern "C" RocalMetaData ROCAL_API_CALL rocalCreateMXNetReader(RocalContext rocal_context, const char* source_path, bool is_output);
7:       |                                         ^
7: /opt/rocm/include/rocal/rocal_api_meta_data.h:233:41: warning: 'rocalCreateTextCifar10LabelReader' has C-linkage specified, but returns incomplete type 'RocalMetaData' (aka 'vector<rocalTensorList *>') which could be incompatible with C [-Wreturn-type-c-linkage]
7:   233 | extern "C" RocalMetaData ROCAL_API_CALL rocalCreateTextCifar10LabelReader(RocalContext rocal_context, const char* source_path, const char* file_prefix);
7:       |                                         ^
7: /opt/rocm/include/rocal/rocal_api_meta_data.h:285:41: warning: 'rocalGetEncodedBoxesAndLables' has C-linkage specified, but returns incomplete type 'RocalMetaData' (aka 'vector<rocalTensorList *>') which could be incompatible with C [-Wreturn-type-c-linkage]
7:   285 | extern "C" RocalMetaData ROCAL_API_CALL rocalGetEncodedBoxesAndLables(RocalContext p_context, int num_encoded_boxes);
7:       |                                         ^
7: 15 warnings generated.
7: [100%] Linking CXX executable performance_tests
7: [100%] Built target performance_tests
7:
7: Running test command: "/home/kiriti/develop/rocal/rocal-kiriti/test/performance_tests/performance_tests" "/opt/rocm/share/rocal/test/data/images/AMD-tinyDataSet" "224" "224" "1" "16" "0"
7: Test case 1
7: Running on GPU, Color
7: Batch size: 10
7: shard count: 4
7: OK: OpenVX using GPU device - 0: Radeon RX 7900 XT [gfx1100] with 84 CUs on PCI bus 03:00.0
7: OK: loaded 125 kernels from libvx_rpp.so
7: Running rocalCropResize
7: Augmented copies count 1
7: [ERR]  {output_routine}  Exception thrown in the process routine: std::bad_array_new_length
7:
7: Load     time 767
7: Decode   time 16937
7: Process  time 18939
7: Transfer time 0
7: Total Elapsed Time 2 sec 18895 us
7: OK: HIP buffer usage: 112, 2/2
7:
1/1 Test #7: performance_tests_cpu ............   Passed    8.06 sec

@SundarRajan28 @fiona-gladwin with PR #251 and changes in TOT MIVisionX
6: Running test command: "/home/kiriti/develop/rocal-kiriti/test/dataloader_multithread_gpu/dataloader_multithread" "/opt/rocm/share/rocal/test/data/images/AMD-tinyDataSet" "1"
6: Number of GPUs: 1
6: Running on GPU: 0
6: shard_id: 1
6: Running on GPU: 0
6: shard_id: 0
6: OK: OpenVX using GPU device - 0: AMD Radeon PRO W6800 [gfx1030] with 60 CUs on PCI bus 0b:00.0
6: OK: loaded 125 kernels from libvx_rpp.so
6: OK: OpenVX using GPU device - 0: AMD Radeon PRO W6800 [gfx1030] with 60 CUs on PCI bus 0b:00.0
6: OK: loaded 125 kernels from libvx_rpp.so
6: Remaining images 128
6: Augmented copies count 1
6: output width 224 output height 3584 color planes 3 n 1
6: Remaining images 128
6: Augmented copies count 1
6: output width 224 output height 3584 color planes 3 n 1
6: For shard_id: 1
6: Load     time:  3722
6: Decode   time:  82843
6: Process  time:  113438
6: Transfer time:  23976
6: Processed 128 images/frames.
6: Total Elapsed Time: 0 sec 400197 us
6: For shard_id: 0
6: Load     time:  3039
6: Decode   time:  70890
6: Process  time:  88541
6: Transfer time:  22762
6: Processed 128 images/frames.
6: Total Elapsed Time: 0 sec 393305 us
6: OK: HIP buffer usage: 160, 2/2
6: OK: HIP buffer usage: 160, 2/2
6:
 6/14 Test  #6: dataloader_multithread_gpu .........   Passed    6.28 sec

@SundarRajan28 @fiona-gladwin the fix is merged to develop. We still have to catch the verify failure in tests and samples.


Implement is_full and return overwritten values

Currently, checking whether the queue is full is done by comparing capacity to len. The newly added is_full allows for this check to be simplified. It does the exact same operation in the background but provides a nicer user-facing interface.
The push function has also been modified to utilize is_full, but more importantly to return an Option<T>. This option will be Some(T) if the queue was full prior to pushing a new value and contain the overwritten item. It will be None otherwise.
No dedicated new tests have been added, but doc-tests have been added/modified to account for and test the new behavior. All tests pass.

Sounds like a great idea!
Could you split is_full and push changes into separate commits please?
Does introducing a return value count as a breaking change? I don't see it in the RFC. If it does then is_full can go into a patch bump and the push change can go into a minor bump.
Does adding a return value to push make anything (rustc, clippy) complain about unused value if it's ignored?

Could you split is_full and push changes into separate commits please?

Done and pushed! I've also fixed an issue that caused AppVeyor to fail. Apparently, Option<T>.replace() wasn't introduced until Rust 1.31, so the builds on 1.17 were crashing down in a rain of fire. We should be all good now.

Does introducing a return value count as a breaking change?

I don't believe it does, but I am by no means the authority on this. I would assume that removing or otherwise changing an already existing (and potentially used) return value is considered as such, but adding a return value to a function that had none prior to the change shouldn't realistically¹ break any existing code.

Does adding a return value to push make anything (rustc, clippy) complain about unused value if it's ignored?

By default, neither cargo build nor cargo clippy complain about unused Options as far as I can tell.

realistically¹: Technically speaking, all Rust functions return a value, but the default when none is specified is the empty () type. While this means that adding a return type of Option<T> does indeed change the return type, it seems unrealistic that any existing code would depend on checking the return value of this function already, as there's really no viable use case for doing so.

Thanks!
By the way, one of my friends suggested that a new Option-like enum would be more clear as a return type. Something along
enum Pushed<T> {
    Overwrote(T),
    Appended,
}

I'm not 100% happy with the naming though. Do you have some better idea for the names here maybe?

Well, for one thing, while "overwrote" does seem to be an actual word, I've never actually seen it used before. Perhaps "overwritten" has a better ring to it. It could maybe even be called Popped(T) to make it clear that this value has been removed from the far end of the queue to make room for the new one.
One thing to consider in whether we want to introduce a new type at all is Option's ability to be used with the ? operator - which a custom type most likely wouldn't support. I don't know if that's a big enough issue to be considered, but I thought I'd throw it in there.
If it's just the naming that you believe might cause confusion with users of the API, you might just want to introduce a type alias.
type Popped<T> = Option<T>;

This way you get the benefits of Option, but still get to use a custom name that hopefully makes it clear that you're optionally returning a popped value.

One thing to consider in whether we want to introduce a new type at all is Option's ability to be used with the ? operator - which a custom type most likely wouldn't support. I don't know if that's a big enough issue to be considered, but I thought I'd throw it in there.

I don't think this is a concern here.

If it's just the naming that you believe might cause confusion with users of the API, you might just want to introduce a type alias.
type Popped<T> = Option<T>;

This way you get the benefits of Option, but still get to use a custom name that hopefully makes it clear that you're optionally returning a popped value.

I actually really like this idea and the name, thanks!


Long videos can't be summarized

The AI prompt limit exceeds if the transcription is from a long video. Possible fix might be breaking the transcript in chunks over a determined size, and then sequentially passing and appending results from AI.

Thank you for pointing this out. However unfortunately, I do not care anymore. Any contributions are welcome though.

Github just doesn't give me the dopamine hit anymore. I have moved on and now watch reels full time.

Merge my push, I will fix it


Ordering of Clustering Arguments

I've noticed a number of issues with the clustering arguments. First of all, the arguments only seem to work correctly when typed in the correct order (i.e., cluster(k, chartIDs, vars, palette, options, std, hidden))
For instance, the following works as expected:
var ps = Parasol(data)('.parcoords')
.cluster(k=3,
chartIDs = [0,1,2],
vars = cluster_vars,
palette = d3.schemeAccent,
options = {},
std = true,
hidden = true)
But this does not:
var ps = Parasol(data)('.parcoords')
.cluster(k=3,
chartIDs = [0,1,2],
vars = cluster_vars,
options = {},
std = true,
palette = d3.schemeAccent,
hidden = true)

Also, it would be more intuitive if Parasol.cluster() could be used without the user having to input any arguments at all. To do this, we would need to have a default k (I would suggest 3) and chartIDs (I would suggest all Parasol charts).

This is a result of the gaps in my knowledge of basic Javascript. Turns out named parameters aren't allowed! The fix is pretty simple though, and will actually be more flexible in the long run. This thread and  this thread provide a good idea of what is going on.
I'll close the issue after I implement an official solution.


Revoke both access and refresh token on single api call

Hello . I am trying to implement a route for logging out a user . When a user logs out I want to revoke their access token and their refresh tokens. From the documentation thought the only way I see is this
1 endpoint for revoking the access token
1 endpoint for revoking refresh tokens
Is there anyway that I can use both tokens at the same request to do this without doing 2 separate api calls?

I'm trying to figure out the same thing. You can only have one Authorization header per request, so you can only send the Access or the Refresh token, not both. So I think that means that you need to keep track of every single token (jti) you issue. So you could make the logout method accept any valid token, then it would look up in the DB for all the other tokens issued for that user and add them all to the denylist. This would be like a super-logout, log out of all sessions across even from multiple devices.

Oh if you switch to using JWT cookies (https://indominusbyte.github.io/fastapi-jwt-auth/usage/jwt-in-cookies/) then it sends both the access_token_cookie and the refresh_token_cookie
So I think this should work:
from fastapi import Cookie

...

@router.post("/logout")
def logout(
    Authorize: AuthJWT = Depends(),
    access_token_cookie: str = Cookie(None),
    refresh_token_cookie: str = Cookie(None),
):
    Authorize.jwt_required()
    access_jti = Authorize.get_jti(access_token_cookie)
    refresh_jti = Authorize.get_jti(refresh_token_cookie)
    denylist.add(access_jti)
    denylist.add(refresh_jti)
    Authorize.unset_jwt_cookies()
    return {"detail": "Successfully logged out"}


Does seata currently only support Mysql database? Different databases use different databases such as: mysql oracle, can you support it?

Why you need it?
Is your feature request related to a problem? Please describe in details
How it could be?
A clear and concise description of what you want to happen. You can explain more about input of the feature, and output of it.
Other related information
Add any other context or screenshots about the feature request here.

Seata will support these relational databases, Oracle is currently supported.

you can wait next version . and  next version support config jdbc driver version


Messes up types that implement multiple interfaces

If I have a definition like this:
interface Magic {
    foo: String
}

interface Trick	{
    bar: int
}

type User implements Magic, Trick {
    foo: String
    bar: int
}

and I parse it with graphql-loader, it gets mangled like this:
interface Magic {
    foo: String

}

interface Trick {
    bar: int

}

Trick {
    foo: String
    bar: int

}

... which is (of couse) invalid GraphQL, and so calling makeExecutableSchema() on it will fail with a parse error.

It's caused by the comma. (,)

My PR https://github.com/orionsoft/graphql-loader/pull/6 fixes this.


Advanced Simulator not working with the current version of Cumulocity.

Hi Team, the advanced Simulator doesn't seem to be working for the current version of the cumulocity. Is there any plan to update it to latest library ?

@rahultsag this is a usual application, not a package.


Fix wsclientWebapp by configuring client auth against STS

17e8c07f37de0529b94b63199a92f4044f4aa3ff has changed the STS configuration so that it requires client cert authentication for its Transport port.
This port is also used by the wsclientWebapp sample for its "on-behalf-of" usecase. This modifies the sample webapp for supporting this new requirement. The documentation of the necessary keystore modifications has been modified accordingly in the HowToGenerateKeysREADME.html.

Hi Colm, here's the updated pull'request, this time based on a branch derived from master.


Fix "Method not found" error when script is removed from object

Fixed error message by exposing push_item method to EditorNode

This one is arrived every time the user removed a script from object

This message arrives when GDScript's removed too..

Thanks!


chore: set up fully working Maven pom.xml

This is on top of #936. Please review that first.
Adds a fully working pom.xml that compiles the generator and runs JUnit tests. Type mvn verify, and everything will just work.
What is nice is that it uses the shared-dependencies BOM. Formatting works too via Maven.
The PR also sets up Maven CI.
Doesn't touch Bazel, so there's no side-effect to the current state.

What's incredible is that the Maven unit tests on CI took ~45 seconds even though nothing was cached for the first time. (OTOH, Bazel currently takes ~10 minutes.)


Better support for multi-experiment scripts

When you run multiple experiments from a single python file, for instance when tuning hyperparameters, some issues arise:

The git repository status is extracted when each experiment starts. However, in the meantime this status might have changed on disk, while the python process is still using the older codebase. This pull request addresses this by capturing the git status only once at initialization
The standard output capture is not reset after one experiment finishes. Hence the first experiment captures the output of all other experiments, while the last experiment captures only one. This pull request addresses this by patching the Tee object.
We need a method for closing experiments. This pull request introduces a finish method. But more conveniently, it introduces a context manager for running an Experiment:

for k in range(1, 10):
    with Experiment({"k": k}) as exp:
        print(f"running kmeans with k={k}")
        kmeans = KMeans(k=k).fit(X)
        exp.summary({"loss": kmeans._inertia})
        print(f"Loss was {kmeans._ineartia}")

Additionally, for convenience we write error messages not only to the status-file, but also to stderr.

Here's a sample script: https://gist.github.com/Whadup/7f6cc50f8ac9983fc920ba861819126e

This is a great improvement! Thanks :) Sorry I didn't get back to you earlier but I now have time over the weekend.
The only thing that is missing are tests. I should have written the contributing guidelines, but haven't gotten to it yet. Testing is a bit tricky because it needs to be run within a git repo. For that reason the tests are in a separate repo https://github.com/AshwinParanjape/meticulous-tests/tree/64decb56b912b1190ac7457a3e29c2a49f1ca6e2 that is included as a submodule. Could you convert the example script into a minimal test?
You can use https://github.com/AshwinParanjape/meticulous-tests/blob/64decb56b912b1190ac7457a3e29c2a49f1ca6e2/test_experiment_writer.py#L88 as an example. One test function can test the context manager, while others can test whether the stdout and stderr are closed and have the correct expected output.
You can then push the new tests to the other repo, update the submodule this repo points to and resubmit the PR.

Will do it next week 😉

You can then push the new tests to the other repo, update the submodule this repo points to and resubmit the PR.

Here's the pull request for the tests. It circularly depends on this pull request...(or rather an updated version).

Alright it seems like I need to find a Windows Machine to figure out why the tests fail.
Seems to be related to the .gitignore file, which is recommitted to the repo thereby changing the git commit hash.

@Whadup I'm sorry for the inordinate delay in merging your PR. And I wanted to thank you for making it so much better :) I hope you're getting a good use out of meticulous.
I went through the code and it looks good to me. I'll merge it now.

haha, wow that is awesome!


Use atm operations on gpr_atm variables

Fixes #17681

Thanks for the prompt review. Squashing for final pre-merge tests.