Repeats one SVG twice instead of including second SVG

I have two SVGs that are the same shape and size but different colors. When I add them to the sprite sheet they both show up as the lighter variation instead of one dark and one light.
next-arrow.svg is missing.

next-arrow-hover.svg is appearing twice.

sprites-4c00f527.svg is what gulp-svg-sprite generated.

zip of files
This wasn't happening when they weren't exactly the same size.
SVGs exported from Adobe Illustrator CC 2015. gulp-svg-sprite 1.2.4
Settings being passed to gulp-svg-sprite:
svg_sprite({
  shape: {
    spacing: {
      padding: 35
    }
  },
  mode: {
    css: {
      dest: '',
      sprite: "sprites.svg",
      render: {
        styl: {
          template: 'svg_sprites_template.styl',
          dest: "sprites-svg.styl"
        }
      }
    }
  }
});

Output from verbose logging:
2015-05-17 10:55:30 - verbose: Initialized spriter configuration
2015-05-17 10:55:30 - info: Created spriter instance
2015-05-17 10:55:30 - verbose: Added shape "slideshow--next-arrow-hover:regular"
2015-05-17 10:55:31 - verbose: Added shape "slideshow--next-arrow:regular"
2015-05-17 10:55:31 - info: Compiling 2 shapes ...
2015-05-17 10:55:31 - info: Laying out «css» sprite («css» mode)
2015-05-17 10:55:31 - verbose: Created «css» SVG sprite file («css» mode)
2015-05-17 10:55:31 - verbose: Created «styl» stylesheet resource
2015-05-17 10:55:31 - info: Finished «css» sprite compilation
2015-05-17 10:55:31 - info: Created 1 x SVG, 1 x STYL
2015-05-17 10:55:31 - verbose: Created sprites-4c00f527.svg: 637 Bytes
2015-05-17 10:55:31 - verbose: Created sprites-svg.styl: 363 Bytes

Thanks for reporting this. Could you please post your spriter config as well? Thanks & cheers, Joschi

I think I just updated my question with what you need. Let me know if that's not it.

Ok, great. I'm only on my mobile right now, but will look into it as soon as possible. Btw. did you  already try to set logging to verbose mode?

Updated my question with the output from verbose logging.

Further experimenting showed that I can rotate the "missing" next-arrow.svg file and it shows up rotated, just with the wrong color. If next-arrow.svg is the only SVG in the sprite sheet it shows up the correct color.

I think I may have found a solution. Just yesterday I upgraded to the 2015 version of Adobe Illustrator. This overwrote some of my preferences including the settings I use when saving SVG files. Specifically, I found that in the SVG Options dialog that comes up when saving an SVG, under "Advanced Options" setting "CSS Properties" to "Presentation Attributes" solves the problem. Before I had it set to "Style Elements".
Looking at the generated SVG files, they now have the fill set with an attribute instead of a CSS style definition. I think the problem was that both SVG shapes had the same ID and so the later one's fill settings applied to both shapes.

Any chance your problem relates to this: https://github.com/flobacher/svg-sprite/commit/25f4a45c90f6b384fbe932b1c6cf9279f29a3534#commitcomment-11662593 ?

That looks like it is exactly the same problem.

Yeah, that's what I thought. So then you'll have two options I guess:
1.) Wait until I added class namespacing. I will do it, but it probably won't be very soon (I'm just lacking the time ...)
2.) Use the tool extract-svg-styles mentioned in the other issue to extract the styles out of your SVGs.

So far it looks like exporting the SVGs with the "Presentation Attributes" solution mentioned above is working fine for me. I'll keep this in mind in case this doesn't work outside of Chrome.

Ok then. And keep an eye on the namespacing issue if you like.
Cheers, Joschi

@donut FYI: CSS class namespacing is now available as of release 1.2.26. :)

Great! Thanks for the update.


[RFC] Add default values to arch and platform

Have you read the section in CONTRIBUTING.md about pull requests?
Yes
Summarize your changes:
The defaults are the host's arch and platform values.
Fixes #36.
Are your changes appropriately documented?
Updated NEWS, API, & CLI docs. I probably need to update the readme as well (have not done that yet).
Do your changes have sufficient test coverage?
Changed the defaults test to test the new platform/arch defaults.
Does the testsuite pass successfully on your local machine?
Yes

@kevinsawicki @jlord @zeke any comments/concerns you have on either the concept or the changes would be much appreciated. This one is likely going to be a fairly controversial change.

any comments/concerns you have on either the concept or the changes would be much appreciated.

My instinct is to keep 32-bit as the default arch instead of the host arch (which is presumably 64-bit since developers commonly use 64-bit machines). When unspecified, I'm assuming the person wants a package that will work on the most machines possible, and 32-bit will work more places than 64-bit.
For platform though, the host platform sounds like a great default that people will expect 👍

My  rationale for making both defaults the same as the host is that it is easier for the developer to test. (I should have put that in the PR summary.)
I believe that Windows 32-bit executables will run on 64-bit machines (maybe? I could be wrong) but in order for Linux 32-bit executables to run, the whole 32-bit glibc/etc stack also needs to be installed (e.g., dpkg --add-architecture i386), unless for some reason Electron is statically linked to musl or similar :smile:

I believe that Windows 32-bit executables will run on 64-bit machines

Yup, that is my understanding as well.

but in order for Linux 32-bit executables to run, the whole 32-bit glibc/etc stack also needs to be installed (e.g., dpkg --add-architecture i386)

Oh, interesting, didn't realize this.
Since it seems like the better default on Linux is the host arch, and their is no 32-bit on macOS, the host arch is the better default.
One question, if I am on 32-bit Linux and Windows, and I request to build for macOS with no arch specified, will it still build a 64-bit version of mac since their is no 32-bit, or would it error about 32-bit mac being unavailable?

One question, if I am on 32-bit Linux and Windows, and I request to build for macOS with no arch specified, will it still build a 64-bit version of mac since their is no 32-bit, or would it error about 32-bit mac being unavailable?

It will currently error. It would also error if #106 is fixed and you only specify --arch=armv7l on OSX/Windows.

Nice! Are you planning to land this in 8.0.0?

Yup!


Export Unity animation clips and skeleton to GLTF

Add exporting Unity animation clips and skeleton to GLTF. We can export GLTF file with animation clips and skeleton throght "GLTF -> Export ***" menu now.

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

@owilliamailliwo couple questions to judge this vs my PR and which pieces to take from which:

