Add interface/theme/{window_border_margin,top_bar_separation,default_margin_size} editor settings

This PR adds interface/theme/window_border_margin, interface/theme/top_bar_separation and interface/theme/default_margin_size editor settings in order to easily edit the editor interface margins.

[!NOTE]
This PR doesn't directly add a way to change the tree items margin size, only the default margin size used for all sorts of themes initiated during the startup for the editor.

Preview

TreeView (impacted by the change change)

default_margin_size at 4
default_margin_size at 2

Current issues with the PR

[ ] Some UI break with the default margins lower than 4 (like the Tree arrow placement and lines)

Fixes
Fixes godotengine/godot-proposals#8505

I think it makes sense to reduce the default spacing between docks (and the outer editor margin) as it doesn't really serve much of a practical purpose, but we don't need to add a setting for this.

As mentioned in the proposal, I don't think we should be exposing so many properties. If you want to customize the editor theme so granularly, you can already do that using the theme editor.
We are not exposing every property here, this is only a few that could be considered independent from the current theme. You could be using a theme to style it in some way and still prefer to tweak some values on top of it. Same as when users modify the text size or the rendering scale. So it is a bit of a strawman here. We are not adding every option the theme has to the panel, we are adding one that was requested and can benefit any theme you might already be using without having to modify it.

I also have plans for making custom editor/default themes based on the same parameters we use to do it in code, but exposed nicely to users. I feel like this will cover most of these edge case requests.
It is great that you have plans to do this, but right now we have this PR which would fix this. Do you have an estimate on when you'll be able to make a PR that implement this in a way that you think it's better?

I don't want this to be a "there can be a better way" hence we do nothing about it and we leave the PR, the proposal and the benefit of the user to rot.

@coppolaemilio

We are not adding every option the theme has to the panel, we are adding one that was requested and can benefit any theme you might already be using without having to modify it.

At least two of these properties are very specific and don't really benefit most of the themes as independent properties. I explained above that we don't have to expose properties one to one to their theme definitions. There is no such requirement. We can be smart about it and use a generalized and simple setting that would adjust all the properties described here. Or we can use the existing one that already works in a similar way by modifying it. Or we can just reduce margins by default, as Calinou suggests.
There are more options offered in just these few comments above than "we expose all or nothing". But if you insist on exposing them exactly as they are in the theme, then we do go back to the question raised in the proposal: where do we draw the line? How do you assess what's reasonable and what's not? Two people asked for two different things, and this PR does as it was bid by those two people. They have different amount of public support and are questioned on the merits differently. So what's the criteria that is not a strawman to you?

It is great that you have plans to do this, but right now we have this PR which would fix this.  ... I don't want this to be a "there can be a better way" hence we do nothing about it and we leave the PR, the proposal and the benefit of the user to rot.

And I don't want this to be a "Someone made a PR so we're already past the point of discussion, let's just merge whatever". I understand that you don't want to get stuck in a limbo discussing these changes, but that doesn't mean we shouldn't have a discussion at all. This is not how we work, and you are not in a position to decide for everyone if this is a good change or not. I feel slightly offended that key stakeholders like Calinou and myself are not taken seriously, like we're just hurdles in your path forward with this.
If you want to spend Adam's time on these improvements, why not spend it on a solution that we agree upon and see merit in? You don't have to get a consensus from the entire contributor base, but you could at least discuss it with the team before deciding that, yes, this is exactly what we need. Adam can just as well execute the plan that I imagine in my place, if we decide that it's a better solution. There is no need to commit to something hastily and then get defensive about it. We can just talk first, you know?

It's great that you feel passionate about this change!
What I see here is that there was:
problem -> solution a
And then, when presented with the solution, you say:
problem

solution b
solution c
solution d

So without going into the realm of: let's take this personal and fight about process.
What would your ideal solution be? I still don't know what you think should be done here.

My 2 cents:

it can expose a setting that is responsible for overall padding in various elements. We'd use it for the default margin and use twice as much for window border and the top bar separator

I'm fine with one setting that drives all of the paddings. I don't expect editor settings to provide too much granularity. As long as it affects the tree views enough to make the editor more practical, and if it's not hard to implement, I think it should be totally fine

we can discuss if it maybe should support negative values to reduce spacing in places

tbh to me as a user it doesn't really matter what range the values on a slider are as long as it does the thing. but I want to say that if it's going to be "extra spacing" it probably needs another name because to me as a user extra spacing that goes into negative feels like some kind of a hack

I think it makes sense to reduce the default spacing between docks

I agree with Calinou. None of the other apps that I use have dock gaps this big. I'd just cut them in half

I don't want this to be a "there can be a better way" hence we do nothing about it and we leave the PR

I agree with this too. This seems like a pretty simple and straightforward change, would be sad if it wasn't implemented due to some small disagreements on details, considering how many people expressed their interest in this

This seems like a pretty simple and straightforward change, would be sad if it wasn't implemented due to some small disagreements on details

So far nobody said that this shouldn't be implemented.

But why are you blocking then?

Because I want it to be implemented better. Above you can find a few suggestions about doing this change properly, including reducing default margins for everyone (which should already help most people who agree with @passivestar's proposal) and adding one general setting to control these margins instead of multiple settings.
Just because we defined independent properties in the editor theme doesn't mean we need to make it more finnicky to the end user to configure in the editor settings. The end user probably doesn't need to fine tune each individual property. They just want a more compact style for the editor in general. Please, don't give too much credit to the decision to use 3 different theme constants in the editor theme in the first place. It wasn't a conscious decision with a lot of weight on it, it was just a quick and convenient way to do it internally. So we don't have to abide by it. We can simplify and make it more sensible, more easily controlled, more high level.

and could already be merged

Just because someone made an effort it doesn't mean we are going to merge the PR. That's not how this project is governed. This is why we ask everyone to open proposals and discuss changes before committing to them. Making a PR is not a guarantee that your work is going to be accepted. And the proposal that this closes has an unresolved discussion, which now spills over here.

Making a temporary or partial solution in anticipation for a future, more comprehensive, solution just makes more work for everyone, the old feature has to be integrated, the old setting has to somehow be integrated with the new system, and users have to suddenly switch how they do things
Do don't want partial or temporary solutions for anything but critical issues that needs to be solved now

What right do you have to block other people’s proposals just because you want to do it differently?

As a stakeholder and a maintainer of the area it's my literal job to make sure contributions satisfy user needs, quality standards, and the overarching design.

@AsimDerth I have to remind you that we have a Code of Conduct. Please stay constructive.

This is an important feature for an usability standpoint that makes sense be available outside theming, someone working on a touch device would like to have more spacing just like a desktop user would like to have a more compact. But i understand what @YuriSizov is saying, having too many properties exposed could be detrimental to the user experience.
Having predetermined values could be a better experience, while allowing users to set a custom value using themes. One good example of that is Firefox

(ignore the compact version being deprecated)
They have a field called Density, with different options optimized for different use cases like Touch
But with custom css themes, you can set any value you want
We could do something like that, have a field called "Density" with multiple values like Compact, Normal, Tablet, etc with predetermined values optimized for that use case, but if the user would like to have a custom value, they could go with the custom theme route
(this is my first time posting and working with Godot, sorry for any mistakes i made)

I agree that this should be better implemented. Exposing 3 properties for only one purpose of reducing the gap between panels is so confusing and unnecessary complicated the UX, where the Settings already has the Reduce border size option which I thought it as an option to decrease the panel margin when the first time I’m using Godot. All other apps (like Blender, Unity…) have a very compact UI with small margin so why don’t we do the same? Just make it default by changing the hardcoded 8 to 1 or something, most user just go with it anyway because other popular apps do.

Personally, I don't want to see all the three settings in settings page for to achieve this requirement(which I very much want it)
But to achieve the requirements these three values are required to be configured.
I doubt and have a feeling that these are not the only ones that needs to be configured. There may be more values required to be configured.
The option of using themes to configure is bad, as already theme is too complicated for a basic user, and touching the theme used by the Editor 😨
My suggestion will be using a user-friendly setting like display_mode, which will have values like Default/Compact/Touch.
Internally Godot may use config files for each option containing all the settings required to achieve it. For advanced users they can edit the config files to further customise.

Superseded by https://github.com/godotengine/godot/pull/87085.


pick function logs are too verbose

Problem
The pick() function logs out message.data before and after the transformation, with log.level=info.
This causes a problem for me where the logs become almost double the size of the data I'm transferring, which in my case is 100's of GB. I could change log.level to error, but I need the metric logs, which are also info logs, to track progress.
I also realized this logging seems inconsistent with the other functions (omit, rename, skip, etc...) which don't log anything.
Proposed Options
I'm not sure what the best or right solution is here, but these are some possible options I came up with:

change the log level from info to debug
remove addition msg property of 'picking...' and '...picked'
remove logs from pick altogether

I can submit a PR once I get feedback on the right solution.

@kiavashps thanks for the report!
I'd say change the log level from info to debug as it was definitely put in place for debugging purposes.

awesome! will do.


Allow configuration of which corners to round

Sometimes a user may only want the bottom right and bottom left corners rounded. For example

In Swift that may look something like
config.roundedCorners = [UIRectCorner.bottomLeft, UIRectCorner.bottomRight]

I have something working on my branch that has an API like this if you want me to submit a PR with it, but I'd prefer the above API
    config.roundBottomRight = true;
    config.roundBottomLeft = true;
    config.roundTopRight = false;
    config.roundTopLeft = false;

I'm not familiar enough with Objective C to create it though

You can do it ! :)

Sweet!
https://github.com/zekunyan/TTGTagCollectionView/pull/49

Resolved after merge. Thanks for accepting the PR :)

Great work. Thank you. ~


Unable to start container

This (screenshot below) is all it prints in the logs (one line per attempt)
and shuts down in a sec
I tried 1521:1521 before this, also tried without volume (but I do need persistence throughout container cycles)
docker run -d -p 51521:1521 -e ORACLE_PASSWORD=admin -v oracle-volume:/opt/oracle/oradata gvenzl/oracle-xe

This (screenshot below) is all it prints in the logs (one line per attempt)
and shuts down in a sec
I tried 1521:1521 before this, also tried without volume (but I do need persistence throughout container cycles)
docker run -d -p 51521:1521 -e ORACLE_PASSWORD=admin -v oracle-volume:/opt/oracle/oradata gvenzl/oracle-xe

Repulled the image couple of times and it worked.


Define NodePool Weight/Pod Preference Interactions

Tell us about your request
Currently, the interactions and lines drawn between provisioner .spec.weight and pod preference mechanisms is ambigious. Some example of pod "preference" mechanisms are:

topologySpreadConstraint ScheduleAnyway
podAffinity preferredDuringSchedulingIgnoredDuringExecution
nodeAffinity preferredDuringSchedulingIgnoredDuringExecution

It would be good if Karpenter had an opinionated stance that was well-defined and well-documented on the order of priority each of these preference mechanisms is given by Karpenter's bin-packing.
Linked Issues:

