Follow symlinks when stripping vendor directories

A bit of extra trickiness here because I'm scared of repos with a symlink like ./vendor -> /.
I would love any guidance on how to write an integration test for this! I verified by hacking this into dep and running it on a test repo, but I don't feel comfortable without being able to run cross-platform tests...
Fixes #198

Uuuuughh. Yeah, I spent some time a couple weeks ago trying to work through similar problems in #177, ultimately having to roll back #157 because I couldn't find a satisfactory answer. However, that the need here may be simpler, as I think there's only the simpler requirement of inspecting the outermost symlink. That may make it equivalent to the first-pass of work in #157;  the implementation and/or tests in there may be worth looking at.
Hopefully something in there will spark a thought about a cross-platform test. If not...well, we'll have to put our heads together 🤔 😄 because yeah, I'm not willing to merge something as potentially destructive as this without cross-platform test coverage.
symlinks are the fscking worst.

@sdboyer, this is ready for review at last!

Gonna try to have a look tonight - sorry for delay!

I can't remember if I've pointed you to it before or not, but the work being done in golang/dep#247 might be helpful here.

Alright, I think we should just ignore junctions if we ever encounter them in this function. I don't think we ever will, though: junctions turn out to have much more in common with hard links than symbolic links, for one thing, and git won't place hard links on your file system. Similarly, msysgit won't put junctions on your file system. It's not at all clear how that would even work, since junctions must point to absolute paths and require lots of permissions to create.
There's also the lack of support in the Go os and filepath packages for handling junctions. It's hard to convince the go standard library's os.Remove call, for example, to remove just the junction link and not the thing it points to. I think you'd need to use the exec package and run linkd to do it. filepath.Walk doesn't behave the way I'd expect with junctions, too.
This function only runs against the code inside ./vendor, so it should only be running against stuff we pulled down with a VCS tool, so it probably won't ever encounter a junction. But if it does, I think the best thing is to ignore these things. Maybe we should raise an error instead, though?
I'm at least confident that we should not try to prune them.

Alright, I think we should just ignore junctions if we ever encounter them in this function. I don't think we ever will, though: junctions turn out to have much more in common with hard links than symbolic links, for one thing, and git won't place hard links on your file system. Similarly, msysgit won't put junctions on your file system. It's not at all clear how that would even work, since junctions must point to absolute paths and require lots of permissions to create.
There's also the lack of support in the Go os and filepath packages for handling junctions. It's hard to convince the go standard library's os.Remove call, for example, to remove just the junction link and not the thing it points to. I think you'd need to use the exec package and run linkd to do it. filepath.Walk doesn't behave the way I'd expect with junctions, too.
This function only runs against the code inside ./vendor, so it should only be running against stuff we pulled down with a VCS tool, so it probably won't ever encounter a junction. But if it does, I think the best thing is to ignore these things. Maybe we should raise an error instead, though?
I'm at least confident that we should not try to prune them.

I can find no way to confidently detect whether a file is a 'regular' symlink versus a junction on windows, other than writing some very gnarly syscalls. The current code checks if a file named vendor is both a symlink and a directory - this only happens on windows, but it happens for both symlinks and junctions. Symlinks named vendor would be safe to os.Remove, but junctions would not. We could just skip both to be safe, or we could try to tell the difference between the two.
syscall.Readlink sniffs to tell the difference in the standard library - it's the only code I've found that gets into the muck of reading the reparse tags that describe this: https://github.com/golang/go/blob/a1cedf08428bdb91916bb5317c8413212308048c/src/syscall/syscall_windows.go#L1005-L1060
I don't think this sort of thing belongs in gps. It seems way too low-level. I think we should just not support pruning out symlinks on windows. What do you think, @sdboyer?

So, tests don't pass on windows, because even a "normal" windows symlink created with os.Symlink which points at a directory looks like a dir and a symlink, not just junctions.
I'm kind of at a loss here. We could detect the difference between Windows symlinks (which can be safely removed) and junctions (which cannot) but we'd have to use a lot of unsafe and syscall to do so. Or, we could just not prune symlinked vendor directories on Windows. I'd like guidance from the benevolent leader here, @sdboyer :)

This block is what it looks like to determine whether a file is a symlink or a junction, for reference: https://github.com/golang/go/blob/a1cedf08428bdb91916bb5317c8413212308048c/src/syscall/syscall_windows.go#L1007-L1023

https://github.com/golang/go/blob/a1cedf08428bdb91916bb5317c8413212308048c/src/syscall/syscall_windows.go#L1007-L1023

aaaaaack hack hack cough cough splutter
Yeah...let's just fall back to this:

we could just not prune symlinked vendor directories on Windows.

I'm content to kick this can down the road for now, as long as we make a TODO in the code and an issue on the repo. First, we have bigger fish to fry right now. Second, I'm wary about making too many choices with respect to symlinks now, as we may be making promises that ultimately aren't consistent with the final vision for the Go tool. Absent someone reporting an actual problem, I'd rather not invest in a bunch of logic that I don't fully understand that we may need to change anyway.

(ﾉಥ益ಥ）ﾉ sʍopuıʍ
According to some guy on stackoverflow and some other guy on technet, icacls is unable to modify the permissions of a junction itself. It will always modify the junction's target.
There appears to be no way, other than modifying file system metadata directly (probably by using syscall and unsafe), to change the permission of the junction. You're not supposed to be able to list junctions contents - you have to go to the paths inside them directly (according to this blog post, anyway).
Sadly, we're just going to have to drop the test coverage of junctions. Rough.

(ﾉಥ益ಥ）ﾉ sʍopuıʍ

this

Well, I'm glad we have all the history here - and commits to potentially un-revert with tests - whenever we do decide to tackle this. Thanks for being indefatigable, as ever, @spenczar 😄


fix: specify cargo-ledger package

CI is currently failing because the new tests in cargo-ledger contain several Cargo.toml files and cargo install using a git link needs to know which one to use specifically

Yep, see .https://github.com/rust-lang/cargo/issues/3049

@yhql this PR can be closed we are using the app-builder now in the CI, which already has cargo ledger


[FLINK-1523] vertex-centric iteration extensions

This PR builds on top of @andralungu's work in #537.
The vertex-centric iteration is extended with the following options:

set the messaging direction
retrieve the total number of vertices inside the messaging and update functions
retrieve the in- and out- degrees of a vertex inside the messaging and update functions

The functions are also modified to use the Vertex type as a parameter instead of separate key and value.

Uhhh this looks incredibly clean now :))
+1 to merge

Thanks for the review @andralungu!
I rebased again because of the iteration configuration changes.
If no objections, I would like merge this tonight.


stlink: 1.6.0 -> 1.7.0

Motivation for this change
new release supports my stlink v3 mini
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[x] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[x] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"

Result of nixpkgs-review pr 120570 run on x86_64-linux 1

1 package built:

stlink

[x] Tested execution of all binary files (usually in ./result/bin/)
[x] Determined the impact on package closure size (by running nix path-info -S before and after)

/nix/store/cj0478xkd1d8yashwafhy0vscf714qkp-stlink-1.6.0	   87538528
/nix/store/hb4a42hf45xjdk9vzxg4llr74dx5a9yk-stlink-1.7.0	   87769408

[x] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 120570 at 6d1c419e run on x86_64-linux 1

1 package built successfully:

stlink

1 suggestion:

warning: patch-phase
patchPhase should not be overridden, use postPatch instead.
Near pkgs/development/tools/misc/stlink/default.nix:23:3:
   |
23 |   patchPhase = ''
   |   ^


404 at /engine/reference/commandline/engine/reference/commandline/events

I found a broken link : https://docs.docker.com/engine/reference/commandline/engine/reference/commandline/events#object-types
I arrived on this page through: https://docs.docker.com/engine/reference/commandline/compose_events/

Looks like the link was fixed


When i use tensorflow-gpu i got error

My opencv version is 4-1 and tensorflow-gpu version is 1-13-1, and when i rundetector = MTCNN() just like what the README said i got a attribute error said ' 'MTCNN' object has no attribute '_MTCNN__session' '. Could anyone tell me how to fix it?

BTW, when i use tensorflow cpu version everything goes right.

i got the same issue

i use tensorflow-gpu 1.11.0 and no error
maybe you try to downgrade version

AttributeError: module 'tensorflow.compat' has no attribute 'v1'

If use TF-gpu v1.*, we should fix the code to compat tf(v1),
tf.compat.v1.x -> tf.x
tf.nn.max_pool2d -> tf.nn.max_pool
...
, and then the project will work well

@ipazc @hegc @jotoy @Mi-zo-re @akofman
HI,
Hope you are well
As per your suggestion, I am using MTCNN for face detection, I take GPU,
Can you please, tell me how can I able to remove the MTCNN from GPU after it detected the face?
So, if MTCNN was removed from GPU after it detected the face, I can pass CDCN to GPU
image
It is set a different Steps_threshold, at MTCNN it gives different Boundary Box values
The Default Steps_threshold =[0.6,0.7,0.7]
image
Hope for a reply
Thank you

You can use retinaface for face detection, which is better than mtcnn. @punitha-valli

Hi,
Thank you so much for your reply
Can you please share any github pages for retinaface , mxnet
In my research, I want to detected the face and send to my model to detect
is it spoof or real
So face detected is the initial part to get the faces in the image
Hope for a reply, it will be a great help for my research study
Thanks in advance
On Wed, Apr 7, 2021, 9:21 AM ffhh @.***> wrote:

You can use retinaface for face detection, which is better than mtcnn.
@punitha-valli https://github.com/punitha-valli
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/ipazc/mtcnn/issues/38#issuecomment-814533634, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AMM7B25HDJXNUBMZ2RL3Q7LTHOXSTANCNFSM4HOXN5LQ
.

@punitha-valli
pytorch: https://github.com/biubug6/Pytorch_Retinaface
mxnet: https://github.com/deepinsight/insightface/tree/master/detection


Thicken normal incorrect

l1 = JernArc((0,0), (-1,0), 1, 180).edge().reversed()
l2 = JernArc((0,0), (1,0), 2, -90)
s = RadiusArc((0,0), (0,-1), 1)
f = sweep((l1^0)*s, l1) + sweep((l2^0)*s, l2) # Workaround for #622

p = thicken(f, 0.4)

There is a normal_override parameter of thicken to help cope with these situations:
p = thicken(f, 0.4, normal_override=(0, 1, 0))

When thicken was developed controlling the normal was found to be difficult so this override was added as the best solution at the time.

Shouldn't it just thicken in the face normal?


Add test-case for default. default should obviate require

The tests for default are incorrect.
The specification Section 6.2 states:

There are no restrictions placed on the value of this keyword.
This keyword can be used to supply a default JSON value associated with a particular schema. It is RECOMMENDED that a default value be valid against the associated schema.
This keyword MAY be used in root schemas, and in any subschemas.