does this support multiple skeletons
does this support multiple clips from an animator
does this support actual keyframes or just baked animation (mine is currently "baked but optimized")
does this have a timeline recorder clip (see unity usd for why this would be great) (mine doesn't yet)
does this work with Google SceneViewer (I had to fix some things in gltf dll to make that work)

Hi @soraryu ,
does this support multiple skeletons
YES
does this support multiple clips from an animator
YES
does this support actual keyframes or just baked animation (mine is currently "baked but optimized")
It supports keyframes animation.
does this have a timeline recorder clip (see unity usd for why this would be great) (mine doesn't yet)
It will soon support this feature.
does this work with Google SceneViewer (I had to fix some things in gltf dll to make that work)
I haven`t tested it with Google SceneViewer, but it works fine with babylon.js. It is fully compatible with the GLTF 2.0 standard.
I will create a new pull request recently, which will support the compression of animation data and geometry properties.
Because we have multiple teams are developing game projects base on this plugin, we will quickly improve the functionality of the plugin
and share them out.

That's great to hear! I'll look into any differences that there may be between mine and yours and notice here.
About compatibility: note that the rest of Khronos' Unity code (currently) itself isn't fully spec compatible in some places unfortunately, and there are big differences in gltf support between babylon, three, filament, scene viewer try etc. Please try in all of them.

 All committers have signed the CLA.

This will not work for runtime export 'cause AnimationUtility was called, and disregard legacy Animation system.

@tufeixp that's correct; as outlined above a good improvement here would be the ability to record via a timeline clip (which would also work at runtime). Similar to how Unity-USD does that.


[2494] Handle missing data for trainee progress card

Context

https://trello.com/c/VJMp2jqa/2416-s-missing-information-ui-training-details-section

Changes proposed in this pull request
Applies missing data pattern for non draft summary card (Trainee progress).

Guidance to review

 Missing information UI (Trainee progress section)


Refac propose to cancel

Solve proposeToCancel Problem + debug DebugBot
-> Solve #1508 #1510 #1511 #1512 #1514
No retract and reject now in this pull request

When clicking 'show Agreement Data' after proposing/accepting something, the GUI panel often takes much longer to be updated and show the agreement data than the call to getAgreementProtocolUris takes. I did not time it exactly, but the service call takes 1.9s, the panel only updates after 60s or so. Sometimes, the update is instant, though.


Not getting properly formatted in the browser

I've encountered a rather peculiar issue.
The site is properly formatted in my incognito browser but not in my main browser.

I've had a similar issue with one another theme (https://github.com/riggraz/no-style-please/issues/85)
My current github page is hosted with this theme. (tejas-kr.github.io)
Kindly revert if you have any clue.

Hey.
All I can think of is there some css cached in your browser that is messing up the formatting, some override perhaps.
If it is working in incognito then it should also work on the hosted version of the website.
Cheers.
[Shashank]
On Tuesday, October 8th, 2024 at 22:28, Tejas Kumar Jaiswal @.***> wrote:

I've encountered a rather peculiar issue.
The site is properly formatted in my incognito browser but not in my main browser.
image.png (view on web)
image.png (view on web)
I've had a similar issue with one another theme (riggraz/no-style-please#85)
My current github page is hosted with this theme. (tejas-kr.github.io)
Kindly revert if you have any clue.
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.Message ID: @.***>

It's working in Arc and Firefox. The issue is with Chromium based browsers on windows.


Bug: When plugin is active, cannot switch to a different tab

https://user-images.githubusercontent.com/73286100/151958721-0f9cfefd-1d89-4a92-a9c8-1a089be95937.mov

@chrisgrieser
Thank you for reporting!
Could you try pre-release 0.4.1?

thanks for the quick fix – works as intended


Source code licence

Hi,
Very useful project!
What is the licence this project is distributed under?

Hi mfow,
Like soo many other OS projects, I wrote this project for myself really.
I needed a quality C# dll for a OandaV20 and didn't find one.
Along the way as I wrote this one, adding a license document was utterly overlooked.
I've now added an MIT license.
Thanks for the prompt,
/oco


Alpha Application (Design Validation)

Need to determine what is included in the Alpha application.
Proposal:

[ ] - Initial chat form - English only
[ ] - Mocked authentication flow
[ ] - Skeleton of Admin UI

Converting to epic


feat: auto deploy for single plan

Every time we attempt to deploy, we receive a list of plans; however, it is possible that a user has only one plan, in which case we should automatically deploy without providing a list of plan options.

Completed in #112


Change in dockerentrypoint the Stratio tools URL

:shipit:

A job will handle this PR ASAP on Jenkins

Coverage remained the same at 53.365% when pulling eaf5c6f5cf36c9190bc07433a16a08998239d5b5 on gbecares:master into 8361b17000780b7296dce38209897fda4acc2652 on Stratio:master.

Coverage remained the same at 53.365% when pulling c6615230a141f9b92a70fc45da2c32c71f246ac4 on gbecares:master into 8361b17000780b7296dce38209897fda4acc2652 on Stratio:master.

:shipit:

A job will handle this PR ASAP on Jenkins

Coverage remained the same at 53.365% when pulling c6615230a141f9b92a70fc45da2c32c71f246ac4 on gbecares:master into 8361b17000780b7296dce38209897fda4acc2652 on Stratio:master.

:shipit:

A job will handle this PR ASAP on Jenkins

Rebase && testing in progress


500 Cannot serve resource

What happened?
Running 3.5.16, after Reposilite has been running for a few days the UI become unresponsive and returns 500 errors. Ivy and Maven will still resolve artifacts for the most part. I don't see any other output in my current logging config to help identify the cause.
Reposilite version
3.x
Relevant log output
ERR RESULT | GET / errored with ErrorResponse(status=500, message=Cannot serve resource)

It's probably some fs-related issue, like too many locked up resources or exhausted file handles. It's not coincidence that this started happening recently, so let's start with better logging.

I quickly ran a few requests within the 2min window, using old & new endpoints, but unfortunately I didn't notice anything weird:

failures
21:47:19.382 INFO |
21:47:19.382 INFO | No exception has occurred yet
21:47:19.382 INFO |

It'd be great if you could move to the latest nightly, so we can try to catch your IOException.

The server had been running for 5ish days with a decent load on it (it serves a Jenkins server that resolves and publishes to the repository).
I've set debug to true in the configuration file for now, hopefully that will show some more information. I am running Reposilite on the same server I was previously running Nexus v2 on. Looking at the output of lsof for the Reposilite process it didn't seem to have an excessive number of files open. Also the ulimit for the server wasn't being reached either. I'll add more information as I can, are there any other logging settings I should change?
Like I said initially it only seemed to be affecting the dashboard. Builds were still able to resolve and publish in this state.

I'll add more information as I can, are there any other logging settings I should change?

I think it's fine to keep it as it was, just remember to use the latest nightly. Assuming that we will eventually fall into the same problem, you should be able to see an exception being thrown when this error message is returned:

ERR RESULT | GET / errored with ErrorResponse(status=500, message=Cannot serve resource)

It was just a matter of a poor implementation that this has been lost. Having the exception, it'll be a bit easier to look for a root cause :crossed_fingers:

I will look at updating to the latest snapshot then, so I misunderstood why you said to do that initially.

Ok this is the issue. I've discovered this server has a cronjob that is cleaning 'old' directories from /tmp which is causing this. I'm going to repoint the Java temp dir to a different location for now.
03:07:03.800 ERROR | index.html
03:07:03.800 ERROR | java.nio.file.NoSuchFileException: /tmp/reposilite6646411961449879734frontend-resource
03:07:03.800 ERROR |    at java.base/sun.nio.fs.UnixException.translateToIOException(UnixException.java:92)
03:07:03.800 ERROR |    at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:106)
03:07:03.800 ERROR |    at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:111)
03:07:03.800 ERROR |    at java.base/sun.nio.fs.UnixFileSystemProvider.newByteChannel(UnixFileSystemProvider.java:218)
03:07:03.800 ERROR |    at java.base/java.nio.file.Files.newByteChannel(Files.java:380)
03:07:03.801 ERROR |    at java.base/java.nio.file.Files.newByteChannel(Files.java:432)
03:07:03.801 ERROR |    at java.base/java.nio.file.spi.FileSystemProvider.newInputStream(FileSystemProvider.java:422)
03:07:03.801 ERROR |    at java.base/java.nio.file.Files.newInputStream(Files.java:160)
03:07:03.801 ERROR |    at com.reposilite.frontend.LazyPlaceholderResolver.createProcessedResource$lambda$4$lambda$3(LazyPlaceholderResolver.kt:51)
03:07:03.801 ERROR |    at panda.std.Result.supplyThrowing(Result.java:133)
03:07:03.801 ERROR |    at com.reposilite.frontend.LazyPlaceholderResolver.createProcessedResource$lambda$4(LazyPlaceholderResolver.kt:50)
03:07:03.801 ERROR |    at com.reposilite.frontend.infrastructure.FrontendHandler.respondWithProcessedResource(FrontendHandler.kt:63)
03:07:03.801 ERROR |    at com.reposilite.frontend.infrastructure.FrontendHandler.respondWithResource(FrontendHandler.kt:54)
03:07:03.801 ERROR |    at com.reposilite.frontend.infrastructure.ResourcesFrontendHandler.respondWithBundledResource(FrontendHandler.kt:96)
03:07:03.801 ERROR |    at com.reposilite.frontend.infrastructure.ResourcesFrontendHandler.access$respondWithBundledResource(FrontendHandler.kt:77)
03:07:03.801 ERROR |    at com.reposilite.frontend.infrastructure.ResourcesFrontendHandler$defaultHandler$1.invoke(FrontendHandler.kt:84)
03:07:03.801 ERROR |    at com.reposilite.frontend.infrastructure.ResourcesFrontendHandler$defaultHandler$1.invoke(FrontendHandler.kt:83)
03:07:03.801 ERROR |    at com.reposilite.web.infrastructure.ReposiliteRoutingKt$createReposiliteDsl$dsl$1.invoke$lambda$0(ReposiliteRouting.kt:78)
03:07:03.801 ERROR |    at io.javalin.router.Endpoint.handle(Endpoint.kt:52)
03:07:03.801 ERROR |    at io.javalin.router.ParsedEndpoint.handle(ParsedEndpoint.kt:15)
03:07:03.801 ERROR |    at io.javalin.http.servlet.DefaultTasks.HTTP$lambda$9$lambda$7$lambda$6(DefaultTasks.kt:52)
03:07:03.801 ERROR |    at io.javalin.http.servlet.JavalinServlet.handleTask(JavalinServlet.kt:99)
03:07:03.801 ERROR |    at io.javalin.http.servlet.JavalinServlet.handleSync(JavalinServlet.kt:64)
03:07:03.801 ERROR |    at io.javalin.http.servlet.JavalinServlet.handle(JavalinServlet.kt:50)
03:07:03.801 ERROR |    at io.javalin.http.servlet.JavalinServlet.service(JavalinServlet.kt:30)
03:07:03.801 ERROR |    at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:587)
03:07:03.801 ERROR |    at io.javalin.jetty.JavalinJettyServlet.service(JavalinJettyServlet.kt:52)
03:07:03.801 ERROR |    at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:587)
03:07:03.801 ERROR |    at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:764)
03:07:03.801 ERROR |    at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:529)
03:07:03.801 ERROR |    at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:221)
03:07:03.801 ERROR |    at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1580)
03:07:03.801 ERROR |    at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:221)
03:07:03.801 ERROR |    at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1381)
03:07:03.801 ERROR |    at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:176)
03:07:03.801 ERROR |    at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:484)
03:07:03.801 ERROR |    at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1553)
03:07:03.801 ERROR |    at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:174)
03:07:03.801 ERROR |    at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1303)
03:07:03.801 ERROR |    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:129)
03:07:03.801 ERROR |    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)
03:07:03.801 ERROR |    at org.eclipse.jetty.server.Server.handle(Server.java:563)
03:07:03.801 ERROR |    at org.eclipse.jetty.server.HttpChannel$RequestDispatchable.dispatch(HttpChannel.java:1598)
03:07:03.802 ERROR |    at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:753)
03:07:03.802 ERROR |    at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:501)
03:07:03.802 ERROR |    at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:287)
03:07:03.802 ERROR |    at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:314)
03:07:03.802 ERROR |    at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:100)
03:07:03.802 ERROR |    at org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:53)
03:07:03.802 ERROR |    at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.runTask(AdaptiveExecutionStrategy.java:421)
03:07:03.802 ERROR |    at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.consumeTask(AdaptiveExecutionStrategy.java:390)
03:07:03.802 ERROR |    at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.tryProduce(AdaptiveExecutionStrategy.java:277)
03:07:03.802 ERROR |    at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.run(AdaptiveExecutionStrategy.java:199)
03:07:03.802 ERROR |    at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:411)
03:07:03.802 ERROR |    at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:969)
03:07:03.802 ERROR |    at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.doRunJob(QueuedThreadPool.java:1194)
03:07:03.802 ERROR |    at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1149)
03:07:03.802 ERROR |    at java.base/java.lang.Thread.run(Thread.java:833)

Okay, I'm glad we've found the issue. I'd say that's not a bug then. It is not expected that tmp directory is cleaned up when the system is running - it should be done when you're booting the OS and the /tmp is being mounted.


Add support for assertion chaining

Resolves #177

let's do this...! 🤷♂
and just for the record, I personally would only use this in exceptional cases. it is totally fine not to use this feature. 😉

I'm on the same page on all fronts, and appreciate that this exists even if I won't usually reach for it! Thanks for adding it!


Add Start Block Prompt

This PR adds a startBlock prompt to the questions asked when running graph init

🚢


Replace the test application chopper image

which has been "borrowed" from teh internets. Use some photo or drawing which I positively own the rights for.

Having used the chopper image for two years without receiving any complaints, I'll close this issue. Especially since I kind of like the image.


[ENH]: OpenCLIP EF device param

Ref: https://discord.com/channels/1073293645303795742/1214028592372252682
Description of changes
Summarize the changes made by this PR.

Improvements & Bug fixes

Added device optional param to OpenCLIP EF

Test plan
How are these changes tested?

[ ] Tests pass locally with pytest for python, yarn test for js

Documentation Changes

NOTE: It doesn't see we have OpenCLIP EF docs. Will have to add.

Is this already working? It seems that when computing embeddings, the model is on GPU but the data is on CPU (code below).
from chromadb.utils.embedding_functions import OpenCLIPEmbeddingFunction
from chromadb.utils.data_loaders import ImageLoader
import os
import chromadb
from tqdm import tqdm
import numpy as np
from PIL import Image
embedding_function = OpenCLIPEmbeddingFunction(device='cuda')
data_loader = ImageLoader()

client = chromadb.PersistentClient(path="./.chroma")
collection = client.create_collection(
    name='multimodal_collection',
    embedding_function=embedding_function)
CHUNK_SIZE = 1
for idx in tqdm(range(0, len(os.listdir("wikiart")[:2]), CHUNK_SIZE)):
    ids = [str(i) for i in range(len(os.listdir("wikiart")))[idx:idx+CHUNK_SIZE]]
    imgs = [np.array(Image.open(f"wikiart/{img_name}")) for img_name in os.listdir("wikiart")[idx:idx+CHUNK_SIZE]]
    collection.add(ids=ids, images=imgs)

Error:
Traceback (most recent call last):
  File "/home/rosilva/Desktop/projects/art-img/embed_wikiart.py", line 26, in <module>
    collection.add(ids=ids, images=imgs)
  File "/home/rosilva/.cache/pypoetry/virtualenvs/art-img-zVHhaY_I-py3.10/lib/python3.10/site-packages/chromadb/api/models/Collection.py", line 156, in add
    embeddings = self._embed(input=images)
  File "/home/rosilva/.cache/pypoetry/virtualenvs/art-img-zVHhaY_I-py3.10/lib/python3.10/site-packages/chromadb/api/models/Collection.py", line 633, in _embed
    return self._embedding_function(input=input)
  File "/home/rosilva/.cache/pypoetry/virtualenvs/art-img-zVHhaY_I-py3.10/lib/python3.10/site-packages/chromadb/api/types.py", line 193, in __call__
    result = call(self, input)
  File "/home/rosilva/.cache/pypoetry/virtualenvs/art-img-zVHhaY_I-py3.10/lib/python3.10/site-packages/chromadb/utils/embedding_functions.py", line 739, in __call__
    embeddings.append(self._encode_image(cast(Image, item)))
  File "/home/rosilva/.cache/pypoetry/virtualenvs/art-img-zVHhaY_I-py3.10/lib/python3.10/site-packages/chromadb/utils/embedding_functions.py", line 723, in _encode_image
    image_features = self._model.encode_image(
  File "/home/rosilva/.cache/pypoetry/virtualenvs/art-img-zVHhaY_I-py3.10/lib/python3.10/site-packages/open_clip/model.py", line 266, in encode_image
    features = self.visual(image)
  File "/home/rosilva/.cache/pypoetry/virtualenvs/art-img-zVHhaY_I-py3.10/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1511, in _wrapped_call_impl
    return self._call_impl(*args, **kwargs)
  File "/home/rosilva/.cache/pypoetry/virtualenvs/art-img-zVHhaY_I-py3.10/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1520, in _call_impl
    return forward_call(*args, **kwargs)
  File "/home/rosilva/.cache/pypoetry/virtualenvs/art-img-zVHhaY_I-py3.10/lib/python3.10/site-packages/open_clip/transformer.py", line 503, in forward
    x = self.conv1(x)  # shape = [*, width, grid, grid]
  File "/home/rosilva/.cache/pypoetry/virtualenvs/art-img-zVHhaY_I-py3.10/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1511, in _wrapped_call_impl
    return self._call_impl(*args, **kwargs)
  File "/home/rosilva/.cache/pypoetry/virtualenvs/art-img-zVHhaY_I-py3.10/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1520, in _call_impl
    return forward_call(*args, **kwargs)
  File "/home/rosilva/.cache/pypoetry/virtualenvs/art-img-zVHhaY_I-py3.10/lib/python3.10/site-packages/torch/nn/modules/conv.py", line 460, in forward
    return self._conv_forward(input, self.weight, self.bias)
  File "/home/rosilva/.cache/pypoetry/virtualenvs/art-img-zVHhaY_I-py3.10/lib/python3.10/site-packages/torch/nn/modules/conv.py", line 456, in _conv_forward
    return F.conv2d(input, weight, bias, self.stride,
RuntimeError: Input type (torch.FloatTensor) and weight type (torch.cuda.FloatTensor) should be the same or input should be a MKLDNN tensor and weight is a dense tensor

This should be fixed by loading the batch to GPU when creating the embedding. I can work on this, but wanted to make sure I'm not doing anything silly beforehand.

Same issue here, spefically for the OpenClipEmbeddingModel. I ended up by "patching" the file open_clip\tokenizer.py for the class SimpleTokenizer in function call like this and it worked:
result = torch.zeros(len(all_tokens), context_length, dtype=torch.long).to('cuda')

Having the same issue...  changing the file chromadb/utils/embedding_functions/open_clip_embedding_function.py as per #3093 fixed it for me


Improve our build and release workflow

I want to use this issue to discuss merging (some) stryker repositories together.
Right now we have separate repositories for stryker-api, stryker as well as all of the plugins (stryker-karma-runner, stryker-mocha-runner, etc). We did this because we want to release them as separate modules to npm.
This presents a number of challenges to us as maintainers:

Coordinating changes across modules is a pain. You can build modules and install them locally, but the travis build will fail. This leaves you with releasing them under a tag in npm (@next for example) to prevent unsuspecting users to install it by accident.
Releasing a new major version often means you need to release them one by one. If in the meantime someone installs npm i stryker stryker-api for example, it might break for him because stryker-api could already be released with the next major release.
Steep learning curve for new people wanting to change cross module functionality.

This could all be solved with lernajs. With lerna its possible to easily host multiple npm modules in the same git repository. This solves all above challenges:

Coordinating changes is simpler, because lerna bootstrap takes care of linking your npm modules locally.
Releasing a new major version can be done using lerna publish, which will first publish to an npm tag "lerna-temp". Only when everything is published, it will tag them with "latest" (the default tag for npm install).
The steel learning curve will be removed as we can easily tell people to run:

git clone git@github.com:stryker-mutator:stryker
cd stryker
npm i
./node_modules/.bin/lerna bootstrap

we could even remove the last step by introducing a post-install step that does that for you.
However, lernajs is not a build tool, each module should still incorporate its own build. This also means that we should change our grunt setup, as grunt release now does building, testing and releasing for us. Including updating our contributors and changelog, etc.
Side note: lerna doesn't force us to maintain a single version number. However, it can. See https://github.com/lerna/lerna#how-it-works .

@simondel I'm really leaning towards putting all repo's into one. LernaJS also takes into account the order in which to build. For example: stryker-api would be build before stryker, because stryker is dev-dependend on stryker-api.
An integration test module is pretty easy to. We should put it outside of the packages and add a relative file dependency on them so we actually test an npm install.
We could leave versioning for what it is right now.

I agree. Let's put it all in one repo and leave the versioning as what it is right now. That will also make it easier to add a npm version badge such as . That way you can always see the latest version we released on NPM for each repo.

I created a branch so we could work on implementing Lerna: https://github.com/stryker-mutator/stryker/tree/lernajs

@simondel, @mthmulders has a point there. Right now he is maintainer of stryker-jest-runner which actually works great IMHO. Maybe we make exceptions for plugins maintained by other devs?

Solves with #257


Return types when using andCall

Adding this test case fails:
diff --git a/Source/OCMockTests/OCMockObjectPartialMocksTests.m b/Source/OCMockTests/OCMockObjectPartialMocksTests.m
index 4761474..3202e9c 100644
--- a/Source/OCMockTests/OCMockObjectPartialMocksTests.m
+++ b/Source/OCMockTests/OCMockObjectPartialMocksTests.m
@@ -140,6 +140,16 @@ static NSUInteger initializeCallCount = 0;

 #pragma mark   Tests for stubbing with partial mocks

+- (void)testForwardingAndCall
+{
+  TestClassThatCallsSelf *object = [[TestClassThatCallsSelf alloc] init];
+  OCMockObject *mock = OCMPartialMock(object);
+  [[[[mock stub] andForwardToRealObject] andCall:@selector(_andCalledMethod) onObject:self] method2];
+  XCTAssertEqualObjects([object method2], @"Foo");
+}
+
+- (NSString *)_andCalledMethod { return @"Bar"; }
+
 - (void)testStubsMethodsOnPartialMock
 {
 	TestClassWithSimpleMethod *object = [[TestClassWithSimpleMethod alloc] init];

Basically, OCMock is returning the return value of the andCall method, instead of the value of the real method.

To be honest, I consider this expected behaviour. What happens when you reverse the andForwardToRealObject and andCall:onObject: calls on the stub?

I get the following exception:
Test Suite 'OCMockObjectPartialMocksTests' started at 2015-01-09 17:58:42 +0000
Test Case '-[OCMockObjectPartialMocksTests testForwardingAndCall]' started.
2015-01-09 09:58:42.373 xctest[2407:303] -[OCMockObjectPartialMocksTests ocmock_replaced__andCalledMethod]: unrecognized selector sent to instance 0x1007669c0
(lldb) po 0x1007669c0
-[OCMockObjectPartialMocksTests testForwardingAndCall]

And that is a bug. Will look into it next week.

Finally got round to fixing this problem.


some updates and improvement suggestions

made some changes to my fork plugin to make work easier, and wanted to contribute back.
the thing I didn't know how to do is writing a simple example for this plugin. I think the best example would be to use pixi.js as devDependency and render something (with Application and all) like a user might want to, but I wouldn't know how to approach it, and it looks like some examples were already written for this repo, but maybe not committed?

Thanks @amir-arad for the suggestions! I'm going to close this as we are overhauling this for PixiJS v7.


User to add a new centre and a new trial using the content uploader tool

Currently, the centre and trial are fixed in the content uploader, at here:  https://github.com/Image-X-Institute/The-Real-Time-Imaging-Database/blob/a93a70766cdefc4467d00c224e6747b84203454a/src/content_uploader/ContentUploader.py#L211
So if the user wants to add new centre and trial, we may need to create two new tables to store the name of centre and trial, and also modify the data_service to be able to read and create new centre and trial for the frontend user. I will work on this today and tomorrow.

The auth_db_schema.sql already has the trial and centre tables so these can be used by the content uploader (via an API exposed through data service). I think the local copies of the site and trial in content uploader was added to address the scenario when the content uploader didn't have direct access to the data service (such as using one drive etc.) but it makes sense to remove this hardcoding from the content uploader code.


fix example

I think the original example is wrong.

Both versions would work, but this makes more sense. Good catch and thanks @chenxsan


[Feature Request] Download high frame rate Youtube videos as MP4.

Hi, thank you for this great extension.
As far as I know it's only possible to download high frame rate Youtube videos in WEBM format. Would you mind to make it possible for MP4 as well, which is more supported than WEBM?
Thank you.

Add-on can't download MP4 until a server provides content in MP4 format.
However, you should be able to convert downloaded WEBM to MP4 using FDM.


My new map

I think I did this right paper_mario_praying.jpeg

Please complete this form for your new board: https://forms.gle/FLDTizmovGAowdP96

Please complete this form for your new board: https://forms.gle/FLDTizmovGAowdP96

Some extraneous files are included in your Pull Request:
AlefgardBSide.frb
B Side Alephgard.yaml
Yuurei Ship.yaml
starship0.frb
starship1.frb
Please make a commit removing them from your Pull Request

The Mondstadt folder needs to be placed inside _maps

Okay I'm not sure why you did that.. We don't want the board zipped, we just want the folder in _maps.

I'm also not sure what opengl32sw.dll is, but I'm guessing it was uploaded by mistake


Add option to extend variable lifetimes to the end of their block.

This:

Adds a new env var NUMBA_EXTEND_VARIABLE_LIFETIMES which when
set extends the lifetime of variables to the end of the block in
which their lifetime ends.
Fixes up the Dels and their location information in the case of
the above being set.
Wires the above into the post processor call in the legalizer. The
legalizer is the only place which should change the variable life
times as it is the last thing that is executed in the pipeline
before lowering. Changing the lifetimes in general will break
optimisation passes that rely on lifetime analysis via Del nodes.

Fixes #7420

c4c6baf enables the new env var in the CI set up, looks like object lifetime tests/refcount tests are failing, which is to be expected. There does however appear to be something related to generators that needs checking, e.g. numba.tests.test_obj_lifetime.TestObjLifetime.test_generator1.

numba.tests.test_obj_lifetime.TestObjLifetime.test_generator1

Seems like this also is down to changing lifetimes.


Issue with ms-python debug adapter - constructor args mismatch

While debugging with ms-python extension it produces this error.
The error is happening on  even older code-server versions including 3.2.0 even if you downgrade the ms-python extension all the way down to 2020.3.69010
Also tried with a different node version 14.x but no difference.
Seems ms-python debugpy implementation has had some kind of server side update which is why it's affecting even older versions of code-server including the older version of ms-python extension.
The debugpy which implements debug adapter protocol when invoked from code-server ui fails as the class could not be instantiated due to mismatch in constructor arguments.
This was working fine until 2 days ago.
A similar jira has been filed here : https://github.com/microsoft/vscode-python/issues/12465
Stack trace :
Debugger Error: The number of constructor arguments in the derived class s must be >= than the number of constructor arguments of its base class.
Error
Error: The number of constructor arguments in the derived class s must be >= than the number of constructor arguments of its base class.
at /home/$user/.local/share/code-server/extensions/ms-python.python-2020.5.86806/out/client/debugger/debugAdapter/main.js:16:49631
at Array.forEach ()
at e (/home/$user/.local/share/code-server/extensions/ms-python.python-2020.5.86806/out/client/debugger/debugAdapter/main.js:16:49194)
at Object.t.plan (/home/$user/.local/share/code-server/extensions/ms-python.python-2020.5.86806/out/client/debugger/debugAdapter/main.js:16:49709)
at /home/$user/.local/share/code-server/extensions/ms-python.python-2020.5.86806/out/client/debugger/debugAdapter/main.js:16:46365
at e._get (/home/$user/.local/share/code-server/extensions/ms-python.python-2020.5.86806/out/client/debugger/debugAdapter/main.js:16:46274)
at e.get (/home/$user/.local/share/code-server/extensions/ms-python.python-2020.5.86806/out/client/debugger/debugAdapter/main.js:16:44985)
at a.get (/home/$user/.local/share/code-server/extensions/ms-python.python-2020.5.86806/out/client/debugger/debugAdapter/main.js:16:169492)
at new b (/home/$user/.local/share/code-server/extensions/ms-python.python-2020.5.86806/out/client/debugger/debugAdapter/main.js:1:266582)
Error Log File :
debugger.vscode_8d2dc057-6410-479a-8896-afb0ba5c2d69.log

Web Browser: Chrome Version 85.0.4175.0 (Official Build) dev (64-bit)
Local OS: Windows / Mac / Chrome Os
Remote OS: Linux (Debian and Rhel 7)
Remote Architecture: amd64
code-server --version: 3.4.1 - 3.2.0

cc @cmoog

Works fine if I downgrade to old python extention
Name: Python
Id: ms-python.python
Description: Linting, Debugging (multi-threaded, remote), Intellisense, Jupyter Notebooks, code formatting, refactoring, unit tests, snippets, and more.
Version: 2020.5.86806
Publisher: ms-python
VS Marketplace Link: ?itemName=ms-python.python

The solution is to not only downgrade ms-python to 2020.5.x but also upgrade code-server to 3.4.1

Closing since a workaround exists. Also ms-python team is looking into fixing it properly on their end.

Codeserver v3.4.1 + ms-python 2020.5.86806  still get Debugger Error: The number of constructor arguments in the derived class s must be >= than the number of constructor arguments of its base class.

Make sure your downloaded the correct 3.4.1. The wrong one is at the top and suggests to scroll down to get the correct 3.4.1

Make sure your downloaded the correct 3.4.1. The wrong one is at the top and suggests to scroll down to get the correct 3.4.1

I'm definitely sure that i downloaded the right v3.4.1, the second one, not the top

In that case I wonder what's wrong because the correct 3.4.1+2020.5.x is working fine for me..

I had the same issue as alan-he. I had updated code-server to 3.4.1 and installed only the ms-python 2020.5.86806 extension, but was getting The number of constructor arguments in the derived class s must be >= than the number of constructor arguments of its base class.
For me it seemed to be some state or setting in ~/.local/share/code-server/. When i wiped this and restarted code-server debugging started working. I copied my user settings back in and everything still works 🤷

@schaffino Yup we reverted the python extension in our marketplace so if you uninstall it and reinstall things work.

@nhooyr
This was with the extensions left as they were and not reinstalled. We are restricting extension installation and the install directory isn't writable by the code-server user.

@schaffino Yup we reverted the python extension in our marketplace so if you uninstall it and reinstall things work.

Your marketplace  url?

@nhooyr
This was with the extensions left as they were and not reinstalled. We are restricting extension installation and the install directory isn't writable by the code-server user.

update to ms-python.python-2020.8.106424, the errors be corrected


Performance issue vs Cocos2d-x v3.17

Download Test Project:
TestClip.zip
The following tests were conducted using an Android HTC U11 Plus with the build release APK.
When using 200 ClippingNode and Sprite, there is a significant difference in performance between Axmol and Cocos2d-x v3.17. Axmol's FPS is approximately 9-10, while Cocos2d-x v3.17's FPS is approximately 37-40.
Axmol:

Cocos2d-x v3.17:

When using 4000 Sprites with SpriteA->SpriteB->SpriteA->SpriteB repeating pattern, Axmol's FPS is approximately 28-30, while Cocos2d-x v3.17's FPS is approximately 38-39.
Axmol:

Cocos2d-x v3.17:

As can be seen from the above, there is a significant performance difference when using ClippingNode.
According to experiment #1094, it is indeed a problem with Cocos2d-x v4.
Cocos2d-x v4 also had a similar issue initially. issue
I know that Axmol is a fork from Cocos2d-x-4.0. While it may be unfair to compare its performance to Cocos2d-x v3.17, I also hope to find ways to improve its performance.

Please make an "official cpp-test" on clipping section too.
-> It can help to detect "issues" with changes in the future too

@aismann
Is to submit a Pull Request directly in "cpp-tests" to add a clipping node performance test?

@aismann Is to submit a Pull Request directly in "cpp-tests" to add a clipping node performance test?

Yes. thas what I mean (Your test scenario will be part of regular tests then)

This is on my machine:

This is on my machine (win11, 64b, VS22):

The result is only meaningful when compared to the performance of Cocos2d-x v3.17, as it is the difference in performance of the OpenGL renderer in Cocos2d-x v4/Axmol that is the issue.  Do you have the result of this test on Cocos2d-x v3.17 using the exact same setup to compare?
On a mobile device, using the renderer in Cocos2d-x/Axmol, there is a limit on how many draw calls would be reasonable, and that limit is largely dependent on what the app is rendering.  Anything over a few hundred draw calls cannot be expected to perform well using the current rendering implementation, but the important question here is why there is such a big difference between Cocos2d-x v3.17 and Cocos2d-x v4/Axmol when using OpenGL.

Here is the performance test result for 1 frame, using 200 ClippingNode and Sprite each. It seems that the biggest performance difference occurs in GlBufferData().
However, I am not sure what is happening and currently unable to locate the issue.
Axmol:

Cocos2d-x v3.17:

It seems that the biggest performance difference occurs in GlBufferData().

Do you notice that the renderer in Axmol is also doing that twice, taking twice as much time, because of the two calls to flush();  I wonder if that's required, or it's a mistake.  If one of those flush calls is eliminated, that alone would a significant performance boost.

Do you notice that the renderer in Axmol is also doing that twice, taking twice as much time, because of the two calls to flush()? I wonder if that's required, or it's a mistake. If one of those flush calls is eliminated, then that alone would be a significant performance boost.

Because Cocos2d-x v3 does not have a standalone processGroupCommand function, and instead directly uses visitRenderQueue, they are counted together, and in fact, the number of operations is the same: one for Stencil and one for Sprite.

Because Cocos2d-x v3 does not have a standalone processGroupCommand function, and instead directly uses visitRenderQueue, they are counted together, and in fact, the number of operations is the same: one for Stencil and one for Sprite.

Fair enough, so in this case Axmol is taking ~118ms versus ~25ms for Cocos2dx v3.17 for the GlBufferData(), which is a massive difference.

@Yehsam23 If you have time, I'm curious to know what performance you get out of using round-robin buffering on your Android device.  The changes are to the BufferGL.cpp and BufferGL.h files in this zip (which go intothe path  core/renderer/backend/opengl/).  You can simply overwrite your files with these, with no other changes required.
On my Android device it went from ~8 FPS to ~27 FPS for the ClippingNode test when using 5 buffers, and any more than that didn't seem to make a difference.  The SpriteA/SpriteB test FPS didn't change.
BufferGL.zip

I have started testing my project and it seems to be working normally with a significant improvement in performance. Today, I will try various methods to see if there are any issues.
The changes I made are similar to the issue mentioned earlier with Cocos2d-x issue
I tried modifying "TriangleCommandBufferManager::createBuffer()" to not update the data at the beginning, but it resulted in a crash.
BTW, thank you for your help.

I have started testing my project and it seems to be working normally with a significant improvement in performance. Today, I will try various methods to see if there are any issues.

I'm not actually sure if it's the correct way to improve the performance, and there may be other things we can do to also improve performance of the renderer.  If something like this is used as part of the improvements, then it may be best to limit any such modification to Android, and also make it configurable.  Using extra buffers does take up more memory, so leaving it up to the developer to configure whether they need the extra buffers may be the preferred option.

BTW, thank you for your help.

It's no problem at all.  Any improvements we can make to this game engine benefit everyone using it.  For me personally, I don't mind investigating issues if and when time permits, and more often than not, it's a learning experience.

I found something interesting.
I set the BufferCount generated by vertexBuffer in CCRenderer to 1 and set the BufferCount generated by indexBuffer to 10. The performance was great.
Perhaps the real reason is that something happened with indexBuffer, and generating multiple Buffers happened to solve it.
So far, the @rh101 method that I have been testing has not revealed any issues.

That is interesting.  I assume that you've just added an extra parameter to the Device::newBuffer(), DeviceGL::newBuffer and related methods for the buffer count. I'll do more testing with such a change as well.
The only thing I was concerned about is the BufferGL::getHandler() method, which returns the currently used buffer.  As long as it's called within the same cycle as the currently used buffer before the buffer index changes (which I assume is the case, but I'll double check), then all is well.

Just noticed something else. With a single buffer for index and a single for vertex (default Axmol implementation), the GPU memory usage is all over the place, as can be seen here, varying from 60MB to 135MB or so (at 8-9FPS):

When using an index buffer count of 10, and a vertex buffer count of 1, the GPU memory usage is very stable, as follows (at 31-33FPS):

These tests were carried out on a Google Pixel 5a, using the code supplied in the first post (200 clipping nodes).

@rh101
Will this changes also have affects on destop?

Will this changes also have affects on destop?

I have noticed absolutely no difference in performance with or without the change on desktop, so if we do use these modifications, it should be limited to Android (or OpenGL ES).
Also, on desktop, 200 clipping nodes don't cause any performance issues on my specific Windows PC, and I only managed to get the FPS to drop when I hit around 450+ clipping zones (still over 50 FPS @ 1350 draw calls).  I cannot imagine any good reason for someone to use that many clipping zones at all.

The comparing should be cocos2dx 3.17 vs axmol on desktop too

The comparing should be cocos2dx 3.17 vs axmol on desktop.

On a Windows 10 PC:
At 400 clipping nodes, Axmol ~59 FPS, Cocos2dx v3.17.2 ~59FPS.
At 450 clipping nodes, Axmol ~50 FPS, Cocos2dx v3.17.2 ~58FPS.
At 600 clipping nodes Axmol ~40 FPS, Cocos2dx v3.17.2 ~48 FPS.
The Axmol tests, without or without the modifications listed earlier, give the same results when run on Windows 10.  The difference in FPS may not be solely related to the renderer.

EDIT: Just in case anyone gets the wrong idea by looking at those figures, tests like this are not realistic, especially with the number of draw calls caused by these tests.

Thanks. Right!
But a stress test is also a nice test scenario ;)

Another idea to find some improvements:
Comparing the callstack between the axmol Android and Desktop.
Maybe the is something to check?

Comparing the callstack between the axmol Android and Desktop.
Maybe the is something to check?

It's OpenGL vs OpenGL ES, so there are different code paths due to different functionality, along with completely different GPUs (which are way more powerful on desktop), and that alone would be a reason the desktop rendering has better performance.  Also, AX_ENABLE_CACHE_TEXTURE_DATA is set to true for Android, but false for other platforms, which is extra code that is running for Android, but if I recall correctly, being enabled didn't impact the performance too much.

After modifying the code to only change the round-robin buffer index on each frame change (on Renderer::beginFrame() etc.), the frame rate improvement was the same as changing the index every time BufferGL::updateData() is called (as in my original test code).  Since 10 index buffers and 1 vertex buffer seem to improve this specific test case (200 clipping nodes), then the issue here is that the GPU is lagging behind by 10 frames, and this introduces other issues, such as input lag.  Depending on the type of app/game being created, you would have to factor in the impact this will have.

While testing Cocos2d-x v3.17, I found that after the following changes, the FPS drops suddenly, just like the current Axmol.

Forcing to use only VBO, because Axmol currently only uses VBO on OpenGL ES.

bool Configuration::supportsShareableVAO() const
{
    return false;
    xxxx
}

Change CCRenderer.cpp

void Renderer::setupVBO()
{
    glGenBuffers(2, &_buffersVBO[0]);
    // Issue #15652
    // Should not initialize VBO with a large size (VBO_SIZE=65536),
    // it may cause low FPS on some Android devices like LG G4 & Nexus 5X.
    // It's probably because some implementations of OpenGLES driver will
    // copy the whole memory of VBO which initialized at the first time
    // once glBufferData/glBufferSubData is invoked.
    // For more discussion, please refer to https://github.com/cocos2d/cocos2d-x/issues/15652
    // mapBuffers();
}

To
void Renderer::setupVBO()
{
    glGenBuffers(2, &_buffersVBO[0]);
    // Issue #15652
    // Should not initialize VBO with a large size (VBO_SIZE=65536),
    // it may cause low FPS on some Android devices like LG G4 & Nexus 5X.
    // It's probably because some implementations of OpenGLES driver will
    // copy the whole memory of VBO which initialized at the first time
    // once glBufferData/glBufferSubData is invoked.
    // For more discussion, please refer to https://github.com/cocos2d/cocos2d-x/issues/15652
    mapBuffers();
}

As mentioned earlier, Cocos2d-x also encountered performance issues on Android. Perhaps the real problem lies here, and it may not be necessary to solve it through 10 index buffers.
However, currently, I have not been able to find a way to run it normally without initializing the buffer at the beginning.

I modified the CCRenderer's Renderer::TriangleCommandBufferManager::createBuffer() in Axmol and found that the FPS increased significantly.

Can verify that this modification gives over 3.5x performance increase on Android.  Initialising with only a small chunk of memory seems to do the trick.
If there are no concerns put forward regarding this change, and if there are no issues with the current cpp-tests, then please consider creating a PR with this modification.

I ran cpp-tests for a while and didn't find any issues so far. However, I couldn't test it on Windows because I don't have PC.

I However, I couldn't test it on Windows because I don't have PC.
@rh101 told thats has no effect on desktops (Windows 10/11)

@rh101 told thats has no effect on desktops (Windows 10/11)

Oh Yehsam is referring to the new changes, not the ones I initially suggested.  So far the new suggested change to Renderer::TriangleCommandBufferManager::createBuffer() has been working in my main project on Windows 10, but I'll go through cpp-tests as well to check for any issues.
In the meantime, @Yehsam23 would you please create the PR for the Renderer::TriangleCommandBufferManager::createBuffer() change?

Great work. Thanks!


Maintain with Lerna

I guess we can use this to efficiently maintain the project.
https://github.com/lerna/lerna

It is not the time we use Lerna. The project still on its early stage.

It is not the time we use Lerna. The project still on its early stage.


TablerBundle card collapsible VS Tabler Accordion

Collapsible cards doesn't have the "current state" effect on the button to know if it's collapsed or not.

I was trying to find how Tabler handle collapsible cards, and I don't find any.
But instead I've found those Accordions.
It made me thinking that it was a custom card made by @kevinpapst. Am I right ?
Is that conceivable to use Accordions effect for collapsible card instead ?

It is a feature carried over from AdminLTE and adapted to work with Tabler.
Accordions are using card internally, but to me they are two different features.
The issue appears if you use other card action buttons (I will update the demo app to include examples):

So if we change it, it must go hand in hand with additional buttons and change their appearance as well.
I updated the demo app to showcase the issue in combination with the available action_cardtoolbutton macro:

If you use action buttons in card headers, they should all look the same. The accordion button style is different.
And regular end user already have an issue finding action buttons, let alone if we would remove the border.
Probably we should add an embed and helper macros for the accordion and then come back here?

IMO from a dev perspective (not Bundle dev),
action buttons in "card headers" and "collapsible" cannot be together.
With your example, it's weird to be able to a edit card that is not "open" or readable.
Even if the edit button trigger the collapse event.

Anyway,
with what Tabler has done on the accordion, we cannot add multiple button on the header.
Because the title is one GIANT button.

What is cool with that is the click event which open the "card" is binded anywhere on the "header".

At the end, I don't know what is the better 😄
Collapsible card is useful, but out of bound from Tabler.
Accordion is cool, but need a full implementation like card embed today..
I don't know if I have the time, but I can take a look how to make a macro about that

I've achieved to make a false "card" from an accordion. (live code with Firefox from Tabler.io)

          <button class="accordion-button" type="button" data-bs-toggle="collapse" data-bs-target="#collapse-1" aria-expanded="true">
            Filtre </button>

                  Type
                  <select id="tiers_filter_type" name="tiers_filter[type]" class="form-select">
                    <option value="">Tous</option>
                    <option value="client">Client</option>
                    <option value="entreprise">Entreprise</option>
                  </select>

                  Raison sociale
                  <input type="text" id="tiers_filter_socialReason" name="tiers_filter[socialReason]" placeholder="Raison sociale" class="form-control">

              <button type="submit" id="tiers_filter_reset" name="tiers_filter[reset]" class="btn btn-warning reset-cookie-form-action btn">
                Effacer filtre </button>
              <button type="submit" id="tiers_filter_filter_data" name="tiers_filter[filter_data]" class="btn btn-primary ms-auto btn">
                Filtrer </button>

@kevinpapst new version of Cards from Tabler.io is here : https://preview.tabler.io/card-actions.html
There's now an .card-actions class to allow buttons and other.
ATE, we should implement accordions and new cards

The class card-actions is already in use in the card embed.
I updated to the latest beta release and there were no changes showing.
Maybe you can double check.
Yes to the accordion! I'd like to have that as well, then we can remove the collapsible button from the card.


UNKNOWN code clarification

Is it expected that you'd get distinct raw code streams with each press of the same remote button?
I've built 3 of these for the 3 Vizio's that I have and they work great. I am now working on my 4th for an Emerson TV (Remote is an NH305UD) whose codes are coming up as UNKNOWN. I'd expected that pressing the same button on the remote would produce the same steam of raw codes but this does not appear to be the case.
The following 3 code resulted from my pressing the power button on the Emerson remote three different times with a short delay between presses.
I am trying to determine whether I can use any of these raw streams as a JSON request to emulate the power button press.
If not, any suggestions why the button presses may be received in this manner?
Thanks again for the awesome project!  My wife and kids LOVE it!
Press #1
Data: CF8DC026
Type: UNKNOWN
Length: 34
Address: 0x0
Raw: 8872,4606,438,682,460,634,492,1746,466,654,492,684,414,628,518,682,438,1776,466,708,436,600,466,740,384,684,490,626,466,1746,468,1772,496,1746,492,626,382,876,332,650,492,712,414,596,522,1800,438,630,466,680,438,1882,440,1720,492,1718,470,1746,546,1800,410,626,522,1746,438,1828,412
Timestamp: 23:02:42
Press #2
Data: 95C0C1A1
Type: UNKNOWN
Length: 20
Address: 0x0
Raw: 466,374,1266,1092,216,1298,536,432,272,1682,414,5510,322,688,432,4042,320,2006,300,902,152,2114,202,756,410,790,330,764,162,4210,248,4288,274,820,300,984,300,658,434
Timestamp: 23:02:46
Press #3
Data: 22AE7A29
Type: UNKNOWN
Length: 3
Address: 0x0
Raw: 222,880,248,5278,246
Timestamp: 23:02:49

Raw codes are expected to have some variability but should generally be the same length. The last code is definitely an error and not fully read. Try to optimize conditions when scanning. Close range, block reflective surfaces and do a a series of scans to see what the most consistent length is. The raw code data will likely have some variability but that’s ok.
Sent from my iPhone

On May 15, 2018, at 11:24 PM, chrislawson<EMAIL_ADDRESS>wrote:
Is it expected that you'd get distinct raw code streams with each press of the same remote button?
I've built 3 of these for the 3 Vizio's that I have and they work great. I am now working on my 4th for an Emerson TV whose codes are coming up as UNKNOWN. I'd expected that pressing the same button on the remote would produce the same steam of raw codes but this does not appear to be the case.
The following 3 code resulted from my pressing the power button on the Emerson remote three different times with a short delay between presses.
I am trying to determine whether I can use any of these raw streams as a JSON request to emulate the power button press.
If not, any suggestions why the button presses may be received in this manner?
Thanks again for the awesome project! My wife and kids LOVE it!
Press #1
Data: CF8DC026
Type: UNKNOWN
Length: 34
Address: 0x0
Raw: 8872,4606,438,682,460,634,492,1746,466,654,492,684,414,628,518,682,438,1776,466,708,436,600,466,740,384,684,490,626,466,1746,468,1772,496,1746,492,626,382,876,332,650,492,712,414,596,522,1800,438,630,466,680,438,1882,440,1720,492,1718,470,1746,546,1800,410,626,522,1746,438,1828,412
Timestamp: 23:02:42
Press #2
Data: 95C0C1A1
Type: UNKNOWN
Length: 20
Address: 0x0
Raw: 466,374,1266,1092,216,1298,536,432,272,1682,414,5510,322,688,432,4042,320,2006,300,902,152,2114,202,756,410,790,330,764,162,4210,248,4288,274,820,300,984,300,658,434
Timestamp: 23:02:46
Press #3
Data: 22AE7A29
Type: UNKNOWN
Length: 3
Address: 0x0
Raw: 222,880,248,5278,246
Timestamp: 23:02:49
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.

Let me also chime in.  I just built this as well, and although it is not ideal (and I don't think anything can be done about this at all), I have found that probably about 10 presses of a button (I do 5x twice) will let you see which code you really OUGHT to use.  If you get the same code 3 or 4 times, that's the one to use, and you shouldn't have any problems at all.  You will get WILDLY varied results sometimes, but there is enough consistency to pick out the best code, and once you have that, you can send that exact code every time.  Thanks again, Michael.

Not sure why you guys have such poor scan results I can usually get reliable data first scan. In a series of 10 I’m usually 80-90% consistent. That being said it’s a minor issue and probably stems from cheap IR receiver hardware and suboptimal scanning conditions

It must have been due to light in the room. I moved the remote as close as I could to the receiver and was able to get it to show NEC codes.


Statistics

How to get statistics from the bot on the website

Statistics of ?

Statistics of ?
Statistics of guilds joined, members and channels

Statistics of ?

Statistics of guilds joined, members and channels

this require EJS

how do i get that

how do i get that

https://www.youtube.com/watch?v=DmIkbgJZJ_o&t=544s


make title image ratio configurable

We have today give max ratio and min ratio. This should be configurable via variables

[ ] add variables for ratio to the model
[ ] implement ratio in the edit.html.twig

what is the attr argument for the ratio fields?

Unfortunately not possible this way.
I have to figure out another solution.

something around here:
https://github.com/rallek/showroom/blob/master/src/modules/RK/ShowRoomModule/Entity/Base/AbstractShowRoomItemEntity.php#L104-L105
Has to be changed here:
https://github.com/rallek/showroom/blob/master/src/modules/RK/ShowRoomModule/Entity/ShowRoomItemEntity.php ab Zeile 38


[BUG] Inconsistent create topic semantics with Kafka

Describe the bug
In Kafka, recreating topics cannot be simply done by the combination of deleteTopics and createTopics APIs. But in KoP, we can do that.
To Reproduce
Given the following Kafka application:
        final var topic = "my-topic";
        final var props = new Properties();
        props.put(AdminClientConfig.BOOTSTRAP_SERVERS_CONFIG, "localhost:9092");
        @Cleanup final var admin = AdminClient.create(props);
        try {
            admin.deleteTopics(Collections.singleton(topic)).all().get();
        } catch (InterruptedException | ExecutionException e) {
            System.out.println("Failed to delete " + topic + ": " + e.getMessage());
        }
        admin.createTopics(Collections.singleton(new NewTopic(topic, 2, (short) 1))).all().get();
        final var result = admin.describeTopics(Collections.singleton(topic))
                .allTopicNames().get();
        System.out.println("numPartitions: " + Optional.ofNullable(result.get(topic))
                .map(TopicDescription::partitions).orElse(Collections.emptyList()).size());

First, run a KoP standalone (<IP_ADDRESS>) with essential configs. Run the application previous twice, the outputs are:
Failed to delete my-topic: org.apache.kafka.common.errors.UnknownTopicOrPartitionException: This server does not host this topic-partition.
numPartitions: 2

numPartitions: 2

Then run a Kafka server (3.2.0) with listeners=PLAINTEXT://:9092 config. Run the previous application twice, the outputs are:
Failed to delete my-topic: org.apache.kafka.common.errors.UnknownTopicOrPartitionException: This server does not host this topic-partition.
numPartitions: 2

Exception in thread "main" java.util.concurrent.ExecutionException: org.apache.kafka.common.errors.TopicExistsException: Topic 'my-topic' is marked for deletion.
	at java.base/java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:396)
	at java.base/java.util.concurrent.CompletableFuture.get(CompletableFuture.java:2073)
	at org.apache.kafka.common.internals.KafkaFutureImpl.get(KafkaFutureImpl.java:165)
	at transaction.RecreateTopicDemo.main(RecreateTopicDemo.java:25)
Caused by: org.apache.kafka.common.errors.TopicExistsException: Topic 'my-topic' is marked for deletion.

As we can see, the 2nd time, createTopics threw an exception.
Expected behavior
I'm not sure whether it's expected in Kafka. We need to figure out whether should we follow the same semantics with Kafka.

It looks like Kafka server doesn't delete the topic immediately even if the future of deleteTopics completed. Instead, it marked the topic as "for deletion" at the time to send the response. After sleeping for a while before createTopics, it worked again for Kafka server.


Mamba fix

Cleaned up main_training.py file

Tried to add my sign-off to the relevant commits, but looks like Antoni's force push breaks the ability to rebase earlier than that. So... if we end up force pushing make sure to squash all these commits


[MM-34338] Migrate 'components/post_profile_picture' and associated tests to TypeScript

Summary
This code migrate "post_profile_picture" component to TypeScript. I add the example test case for "post_profile_picture" component.
Ticket Link
https://mattermost.atlassian.net/browse/MM-34338
Release Note
NONE

Hello @arvinDarmawan,
Thanks for your pull request! A Core Committer will review your pull request soon. For code contributions, you can learn more about the review process here.

Hi, wanna know if this code already begin to be review   @ogi-m  ? Thank you.


update mamba version in readthedocs configuration docs builds

Description

Because tis ye olde and the builde tis slowle
Closes #3311
As an extra to this, the RTD dev and meself had a conversation in https://github.com/readthedocs/readthedocs.org/issues/10564 and it looks like they're updating their packaged mambaforge in https://github.com/readthedocs/readthedocs.org/pull/10572 - but us having a mamba update right before env gets created is not going to hurt, if at all, will do good even after RTD updated their mambaforge. Great to talk to @humitos as usual - very nice folk at RTD GH :beer:
Performance-wise - we are now building docs start to finish in about the same time as before (possibly even quicker, but the mamba update is always good to have, and for some reason we can't shake the 500 odd seconds it takes to build the env - the bulk of all the time spent for an RTD build)

Before you get started

Checklist
It is the responsibility of the author to make sure the pull request is ready to review. The icons indicate whether the item will be subject to the 🛠 Technical or 🧪 Scientific review.

[x] 🛠 This pull request has a descriptive title
[x] 🛠 All checks below this pull request were successful

hold yer horses, am using the new mambaforge from https://github.com/readthedocs/readthedocs.org/pull/10572 but we're seeing some issues at the moment :horse:

thank you @bouweandela :beer:


Fixed port-forward tests

Fixes #2388
This PR fixes some port-forward tests adding a missing kill for the spawned process that was occupying some ports. It also makes use of random ports (range 10000-30000) in the tests.
The Apache service was dropped (using the already available Nginx).
Added the usage of the DeferCleanup instead of the AfterEach: https://onsi.github.io/ginkgo/#cleaning-up-our-cleanup-code-defercleanup
There is a sleep that we should try to remove, maybe enabling the ingress on the Nginx catalog service.

There is a sleep that we should try to remove, maybe enabling the ingress on the Nginx catalog service.

First of all, thanks for your improvements!
Regarding that sleep; I suspect that that will be not trivial to remove because we don't currently have a reliable way to check for an Epinio service to be ready (do we?).
One approach could be to rely on kubernetes APIs to check that, but I suspect this would be overly convoluted (retrieve all the pieces is a rabbit hole).

Thanks @giubacc. In the end I've added the possibility to provide an ingress to the deployed Nginx.
This can be used to poll and check when the service is available to accept requests.
I've also removed the goroutine for the cmd.Run, because the Run is a blocking command that is wrapping the Start and Wait, but since we don't need to wait we can just start the command.
Let's wait for the CI  :smile:


Argument count fixed for binary custom functions.

Looks like there is a trivial bug in custom SQL function bindings for functions with two arguments.

Can you add some test cases for your changes?

Will do.


Feature Suggestion: Craftable Inscribers

Craftable Inscribers press: maybe a single use craftable stone/iron inscriber press.
Craftable Skystone:
Or Skystone that spawns underground like ores.
I didn't like the craters So i removed them. All of them get found and none are left for players. That also removes skystone but it is used for crafting.

I don't think i'll add this to the main mod, but i'll provide a drop in config file with recipes for skystone and the inscriber plates.

Awsome!, Thank you..


feat/modes

I started thinking about #160 again, about how I might offer opinionated ways of leveraging WebAuthn. Part of this was recently motivated by my recent realization that "we" (in the "WebAuthn community" sense) need to switch from "WebAuthn is great, have you heard of it" to "WebAuthn is great, here are the small number of ways that you can properly use it".
For a while I didn't feel like I had a good idea for avoiding ugly method names like getMFARegistrationOptions() or verifyPWLAuthenticationResponse(). Earlier this week, though, I had an epiphany that I can use the same mechanism I used in #140 to export "mode" helpers instead.
Example
Change this:
import {
  generateRegistrationOptions,
  verifyRegistrationResponse,
} from '@simplewebauthn/server';

To this:
import {
  generateRegistrationOptions,
  verifyRegistrationResponse,
} from '@simplewebauthn/server/passwordless';

And now no matter the options you pass into these methods some options will be overriden to always require user verification so that users fulfill "something you have" and "something you are"/"something you know" in a single authenticator interaction.
Later, if you decide you want lean into discoverable credentials more, you can update the package name and start generating options and verifying responses without needing to know the exact combination of options that will prompt the user to choose a credential to auth with without them needing to enter a username or email address:
import {
  generateRegistrationOptions,
  verifyRegistrationResponse,
} from '@simplewebauthn/server/passkeys';

By keeping the call signatures and return types the same, these opinionated helpers can be swapped out without needing to rewrite any of the code that call the methods.

I'm abandoning this work because I think it's better left up to integration libraries to control how SimpleWebAuthn gets called. I'll instead focus on updating the docs website to offer guidance on how best to call WebAuthn for those discrete use cases that the community has settled on:

MFA
Passwordless
Passkeys


Implemented  function for Akeyless provider

fixes #863
Signed-off-by: Idowu Emehinola<EMAIL_ADDRESS>

LGTM :)

/approve

@AndreyZamyslov if you want to have a look in case we missed something

@renanaAkeyless if you want to have a look in case we missed something since you added Akeyless provider

@renanaAkeyless if you want to have a look in case we missed something since you added Akeyless provider
Otherwise gonna merge it later today

yes I definitely want to take a look
thanks for letting me know about this change

/merge


Update MacOS Version for ODBC Driver

Description
Updating MacOS from 10.15 to 12 poses compilation issues for libraries aws-sdk-cpp and googletest. A better solution than building from source is to manage dependencies through a package manager like vcpkg.  Libraries rapidjson and rabbit I could not eliminate building from source completely. Windows failed to compile with VS 2022, and rabbit is not included in vcpkg.
Compilation Error Fixes -
VS 2022:

Addition of <algorith> includes

error C2039: 'any_of': is not a member of 'std'

Changes from std::string to Aws::String

error C2440: 'initializing': cannot convert from 'A
ws::String' to 'std::basic_string<char,std::char_traits<char>,std::allocator<char>>'

XCode 13.3:

Removal of basic_array(const basic_array& other) sql-odbc/libraries/rabbit/include/rabbit.hpp

src/../libraries/rabbit/include/rabbit.hpp:1153:3: error: definition of implicit copy assignment operator for 'basic_array<rabbit::details::value_ref_traits<rapidjson::UTF8<>>>' is deprecated because it has a user-provided copy constructor [-Werror,-Wdeprecated-copy-with-user-provided-copy]
  basic_array(const basic_array& other)

Removal of bindpara_msg_to_utf8 function as it is never used, contains unused variables, and has potential for exploit when executing malloc(strlen(buff)) with a non-null terminated buffer.

Multiple deletions for un-used variables made throughout.

Check List

[ ] New functionality includes testing.

[x] All tests pass, including unit test, integration test and doctest

[ ] New functionality has been documented.

[ ] New functionality has javadoc added
[ ] New functionality has user manual doc added

[x] Commits are signed per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

@penghuo, @dai-chen,
Do you want to backport this to fix CI on 2.4, 1.x and main?

@penghuo, @dai-chen, Do you want to backport this to fix CI on 2.4, 1.x and main?

Thanks for reminding! Just confirmed 2.4 has this commit. Because we may backport all changes in 2.x to main together, probably we only need to backport to 1.x now?

I detected ODBC CI failed on main recently: https://github.com/opensearch-project/sql/actions/runs/3396132013
I also don't see this fix on main: https://github.com/opensearch-project/sql/commits/main
Please, double check me and label this PR if it looks good for you. I will backport manually if bot fail.

Yes, it is not in main. I meant we will need to merge all changes to main together soon. Not only this PR. So probably we just need to back port to 1.x for now?

I detected ODBC CI failed on main recently: https://github.com/opensearch-project/sql/actions/runs/3396132013 I also don't see this fix on main: https://github.com/opensearch-project/sql/commits/main Please, double check me and label this PR if it looks good for you. I will backport manually if bot fail.

Yes, it is not in main. I meant we will need to merge all changes to main together soon. Not only this PR. So probably we just need to back port to 1.x for now?

Ok I'll backport manually.


Update schema-directives.md

Fix typo in schema directive docs

TODO:

[x] If this PR is a new feature, reference an issue where a consensus about the design was reached (not necessary for small changes)
[x] Make sure all of the significant new logic is covered by tests
[x] Rebase your changes on master so that they can be merged easily
[x] Make sure all tests and linter rules pass
[x] Update CHANGELOG.md with your change. Include a description of your change, link to PR (always) and issue (if applicable). Add your CHANGELOG entry under vNEXT. Do not create a new version number for your change yourself.

Good catch @mfix22!


Labels not showing in Save and Load function of  Editor 0.5.0

Thanks i got it to work with version 0.5.0 , most of the drawing is working fine for me what i need to know now is
I have made the following changes ,

I have added a input ex inPlace edit to image container so we can label the image .
I have added a input ex inPlace edit to the wire module
Now on the editor when i click save the system saves the drawing into the database and when i load the drawing the container objects(image and wire )  appear fine but with the labels. What and where i should make the change to have the save and load function save and show my labels

Place below is my ImageContainer.js file content
/***************************************************
/**

Container represented by an image
@class ImageContainer
@extends WireIt.Container
@constructor
@param {Object} options
@param {WireIt.Layer} layer
*/
WireIt.ImageContainer = function(options, layer) {
WireIt.ImageContainer.superclass.constructor.call(this, options, layer);
};

YAHOO.lang.extend(WireIt.ImageContainer, WireIt.Container, {
/**
* @method setOptions
* @param {Object} options the options object
*/
setOptions: function(options) {
WireIt.ImageContainer.superclass.setOptions.call(this, options);
  this.options.image = options.image;
  this.options.xtype = "WireIt.ImageContainer";

  this.options.className = options.className || "WireIt-Container WireIt-ImageContainer";

  // Overwrite default value for options:
  this.options.resizable = (typeof options.resizable == "undefined") ? false : options.resizable;
  this.options.ddHandle = (typeof options.ddHandle == "undefined") ? false : options.ddHandle;

},
/**
* @method render
*/
render: function() {
WireIt.ImageContainer.superclass.render.call(this);
YAHOO.util.Dom.setStyle(this.bodyEl, "background-image", "url("+this.options.image+")");
this.labelField = new inputEx.InPlaceEdit({parentEl: this.bodyEl, editorField: {type: 'string'}, animColors:{from:"#FFFF99" , to:"#DDDDFF"},className:"inputEx-Imglabel" });
this.labelField.setValue(this.label);
}
});
****************************************************/

I'm seeing something similar.  When loading a workflow the labels are displayed, but the editor that was attached is no longer available.


(chore) force downgrade event-stream to avoid flatmap-stream dependency

fixes #30

Closing this in favor of #32


How do i setup the 1.3" OLED hat

just plug it in to the top, if its the waveshare oled in the github readme.md
pwnhyve should automatically find it

i don't have visualization as of right now, but just something like this:

except the pi4 is your pi zero and its the oled instead of the lcd


Replace 'show-ref' command with 'branch' and 'tag'

Supports #14180.
I'm no expert at git but I found that git show-ref is much slower than git branch and git tag. With this PR, the loading time of the PyTorch repo homepage drops from ~20s to 5s.
I also added the reverse logic for GetTags which somehow left out in #13673. The reverse logic exists in the gogit variant.

Codecov Report

Merging #14201 (1389ab4) into master (632800e) will increase coverage by 0.02%.
The diff coverage is 80.00%.

@@            Coverage Diff             @@
##           master   #14201      +/-   ##
==========================================
+ Coverage   42.00%   42.02%   +0.02%
==========================================
  Files         733      733
  Lines       78713    78736      +23
==========================================
+ Hits        33061    33092      +31
+ Misses      40218    40215       -3
+ Partials     5434     5429       -5

Impacted Files
Coverage Δ

modules/git/repo_tag_nogogit.go
78.78% <76.66%> (-21.22%)
:arrow_down:

modules/git/repo_branch_nogogit.go
78.78% <100.00%> (+0.73%)
:arrow_up:

routers/user/setting/profile.go
38.88% <0.00%> (-0.44%)
:arrow_down:

services/pull/pull.go
42.85% <0.00%> (+0.50%)
:arrow_up:

modules/queue/unique_queue_disk_channel.go
55.38% <0.00%> (+1.53%)
:arrow_up:

modules/log/file.go
75.20% <0.00%> (+1.60%)
:arrow_up:

modules/process/manager.go
75.00% <0.00%> (+2.50%)
:arrow_up:

models/unit.go
49.31% <0.00%> (+2.73%)
:arrow_up:

modules/git/utils.go
80.55% <0.00%> (+2.77%)
:arrow_up:

... and 2 more

Continue to review full report at Codecov.

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

@skyline75489 can you add unit tests?

I've not yet tested this enough. On my mac the performance is not stable. I think it's because some kind of disk caching by macOS. Overall show-ref is still slower since it fetches all the hashes that end up being unused. i will test this on Windows later.
My main concern is that i don't really know if the change is completely harmless. Is there any situation that show-ref handles but branch/tag does not.

So this is what I got from my Windows machine with SSD:

Operation
Duration

show-ref --heads
4.06s

show-ref --tag
4.05s

branch --list
0.27s

tag --list
0.05s

This is on the same machine but with a 5400 rpm hard disk:

Operation
Duration

show-ref --heads
5.47s

show-ref --tag
5.53s

branch --list
0.54s

tag --list
0.04s

The performance seem to be CPU-bounded rather than IO-bounded. The ~20s results was on my old MBP2015.

... that i don't really know if the change is completely harmless ...

@zeripath ping ;)

FYI, the gogit variant performs basically the same as ‘show-ref’. We are not using gogit by default, though.

FYI, the gogit variant performs basically the same as ‘show-ref’. We are not using gogit by default, though.

@6543 So i was trying this with a smaller repo (200 branches) and found that the perf diff is not very obvious. I guess the perf diff will only emerge with a very large amount of branches/objects. I don’t I can easily add a benchmark test until I can find a way to mock a very large repo.
By the way the PyTorch repo really reveals some internal issues in gitea

@6543 So i was trying this with a smaller repo (200 branches) and found that the perf diff is not very obvious. I guess the perf diff will only emerge with a very large amount of branches/objects. I don’t I can easily add a benchmark test until I can find a way to mock a very large repo.
By the way the PyTorch repo really reveals some internal issues in gitea

How about to keep the function callShowRef but add the two new functions? So that reviews will be easier.

How about to keep the function callShowRef but add the two new functions? So that reviews will be easier.

@lunny That’s was my initial implementation. Then I found that callShowRef Is not being used at all. So I deleted it. You could always use ‘Split’ mode on GitHub (click the gear button than you can choose it) which will make reviewing this diff easier. If that still bothers you, let me know and I’ll add callShowRef back.

@lunny That’s was my initial implementation. Then I found that callShowRef Is not being used at all. So I deleted it. You could always use ‘Split’ mode on GitHub (click the gear button than you can choose it) which will make reviewing this diff easier. If that still bothers you, let me know and I’ll add callShowRef back.

If we are talking about performance you must tell us what version of git you are using

If we are talking about performance you must tell us what version of git you are using

git branch and git show-ref do different things. I suspect that you'll  be missing other branches.

git branch and git show-ref do different things. I suspect that you'll  be missing other branches.

On windows I’m using git 2.29.2. On macOS I’m using the git provided by Apple.
I’m not sure what you mean by ‘poorly’ or ‘unpacked’. Here’s how I get the PyTorch repo:

First git clone —mirror https://github.com/pytorch/pytorch.git
Create the repo in my self hosted gitea instance
Set the remote  git remote set-url —push origin<EMAIL_ADDRESS>Finally git push —mirror

Be warned that the clone & push steps take a considerable amount of time if you wanna try this yourself.
As for the behavior of show-ref vs branch, I also suspect that they have different behaviors . But after testing it with PyTorch repo, the result of branch/tag are identical to show-ref, except for the formatting, of course. Still this is my concern, too.

On windows I’m using git 2.29.2. On macOS I’m using the git provided by Apple.
I’m not sure what you mean by ‘poorly’ or ‘unpacked’. Here’s how I get the PyTorch repo:

First git clone —mirror https://github.com/pytorch/pytorch.git
Create the repo in my self hosted gitea instance
Set the remote  git remote set-url —push origin<EMAIL_ADDRESS>Finally git push —mirror

Be warned that the clone & push steps take a considerable amount of time if you wanna try this yourself.
As for the behavior of show-ref vs branch, I also suspect that they have different behaviors . But after testing it with PyTorch repo, the result of branch/tag are identical to show-ref, except for the formatting, of course. Still this is my concern, too. I’m glad you brought it up.

https://github.com/go-gitea/gitea/issues/14180#issuecomment-753466851 appears to indicate that show-ref is not the problem.

https://github.com/go-gitea/gitea/issues/14180#issuecomment-753466851 appears to indicate that show-ref is not the problem.

@zeripath  I tested this on a Linux machine and found that the performance difference between git branch & git show-ref --heads are minimum. I don't have a clue why but on macOS & Windows, the performance difference is significant. So I guess this explains why no one noticed this before since most deployment of Gitea would be Linux-based.

@zeripath  I tested this on a Linux machine and found that the performance difference between git branch & git show-ref --heads are minimum. I don't have a clue why but on macOS & Windows, the performance difference is significant. So I guess this explains why no one noticed this before since most deployment of Gitea would be Linux-based.

I'll close this for now since I can not provide a definitive conclusion that this works for every repo & machine. Let's focus on whatever hot paths that causes #14180 .

I'll close this for now since I can not provide a definitive conclusion that this works for every repo & machine. Let's focus on whatever hot paths that causes #14180 .


Revert "Merge request"

Reverts oracle/docker-images#112

@hemastutibaruah I've reverted the PR. Please review the files that are changed by this PR. It seems nothing changes at all.

Yes Bruno, This was just to sync both branch before I make new changes.

Please close this PR.


docs: update CONTRIBUTING.md build-env setup section & add TESTING.md

This PR contains

update CONTRIBUTING.md file to provide detailed information on setting
up the build environment on Linux/mac machine.
create a new file 'TESTING.md' to provide information on testing fdo
e2e scenario.

Looking great!
We only need the commit about the docs, please remove the other two.


Reapperance: ip: RTNETLINK answers: Operation not permitted

Describe the bug
To Reproduce
Start firezone as docker container with --user998:1000, watch the log, container crashes
Expected behavior
Firezone starts
Screenshots / Logs
May 31 19:42:53 s3 systemd[1]: Starting Firezone VPN (mash-firezone)...                                                    May 31 19:42:53 s3 mash-firezone[1762203]: b733030e2a8af144803ecc966835f696434c343bfb445c235fbf9c2ccd3f73f7                May 31 19:42:53 s3 systemd[1]: Started Firezone VPN (mash-firezone).
May 31 19:42:54 s3 mash-firezone[1762221]: Creating WireGuard interface wg-firezone
May 31 19:42:54 s3 mash-firezone[1762221]: ip: RTNETLINK answers: Operation not permitted

Platform (please complete the following information):

Firezone Versio: 0.7.30
OS: Linux
Distro: Ubuntu
Kernel version:  5.15.0-71
Deployment method: Docker

Additional context
This issue is heavily related to #1506 and hinders some users in deploying firezone securely https://github.com/mother-of-all-self-hosting/ansible-role-firezone/issues/1

Thanks for the report! We haven't tested running the Firezone container as a different user. I suspect user 998 doesn't have the necessary permissions to run the ip bootstrap commands. I'm not sure this is a bug in Firezone per se.
The fix would likely involve either adding that user to the appropriate group on the host system or otherwise enabling the user to add interfaces and modify routes. I'm not sure the cap_add in docker-compose.yml helps with that.
We probably won't have a chance to deep dive on this soon but happy to review/accept a PR if it comes along.

The 1.0 portal will be cloud-managed, so this issue would only pertain to the data plane components (Gateways and Relays) going forward. I'll modify the title a bit to stay relevant.

Will not be able to prioritize in the near term


Error recursive function/types

Hello,
I've created this function is ReasonML:
[@gentype]
type operation =
  | Add(operation, operation)
  | Sum(operation, operation)
  | Int(int);

[@gentype]
let rec calc = operation =>
  switch (operation) {
  | Add(op1, op2) => calc(op1) + calc(op2)
  | Sum(op1, op2) => calc(op1) * calc(op2)
  | Int(number) => number
  };

with the types from gentype:
export const calc: (_1:operation) => number = function _(Arg1: any) {
  const result =
/* WARNING: circular type operation. Only shallow converter applied. */
  DemoBS.calc(Arg1.tag==="Add"
    ? CreateBucklescriptBlock.__(0, Arg1.value)
    : Arg1.tag==="Sum"
    ? CreateBucklescriptBlock.__(1, Arg1.value)
    : CreateBucklescriptBlock.__(2, [Arg1.value]));
  return result
};

But when I try to use the generated function in a ts file:
import { operation, calc } from "./Demo.gen";

const myOp: operation = {
  tag: "Add",
  value: [
    { tag: "Sum", value: [{ tag: "Int", value: 2 }, { tag: "Int", value: 3 }] },
    { tag: "Int", value: 5 }
  ]
};

console.log(calc(myOp));

I get the following error:
switch (operation.tag | 0) {
                    ^
TypeError: Cannot read property 'tag' of undefined

I've seen that there's some indication about recursive types in the readme but I'm not sure to understand everything (I'm still new in the ReasonML world). Therefore, I'm not even sure that this case should be supported but still wanted to report it in case of...
Sorry if it was not helpful and in this case feel free to close the issue.

@tatchi thank you for opening the issue.
This is a good question to ask.
The representation of variants requires conversion when mapping between the Reason (arrays with specific tags) and JS (objects) representations. The conversion functions are generated automatically in normal cases.
Let's now consider the case of recursive data types. The question is what the conversion functions should do. To be correct, the conversion should walk the data structure inductively, and convert nodes along the way. So at the very least, there would be a traversal cost to be paid every time the JS/Reason boundary is crossed.
In reality things are a bit more complicated than that. There are several possible ways of converting a recursive data structure. For example, what about sharing? If the conversion functions respect sharing, then the conversion code will be more complicated and will have to remember what was shared in the original data. Otherwise, a linear data structure could become exponentially larger after conversion.
Another question is: what about cyclic structures? If one wants to handle those, then again the conversion would need to be further complicated, or else fall into some infinite loop.
The current state is that if cycles are detected in the type declaration, the conversion is not performed. And that's what you've been observing.
Before making a suggestion for this specific issue, a question: what is the intended use case of exporting the recursive data structure to JS?
Asking as one way to go about that, is to define an abstract data type, where the internal details of the implementation are not exposed. This would often be the choice even if the consumer were other Reason code.
But, I'd like to know more about the context here.
(This answer is intentionally a little lengthy, so it can be referred to later from the README, as a form of extended documentation).

Hi @cristianoc, thanks for your response.

Before making a suggestion for this specific issue, a question: what is the intended use case of exporting the recursive data structure to JS?
Asking as one way to go about that, is to define an abstract data type, where the internal details of the implementation are not exposed. This would often be the choice even if the consumer were other Reason code.
But, I'd like to know more about the context here.

There's no specific context there, I was just playing a little bit with the library just for fun. I don't really have experience in building application with ReasonML so I probably made things that don't have any sense.
However, I'm not sure I've really understood your solution. Could you share an example of how you would do it?

@tatchi one way to go is to export the type as opaque:
<EMAIL_ADDRESS>type operation =
  | Add(operation, operation)
  | Sum(operation, operation)
  | Int(int);

and export some construction functions:
[@genType]
let int = (i) => Int(i);

[@genType]
let add = (x,y) => Add(x,y);

[@genType]
let sum = (x,y) => Mul(x,y);

In this way, no deep conversion is needed (in fact there's no conversion at all), and values can be constructed from the JS side.

@cristianoc Thanks for the solution, it works perfectly (just had to find another name for int) 👍


Fix parkey skill issue

He forgor how to use tar :trollface:
Made discord integration plugin actually install instead of it installing in the root directory.

Skill Issue
just revert commit and then update script I cant tell very well what you change if you update the egg since its one line.
Also change egg version if you didn't. :trollface:

Moved to #7


tape recorder php-vcr style

build a plugin to intercept and record / replay responses to requests. inspired by http://php-vcr.github.io/ which does this using a stream wrapper around guzzle calls.

@jeromegamez: i talked with @adri (one of the maintainers of php-vcr) about this a few weeks ago. he is not sure whether there is much code to share, as php-vcr looks at the raw curl request.
@adri: if you have any input, please comment here...
psr-7 middleware should allow a much more elegant approach to this than the stream wrappers. in my experience with php-vcr, the challenging part is how to organize data into cassettes (the storage units). organization wise, we maybe should do a separate php-psr7-vcr repository that only cares about psr 7, and a simple plugin in this repository to integrate that system with Httplug. the jobs of recording and restoring are probably too much for a single class - and they could be integrated with psr 7 implementations even when not using Httplug.

I would like to have a dedicated repository for a php-psr7-vcr – if someone creates one and gives me access, I'll start right away :innocent:

@jeromegamez note your role in the organization :stuck_out_tongue_winking_eye:

given the organisation is called php-http, i think psr7-vcr would be the right name, resulting in php-http/psr7-vcr.

I think @jeromegamez already set the repo up.

he did. with the name i suggested. unless you changed the repository name right now :-)

Nope. Actually we discussed the name in the private chat and we followed the same logic as you did. :smile:

Can we close this in favor of #3? I think we discussed what needed to be discussed, the rest is up to @jeromegamez :stuck_out_tongue:

Of course :)


⚠ Bofrost.be has degraded performance

In c8d4c57, Bofrost.be (https://www.bofrost.be) experienced degraded performance:

HTTP code: 200
Response time: 1375 ms

Resolved: Bofrost.be performance has improved in d49db61.


Crash in USB device when turning HFXO off

Describe the bug
The crash was replicated during nrf_desktop usual tests after the last upmerge.
[00248874] <inf> event_manager: e: hid_report_subscription_event report 0x1 notification disabled by 0x20001b68
--
[00248882] <inf> pmw3360: Set sample time to 100 ms
[00253403] <inf> usb_hid: Device suspended
[00253404] <wrn> usb_state: USB suspend
[00253405] <inf> usb_state: USB HID 0x20002440 disabledASSERTION FAIL [err >= 0] @ WEST_TOPDIR/zephyr/drivers/usb/device/usb_dc_nrfx.c:771
[00253410] <err> os: r0/a1:  0x00000004  r1/a2:  0x00000303  r2/a3:  0x00000000
[00253410] <err> os: r3/a4:  0x0000000b r12/ip:  0x00000000 r14/lr:  0x00014bb9
[00253410] <err> os:  xpsr:  0x61000000
[00253410] <err> os: Faulting instruction address (r15/pc): 0x0000fb5c
[00253410] <err> os: >>> ZEPHYR FATAL ERROR 4: Kernel panic on CPU 0
[00253411] <err> os: Current thread: 0x200019e8 (unknown)
[00635097] <err> os: Halting system

To Reproduce
Steps to reproduce the behavior:
Replicated by automated tests.
DUT bonded with Tester (pc-ble-driver)
Tester enables HVN in DUT
DUT USB plugged in
Tester disables HVN in DUT
DUT USB plugged out

It seems it should be possible to crash the mouse by connecting/disconnecting the USB while BLE is active.
Expected behavior
Crash should not happen
Impact
Showstopper
Logs and console output
N/A
Environment (please complete the following information):
master
Additional context
N/A

@nordic-krch @emob-nordic

@nordic-krch Isn't this caused by dedicated path for enabling hfclk for bluetooth?

i suspect that it is caused by custom clock_control implementation in nrf connect sdk. I'm looking a that now.

@pdunaj can you close if https://github.com/nrfconnect/sdk-nrf/pull/2870 helped? It seems like not zephyr downstream issue.


Add R62 to list of dishonored return codes

In the NACHA rulebook Part 4.2: Table of Return Reason Codes, R62 is included under "Codes to be Used by the ODFI for Dishonored Return Entries".

Fixed in https://github.com/moov-io/ach/releases/tag/v1.37.5 - Appreciate the bug report!