aws/karpenter#3569
aws/karpenter-core#721

Linked Discussions:

https://kubernetes.slack.com/archives/C02SFFZSA2K/p1680627021710789

Tell us about the problem you're trying to solve. What are you trying to do, and why is it hard?
The interactions between various preference mechanisms is an inherently computationally complex problem. It's computationally infeasible to be "perfect" here but it should be possible to give users an ordering mechanism or a scoring calculation that is easily understood.
Are you currently working around this issue?
N/A
Additional Context
No response
Attachments
No response
Community Note

Please vote on this issue by adding a 👍 reaction to the original issue to help the community and maintainers prioritize this request
Please do not leave "+1" or "me too" comments, they generate extra noise for issue followers and do not help prioritize the request
If you are interested in working on this issue or have submitted a pull request, please leave a comment

closing as covered by https://github.com/kubernetes-sigs/karpenter/issues/666


Copy-DBALogin performance

I've been running a Start-DBAMigration against a server with ~100 databases, and a similar number of logins, and when it gets to the call to Copy-DbaLogin, performance slows to a crawl, to the tune of 1 login every 5-10 minutes.  I assume this is due to the permission and roles portion of the function.
It would be helpful if the function had a parameter to skip roles/permissions, especially for a full migration, since a restore of a backup during the migration will have all the same permissions and database roles.

Yuck, those are terrible speeds. Can you please run -Verbose and tell me where it's stalling?

Here’s the verbose logging on one of the logins:
<EMAIL_ADDRESS>Jason Allen
Senior Microsoft SQL Server DBA
[ntirety_NEWidLG]
From: Chrissy LeMaire<EMAIL_ADDRESS>Sent: Friday, November 9, 2018 5:49 PM
To: sqlcollaborative/dbatools<EMAIL_ADDRESS>Cc: Jason Allen<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [sqlcollaborative/dbatools] Copy-DBALogin performance (#4473)
Yuck, those are terrible speeds. Can you please run -Verbose and tell me where it's stalling?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/sqlcollaborative/dbatools/issues/4473#issuecomment-437540290, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AbTikBVT1kt-ddI0pRWp6pyOWE8nVH2bks5utiJ3gaJpZM4YXuUy.

Unfortunately, the photo via email did not work - it was linked like cid:image001.png@01Detc

Here lets try this way

thanks that worked - check out https://github.com/sqlcollaborative/dbatools/pull/4474 see if it helps


Samsung Galaxy Note 4 (N910F - 5.1.1) SystemUI issue

Hello there, yesterday has been released the 5.1.1 for the Samsung Galaxy Note 4 (N910F).
Today i tried to decompile and then recompile without any changes the SystemUI and when i moved it into my phone i noticed an issue: http://i.imgur.com/MOB4pLv.jpg (Look at the bottom)
The decompilation / Compilation didn't show any errors at all, only two warnings related to missing translations.
What can we do?
Here is the Framework-res.apk & SystemUI.apk:
https://drive.google.com/file/d/0B2osSqW4Jxl8bzNxdFdxVkZ4RWM/view?usp=sharing

I believe I fixed this here: https://github.com/iBotPeaches/Apktool/commit/421999747082b05e576cf3bdeba590fc1710cd31
Which will be in 2.0.2.

Oh, i've compiled the latest ApkTool via gradlebuild (Windows) and i've got the ApkTool v 2.0.2 (dirty).
Also tried with this version but i had the same issue..

Could be duplicate of #926 or #1023 , not sure. All of these related issues I'm sure are aapt's fault.

I see...
I hope you find the aapt's issue!

Closing as duplicate of #1023.
Appears to be aapt changing the order of attributes in various /layouts causing these troubles.


mesh.fallback needs to stop falling back even if there's no data

this would kinda bust how mesh works. Easy fix is to always return an OK response.


insert AdsReadSymbolInfo

hi,
can you insert AdsReadSymbolInfo in this library?
Thanks

I flagged this as enhancement. You are very welcome to contribute to this package. Maybe you want to make a PR?

This issue is adressed by https://github.com/stlehmann/pyads/pull/155 so I will close it.


chore: do not print prototype in jest snapshot

Motivation
This should help us when copying snapshots into code. In addition, I've made the window.location properly set up.
Have you read the Contributing Guidelines on pull requests?
Yes

❤ I wish I knew this option before thanks 👍

Haha, I think Orta implemented this option 😄 And everyone was like "Oh finally"


Make the v1 mypy plugin work with both v1 and v2

Closes https://github.com/pydantic/pydantic/issues/6898
See https://github.com/pydantic/pydantic/pull/6920 for the corresponding PR to the 1.10.X-fixes branch.

please review

Do we need this PR for main? Can't we just fix it on 1.10.X-fixes and release V1 before the next release of V2 and like before just include the latest V1 in V2?


An error occurs when executing the "Tool" example, the type does not match

Describe the bug
An error occurs when executing the "Tool" example, the type does not match.
Error Message:
Unable to convert from 'System.Collections.Generic.IList<CSharpToJsonSchema.Tool>' to 'System.Collections.Generic.IList<Ollama.Tool>'
Steps to reproduce the bug
Follow the "Tool" examples to write code
Expected behavior
Follow the example and execute normally
Screenshots

NuGet package version
1.13.0
Additional context
No response

Hi. Please use service.AsTools().AsOllamaTools()

@HavenDV It works. Thanks.


Setup another testing environment

Why
To allow the automated testing in separation, prepare duplicate of the staging environment for the DQuadrant team.
What

Prepare duplicate of the staging environment for the DQuadrant team.

@mesudip
Q:

Whether what is pushed by DQuadrant is to be run on the environment (meaning the tools)?
Is the subdomain needed? If so - nginx setup is needed.
Number of resources needed?
Are the ssh accesses needed?

Access via ssh?

sudo access needed if basic installs not done, like docker

subdomain -> would be best to have subdomain

Decision; use dQuads cardanoapi.io domain for now, migrate later on

what do we want?

replication of other existing environments
some resource limitations may occur, although enough for Node+DBSync

how is resource provisioning done

fixed is probably fine, but can be extended as needed

timeline

2 MD -> likely monday
but this is priority 1

No longer needed, closing for now.


crashes with a LOT of mods for no reason

-- Head --
Thread: Render thread
Stacktrace:
at java.base/jdk.internal.util.Preconditions.outOfBounds(Unknown Source)
at java.base/jdk.internal.util.Preconditions.outOfBoundsCheckIndex(Unknown Source)
at java.base/jdk.internal.util.Preconditions.checkIndex(Unknown Source)
at java.base/java.util.Objects.checkIndex(Unknown Source)
at java.base/java.util.ArrayList.get(Unknown Source)
at net.minecraft.class_2371.get(class_2371.java:47)
at net.minecraft.class_481.method_2466(class_481.java:644)
at net.minecraft.class_481.method_25406(class_481.java:561)
at net.minecraft.class_312.method_1605(class_312.java:100)
at net.minecraft.class_437.method_25412(class_437.java:409)
at net.minecraft.class_312.method_1601(class_312.java:100)
at net.minecraft.class_312.method_22686(class_312.java:169)
at net.minecraft.class_1255.execute(class_1255.java:102)
at net.minecraft.class_312.method_22684(class_312.java:169)
at org.lwjgl.glfw.GLFWMouseButtonCallbackI.callback(GLFWMouseButtonCallbackI.java:43)
at org.lwjgl.system.JNI.invokeV(Native Method)
at org.lwjgl.glfw.GLFW.glfwPollEvents(GLFW.java:3403)
at com.mojang.blaze3d.systems.RenderSystem.pollEvents(RenderSystem.java:201)
at com.mojang.blaze3d.systems.RenderSystem.flipFrame(RenderSystem.java:212)
Mixins in Stacktrace:
net.minecraft.class_481:
me.moutarde.realisticinventory.mixin.Creative.CreativeInventoryScreenAccessor (realistic-inventory.mixins.json)
me.moutarde.realisticinventory.mixin.Creative.CreativeInventoryScreenMixin (realistic-inventory.mixins.json)
dev.emi.trinkets.mixin.CreativeInventoryScreenMixin (trinkets.mixins.json)
net.fabricmc.fabric.mixin.itemgroup.client.CreativeInventoryScreenMixin (fabric-item-group-api-v1.client.mixins.json)
net.minecraft.class_312:
net.fabricmc.fabric.mixin.screen.MouseMixin (fabric-screen-api-v1.mixins.json)
net.mehvahdjukaar.supplementaries.mixins.fabric.MouseScrollMixin (supplementaries.mixins.json)
com.tiviacz.travelersbackpack.mixin.MouseMixin (travelersbackpack.mixins.json)
net.threetag.palladiumcore.mixin.fabric.MouseHandlerMixin (palladiumcore.mixins.json)
dev.architectury.mixin.fabric.client.MixinMouseHandler (architectury.mixins.json)
io.github.fabricators_of_create.porting_lib.mixin.client.MouseHandlerMixin (porting_lib_base.mixins.json)
net.mehvahdjukaar.supplementaries.mixins.MouseHandlerMixin (supplementaries-common.mixins.json)
com.railwayteam.railways.mixin.conductor_possession.MixinMouseHandler (railways-common.mixins.json)
net.minecraft.class_437:
net.fabricmc.fabric.mixin.screen.ScreenMixin (fabric-screen-api-v1.mixins.json)
net.threetag.palladiumcore.mixin.fabric.ScreenMixin (palladiumcore.mixins.json)
com.minelittlepony.common.mixin.MixinScreen (kirin.mixin.json)
com.tterrag.blur.mixin.MixinScreen (mixins.blur.json)
snownee.kiwi.mixin.client.ScreenMixin (kiwi.mixins.json)
net.diebuddies.mixins.guiphysics.MixinScreen (physicsmod.mixins.json)
dev.architectury.mixin.fabric.client.MixinScreen (architectury.mixins.json)
net.fabricmc.fabric.mixin.screen.ScreenAccessor (fabric-screen-api-v1.mixins.json)
net.diebuddies.mixins.cloth.MixinScreen (physicsmod.mixins.json)
dev.imb11.flow.mixin.ScreenAccessor (flow.mixins.json)
me.pieking1215.invmove.fabric_like.mixin.client.OverlayMixin (invmove-fabric-like.mixins.json)
io.github.fabricators_of_create.porting_lib.mixin.accessors.client.accessor.ScreenAccessor (porting_lib_accessors.mixins.json)
me.pieking1215.invmove.mixin.client.BackgroundMixin (invmove.mixins.json)
com.mojang.blaze3d.systems.RenderSystem:
qouteall.imm_ptl.core.mixin.client.render.MixinRenderSystem_Fog (imm_ptl.mixins.json)
qouteall.imm_ptl.core.mixin.client.render.MixinRenderSystem_Clipping (imm_ptl.mixins.json)
io.github.foundationgames.animatica.mixin.RenderSystemMixin (animatica.mixins.json)
com.jozufozu.flywheel.mixin.RenderTexturesMixin (flywheel.mixins.json)

Yeah, it seems to crash just straight out of the gate.

I just tried to load the mod without any other mods and uh... I was getting maybe 1 frame per 10 seconds In the main menu.
Not in a world. Freshly loaded. No other mods, just the Fabric API. And it was taking an eternity to get through the main menu settings.
Something is seriously wrong with this mod.


testing CI fixes

Describe what this PR does and why we need it:
Changes proposed in this pull request

Does this PR depend on another PR (Use this to track when PRs should be merged)
depends-on
Which issue this PR fixes (This will close that issue when PR gets merged)
fixes <issue_number>

Coverage remained the same at 40.97% when pulling 48980eb3aa79df87c4b2bc3a1b5c75a803779e84 on shawn-hurley:ci-testing into 36c052854a2f9e7c922f839bf0486e23cdd21261 on openshift:master.

No longer needed


Fixed issue

Hard Issue (JavaScript)
creating the searchBooks and filterBooks methods

Merged

This is an automated message from Fork, Commit, Merge [BOT].

Thank you for your contribution! Your pull request has been merged. The files have been reset for the next contributor.
What's next?
If you're looking for more ways to contribute, I invite you to check out my other projects. Just click here to find more. These projects contain real issues that you can help resolve. You can also check out the Influences section in the README to find more projects similar to this one.
Also please leave a star to this project if you feel it helped you, i would really appreciate it.
I look forward to seeing your contributions!


Hint is missing in Fibonacci Series

Description
Adding hint and removing the math module in the Fibonacci series program
Is your feature request related to a problem? Please describe.
It's somewhat related to a problem. Actually, the hint is missing in the Fibonacci series and the Math module is imported unnecessarily
Describe the solution you'd like

I like to add the hint message in the Fibonacci series
Remove Math module

@Manoj-Paramsetti please get started.

Okay,

Could you please explain what does adding hint here means ?

@Abhijit2505 Completed! check the pull request #151
I added the pull request related to issue #150 and this issue to reduce the commit numbers


Standardize Github Actions jobs.<job_id>.steps indentation

I am studying this workflow file:
https://github.com/ZcashFoundation/zebra/blob/5ade2a86f83fc7e0907d70524c5575f6f9ad162a/.github/workflows/push.yml
using this workflow "Log view":
https://github.com/ZcashFoundation/zebra/pull/163/checks?check_run_id=203489646
I am confused by the indentation style used to denote a sequence of jobs.<job_id>.steps.   I suspect my confusion stems from the inconsistency in the Github Actions documentation for "steps".
For example, within one screen-full of examples there are 3 different indentation conventions in use:

"-" in the "s"-in-"steps" column
"-" indented one space from "s"-in-"steps" column
"-" indented two spaces from "s"-in-"steps" column

Obviously these are all valid YAML, and the inconsistency is to be expected in a beta project, but I doubt there's much benefit to having so much variance in the documentation, and In My Opinion it decreases readability.
It'd be neat if Zebra enforced a strict standard and perhaps even proposed it to upstream Github Actions.
Why not enforce a 1-space indentation for the elements of a jobs.<job_id>.steps sequence?
Plausibly my attraction to this format is due to my long exposure to the semantically significant white-space of Python.
Actually in the course of creating this issue, I have realized that the authors of the jobs.<job_id>.steps document made exactly the error in the documentation, that I was making trying to read the file..   which might explain why I was confused...  the docs are wrong.
The document incorrectly asserts that, for example, id is a property of steps:
https://help.github.com/en/articles/workflow-syntax-for-github-actions#jobsjob_idstepsid
That's not correct.   The id is a property of an individual step within the sequence of steps.
I think the fact that the documentation authors made the error of conflating the properties of a step with the properties of steps argues in favor of enforcing a differentiating (Python-like) indentation style.
Readability is high a high priority desideratum.   <--(Okay, maybe I stretched a bit for that.  ;) )