While this means that are no limits on the value of default, the presence of this keyword has other implications. One of them is the fulfilment of the required keyword.
If the schema as presented in this pull-request is not valid, then there is no purpose for the default. Whether this is implemented by modifying the original document (which would go against the intent of pure validation) or by simply modifying the validation can be up to the implementation. However this schema as presented should be valid by any compliant implementation

this is also referenced in an issue on the specification

The interpretation you have isn't impossible, but it's not the one intended by draft 3 and 4. The tests are correct as is, and default basically is just for documentation purposes. I'd encourage you to lobby in the schema repository if you feel the behavior should be changed for draft 6 though.
Personally while in isolation I agree with the current (draft 4) behavior, I think that in all draft 4 gives new users lots of stumbling blocks on validators that end up just being for documentation.

I think that in all draft 4 gives new users lots of stumbling blocks on validators that end up just being for documentation.

@Julian I'm kind of hoping we split the annotation keywords out into a full documentation vocabulary as suggested for json-schema-org/json-schema-spec#136

@handrews cool, that looks like a promising issue!


Font size

Hello! At first, I would thank you for translation! Hope you'll keep working!
Now the issue, I installed my pretty font and since it's monospaced it dispays fine. Of course, font can be increased in the Word and other programs. But defolt size in Tsukihime is kinda small. I mean, really small. There's any ways to increase size? Because font is actually cool and fits with style of Tsukihime, but the size leaves much to be desired. Thank you!

The game does not have a way to modify the font size. We do not support using fonts other than the inbuilt font, as it has a number of extensions to support our extended text effects.


Volvera la pronación algún dia?

Is your feature request related to a problem? Please describe
A clear and concise description of what the problem is.
Ex: I'm always frustrated when [...]
Describe the solution you'd like
A clear and concise description of what you want to happen.

Remember that a great explanation leads to a greater understanding

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Remember that a great explanation leads to a greater understanding

Additional context
Add any other context or screenshots about the feature request here.

desearia que vuelva la pronacion ya que no hay otro mod que haga lo mismo, solo e visto el de modular movements pero buguea muchas texturas de otros mods

Esta ya es una función planificada para volver a agregar la capacidad de rastrear


Maya: fix crashing model renderset collector

Changelog Description
This fix is handling case where model is in some type of render sets but no other connections are made there. Publishing this model would fail with RuntimeError: Found no items to list the history for.
Testing notes:

Create simple model
Put it for example into vrayDisplacement set
Publish

One small note: even tho it works the vrayDisplacement set is not propagated when publishing model family.
Is there any OP Settings which allowing it or simply not supported at this time?

@antirotor  we should keep the vray sets when publishing the asset. Should we treat it in separate PR? Because right now it got stripped off. opinions?

we should keep the vray sets when publishing the asset. Should we treat it in separate PR? Because right now it got stripped off. opinions?

The model publish itself is intended to exclude shaders and sets but it publishes along a look set I believe, as per this logic here: https://github.com/ynput/OpenPype/blob/7be7c8292aace23a6a1926985fdfede2bf26caa6/openpype/hosts/maya/plugins/publish/collect_look.py#L630-L655
Are you saying that that would need to include the vray sets? if so, then that makes sense, yes. However, for me I was unable to quickly get that look set to be extracted. It could be that a certain plug-in needs to be enabled to ensure those get exported. (Even though looking at the code it would still exclude vray sets)

@antirotor as pointed out above - the look render sets applying still needs a fix ☝

@antirotor as pointed out above - the model look render sets applying still needs a fix ☝

I found the issue and it is puzzling. I am not sure if it was there for some time or it is new behaviour of Maya 2024, but it seems that when cmds.ls(render_sets, type=render_set_types) encounter type that isn't available, ls() will issue warning about unknown type but returns empty list.
I didn't test it in older versions of Maya, but this fix works for me in 2024 and VRay. I've also fixed that inventory action.

Task linked: OP-7457 Maya: fix crashing model renderset collector


Nuget installation installs App_Plugin and Views folders in two locations

For some reason installing via nuget puts files in the following locations in my solution:
App_Plugins/Meganav
Views

and
Web/ui/App_Plugins/Meganav
Web/ui/Views

Big thanks for raising this @ProNotion! #h5yr
This is something we've been aware of and has been fixed as part of the latest release, v1.1.0. You can download right now from all the usual places including NuGet and Our Umbraco
Cheers!


Adding ignores for production installs

So when installed in production mode, no tests are included

Thanks!

I pushed v1.1.0 to ForgeBox with this update in it.


Database bug: If I sign up twice for one same username but 2 different email address, it should have given me the error.

Then I won't know which email address that account belonged to.
Screen Capture 6.mov.zip

Duplicate of #87


Recommended way for removing PII from error messages

I'm writing express middleware to parse the Google JWT from an auth header.
// example prototype code
export function addAuthPayloadToContext(
  req: Request,
  res: Response,
  next: NextFunction,
): void {
  const idToken =
    req.headers.authorization &&
    req.headers.authorization.replace('Bearer ', '')

  if (!idToken) {
    // token empty
    next()
    return
  }

  new OAuth2Client().verifyIdToken({ idToken })
    .then(ticket => {
      res.locals.ticket = ticket
    })
    .catch(reason => {
      logger.warn(reason)
    })
    .finally(next)
}

I noticed that when verifyIdToken, the reason passed to the catch statement has an error message that includes raw text followed by unparsed json with PII like first/last name and email address. I was wanting to scrub the PII out reliably, but not sure if this text is guaranteed to be formatted in any specific way since it's a raw string. Is there any recommended way of doing this?
Example error message with some manually masked PII:
Error: Token used too late,<PHONE_NUMBER>.532 ><PHONE_NUMBER>: {"iss":"accounts.google.com","azp":"*****.apps.googleusercontent.com","aud":"*****.apps.googleusercontent.com","sub":"****","hd":"gmail.com","email":"v****l@gmail.com","email_verified":true,"at_hash":"iaushfiuadshfiu","name":"John Doe","picture":"https://lh6.googleusercontent.com/****/photo.jpg","given_name":"John","family_name":"Doe","locale":"en","iat":1595018574,"exp":1595022174,"jti":"****"}

Greetings, we're closing this due to inactivity. Please let us know if the issue needs to be reopened.

👋  a few years ago while at npm, I wrote this for hiding secrets when logging objects.
It's bit out of date, but might be worth looking at for inspiration.


Rewrite module system as a compiler plugin

I don't think compiler plugins were a thing when I first attempted the module system, so I think it's about time I rewrote it. A compiler plugin is far more suitable I think? Should be able to produce MUCH nicer code and actually be able to maintain it. So consider the current module macros EOL and in maintenance mode until I tackle a rewrite.
I don't think it'll change anything for the users other than their compiled Lua should be far simpler and I'll actually be able to work on the module system without losing my hair :D

Just wanted to say this sounds amazing to me. Aniseed is a fantastic environment, only brought down by difficult to understand mapping from fennel to actual lua. If I understand what this issue represents, this would go a long way toward fixing that. Sounds awesome

There will still be some level of extra padding added to your Lua, but I
think it'll look more idiomatic, right now it looks super hacky because of
the nesting and scoping I've had to do to get the macros to work. Hopefully
it'll be a LOT more readable and more like what you'd write.
On Mon, 31 May 2021 at 01:59, Keith Simmons @.***>
wrote:

Just wanted to say this sounds amazing to me. Aniseed is a fantastic
environment, only brought down by difficult to understand mapping from
fennel to actual lua. If I understand what this issue represents, this
would go a long way toward fixing that. Sounds awesome
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/Olical/aniseed/issues/45#issuecomment-851100607, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AACM6XICHSGPP35OGEDXAVDTQLNNHANCNFSM45WMCKNA
.

Not going to do this since the result will be basically the same for a bunch of work, so the branch is now defunct.
However, I want to change how all Aniseed evals work so they all take place in stateful REPLs that are instantiated for each buffer. This means you won't need the Aniseed module macros at ALL to work with Conjure, they will become optional.
Within that eval environment almost all of the code that currently goes into the macros goes away, they can be FAR simpler if they can rely on state between evals. So my goal is to change the outside eval rules so the macros aren't required but are a thin sugar on top of Fennel instead, for those that want it.


[FEAT] Update links of some (or all) GitHub profiles

Hi there! 👋
I came across this repo after I joined this org to see some awesome README templates. But turns out that some didn't update their profile links in data.json which in turn appears the redirect link as https://github.com/undefined. YEP! It's a 404 error page! So, I thought I can report this so no one will do this mistake ever again.
P.S: If this issue is brought already, then kindly close this one. Thanks!

@alphaX86 did you mean to close this?

@eddiejaoude not exactly. But I just want to convey this issue so that new comers won't make the mistake of not adding the links in data.json. Well I can reopen again if you want me to do so. It's just a message in fact. Plus, it's been a week since I opened , so yeah.

Oh I see, hmm, if it can be left open for the moment and hopefully some can fix it.
Would you be able to add an example with links to the line in the files, that will make it easier for someone to fix

Well, I'll do that for sure 👍

This PR seems really good @AllanRegush


fs2ff suddenly not working- shows auto- connecting all the time

Hi..i was successful running fs2ff and it really is a great product...i was running the running the version 0.1.13 but suddenly it showed "unable to connect to flight simulator" when i tried connecting...i noticed that there is an update to .14 version but that shouldnt matter from what i read in one of the other threads....anyways, i decide to update it to new version which has auto-connect functionality...it keeps on showing "auto-connecting" and doesnt get connected...If i disable the auto connect option and manually try to connect, it shows the same error as earlier version which is "unable to connect to flight simulator".....i tried re-installing the fs2ff also but still not connecting....any fix to this?

astenlund no longer supports this program... There are two components that allow this connection. The Fs2FF and the SimConnect dll that interfaces with FS. Try downloading the latest FS SDK from the developer tab in game.
I have a branch of Fs2FF that I built to use GDL90 and some other fixes.  You can download that version from here: https://github.com/jeffdamp-wave/fs2ff. I also suggest not using AutoConnect and make sure the IP to the device you are using is correct.

@jeffdamp-wave Thank you for taking care of the project in my absence, it seems to be in good and capable hands. Can I redirect to your fork from my page? I am no longer flying IRL, so it's hard for me to continue supporting the application. You can email me at<EMAIL_ADDRESS>if you'd like to discuss things a bit.

