Block ktlint-disable directive not working

Version: 0.39.0## Expected Behavior
/* ktlint-disable indent */
should disable the indent rule from that point on.
Observed Behavior
Still getting the ktlint errors that the directive is supposed to disable
Steps to Reproduce
ktlint is used in AndroidX and we want to disable some checks (they're snippets in documentation). For example:
https://android-review.googlesource.com/c/platform/frameworks/support/+/1497420/6/compose/integration-tests/docs-snippets/src/main/java/androidx/compose/ui/docs/tutorial/Tutorial.kt
The ktlint config can be found in
https://cs.android.com/androidx/platform/frameworks/support/+/androidx-master-dev:buildSrc/src/main/kotlin/androidx/build/Ktlint.kt?q=ktlint.kt&ss=androidx
However, code after /* ktlint-disable indent */ is still breaking the build:
/* ktlint-disable indent */
...
            Text("Text", Modifier.constrainAs(text) {
                top.linkTo(button.bottom, margin = 16.dp)
            })

shows
docs-snippets/src/main/java/androidx/compose/ui/docs/layout/Layout.kt:174:13: Missing newline before ")" (indent)
My workaround is to add // disable-ktlint at the top of the file and, for some reason, I also need to add /* ktlint-disable no-unused-imports */, otherwise every import triggers an error. It looks like a different, unrelated problem.

yea, that's unfortunately not possible at the moment as the indent rule runs all or nothing:
https://github.com/pinterest/ktlint/blob/b4f084454fbe9654ba56d1b354c8a98d7baba01a/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/IndentationRule.kt#L96-L99
we are planning to change this in the upcoming release and make the rule more granular so you can disable node-specific rules.
the 2nd issue sounds like a bug indeed, but let's see how it behaves after the split.
(btw, you could update your ktlint config as the paren-spacing and import-ordering rules were already fixed)

@liutikas for the ktlint config.
Thanks Roman, I've added the "all" directive to the affected files for now, pointing to this issue. Is there a better issue to point to?
https://android-review.googlesource.com/c/platform/frameworks/support/+/1497420/7/compose/integration-tests/docs-snippets/src/main/java/androidx/compose/integration/docs/tutorial/Tutorial.kt#1
I don't think the file scope for disable directives is documented, is it? In any case, putting it on the first line can cause problems with tools checking for copyright notices, so I suggest adding something more flexible :)

yeah, this issue should be fine to point to. let's hope that you would not need to disable rules for the entire file anymore, but I agree we should think of something more flexible and straightforward ;)

Hi @romtsn,
I just wanted to add that this feature would be quite valuable for the teams at my company as well. Therefore I wanted to ask, - whether it is already planned to implement this feature or if work is already being done?

how complex you expect the implementation to be?

Depending on your responses I might be able to invest some time in order to support this feature request.
Also if adding this comment to this existing issue is inappropriate, please let me know.
Thanks in advance! 🙏

I just wanted to add that this feature would be quite valuable for the teams at my company as well. Therefore I wanted to ask, - whether it is already planned to implement this feature or if work is already being done?

how complex you expect the implementation to be?

Depending on your responses I might be able to invest some time in order to support this feature request.

The indent-rule is one of the most complex rules in ktlint. A first step would be to split this rule into separate rules regarding  line wrapping and indent fixing. For this, we have to await https://github.com/pinterest/ktlint/pull/1230. The next step after that would be cleaning up code and merging the expectedIndex variable into the IndentContext. After that it might be more clear what follow up steps have to be taken.
@aablsk Help is appreciated. It might be an idea to first get a bit acquainted  with this rule by fixing other indentation problems which are reported in the issue tracker.

Fixed by #1547


Issue 375: Fix CI state with normalization patch

The patch in this PR should have been applied before merging PR #414.  It's not quite clear at the moment how CI missed it.
This is PR 2 of 3 in resolving Issue 375.
Coordination

[x] Pull Request is against correct branch
[x] Pull Request is in, or reverted to, Draft status before Solutions Approval vote has passed.  (N/A - bugfix in PR series)
[ ] CI passes in (CASE/UCO) feature branch
[x] CI passes in UCO current unstable branch (merge-commit)
[x] CI passes in CASE current unstable branch tracking UCO's unstable as submodule (merge-commit)  (skipped)
[x] Impact on SHACL validation reviewed for CASE-Examples  (skipped)
[x] Impact on SHACL validation remediated for CASE-Examples  (skipped)
[x] Impact on SHACL validation reviewed for casework.github.io (skipped)
[x] Impact on SHACL validation remediated for casework.github.io (skipped)
[x] Milestone linked
[x] Solutions Approval vote logged on corresponding Issue

Once CI passes in this PR, I will merge this not following two-key protocol because other PRs need it in order for their CI to pass.  Before merging this, develop's head fails CI.


Consolidate PR labling automation

Summary

Consolidates the workflows in this repo that deal with labels on PRs. This brings the repo up to date with similar changes in paketo-buildpacks/github-config.
Use Cases

Checklist

[x] I have viewed, signed, and submitted the Contributor License Agreement.
[ ] I have linked issue(s) that this PR should close using keywords or the Github UI (See docs)
[ ] I have added an integration test, if necessary.
[ ] I have reviewed the styleguide for guidance on my code quality.
[x] I'm happy with the commit history on this PR (I have rebased/squashed as needed).

Lol at the autolabeler


Fixes Drupal core can't be find by DrupalTestBot

I'm not sure why the dirname was cut by 2 levels, but this make trouble with DrupalTestBot.
See https://www.drupal.org/project/upgrade_status/issues/3050653
It seems what DrupalTestBot does is something along the line
git clone drupal
composer install
install upgrade_status

In this case the autoload.php is in the root dir:
core
vendor
autoload.php

all in the same directory.
while when I use composer create project the drupal root is in a sub directory and the vendor one level above and then the current code works.

So this would break Composer installs. There's an issue to improve all of this. I think I opened a PR. On mobile and can't see quickly

Lining to #71

@mglaman When I raised it breaking composer installs, @attrib explained the code goes into the directory to try and find the right subfolder anyway, and he tried on both his composer based on install and the git checkout install, and it worked for him.

Sorry, it doesn't break anything. If the project root is an additional directory above, the DrupalFinder will discover it anyways.

🤔 I wish I could re-trigger CircleCI for this, as it has better test coverage.

🙌 found the right payload to trigger.

@attrib thanks!


heroku: 3.42.20 -> 3.43.2

Things done

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

[x] NixOS
[ ] OS X
[ ] Linux

[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[x] Fits CONTRIBUTING.md.

the cli is now using ES6 syntax which requires node 6+

This works for me; LGTM since everyone's toolbelt will automatically be broken due to heroku's auto-update.


design: Remove up-triangle from landing page menus.

The unnecessary up-triangle is removed from the landing page menus to make it look more clean.
Fixes:  #23247

Screenshots and screen captures:
https://user-images.githubusercontent.com/53159963/195967098-b8f2de41-3571-4e12-af5c-7450e5bd839a.mov
Self-review checklist

[x] Self-reviewed the changes for clarity and maintainability
(variable names, code reuse, readability, etc.).

Communicate decisions, questions, and potential concerns.

[x] Explains differences from previous plans (e.g., issue description).
[x] Highlights technical choices and bugs encountered.
[x] Calls out remaining decisions and concerns.
[ ] Automated tests verify logic where appropriate.

Individual commits are ready for review (see commit discipline).

[x] Each commit is a coherent idea.
[x] Commit message(s) explain reasoning and motivation for changes.

Completed manual review and testing of the following:

[x] Visual appearance of the changes.
[x] Responsiveness and internationalization.
[x] Strings and tooltips.
[x] End-to-end functionality of buttons, interactions and flows.
[x] Corner cases, error conditions, and easily imagined bugs.

@zulipbot claim
can I take this issue

@Rixant can you find the commit that added the code in question? I'm curious for the history of this.

@timabbott , here is the commit 0bc4760e215687a8b568f0d054e3a519d52ca253 where that code was added.

@timabbott , here is the commit a9a9333b2a15ee1b2d8213a94d7236bda3ed5f1e where the above code has been added.

Huh, so this might not be new at all?

@amanagr , perhaps you could review this one?

OK so that history confirms the triangle was added as part of the original CSS for this dropdown available to logged-in users on portico landing pages:

We should probably at least fix the width for that to not hardcode 300px, which is probably an unrelated mistake.

Still, I think it's possible a better fix would be to change this arrow styling to not look semi-detached, rather than deleting it.

We should probably at least fix the width for that to not hardcode 300px, which is probably an unrelated mistake.

Yes, that would be great! @Rixant , would you be up for putting up a PR to do that?

Still, I think it's possible a better fix would be to change this arrow styling to not look semi-detached, rather than deleting it.

Hm, yeah, after seeing the version without the arrow, that might be right.
@terpimost , what are your thoughts here?

We should probably at least fix the width for that to not hardcode 300px, which is probably an unrelated mistake.

Yes, that would be great! @Rixant , would you be up for putting up a PR to do that?

https://user-images.githubusercontent.com/53159963/196592161-17a49b9a-0cd4-4142-8018-21fcafa0480b.mov

We should probably at least fix the width for that to not hardcode 300px, which is probably an unrelated mistake.

Yes, that would be great! @Rixant , would you be up for putting up a PR to do that?

Screen.Recording.2022-10-18.at.11.36.33.PM.mov

Fixed the width issue. However I didn't quite understand the part (not to look semi-detached). Does it mean to reduce the gap between arrow and the menu items?

Does it mean to reduce the gap between arrow and the menu items?

Yeah, I think having any gap at all looks odd.

@timabbott The width change looks reasonable to me:

Can you please review this PR to see if we can merge that commit?

That commit looks fine to me.

@Rixant please squash your commits so that the width change can be integrated, and post a comment when this is done. Thanks!

@Rixant please squash your commits so that the width change can be integrated, and post a comment when this is done. Thanks!

Done.

@timabbott ready for you now.


[GSSoC'23] Netaji Biography Ready

Title - Subhash Chandra Bose Biography
Tech used - HTML, CSS and Bootstrap
Issue Number - 456
Closes #456

https://github.com/ssitvit/Code-Canvas/assets/114330097/76ae469a-6c65-4e86-b6ac-ef04cb9ca073

@artimanputra @cleveranu please review this pull request

KIndly refer the documentation and make a pr again

@cleveranu please again review this pr


Question about large transactions

I'm using 5.0.2.RELEASE and processing large transactions - approximately 200k hsets.
I'm not interacting with lettuce directly, but instead through Spring Boot 2.0.0 and Spring Redis Data 2.0.5. Both were recent upgrades and I was using jedis in the past without a problem.
I'm not familiar with Lettuce at all, so please forgive my lack of understanding if I say something wrong.
Committing the transaction takes an abnormally long time (I haven't let it finish) and only the MULTI command has been written to Redis before I kill the process. I've stepped through the code and I think I may have found the culprit:
The addToStack method in CommandHandler. Before adding the command to the stack, it is checking to see if the command is already in the stack. This operation gets more and more expensive each time a command is added as it has to iterate through the entire stack each time.
Is this expected?
Is it necessary to make sure there aren't duplicates?

This issue was addressed with #709 and the fixed version is available as snapshot build 5.0.3.BUILD-SNAPSHOT. Care to upgrade and give the fix a try?

Closing due to lack of requested feedback. If you would like us to look at this issue, please provide the requested information and we will re-open the issue.


⚠ ClamAV has degraded performance

In b7dd27f, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 212 ms

Resolved: ClamAV performance has improved in 555260d.


GH-44344: [Java] fix VectorSchemaRoot.getTransferPair for NullVector

Rationale for this change
Do not throw UnsupportedOperationException("Tried to get allocator from NullVector") from VectorSchemaRoot.slice() when slicing a VSR containing a NullVector or ZeroVector. Details in https://github.com/apache/arrow/issues/44344
Are these changes tested?
Added unit test that would trigger an UnsupportedOperationException on the legacy path.

GitHub Issue: #44344

I assumed we are going to wait till nullability annotations are properly integrated.

I think I understand the value of requiring @Nullable checks, but wondering if the bugfix here should be blocked on the refactor? iiuc the return null in this PR is far from exceptional.
The ability to make zero-copy slices of ValueVector and VectorSchemaRoot is important to our usage of Arrow. Do you think it's possible to fix the bug and file a task to forbid null by default as a fast follow? I'd be happy to look into this later but might require some rampup.

Right. I understand your point. We could create an issue for this and comment in the method.
@lidavidm WDYT?

Can we update the base getAllocator docstring to note that some subclasses may not have an allocator? Otherwise I didn't mean that we should block on nullability annotations, just that it would provide an additional layer of checks.

Fair enough. Thanks for clarifying @lidavidm

Any idea of what's causing the protoc-gen-grpc-java errors in https://github.com/apache/arrow/actions/runs/11677293979/job/32514967839?

Error:  PROTOC FAILED: /build/java/flight/flight-core/target/protoc-plugins/protoc-gen-grpc-java-1.68.1-linux-x86_64.exe: /lib64/libstdc++.so.6: version `CXXABI_1.3.8' not found (required by /build/java/flight/flight-core/target/protoc-plugins/protoc-gen-grpc-java-1.68.1-linux-x86_64.exe)

Hmm...I merged a gRPC upgrade earlier which had passed CI but maybe it's not quite safe yet. (I recall some newer version of gRPC or its dependencies started requiring newer glibc)

Yup, reverting... https://github.com/apache/arrow/pull/44645


Should "minRepeating" actually be renamed to "maxRepeating"?

It certainly behaves as if it were validating the maximum number of repeating characters :wink:

:upside_down_face: thank you! will get this out in the next release

v0.3.0 is out.

v0.3.0 is out.

Thanks!


Subtitles embedded in dash manifests dont display consistently

Description
Captions when bundled up in a dash manifest only gets displayed when you don't change the caption language or dont display at all. A test page is at https://jsfiddle.net/jvv0h0bL/ using https://storage.googleapis.com/shaka-demo-assets/sintel-mp4-wvtt/dash.mpd manifest with videojs-contrib-dash
copied from https://github.com/videojs/video.js/issues/3556
Steps to reproduce

Prepare videojs to handle dash (add dash.js and videojs-contrib-dash.js libraries)
Load up video src with a manifest that has embedded subtitles ex. https://storage.googleapis.com/shaka-demo-assets/sintel-mp4-wvtt/dash.mpd or https://storage.googleapis.com/shaka-demo-assets/tos-ttml/dash.mpd
Switch caption languages through the controlbar and see that no more captions appear

Results
Expected
Captions should appear as long as theyre not disabled.
Actual
Captions either show initially and then disappear when you change the language or do not show up at all.
Additional Information
Please include any additional information necessary here. Including the following:
versions
videojs
tried with videojs versions 5.2 and 5.10 with same results
browsers
tried this with google chrome 52.0.2743.116
OSes
only tried with mac + chrome
plugins
dash.js latest (2.20)
videojs-dash-contrib latest (2.4.0)
cc @gkatsev since he pointed me to this repo

An update:
The captions dont show up if you have nativeTextTracks as false. I assume it should work with videojs captions, not just browser captions.
If this is unrelated to the current problem, I'll make another issue for it

I see a PR, but I'm not clear on the decision made for this for the WA launch. What needs to be done next?

Is there any update/fix or even a workaround for this?
I am also observing the same issue.
I am testing with the following versions:
dash.js --- 2.3.0
videojs-dash-contrib --- 2.4.0
video.js ---- 5.10.7
I am using the following stream for testing:
http://dash.edgesuite.net/dash264/TestCases/4b/qualcomm/1/ED_OnDemand_5SecSeg_Subtitles.mpd
on Chrome version 54.0.2840.71 on Windows 7.
Also I saw that this works fine in the dash-if reference player. There video.js and videojs-contrib-dash and not used and a controlbar.js is used which calls the the API "setTextTrack()" to change the subtitle. However I could not find a similar API in video.js. I am wondering if the fix for this will require changes in video.js also apart from videojs-contrib-dash?

I'm experiencing the same issue. I have an MPD with embedded sidecar WebVTT that displays correctly in the DASH-IF Reference Client, but it does not display in video.js when using videojs-contrib-dash. If I include a track element pointing to the same WebVTT file then the captions display correctly with a control.
Is there any way that's known to work to enable subtitles/captions?

Thanks everyone!


Anaara blog added

design feed & iOS feed added for Anaara LLC
Signed-off-by: abunur<EMAIL_ADDRESS>

From a quick look at your blog posts I can't see many (or even any?) that are actually about iOS development. Is there a category feed you can use to make the submission more relevant?
Thanks!

Hi Dave, I did use a category feed: https://anaara.com/category/ios/
If you visit that feed you will find the following posts:
Case Study: Implementing Accessibility in a Health & Fitness Mobile App
What percent of your customers are affected by the level of accessibility in your app?
Updating third party library dependancies using CocoaPods
iOS Adaptive Layout tidbits...
etc.


export_customers_csv doesn't work anymore

The process is being terminated because it's using too much memory, we'll have to refactor the way it wokrs

Hi,
Can we have a ETC of this issue so we can update.
Else If the issue is solved please put the status_resolved lable and close the issue.
Thanks!


The function hash_script is not needed

https://docs.rs/ckb-gen-types/0.117.0/ckb_gen_types/packed/struct.Script.html#method.calc_script_hash
The Script has this function which enabled by default in ckb-std.

Good catch, that method came to ckb-std well after my implementation.
I'll update the code with your suggestion, thanks!

See: https://github.com/nervosnetwork/capsule/issues/111


typo in readme

Thank you for the PR.
I apologize for the extremely slow response. We've changed our processes so this doesn't happen again.


[ONBOARDING] General Member - VIVO Communication Technology

TODO General Member Onboarding
This is an issue created to onboard new TODO Group General Members.
Company
VIVO 维沃移动通信有限公司
Members

Fan Yun (primary)
Chris Yang

Contact Information

[x] For each representative of the General Member company, collect the
following:

name
pronouns
company email address
GitHub username
whether or not the representative is the primary contact for the company

[ ] Update the members list to included the collected contact information

[ ] administration repo
[ ] governance repo

Communication channels
Ensure that member representatives have joined the following:

[ ] TODO Group Slack
[ ] Community Mailing List

GitHub

[ ] Invite members to the Core GitHub team
(this will send them an invite to the GitHub organization and grant them
access to private repositories)

Private channels
Add members to the following:

[x] General Member mailing list
[ ] General Member Slack channel: #private

Meetings and Calls
Google Groups should automatically invites members to meetings, but ensure that
they have invites for the following meetings:

[x] General Members Touchpoint
[x] General Members AMA session

Resources and initiatives

[x] Ensure members are aware of the General Members onboarding guide

Good news, thx for your guide to help Vivo onboarding.


using multi_db with rails 2.3.8 and ruby 1.8.7

Hello,
is it possible to use multi_db with rails 2.3.8 and ruby 1.8.7, ive installed the gem and it installed new version of activemodel/activesupport which messed a few things in my app, any ideas?

ok it seems that the solution was to upgrade to rails 2.3.10 because multi_db comes with i18n gem (v=0.6.0), that require upgrading rails


wavelength range setting

Instrument
NIRSpec (Stages 1-3)
What happened?
In my NIRSpec data reduction, I set wave_min = 0.6 microns and wave_max = 5.0 microns in S4.ecf to capture the H-alpha line around 0.65 microns. However, in the output files (S4_XXX_ap6_bg7_SpecData.h5 and S3_XXX_ap6_bg7_SpecData.h5), the wavelength data starts at 0.68 microns instead of the specified 0.6 microns.
Interestingly, the plot file fig2101_file1_x1dints.png includes data slightly below 0.68 microns, closer to my wave_min.
What might be causing the .h5 output to start at 0.68 microns instead of 0.6?
Are there settings I can adjust to capture the 0.65-micron range in the output files?
Thank you so much.
Error traceback output
No response
What operating system are you using?
No response
What version of Python are you running?
No response
What Python packages do you have installed?
No response
Code of Conduct

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

As would've been printed to the terminal when running Stage 4 and can also be seen in the log file output in Stage 4, the code tells you that it cannot go to as short a wavelength as you requested and that you'll need to adjust the first value in your xwindow parameter in Stage 3 to a smaller number in order to access those shorter wavelengths. I don't know precisely what value you should use, so you'll need to experiment a bit

Assuming you're working on NIRSpec/PRISM, setting xwindow in Stage 3 to [14,495] should hopefully be broad enough to give you access to all the wavelengths you were wanting to access


Please improve BezLength logic

Hello.
I need to improve performance while playing JSON.
I think below logic takes long time while Draw.
(There is TODO comment also)
Path.cs
internal static double BezLength(float c0X, float c0Y, float c1X, float c1Y, float c2X, float c2Y, float c3X, float c3Y)
{
const double steps = 1000d; // TODO: improve
            var length = 0d;
            float prevPtX = 0;
            float prevPtY = 0;

            for (var i = 0d; i < steps; i++)
            {
                var pt = GetPointAtT(c0X, c0Y, c1X, c1Y, c2X, c2Y, c3X, c3Y, i / steps);

                if (i > 0)
                {
                    var x = pt.X - prevPtX;
                    var y = pt.Y - prevPtY;
                    length = length + Math.Sqrt(x * x + y * y);
                }

                prevPtX = pt.X;
                prevPtY = pt.Y;
            }
            return length;
        }

Please check it.
Thank you.

@minudf Have you tried the newest version? There was a great improvement on the rendering performance.


RocketMod 665 update causes many errors

There are many errors that appear in the consol/logs after updating to RocketMod v665 Linux (see below).
The following error appears to only occur once at the beginning:
IndexOutOfRangeException: Array index is out of range. - SDG.Unturned.VehicleManager.addVehicle (UInt16 id, Vector3 point, Quaternion angle, Boolean sirens, Boolean headlights, Boolean taillights, UInt16 fuel, Boolean isExploded, UInt16 health, CSteamID owner, CSteamID group, Boolean locked, Steamworks.CSteamID[] passengers, System.Byte[][] turrets, UInt32 instanceID)
SDG.Unturned.VehicleManager.load ()
SDG.Unturned.VehicleManager.onLevelLoaded (Int32 level)
SDG.Unturned.Level+c__Iterator1.MoveNext ()
The following errors occur as soon as somone joins the server:
NullReferenceException: Object reference not set to an instance of an object - SDG.Unturned.BarricadeManager.updateActivity (CSteamID owner, CSteamID group)
SDG.Unturned.BarricadeManager.onPlayerCreated (SDG.Unturned.Player player)
SDG.Unturned.Player.Start ()
NullReferenceException: Object reference not set to an instance of an object - SDG.Unturned.BarricadeManager.tryGetRegion (Byte x, Byte y, UInt16 plant, SDG.Unturned.BarricadeRegion& region)
SDG.Unturned.BarricadeManager.askBarricades (CSteamID steamID, Byte x, Byte y, UInt16 plant)
SDG.Unturned.BarricadeManager.onRegionUpdated (SDG.Unturned.Player player, Byte old_x, Byte old_y, Byte new_x, Byte new_y, Byte step, System.Boolean& canIncrementIndex)
SDG.Unturned.PlayerMovement.updateRegionAndBound ()
SDG.Unturned.PlayerMovement.simulate ()
SDG.Unturned.PlayerInput.FixedUpdate ()
The following error occurs frequently/constantly in the logs:
NullReferenceException: Object reference not set to an instance of an object - SDG.Unturned.PlayerStance.get_radius ()
SDG.Unturned.PlayerStance.Update ()
The following errors so far have appeared once in the logs:
NullReferenceException: Object reference not set to an instance of an object - SDG.Unturned.LevelManager.askAirdropState (CSteamID steamID)
System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture)
Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture)
System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters)
SDG.Unturned.SteamChannel.receive (CSteamID steamID, System.Byte[] packet, Int32 offset, Int32 size)
SDG.Unturned.Provider.receiveServer (CSteamID steamID, System.Byte[] packet, Int32 offset, Int32 size, Int32 channel)
SDG.Unturned.Provider.listenServer (Int32 channel)
SDG.Unturned.Provider.listen ()
SDG.Unturned.Provider.Update ()
NullReferenceException: Object reference not set to an instance of an object - SDG.Unturned.AnimalManager.askAnimals (CSteamID steamID)
System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture)
Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture)
System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters)
SDG.Unturned.SteamChannel.receive (CSteamID steamID, System.Byte[] packet, Int32 offset, Int32 size)
SDG.Unturned.Provider.receiveServer (CSteamID steamID, System.Byte[] packet, Int32 offset, Int32 size, Int32 channel)
SDG.Unturned.Provider.listenServer (Int32 channel)
SDG.Unturned.Provider.listen ()
SDG.Unturned.Provider.Update ()

---
Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/37318240-rocketmod-665-update-causes-many-errors?utm_campaign=plugin&utm_content=tracker%2F10719061&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F10719061&utm_medium=issues&utm_source=github).

Fixed in the latest Unturned update and RocketMod 667 update.


Document undocumented Blockstack authentication methods

Complete - can be moved to accepted pending @kantai 's review of pull request #386


Q: Error with Lazy Loading Components in Plasmo's Shadow UI

What is the example you wish to see?
Hi there!
I'm experiencing an issue when trying to implement lazy loading for components using React.lazy within Plasmo's Shadow UI.
Is there any context that might help us understand?
Specifically, I'm unable to access my lazily imported route, and I keep encountering the following error:

I set up a lazy-loaded component (House) within my Home component like this:

import React, { lazy, Suspense } from 'react';
const House = lazy(() => import('./House'));

function Home() {
  return (

Home

      <Suspense fallback={
Loading...
}>
        <House />
      </Suspense>

  );
}

I'm using createMemoryRouter for routing.

Expected Behavior:
I expect the House component to load lazily without encountering the module resolution error.
Actual Behavior:
Instead, I receive the error mentioned above, suggesting that the dynamic import is not resolving correctly.
Additional Context:
I have confirmed that the path to House is correct.
I have tested static imports, which work fine, so the issue seems specific to lazy loading.
Questions:
Are there any known limitations or considerations regarding lazy loading components in Plasmo's Shadow UI?
What steps can I take to troubleshoot or resolve this issue?
Thank you for your help!
Code of Conduct

[X] I agree to follow this project's Code of Conduct
[X] I checked the current issues for duplicate problems.

Faicng same issue while importing plasmo storage dynamically

Not sure, but have you tried importing using the url/scheme syntax?
import myFile from "url:./path/to/my/file/something.js"

The url: scheme will automatically resolve the something.js asset and add it to the web_accessible_resources declaration in the built bundle. The above myFile variable will be a string containing the URL to the asset:

see doc here:
https://docs.plasmo.com/framework/content-scripts#importing-resources


CDNC-2088

What changed?
Add AttemptCount into log

Why?
Currently we have metrics for number-of-attempts and have alerts on them, but finding the associated workflows can be tricky due to other logs also existing / temporary issues that self-recover happening all the time.

How did you test it?
Unit test

Potential risks
no

Release notes

Documentation Changes

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

Pull Request Test Coverage Report for Build 01864d19-e42e-431e-b0ee-5caacb1f9c38

0 of 5 (0.0%)  changed or added relevant lines in 2 files are covered.
133 unchanged lines in 17 files lost coverage.
Overall coverage decreased (-0.06%) to 57.159%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

common/log/tag/tags.go
0
2
0.0%

service/history/task/task.go
0
3
0.0%

Files with Coverage Reduction
New Missed Lines
%

common/log/tag/tags.go
1
51.46%

common/task/weightedRoundRobinTaskScheduler.go
1
88.6%

client/history/client.go
2
38.1%

client/history/metricClient.go
2
45.3%

service/history/handler.go
2
47.15%

service/history/task/transfer_active_task_executor.go
2
72.22%

common/task/fifoTaskScheduler.go
3
84.54%

service/frontend/workflowHandler.go
4
59.98%

service/history/task/fetcher.go
4
91.24%

service/matching/taskListManager.go
4
78.12%

Totals

Change from base Build 01864c84-f59b-4822-a8e4-1c6ff770d9df:
-0.06%

Covered Lines:
84937

Relevant Lines:
148599

💛  - Coveralls

from your note, do you need to add the tag here https://github.com/uber/cadence/blob/master/service/history/task/cross_cluster_task.go#L362

@neil-xie Yes you are right! Nice catch. I totally missed that one. I've searched all other uses of the metric TaskAttemptTimerPerDomain, and made sure that everything was covered.


Specify triplesec as dependency and shift extra bytes

I stumbled upon this example while trying to setup a login in node and banged my head against it for a while until I ended up comparing dependency versions and the string-ed output of Encryptor.resalt. Eventually I realized that the extra buffer was shifted to the right 32 bytes in<EMAIL_ADDRESS>as compared to<EMAIL_ADDRESS>I have no idea why this is, or what implications it might have. The ~only~ main changes between those releases seem to be related to the deprecated Buffer creation approach, and that's pretty wide-spread. (re: https://github.com/keybase/triplesec/compare/v4.0.1...master)
At any rate, when I took into consideration this additional shift and took my extra bytes from the end of that, the example worked as expected.
Regardless of the importance of this change, I'd be curious to know the cause of this is.

CC @heronhaye; In 4.0, one of the ciphers was removed (TwoFish, since it seems to be outmoded). That probably shifted everything over by 32 bytes, and the math was wrong with the extra output. It's likely a better fix to pass version : 3 to the constructor of Encryptor, can you try that?
Sorry about the confusion, I think we forgot about this module. It's mainly for tutorial value.


Documentation about minimum supported versions of React and Webpack

Could you add some documentation to the README or website to indicate which version of React and Webpack is required to use this library please?
Looks like the minimum required React is listed in https://github.com/smooth-code/loadable-components/issues/145 at 16.x now, an easier way to view this information would be appreciated.
Great lib btw!

Hello, yeah of course. The requirement is React v16.3+ and Webpack v4+. A PR to update documentation is welcome!


Title: Movie recommendation System on the basis of emotion

Initiative (Required)
GSSoC (Girl Script Summer of Code) 🌸
Is your feature request related to a problem? Please describe.
Many people struggle to find movies that support their mental health, often leading to unsuitable or triggering content.
Describe the solution you'd like.
A movie recommendation system that suggests films based on users’ emotional states and preferences to promote mental well-being.
Add any other context or screenshots about the feature request here.

After clicking link

@Kushal997-das  please assign this issue to me

I am the mentor of this project.
Hello @Amanjayswal500
I appreciate your pull issue!!!
@Kushal997-das Kindly assign this issue!!!

I want to add this feature to your project
@SakiraAli1115

@Amanjayswal500
I mean to say that under GSSoC'24 Extended Edition and hacktoberfest2024 ?


vim-airline implementation?

I used this extension ever since I started using vscode, and I never tried vscode-vim until today. It seems that the vs-neovim beat it in anyway, but I noticed that the vscode-vim has an interesting implementation for vim-airline (they also showed it on their GitHub page). I'm wondering if it is possible to be implemented in vscode-neovim?
Of course, it is not a significant thing, but still nice to have!

Does this extension work for you?
https://marketplace.visualstudio.com/items?itemName=JulianIaquinandi.nvim-ui-modifier

Thank you!
I tried this extension. It's works for colors but messed up the cursor position, which make it unusable for me. But I'm still closing this issue as I found that I don't really need these color indicators.

FWIW, you can probably get there to some degree with the Customize UI extension, though it's quite a hack. Here is what I use to colorize the statusbar widget based on the current mode:
    "customizeUI.stylesheet": {
        "#asvetliakov\\.vscode-neovim[aria-label=\"-- INSERT --\"]":
            "background-color: #98971a !important;",
        "#asvetliakov\\.vscode-neovim[aria-label=\"-- VISUAL --\"]":
            "background-color: #b16286 !important;",
    },

But with some more CSS magic, this probably could get much more fancy.


Signals to allow a plugin to be developped

I would like to develop a plugin that would allow saving authenticated users' cookie preferences in the database.
In order to make the plugin work, I would need the three following changes:

CleanCookiesMiddleware needs to be fixed.
Adding accept_cookie and decline_cookie signals.
Releasing a new pypi version

Those changes would allow me to avoid a fork for my new plugin. See plugin here(still under development).
I'm ready to be part of the main app maintainers if needed.

@ThomSawyer Thanks for this. We need more maintainers for this project. If you could fix some of my bugs I would love you forever :)
@bmihelac the maintainer has been MIA and nobody knows where he is.
Just wondering would this allow for new database entries when COOKIE_CONSENT_LOG_ENABLED = True? Not everyone including me would need this type of feature. Users could keep deleting cookies then allow them over and over again and fill up the database quickly. So my recommendation would be to make a setting to turn this on/off if you don't already have it. I would make it separate from COOKIE_CONSENT_LOG_ENABLED if it has different functionality.

@9mido The COOKIE_CONSENT_LOG_ENABLED already handles the situation you are discribing.
If set to False there will be no log entries in the database. You can see it in the codebase:

https://github.com/bmihelac/django-cookie-consent/blob/master/cookie_consent/util.py#L95
https://github.com/bmihelac/django-cookie-consent/blob/master/cookie_consent/util.py#L117

I think that your problem might be that the latest release on PyPI (0.2.6) doesn't allow you to enable / disable this setting.
To fix your problem quickly, you can install the package from Github's master branch instead of PyPI:
pip install -e git://github.com/bmihelac/django-cookie-consent@master#egg=django-cookie-consent

@ThomSawyer Thanks I was already aware of PyPi not being updated and needing to use the command to use the latest version as you have kindly added here. I have been using the COOKIE_CONSENT_LOG_ENABLED successfully for some time now.
I am confused. Why create a completely separate dedicated app if you could have another additional setting merged to the main django-cookie-consent library to let people decide if they want to use it or not? What I was trying to suggest was just make a setting for your plugin something like COOKIE_CONSENT_PLUGIN_SIGNALS = True|False or whatever you want to call it so that everyone could use/not use it from just 1 app instead of 2? If you made a setting like that, then users like me wouldn't be forced to have anything logged to the database for users regarding their cookie acceptances/declines. And users like you could decide to have it logged in the database if they wish.
Or do you mean in the meantime before PyPi is updated with the main django-cookie-consent to have a separate app so that people could have an updated one from you for the time being until the main one gets updated?

@ThomSawyer Wondering why you closed this?

I've been working on a fork to solve my use case.
It seems that the code I wrote couldn't be merged anymore. I'm willing to reopen this issue if the maintainers agree.

@ThomSawyer It wouldn't hurt to reopen it or make a new one.


Possible generics issues / limitations: Type param names, subtyping

Please forgive my possibly confused language around the topic of generic typing. Hopefully the example will provide clarity. In my attempt to solve my issue, I've come across some interesting behavior by the compiler which may be an issue or limitation with Pony's generics.
The below example (run on playground) demonstrates my intention of being able to map a trivialized event stream of type USize to another of type String.
trait Events[T: Any #share]
  """ Assume `Events` represents a stream of events of type `T`. """

  // For simplification
  fun ref set_event(e: T)
  fun ref get_event(): T

  // Maps this event stream of type `T` to another stream of type `R`
  fun ref map[R: Any #share](
    f: {(T): R}) // A lambda which transforms T to R
    : Events[R]
  =>
    _MappedEvents[T, R](this, f)

// This version of `_MappedEvents` shares type parameter names `T` and `R`
// with the supertype it provides.
class _MappedEvents[T: Any #share, R: Any #share] is Events[R]
  """ An event stream which transforms events of `_from` with `_f` """
  let _from: Events[T]
  let _f: {(T): R}

  new create(
    from: Events[T],
    f: {(T): R})
  =>
    _from = from
    _f = f

  fun ref set_event(e: R) => None
  fun ref get_event(): R =>
    let e: T = _from.get_event()
    _f(e)

/*
// This version of `_MappedEvents` uses unique type parameter names.
class _MappedEvents[A: Any #share, B: Any #share] is Events[B]
  """ An event stream which transforms events of `_from` with `_f` """
  let _from: Events[A]
  let _f: {(A): B}

  new create(
    from: Events[A],
    f: {(A): B})
  =>
    _from = from
    _f = f

  fun ref set_event(e: B) => None
  fun ref get_event(): B =>
    let e: A = _from.get_event()
    _f(e)
*/

actor Main
  new create(env: Env) =>

    // Construct an event stream of USize
    let usize_events: Events[USize] =
      object ref is Events[USize]
        var _event: USize = 0
        fun ref set_event(n: USize) => _event = n
        fun ref get_event(): USize => _event
      end

    // Set the event on the 'stream'
    usize_events.set_event(7)

    // Map `usize_events` to a new event stream `string_events` of type String
    let string_events: Events[String] = usize_events.map[String]({(n: USize): String => n.string()})

    // Get and print the mapped 'event' of 7 to "7"
    env.out.print(string_events.get_event())

The resulting error has been described as odd in that some type parameter names may not have been reified to provided types, for example USize or String (See also #2867). I do not understand the generic compilation process enough to know whether this is the case:
0.24.4 [release]
compiled with: llvm 3.9.1 -- cc (Ubuntu 5.4.0-6ubuntu1~16.04.10) 5.4.0 20160609
Defaults: pic=false ssl=openssl_0.9.0
Error:
main.pony:19:1: type does not implement its provides list
class _MappedEvents[T: Any #share, R: Any #share] is Events[R]
^
    Info:
    main.pony:10:18: Any #share is not a subtype of R #share: the type parameter has no lower bounds
      fun ref map[R: Any #share](
                     ^
    main.pony:11:8: parameter R #share is not a supertype of R #share
        f: {(T): R}) // A lambda which transforms T to R
           ^
    main.pony:11:8: {(T): R}[R #share, R #share] ref is not a subtype of {(T): R}[R #share, R #share] ref: method 'apply' has an incompatible signature
        f: {(T): R}) // A lambda which transforms T to R
           ^
    main.pony:10:3: parameter {(T): R}[R #share, R #share] ref is not a supertype of {(T): R}[R #share, R #share] ref
      fun ref map[R: Any #share](
      ^
    main.pony:10:3: _MappedEvents[T #share, R #share] ref is not a subtype of Events[R #share] ref: method 'map' has an incompatible signature
      fun ref map[R: Any #share](
      ^

In my attempt to get around the error, I decided to use unique type parameter names in _MappedEvents (see alternate implementation above, run in playground), which resulted in a different compilation error as shown:
Error:
main.pony:14:25: argument not a subtype of parameter
    _MappedEvents[T, R](this, f)
                        ^
    Info:
    main.pony:14:25: argument type is _MappedEvents[A #share, B #share] ref
        _MappedEvents[T, R](this, f)
                            ^
    main.pony:44:5: parameter type is Events[R #share] ref
        from: Events[A],
        ^
    main.pony:14:25: _MappedEvents[A #share, B #share] ref does not implement trait Events[R #share] ref
        _MappedEvents[T, R](this, f)
                            ^

I thought it was significant that by changing the type param names, a different error message resulted. This has made me wonder if perhaps there may be confusion in the compiler regarding type parameter names in subtyping hierarchies? Again this is just speculation with limited knowledge and understanding of how things actually work. FWIW, I seem to remember solving problems I've had in the past by swapping the common type param name T for  something else.
The next thing I did was change the Events definition from a trait to an interface, and looked at the resulting error messages using both versions of _MappedEvents. My assumption was that the use of either a trait or interface would be equivalent in this case, and that that the error messages would be the same in both cases of _MappedEvents, but this is not the case. Defining Events as an interface and using the version of _MappedEvents with unique type param names results in a different error message, which is more a combination of the previous two (as shown above) along with issues of 'incompatible type signature' on methods of the interface:
Error:
main.pony:14:25: argument not a subtype of parameter
    _MappedEvents[T, R](this, f)
                        ^
    Info:
    main.pony:14:25: argument type is _MappedEvents[A #share, B #share] ref
        _MappedEvents[T, R](this, f)
                            ^
    main.pony:44:5: parameter type is Events[R #share] ref
        from: Events[A],
        ^
    main.pony:10:18: Any #share is not a subtype of B #share: the type parameter has no lower bounds
      fun ref map[R: Any #share](
                     ^
    main.pony:50:3: parameter B #share is not a supertype of R #share
      fun ref set_event(e: B) => None
      ^
    main.pony:50:3: _MappedEvents[A #share, B #share] ref is not a subtype of Events[R #share] ref: method 'set_event' has an incompatible signature
      fun ref set_event(e: B) => None
      ^
    main.pony:38:39: Any #share is not a subtype of R #share: the type parameter has no lower bounds
    class _MappedEvents[A: Any #share, B: Any #share] is Events[B]
                                          ^
    main.pony:51:3: method result B #share is not a subtype of R #share
      fun ref get_event(): B =>
      ^
    main.pony:51:3: _MappedEvents[A #share, B #share] ref is not a subtype of Events[R #share] ref: method 'get_event' has an incompatible signature
      fun ref get_event(): B =>
      ^
    main.pony:38:39: Any #share is not a subtype of R #share: the type parameter has no lower bounds
    class _MappedEvents[A: Any #share, B: Any #share] is Events[B]
                                          ^
    main.pony:11:8: parameter R #share is not a supertype of B #share
        f: {(T): R}) // A lambda which transforms T to R
           ^
    main.pony:11:8: {(T): R}[R #share, R #share] ref is not a subtype of {(T): R}[B #share, R #share] ref: method 'apply' has an incompatible signature
        f: {(T): R}) // A lambda which transforms T to R
           ^
    main.pony:10:3: parameter {(T): R}[B #share, R #share] ref is not a supertype of {(T): R}[R #share, R #share] ref
      fun ref map[R: Any #share](
      ^
    main.pony:10:3: _MappedEvents[A #share, B #share] ref is not a subtype of Events[R #share] ref: method 'map' has an incompatible signature
      fun ref map[R: Any #share](
      ^

I'd be happy to hear that my intentions as laid out by the example are not unwarranted. I should also note that I've also tried replacing the object literal / lambdas with classes and found no difference to the above.
Thanks for taking a look!

Related: #1875, #1921
Possible fix: #1888

As suggested by @mfelsche, I applied the same kind of workaround as applied by @Theodus in mfelsche/ponycheck#15 to the example above (with success) as seen in this playground. I think this indicates the underlying problem is the same, and hopefully is resolved by #1888.


Cell drag area very small

Have a notebook cell, for example my-work.github-issues
Try to drag the My Bugs section. Notice how the drag area is very very small 🐛

Due to this it is very hard for users to discover that sections can be dragged and dropped, and it is very tedious to find the right location where I can start dragging.

Related to https://github.com/microsoft/vscode/issues/104104. One proposal is to make the entire markdown cell moveable.


Remove the link to kythe-early-interest, as it is now unnecessary. [phab:D3]

Created by fromberger at 2015-01-27 20:46:47:

schroederc accepted this revision at 2015-01-27 20:47:42

fromberger closed via commit 60d266ddf6900a18fb8d27b8195373ba1a0fd3d6 at 2015-01-27 20:50:00

commit 5ece8547c0cf7ef9251959ed34e12cab98466290


Fix Openstack Controller mocks and tests

What does this PR do?
Fix the mocks because they were broken with some of the latests PRs
Motivation
We need to trust our tests
Additional Notes

Review checklist (to be filled by reviewers)

[ ] Feature or bugfix MUST have appropriate tests (unit, integration, e2e)
[ ] Changelog entries must be created for modifications to shipped code
[ ] Add the qa/skip-qa label if the PR doesn't need to be tested during QA.
[ ] If you need to backport this PR to another branch, you can add the backport/<branch-name> label to the PR and it will automatically open a backport PR once this one is merged

Can we rename this PR and add a changelog since it involves more changes than just tests?

No new functionality is added. Only the mocks are fixed and some checks are added that were previously going unnoticed due to the problems with the mocks.

Can we rename this PR and add a changelog since it involves more changes than just tests?

No new functionality is added. Only the mocks are fixed and some checks are added that were previously going unnoticed due to the problems with the mocks.

Even though no new functionality is added, the changes including modifying how we handle exceptions, increased debug logging, and removal of microversion checking are all code changes and will have an effect on users, so I think they should be included in the changelog as a fixed entry

Can we rename this PR and add a changelog since it involves more changes than just tests?

No new functionality is added. Only the mocks are fixed and some checks are added that were previously going unnoticed due to the problems with the mocks.

Even though no new functionality is added, the changes including modifying how we handle exceptions, increased debug logging, and removal of microversion checking are all code changes and will have an effect on users, so I think they should be included in the changelog as a fixed entry

After moving the code modifications from this PR to other smaller PRs with their respective changelogs, this one only includes new/modified mocks and some necessary corrections in some tests.
I think now it's definitely no-changelog


GH actions for top level

That triggers the actions in subdirs.

As of today, GH workflows can only live in the top-level .github/workflows directory. They cannot live in subdirectories. Thus there is no way to use a top-level workflow to trigger workflows in subdirectories (because they are not allowed to live there).
Instead:

I renamed the per-project workflows.
I set the working-directory within each (to cause the action to be executed using the appropriate subdirectory as working directory), and
I moved them into the top-level .github/workflows directory.

The workflows can probably be simplified further (e.g., consolidated into fewer). For now, however, we are 🤘


v0.14.0 docs update

What kind of change does this PR introduce?
Docs update

Coverage remained the same at 100.0% when pulling 36262bb84c59969968c56ff14219d791ac18983e on v0.14.0-docs into fbd072ae40618277cb09915c94cc5f5ff4a1a053 on master.


fix: added apex domain redirects

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


⚠ Jenkins Plugins Artifactory has degraded performance

In 4bc8dca, Jenkins Plugins Artifactory (https://get.jenkins.io/plugins/artifactory/) experienced degraded performance:

HTTP code: 200
Response time: 1374 ms

Resolved: Jenkins Plugins Artifactory performance has improved in daeab1a after 12 minutes.


Documentation not OS X friendly

The documentation doesn't indicate how to get shuf on OS X.
brew install coreutils
ln -s /usr/local/bin/gshuf /usr/local/bin/shuf

I didn't understand it exactly. Are you saying you needed these two commands to make pokemonsay work on your OS X? Did you need these commands before or after installing?
I don't have a Mac, so I can't test it. But if you tell me that this is it, I will gladly add the instructions on the README.md.
Is shuf really necessary for pokemonsay to work? I'm saying that because I'm sure I didn't use it directly. I didn't even know this thing existed (haha). But maybe it is used by cowsay, or somewhere along the way.
And could you tell me in detail what were the steps you took in order to install it and make it work?
Thanks for the feedback.

I needed both of those commands to make it work on my system (10.11.5). I ran both of those commands afterI installed it. shuf is used on line 115 of pokemonsay.sh. pokemon_cow=$(find $pokemon_path -name "*.cow" | shuf -n1).

@taylor1791 ➕

Woww. That's true. That's how a random Pokémon is selected. Hehe. My fault. It's been so long since I don't touch these scripts that I didn't even remember. Thanks for noticing that.
I already updated the README. Thank you guys. :smile:


Issue: Colours of channel button not matching

Hi,
another minor issue. The colours on the channel buttons 2, 4, 5 and 6 aren’t matching the displayed channel colours in the Mightier Amp app.
Regards
TullyMore
Devices and versions:
Android 13 on Samsung Galaxy A52s 5G
Android 8.1.0 on Samsung Galaxy Tab A (2016)
Mightier Amp v0.9.6 with all permissions granted

Fixed in latest 0.9.8 release.

Hi,
thanks for fixing this. Colours for channel 2 and 4 are now matching. Buttons 4 and 6 unfortunately still aren't correct.
Regards
TullyMore

I see. You are talking about the channel buttons on the editor page. I haven't changed the colors of the channels on that page at all, there's no way I "fixed" colors 2 and 4.
To me, they look good enough - both Mighty Plug and Mighty Plug Pro. Maybe not perfect, but I made sure it's recognizable which channel are you on. Then I adjusted some a little so that the white text on the amp sliders is readable (this is for MP-2). There may be a variance between devices. If I judge by the official app, its colors are way off, compared to what my Mighty Plug MP2 shows. What do you see? Is it like a red vs blue difference?
There was a bug in the presets tab, however. Mighty plug pro presets were showing the colors of Mighty plug MP-2 presets. I thought you were talking about that. This is the thing I fixed.

Hi,
I'm using a Mighty Air. Maybe, that's the reason for the different colors.
Button 4 on the Amp is purple. In the App it's gray with a blueish hint.
Button 5 on the Amp ist green, but not as strong as button 1 green. In the App it's light blue.
Button 6 on the Amp is orange. In the App it's purple.
Please find pictures attached.

You're right, they have different colors. I always assumed that Air and Plug were identical and I didn't pay attention to details. I'll copy the colors from the official app.


React & ReactDOM are included in dist/main.js

The React and ReactDOM are part of dist/main.js
This causes react to be double loaded which causes issues.

Thanks for your report! But when I removed the react & react-dom external script from the example page (index.html), there is a JavaScript error: Uncaught ReferenceError: React is not defined... Seems that the React object is not in the dist/main.js, but in the external script.
And my webpack external setting was:
  externals: {
    'react': {
      root: 'React',
      commonjs2: 'react',
      commonjs: 'react',
      amd: 'react'
    },
    'react-dom': {
      root: 'ReactDOM',
      commonjs2: 'react-dom',
      commonjs: 'react-dom',
      amd: 'react-dom'
    }
  },

I think that this setting could avoid bundling the React & React-DOM into dist/main.js.
Any advice?

@wakeless I don't think it is true. Do you have a proof so this issue can be confirmed?

Doesn't seem to be the case, this issue can probably be closed.


Don't include hashing algorithms, if not necessary

Describe the bug
When importing unlazy using import { lazyLoad } from 'unlazy', the Thumbhash and Blurhash algorithms for decoding the hash to a valid data uri are always included.
This may not always be necessary, since we can also create a valid data uri on the serverside.

I'm not sure if the __ENABLE_HASH_DECODING__ variable is exposed for the default build. If so, you can use a plugin like Rollup replace to conditionally set it to false, which would tree-shake the hashing logic.
Source:
https://github.com/johannschopplich/unlazy/blob/96e854a984fe6c71cc6f4c9610e5f3cf60f85e5d/packages/core/src/lazyLoad.ts#L7-L8
If the variable is not exposed in the dist files, then we could enforce it to support tree-shaking.

@felixranesberger My approach above won't work, since the __ENABLE_HASH_DECODING__ variable will be dumped when bundling the library. Can you tell me which bundler you are using? There's still a workaround to exclude the hashing libraries.

I'm using Vite to bundle the JS.
So Rollup under the hood.

@felixranesberger I have added a guide which should meet your requirements: Build Flags


Remove XSS filter class

The filter removed information that wasn't added back on
the frontend. It's better to keep all data and remove entries
that are malicious, instead of filtering per field.

Codecov Report

Merging #81 into master will decrease coverage by -0.34%.
The diff coverage is 30.76%.

@@             Coverage Diff             @@
##             master     #81      +/-   ##
===========================================
- Coverage     38.83%   38.5%   -0.34%
+ Complexity       87      85       -2
===========================================
  Files            17      16       -1
  Lines          1187    1179       -8
  Branches        117     117
===========================================
- Hits            461     454       -7
+ Misses          674     673       -1
  Partials         52      52

Impacted Files
Coverage Δ
Complexity Δ

src/main/java/se/lth/cs/connect/routes/Entry.java
32.57% <30.76%> (ø)
8 <0> (ø)
:x:

Continue to review full report at Codecov.

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

 Remove XSS filtering from backend


Web editor submit button disabled.

Did you make changes to the file? The button is disabled if you haven't made any changes to the file to prevent empty commit

Yes, I have made. This maybe an effection of the fomantic framework?

Hmm not sure, I can't reproduce this on try with the new fomantic changes (but perhaps #9400 has fixed this)

@mrsdizzie I think #9400 fixed this.


please test on almalinux/rocky linux!

please test on almalinux/rocky linux!

AlmaLinux support added in a pull request I just added.
https://github.com/angristan/wireguard-install/pull/345


Function calling CX Agent

Added the Function Calling Customer Experience Agent code for the upcoming article.
Also, please consider merging this other PR too.

@tmoreau89 any concerns with the dependency list length or can we merge?

Thanks for the reminder, merged.


feat: add Remix Arc Stack

this is basically a remix version of https://github.com/architect-examples/arc-example-notes
Signed-off-by: Logan McAnsh<EMAIL_ADDRESS>

See #1538 for session storage integrated with arc tables, to avoid storing sensitive data in cookies.

As stated in the official Architect guides preferences.arc is intended to be added to .gitignore. That's because environment variables from all your invironments are synced there, as well as it containing local preferences like autocreate, sandbox startup scripts etc.

I left a few comments/thoughts on Arc-specific things, but overall it looks good 👍 (caveat: I didn't look closely at the session and db interactions since it's based on an Arc example.)
I mentioned in a review comment that we're currently working on Architect 10. Arc 10 has some extensive work being done on our plugin APIs. So I'm actively working on an Arc Remix plugin as a way to test those interfaces. This template is definitely helpful.
Since Arc 10 is currently in the RC stage, it's definitely best to move forward with your approach here. As we get close to a v10 release, maybe we can pair on how to best integrate Remix + Arc from both the Remix angle and the Arc angle for users.
Let me know if I can help with anything else. I'm excited for the crossover here. Thanks again for reaching out, Logan.

Awesome! thanks again for doing this @tbeseda, I would be more than happy to pair on the Remix plugin :)


This should correct #5

I ran into the same blocker as mentioned in #5, decided to fix it up for ya.
I added a case statement to include elrepo, and updated packages logic to differentiate between ubuntu/debian and the rest

Would you like me to sort out the above comments?
-Haus

Could this be rebased? If not I may merge it and resolve the conflict myself but wanted to give a chance to do it the right way first!

I'll give it a swing, should have some time today :smiley:

Converging the centos-6.7 suite locally now

got a few minor tweaks, will be pushed shortly

@tas50 any objection to merging this?
I've tested converging with both 6.7 and 6.8 without fail.
I've added chefspec to ensure converge is successful.
I've got everything happy with FC and RC.
let me know if I'm missing anything :smiley:

@esabelhaus You'll need to revert the changes to the readme that reverted the formatting fixes. Also you only want to include the yum-elrepo recipe if you're on the RHEL platform family. Otherwise we're trying to load that on Ubuntu/Debian as well.

@tas50 I've modified the unit tests to follow the chefspec ServerRunner.new() format, let me know if there's anything else you'd like me to tweak :smiley:
-Haus

@tas50 any movement on this?

Just rebased to master, if something is busted, I will fix it later today. @tas50 I have modified the code which you requested previously, is there any reason this can't be merged?

@esabelhaus I've made some changes on master for a few things that weren't necessary in the change. Thanks for putting it together and getting this pushed through.


Handle bad geometries

When importing shapefiles with a bad geometry, the results assign the incorrect geometry to items from the parsed dbf file.
This PR just makes sure that the results from getRows match what is parsed in parseDbf.
I went ahead and ran build and min. I can roll back those changes if you would rather just do that once before release.

i think this has probably been handled by some changes since then


Aprrove/Revise Job Profile System

So I need to continue this project, I have to add an Approve/Revise Job Profile System to the system. there is any point that I should thinking about:

View the Job Profile System
-The Logic to implement Job Profile System (Approved/Revise)

The Logic

so I completed it, and i have added the job vacant case to the logic


Format error with sqlite in Ubuntu

The error is

My os info is
Distributor ID:	Ubuntu
Description:	Ubuntu 20.04.3 LTS
Release:	20.04
Codename:	focal
Juicefs info is
wan@wan-VirtualBox:~/Downloads$ ./juicefs -version
juicefs version 0.17.1 (2021-10-28T05:30:05Z 4d11c4b)

The /tmp/bbb is probably an existing file with invalid db permission. Remove it and re-run the format command with sudo will fix this.


Add Javadoc about set vs. add methods

There should be a warning on each method about which can only be applied to a view once (those which use setters behind the scenes) vs. those which can be applied multiple times (those which use add/remove behind the scenes).

Slightly related, but what are your thoughts on accepting bindings to a listener instance as well as a view? The reason I ask is because sometimes I/others handle this situation by setting delegate listener internally and then routing all future ones through that (basically maintaining an internal list of listeners). Might be something better left for the user, but just mentioning it in case.

I have thought about listener factories. For when you need to pass a View.OnClickListener to something but want it hooked up to an Observable on your end (without the manual PublishSubject dance). But not much beyond that...

Maybe take a listener instance as a param and abstract *OnSubscribe classes to accept both a View and a <listener> instance?
I'll make a branch demoing this and update in a bit

Actually, nevermind. I don't think it's easily doable without forcing the user to extend your own abstract listener implementation and doing some wonky internal boilerplate. I don't think it's worth it, but demo can be found here: https://github.com/hzsweers/RxBinding/commit/756913c21c422def93f39ae6632b95edd5efb419


Final fix for tests causing Docker containers to exit after test completion.

See #1069, #1057.

Can one of the admins verify this patch?

@mjstealey This is ready to be merged (unless someone has any feedback)

+1


Create cargo generate app

Created this repo: https://github.com/rustyrails-rs/rustyrails-demo-template
For generating run the following command:
cargo generate https://github.com/rustyrails-rs/rustyrails-demo-template


remove direct pings from status.shields.io

:clipboard: Description
Since we enabled REQUIRE_CLOUDFLARE in mid October, the direct pings on https://status.shields.io/ show as permanently down (because we now require all incoming traffic to pass though the CDN). We should remove these from https://status.shields.io/ to accurately reflect uptime.

Took care of this today ✅


Empty country from IMDB import

When importing a movie from IMDB, the country content is always blank, although the IMDB page has a country.

The API has probably changed and need to be update.

Seems to work again.


'Playback-track-changed' listener giving bad data

** Bug **
My app has 2 ways to change the track in the queue:

Song ends and playback-track-changed is automatically triggered
User presses our 'skip' button, which simply calls TrackPlayer.skipToNext()

Previously, playback was working flawlessly. Playing tracks and manually triggering TrackPlayer.skipToNext() is still working as expected, however when tracks end and switch automatically, playback-track-changed is sending the wrong data.

Queue: [A, B, C, D...]
Triggering manually gives: [A, B, C, D...]
Automatic song end: [A, C, D...]

Below is the logic order I'm seeing:
Automatic:

TrackPlayer.getCurrentTrack() will return 'A'
TrackPlayer.getQueue() will return [A, B, C, D...]
Track will end, triggering playback-track-changed
playback-track-changed data gives { track: B, nextTrack: C } (incorrect: should be { track: A, nextTrack: B }. Even though step 1 returned 'A', it thinks it somehow played 'B' and skips it)

Manual:

TrackPlayer.getCurrentTrack() will return 'A'
TrackPlayer.getQueue() will return [A, B, C, D...]
User 'skips' track, which triggers TrackPlayer.skipToNext()
playback-track-changed data gives { track: A, nextTrack: B } (correct)

I can't figure out why my queue isn't playing correctly anymore. It was working previously (v2.0.0-rc4), but seems to not be working on v2.0.0-rc13. I'm not sure if I changed something code wise, but it doesn't seem likely since the manual skip is working, which (to my knowledge) should be triggering the exact same thing the automatic swap should be doing.
Can anyone verify what the default behavior is when a song ends? I think I read in some other issue that we should just use playback-track-changed.  Is there planned support for a custom callback on song end?
Reproduce:
I'm not sure how to explain how to reproduce in my fashion, so I guess if anyone has a basic queue playing properly, then my code is the problem.
** Environment **
Running on an iOS simulator. RN Track Player v2.0.0-rc13.
System:
OS: macOS 10.15.5
CPU: (4) x64 Intel(R) Core(TM) i5-4308U CPU @ 2.80GHz
Memory: 240.47 MB / 8.00 GB
Shell: 5.7.1 - /bin/zsh
Binaries:
Node: 12.16.1 - /usr/local/bin/node
Yarn: 1.21.1 - /usr/local/bin/yarn
npm: 6.13.4 - /usr/local/bin/npm
Watchman: 4.9.0 - /usr/local/bin/watchman
SDKs:
iOS SDK:
Platforms: iOS 13.5, DriverKit 19.0, macOS 10.15, tvOS 13.4, watchOS 6.2
Android SDK:
API Levels: 23, 25, 26, 27, 28, 29
Build Tools: 28.0.3
System Images: android-29 | Google Play Intel x86 Atom
IDEs:
Android Studio: 3.6 AI-192.7<IP_ADDRESS>08749
Xcode: 11.5/11E608c - /usr/bin/xcodebuild
npmPackages:
react: 16.9.0 => 16.9.0
react-native: 0.61.5 => 0.61.5

SOLUTION UPDATE:
Before I describe my solution, it's worth mentioning that the TrackPlayer audio has always played in the correct order, despite the playback-track-changed data being off. My below solution fixes a mismatch of audio and displayed metadata, as I was showing metadata based on nextTrack data, which was 1 song ahead of the playing audio.

I realized that the TrackPlayer is feeding me data in the following order (each object is a callback from 'playback-track-changed', where my TrackPlayer queue is [A,B,C,D,E...]):

{track: null, nextTrack: A}
{track: B, nextTrack: C}
{track: C, nextTrack: D}
{track: D, nextTrack: E}

On load, the first track gets triggered with {track: null, nextTrack: A}. If you look at the pattern above, nextTrack matches with the following callback's track, excluding the very first call. I knew of this and had a fix, but it seems my fix didn't work well in v2.0.0-rc13, and needed a bit of platform help. The below code fixed my issue.
Platform.OS === "android" ? (newTrack = get(this.state, "stateTrackListMap[" + nextTrack + "]", {})) : (newTrack = get(this.state, "stateTrackListMap[" + (track === currentPropsTrack ? nextTrack : track) + "]", {}));
There are 4 cases (for me at least) to cover:
Android:

Song-end
Manual skip (TrackPlayer.skipToNext())

iOS:
3. Song-end
4. Manual skip (TrackPlayer.skipToNext())
Both Android cases seem to work fine with just using _nextTrack', though iOS needed to have a bit of logic on this, where automatic song end uses track, and manual skips uses nextTrack.
It's a bit hard to describe my setup since there's quite a bit of code, but I'll paste some below in case anyone is interested in my playback-track-changed listener logic.
`
this.playerTrackChange = TrackPlayer.addEventListener("playback-track-changed", async (data) => {
let { track, nextTrack, position } = data;
let currentPropsTrack = get(this.props, "currentTrack.isrc", null);
      // Update redux if we have all needed data & it isn't the first track (avoids null from callback)
      if (track && nextTrack && !this.state.initTrack && nextTrack !== currentPropsTrack) {
        let newTrack = {};

        Platform.OS === "android" ? (newTrack = get(this.state, "stateTrackListMap[" + nextTrack + "]", {})) : (newTrack = get(this.state, "stateTrackListMap[" + (track === currentPropsTrack ? nextTrack : track) + "]", {}));

        // Update redux
        this.props.setCurrentTrack(get(this.props, "trackMap[" + get(newTrack, "id", null) + "]", {}));
        this.props.setSongDuration(get(this.props, "trackMap[" + get(newTrack, "id", null) + "]duration", 0));
        this.props.setTrackUrl(newTrack.url);
        try {
          const trackId = get(this.props, "trackMap[" + track + "].isrc", "");

          // Create new track object based on track
          const myTrack = {
            id: trackId,
            url: get(this.props, "trackMap[" + trackId + "].url", null),
            artist: get(this.props, "trackMap[" + trackId + "].artist[0]", "NA"),
            title: get(this.props, "trackMap[" + trackId + "].title", "NA"),
            artwork: get(this.props, "trackMap[" + trackId + "].picture", ""),
          };

          const oldTrack = get(this.state, "stateTrackListMap[" + track + "]", null);

          // Remove the played track, then add it to the end of the queue, allowing for infinite playback loop
          await TrackPlayer.remove(oldTrack.id);
          await TrackPlayer.add(myTrack);
        } catch (err) {
          console.log("Caught error when adding track: ", err);
        }
      } else {
        this.setState({ initTrack: false });
      }
    });

`


ESP32 Watchdog problem when connection cannot be established to MQTT Broker

Hi,
I'm using PubSubClient on ESP32 and I'm having a little problem. To be honest I'm not completely sure is this issue related to PubSubClient or some other library but problems occurs when changing things related to MQTT upload. I have a code running on both cores and watchdog triggers if MQTT broker cannot be connected.
When I connect to my MQTT broker everything is fine. But when I put wrong IP or Port on testing purposes, following error message appears and my ESP keeps constantly rebooting. Does anyone else have this same problem with this library or is it just me? And even better, does anyone have solution to this problem?
`WiFi connected.
IP address:
<IP_ADDRESS>
Attempting MQTT connection...[E][WiFiClient.cpp:365] write(): fail on fd 54, errno: 104, "Connection reset by peer"
E (14131) task_wdt: Task watchdog got triggered. The following tasks did not reset the watchdog in time:
E (14131) task_wdt:  - IDLE0 (CPU 0)
E (14131) task_wdt: Tasks currently running:
E (14131) task_wdt: CPU 0: Task1
E (14131) task_wdt: CPU 1: IDLE1
E (14131) task_wdt: Aborting.
abort() was called at PC 0x40159864 on core 0
Backtrace: 0x40092280:0x3ffbe310 0x400924b1:0x3ffbe330 0x40159864:0x3ffbe350 0x40081805:0x3ffbe370 0x4008382c:0x3fff2a70 0x4008359b:0x3fff2a90 0x40080fcb:0x3fff2ab0 0x400dec02:0x3fff2ad0 0x400dec6e:0x3fff2b10 0x400d23c0:0x3fff2b40 0x400d3832:0x3fff2b60 0x4008e18d:0x3fff2ba0
Rebooting...
ets Jun  8 2016 00:22:57
rst:0xc (SW_CPU_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0018,len:4
load:0x3fff001c,len:1100
load:0x40078000,len:9232
load:0x40080400,len:6412
entry 0x400806a8`
Thanks in advance!

default timeout is too much 15 seconds causing watchdog to trigger
use this before connecting.
client.setSocketTimeout(1);


api/admin/login fix

Fixed data comparison

@dafyk Your fix should be working, but when testing it looks like authentication is successful but I don't receive an api token. I tested this with postman. Maybe I'm missing something, but it worked previously without the patch for me.


Check if all required plugins are installed

Add a action to check if all required plugins are installed.
Required plugins are:

ACF Plugin

I would like to do this task, assign it to me if it's okay.

If you have any questions do not mind to ask.

I made a pr for this #8


No such device or address    --version13.5.2

Ocelot.Requester.Middleware.HttpRequesterMiddleware[0]
requestId: 0HLPSMKAMRU0A:00000007, previousRequestId: no previous request id, message: Error making http request, exception: System.Net.Http.HttpRequestException: No such device or address ---> System.Net.Sockets.SocketException: No such device or address
at System.Net.Http.ConnectHelper.ConnectAsync(String host, Int32 port, CancellationToken cancellationToken)
--- End of inner exception stack trace ---
at System.Net.Http.ConnectHelper.ConnectAsync(String host, Int32 port, CancellationToken cancellationToken)
at System.Threading.Tasks.ValueTask1.get_Result()          at System.Net.Http.HttpConnectionPool.CreateConnectionAsync(HttpRequestMessage request, CancellationToken cancellationToken)          at System.Threading.Tasks.ValueTask1.get_Result()
at System.Net.Http.HttpConnectionPool.WaitForCreatedConnectionAsync(ValueTask1 creationTask)          at System.Threading.Tasks.ValueTask1.get_Result()
at System.Net.Http.HttpConnectionPool.SendWithRetryAsync(HttpRequestMessage request, Boolean doRequestAuth, CancellationToken cancellationToken)
at System.Net.Http.HttpClient.FinishSendAsyncBuffered(Task`1 sendTask, HttpRequestMessage request, CancellationTokenSource cts, Boolean disposeCts)
at Ocelot.Requester.HttpClientHttpRequester.GetResponse(DownstreamContext context)
{
"GlobalConfiguration": {
"ServiceDiscoveryProvider": {
"Host": "<IP_ADDRESS>",
"Port": 8500,
"Type": "Consul"
}
},
"ReRoutes": [
{
"DownstreamPathTemplate": "/code/{everything}",
"DownstreamScheme": "http",
"UpstreamPathTemplate": "/code/{everything}",
"UpstreamHttpMethod": [ "GET", "POST" ],
"UseServiceDiscovery": true,
"ServiceName": "code.code.code",
"LoadBalancerOptions": {
"Type": "LeastConnection"
}
}
]
//"QosOptions": {
//  "ExceptionsAllowedBeforeBreaking": 3,
//  "DurationOfBreak": 5,
//  "TimeoutValue": 5000
//}
}
public class Startup
{
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
    public IConfiguration Configuration { get; }

    // This method gets called by the runtime. Use this method to add services to the container.
    public void ConfigureServices(IServiceCollection services)
    {
        services.AddOcelot().AddConsul();
        services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
    }

    // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
    public void Configure(IApplicationBuilder app, IHostingEnvironment env)
    {
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }
        app.UseOcelot().Wait();
        app.UseMvc();
    }
}

Pls check your service name and hostname are same, if both are different, get this error message.

It was misconfiguration issue!
Not real Ocelot bug.


Calendar language

Hi,
how can i change calendar language? I'm talking about header, where you can find shortcut with day of week, but in English, between arrow (< >) too...

Hi,  in App.cs  override OnStartup(StartupEventArgs e) and write (the following set to Brazilian:
System.Threading.Thread.CurrentThread.CurrentUICulture = new CultureInfo("pt-BR");
System.Threading.Thread.CurrentThread.CurrentCulture = new CultureInfo("pt-BR");
FrameworkElement.LanguageProperty.OverrideMetadata(typeof(FrameworkElement), new
FrameworkPropertyMetadata(
XmlLanguage.GetLanguage(CultureInfo.CurrentCulture.IetfLanguageTag)));

Thank You! It's working!
https://www.youtube.com/watch?v=AXwGVXD7qEQ :dancers:


Interrupt table warnings sdcc v4.4.2 build

Using latest sdcc build:
../stm8l15x_it.h:#: warning 283: function declarator with no prototype
...
../stm8l15x_it.c:#: warning 283: function declarator with no prototype

warning but compile successfully

thanks for pointing this out! Apparently there was a change in SDCC some time ago, resulting in stricter warning (see e.g. https://sourceforge.net/p/sdcc/support-requests/169/)
Luckily the fix is straightforward: just change void a() to void a(void) for INTERRUPT_HANDLER and INTERRUPT_HANDLER_TRAP in the device header file.
I have fixed this now in my patches. Thanks again and have a great day  :-)

No more ugly warning!


Expose ResetQueries and UpdateQueries methods from UseEndpointInfinite

It would be useful to enable the parent component to refetch queries under specific conditions. This could be achieved by making the UpdateQueries method public, allowing the parent component to hold a reference to UseEndpointInfinite (via @ref) and trigger the update when needed.

I've somewhat considered this in the past, but I'm hesitant because it goes against the normal dataflow patterns in Blazor, React, etc. ("data down, actions up"). If there's a really compelling use-case I'd consider it, but can you achieve what you want using the existing Invalidate/InvalidateAll/InvalidateWhere methods on Endpoint?

Maybe the missing piece is something like the queryKey in TanStack Query.
Some type of "tag" could also be added in the query args, and than invalidate the query with InvalidateWhere, but seams less elegant to me.

I think you can already do everything you could do with query keys just by using args here? IMO there's not much practical difference between adding a dummy arg in Phetch and adding an extra value to the query key in Tanstack - but I suspect InvalidateAll is actually what you'd want most of the time. Can you give a more specific example of the use case?


Implement ETag checks to avoid unnecessary repodata fetches

@iberrymage
Could accrescent consider designing this and other features such that the client verifies it in a way that it cannot be used to track the user?
ETags can be used to fingerprint users, see http://www.arctic.org/~dean/tracking-without-cookies.html.
Perhaps this would require more research?

Thinking about it briefly, I don't see how this can be mitigated entirely without removing the use of ETags entirely. It could perhaps be partially mitigated by having the client choose a deterministic algorithm for generating the ETag (such as a predetermined hash function) and only accept/save a new ETag if it can be reproduced locally. However, this would require control over the server's ETag generation method, which would limit the environments we can deploy to and increase our infrastructure maintenance burden. But I haven't thought about this much, so there could be flaws in my logic here.
Unfortunately when it comes to other features, there are many practical ways to track users across network requests. This is largely due to app update checks and app installations themselves, since they reveal to the server which apps the client has installed from Accrescent as well as various device attributes used to obtain the correct split APKs such as the user's preferred language, device architecture, and screen pixel density. Once app listing localization is supported, this will provide another data point by which a specific client (or at least a smaller pool of clients) could be identified. The tracking potential of update checks could be mitigated by spreading out individual update checks for different apps over a significant period of time, but the problem of revealing identifying device attributes to the server is practically unavoidable as far as I can tell.

Thinking about it briefly, I don't see how this can be mitigated entirely without removing the use of ETags entirely. It could perhaps be partially mitigated by having the client choose a deterministic algorithm for generating the ETag (such as a predetermined hash function) and only accept/save a new ETag if it can be reproduced locally. However, this would require control over the server's ETag generation method, which would limit the environments we can deploy to and increase our infrastructure maintenance burden. But I haven't thought about this much, so there could be flaws in my logic here.

I had not considered that some infrastructure may not permit usage of this. The problem I see is that the ETag is opaque. You define it on the client as more restricted than opaque. I was thinking that it could just be a timestamp, revision, or hash that the client checks. The idea being that the client does any more than simply byte by byte compare it.

Unfortunately when it comes to other features, there are many practical ways to track users across network requests. This is largely due to app update checks and app installations themselves, since they reveal to the server which apps the client has installed from Accrescent as well as various device attributes used to obtain the correct split APKs such as the user's preferred language, device architecture, and screen pixel density. Once app listing localization is supported, this will provide another data point by which a specific client (or at least a smaller pool of clients) could be identified. The tracking potential of update checks could be mitigated by spreading out individual update checks for different apps over a significant period of time, but the problem of revealing identifying device attributes to the server is practically unavoidable as far as I can tell.

I had very much considered this prior, so I cede that my request is not feasible or useful. Accrescent by design fingerprints client devices in order to save bandwidth and send appropriate binaries.