Closing per https://github.com/ZcashFoundation/zebra/pull/168#issuecomment-526313160


perf: Add performance measurements

Add performance measurements
Generates a project of 100 components which look like this:

Webpack Dev Server Tests
Spawns the server and modifies a file to cause a webpack rebuild.
This is repeated for 10 builds.

typescript build with webpack-dev-server
babel build with webpack-dev-server

Webpack Cli Tests
Tries to build 3 times in production mode

typescript build with webpack-cli
babel build with webpack-cli

Results
The results can be seen in the travis logs:

It would be great that the test would fail if the difference to the last build time exceeds a certain threshold (e.G. 10%) depending on the environment, loaders and amount of files.


deps: upgrade vitest minor version

Motivation
Keep the dependencies upt-to-date, to improve stability of tests.
Description

Vitest improved performance in minor release, which will be useful for us.
Introduced feature to inject custom JS script in the brower tests, which will be useful for us testing bundled JS in our browser tests.

Steps to test or reproduce
Run all tests

:tada: This PR is included in v1.19.0 :tada:


Create new Viz package

A package to hold classes and utilities to build maps with deck-gl & carto

A first version has been created in web-sdk branch


Local neighborhood

The remaining steps for me are step 3 and step 5.
In src/local_neighborhood.py:

I have made modifications to the generation process of the nodes.txt and network.txt files. However, I have noticed that the inputs generated contain the first row as the title. As an example, one of the generated nodes.txt files follows this format:
NODEID
A
C
I would like to inquire if there is a way to remove the first row and match the format of the input files found in the directory spras/test/LocalNeighborhood/input.

Additionally, I am facing some difficulty in understanding how to implement the run function from local-neighborhood.py. I am uncertain about the appropriate command that should be utilized.

I think I have to implement the run function before writing testing function in test_ln.py.

We got through running the run function in our meeting; however now there's an error in the summary rule.