Sure feel free to redirect. I haven’t had much time to update my code either but I think I can manage at least maintaining it.  Maybe I’ll look into signing my .exe and doing some other updates (like getting on a more recent version of .Net).
Sorry you are no longer flying. I still try to get up as often as I can. Currently working on my IFR ticket. When I sim I still find little gems using the GTN750 that I can then use in my real plane.
I had originally made the branch for better Garmin Pilot support and testing changes I was doing with Stratux. Since upgrading to a GTN750 I haven’t had the need to use my Stratux. GP has also improved their support for Stratux.
I still want to add FIS-B support so pickup weather from the Game.  Last time I tried that I found a bug in SimConnect, I think the SDK team had fixed that but I never got back to adding it.
Thanks, Jeff
From: Andreas Stenlund @.>
Sent: Monday, November 13, 2023 9:03 AM
To: astenlund/fs2ff @.>
Cc: Jeff D. @.>; Mention @.>
Subject: Re: [astenlund/fs2ff] fs2ff suddenly not working- shows auto- connecting all the time (Issue #96)
@jeffdamp-wave https://github.com/jeffdamp-wave  Thank you for taking care of the project in my absence, it seems to be in good and capable hands. Can I redirect to your fork from my page? I am no longer flying IRL, so it's hard for me to continue supporting the application. You can email me at @.*** @.***>  if you'd like to discuss things a bit.
—
Reply to this email directly, view it on GitHub https://github.com/astenlund/fs2ff/issues/96#issuecomment-1808593469 , or unsubscribe https://github.com/notifications/unsubscribe-auth/AOUVTKCABBV27ZLZIH24URLYEJHFBAVCNFSM6AAAAAA7IZNJ46VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQMBYGU4TGNBWHE .
You are receiving this because you were mentioned.  https://github.com/notifications/beacon/AOUVTKG52G4AAAR36LO44LTYEJHFBA5CNFSM6AAAAAA7IZNJ46WGG33NNVSW45C7OR4XAZNMJFZXG5LFINXW23LFNZ2KUY3PNVWWK3TUL5UWJTTLZTZD2.gif Message ID: @.***>


django.template:DEBUG Exception while resolving variable 'similar_count' in template 'debug_toolbar/panels/sql.html'

Hi,
I am facing a weird stacktrace when using debug_toolbar. Basically, when locally developing and using django_toolbar, for every request, I get a long stacktrace originating in base templates. It starts like this:
20201005 09:31:21:django.template:DEBUG Exception while resolving variable 'similar_count' in template 'debug_toolbar/panels/sql.html'.
Traceback (most recent call last):
  File "/usr/src/app/.venv/lib/python3.8/site-packages/django/template/base.py", line 829, in _resolve_lookup
    current = current[bit]
TypeError: 'SQLPanel' object is not subscriptable

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/src/app/.venv/lib/python3.8/site-packages/django/template/base.py", line 829, in _resolve_lookup
    current = current[bit]
KeyError: 'similar_count'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/src/app/.venv/lib/python3.8/site-packages/django/template/base.py", line 837, in _resolve_lookup
    current = getattr(current, bit)
AttributeError: 'dict' object has no attribute 'similar_count'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/src/app/.venv/lib/python3.8/site-packages/django/template/base.py", line 843, in _resolve_lookup
    current = current[int(bit)]
ValueError: invalid literal for int() with base 10: 'similar_count'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/src/app/.venv/lib/python3.8/site-packages/django/template/base.py", line 848, in _resolve_lookup
    raise VariableDoesNotExist("Failed lookup for key "
django.template.base.VariableDoesNotExist: Failed lookup for key [similar_count] in

and I don't really know where to start nor I am able to generate a minimal example. Can someone give me please some pointers what to try? Thanks

Could you create a basic TemplateView that does nothing and see if that reproduces it? If it does, then slowly remove middleware that may impact the template's context and template context processors. That may help narrow down your search for the root cause.
My guesses would be a weird query that the SQL panel isn't handling well or context used to render a template is being manipulated in a way the toolbar isn't built to handle.

Thanks. It does on a basic view too. I will try removing those middlewares
and templates context processors, thanks. But it's an almost fresh
project so not sure what could be wrong.
On Mon, 5 Oct 2020 at 15:57, Tim Schilling<EMAIL_ADDRESS>wrote:

Could you create a basic TemplateView that does nothing and see if that
reproduces it? If it does, then slowly remove middleware that may impact
the template's context and template context processors. That may help
narrow down your search for the root cause.
My guesses would be a weird query that the SQL panel isn't handling well
or context used to render a template is being manipulated in a way the
toolbar isn't built to handle.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/jazzband/django-debug-toolbar/issues/1374#issuecomment-703649706,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAU5ICBUPXETWGK5GX2UVO3SJHGEZANCNFSM4SEOQRBA
.

I've had same problem. I'm using channels and it stop if I use --noasgi option with runserver (that is not cool as websockets stop working) or if I delete debug_toolbar.panels.sql.SQLPanel from DEBUG_TOOLBAR_PANELS in settings:
DEBUG_TOOLBAR_PANELS = [
    "debug_toolbar.panels.versions.VersionsPanel",
    "debug_toolbar.panels.timer.TimerPanel",
    "debug_toolbar.panels.settings.SettingsPanel",
    "debug_toolbar.panels.headers.HeadersPanel",
    "debug_toolbar.panels.request.RequestPanel",
    # "debug_toolbar.panels.sql.SQLPanel",
    "debug_toolbar.panels.staticfiles.StaticFilesPanel",
    "debug_toolbar.panels.templates.TemplatesPanel",
    "debug_toolbar.panels.cache.CachePanel",
    "debug_toolbar.panels.signals.SignalsPanel",
    "debug_toolbar.panels.logging.LoggingPanel",
    "debug_toolbar.panels.redirects.RedirectsPanel",
    "debug_toolbar.panels.profiling.ProfilingPanel",
]

I'm also having this problem. Removing SQLPanel from DEBUG_TOOLBAR_PANELS gets rid of the error, but I need to be able to use the SQL panel.....

add this to url.py
from django.conf import settings
from django.conf.urls import include

...

if settings.DEBUG:
    import debug_toolbar
    urlpatterns = [
        path('__debug__/', include(debug_toolbar.urls)),
    ] + urlpatterns

The import shouldn't be necessary anymore. Just
if settings.DEBUG:
    urlpatterns += [path("__debug__/", include("debug_toolbar.urls"))]

If that can help, I get the same kind of error when running my application with gunicorn.
The error disappear when running the application with the Django development web server

@merwan if you can create a reproducible environment we can help look into it.


In-Cluster CLI Management: add ClusterCLI CRD

This provides the CRD required for In-Cluster CLI Management, laid out here: https://github.com/openshift/enhancements/pull/137

this will need a rewrite, will reopen/start new when the enhancement proposal merges


[DOCFIX] Add new sections to CLI docs

Add sections to CLI docs

@LuQQiu PTAL :)

Merged build finished. Test PASSed.

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

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/4252/
Test FAILed.

alluxio-bot, merge this please.

alluxio-bot, cherry-pick this to branch-2.0 please.


Does not work with URL with parameters.

It does not detect URL with parameter, for example
"https://chasemoskal.com/webp-hero/images/dice.webp?foo".

thank you for reporting this issue :)
next we need to

[ ] identify the cause of this bug
[ ] launch a pull request which implements a fix

contributions welcome

@Lobasya — thanks for contributing on this issue
there was an error with your pull request, so i closed #24
we really want to receive your contributions, so hopefully you can post a new pull request, or perhaps explain any findings about the root cause of the bug in this issue
thanks :wave:

this bug has been fixed in<EMAIL_ADDRESS>


Split tarball generation for rpm generation

The offical fedora rpm depends on the url source tarball.
Split tarball generation out so it is easier to generate.
Generalize the naming of the tarball to follow the convention
of -.tar.gz.
Fix opae.spec to use the new source loction opae-/
Generalize the tarball excludes all hidden files
Signed-off-by: Tom Rix<EMAIL_ADDRESS>