First, set the summary to false in the config file and confirm that the run function works. Then move on to figuring out why summary doesn't work.
Your config file currently runs a single dataset - is this potentially the problem?
Is there something we need to add for downstream analysis that is method-dependent? (I don't think so).

What was the error in the summary rule? Neha was also having errors there recently, so I would like to confirm they are different and not something I broke in a recent pull request.
Her's was related to ModuleNotFoundError: No module named ‘Dataset’

What was the error in the summary rule? Neha was also having errors there recently, so I would like to confirm they are different and not something I broke in a recent pull request.
Her's was related to ModuleNotFoundError: No module named ‘Dataset’

The error occurred during the execution of the Snakemake command. No modifications were made to the code in the Snakefile and src/analysis/summary.py files. The specific error message encountered is as follows:

Thanks for the error. That does look different.
What is the rest of the error that is cut off? Is it line 57, in runner.py? If so, this could possibly be coming from
from src.local_neighborhood import LocalNeighborhood as local_neighborhood

Snakemake sometimes is misleading about the true location of errors. It's possible the underscore in local_neighborhood is causing problems, though I don't immediately know why that would cause problems.

What is the rest of the error that is cut off? Is it line 57, in runner.py? If so, this could possibly be coming from

The screenshot is complete. It just says File "/home/lyce/miniconda3/envs/spras/lib/python3.8/concurrent/futures/thread.py", line 57, in run.

I guess it's saying the problem is in line 57 of the run function in thread.py as shown below.

I think I see what's happening now. It is coming from summary.run at line 223 of the Snakefile. The problematic part is algorithm_directed[wildcards.algorithm]. The config.yaml file hasn't set directed: false for the new algorithm so the dictionary doesn't have a value for that key.
This is something we should improve in the config file parsing:
https://github.com/Reed-CompBio/spras/blob/ea5b5fd7154364e0d734caa5241c96c1f1b1a741/src/util.py#L312C1-L313
We should open a new issue to log this problem.

I believe I have completed the contributing guide by finishing steps 3 and 5. The relevant codes can be found in the latest git commit (if you are unable to locate them, please inform me as I am new to using pull requests). However, while testing the code, I encountered another bug.
Upon running pytest for the first time, I encountered the following errors, which appear to be related to graphspace.

Upon examining the source code, I found that the issues are present in the following two functions. However, I am uncertain about the cause of these errors since I am not very familiar with graphspace usage.

Nevertheless, if I comment out these two functions, the test will pass as shown below.

I think I see what's happening now. It is coming from summary.run at line 223 of the Snakefile. The problematic part is algorithm_directed[wildcards.algorithm]. The config.yaml file hasn't set directed: false for the new algorithm so the dictionary doesn't have a value for that key.

And yes, adding directed: false for LocalNeighborhood in config.yaml fixes the problem. Thanks for the help!

Actually, the environment.yml file specifies networkx=2.8. @Lyce24 can you verify which version of networkx and graphspace-python you have? If it's version 2, then can you attach a plain text file of the entire error? That will help me sort through it. Thanks!

Initially, I installed networkx (which is version 3) and pytest using pip in my local development environment. However, when I executed pytest -s, the test utilized my local environment instead of the conda environment, resulting in an error. To resolve this, I uninstalled the local versions of networkx and pytest, and instead used the versions specified in the conda environment. As a result of this adjustment, the test successfully passed as shown below. Thanks!

Reviewed by Anna.


Improve test coverage

This PR aims at approaching 100% test coverage. The test script still needs to get more inspiration from the test files in Base (e.g. using @testsets), and tests should be strengthened wherever possible, e.g. changing == to ===. But those are improvements that can be done later.

lgtm

According to coveralls, we still need to cover the NaN and Inf cases for costau, but 94% coverage is a great improvement already, so I'll take care of those later :)


chore(deps): update dependency needle to v2.9.1

This PR contains the following updates:

Package
Type
Update
Change

needle
dependencies
minor
2.2.4 -> 2.9.1

Release Notes

tomas/needle
v2.9.1
Compare Source
v2.9.0
Compare Source
What's Changed

Add support for application/vnd.api+json content types by @kfitzgerald in https://github.com/tomas/needle/pull/362
underscore in nonce breaks the digest request by @ManjunathaN in https://github.com/tomas/needle/pull/356
Removed usage of deprecated API by @adityapatadia in https://github.com/tomas/needle/pull/348
treat xml and json mime types as text by @yetzt in https://github.com/tomas/needle/pull/351
Replace all .pipe calls with stream module pipeline method by @alolis in https://github.com/tomas/needle/pull/370

New Contributors

@ManjunathaN made their first contribution in https://github.com/tomas/needle/pull/356
@adityapatadia made their first contribution in https://github.com/tomas/needle/pull/348
@alolis made their first contribution in https://github.com/tomas/needle/pull/370

Full Changelog: https://github.com/tomas/needle/compare/v2.7.0...v2.9.0
v2.8.0
Compare Source
What's Changed

Add support for application/vnd.api+json content types by @kfitzgerald in https://github.com/tomas/needle/pull/362

Full Changelog: https://github.com/tomas/needle/compare/v2.7.0...v2.8.0
v2.7.0
Compare Source
What's Changed

add lookup param for request by @machao in https://github.com/tomas/needle/pull/360

New Contributors

@machao made their first contribution in https://github.com/tomas/needle/pull/360

Full Changelog: https://github.com/tomas/needle/compare/v2.6.0...v2.7.0
v2.6.0
Compare Source
What's Changed

Support brotli compression on Node 10+ by @colinskow in https://github.com/tomas/needle/pull/282
Fix typo by @markhoney in https://github.com/tomas/needle/pull/290
Add permanent redirect status code by @dkontorovskyy in https://github.com/tomas/needle/pull/293
test: change octal escape to Unicode escape by @brettz9 in https://github.com/tomas/needle/pull/295
Fix parsing xml CDATA values by @adexin-team in https://github.com/tomas/needle/pull/301
Add follow_if_different_location config by @laurent35240 in https://github.com/tomas/needle/pull/300
Add support for RFC-2069 by @mslosarek in https://github.com/tomas/needle/pull/305
Pass request cookies in redirects if follow_set_cookies is true by @tomas in https://github.com/tomas/needle/pull/307
Fix request cookies lost during multiple redirects by @ash0080 in https://github.com/tomas/needle/pull/291
Charset detection not default as utf-8 #306 by @alexburley in https://github.com/tomas/needle/pull/308
Simple request URI modification logic by @awiejacha in https://github.com/tomas/needle/pull/311
feat: allow needle to accept IP family as a parameter by @dkontorovskyy in https://github.com/tomas/needle/pull/316
Added hpagent to proxy section by @delvedor in https://github.com/tomas/needle/pull/325
Update regex for matching header by @alexburley in https://github.com/tomas/needle/pull/329
Fixed zlib_options used for zlib.BrotliDecompress by @Phygon in https://github.com/tomas/needle/pull/326
chore: README typo by @FauxFaux in https://github.com/tomas/needle/pull/333
fix: Allow brackets in www-authentication header values by @TimBailey-pnk in https://github.com/tomas/needle/pull/341

New Contributors

@colinskow made their first contribution in https://github.com/tomas/needle/pull/282
@markhoney made their first contribution in https://github.com/tomas/needle/pull/290
@dkontorovskyy made their first contribution in https://github.com/tomas/needle/pull/293
@brettz9 made their first contribution in https://github.com/tomas/needle/pull/295
@adexin-team made their first contribution in https://github.com/tomas/needle/pull/301
@laurent35240 made their first contribution in https://github.com/tomas/needle/pull/300
@mslosarek made their first contribution in https://github.com/tomas/needle/pull/305
@ash0080 made their first contribution in https://github.com/tomas/needle/pull/291
@alexburley made their first contribution in https://github.com/tomas/needle/pull/308
@awiejacha made their first contribution in https://github.com/tomas/needle/pull/311
@delvedor made their first contribution in https://github.com/tomas/needle/pull/325
@Phygon made their first contribution in https://github.com/tomas/needle/pull/326
@FauxFaux made their first contribution in https://github.com/tomas/needle/pull/333
@TimBailey-pnk made their first contribution in https://github.com/tomas/needle/pull/341

Full Changelog: https://github.com/tomas/needle/compare/v2.3.1...v2.6.0
v2.5.2
Compare Source
v2.5.1
Compare Source
v2.5.0
Compare Source
What's Changed

Support brotli compression on Node 10+ by @colinskow in https://github.com/tomas/needle/pull/282
Fix typo by @markhoney in https://github.com/tomas/needle/pull/290
Add permanent redirect status code by @dkontorovskyy in https://github.com/tomas/needle/pull/293
test: change octal escape to Unicode escape by @brettz9 in https://github.com/tomas/needle/pull/295
Fix parsing xml CDATA values by @adexin-team in https://github.com/tomas/needle/pull/301
Add follow_if_different_location config by @laurent35240 in https://github.com/tomas/needle/pull/300
Add support for RFC-2069 by @mslosarek in https://github.com/tomas/needle/pull/305
Pass request cookies in redirects if follow_set_cookies is true by @tomas in https://github.com/tomas/needle/pull/307
Fix request cookies lost during multiple redirects by @ash0080 in https://github.com/tomas/needle/pull/291
Charset detection not default as utf-8 #306 by @alexburley in https://github.com/tomas/needle/pull/308
Simple request URI modification logic by @awiejacha in https://github.com/tomas/needle/pull/311
feat: allow needle to accept IP family as a parameter by @dkontorovskyy in https://github.com/tomas/needle/pull/316

New Contributors

@colinskow made their first contribution in https://github.com/tomas/needle/pull/282
@markhoney made their first contribution in https://github.com/tomas/needle/pull/290
@dkontorovskyy made their first contribution in https://github.com/tomas/needle/pull/293
@brettz9 made their first contribution in https://github.com/tomas/needle/pull/295
@adexin-team made their first contribution in https://github.com/tomas/needle/pull/301
@laurent35240 made their first contribution in https://github.com/tomas/needle/pull/300
@mslosarek made their first contribution in https://github.com/tomas/needle/pull/305
@ash0080 made their first contribution in https://github.com/tomas/needle/pull/291
@awiejacha made their first contribution in https://github.com/tomas/needle/pull/311

Full Changelog: https://github.com/tomas/needle/compare/v2.3.1...v2.5.0
v2.4.1
Compare Source
v2.4.0
Compare Source
Full Changelog: https://github.com/tomas/needle/compare/v2.3.1...v2.4.0
v2.3.3
Compare Source
v2.3.2
Compare Source
v2.3.1
Compare Source
v2.3.0
Compare Source
What's Changed

Right way to fix the socket.destroy issue (Node v8.12.0) by @tomas in https://github.com/tomas/needle/pull/263
Update README.md by @pavelloz in https://github.com/tomas/needle/pull/267
switch from new Buffer() to Buffer.from() by @starpit in https://github.com/tomas/needle/pull/259

New Contributors

@pavelloz made their first contribution in https://github.com/tomas/needle/pull/267
@starpit made their first contribution in https://github.com/tomas/needle/pull/259

Full Changelog: https://github.com/tomas/needle/compare/v2.2.2...v2.3.0

Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.

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

This PR has been generated by Renovate Bot.

Renovate Ignore Notification
As this PR has been closed unmerged, Renovate will now ignore this update (2.9.1). You will still receive a PR once a newer version is released, so if you wish to permanently ignore this dependency, please add it to the ignoreDeps array of your renovate config.
If this PR was closed by mistake or you changed your mind, you can simply rename this PR and you will soon get a fresh replacement PR opened.


Investigate BiomeLoadingEvent

We could use this event to programmatically add our butterflies to specific biomes, removing another step to adding new butterflies to the mod.

BiomeLoadingEvent has been removed, but was able to achieve this using the data generation script instead.


[ci/backports/1.2] backport ci updates

Backported:
b5859ca - tests: optimize retry timeouts
705ec25 - tests: [fix] retry monitoring/exporters test
a8d901e - ci: ignore cluster deletion errors for EKS
d1fcdcb - ci: fix aks k8s version selection
422d434 - tests: retry Exporters tests on failures

bors rety

bors retry

bors retry

bors retry


Newbie: how to build

Hi,
I'm a C# developer with a working bot, who wants to host that bot in a react website using a custom build of the web chat component.
The reason I want to experiment with the custom build is to learn to use the look and feel of the bot. (and probably see what the possibilities are to implement custom querystring parameters)
I have no experience with node.js and the building process.
I came as far as I've downloaded a .zip file from github. I unzipped the contents to C:\Users\myusername\BotFramework-WebChat-0.11.1
I installed Node JS and than I opened a node js command prompt.
I entered C:\Users\myusername>npm install C:\Users\nst\BotFramework-WebChat-0.11.1. This seems to succeed (maybe someone can explain to me what exactly is done with the install command)
Then I choose for C:\Users\myusername>npm run build C:\Users\myusername\BotFramework-WebChat-0.11.1\src
I then get the exception No input file was found.
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR<EMAIL_ADDRESS>build-css: node-sass ./src/scss/ -o . && rimraf ./includes/
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>build-css script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
I would highly appreciate if somebody can point me in the right direction.
Best regards,
Nicolas

Hi Nicolas,
it looks like you just need to be in the same directory as your code.
Instead of being in C:\Users\myusername> you should be in C:\Users\myusername\BotFramework-WebChat-0.11.1. Then npm run build does not accept parameters.

Since this is a question about functionality and not a bug report of feature request, please ask it on Stack Overflow with tag botframework so that others can benefit from the answer.


WindowsFormsHost issue

i am trying to create hellotriangle wpf application and I am getting the error " WindowsFormsHost is not supported on wpf". I have installed opengl.net nugget package into my solution.
Can someone please help me resolve the issue ?

The error description is too vague to effectively solve your problem. Give the exception stack trace, and a describe the context where the exception is thrown (i.e. at design-time or run-time?
I've tried to google on this issue, and it seems that very few people cannot host a WinForms control in a WPF application.


Remove the dependency of Matplotlib

(1) replaced venn diagram with pie chart
(2) updated the doc
What does this PR do?
Fixes # (issue).
Before submitting

[ ] Was this discussed/approved via a Github issue? (no need for typos, doc improvements)

[ ] N/A

[ ] Did you make sure to update the docs?

[ ] N/A

[ ] Did you write any new necessary tests?

[ ] N/A

Codecov Report
Base: 87.06% // Head: 87.48% // Increases project coverage by +0.41% :tada:

Coverage data is based on head (9953cb5) compared to base (41c9c8c).
Patch coverage: 0.00% of modified lines in pull request are covered.

:exclamation: Current head 9953cb5 differs from pull request most recent head 92f8613. Consider uploading reports for the commit 92f8613 to get more accurate results

Additional details and impacted files
@@            Coverage Diff             @@
##             main      #23      +/-   ##
==========================================
+ Coverage   87.06%   87.48%   +0.41%
==========================================
  Files          26       26
  Lines        2034     2022      -12
==========================================
- Hits         1771     1769       -2
+ Misses        263      253      -10

Impacted Files
Coverage Δ

hta/analyzers/breakdown_analysis.py
83.57% <0.00%> (+3.66%)
:arrow_up:

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.

Removed text for Venn Diagram, and updated the figure setting

@sunghlin LGTM. Please merge.


Node commonjs2 library target exports are broken when using dynamic chunks with prefetch hint

Bug report

What is the current behavior?
Bundling node library target with commonjs2 output type produces incorrect exports statements when dynamic import chunks are generated with prefetch hints.
If the current behavior is a bug, please provide the steps to reproduce.
Full repro case is available in this repo: https://github.com/dbanisimov/webpack-commonjs-exports-repro

Create a library with dynamic imports and prefetch hints:

// dep.js
export default () => console.log("dep");

// src.js
export default async () => {
    import(/* webpackPrefetch: true */ './dep').then((res) => {
        res.default();
        console.log('lib');
    })
}

Bundle for node commonjs2

module.exports = {
  target: "node",
  output: {
    library: {
      type: "commonjs2",
    },
  },
};

Import the bundled library and inspect the library exports

const lib = require('./dist/lib');
console.log(lib);

// => actual `undefined`
// => expected Object [Module] { default: [Getter] }

What is the expected behavior?
The expected behavior is preserving the entrypoint exports, including the default one.

Other
After digging around I've found that this extra webpack runtime code line is responsible for corrupting the exports
// webpack bundle mode: 'development'
// `__webpack_exports__` becomes `undefined` after the `__webpack_require__.O` function call
var __webpack_exports__ = __webpack_require__("./lib/lib.js");
__webpack_exports__ = __webpack_require__.O(__webpack_exports__);
module.exports = __webpack_exports__;

This line comes from the onChunksLoaded runtime call introduced in this change. I can confirm that downgrading to<EMAIL_ADDRESS>mitigates the issue.
Other relevant information:
webpack version:  5.25+
Node.js version: 14.16
Operating System: Ubuntu 20.04
Additional tools: -

Duplicate https://github.com/webpack/webpack/issues/12993, thanks for the issue


Attention: "The" or "That" Choice in COBOL Programming with VS Code

Section 2.2.1: First Sentence
"....., it needs to know the that file we are editing is in fact COBOL type."

Thank you @salisbuk7897 will get it updated

Fixed. Thank you.


Updates javascript runtime stream annotations

@tomglenn just checking, there are a few lines removed for each of those functions. Is that correct?


The problem with the Windows bots should be fixed with  #13564.

cc @yjbanov .

Should this add some gitignores in the templates and the example projects?

This dramatically increased the size of the gallery. Is that expected? Are we including assets twice now or some such?

Could we revert this and give @tvolkert a chance to review? It affects Google build system in a significant way. Rolls are blocked because of it.

@mehmetf not easily because we'd have to revert several engine commits as well.
s'ok - I'll roll this once I'm back - there shouldn't be that much activity over the holidays anyway.

@szakarias does was this tested with --project=assets?  That flag is used for prebuilt applications (which are used inside Google).
https://github.com/flutter/flutter/blob/12f405578f16baa8afcff7258da844f8462ea33c/packages/flutter_tools/lib/src/commands/run.dart#L115
https://github.com/flutter/flutter/blob/12f405578f16baa8afcff7258da844f8462ea33c/packages/flutter_tools/lib/src/resident_runner.dart#L406

No, I will do that.

I need to merge #13521 into Google but this is currently blocking me, so I have to manually merge in #13521. Would be nice to have this fixed ASAP. Thanks!

FTR @szakarias the error we're seeing inside Google patching this in is:
I/flutter ( 3392): [INFO:engine.cc(586)] Could not configure asset bundle at path:

You can reproduce by patching in cl/179637015


policy: Add UUIDs to rules

Main question:

Is api.Rule{} the right abstraction level to put the UUID, or should it be in each individual api.IngressRule / api.EgressRule?

Summary
Add a UUID for every api.Rule, based on the policy add request (which implies that all rules in the same policy will have the same UUID):

In the k8s case, this is derived from the NP/CNP ObjectMeta.UID, so the same for every rule that's part of the same k8s policy object.
In the direct Cilium API case, this is autogenerated server-side as an RFC4122 version 4 UUID when the policy add request is received, ie there is one UUID for all rules that are added at the same time.
In the FQDN case, the FQDN poller will end up updating the same rule as the FQDN rule so the UUID will be the same there. However, for logging purposes in the PolicyAdd(), we pass down the slice of UUIDs so we can correlate those logs with other FQDN logs. This is not the cleanest solution, but it works for now and I expect that FQDN will change considerably over the coming months so I don't want to spend lots of times making this tidy just for us to go and rip it all up and do it a different way.

In the API, I reused the k8s UID type (basically a string), but I figured we may want a more fleshed out uuid internally and we use pkg/uuid in other places so in the daemon-level code I ensure we're dealing with pkg/uuid.UUID rather than k8s.io/apimachinery/pkg/types.UID.
Please review commit-by-commit.
Example
$ cilium_logs | grep UID
Mar 11 20:56:44 runtime1 cilium-agent[31396]: level=info msg="Policy Add Request" PolicyAddRequest="[ 2da16134-4440-11e9-a94f-0800271bbcb9]" ciliumNetworkPolicy="[&{EndpointSelector:{\"matchLabels\":{\"any:role\":\"victim\"}} Ingress:[{FromEndpoints:[{}] FromRequires:[] ToPorts:[] FromCIDR:[] FromCIDRSet:[] FromEntities:[] aggregatedSelectors:[{LabelSelector:0xc0006fb160 requirements:0xc0006fb1a0}]}] Egress:[] Labels:[:name=allow-all-to-victim] Description: UUID:2da16134-4440-11e9-a94f-0800271bbcb9}]" subsys=daemon
$ cilium policy get
[
  {
    "endpointSelector": {
      "matchLabels": {
        "any:role": "victim"
      }
    },
    "ingress": [
      {
        "fromEndpoints": [
          {}
        ]
      }
    ],
    "labels": [
      {
        "key": "name",
        "value": "allow-all-to-victim",
        "source": ""
      }
    ],
    "UUID": "2da16134-4440-11e9-a94f-0800271bbcb9"
  }
]
Revision: 2

Out of scope / other future work

Rearrange policy.Repository to reduce iteration.
Policy delete by UUID
Improve usage from FQDNs subsystem

Eg, have a global map by fqdn-UUID to allow direct lookup during DNS resolution

This change is

test-me-please

Coverage increased (+0.001%) to 43.117% when pulling 19c9fee1275a4783fa37a6e020c4a9505a97c79c on joestringer:submit/rule-uuids into 8a27ff5c5198c565b10c56d0bb63bdda7ce83917 on cilium:master.

I have a little documentation update queued for this too, will wait for a CI run first.

Hit #7105

Pushed new docs change commit, rebased.

test-me-please

test-docs-please

🎉 This is great. Do you intend to allow setting the UUID externally? (It's on the api.Rule object but we pass it around separately).
Looking at the policy repository code it would be simple to switch from an array (what we have now) to a map[uuid]Rule. This does mean that a UUID is required and that might complicate things a bit (unless we move the UUID setting into the policy repo :/). In any case, a lookup by UUID should be relatively simple to add so any FQDN lookups can be sped up nicely. That also avoids some raciness when updating rules.

Hi!
Overall, this is great change and I love it. I also have a few
questions/concerns:

If we use the opt.UID in the PolicyAdd the grep for uuid for a single
operation/add will not work, the thing of having a new UUID per request allow
us to be able to debug what happens in that function, request or change. It
makes things more easy to track.

Kubernetes has a UID per networkPolicy or CNP, IMHO we should use that UUID
due it's easy to keep track of that. The main problem with that is that the
UUID for multiple Specs is the same so should save all in a map like
map[UID][]api.rules.
Not far away I made this PR that address this Kubernetes UID.
https://github.com/cilium/cilium/pull/7183

Happy to discuss this concerns tomorrow in the Sig-policy meeting.
Best,
Eloy

@raybejjani
This is great. Do you intend to allow setting the UUID externally? (It's on the api.Rule object but we pass it around separately).

The "pass around separately" (at least eg at daemon policyAdd() level) is a side effect of it being part of the individual api.Rule, and the current usage which applies one UUID to all rules within a policy that's applied at the same time. Perhaps I could extend the api.Rules so that instead of being a slice of *api.Rule, it's actually an object which also contains the UUID, though I'm not exactly sure of the API breakage considerations there.
Part of this is also just that I'm generating the UUID server-side on policy add, but there's no reason this couldn't be pushed out to the client (...other than backwards compatibility needing to somehow ensure everything gets a UUID)

Looking at the policy repository code it would be simple to switch from an array (what we have now) to a map[uuid]Rule. This does mean that a UUID is required and that might complicate things a bit (unless we move the UUID setting into the policy repo :/). In any case, a lookup by UUID should be relatively simple to add so any FQDN lookups can be sped up nicely. That also avoids some raciness when updating rules.

I think we'll need to at least provide a UUID for all rules, albeit for backwards compatibility we'll likely need to retain the labels-based rule delete, for instance. This is expensive today, with UUIDs there should be no real impact.
Currently the UUID that's being passed down is the k8s ObjectMeta.UID, so it's basically the same for every rule that was inserted at the same time. For FQDN purposes, I think it would be fine to also generate unique UUIDs for each FQDN rule (perhaps, shift the current labels-based UUIDs into a new private fqdn-uuid field).

@eloycoto
If we use the opt.UID in the PolicyAdd the grep for uuid for a single
operation/add will not work, the thing of having a new UUID per request allow
us to be able to debug what happens in that function, request or change. It
makes things more easy to track.

Ah, so just rename to consistently use "UUID"? Sure thing, I'll fix this up. I was going back and forth about whether I should use the standard uuid name or uid, as they're technically RFC4122 Version 4 UUID, ie they are "universally unique identifiers" based on a timestamp, ie the time that the rules are imported. Which makes its "universal" uniqueness somewhat less unique than you might expect ;)

Kubernetes has a UID per networkPolicy or CNP, IMHO we should use that UUID
due it's easy to keep track of that. The main problem with that is that the
UUID for multiple Specs is the same so should save all in a map like
map[UID][]api.rules.

Yep, so using the NP/CNP UID already. But as you say the UUID is not unique for each element (eg each rule), they're all the same within the NP/CNP. We may, eg for FQDN purposes, need to generate our own unique UUIDs in addition to these.

Not far away I made this PR that address this Kubernetes UID.
#7183

Ah cool, I hope that we're able to structure this for reuse. IMO we should ideally deal with native UUID types to avoid the string operations like the ones in getRuleUUIDLabel(), just because that seems more costly than necessary. Maybe we can discuss over slack/zoom or during the policy meeting tomorrow if we have time.

Happy to discuss this concerns tomorrow in the Sig-policy meeting.

SGTM.

@raybejjani @eloycoto I've added a new commit on top which passes the FQDN UUIDs down into this layer, to clean up the useless fakeUUID. There's an awkward conversion, but I don't have full understanding at this point which variety of the uuid/uid types is the best to use at this point so I'm just doing the conversion to the Cilium type pkg/uuid.UUID and we can tidy this up to be more streamlined in future.
Example logs with FQDN import and DNS resolution:
$ cilium_logs | grep PolicyAddRequest
Mar 12 19:55:56 runtime1 cilium-agent[2533]: level=info msg="Policy Add Request" PolicyAddRequest="[d9b5698b-4500-11e9-9da6-0800271bbcb9]" ciliumNetworkPolicy="[&{EndpointSelector:{\"matchLabels\":{\"any:id\":\"app1\"}} Ingress:[] Egress:[{ToEndpoints:[]
ToRequires:[] ToPorts:[{Ports:[{Port:53 Protocol:ANY}] Rules:0xc0017b73b0}] ToCIDR:[] ToCIDRSet:[] ToEntities:[] ToServices:[] ToFQDNs:[] ToGroups:[] aggregatedSelectors:[]} {ToEndpoints:[] ToRequires:[] ToPorts:[] ToCIDR:[] ToCIDRSet:[] ToEntities:[] ToServices:[] ToFQDNs:[{MatchName:www.google.com MatchPattern:}] ToGroups:[] aggregatedSelectors:[{LabelSelector:0xc0003ac660 requirements:0xc0003ac720}]}] Labels:[] Description: UUID:d9b5698b-4500-11e9-9da6-0800271bbcb9}]" subsys=daemon
Mar 12 19:55:56 runtime1 cilium-agent[2533]: level=debug msg="Policy imported via API, found CIDR prefixes..." PolicyAddRequest="[d9b5698b-4500-11e9-9da6-0800271bbcb9]" prefixes="[]" subsys=daemon
Mar 12 19:55:56 runtime1 cilium-agent[2533]: level=info msg="Policy imported via API, recalculating..." PolicyAddRequest="[d9b5698b-4500-11e9-9da6-0800271bbcb9]" policyRevision=4 subsys=daemon
Mar 12 19:56:17 runtime1 cilium-agent[2533]: level=debug msg="Policy Add Request" PolicyAddRequest="[ d9b56dd8-4500-11e9-9da6-0800271bbcb9]" ciliumNetworkPolicy="[&{EndpointSelector:{\"matchLabels\":{\"any:id\":\"app1\"}} Ingress:[] Egress:[{ToEndpoints:[] ToRequires:[] ToPorts:[{Ports:[{Port:53 Protocol:ANY}] Rules:0xc001a0ad90}] ToCIDR:[] ToCIDRSet:[] ToEntities:[] ToServices:[] ToFQDNs:[] ToGroups:[] aggregatedSelectors:[]} {ToEndpoints:[] ToRequires:[] ToPorts:[] ToCIDR:[] ToCIDRSet:[{Cidr:<IP_ADDRESS>/32 ExceptCIDRs:[] Generated:true}] ToEntities:[] ToServices:[] ToFQDNs:[{MatchName:www.google.com MatchPattern:}] ToGroups:[] aggregatedSelectors:[{LabelSelector:0xc0000bdca0 requirements:0xc0000bdd40} {LabelSelector:0xc0003ac660 requirements:0xc0003ac720}]}] Labels:[cilium-generated:ToFQDN-UUID=d9b56dd8-4500-11e9-9da6-0800271bbcb9] Description: UUID:d9b5698b-4500-11e9-9da6-0800271bbcb9}]" subsys=daemon
Mar 12 19:56:17 runtime1 cilium-agent[2533]: level=debug msg="Policy imported via API, found CIDR prefixes..." PolicyAddRequest="[ d9b56dd8-4500-11e9-9da6-0800271bbcb9]" prefixes="[<IP_ADDRESS>/32]" subsys=daemon
Mar 12 19:56:17 runtime1 cilium-agent[2533]: level=info msg="Policy imported via API, recalculating..." PolicyAddRequest="[ d9b56dd8-4500-11e9-9da6-0800271bbcb9]" policyRevision=6 subsys=daemon
Mar 12 19:56:17 runtime1 cilium-agent[2533]: level=debug msg="Policy Add Request" PolicyAddRequest="[ d9b56dd8-4500-11e9-9da6-0800271bbcb9]" ciliumNetworkPolicy="[&{EndpointSelector:{\"matchLabels\":{\"any:id\":\"app1\"}} Ingress:[] Egress:[{ToEndpoints:[] ToRequires:[] ToPorts:[{Ports:[{Port:53 Protocol:ANY}] Rules:0xc001bdbc70}] ToCIDR:[] ToCIDRSet:[] ToEntities:[] ToServices:[] ToFQDNs:[] ToGroups:[] aggregatedSelectors:[]} {ToEndpoints:[] ToRequires:[] ToPorts:[] ToCIDR:[] ToCIDRSet:[{Cidr:<IP_ADDRESS>/32 ExceptCIDRs:[] Generated:true} {Cidr:2607:f8b0:4000:815::2004/128 ExceptCIDRs:[] Generated:true}] ToEntities:[] ToServices:[] ToFQDNs:[{MatchName:www.google.com MatchPattern:}] ToGroups:[] aggregatedSelectors:[{LabelSelector:0xc00123c460 requirements:0xc00123c4e0} {LabelSelector:0xc00123c500 requirements:0xc00123c580} {LabelSelector:0xc0003ac660 requirements:0xc0003ac720}]}] Labels:[cilium-generated:ToFQDN-UUID=d9b56dd8-4500-11e9-9da6-0800271bbcb9] Description: UUID:d9b5698b-4500-11e9-9da6-0800271bbcb9}]" subsys=daemon
Mar 12 19:56:17 runtime1 cilium-agent[2533]: level=debug msg="Policy imported via API, found CIDR prefixes..." PolicyAddRequest="[ d9b56dd8-4500-11e9-9da6-0800271bbcb9]" prefixes="[<IP_ADDRESS>/32 2607:f8b0:4000:815::2004/128]" subsys=daemon
Mar 12 19:56:17 runtime1 cilium-agent[2533]: level=debug msg="Decrementing replaced CIDR refcounts when adding rules" PolicyAddRequest="[ d9b56dd8-4500-11e9-9da6-0800271bbcb9]" prefixes="[<IP_ADDRESS>/32]" subsys=daemon
Mar 12 19:56:17 runtime1 cilium-agent[2533]: level=info msg="Policy imported via API, recalculating..." PolicyAddRequest="[ d9b56dd8-4500-11e9-9da6-0800271bbcb9]" policyRevision=9 subsys=daemon

Regarding changing policy from []*api.Rule to some kind of map[uuid]*api.Rule, I intend to leave that as future work just so we can scope this PR down to the minimal required changes to introduce the UUID as  a base field inside the repository.

test-me-please

@aanm :

The Labels field on a rule should act as the UUID of a particular rule

If we want to be able to keep track of where rules are being used in policy, and also be able to quickly refer back to the rules, being able to do a lookup via a single field as a string (UUID) vs. using labels in the rules (would require searching across all rules, and all labels in each rule for a given label) would be more performant. Also, labels are not guaranteed to be unique per CNP, while a UUID is. Eventually we would move to having a distinct UUID per rule, and as @raybejjani mentioned above, be able to index on a given rule (e.g., via a map lookup) vs. having to iterate across the entire repository to access it, which is what label-based lookup would require.

@aanm
@joestringer Sorry I know you have been asking for this for a couple days but I'm missing an some important.

No worries, this is API so let's do it right.

My main concern is, why do we need this UUID at all? The Labels field on a rule should act as the UUID of a particular rule. As you said in the PR description it seems that there's a UUID created on every policy import (API or k8s) so why can't we leverage the label io.cilium.k8s.policy.uid instead of adding this new field?

I should have started with this ;)
The primary goal of the UUID is to allow an internal representation of the partially computed policy to be reference-counted by multiple policies. I think it is not required to add the UUID explicitly to the API, but maybe some motivation will appear if I walk through an example (below).
Example with UUID to modify policy
Consider something like this:
apiVersion: "cilium.io/v2"
kind: CiliumNetworkPolicy
metadata:
  name: "l3-rule"