Thanks for the PR! Our current active development is occurring on the master branch. Our release branches are snapshots of master which are currently being used to facilitate version updates. They are currently not used as development branch targets.
May you please open a similar PR against master? Looping in @r-rojo , @tswhison to confirm.
Also, may you please update files in the opae-libs directory directly in it's repo here? https://github.com/OPAE/opae-libs
Once changes have been merged into master, a CI action will automatically open up a PR to pull in the changes as a subtree into opae-libs (example: https://github.com/OPAE/opae-sdk/pull/1751)

These changes have made it into the release/2.0.0-2 branch, so this pr is no longer needed

These changes have made it into the release/2.0.0-2 branch, so this pr is no longer needed


service name mapping

What is the purpose of the change
https://github.com/apache/dubbo-admin/issues/1111
Brief changelog
Verifying this change
Follow this checklist to help us incorporate your contribution quickly and easily:

[ ] Make sure there is a Github issue filed for the change (usually before you start working on it). Trivial changes like typos do not require a Github issue. Your pull request should address just this issue, without pulling in other changes - one PR resolves one issue.
[ ] Format the pull request title like [ISSUE #123] Fix UnknownException when host config not exist. Each commit in the pull request should have a meaningful subject line and body.
[ ] Write a pull request description that is detailed enough to understand what the pull request does, how, and why.
[ ] Write necessary unit-test to verify your logic correction, more mock a little better when cross module dependency exist.
[ ] Run `mvn clean compile --batch-mode -DskipTests=false -Dcheckstyle.skip=false -Drat.skip=false -Dmaven.javadoc.skip=true to make sure basic checks pass.

Codecov Report

Merging #1136 (19a442f) into refactor-with-go (51afd85) will increase coverage by 2.61%.
The diff coverage is n/a.

:exclamation: Current head 19a442f differs from pull request most recent head 7639b9a. Consider uploading reports for the commit 7639b9a to get more accurate results

@@                 Coverage Diff                  @@
##           refactor-with-go    #1136      +/-   ##
====================================================
+ Coverage             51.94%   54.56%   +2.61%
====================================================
  Files                    92       90       -2
  Lines                  4776     4514     -262
  Branches                 41       41
====================================================
- Hits                   2481     2463      -18
+ Misses                 2051     1809     -242
+ Partials                244      242       -2

see 3 files with indirect coverage changes
:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


[Bug]: Destructure node returns strings as stringified arrays

What happened?
If I destructure an object, the strings cannot be directly passed into an object node.
See screenshot of the issue below.
Data example:
{
"id": 0,
"review_header": "less than a premium experience",
"no_of_reviews": 73,
"passenger_name": "Rajan Parrikar",
"country_of_origin": "Iceland",
"date": "4th September 2023",
"is_verified": "Trip Verified",
"detailed_review": "London Heathrow to Keflavik, Iceland in Business Class on an A321. British Airways provides an unusual Business Class experience for intra-Europe flights. The seating is similar to most airlines - middle seat vacant and little extra space - but on British Airways the Business Class cabin extends to almost half the aircraft. This makes it less than a premium experience at every step, from boarding to onboard. The WiFi worked for only half the flight and there are no refunds. But when it worked it was surprisingly fast. Service on this flight was very good and we got to Keflavik on time.",
"rating_dict": {
"Aircraft": "A321",
"Type Of Traveller": "Couple Leisure",
"Seat Type": "Business Class",
"Route": "London to Keflavik",
"Date Flown": "August 2023",
"Seat Comfort": 3,
"Cabin Staff Service": 4,
"Food & Beverages": 3,
"Ground Service": 4,
"Wifi & Connectivity": 3,
"Value For Money": 4,
"Recommended": "yes"
}
}
What was the expected functionality?
Destructure node returns proper strings that can be used as input for an object node.
Describe your environment
MacOS, Node 14.0.0, etc.
Relevant log output
No response
Relevant screenshots

Code of Conduct

[X] I agree to follow this project's Code of Conduct

Fixed in 3748f16012d0640687c1969057798b9e77499b40


Need help

Does this play the radio for all to hear in the voice chat? Either way, it's not working. I give the stream URL in the settings, and nothing happens when I join a voice chat. The stream url is http://www.c895.org/mp3/? so it should be working properly, since the stream plays in my browser just fine.
Thank you.

Hey @phourniner,
your stream URL is incorrect.
This is your correct stream URL: http://knhc-ice.streamguys1.com/live
Sadly, it looks like the server is for whatever reason blocking the connection:

There is basically nothing I can do to help you.

Ah, that's unfortunate. How did you find that URL? I just want to know in case I need this type of thing in the future.
Thank you anyway for your help!

There are more than one way to get the stream URL:

If you are lucky, the radio station will give you the direct URL on their website.

When the radio stations provides you a .m3u playlist file, and you open this file in your favorite text editor, you can basically copy one of the stream URL and use it in the plugin:

The last one is a bit more complicated, but it works on every website:
When you open the website with your radio stations web player, you have to press ctrl+i to open your browser developer tools.
Then open your 'Network' tab:

You will get a list with all loaded resources and established connections.
Now you need to find the entry with the Initiator 'media', for example:

When you double click this entry it should open the resource in a new tab.
In your address bar you will find the URL of your stream.


Add triangle test generator

Hello!,
this is for issue #472, thoughts? :)
Thanks!

Awesome, thanks, :heart: I'll review this a bit later.

@favrik Thanks for the PR!  We have recently standardized our generator interface so please ensure the methods test_name, skipped and workload are defined, and use them within your example.tt
This has only been recently decided and here is the PR for reference
Excerpt from that PR's README update:
All generators currently adhere to a common public interface, and must define the following three methods:

test_name - Output the name of the test
workload - Output the body of the test
skipped - Output skip syntax

@bmulvihill totally missed that PR!
Thanks for the feedback!, I'll apply the updates to conform to the interface in a few hours. :)

Updated, thanks!

@Insti  I only added a new commit, all your comments are relevant, thanks very much for the review! :)
I'll add another commit with the suggested changes.

I've added @Insti suggestions in a new commit, and also extracted some duplicate strings to a method. Thanks for the reviews!! :)

Hi @kotp, I guess you are referring to the expected_type method and related logic in lib/triangle_cases.rb, if that's the case, I agree.  On one hand I think it's okay-ish.  On the other hand, I think it's a bit convoluted due to how I'm handling the canonical data.   I can revisit in a couple of days, suggestions are definitely welcome.  Thanks!

@favrik have you had a chance to revisit this?

@Insti I haven't :disappointed:, but I just looked at it again and realized I had logic that is not needed. xD    Added a new commit.   Could use a pair of fresh eyes too! :smile:


I logged in with Microsoft rewards but still this bot keeps asking me to login tought it shows how many points is left.

    I logged in with Microsoft rewards but still this bot keeps adking me to login though it shows how many points is left.

Originally posted by @TonyZira in https://github.com/tmxkn1/Microsoft-Reward-Chrome-Ext/issues/83#issuecomment-1357469588

Thanks for reporting. How did the extension ask you for login? Is it when you click on the icon, and the popup shows a login page? If that is the case, can you please check if this address works for you https://www.bing.com/rewardsapp/flyout?channel=0. When you click on the icon, it essentially just shows that page.

In the extension there is Join Now button, When i clicked it, it directed me to (https://ntp.msn.com/edge/ntp?item=spalink:latest/debug&item=flights:prg-rewflyout-t&form=ML1OVB&OCID=ML1OVB&PUBL=RewardsDO&CREA=ML1OVB).
When i clicked the link you gave logged me in when i clicked earn more button.
Thank you very much for your hard work and help.

Sorry for the waiting. I have updated the link in the extension. It should work for you now :)

updated link is with version v<IP_ADDRESS>? I have redownload it and still the same problem. Else can you please share updated version.
Thank you in advance

Sorry for the waiting. I have updated the link in the extension. It should work for you now :)

updated link is with version v<IP_ADDRESS>? I have redownload it and still the same problem. Else can you please share updated version.
Thank you in advance

Sorry, I didn't clarify this, but I didn't publish the package. You can apply the fix by downloading the repo, unzipping and loading the src folder.

Sorry, I didn't clarify this, but I didn't publish the package. You can apply the fix by downloading the repo, unzipping and loading the src folder.

Thank you :) Have a good week!


Update to current pmd-core

The current pmd core is different to the one we are currently using. Could we either use directly use the link to the pmd-core (downloading when using) or update that to our copy @StephanPirskawetz .
https://github.com/materialdigital/core-ontology/blob/develop/pmdco_core.ttl

I created a branch for the new pmd to start working on updating all KGs to using the new pmd version


Error 503 Backend is unhealthy

Describe the bug

I am not able to deploy to test.
Expected behavior

Uploading wheel using twine failed.
To Reproduce

<PYTHON_BIN> -m twine upload \
  --sign-with <PYPI_SIGN> --username <PYPI_USER> \
  --repository-url <url> <WHEEL>

My Platform

macOS 10.14.5
Additional context

By the end of writing this, test works, but legacy has a gateway timeout.

PyPI's backends had an outage  that has now been resolved. If you are still experiencing this issue please reopen.


After input if snippet, some words repeat

FAQ

[x] I have checked the FAQ and it didn't resolve my problem. *

Issues

[x] I have checked existing issues and there are no open or closed issues with the same problem. *

Neovim Version
NVIM v0.6.1
Description
It's more like the issue #351 , but I try my best to find what's wrong with my config and I can't find any thing wrong..
Here is the demo:

My config
My cmp config
local cmp = require("cmp")
local cmp_under_comparator = require("cmp-under-comparator")

cmp.setup({
  mapping = require("keymappings").nvim_cmp(cmp),
  snippet = {
    expand = function(args)
      vim.fn["vsnip#anonymous"](args.body) -- For `vsnip` users.
    end,
  },
  sources = cmp.config.sources({
    { name = "nvim_lsp" },
    { name = "vsnip" },
  }, {
    { name = "buffer" },
  }),
  sorting = {
    comparators = {
      cmp.config.compare.offset,
      cmp.config.compare.exact,
      cmp.config.compare.score,
      cmp_under_comparator.under,
      cmp.config.compare.kind,
      cmp.config.compare.sort_text,
      cmp.config.compare.length,
      cmp.config.compare.order,
    },
  },
})

-- Use buffer source for `/` (if you enabled `native_menu`, this won't work anymore).
cmp.setup.cmdline("/", {
  sources = {
    { name = "buffer" },
  },
})

-- Use cmdline & path source for ':' (if you enabled `native_menu`, this won't work anymore).
cmp.setup.cmdline(":", {
  sources = cmp.config.sources({
    { name = "path" },
  }, {
    { name = "cmdline" },
  }),
})

My key-mapping config:
---------- Nvim Completion ----------
local has_words_before = function()
  local line, col = unpack(vim.api.nvim_win_get_cursor(0))
  return col ~= 0 and vim.api.nvim_buf_get_lines(0, line - 1, line, true)[1]:sub(col, col):match("%s") == nil
end

local feedkey = function(key, mode)
  vim.api.nvim_feedkeys(vim.api.nvim_replace_termcodes(key, true, true, true), mode, true)
end

local nvim_cmp = function(cmp)
  return {
    ["<C-Space>"] = cmp.mapping.complete(),
    ["<C-e>"] = cmp.mapping({
      i = cmp.mapping.abort(),
      c = cmp.mapping.close(),
    }),
    ["<CR>"] = cmp.mapping.confirm({ select = false }),
    ["<Tab>"] = cmp.mapping(function(fallback)
      if cmp.visible() then
        cmp.select_next_item()
      elseif vim.fn["vsnip#available"](1) == 1 then
        feedkey("<Plug>(vsnip-expand-or-jump)", "")
      elseif has_words_before() then
        cmp.complete()
      else
        fallback()
      end
    end, { "i", "s" }),
    ["<S-Tab>"] = cmp.mapping(function(fallback)
      if cmp.visible() then
        cmp.select_prev_item()
      elseif vim.fn["vsnip#jumpable"](-1) == 1 then
        feedkey("<Plug>(vsnip-jump-prev)", "")
      else
        fallback()
      end
    end, { "i", "s" }),
  }
end

-- Module: keymappings
keymappings = {
  nvim_cmp = nvim_cmp,
}
return keymappings

Please respect ossue template

Please respect issue template

Sorry, there is something wrong When I using the issue template. but I copy it and make the issue more like the template..

I'd wrote the notice in isdue template.
Please create minimal reproducible configuration.
You must provide a working config based on [this](https://github.com/hrsh7th/nvim-cmp/blob/main/utils/vimrc.vim). Not part of config.

Copy the base minimal config to the ~/cmp-repro.vim
Edit ~/cmp-repro.vim for reproducing the issue
Open nvim -u ~/cmp-repro.vim
Check reproduction steps```

I'd wrote the notice in isdue template. Please create minimal reproducible configuration.
You must provide a working config based on [this](https://github.com/hrsh7th/nvim-cmp/blob/main/utils/vimrc.vim). Not part of config.

Copy the base minimal config to the ~/cmp-repro.vim
Edit ~/cmp-repro.vim for reproducing the issue
Open nvim -u ~/cmp-repro.vim
Check reproduction steps```

OK

Please respect issue template

Thank you very much for your plug-in. It's very useful.
And apologize for my reckless behavior yesterday.
I have re-uploaded the issue according to the issue template.

Thank you! I'll look into it


[Enhancement] Allow wrapping TabbedPages in one SharedNavigationPage instead of wrapping the individual pages.

I currently can't get the following code to work and I would like to spark a discussion about this.
I don't know, if my request is even possible but if it's not I'd like to get an explanation as to why.
xaml tabbed page
<TabbedPage.Children>
        <Page1 Title="Page1">
        </Page1>
        <Page2 Title="Page2">
        </Page2>
</TabbedPage.Children>

navigation
await NavigationService.NavigateAsync("SharedTransitionNavigationPage/TabbedPage");

navigation stack
SharedTransitionNavigationPage/TabbedPage?selectedTab=Page1/Page2

Current State
Currently the navigation and transition happen inside the TabbedPage.
The navigation stack looks like this:
TabbedPage?selectedTab=SharedTransitionNavigationPage/Page1/Page2
Desired State
Allow the navigation and transition happen outside the TabbedPage.
The navigation stack would look like this:
SharedTransitionNavigationPage/TabbedPage?selectedTab=Page1/Page2
Justifications
This would allow deep-linking without having to worry about putting a NavigationPage in the right place.
Also, this would clean the code inside the TabbedPage.
Thanks in advance! :)

i'll take a look at this after the next version wich will fix some bugs :)

this plugin is now in maintenance mode, new features will be developed only for the MAUI version


TRAD-142 get => post

have some other changes that need to make to the proto. let me know of any concerns in post.


Improve unit tests

More unit tests are needed

I want to have at least 70% tested, it was 46%, now it is 52% and more tests are being written.

Now at 79%, but I would like to test now the entire QoS level 2 flow. I have found some interesting neat bugs while writing tests, so I think it will be worth it.

Commit d36af8f8a955f82fe54931272dcd516406974199 is as far as I will go regarding testing for v1.0.0. Code coverage is now 98%.


Enable the Stylelint length-zero-no-unit rule

Note that these changes were done automatically, using gulp lint --fix.
With this rule, we'll thus enforce a consistent formatting of zero-lengths in our CSS files.
Please find additional details about the Stylelint rule at https://stylelint.io/user-guide/rules/length-zero-no-unit

/botio-linux preview

/botio-linux preview

Nice consistency improvement!

Nice consistency improvement!


Responsive inline attachments

Inline attachments should be responsive (as much as any other image I guess).
http://www.elkarte.net/community/index.php?topic=1450.msg19622#msg19622

Actually, at the moment ILA images are inserted as thumbnails, to there is not really any need to responsiveness.


[Question] databaseQueryFunction returns List

While I understand that the extensions are just sample codes, is there any particular reason why databaseQueryFunction would return a List instead of the Cursor itself?

There's a few reasons:
Firstly, one of the key ideas behind Agera is to not do IO from the UI thread. Putting the cursor in a Repository wouldn't make sense for that reason, since a Cursor could potentially do heavy IO when interacted with. Secondly, Cursors doesn't have to guarantee thread safety (and specifically SQLiteCursor does not) meaning passing them around to different threads is dangerous. Although this Function isn't strictly passing things to other threads or isn't really putting things directly in a Repository (this is up to the user of it to do) this helps developers not to make these mistakes.
Lastly and perhaps most importantly, Cursors needs to be closed. Closing the Cursor in the same scope as opening it ensures we aren't leaking cursors.
That said; I have been using custom Functions returning a Cursor that's closed by the Function following it in the flow, but it does make the question of ownership (slightly) more difficult.
It is the very same reasons why the agera-net sample extension doesn't return InputStreams; it complicate ownership. The sample isn't suitable to do very large HTTP downloads (but I'd recommend against that anyway), but makes the most common cases of networking very simple. Sometimes a custom connection is needed instead, on a case by case basis.

Ok, I understand now. A bit off topic, but does this mean CursorAdapter which directly link IO with UI considered dangerous as well? Thanks for the answer!

It is the same reason why autoRequery is discouraged in the CursorAdapter constructor, and why one of the constructors is deprecated with the following comment "This option is discouraged, as it results in Cursor queries being performed on the application's UI thread and thus can cause poor responsiveness or even Application Not Responding errors."
I personally feel it's fairly easy to make ownership mistakes if using CursorAdapter. CursorAdapter does cursor.close() in some cases, but ownership of the Cursor will be depending on how you decide to use it.

cool.


Add Linters

Adding Black and Flake8 linters in image_captioning will enhance the workflow of the repository and also increase code readability.

@rahulharlalka I want to work on this issue

sure you may!! describe the work that you will do in a more descriptive way about what functionalities you will add and how it will make the code better and then you can submit your PR

@rahulharlalka The black code formatter in Python is an opinionated tool that formats your code in the best way possible and Flake8 is a powerful tool that checks our code’s compliance to PEP8. This will format and enhance the code quality whenever there is a PR in the repository or any changes done to .py file.

Okay , you may submit your PR


fix: fix dceil() dfloor()

Proposed changes
Issue Number: close #xxx
Problem summary
Describe your changes.
Checklist(Required)

Does it affect the original behavior:

[ ] Yes
[ ] No
[ ] I don't know

Has unit tests been added:

[ ] Yes
[ ] No
[ ] No Need

Has document been added or modified:

[ ] Yes
[ ] No
[ ] No Need

Does it need to update dependencies:

[ ] Yes
[ ] No

Are there any changes that cannot be rolled back:

[ ] Yes (If Yes, please explain WHY)
[ ] No

Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

TeamCity pipeline, clickbench performance test result:
the sum of best hot time: 36.49 seconds
load time: 491 seconds
storage size:<PHONE_NUMBER>9 Bytes
https://doris-community-test-1308700295.cos.ap-hongkong.myqcloud.com/tmp/20230128163244_clickbench_pr_85806.html


Jittery behaviour?

Hi @PedroBern, I've finally gotten around to have a look at the new v3 implementation.
On running the example, I see: You specified onScrollon a <ScrollView> but notscrollEventThrottle. You will only receive one event. Using 16 you get all the events but be aware that it may cause frame drops, use a bigger number if you don't need as much precision.
I don't know if it's related yet, but I'm also seeing quite jittery behaviour. Please see video:
simulator1.mov.zip
I haven't fully investigated this and will add more information if/when I find out more.

Hi @alexpchin thanks for running the example. Looks like it's iOS-specific. It's perfect on android here. Can you please do me a favor, experiment with scrollEventThrottle on the examples, and tell me the result. You can either add it directly in the ScrollView / FlatList on the examples folder or by adding a default value in the src/createCollapsibleTabs.

Hi @alexpchin thanks for running the example. Looks like it's iOS-specific. It's perfect on android here. Can you please do me a favor, experiment with scrollEventThrottle on the examples, and tell me the result. You can either add it directly in the ScrollView / FlatList on the examples folder or by adding a default value in the src/createCollapsibleTabs.

@PedroBern Will do! I haven't gotten the whole way through reading the updates yet! You've definitely been busy. I need to experiment with adding a different TabBarComponent.  The one I'm using has badge icons rather than labels and Dot indicators for new messages etc.

@PedroBern Will do! I haven't gotten the whole way through reading the updates yet! You've definitely been busy. I need to experiment with adding a different TabBarComponent.  The one I'm using has badge icons rather than labels and Dot indicators for new messages etc.

@alexpchin thanks! yes quite a work, but was fun! The default tab bar isn't documented yet, but it's easy to add a custom TabItem, and leverage the default indicator and scrollable tabs behavior, here is an example in the upcoming react-navigation integration.

@alexpchin thanks! yes quite a work, but was fun! The default tab bar isn't documented yet, but it's easy to add a custom TabItem, and leverage the default indicator and scrollable tabs behavior, here is an example in the upcoming react-navigation integration.

@alexpchin I added scrollEventThrottle={16} on #60, not sure if it will fix this, but just because I was also doing other things

@alexpchin I added scrollEventThrottle={16} on #60, not sure if it will fix this, but just because I was also doing other things

Just working through integrating into my project which does not use expo. Here are my WIP thoughts:

[ ] Perhaps we should make it clearer that the project uses v2 of react-native-reanimated?
[ ] On the first setup, I'm getting Encountered two children with the same key, undefined`.
[ ] Currently with snapEnabled the content is not animating.
[ ] You can't click on the tabs once you have started to scroll but have not scrolled the whole way up (Content is not snapping, so you can be mid-scroll).
[ ] Even though you can't click on the tabs, you can swipe
[ ] Unusual scenario, I know but, if you only have one key/value in refMap, I believe this would throw an error?
[ ] How to navigate programmatically to a tab (previously used to be able to update the index of navigationState).

I am just going through everything at the moment...

Just working through integrating into my project which does not use expo. Here are my WIP thoughts:

[ ] Perhaps we should make it clearer that the project uses v2 of react-native-reanimated?
[ ] On the first setup, I'm getting Encountered two children with the same key, undefined`.
[ ] Currently with snapEnabled the content is not animating.
[ ] You can't click on the tabs once you have started to scroll but have not scrolled the whole way up (Content is not snapping, so you can be mid-scroll).
[ ] Even though you can't click on the tabs, you can swipe
[ ] Unusual scenario, I know but, if you only have one key/value in refMap, I believe this would throw an error?
[ ] How to navigate programmatically to a tab (previously used to be able to update the index of navigationState).

I am just going through everything at the moment...

[ ] Perhaps we should make it clearer that the project uses v2 of react-native-reanimated?

I will add it to the readme

[ ] On the first setup, I'm getting Encountered two children with the same key, undefined`.

Where? On the quick start code?

[ ] Currently with snapEnabled the content is not animating.
[ ] You can't click on the tabs once you have started to scroll but have not scrolled the whole way up (Content is not snapping, so you can be mid-scroll).
[ ]  Even though you can't click on the tabs, you can swipe

This is weird, here is all working 😕  Not sure if I understand it. As the snap works for me, I can't see this bug.

[ ] Unusual scenario, I know but, if you only have one key/value in refMap, I believe this would throw an error?

Good question, I didn't test it but should work

[x] How to navigate programmatically to a tab (previously used to be able to update the index of navigationState).

I added a ref in #58 to control the back behavior when navigating back. See it here. This ref can be used to programmatically navigate between tabs, like this:
const ref = React.useRef<RefType>()

const goToTab = () => {
    ref.current?.setIndex(name)
}

<Tabs.Container ref={ref} {...} />

[ ] Perhaps we should make it clearer that the project uses v2 of react-native-reanimated?

I will add it to the readme

[ ] On the first setup, I'm getting Encountered two children with the same key, undefined`.

Where? On the quick start code?

[ ] Currently with snapEnabled the content is not animating.
[ ] You can't click on the tabs once you have started to scroll but have not scrolled the whole way up (Content is not snapping, so you can be mid-scroll).
[ ]  Even though you can't click on the tabs, you can swipe

This is weird, here is all working 😕  Not sure if I understand it. As the snap works for me, I can't see this bug.

[ ] Unusual scenario, I know but, if you only have one key/value in refMap, I believe this would throw an error?

Good question, I didn't test it but should work

[x] How to navigate programmatically to a tab (previously used to be able to update the index of navigationState).

I added a ref in #58 to control the back behavior when navigating back. See it here. This ref can be used to programmatically navigate between tabs, like this:
const ref = React.useRef<RefType>()

const goToTab = () => {
    ref.current?.setIndex(name)
}

<Tabs.Container ref={ref} {...} />

@PedroBern Interesting. Snap isn't working for me.
Can you uninstall expo-cli and do a fresh install from main? On running the new version, I am seeing:
Some of your project's dependencies are not compatible with currently installed expo package version:
 - react-native-gesture-handler - expected version range: ~1.8.0 - actual version installed: ^1.9.0
 - react-native-reanimated - expected version range: ~1.13.0 - actual version installed: 2.0.0-rc.0
Your project may not work correctly until you install the correct versions of the packages.
To install the correct versions of these packages, please run: expo install [package-name ...]

I might be missing something really obvious... I've re-installed expo-cli and re-pulled main?

@PedroBern Interesting. Snap isn't working for me.
Can you uninstall expo-cli and do a fresh install from main? On running the new version, I am seeing:
Some of your project's dependencies are not compatible with currently installed expo package version:
 - react-native-gesture-handler - expected version range: ~1.8.0 - actual version installed: ^1.9.0
 - react-native-reanimated - expected version range: ~1.13.0 - actual version installed: 2.0.0-rc.0
Your project may not work correctly until you install the correct versions of the packages.
To install the correct versions of these packages, please run: expo install [package-name ...]

I might be missing something really obvious... I've re-installed expo-cli and re-pulled main?

It's correct, I get the same warning, it's because SDK 40 is not supposed to use reanimated v2 (yet) but expo says it's ok
I've just done a fresh install, everything is working, including the snap. Does the snap work on android for you?

It's correct, I get the same warning, it's because SDK 40 is not supposed to use reanimated v2 (yet) but expo says it's ok
I've just done a fresh install, everything is working, including the snap. Does the snap work on android for you?

@PedroBern I just ran the example on the Android emulator and can confirm that the snap does work. Does it work for you on iOS at your end?

@PedroBern I just ran the example on the Android emulator and can confirm that the snap does work. Does it work for you on iOS at your end?

I have left some related comments here: https://github.com/PedroBern/react-native-collapsible-tab-view/pull/58#issuecomment-770047353
Unfortunately there are a lot of problems on iOS with v3. Going to take a look at the implementation myself today.

I have left some related comments here: https://github.com/PedroBern/react-native-collapsible-tab-view/pull/58#issuecomment-770047353
Unfortunately there are a lot of problems on iOS with v3. Going to take a look at the implementation myself today.

Also, just another few thoughts:

[ ] How to get the currently focused tab from refMap, previously you could use navigationState.index?
[ ] How to listen to the change of the tab? (Connected to above)
[ ] Is it possible to disable swipeEnabled ?
[ ] Currently, the refMap uses the keys to create the labels. If we changed the structure of refMap, it could take a label or component/icon it might allow for more customisation.

{
  screen1: { ref: ref, label: label },
  screen2: { ref: ref, label: label }
}

Also, just another few thoughts:

[ ] How to get the currently focused tab from refMap, previously you could use navigationState.index?
[ ] How to listen to the change of the tab? (Connected to above)
[ ] Is it possible to disable swipeEnabled ?
[ ] Currently, the refMap uses the keys to create the labels. If we changed the structure of refMap, it could take a label or component/icon it might allow for more customisation.

{
  screen1: { ref: ref, label: label },
  screen2: { ref: ref, label: label }
}

Here are some of the issues I found:
Scroll position doesn't seem to sync right when the header is partly visible:
https://user-images.githubusercontent.com/697707/106351679-26546f80-62e6-11eb-9f0e-6481dea6d6f4.MP4
Snap only works when momentum scrolling rests, but not if you lift the finger while scrolling (zip because it's over the 10 mb limit for videos):
RPReplay_Final1611995394.MP4.zip
Tapping the tab bar to switch tabs only works when first opening a screen, as soon as you scroll a bit, they don't respond any more:
https://user-images.githubusercontent.com/697707/106351773-ea6dda00-62e6-11eb-98ef-ee0adb36b55d.MP4
Elastic scrolling via momentum, or by overscrolling with the finger doesn't work. It just stops abruptly at either edge (example of what I mean here: https://medium.com/@wcandillon/ios-bounce-list-effect-with-react-native-5102e3a83999):
https://user-images.githubusercontent.com/697707/106351817-3caefb00-62e7-11eb-96dc-b4a88865b3d6.MP4

Here are some of the issues I found:
Scroll position doesn't seem to sync right when the header is partly visible:
https://user-images.githubusercontent.com/697707/106351679-26546f80-62e6-11eb-9f0e-6481dea6d6f4.MP4
Snap only works when momentum scrolling rests, but not if you lift the finger while scrolling (zip because it's over the 10 mb limit for videos):
RPReplay_Final1611995394.MP4.zip
Tapping the tab bar to switch tabs only works when first opening a screen, as soon as you scroll a bit, they don't respond any more:
https://user-images.githubusercontent.com/697707/106351773-ea6dda00-62e6-11eb-98ef-ee0adb36b55d.MP4
Elastic scrolling via momentum, or by overscrolling with the finger doesn't work. It just stops abruptly at either edge (example of what I mean here: https://medium.com/@wcandillon/ios-bounce-list-effect-with-react-native-5102e3a83999):
https://user-images.githubusercontent.com/697707/106351817-3caefb00-62e7-11eb-96dc-b4a88865b3d6.MP4

On iOS onMomentumEnd only triggers when scrolling eventually rests after a bigger swipe:
https://github.com/PedroBern/react-native-collapsible-tab-view/blob/d9642e195d48ec5c253b57711eab8e7144c11dd2/src/createCollapsibleTabs.tsx#L529-L531
It doesn't trigger for touches that drag the view.

On iOS onMomentumEnd only triggers when scrolling eventually rests after a bigger swipe:
https://github.com/PedroBern/react-native-collapsible-tab-view/blob/d9642e195d48ec5c253b57711eab8e7144c11dd2/src/createCollapsibleTabs.tsx#L529-L531
It doesn't trigger for touches that drag the view.

Side point, potentially, we should ensure that children exists here?
const scrollY = useSharedValue([...new Array(children.length)].map(() => 0));

Side point, potentially, we should ensure that children exists here?
const scrollY = useSharedValue([...new Array(children.length)].map(() => 0));

It appears that most of the issues I mentioned above are related to the onMomentumEnd event.
The reason is that isGliding.value = true is being set in onEndDrag, but because momentum doesn't start, it's never reset. Thus breaking everything else.
One way to potentially solve it is to set isGliding to true on onMomentumBegin. Then start a timer in onEndDrag, and if isGliding wasn't set to true after a few frames (16, 32ms) then force the snap effect manually. There would need to be some debouncing going on as well, and seems finicky to get right. It was pretty much the same v2 was doing.
Also, the overscroll situation seems to be resolved if this is omitted or set to true:
https://github.com/PedroBern/react-native-collapsible-tab-view/blob/d9642e195d48ec5c253b57711eab8e7144c11dd2/src/createCollapsibleTabs.tsx#L650
Not yet sure why it was forced to false/

It appears that most of the issues I mentioned above are related to the onMomentumEnd event.
The reason is that isGliding.value = true is being set in onEndDrag, but because momentum doesn't start, it's never reset. Thus breaking everything else.
One way to potentially solve it is to set isGliding to true on onMomentumBegin. Then start a timer in onEndDrag, and if isGliding wasn't set to true after a few frames (16, 32ms) then force the snap effect manually. There would need to be some debouncing going on as well, and seems finicky to get right. It was pretty much the same v2 was doing.
Also, the overscroll situation seems to be resolved if this is omitted or set to true:
https://github.com/PedroBern/react-native-collapsible-tab-view/blob/d9642e195d48ec5c253b57711eab8e7144c11dd2/src/createCollapsibleTabs.tsx#L650
Not yet sure why it was forced to false/

diff --git a/src/createCollapsibleTabs.tsx b/src/createCollapsibleTabs.tsx
index 08f97d8..8c1c560 100644
--- a/src/createCollapsibleTabs.tsx
+++ b/src/createCollapsibleTabs.tsx
@@ -15,6 +15,7 @@ import Animated, {
   scrollTo,
   withTiming,
   runOnJS,
+  runOnUI,
 } from 'react-native-reanimated'

 import MaterialTabBar, {
@@ -509,6 +510,56 @@ const createCollapsibleTabs = <
       tabNames.value.findIndex((n) => n === name)
     )

+    const onMomentumEnd = () => {
+      'worklet'
+      if (snapEnabled) {
+        if (diffClampEnabled && accDiffClamp.value > 0) {
+          if (scrollYCurrent.value > headerHeight) {
+            if (accDiffClamp.value <= headerHeight * snapThreshold) {
+              // snap down
+              isSnapping.value = true
+              accDiffClamp.value = withTiming(0, undefined, () => {
+                isSnapping.value = false
+              })
+            } else if (accDiffClamp.value < headerHeight) {
+              // snap up
+              isSnapping.value = true
+              accDiffClamp.value = withTiming(headerHeight, undefined, () => {
+                isSnapping.value = false
+              })
+            }
+          } else {
+            isSnapping.value = true
+            accDiffClamp.value = withTiming(0, undefined, () => {
+              isSnapping.value = false
+            })
+          }
+        } else {
+          if (scrollYCurrent.value <= headerHeight * snapThreshold) {
+            // snap down
+            snappingTo.value = 0
+            // @ts-ignore
+            scrollTo(refMap[name], 0, 0, true)
+          } else if (scrollYCurrent.value <= headerHeight) {
+            // snap up
+            snappingTo.value = headerHeight
+            // @ts-ignore
+            scrollTo(refMap[name], 0, headerHeight, true)
+          }
+          isSnapping.value = false
+        }
+      }
+      isGliding.value = false
+    }
+
+    const maybeGlide = () => {
+      setTimeout(() => {
+        if (isGliding.value !== true) {
+          runOnUI(onMomentumEnd)()
+        }
+      }, 50)
+    }
+
     const scrollHandler = useAnimatedScrollHandler(
       {
         onScroll: (event) => {
@@ -524,53 +575,13 @@ const createCollapsibleTabs = <
           isScrolling.value = true
         },
         onEndDrag: () => {
-          isGliding.value = true
           isScrolling.value = false
+          runOnJS(maybeGlide)()
         },
-        onMomentumEnd: () => {
-          if (snapEnabled) {
-            if (diffClampEnabled && accDiffClamp.value > 0) {
-              if (scrollYCurrent.value > headerHeight) {
-                if (accDiffClamp.value <= headerHeight * snapThreshold) {
-                  // snap down
-                  isSnapping.value = true
-                  accDiffClamp.value = withTiming(0, undefined, () => {
-                    isSnapping.value = false
-                  })
-                } else if (accDiffClamp.value < headerHeight) {
-                  // snap up
-                  isSnapping.value = true
-                  accDiffClamp.value = withTiming(
-                    headerHeight,
-                    undefined,
-                    () => {
-                      isSnapping.value = false
-                    }
-                  )
-                }
-              } else {
-                isSnapping.value = true
-                accDiffClamp.value = withTiming(0, undefined, () => {
-                  isSnapping.value = false
-                })
-              }
-            } else {
-              if (scrollYCurrent.value <= headerHeight * snapThreshold) {
-                // snap down
-                snappingTo.value = 0
-                // @ts-ignore
-                scrollTo(refMap[name], 0, 0, true)
-              } else if (scrollYCurrent.value <= headerHeight) {
-                // snap up
-                snappingTo.value = headerHeight
-                // @ts-ignore
-                scrollTo(refMap[name], 0, headerHeight, true)
-              }
-              isSnapping.value = false
-            }
-          }
-          isGliding.value = false
+        onMomentumBegin: () => {
+          isGliding.value = true
         },
+        onMomentumEnd,
       },
       [headerHeight, name, diffClampEnabled, snapEnabled]
     )
@@ -677,7 +688,7 @@ const createCollapsibleTabs = <
     return (
       <Animated.ScrollView
         ref={refMap[name] as any}
-        bounces={false}
+        //bounces={false}
         bouncesZoom={false}
         style={[_style, style]}
         contentContainerStyle={[

This diff seems to fix all of the issues I mentioned above, but it needs some cleanup for the setTimeout handling.
I notice that the DiffClamp example gets broken though, and keeps pushing the header up a bit every time. This is probably related to bounces. Here's a longer recording with these changes:
https://streamable.com/5a4aeo

diff --git a/src/createCollapsibleTabs.tsx b/src/createCollapsibleTabs.tsx
index 08f97d8..8c1c560 100644
--- a/src/createCollapsibleTabs.tsx
+++ b/src/createCollapsibleTabs.tsx
@@ -15,6 +15,7 @@ import Animated, {
   scrollTo,
   withTiming,
   runOnJS,
+  runOnUI,
 } from 'react-native-reanimated'

 import MaterialTabBar, {
@@ -509,6 +510,56 @@ const createCollapsibleTabs = <
       tabNames.value.findIndex((n) => n === name)
     )

+    const onMomentumEnd = () => {
+      'worklet'
+      if (snapEnabled) {
+        if (diffClampEnabled && accDiffClamp.value > 0) {
+          if (scrollYCurrent.value > headerHeight) {
+            if (accDiffClamp.value <= headerHeight * snapThreshold) {
+              // snap down
+              isSnapping.value = true
+              accDiffClamp.value = withTiming(0, undefined, () => {
+                isSnapping.value = false
+              })
+            } else if (accDiffClamp.value < headerHeight) {
+              // snap up
+              isSnapping.value = true
+              accDiffClamp.value = withTiming(headerHeight, undefined, () => {
+                isSnapping.value = false
+              })
+            }
+          } else {
+            isSnapping.value = true
+            accDiffClamp.value = withTiming(0, undefined, () => {
+              isSnapping.value = false
+            })
+          }
+        } else {
+          if (scrollYCurrent.value <= headerHeight * snapThreshold) {
+            // snap down
+            snappingTo.value = 0
+            // @ts-ignore
+            scrollTo(refMap[name], 0, 0, true)
+          } else if (scrollYCurrent.value <= headerHeight) {
+            // snap up
+            snappingTo.value = headerHeight
+            // @ts-ignore
+            scrollTo(refMap[name], 0, headerHeight, true)
+          }
+          isSnapping.value = false
+        }
+      }
+      isGliding.value = false
+    }
+
+    const maybeGlide = () => {
+      setTimeout(() => {
+        if (isGliding.value !== true) {
+          runOnUI(onMomentumEnd)()
+        }
+      }, 50)
+    }
+
     const scrollHandler = useAnimatedScrollHandler(
       {
         onScroll: (event) => {
@@ -524,53 +575,13 @@ const createCollapsibleTabs = <
           isScrolling.value = true
         },
         onEndDrag: () => {
-          isGliding.value = true
           isScrolling.value = false
+          runOnJS(maybeGlide)()
         },
-        onMomentumEnd: () => {
-          if (snapEnabled) {
-            if (diffClampEnabled && accDiffClamp.value > 0) {
-              if (scrollYCurrent.value > headerHeight) {
-                if (accDiffClamp.value <= headerHeight * snapThreshold) {
-                  // snap down
-                  isSnapping.value = true
-                  accDiffClamp.value = withTiming(0, undefined, () => {
-                    isSnapping.value = false
-                  })
-                } else if (accDiffClamp.value < headerHeight) {
-                  // snap up
-                  isSnapping.value = true
-                  accDiffClamp.value = withTiming(
-                    headerHeight,
-                    undefined,
-                    () => {
-                      isSnapping.value = false
-                    }
-                  )
-                }
-              } else {
-                isSnapping.value = true
-                accDiffClamp.value = withTiming(0, undefined, () => {
-                  isSnapping.value = false
-                })
-              }
-            } else {
-              if (scrollYCurrent.value <= headerHeight * snapThreshold) {
-                // snap down
-                snappingTo.value = 0
-                // @ts-ignore
-                scrollTo(refMap[name], 0, 0, true)
-              } else if (scrollYCurrent.value <= headerHeight) {
-                // snap up
-                snappingTo.value = headerHeight
-                // @ts-ignore
-                scrollTo(refMap[name], 0, headerHeight, true)
-              }
-              isSnapping.value = false
-            }
-          }
-          isGliding.value = false
+        onMomentumBegin: () => {
+          isGliding.value = true
         },
+        onMomentumEnd,
       },
       [headerHeight, name, diffClampEnabled, snapEnabled]
     )
@@ -677,7 +688,7 @@ const createCollapsibleTabs = <
     return (
       <Animated.ScrollView
         ref={refMap[name] as any}
-        bounces={false}
+        //bounces={false}
         bouncesZoom={false}
         style={[_style, style]}
         contentContainerStyle={[

This diff seems to fix all of the issues I mentioned above, but it needs some cleanup for the setTimeout handling.
I notice that the DiffClamp example gets broken though, and keeps pushing the header up a bit every time. This is probably related to bounces. Here's a longer recording with these changes:
https://streamable.com/5a4aeo

Im not at home right now, when I get there I will iterate over all comments. Just one thought, I saw some issues on reaninated, related to scroll on iOS that were fixed in rc.1 and rc.2, but the example folder is using rc.0

Im not at home right now, when I get there I will iterate over all comments. Just one thought, I saw some issues on reaninated, related to scroll on iOS that were fixed in rc.1 and rc.2, but the example folder is using rc.0

I opened #65 which fixes all of the issues I reported from my initial testing.
@alexpchin if you could test it as well it would be great. I'm not sure about the jittery behaviour, seems to work fine on my physical device (iPhone 12 Pro Max).

I opened #65 which fixes all of the issues I reported from my initial testing.
@alexpchin if you could test it as well it would be great. I'm not sure about the jittery behaviour, seems to work fine on my physical device (iPhone 12 Pro Max).

Oh, and good job @PedroBern on the rewrite 🏆 . The implementation looks much better now with Reanimated.

Oh, and good job @PedroBern on the rewrite 🏆 . The implementation looks much better now with Reanimated.

Oh, and good job @PedroBern on the rewrite 🏆 . The implementation looks much better now with Reanimated.

@andreialecu thanks man 👍

Also, just another few thoughts:

How to get the currently focused tab from refMap, previously you could use navigationState.index?
How to listen to the change of the tab? (Connected to above)
Is it possible to disable swipeEnabled ?
Currently, the refMap uses the keys to create the labels. If we changed the structure of refMap, it could take a label or component/icon it might allow for more customisation.
{
screen1: { ref: ref, label: label },
screen2: { ref: ref, label: label }
}

@alexpchin better to open a new issue so we can discuss it without noise... But you can disable swiping with pagerProps={{scrollEnabled: false}}.

Oh, and good job @PedroBern on the rewrite 🏆 . The implementation looks much better now with Reanimated.

@andreialecu thanks man 👍

Also, just another few thoughts:

How to get the currently focused tab from refMap, previously you could use navigationState.index?
How to listen to the change of the tab? (Connected to above)
Is it possible to disable swipeEnabled ?
Currently, the refMap uses the keys to create the labels. If we changed the structure of refMap, it could take a label or component/icon it might allow for more customisation.
{
screen1: { ref: ref, label: label },
screen2: { ref: ref, label: label }
}

@alexpchin better to open a new issue so we can discuss it without noise... But you can disable swiping with pagerProps={{scrollEnabled: false}}.

@PedroBern @andreialecu I've gone through and moved unrelated comments to their own issues and updated my comments to reduce noise and make them easier to fix. I will now start looking at them.

@PedroBern @andreialecu I've gone through and moved unrelated comments to their own issues and updated my comments to reduce noise and make them easier to fix. I will now start looking at them.


Refactored MIAs to be able to move pieces of code around

This is a refactoring of the mia.py (and associated base_classes.py). It used to contain a monolithic TargetedAuxiliaryDataMIA which implemented the logic for (1) sampling from auxiliary datasets, (2) generating datasets with or without a specific target, (3) using a generator potentially different from the actual one and (4) evaluation of a MIA. All of these components have now been broken down into four different classes.
A new file has been created, threat_models/attacker_knowledge.py, which introduces two base classes that capture the knowledge that the attacker has about (1) the training dataset, and (2) the synthetic data generation model.
As a preview, from run.py, the creation of the threat model used to be:
threat_model = TargetedAuxiliaryDataMIA(target,
                                            dataset,
                                            sdg_model,
                                            aux_data = aux_data,
                                            sample_real_frac = runconfig['test_as_aux_frac'],
                                            num_training_records = runconfig['train_data_size'],
                                            num_synthetic_records = runconfig['synthetic_data_size'])

And is now:
threat_model = TargetedMIA(
        AppendTarget(
            AuxiliaryDataKnowledge(
                dataset,
                aux_data=aux_data,
                sample_real_frac=runconfig["test_as_aux_frac"],
                num_training_records=runconfig["train_data_size"]
            ),
            target,
        ),
        BlackBoxKnowledge(sdg_model, runconfig["synthetic_data_size"])
    )

The two key benefits are:

We can reuse the logic of AuxiliaryDataKnowledge or BlackBoxKnowledge for different attack models (in particular, attribute-inference attacks).
Each individual class only has a limited number of arguments, and the logic contained in each of these is usually fairly simple, making the code easier to read and write.

As per review comment - this looks sensible, but the test will be whether the logic change actually helps us build attacks of different sorts.
Let's merge and move on. We can revisit if needed later on.


Removing xDscResourceDesigner tests

We are adding them to common tests: https://github.com/PowerShell/DscResource.Tests/pull/6

LGTM


update supported remote trajectories (remoteTrajExt)

supported formats by MDsrv, internal handling by mdanalysis & mdtraj

thanks


Audio in @note portions of audio deck not working

The slide list fragment audio works with the @note notation in GitPitch Desktop but is not working once deployed.
Refrenced functionality: https://gitpitch.com/docs/pro-features/audio/#add-slide-list-fragment-audio
Repo: https://gitlab.com/SeanCarey/practicum-2-carey
URL: https://gitpitch.com/SeanCarey/practicum-2-carey/master?grs=gitlab#/
Slide 2 and slide 11 are both having the same issue, not audio for the list items

I found a workaround to using the note notation.  My repo no longer matches what the problem was showing.  Closing the Issue.

Hi Sean, thanks for reporting this issue. I will look into it over the coming days and update this thread once I know more. Cheers, David.

A patch to fix list fragment audio is now live on gitpitch.com. @scarey9 you can verify this patch by viewing the version of your slide deck at the time when you reported the issue. The URL for that version of your deck is here:
https://gitpitch.com/SeanCarey/practicum-2-carey/f1923876?grs=gitlab
David

Thank you. I reverted my got repo to use the my original presentation. Much appreciated.  This fixes my problem


link

sign up link is broken

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: ae3f747f-9b4f-2bfc-831e-ed8232177d38
Version Independent ID: b2da371d-aea3-010b-5e57-a6c8d5a9646d
Content: Signing up for Power BI with a new Office 365 Trial - Power BI
Content Source: powerbi-docs/service-admin-signing-up-for-power-bi-with-a-new-office-365-trial.md
Service: powerbi
GitHub Login: @mgblythe
Microsoft Alias: mblythe

Thanks for your comment, @ioshiames . We’ve forwarded your feedback to the writer, who should respond soon. Thanks!

@ioshiames - this is fixed now, thanks!


refactor: Replace deprecated NewRandomVirtualMachine* functions by using libvmi directly

Before this PR: The codebase was using deprecated NewRandomVirtualMachineInstanceWithBlockDisk , NewRandomVirtualMachineInstanceWithFileDisk , and NewRandomVirtualMachineInstanceWithDisk  functions for testing purposes.
After this PR: Replaced all occurrences of deprecated NewRandomVirtualMachine* functions with equivalent functions from the libvmi library.

Fixes #11565
Why we need it and why it was done in this way
The NewRandomVirtualMachine* functions were deprecated and needed to be replaced to ensure compatibility with future releases. This PR updates the codebase to use the recommended libvmi functions for improved maintainability.
The following tradeoffs were made:
The following alternatives were considered:
Links to places where the discussion took place:
Special notes for your reviewer

Checklist
This checklist is not enforcing, but it's a reminder of items that could be relevant to every PR.
Approvers are expected to review this list.

[ ] Design: A design document was considered and is present (link) or not required
[ ] PR: The PR description is expressive enough and will help future contributors
[ ] Code: Write code that humans can understand and Keep it simple
[x] Refactor: You have left the code cleaner than you found it (Boy Scout Rule)
[ ] Upgrade: Impact of this change on upgrade flows was considered and addressed if required
[ ] Testing: New code requires new unit tests. New features and bug fixes require at least on e2e test
[ ] Documentation: A user-guide update was considered and is present (link) or not required. You want a user-guide update if it's a user facing feature / API change.
[ ] Community: Announcement to kubevirt-dev was considered

Release note

NONE

/sig code-quality

@TheRealSibasishBehera I think we need to create another function that wraps all those code duplication. You could create a new template in the factory.go.
I know that this might seem similar to the deprecated function. However, the goal is that you still need to add the options to make this extensible. Something like:
func NewAlpineWithDataVolumes(dv *v1beta1.DataVolume ,opts ...libvmi.Option) *kvirtv1.VirtualMachineInstance {}

You can also include there the CDI check and the dv creation there. In this way you can call the function with different option
libvmifact.NewAlpineWithDataVolumes(
   libdv.New(...),
   libvmi.WithNamespace(testsuite.GetTestNamespace(nil)),
  ....
)

@TheRealSibasishBehera thank you much for contributing, this is great!
Are you planing on continue with this pr? I'm asking since we talked about fixing this as well, so want to plan.

Hey this will need to be rebase and changed a bit because of https://github.com/kubevirt/kubevirt/pull/11624

@TheRealSibasishBehera thank you so much for contributing, this is great! Are you planing on continue with this pr? I'm asking since we talked about fixing this as well, so want to plan.

Yes , I plan to complete this .
#11670 is handling something similar . I am planning match its pattern .
Its still under work . We can wait till the PR is complete there or go with whats done till now regarding how DV creation is handled there.
Can you suggest which one would be the better option here ?
cc @alicefr @akalenyu

Hey this will need to be rebase and changed a bit because of #11624

Thanks @RoniKishner I will change that

@TheRealSibasishBehera thank you so much for contributing, this is great! Are you planing on continue with this pr? I'm asking since we talked about fixing this as well, so want to plan.

Yes , I plan to complete this . #11670 is handling something similar . I am planning match its pattern . Its still under work . We can wait till the PR is complete there or go with whats done till now regarding how DV creation is handled there. Can you suggest which one would be the better option here ?
cc @alicefr @akalenyu

Right so the whole approach of having this type of factory is being challenged,
and thus the PR you mention is now on hold:
https://github.com/kubevirt/kubevirt/pull/11670#discussion_r1584779054


Configure packer_compiled.lua to be stored on XDG_DATA_DIRS

The packer_compiled.lua use a lot of values that only works on the host
where the file was compiled.
Put the compiled file on XDG_DATA_DIRS make easier use ~/.config/nvim to both
on Linux and Macos.

Thanks, but i'm switching to lazy for the project, you can follow that in #178 .
I appreciate the PR


New API version for TrafficManager

New API version 2020-12-01 for TrafficManager
MSFT employees can try out our new experience at OpenAPI Hub  - one location for using our validation tools and finding your workflow.

Changelog
Please ensure to add changelog with this PR by answering the following questions.

What's the purpose of the update?

[ ] new service onboarding
[x] new API version
[ ] update existing version for new feature
[ ] update existing version to fix swagger quality issue in s360
[ ] Other, please clarify

When you are targeting to deploy new service/feature to public regions? Please provide date, or month to public if date is not available yet. 2021 January
When you expect to publish swagger? Please provide date, or month to public if date is not available yet. 2021 January
If it's an update to existing version,  please select SDKs of specific language and CLIs that require refresh after swagger is published.

[ ] SDK of .NET (need service team to ensure code readiness)
[ ] SDK of Python
[ ] SDK of Java
[ ] SDK of Js
[ ] SDK of Go
[ ] PowerShell
[ ] CLI
[ ] Terraform
[x] No, no need to refresh for updates in this PR

Contribution checklist:

[x] I commit to follow the Breaking Change Policy of “no breaking changes
[x] I have reviewed the documentation for the workflow.
[x] Validation tools were run on swagger spec(s) and errors have all been fixed in this PR. How to fix?

If any further question about AME onboarding or validation tools, please view the FAQ.
ARM API Review Checklist

[x] Ensure to check this box if one of the following scenarios meet updates in the PR, so that label “WaitForARMFeedback” will be added automatically to involve ARM API Review. Failure to comply may result in delays for manifest application. Note this does not apply to data plane APIs, all “removals” and “adding a new property” no more require ARM API review.

Adding new API(s)
Adding a new API version
Adding a new service

[x] Please ensure you've reviewed following guidelines including ARM resource provider contract and REST guidelines. Estimated time (4 hours). This is required before you can request review from ARM API Review board.

[ ] If you are blocked on ARM review and want to get the PR merged with urgency, please get the ARM oncall for reviews (RP Manifest Approvers team under Azure Resource Manager service) from IcM and reach out to them.

Breaking Change Review Checklist
If there are following updates in the PR, ensure to request an approval from API Review Board as defined in the Breaking Change Policy.

[ ] Removing API(s) in stable version
[ ] Removing properties in stable version
[ ] Removing API version(s) in stable version
[ ] Updating API in stable version with Breaking Change Validation errors
[ ] Updating API(s) in preview over 1 year

Action: to initiate an evaluation of the breaking change, create a new intake using the template for breaking changes. Addition details on the process and office hours are on the Breaking change Wiki.
Please follow the link to find more details on PR review process.

Is this review still valid? If not please close the review as it's increasing the number of open reviews, otherwise please send a note to armapireview to prioritize the review.


Update CircularProgress

I've moved the utils from CircularProgress into CircularProgress+Util.swift, which should make it a little easier to drop in updates.

If I start a conversion, cancel it, then start another one, the color is still the disabled style. Something is not being reset correctly.

If I start a conversion, cancel it, then start another one, the color is still the disabled style. Something is not being reset correctly.

Hmm, I think it’s only resetting the opacity, not the original color. Didn’t catch that in the Example because it sets a new color every time.


Support for dotnet 5

Given that these libraries are netstandard, I'm not sure that adding additional frameworks would be of much use.  Could add it the test projects, maybe...


after upgrading to 0.16.19 the AC's are not responding in Home App

I have two issues one is been going on ever since 0.16.x which is the change log is not showing up what the changes are. It always points to 0.16.0 instead of the newer version that is supposed to be installed.

and the other issue now is that when I upgraded to 0.16.19 the ACs are not responding in the Home App.

[29/02/2024,13:44:38] [homebridge-melcloud-control] Launched child bridge with PID 1018
[29/02/2024, 13:44:38] Registering platform 'homebridge-melcloud-control.melcloudcontrol'
[29/02/2024, 13:44:38] [homebridge-melcloud-control] Loaded homebridge-melcloud-control v0.16.19 child bridge successfully
[29/02/2024, 13:44:38] Loaded 0 cached accessories from cachedAccessories.0E2B4E8C677E.
[29/02/2024, 13:44:39] Homebridge v1.7.0 (HAP v0.11.1) (homebridge-melcloud-control) is running on port 40906.
[29/02/2024, 13:44:41] [homebridge-melcloud-control] ---- Air Conditioner: Bedroom ----
[29/02/2024, 13:44:41] [homebridge-melcloud-control] Account: Slavyanska2
[29/02/2024, 13:44:41] [homebridge-melcloud-control] Indoor: MUZ-AP25VG
[29/02/2024, 13:44:41] [homebridge-melcloud-control] Serial: 000000000
[29/02/2024, 13:44:41] [homebridge-melcloud-control] Firmware: 37000
[29/02/2024, 13:44:41] [homebridge-melcloud-control] Manufacturer: Mitsubishi
[29/02/2024, 13:44:41] [homebridge-melcloud-control] ----------------------------------
[29/02/2024, 13:44:42] [homebridge-melcloud-control] ---- Air Conditioner: Living room  ----
[29/02/2024, 13:44:42] [homebridge-melcloud-control] Account: Slavyanska2
[29/02/2024, 13:44:42] [homebridge-melcloud-control] Indoor: MSZ-AP50VG
[29/02/2024, 13:44:42] [homebridge-melcloud-control] Serial: 000000000
[29/02/2024, 13:44:42] [homebridge-melcloud-control] Firmware: 37000
[29/02/2024, 13:44:42] [homebridge-melcloud-control] Manufacturer: Mitsubishi
[29/02/2024, 13:44:42] [homebridge-melcloud-control] ----------------------------------

This is what i get in the logs. It looks like they (AC's) never load into the system.

debug please

Where is the debug file located?

homebridge.log.txt
Here it is

fixed