spec:
  endpointSelector:
    matchLabels:
      role: backend
  ingress:
  - fromEndpoints:
    - matchLabels:
        role: frontend
    - toPorts:
      - ports:
        - port: "80"
          protocol: TCP
---
apiVersion: "cilium.io/v2"
kind: CiliumNetworkPolicy
metadata:
  name: "l3-rule-2"
spec:
  endpointSelector:
    matchLabels:
      app: foo
  ingress:
  - fromEndpoints:
    - matchLabels:
        role: frontend
    - toPorts:
      - ports:
        - port: "80"
          protocol: TCP

(Two CNPs, so two UIDs; policy content is identical except for endpointSelector)
Let's say that there are the following endpoints:

endpointFoo: labels["foo","backend"]
endpointBar: labels["bar", backend"]

Let's say we compute a merged policy representation for endpointFoo. Both CNPs (with different UIDs) will refer to the same policy representation like L4Filter. So let's say we add a new field to L4Filter which is ContributingRules map[UUID]int. When I add the above CNPs, we will create one L4Filter object which merges the two CNPs above, and they will have ContributingRules with the UID of each CNPs. The value of each UUID entry in the ContributingRules would be 1 (to indicate one reference from that CNP to the merged rule representation).
When I try to remove the second CNP (which selects foo), I want to remove a reference from ContributingRules to the UID of that CNP, but detect that there is no actual delta in the datapath implementation (because the rules exactly overlap). This should be trivial; if you remove the second UUID from ContributingRules, then ContributingRules still maintains a reference from the first CNP's UUID, so the rule will not be deleted. Therefore, there is no datapath delta.
With UUID as native type inside Rule representation
If the UUID is a native type passed along with each individual api.Rule, then adding/removing UUID references in the ContributingRules is simple - we directly index using a short, well-known UUID representation. In k8s case, this is directly derived from the same source as io.cilium.k8s.policy.uid; in non-k8s, Cilium generates the UUID. It's stored in a single, easily-referenced location.
Using labels
Let's say that without this PR, we use the io.cilium.k8s.policy.uid label instead. Now, whenever evaluating the rule change, we need to iterate through the list of labels for each rule, perform string matching to figure out that the labels represents the UUID, and then use that particular label to figure out the ContributingRules impact. It's the same base information, but now because we didn't cache the information earlier, we don't have direct access to the UUID and need to perform additional operations to reconstruct it.
In the non-k8s case, we also then need some other representation of the uuid in the labels somehow.
One alternative is, what if we don't use the specific io.cilium.k8s.policy.uid label, but use all of the labels. This just means that we need to evaluate something like a hash based from all of the labels in the rule. Maybe this is a reasonable alternative to what I'm proposing here.
Secondary motivation
The secondary motivation is to allow visibility into which rules are associated with which CNP.
One nice aspect of storing the per-Rule UID is that when you dump the policy repository via cilium policy get, each rule links back to a CNP. You can also grep the cilium logs and correlate the insert of that entire policy. In cilium policy trace, we can also correlate this - "We are allowing this traffic based on rule X, and by the way rule X is derived from CNP Y". We may be able to take this further from a visibility perspective; imagine passing this UUID (or a derivation thereof) down to the datapath so you can say "we allowed this specific traffic, because of CNP Y".
Future considerations
Unique UUIDs per rule could be:

Generated within Cilium with Cilium maintaining a mapping to the CNP, or
Injected into CNP directly, then Cilium just takes the Rule-specific UUID.

k8s will provide us with a unique UUID per CNP currently. We could consider adding an additional layer of abstraction here where generate a unique UUID per Rule, then link these back to the CNP as "derived from" that particular CNP UUID. Assuming we cache enough information about which internal representations of the partially-resolved policy are derived from which Rule UUIDs, we could potentially remove iteration over the repository to remove specific rules. This would require significant changes in the handling of policy updates however, to generate policy deltas (compared to what we do currently, which is a full delete of old policy + full insert of new policy).
Most of the above is assuming that we generate these UUIDs within Cilium. Perhaps in future, whoever writes the CNP could generate their own UUIDs with the uniqueness they want, for example with a unique UUID per actual rule. They could define this inside their CNP YAML, then Cilium could take advantage of this for simplifying policy modification and providing visibility into the specific rules that allow specific traffic flows.
Summary
The UUID does not need to be in the API at the moment. Making it readily available may have some visibility benefits, however to truly harness the potential, additional features would need to be built, none of which are specifically planned right now.
One simple alternative to this approach would be to instead move the UUID away from the API, and into the internal policy.rule representation. The cardinality would remain the same, but it would no longer be directly visible through API.
Another alternative (alluded to above) is to consider the entire set of labels as a unique identifier, and whenever we want to perform these UUID-like operations, we generate a hash-based UUID from the set of labels. This will provide uniqueness per-Rule (or set of labels associated with a rule), however the UID will be guaranteed to be different from the cnp.ObjectMeta.UID, so correlating with the NP/CNP will require additional effort.

Suggestion from @aanm out-of-band, a slight variation which avoids exposing a new
UUID field in the API but allows similar semantics to achieve the primary motivation specified above:
l := labels.Array{}
l.SetUUID("foo")

func (l *labels.Array) SetUUID(uuid string){
    // store UUID label in the labels array and also keep it as a field in the labels.Array type
}

func (l *labels.Array) GetUUID(){
   // return stored UUID and don't look at any labels
}

When importing the rules, the UUID can be associated with the labelArray of the rules (perhaps in k8s case by calling labels.SetUUID(cnp.ObjectMeta.UID) on the rule, while in cilium policy API case be a RFC4122v5 UUID hash of the labelArray). This caching would avoid runtime cost when manipulating rules.
In k8s case the labels of each rule already contain the UID from the CNP as labels in the rule of io.cilium.k8s.policy.uid, so there's no point duplicating it. The secondary motivation is already achieved via this mechanism today.
I'll investigate this as an option.

I'm going to close this for now. This PR will serve as a useful reference, but an eventual implementation should not touch the API unless we have clear API users. We should be able to achieve the same functionality just by extending policy.rule.


user create

user create

Hi @GaneshKandu,
I think fos:user:create takes 3 arguments, your FoS command is not complete. Please, PR to development branch as mentioned in Contribute.md.
Thanks.

php bin/console fos:user:create {{user}} {{email}} {{password}} Please add fifth step to create user


Redesign landing page of website

http://designmodo.github.io/Flat-UI/ this is the framework we are going to use

Submitted the PR.


Tests

Write... tests!

ref also: https://github.com/ipfs-shipyard/station/issues/50

Track in #50


Add baseurl support to docs - 1.6

Replace .. with {{site.baseurl}}. The value for site.baseurl can be
set within _config.yml. This makes building docs for other locations
simpler.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/2449/
Test FAILed.


Camera loading on full zoom

Do you want to request a feature or report a bug?
Bug

What is the current behavior?
If I load the webpage on Android 7.0 on Huawei P8 Lite it zooms very far in meaning I cannot use the application correctly.
If the current behavior is a bug, please provide the steps to reproduce.
Just loading the page on the phone does it it, you don't need to do anything special. The camera will load with a full zoom.

What is the expected behavior?
I would expect that it does not zoom and works properly like on every other phone/device but unfortunately on this phone with Android 7.0 the camera is zooming in fully.
If this is a feature request, what is motivation or use case for changing the behavior?
Please mention other relevant information such as the browser version, Operating System and Device Name
android version 7.0 huawei p8 lite

@curtisboylan is it the real-world camera that is zoomed in, the 3D scene, or both? is this specific to AR.js, or does the same thing happen when viewing other web pages that use the camera on this device? It would be helpful if you could include screenshots to help diagnose
Thanks!

I am also facing this issue. Till date, i was building my application on glitch. But today i thought of opening that glitch live url on the phone. And to my surprise, the camera gets opened on full screen mode. I am also using Android 7.0 device. Earlier i was testing the application in windows 8.1.

phewww!! Issue is resolved. Just replace below line in index.html
<meta name="viewport" content="width=device-width, initial-scale=1">
with this.
<meta name="viewport" content="width=device-width, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0">

@gabrielgrant This zooming issue I am having is real life with the camera.

Interesting, thanks for the workaround @manishbansal8843
does that work for you, @curtisboylan ?

@manishbansal8843 @gabrielgrant This is working for me but unfortunately is very very zoomed out. It looks like a desktop version is running on the android and also the "content" displays far away from the actual poster

Yes, it sounds like the original issue you reported is caused by the mobile browser trying to adjust the zoom/scale of pages to look better than just showing the entire desktop content. The workaround forces the browser to display the content without any zooming (ie showing the full content). If you want the content partially zoomed, I imagine you may able to set the initial-scale, minimum-scale, and/or maximum-scale to something greater than 1, although it sounds like you may just want to explicitly add responsive CSS rules that adjust the styling to better suit the user's screen size.

@gabrielgrant Is there any other solution? It is only on this certain android version. If I changed CSS etc it will effect all versions and all phones??

Without being able to see this issue reproduced, it's hard to give more advice here. If you'd like more help, please provide a MCVE and some screenshots of the problem

@gabrielgrant  I just got hold of that phone again and tried using @manishbansal8843 site. I will attach a screenshot of the issue. The same thing is happening on mine. The little "VR Goggle" is tiny and the marker projection is going off screen. Any ideas?

@curtisboylan For the issue in which AR content is being displayed away from marker, do you have any other HTML element inside body but outside a-scene element ?

Some content

I also faced this issue. And i found out that one of the reason for this is having other HTML elements within your body tag.

@manishbansal8843 Yeah one thing I have in there is a header div, I will try removing it but I have removed it before and it made no difference. I do see though that yours still has the same issue on my phone here with the issues when I browse to your site, do you know this or did you fix it somewhere else?

@gabrielgrant @manishbansal8843 any update on a solution to this? Still the same issue on this device.

@curtisboylan thanks for the extra details. To confirm, this only happens with AR.js? or is does this also happen with other, non-AR.js-based A-frame content?
Also, mind showing what it looks like with initial-scale, minimum-scale, and maximum-scale set to 1?

<EMAIL_ADDRESS>yeah seems to only happen with ar.js but I haven’t noticed with any other web pages. Then screenshots are the scales set to 1, it looks ok with the scale set to 1 but the market images appear off the marker as the screenshot shows
Get Outlook for iOShttps://aka.ms/o0ukef

From: Gabriel Grant<EMAIL_ADDRESS>Sent: Monday, July 2, 2018 11:58:11 PM
To: jeromeetienne/AR.js
Cc: Curtis Boylan; Mention
Subject: Re: [jeromeetienne/AR.js] Camera loading on full zoom (#369)
@curtisboylanhttps://github.com/curtisboylan thanks for the extra details. To confirm, this only happens with AR.js? or is does this also happen with other, non-AR.js-based A-frame content?
Also, mind showing what it looks like with initial-scale, minimum-scale, and maximum-scale set to 1?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/jeromeetienne/AR.js/issues/369#issuecomment-401962173, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AT4XusZbcbKZkDB9ZbMAPKdkKtN2k0ePks5uCqWDgaJpZM4UtOqh.

had the same issue on Android Samsung S7 on Chrome.
but @manishbansal8843 solution worked for me.

@fariskas could you show your whole code if possible?

mine is just the basic demo setup for ar.js.
You can view the source here:
https://fariskassim.com/stage/rebel9/arjs/v1/index.html

I can confirm that @manishbansal8843 's meta tag solution works for the zooming issue.
As for the AR assets not appearing with the level of precision you'd want, I am experiencing that bug as well on my Samsung Note 8 running<EMAIL_ADDRESS>and<EMAIL_ADDRESS>

I do not see the same issue with the 'A-Frame basic' example here though.
Here's how it looks in Samsung Internet v7:

And here's how it looks in Chrome 70:

(The debug elements are not visible in the former and the overlay elements are cut off on the left, but) there is no difference in zoom.
So now I'll compare this example with our code lab and figure out why ours isn't working...

So the difference between the two was that the A-Frame basic example does not have a viewport meta tag at all. I removed ours too and it solved the zoom issue in Chrome.
Unfortunately this does not solve the problem in Samsung Internet v8 on the Note 9, though. The A-Frame basic example has the same issue here:

But I realised that if I switch off the 'Manual Zoom' here in the settings menu...

...then (it's a bit pixellated but) it works:

hello, I am experiencing this full zoom issue too but only with iOS/safari machines but works fine with android/ chrome/ samsung b(r)owser.
no A-frame, only AR.js and three.js in my code

I have the same problem on this.  Any progress on it...?
(use Android 9.0, AR.js & three.js)

I have the same problem with a huawei p30.
I discovered that the camera with the excess of zoom, is only one of the cameras that has the device.
on this site https://simpl.info/getusermedia/sources/ you can change the source of the camera, and indeed there is one that has a lot of zoom, but the others do not.
I ask, how could I change the origin of the camera in a-frame?

I found out that the error of showing debug messages  only for an half, is a matter of CSS style. I will make a simple MR to fix that for both desktop and mobile. Already tested it.

Hey All,
I have made an AR page by angular. It opens the camera and show a model inside of it(similar to https://www.joshmorony.com/augmented-reality-in-an-ionic-angular-pwa/) and I want to show this page inside of mobile applications(The mobile applications developed by ionic). By saying this, I mean we have a button, if we click on it, it opens Safari(Chrome in android) outside of the application with the url of the AR page. This solution works for android devices but for iOS I have a zoom issue. When safari gets open the camera starts zooming till the page crashes. I

s there any solution for this problem?

Hello,
any news about it? I have a Huawei p30pro smartphone and the problem persists.

Hey ,
This snippet works for me. hope it helps :)
"" +
"" +
"" +
"" +
"" +
"" +
"" +
"" +
"" +
"" +
"" +
""

Hey , this snippet works for me. hope it helps :)
`

	</entity>

Hi @SiaAf
unfortunately your method doesn't work for me

Experiencing zoom issue with the examples. However, when decreasing system font size of Android device (Samsung Galaxy M20, Android Pie) the zoom level in the examples reduces too 🙃

I'm currently building an ar.js card game and I'm experiencing a similar issue. I'm currently using svelte to make the build dynamic. However, I was able to get the frame to fit the screen using !important on my css targeting the body and the video respectively. Indeed the video feed is WAY larger than the body, so i needed to move the video left with another !important. A third issue I noticed was using my phone (LG V30+) the opposite is happening and it's showing the feed from my wide angle lens which is distorting the marker and causing it to not show up. I got curious so I opened firefox which does ask which camera you'd like to use; and I was able to select the regular focal length camera and my AR.JS project worked. Like everyone else, it looks like my overall ar.js project is super zoomed or scaled in a weird way because the VR icon in the bottom right corner is super small.  Has there been any progress on this? Or is there a repo somewhere that shows how to manually switch cameras in chrome?
I can def post an example of my problem if it'll help.

Any word on this? I too have the zoomed camera issue.

I'm having the same issue.

As @nachoaguirre  already mentioned: the problem occurs while AR.js is selecting the wrong camera! New phones have multiple back-cameras and I think somewhere in AR.js it takes the first one in the list.
The solution for this problem would be: Let the user switch between cameras!
Somewhere here in AR.js:
// get available devices
	navigator.mediaDevices.enumerateDevices().then(function(devices) {
                var userMediaConstraints = {
			audio: false,
			video: {
				facingMode: 'environment',
				width: {
					ideal: _this.parameters.sourceWidth,
					// min: 1024,
					// max: 1920
				},
				height: {
					ideal: _this.parameters.sourceHeight,
					// min: 776,
					// max: 1080
				}
		  	}
		}

		if (null !== _this.parameters.deviceId) {
			userMediaConstraints.video.deviceId = {
				exact: _this.parameters.deviceId
			};
		}
		// get a device which satisfy the constraints
		navigator.mediaDevices.getUserMedia(userMediaConstraints).then(function success(stream) {
			// set the .src of the domElement
            domElement.srcObject = stream;
			var event = new CustomEvent('camera-init', {stream: stream});
			window.dispatchEvent(event);
			// to start the video, when it is possible to start it only on userevent. like in android
			document.body.addEventListener('click', function(){
				domElement.play();
			});
			// domElement.play();
                         // TODO listen to loadedmetadata instead
			// wait until the video stream is ready
			var interval = setInterval(function() {
				if (!domElement.videoWidth)	return;
				onReady()
				clearInterval(interval)
			}, 1000/50);
		}).catch(function(error) {
			onError({
				name: error.name,
				message: error.message
			});
		});
	}).catch(function(error) {
		onError({
			message: error.message
		});
	});

How could we let the User toggle between available devices?

Guys which phone do you have? It's confirmed that this is caused by phones with multiple cameras?

@nicolocarpignoli Mine is Huawei P20 pro - I can definitely confirm that the camera which got selected by AR.js is the wrong camera; it is the first one in the list of "facing back" cameras - On Huawei P20 pro there are 4 different facing back cameras and the first one is that one which is extremely zoomed in - same zoom level like in a simple AR.js demo.

I may include this feature in next version. We can do this way: show a dialog to select the camera only if more than 2 cameras are available. Otherwise act like now selecting rear camera

I can't test it, can anyone help me next days with a test for this new feature?

@nicolocarpignoli please don't show a dialog, since this is disruptive for the user experience. Select the default camera, like now, and give the devs the possibility to handle this for their users. for example a small switcher in the corner (on click switch to next available camera; even front cam could be in the list, for augmented face masks in the future? :p )
thx

Guys which phone do you have? It's confirmed that this is caused by phones with multiple cameras?

Yeah that's the main reason I'm having the issue. when I use a browser that lets me pick the camera, i choose the camera that is NOT my wide angle lens and the application works as intended.

I may have done some progress to this. Can anyone please test? See there: https://github.com/jeromeetienne/AR.js/pull/661#issuecomment-559787020

Sharing an ugly fix for the multiple camera phones issue:
In aframe-ar.js (2.0.8) right after declaring var userMediaConstraints I check for an available camera with label "camera2 0, facing back".
If such a camera is available, I set it in the userMediaConstraints.
I have just tested it with 19 different Android phones and it works (including Huawei P30 Pro and Mate 20 Pro).
Here's the full code:
`
var userMediaConstraints = {
audio: false,
video: {
facingMode: 'environment',
width: {
ideal: _this.parameters.sourceWidth,
// min: 1024,
// max: 1920
},
height: {
ideal: _this.parameters.sourceHeight,
// min: 776,
// max: 1080
}
}
}
// CUSTOM CODE START
var backCam2 = devices.filter(d=>{
return d.label && d.label == "camera2 0, facing back";
})
if (backCam2.length) {
userMediaConstraints.video.deviceId = backCam2[0].deviceId
}
// CUSTOM CODE END
`
It's surely not bulletproof but so far I can't break it. It even fixed a Honor 8 problem where ARjs was using the front camera.
Hope it helps :)

Check my PR on pull requests it may help. I did the same thing of yours Sent from my Huawei phone-------- Original Message --------Subject: Re: [jeromeetienne/AR.js] Camera loading on full zoom (#369)From: Nikola Georgiev To: "jeromeetienne/AR.js" CC: Nicolò Carpignoli ,Mention Sharing an ugly fix for the multiple camera phones issue:
In aframe-ar.js (2.0.8) right after declaring var userMediaConstraints I check for an available camera with label "camera2 0, facing back".
If such a camera is available, I set it in the userMediaConstraints.
I have just tested it with 19 different Android phones and it works (including Huawei P30 Pro and Mate 20 Pro).
Here's the full code:
var userMediaConstraints = { audio: false, video: { facingMode: 'environment', width: { ideal: _this.parameters.sourceWidth, // min: 1024, // max: 1920 }, height: { ideal: _this.parameters.sourceHeight, // min: 776, // max: 1080 } } } // CUSTOM CODE START var backCam2 = devices.filter(d=>{ return d.label && d.label == "camera2 0, facing back"; }) if (backCam2.length) { userMediaConstraints.video.deviceId = backCam2[0].deviceId } // CUSTOM CODE END
It's surely not bulletproof but so far I can't break it. It even fixed a Honor 8 problem where ARjs was using the front camera.
Hope it helps :)
—You are receiving this because you were mentioned.Reply to this email directly, view it on GitHub, or unsubscribe.

@tommensink - we found a workaround for the SamsungBrowser zooming && 3d offset.
If you place the ARjs in an iframe and both the parent and the iframe content files have <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1, user-scalable=no"> it seems to work properly.
The canvas is no longer huge (we experienced 6000+ px width on protrait).
The augmented 3D content seems to be aligned properly.

in Samsung Internet Browser at Disabling the “control zoom in web pages” option removes the zoom scale as the displacement of the content to be displayed.

@tommensink - we found a workaround for the SamsungBrowser zooming && 3d offset.
If you place the ARjs in an iframe and both the parent and the iframe content files have <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1, user-scalable=no"> it seems to work properly.
The canvas is no longer huge (we experienced 6000+ px width on protrait).
The augmented 3D content seems to be aligned properly.

Show the code of how to use  with ar.js

Sharing an ugly fix for the multiple camera phones issue:
In aframe-ar.js (2.0.8) right after declaring var userMediaConstraints I check for an available camera with label "camera2 0, facing back".
If such a camera is available, I set it in the userMediaConstraints.
I have just tested it with 19 different Android phones and it works (including Huawei P30 Pro and Mate 20 Pro).
Here's the full code:
`var userMediaConstraints = {
audio: false,
video: {
facingMode: 'environment',
width: {
ideal: _this.parameters.sourceWidth,
// min: 1024,
// max: 1920
},
height: {
ideal: _this.parameters.sourceHeight,
// min: 776,
// max: 1080
}
}
}
// CUSTOM CODE START
var backCam2 = devices.filter(d=>{
return d.label && d.label == "camera2 0, facing back";
})
if (backCam2.length) {
userMediaConstraints.video.deviceId = backCam2[0].deviceId
}
// CUSTOM CODE END`
It's surely not bulletproof but so far I can't break it. It even fixed a Honor 8 problem where ARjs was using the front camera.
Hope it helps :)

lifesaver dude

feel free to re-open this discussion at: https://github.com/AR-js-org/AR.js if still needed help for someone

Was this resolved within AR.js? I'm having Zoom-issues like described above on Samsung S8 and S10 - got it fixed with the workaround
<meta name="viewport" content="width=device-width, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0">
but now the model spawns from out of the screen, and not from the marker anymore. Works flawlessly on iOS and other Android devices (i.e. Huawei).
Hoping somebody could help me out.

Using an iframe helped me to fix it on my Samsung S6 (in the Samsung browser). Solution from here: https://stackoverflow.com/a/14738668/5028033
This is what I use now as iframe "container". Project code is in project.html then:
https://pastebin.com/EKRLwQEz

Using an iframe helped me to fix it on my Samsung S6 (in the Samsung browser). Solution from here: https://stackoverflow.com/a/14738668/5028033
This is what I use now as iframe "container". Project code is in project.html then: https://pastebin.com/EKRLwQEz

That did it for me me, thanks!

@gabrielgrant I just got hold of that phone again and tried using @manishbansal8843 site. I will attach a screenshot of the issue. The same thing is happening on mine. The little "VR Goggle" is tiny and the marker projection is going off screen. Any ideas?

@curtisboylan  Did you manage to solve this problem? Because I'm having the same problem?

@LucasYuugi wow, this is a throwback, haven't touched this in quite a while...
did you try @rainerlonau 's iframe workaround? any luck with that?

@gabrielgrant My problem is that in my code, when I remove the zoom with this code:

The object is off the center of the cell phone, and when I applied @rainerlonau  code it didn't work either. It started to slide the page instead of rotating the object (the object wasn't even in the center).
https://glitch.com/edit/#!/test12425

can confirm that @manishbansal8843 's meta tag solution works for the zooming issue.
As for the AR assets not appearing with the level of precision you'd want, I am experiencing that bug as well on my Samsung Note 8 running<EMAIL_ADDRESS>and<EMAIL_ADDRESS>
@curtisboylan Can you did resolve this problem?

Using an iframe helped me to fix it on my Samsung S6 (in the Samsung browser). Solution from here: https://stackoverflow.com/a/14738668/5028033
This is what I use now as iframe "container". Project code is in project.html then: https://pastebin.com/EKRLwQEz

@rainerlonau
When I implemented this code, I managed to center the object, however, it stopped detecting the touch, causing the object to no longer rotate.

@LucasYuugi Hi, sorry I can´t help atm. My solution is over two years old. I didn´t touch this framework since then. Also our project was only a prototype back then, so it´s not maintained.
Did you create a clean demo project using AR.js basic sample? Then apply my workaround with the iFrame? Does that still work?
Or did you directly use your code? Could be an issue with that?


Aren't you updating Qboost?

Though Contributors are active, updating source code are stopped since 2 years ago. Aren't you updating source code?

Hi @azuri7. Thanks for your interest! We are now maintaining the code in https://github.com/dwave-examples/qboost


Cant use dask.dataframe concat to constuct a dataframe from groupby apply results

Hi
Thanks for an awesome package!
I am using python 2.7 and trying to use groupby.apply and than concat in order to get some aggregation of my data. which is somewhat similar to Apache spark flat map and then create a data frame from it.
I get either type error, or not implemented error, no matter what I try (this works well when using pandas)
Please refer to my stack overflow question.
Is this a bug or am i missing anything here?
Thanks!

Thanks for raising a stack overflow question.  That is indeed the right place for usage questions like this.  Closing this github issue as redundant.