How do I get it to work with WSL?

Hi,
I'm working on a Windows 11 device, but I like to keep everything related to development/programming on my Linux Subsystem (Ubuntu) and everything else on the C:/ drive. So, I have Discord on my C:/ drive and the .py file on WSL. This causes me to get the following error:
Traceback (most recent call last):
File "/home//.local/bin/rpc.py", line 6, in
with Presence(client_id) as presence:
File "/home/joof/.local/lib/python3.10/site-packages/discordrp/presence.py", line 68, in init
_WindowsSocket() if sys.platform == "win32" else _UnixSocket()
File "/home//.local/lib/python3.10/site-packages/discordrp/presence.py", line 202, in init
raise FileNotFoundError("Cannot find a Unix socket to connect to Discord")
FileNotFoundError: Cannot find a Unix socket to connect to Discord
I'm pretty sure I could just fix this by moving the .py file to Discord, but for the sake of not having to install Python twice on my laptop, is there any way I can get this to work?
If not, I wouldn't mind if I had to install Python again, it would just be slightly less convenient 🙃
Thanks!

Hi j0of,
Unfortunately I don't have much experience with WSL, so I do not have any specific solution for this as of now. Looking at the error message, the library detected that it was run in a Unix environment and tried to search for a socket (it checks the env variables XDG_RUNTIME_DIR, TMPDIR, TMP, and TEMP for a path, then attempts to connect to a socket from 0 to 9), but it could not find one that it could connect to.
Depending on your use case, it might just be better to move Discord or your Python script so that it is in the same environment, but if you don't want to do that, here are my quick thoughts:

Double-check to make sure the Discord app is open and logged in when you run the script
Might work, but haven't tested: Find the socket path that the Python file should connect to, then set one of the env variables to the path so that the library is able to find it
Not recommended: Try to set sys.platform = "win32" so that the library looks for a Windows socket instead. Not sure if this would work but it's worth a try.

Let me know if this helps.

Random passer-by who happen to hit the same issue. The library works exactly as expected outside of WSL2. The issue with WSL2 is due to a lack of AF_UNIX socket interop.  This seems to impact WSL2 and "WLS" (the now default install) but not WSL1.
A dev can work around this with some socat and npiperelay.exe hops but I opt'ed to just run out of Windows.


feat(CI): refactor CI to build and then pass around a test image

cc @jchauncey

Current coverage is 5.35% (diff: 100%)

Merging #181 into master will not change coverage

@@            master      #181   diff @@
========================================
  Files           46        46
  Lines         3284      3284
  Methods          0         0
  Messages         0         0
  Branches         0         0
========================================
  Hits           176       176
  Misses        3086      3086
  Partials        22        22

Powered by Codecov. Last update 36df5d4...25585c6

This is now working and ready for reviews.

How this works is that jenkins builds a docker image with the source code and scripts for running tests and linting. This image is then pulled and the specified test, lint, build, and upload commands are run.
I could not make scripts for uploading (the script is coded into the jenkinsfile) to protect GCS keys.

Due to the build image update, I had to make some really minor code changes to get CI to pass.

This seems like a neat approach to container-izing the source/deps.  It will be interesting to see how we can use this approach in other Workflow component golang projects, if only to avoid installing golang deps directly on ci hosts...

I optimized the Dockerfile to better cache vendored dependencies.

I finally figured out the problem with @vdice's help. For some reason with go1.7 -s no longer seems to work. -extldflags "-static" seems to work though. I kept testing the linux executable on the same container that build the executable, so the dynamic libraries were all found.
Curse the mysterious bash: /usr/local/bin/deis file or folder not found error message.


render.empty() should return real empty tile

The original render.empty() returns an empty object, not a valid tile (at least for protobuf). This fix will ensure the function returns a valid empty tile with given tile parameters.

Thanks! Published as 2.0.2


⚠ Bofrost.lu has degraded performance

In d11fe91, Bofrost.lu (https://www.bofrost.lu) experienced degraded performance:

HTTP code: 200
Response time: 1819 ms

Resolved: Bofrost.lu performance has improved in 3162e88 after 1 hour, 17 minutes.


Issue with Pages

Greetings,
I have looked everywhere for a deeper explanation of how to properly use pages, and I was hoping you could help.
I use the typewriter_ease function and the pages function.
However, when I tell it to begin drawing the next page, it removes the ease effect from the text and has some ordinary typewriting effect.
I tried adding typewriter_ease immediately after the page change, and nothing happens...still the generic typewriter effect after anything from the 1st page.
I did notice that when I reloaded the first page, it reapplied the ease effect correctly!
Here's my code:
/////step
if (keyboard_check_pressed(ord("X")))
{
if (element.get_typewriter_state() > 0) and (element.get_typewriter_state() < 1)
{
element.typewriter_in(1.5,10)
}
if (element.on_last_page()=false and element.get_typewriter_state() == 1)
{
element.typewriter_in(0.4, 10);
element.typewriter_ease(SCRIBBLE_EASE.ELASTIC, 0, -40, 1, 1, 20, 1);
element.page(element.get_page() + 1)
}
if (element.on_last_page()=true and element.get_typewriter_state() == 1)
{
element.typewriter_out(2, 10, false);
element.typewriter_ease(SCRIBBLE_EASE.ELASTIC, 0, 30, 1, 1, 0, 1);
}
if (element.get_typewriter_state() == 2)
{
element.typewriter_in(0.4, 10);
element.typewriter_ease(SCRIBBLE_EASE.ELASTIC, 0, -40, 1, 1, 20, 1);
element.typewriter_reset()
element.page(0)
}
}
///draw GUI
element.draw(x, y);

Also, I am using the previous full version (7.1.0)

I believe this issue is fixed in 7.1.1pre002. Please update and let me know if that fixes the issue for you.

I updated to 7.1.1.pre002 and it did not fix the issue.

I will just add that bizarrely, if I hit "X"  (the continue button) at just the right time, the ease effect applies to the next page, but I have to hit it at some very precise time oddly enough.

Does it still type out characters properly? If you increase the smoothness value to something very high do you see characters fade in, albeit without the easing effect?

It types them out normally just fine. What it doesn't do is animate them using ease. Also changing smootheness from 10 to 50 did nothing. They instantly pop in.

Page feature has been rewritten for v7.2.0pre002 (in beta at time of writing) and should fix this issue.


TO: foreign key constraint fails on postinstall on new VM

While running postinstall on freshly created CentOs 6.6 VM:

inserting profile parameter value: profile_name = EDGE1_CDN_520 parameter_name = astats_over_http config_file = package value = 1.2-8.el6.x86_64
The insert failed
panic: Error 1452: Cannot add or update a child row: a foreign key constraint fails (traffic_ops_db.profile_parameter, CONSTRAINT fk_atsprofile_atsparameters_atsparameters1 FOREIGN KEY (parameter) REFERENCES parameter (id) ON DELETE CASCADE ON UPDATE NO ACTION)

Looks like #372 needs a little more done..  profile_parameter.json still has references to parameters that were removed.  I'll get that cleaned up.


StsAssumeRoleCredentialsProvider is missing sourceId and policy, preventing scoped down policies

Describe the bug
Converting Java SDK code to Kotlin SDK; using StsAssumeRoleCredentialsProvider to provide scoped-down policies for SaaS application, where there is a StsAssumeRoleCredentialsProvider per-tenant that has a dynamic policy limiting access to just that tenants resources (for example, limiting S3 access to /<tenant-id/*).
Kotlin SDK StsAssumeRoleCredentialsProvider does not allow for policy attribute for assumeRole call, nor does it allow for sourceId attribute (which is useful to separate application-assume-role calls from other assume-role calls that you may not want to permit, such as a compromised system making calls from the CLI).
Expected behavior
StsAssumeRoleCredentialsProvider supports all the capabilities of assumeRole call.
Current behavior
As described earlier, StsAssumeRoleCredentialsProvider is missing policy and sourceId attributes for assumeRole call.
Steps to Reproduce
n/a
Possible Solution
Workaround: Given the small size of StsAssumeRoleCredentialsProvider create a custom one that offer the full capabilities.
Fix: much like the Java SDK provide a callback for full customization of the assume-role request
Context
Unable to directly migrate from Java SDK to Kotlin SDK without building glue code (unfortunate for two missing API attributes).
AWS Kotlin SDK version used
0.29.0-beta
Platform (JVM/JS/Native)
JVM
Operating System and version
MacOs

Thanks for the suggestion! We'll add a task in our backlog to consider exposing these optional parameters in our StsAssumeRoleCredentialsProvider to better align with other SDKs like Java.

New overloads for the StsAssumeRoleCredentialsProvider and StsWebIdentityCredentialsProvider constructors have been merged into main. The new constructors will allow setting additional parameters to the underlying STS calls such as policy and sourceIdentity:
val credentialsProvider = StsAssumeRoleCredentialsProvider(
    underlyingCredentialsProvider,
    AssumRoleParameters(
        roleArn = "arn:...",
        policy = "{ ... }",
        sourceIdentity = "sourceId",
    ),
)

This feature should be available in the next release of the SDK, tentatively scheduled for 9/7.


Feat: Add  password validation on login/signup

Describe the feature
Currently there is no proper password validation, i have checked there is only one validation a password length must be 6 but it not a validation that secure the user password . we need a Alpha-numeric for password.
Add ScreenShots

current validation :

Record

[X] I agree to follow this project's Code of Conduct
[ ] I'm a GSSOC'24 contributor
[X] I want to work on this issue

@DevGajjar28 Issue assigned to you


ForeignKeys migrations: drop issue

When generating the dropForeign, laravel asks for the index name. The package is using the field name.
Having this up():
Schema::table('A', function(Blueprint $table)
{
$table->foreign('B_id', 'A_B_id_fkey')->references('id')->on('B')->onUpdate('RESTRICT')->onDelete('RESTRICT');
});
Generates this down:
Schema::table('A', function(Blueprint $table)
{
$table->dropForeign('B_id');
});
Should generate:
Schema::table('A', function(Blueprint $table)
{
$table->dropForeign('A_B_id_fkey');
});

Hello. Thank you for reporting this. This has been fixed in v1.3.0, let me know if you still experience any issues. :)


Using Kudu to change virtual directory physical path for an Azure Website

I'm trying to change the physical path of my webroot to a folder under "wwwroot". Using Kudu and deploy.cmd, I am launching a powershell script and using Microsoft.Web.Administration.ServerManager to do it, but I get a permission error when I do CommitChanges(). Can I launch the powershell script under elevated permissions or is there a better way to do what I want?

If this is on Azure Web App, you can change the IIS mapping in the Azure Portal, at the bottom of the configuration section.

That does work, however I'd really like to be able to make the modification from within the deployment script. Is there a way to run the powershell script using elevated privileges?

No way to do this using PowerShell. However, you could do it using an xdt transform. e.g see sample here.

@davidebbo is there an example how to deploy two Node.js apps under the same Web App in Azure with Kudu? For example, one GitHub repository should go to www.example.com, and another GitHub repository to www.example.com/api/ both built as Node.js apps.

@koistya this is not really related to this issue, which was about setting up virtual directories. Your issue is about deploying from multiple github repos, which Kudu does not directly support.

Closing this one since original issue was resolved, but feel free to open new one to discuss that other topic separately.


Actions run on pull-requst event.

Issue #, if available:
Description of changes:
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Job PR-354/1 is complete.
Docs are uploaded to http://gluon-ts-staging.s3-accelerate.dualstack.amazonaws.com/PR-354/1/index.html

Codecov Report

Merging #354 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #354   +/-   ##
=======================================
  Coverage   80.16%   80.16%
=======================================
  Files         146      146
  Lines        8325     8325
=======================================
  Hits         6674     6674
  Misses       1651     1651

Job PR-354/2 is complete.
Docs are uploaded to http://gluon-ts-staging.s3-accelerate.dualstack.amazonaws.com/PR-354/2/index.html


Have banned methods return a new Immutable instance instead

Hi,
I love the fact that this library is super small and that doesn't try to do anything else than making your data immutable :).
There's only one thing holding me back from using it though:
Immutable([3, 1, 4]).sort()
// This will throw an ImmutableError, because sort() is a mutating method.

Have you considered returning a new immutable structure with the sorted array instead? (the same applies for every other banned method).
Thanks :)
Darío

I considered it, but the trouble is that doing this can mask bugs. For example:
function foo() {
  var array = [3, 1, 4];

  array.sort()

  return array;
}

If you change that first line to be Immutable([3, 1, 4]), what should happen?
Currently array.sort() throws an exception, letting you know that some code that made sense with a mutable array no longer makes sense. If instead array.sort() just returns a sorted, immutable array, then now an unsorted array will be returned here, and you have a bug to track down - a potentially nasty one, if there is a lot of logic surrounding this code.
I prefer this API because you can take an immutable array and write any number of helper functions that return sorted ones, but the only way to make bugs like this easy to find is to override the mutable methods to throw an exception. :smiley:

Great explanation. Richard, you’re an A+ maintainer.

Thanks for the explanation. It makes sense :). So how are you going about those when you're using methods like sort? Are you doing something like this?
let array = Immutable([3, 1, 4])
array = Immutable(array.asMutable().sort())

Thanks @alanhogan! :blush:
@dariocravero Generally I'm using Underscore functions like _.sortBy and just calling Immutable on the result. No need to call .asMutable() in that case!

Good stuff :) Will give it a go then!

What about a development vs production flag for whether an error should be thrown? I am appreciative of the thrown error as I change from ImmutableJS to this library. But after the transition, my code is cluttered using _.sortBy() instead of the built-in sort().
While the workaround is not terrible, I thought I'd voice my opinion so others who find this issue know there's at least 1 other person wishing for it!

@tylercollier Good news! :smile_cat: https://github.com/rtfeldman/seamless-immutable#performance

Thanks for the link to that section of the doc, which I read (and admit to not reading before, but you already had me sold on performance from your blog post :-) I think you saw my original comment, which was phrased as an option that I might toggle one way in dev and another in production, but I rephrased it because that's not what I'm really after. What I'd like is an option I can set. My concern here is convenience for me as a developer rather than performance. I'm guessing you have a build step that pulls those checks out when you create a minified production build, rather than an option I can set?

Ahh got it, yeah that's correct. Sorry for the confusion!
That said, I'd honestly rather not add that complication to dev mode. :x

You can add method sorted(fn) that returns sorted copy of array.

I like the idea of introducing additional methods to support the same functionality as original mutation methods, but have them return an immutable result instead as @nin-jin suggested.
Maybe even more obvious like sort_immutable() so you should know what to expect from it?
This would remove the need for custom functions doing the same thing but requiring an additional dependency in your code.


rust-ht: init at 0.4.0

Motivation for this change
Packaging a new tool, ht, which is a Rust implementation of the HTTPie python tool.
This is my first time contributing a package to the main index, so forgive me if I've missed any steps! The name ht is taken by another piece of software, so I've named this package's attribute rust-ht. Suggestions on alternate names are more than welcome.
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

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

Between when I checked yesterday and just now, someone has beat me to adding this! (#112110)

It is my first contribution as well! I probably just had timezone advantage :)


Pages missing  value

There appears to be a bug in the implementation of the react-helmet, the package being used to update the document's  tag. While the tag exists, it has an empty value. This is problematic for:

accessibility
SEO
general user experience (as the tab title is simply "javascriptmn.com" no matter the page navigated to)

I'd look into it myself, but the version of react-helmet in place is mildly outdated and the applicable documentation is likely buried in an old commit of the plugin's readme.

Thanks for opening this, Sean, this issue has been bugging me for some time now. :)
I'm going to tag this to be completed with the effort to move the site to Gatsby 2.x if that's cool -- I'll try and parcel out some smaller tasks that can make tackling some of these murky dependency updates more manageable. Thanks again!

This was implemented in #31!


EventSource demo site not working

https://simpl.info/eventsource/ fails to show activity due to Failed to load https://sse.now.sh/: Redirect from 'https://sse.now.sh/' to 'https://zeit.co/hemanth/sse-now/vhtqsczurm?redirect=1' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'https://simpl.info' is therefore not allowed access.

Thanks for the heads-up!
@hemanth: fancy doing a PR :)?

No clue in the logs, it was working fine the last time I checked it, will work with now's team and get back.

It's back!

Thanks Hemanth!
On 3 November 2017 at 05:30, hemanth.hm<EMAIL_ADDRESS>wrote:

It's back!
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/samdutton/simpl/issues/113#issuecomment-341625283,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAMhqpyIJ-Vti3MpPa1i2pOniKjF9Japks5syqTdgaJpZM4QPouj
.

Hi @hemanth — getting errors for this again 😢.

@samdutton still seeing the same?

I haven't investigated, but seeing this error:

Failed to load https://sse.now.sh/: Request header field Cache-Control is not allowed by Access-Control-Allow-Headers in preflight response.

@samdutton This fiddle works fine.
Maybe something to do with now //cc @leo


XLA inference fails complaning about branch shape mismatches

Click to expand!
Issue Type
Bug
Have you reproduced the bug with TF nightly?
Yes
Source
binary
Tensorflow Version
2.10.0
Custom Code
Yes
OS Platform and Distribution
Colab
Mobile device
No response
Python version
No response
Bazel version
No response
GCC/Compiler version
No response
CUDA/cuDNN version
No response
GPU model and memory
A100 40 GB
Current Behaviour?
I have the following function.

First, I initialize a CLIP-based text encoder:

from keras_cv.models.stable_diffusion.text_encoder import TextEncoder

MAX_PROMPT_LENGTH = 77
text_encoder = TextEncoder(MAX_PROMPT_LENGTH)

Then, I am using the `text_encoder` like so in a function that I use to serialize the `text_encoder` as a `SavedModel`:

```python
from keras_cv.models.stable_diffusion.constants import _UNCONDITIONAL_TOKENS
import tensorflow as tf

signature_dict = {
    "tokens": tf.TensorSpec(shape=[None, 77], dtype=tf.int32, name="tokens"),
}

def text_encoder_exporter(model: tf.keras.Model):
    BATCH_SIZE = 3
    MAX_PROMPT_LENGTH = 77
    POS_IDS = tf.convert_to_tensor([list(range(MAX_PROMPT_LENGTH))], dtype=tf.int32)
    UNCONDITIONAL_TOKENS = tf.convert_to_tensor([_UNCONDITIONAL_TOKENS], dtype=tf.int32)

    @tf.function(input_signature=[signature_dict])
    def serving_fn(inputs):
        # context
        encoded_text = model([inputs["tokens"], POS_IDS], training=False)
        encoded_text = tf.squeeze(encoded_text)

        if tf.rank(encoded_text) == 2:
            encoded_text = tf.repeat(
                tf.expand_dims(encoded_text, axis=0), BATCH_SIZE, axis=0
            )

        # unconditional context
        unconditional_context = model([UNCONDITIONAL_TOKENS, POS_IDS], training=False)

        unconditional_context = tf.repeat(unconditional_context, BATCH_SIZE, axis=0)
        return {"context": encoded_text, "unconditional_context": unconditional_context}

    return serving_fn

Serialization:
tf.saved_model.save(
    text_encoder,
    "./text_encoder/1/",
    signatures={"serving_default": text_encoder_exporter(text_encoder)},
)

Now, while attempting to XLA-compile:
from tensorflow.python.saved_model import tag_constants

batch_size = 3
saved_model_loaded = tf.saved_model.load(
    "./text_encoder/1/", tags=[tag_constants.SERVING]
)
text_encoder_predict_fn = saved_model_loaded.signatures["serving_default"]
# Raises error
xla_text_encoder_predict_fn = tf.function(text_encoder_predict_fn, jit_compile=True)
xla_text_encoder_predict_fn(
    tokens=tf.ones((batch_size, MAX_PROMPT_LENGTH), tf.int32)
).keys()

### Standalone code to reproduce the issue

```shell
https://colab.research.google.com/gist/sayakpaul/d7dafc252752a6c1ce10e85d8162b8ea/scratchpad.ipynb

Relevant log output
/usr/local/lib/python3.8/dist-packages/tensorflow/python/util/traceback_utils.py in error_handler(*args, **kwargs)
    151     except Exception as e:
    152       filtered_tb = _process_traceback_frames(e.__traceback__)
--> 153       raise e.with_traceback(filtered_tb) from None
    154     finally:
    155       del filtered_tb

/usr/local/lib/python3.8/dist-packages/tensorflow/python/eager/execute.py in quick_execute(op_name, num_outputs, inputs, attrs, ctx, name)
     50   try:
     51     ctx.ensure_initialized()
---> 52     tensors = pywrap_tfe.TFE_Py_Execute(ctx._handle, device_name, op_name,
     53                                         inputs, attrs, num_outputs)
     54   except core._NotOkStatusException as e:

InvalidArgumentError: left_branch_shape.rank() != right_branch_shape.rank() (4 vs 3)
	 [[{{function_node __inference_serving_fn_55983}}{{node cond}}]] [Op:__inference_function_60000]

@gaikwadrahul8
I was able to reproduce the issue on Colab using TF v2.11. Please find the gist here for reference.
Thank you !

Hi, @sayakpaul
Apologize for the delay and I was able to replicate the issue without any error and it seems like working fine, for your reference I have added gist-file and I have replaced jit_compile=True to either tf.config.optimizer.set_jit(True) or tf.config.optimizer.set_jit('autoclustering') as shown in gist file and you can refer official documentation Ref-1, Ref-2 and stack-overflow answer, if issue still persists please let us know or Could you please confirm if this issue is resolved for you ? Please feel free to close the issue if it is resolved ? Thank you!

Not even related @gaikwadrahul8. The examples you referenced refer to training, whereas my issue is related to XLA-compiling an off-the-shelf function (in this case which involves a model).

tf.config.optimizer.set_jit(True) or tf.config.optimizer.set_jit('autoclustering')

These two are applied when there's XLA compilation involved in the optimization process, but that is not the case here.

Hi, @SuryanarayanaY
Could you please look into this issue ? Thank you!


C code for two issues assigned to me

Have you read the Contributing Guidelines on Pull Requests?
YES
Description
I wrote C code for issue #2865 and issue #2861
Checklist

[x] I've read the contribution guidelines.
[x] I've checked the issue list before deciding what to submit.
[x] I've edited the README.md and link to my code.

Related Issues or Pull Requests
issue #2865
issue #2861

There was nothing to do in readme.md so I kept that as it is

This was my first pull here; I'll try to provide each issue with its own PR instead of this combined one

/assign

Don't push more than one code file into the same PR. Break down your PRs into separate PRs so that it becomes easy to review.

Check some merged PR's for better understanding

@TechSpiritSS Are you still working on this?


ignore and warn adding duplicate component, #993

Well spotted, thanks.
@adambocco please can you review when you get a chance

Codecov Report

Merging #1033 (4945eaf) into dev (50679d5) will decrease coverage by 0.00%.
The diff coverage is 100.00%.

@@             Coverage Diff              @@
##                dev    #1033      +/-   ##
============================================
- Coverage     59.57%   59.57%   -0.01%
  Complexity     2768     2768
============================================
  Files           284      284
  Lines         13855    13854       -1
  Branches       1385     1386       +1
============================================
- Hits           8254     8253       -1
  Misses         5127     5127
  Partials        474      474

Impacted Files
Coverage Δ
Complexity Δ

...y/src/main/java/com/almasb/fxgl/entity/Entity.java
96.59% <100.00%> (-0.02%)
147.00 <4.00> (ø)

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 50679d5...4945eaf. Read the comment docs.


Added some initial log implementation

Coverage increased (+4.0e-05%) to 99.955% when pulling 38542c7f8e73572ae57c12d2ea5692a99dc6603e on DSilence:feature/logs into 61921b612430df50f941ddc58d2945ba21b4ac2b on werwolfby:develop.

Codecov Report

Merging #217 into develop will not change coverage.
The diff coverage is 100%.

@@          Coverage Diff           @@
##           develop   #217   +/-   ##
======================================
  Coverage      100%   100%
======================================
  Files           55     55
  Lines         4468   4472    +4
======================================
+ Hits          4468   4472    +4

Impacted Files
Coverage Δ

monitorrent/plugins/clients/qbittorrent.py
100% <100%> (ø)
:arrow_up:

monitorrent/rest/clients.py
100% <100%> (ø)
:arrow_up:

monitorrent/rest/new_version.py
100% <100%> (ø)
:arrow_up:

monitorrent/rest/execute.py
100% <100%> (ø)
:arrow_up:

monitorrent/plugins/clients/utorrent.py
100% <100%> (ø)
:arrow_up:

monitorrent/plugins/clients/transmission.py
100% <100%> (ø)
:arrow_up:

monitorrent/plugin_managers.py
100% <100%> (ø)
:arrow_up:

monitorrent/engine.py
100% <100%> (ø)
:arrow_up:

monitorrent/plugins/clients/deluge.py
100% <100%> (ø)
:arrow_up:

monitorrent/rest/notifiers.py
100% <100%> (ø)
:arrow_up:

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 61921b6...f478cc2. Read the comment docs.

Coverage increased (+4.0e-05%) to 99.955% when pulling f478cc2f122156ffcfff8e22f50ecace5ad0880f on DSilence:feature/logs into 61921b612430df50f941ddc58d2945ba21b4ac2b on werwolfby:develop.

Coverage increased (+1.0e-05%) to 99.955% when pulling 42a04d7014e134c9d50f265ec3055f7e2412b3c9 on DSilence:feature/logs into 61921b612430df50f941ddc58d2945ba21b4ac2b on werwolfby:develop.

rebase and merge did fast forward instead of new merge commit 👎


px4iofirmware: allow override when RAW_PWM is active

if override is enabled then it should apply even if RAW_PWM is being
supplied by the FMU

Jenkins test this please.

I don't understand the comment on the commit, but I can see that its a no-op and just consolidates code and makes it more readable, which is good. Thanks!

Rebased and applied.


Build article component

For extended text. We need to discuss how best to go about rendering this (passing in a Markdown file seems easiest, and linking the Markdown file in the YAML)
Wireframe: https://makersacademy.mybalsamiq.com/projects/newsitewireframes/article
Required for #9.

Sample YAML for this:
- template: article
  - title: Lorem Ipsum (optional)
  - subtitle: Dolor Sit Amet (optional)
  - body: Lots of words here is my body _here is some italics_ and **here is some bold**
  - blockquote: Testimonial Ipsum Dolor, Sit Amet Adipscing Elit (optional)

Articles require a body, but all other aspects are optional. Blockquotes are always placed at the bottom of an Article block.


Can't Undo Bulk Rename Op

Repro:

Select the test animations
Rename them with anything using the tool
Try to undo, observe they are unchanged.

Man, I'm not sure this is doable. I can't figure out how to register this to the Undo stack (I've tried all the Register actions that seem reasonable.) I could of course implement my own Undo through the utility, but that's definitely not optimal.

We've come up with a workaround that will let us do this without too much trouble.

Fixed this using a ScriptableObject that is renamed and added to the Undo stack. A static class subscribes to the Undo callbacks and watches the name of that ScriptableObject to see whether an Undo or Redo occurred, and reapplies the names according to a history.


Wiki Incorrectly Lists OpenSSL x64

See the following line in the Wiki:
4 - Open SSL 1.0.2h 64BIT (http://slproweb.com/products/Win32OpenSSL.html)
Should be changed to reflect the 32 bit version.

 I fixed it, haha.


Don't add "Build All - Release" task to list of provided tasks

With #1000 merged in, we are now showing the Release variant of the build all task in the list of provided tasks when running the "Run Task" command. We don't want that since only needed for debugging a test in release mode

@swift-server-bot test this please


Turn off some of the lenient typescript rules

This turns off some of the lenient typescript rules and fixes the errors resulting from switching to the non-lenient rules.
Contributes towards #681

I think we should try to avoid using the type any as much as possible, it defeats the purpose of having types.
Otherwise I like this pull request.

PTAL

@salomegeo can you glance at this again?  Thanks.

Oh, actually, I think this is going to conflict with all the requireify stuff.  I'm abandoning this pull request.


Feature/add whatsapp bot

Very nice!
Loved so you renamed the project
It showes so you think more then what needed, open minded 😇


Client-side exception when a delegated multisig identifier (4 members) is created and view

Describe the bug
The client application crashes when a delegated multisig identifier with 4 members is created. The error only occurred right after the multisig group was created by the group leader but before other members joined the group with /multisig/iss message.
Once all members have joined, the problem magically disappears for some reason.
Note 1: I have tested creating delegated multisig groups with 2 and 3 members, which worked fine. The bug seems to occurs when there are 4 members. I have not tested 5 members yet.
Note 2: I used 5 wallets. One for the delegator and four for the members of multisig group.
To Reproduce
Steps to reproduce the behavior:

Create a delegated multigsig identifier
Click View

Screenshots
View test-internal-multisig-qvi

Desktop (please complete the following information):

OS: MacOS
Browser: Chrome
Version: 127.0.6533.100

Additional context
Here is the account for the dev environment
https://dev.asia.origincloud.net/
Account<EMAIL_ADDRESS>Passcode: 2xkrWHmI0K4q4vnzzGFSg

This issue is being tracked in jira as DF-2284. To send comments to jira, start your comment with 'Tell jira:'.
The issue is assigned in jira to nobody.
The issue was last updated in jira at 2024-08-14T15:01Z.
As of , the status of the issue in jira is to do.

[from twin in jira]
At 2024-08-15T00:37Z, Daniel Hardman said: I’m assigning this to Arsh, at least so it can be triaged.

tell jira: just testing

[from twin in jira]
The issue is assigned in jira to Arshdeep Singh.


How to do App Startup Server Login?

This is a question from Erik asked on the Slack channel:

Hello!
I’m trying to wrap my head around the implementation of Operations. Up until now I have used my own implementation using GCD to get the result I want, but the code is messy and I want to get started with Operations. (I am a hobby developer, sorry if my questions are stupid.) Here is the operation flow I want:
Order of operations:
//1. Server Check Operation

Initiated on app launch
Sends a query to my server and returns some flags (accessGranted, databaseUpdateRequired)

//1A. Database Update Operation

Initiated if 'databaseUpdateRequired' returns true from Operation 1

//2. Login Operation

User decides when to log in to a service
If 'Server Check Operation' returns 'accessGranted' = false, the operation should not start
When user is logged in, data is retrieved

//3. Parse Operation

Data from the login operation is parsed

Operation 2 will be initiated by the user (tapping button), but it should not start until Operation 1 is complete.
Operation 3 depends on Operation 2 and Operation 1A to be complete. (Operation 1A may not exist if no datebase update is required).

What is the best way to accomplish this?
If I add the 'Server Check Operation' in the AppDelegate, how can I add it as a depedency to 'Login Operation' at a later stage?
Scenario: 'Server Check Operation' is complete, but the 'Database Update Operation' is running. How can this be signalled to 'Parse Operation'?
Scenario: Op 3 depends on Op 1A, but only if Op 1A is actually running. How can this be accomplished?

Excellent answer, @danthorpe. Thank you.
In your answer, all of the operations are grouped into a GroupOperation. In some cases the user will never initiate the Login (and in relation the parsing). This will only happen if the user does that specific action. Is this achievable?

@fishfisher - absolutely, really good question.
In the example above I've used a ServerRequest operation to do the login. But, perhaps this needs to change, so that you actually wrap your UI presentation of the login screen with the button enabled, as an Operation. How would this work?
Well, it would be similar to AlertOperation essentially you present some UI in the execute stage of the operation, and when the UI is dismissed the operation is finished either by calling cancel() or finish(). So, if the use dismisses the UI without tapping the login button - just call cancel(). However, if the user taps the button - then it finishes. This is a single operation, it just presents/dismisses/taps button.
You can then include this inside another GroupOperation which essentially will

Present the UI
Perform login (dependent on UI finishing without error)
Perform parse (dependent on Login finishing without error)

And the whole group has the same login server condition as in the example above. The result of the Login group would then be your User type.


ModuleNotFoundError: No module named 'ckeditor'

i have install as you put in the readme, but i got this error.
ModuleNotFoundError: No module named 'ckeditor'

Oh, please can you uninstall ckeditor then reinstall it just to be sure that it was properly install?


Compatible with gatling 3.4.?

I want to load-test our system which is connected via RabbitMQ.Therefore I try this plugin and I am asking myself is this plugin comatible to gatling 3.4.0 or should I use an old version of gatling? If its not compatible are there any plans to make it compatible again?
I get the following exeption if I try this plugin with gatling 3.4.0
java.lang.NoSuchMethodError: io.gatling.core.CoreComponents.throttler()Lio/gatling/core/controller/throttle/Throttler;
Warning: I am neither a scala nor gatling expert.

OK - plugin is not working with gatling 3.4. :-) I made two PRs for

upgrade to gatling 3.3 https://github.com/TinkoffCreditSystems/gatling-amqp-plugin/pull/12
upgrade to gatling 3.4 https://github.com/TinkoffCreditSystems/gatling-amqp-plugin/pull/13

@red-bashmak , @rene-ffs : Are you still maintaining this plugin?

has been fixed on the master.


Aurora.exe

Nothing in that package called aurora.exe! so not easy to install!!!

Where do you found it?!
See here for download: https://github.com/antonpup/Aurora/releases

I don't have it downloaded yet just found it right now and the instructions says that i should run aurora.exe but it aint in any if the files https://github.com/antonpup/Aurora

Please download the latest release from here: https://github.com/antonpup/Aurora/releases/latest

Works now thank you ;D


Updated docs and made small bug fixes

Updated documentation and README file. Also added logo image.
Made some small import bugfixes.

Codecov Report
Base: 76.11% // Head: 54.83% // Decreases project coverage by -21.28% :warning:

Coverage data is based on head (c71787d) compared to base (ee8ce14).
Patch coverage: 83.33% of modified lines in pull request are covered.

Additional details and impacted files
@@             Coverage Diff              @@
##           develop       #4       +/-   ##
============================================
- Coverage    76.11%   54.83%   -21.29%
============================================
  Files            4        7        +3
  Lines           67       93       +26
============================================
  Hits            51       51
- Misses          16       42       +26

Flag
Coverage Δ

unittests
54.83% <83.33%> (-21.29%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

quote_gen/api/main.py
0.00% <0.00%> (ø)

quote_gen/quotes/quote_engine.py
84.00% <100.00%> (ø)

quote_gen/tests/test_quote_generator.py
100.00% <100.00%> (ø)

quote_gen/interface/cli.py
0.00% <0.00%> (ø)

quote_gen/interface/__init__.py
0.00% <0.00%> (ø)

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

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


Filtering support on dataplane view

Description
We should add filtering support to the columns for all our tabular output, would make finding things in larger environments easier.

Triage: we need more specific what we want to filter. We need to build better support on API side to have this in the GUI

xref #382

We spoke about this being a dupe of https://github.com/kumahq/kuma-gui/issues/464
We merged https://github.com/kumahq/kuma-gui/pull/469 which closed the above issue as we split out gateway type of proxies from standard types of proxies into separate listings - then the gateway listing uses the backend to filter between different types of gateway. Backend filtering is necessary otherwise you will only be filtering the data contained in the page of data you are on, not the total dataset on the backend.
So coming back around, I was unsure of closing this as a dupe as this says "filtering support for all columns" which is not complete, only filtering by dataplane proxy type (one column). I'm not totally sure if we have backend support for filtering by all the columns i.e. Status, DP Version etc.
TLDR; if someone else thinks this is complete, then feel free to close, otherwise I will need to figure out what filtering is available on the backend apart from ?gateway=

Ah gotcha, that makes sense then. So I think once this one is done (https://github.com/kumahq/kuma-gui/issues/337) along with https://github.com/kumahq/kuma-gui/issues/464 that is already closed, I guess that's when we can can close this one also, ty!

Hmm not 100% sure. We should talk about this sync


Update checkpoint from remote nodes replicas (#13888)

Description
During remote store migration , we need to update remote store backed replica's checkpoint to the primary .
Also marking multiple flaky tests as AwaitsFix to unblock the builds.
Related Issues
Resolves https://github.com/opensearch-project/OpenSearch/issues/13889

Check List

[x] Functionality includes testing.
[ ] ~API changes companion pull request created, if applicable.~
[ ] ~Public documentation issue/PR created, if applicable.~

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

[org.opensearch.indices.IndicesRequestCacheIT.testDeleteAndCreateSameIndexShardOnSameNode {p0={"search.concurrent_segment_search.enabled":"true"}}](https://build.ci.opensearch.org/job/gradle-check/40134/testReport/junit/org.opensearch.indices/IndicesRequestCacheIT/testDeleteAndCreateSameIndexShardOnSameNode__p0___search_concurrent_segment_search_enabled___true___/)
    [org.opensearch.indices.IndicesRequestCacheIT.testDeleteAndCreateSameIndexShardOnSameNode {p0={"opensearch.experimental.feature.pluggable.caching.enabled":"false"}}](https://build.ci.opensearch.org/job/gradle-check/40134/testReport/junit/org.opensearch.indices/IndicesRequestCacheIT/testDeleteAndCreateSameIndexShardOnSameNode__p0___opensearch_experimental_feature_pluggable_caching_enabled___false___/)
    [org.opensearch.indices.IndicesRequestCacheIT.testDeleteAndCreateSameIndexShardOnSameNode {p0={"opensearch.experimental.feature.pluggable.caching.enabled":"true"}}](https://build.ci.opensearch.org/job/gradle-check/40134/testReport/junit/org.opensearch.indices/IndicesRequestCacheIT/testDeleteAndCreateSameIndexShardOnSameNode__p0___opensearch_experimental_feature_pluggable_caching_enabled___true___/)
    [org.opensearch.indices.IndicesRequestCacheIT.testDeleteAndCreateSameIndexShardOnSameNode {p0={"search.concurrent_segment_search.enabled":"false"}}](https://build.ci.opensearch.org/job/gradle-check/40134/testReport/junit/org.opensearch.indices/IndicesRequestCacheIT/testDeleteAndCreateSameIndexShardOnSameNode__p0___search_concurrent_segment_search_enabled___false___/)
    [org.opensearch.search.basic.SearchWithRandomExceptionsIT.testRandomExceptions {p0={"search.concurrent_segment_search.enabled":"false"}}](https://build.ci.opensearch.org/job/gradle-check/40134/testReport/junit/org.opensearch.search.basic/SearchWithRandomExceptionsIT/testRandomExceptions__p0___search_concurrent_segment_search_enabled___false___/)

Failed tests, retrying

Failing flaky
[org.opensearch.cache.common.tier.TieredSpilloverCacheStatsIT.testIndicesLevelAggregation](https://build.ci.opensearch.org/job/gradle-check/40140/testReport/junit/org.opensearch.cache.common.tier/TieredSpilloverCacheStatsIT/testIndicesLevelAggregation/)


A test change to verify integration with Circle CI

Looks like the build is successfully triggered for a fresh new GitHub account

Looks like the build is successfully triggered for a fresh new GitHub account


Update Patterns to Designs in Delete Modal and Toaster

Signed-off-by: Kamal<EMAIL_ADDRESS>Description
Update Patterns to Designs in Delete Modal including title and Toaster
This PR fixes #5815
Notes for Reviewers

Signed commits
Yes, I signed my commits.

@Chadha93 pls review

@legendarykamal it'd be great if you can add the name (or names) of the designs being deleted. The count is good. The count plus design name is even better.

Roger @leecalcote , done

I will update my commits soon

Let's have a whitespace after the comma please.

ok @warunicorn19 seems good now

additional ss

thanks @Chadha93 Yes merging gives a satisfaction feel :smile:

I dont know if I'm missing any comments here, did we decide to go back to patterns from designs??

I dont know if I'm missing any comments here, did we decide to go back to patterns from designs??

No, The issue is about switching from Patterns to Designs. The first ss are correct. @legendarykamal please update the new ss also.

thanks for the feedback @warunicorn19 I have updated :+1:


[SILOpt] Apply _Class pre-specializations to wrapped single references

rdar://119047505
A struct wrapping a single reference has an identical layout to the reference itself, so we can apply the same pre-specializations.

@swift-ci smoke test

Does the code (lowered.hasRetainablePointerRepresentation) behave correctly for over aligned structs?
@_alignment(16)
struct S {
  var c : SomeClass
}

@swift-ci smoke test

@swift-ci smoke test windows


Can't connect to TFS instance due to a bad handshake

Hi guys,
I am seeing a handshake error when I try to connect to my TFS instance. I am using git-tfs version 0.31.0:
https://github.com/git-tfs/git-tfs/releases/tag/v0.31.0
The output is below. I realize there may some syntax errors, but it seems like the problem may be more fundamental. I'm seeing the error: System.IO.IOException: The handshake failed due to an unexpected packet format.
PS C:\users\storyd1\Downloads\GitTfs-0.31.0> .\git-tfs.exe --debug clone --branches=all https://sjcmvsqldev.sjc.roche.com:8080/tfs/JavaCollection $/LIMS
Command run:git tfs --debug clone --branches=all https://sjcmvsqldev.sjc.roche.com:8080/tfs/JavaCollection $/LIMS
No authors file used.
git-tfs version <IP_ADDRESS> (TFS client library <IP_ADDRESS> (MS)) (64-bit)
git command: Starting process: git init
Initialized empty Git repository in C:/Users/storyd1/Downloads/GitTfs-0.31.0/LIMS/.git/

git command time: [00:00:00.1087072] init
No .gitignore file specified to commit...
No .gitignore file specified to use...
System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> Microsoft.TeamFoundation.TeamFoundationServiceUnavailableException: TF400324: Team Foundation services are not available from server https://sjcmvsqldev.sjc.roche.com:8080/tfs/JavaCollection.
Technical information (for administrator):
  The underlying connection was closed: An unexpected error occurred on a send. ---> System.Net.WebException: The underlying connection was closed: An unexpected error occurred on a send. ---> System.IO.IOException: The handshake failed due to an unexpected packet format.
   at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst, Byte[] buffer, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult)
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Net.TlsStream.ProcessAuthentication(LazyAsyncResult result)
   at System.Net.TlsStream.Write(Byte[] buffer, Int32 offset, Int32 size)
   at System.Net.PooledStream.Write(Byte[] buffer, Int32 offset, Int32 size)
   at System.Net.ConnectStream.WriteHeaders(Boolean async)
   --- End of inner exception stack trace ---
   at System.Net.HttpWebRequest.GetResponse()
   at Microsoft.TeamFoundation.Client.Channels.TfsHttpWebRequest.SendRequestAndGetResponse(HttpWebRequest webRequest, WebException& webException)
   --- End of inner exception stack trace ---
   at Microsoft.TeamFoundation.Client.Channels.TfsHttpWebRequest.ReadResponse(HttpWebResponse webResponse, WebException webException)
   at Microsoft.TeamFoundation.Client.Channels.TfsHttpWebRequest.SendRequest()
   at Microsoft.TeamFoundation.Client.Channels.TfsHttpRequestChannel.Request(TfsMessage message, TimeSpan timeout)
   at Microsoft.TeamFoundation.Client.Channels.TfsHttpClientBase.Invoke(TfsClientOperation operation, Object[] parameters, TimeSpan timeout, Object[]& outputs)
   at Microsoft.TeamFoundation.Framework.Client.LocationWebService.Connect(Int32 connectOptions, Int32 lastChangeId, Int32 features)
   at Microsoft.TeamFoundation.Framework.Client.FrameworkServerDataProvider.Connect(ConnectOptions connectOptions)
   at Microsoft.TeamFoundation.Client.TfsConnection.EnsureProviderConnected()
   at Microsoft.TeamFoundation.Client.TfsConnection.EnsureAuthenticated()
   at GitTfs.VsCommon.TfsHelperBase.EnsureAuthenticated()
   at GitTfs.Core.GitTfsRemote.EnsureTfsAuthenticated()
   at GitTfs.Core.GitRepository.CreateTfsRemote(RemoteInfo remote, String autocrlf, String ignorecase)
   at GitTfs.Commands.Init.Run(String tfsUrl, String tfsRepositoryPath)
   at GitTfs.Commands.Init.Run(String tfsUrl, String tfsRepositoryPath, String gitRepositoryPath)
   at GitTfs.Commands.Clone.Run(String tfsUrl, String tfsRepositoryPath, String gitRepositoryPath)
   --- End of inner exception stack trace ---
   at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
   at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)
   at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   at GitTfs.Util.GitTfsCommandRunner.Run(GitTfsCommand command, IList`1 args)
   at GitTfs.GitTfs.Main(GitTfsCommand command, IList`1 unparsedArgs)
   at GitTfs.GitTfs.Run(IList`1 args)
   at GitTfs.Program.Main(String[] args)
TF400324: Team Foundation services are not available from server https://sjcmvsqldev.sjc.roche.com:8080/tfs/JavaCollection.
Technical information (for administrator):
  The underlying connection was closed: An unexpected error occurred on a send.
The underlying connection was closed: An unexpected error occurred on a send.
The handshake failed due to an unexpected packet format.
All the logs could be found in the log file: C:\Users\storyd1\AppData\Local\git-tfs\git-tfs_log.txt

I've reached out to Microsoft TFS support and they told me to try it while running Fiddler.
This is what appears to be a successful connection:

This is my attempt:

Do you have any idea what might be blocking my communication with my TFS instance?

Any change to highlight the differences? It is quite hard to spot anything in the screenshots...

Any change to highlight the differences? It is quite hard to spot anything in the screenshots...

Another shot in the dark. Can you reproduce this with the current (unreleased) version?
It brings newer TFS client libraries (VS2017 and VS2019).
If you don't want to build yourself, you can use artifacts from the latest pull request:
https://ci.appveyor.com/project/pmiossec/git-tfs-v2qcm/builds/37359954/artifacts

Another shot in the dark. Can you reproduce this with the current (unreleased) version?
It brings newer TFS client libraries (VS2017 and VS2019).
If you don't want to build yourself, you can use artifacts from the latest pull request:
https://ci.appveyor.com/project/pmiossec/git-tfs-v2qcm/builds/37359954/artifacts

It might help to check the "Raw" tab in fiddler. My first guess is that the server in the second screenshot isn't responding with a TLS handshake packet, and maybe isn't running TLS on port 8080.

We are trying to clean up old/stale issues. As this was more or less a question and there wasn't any response from the author,
I am closing this issue. In case there is further information provided, we can revisit that decision and reopen the issue again.


fix(Validation): Hidden fields should be marked as valid

What kind of change does this PR introduce? Bug fix
fixed #318

Current coverage is 91.95% (diff: 20.00%)

Merging #340 into master will decrease coverage by 0.48%

@@             master       #340   diff @@
==========================================
  Files            16         16
  Lines           741        746     +5
  Methods         141        141
  Messages          0          0
  Branches        193        196     +3
==========================================
+ Hits            685        686     +1
- Misses           56         60     +4
  Partials          0          0

Powered by Codecov. Last update de19f28...13df1e3


JWT in Prometheus

Hi,
i have a question about the jwt. How i set in prometheus this token? Could you help me about it?
Tkz

There's a bearer_token option for the remote write config in Prometheus, see: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#remote_write

But, the problem continue. It is impossible to set dynamic in prometheus the tenant-id.

@mrmassis Yes, Prometheus does not natively support this. If you want to create dynamic JWTs at runtime (for whatever reason) you need to submit a feature request for this at Prometheus or write your own container that creates a JWT during the startup and writes that config file so that it's used in the Prometheus container.

tkz
Em sex., 18 de dez. de 2020 às 05:47, Martin Schneppenheim <
<EMAIL_ADDRESS>escreveu:

@mrmassis https://github.com/mrmassis Yes, Prometheus does not natively
support this. If you want to create dynamic JWTs at runtime (for whatever
reason) you need to submit a feature request for this at Prometheus or
write your own container that creates a JWT during the startup and writes
that config file so that it's used in the Prometheus container.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/rewe-digital/cortex-gateway/issues/8#issuecomment-747951695,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAYOZ5JL5YZBMXM57FCKV4LSVMJLNANCNFSM4U76FVHA
.

--
Marcio Roberto Miranda Assis
Doutor em Ciência da Computação na UNICAMP


Adding support for daemonSet and statefulSet resources in charts

Update waitForDeployments to waitForWorkloads and add the ability to wait for DaemonSets and StatefulSets.
Add tests for this new feature and increase code coverage
Closes #286

@dcurran90 just a heads up that tests are failing here, and should be reproducible to make test

/lgtm


nature-lang syntax highlight plugin for vscode

vscode  syntax highlight plugin
github: https://github.com/Chanyon/vscode-nature (参考vscode-vlang)

Thank you very much for your support and contribution. I will continue to follow this project and assist in its development.

If there is an EBNF grammar file, it would be better for implementing the tree-sitter parser for the Nature language.
tree-sitter-nature
git: https://github.com/Chanyon/tree-sitter-nature


Config revamp and purpose

We have a few issues with the way we configure our code to do the proper thing based of how a Policy gets attached to Gateway API objects. Here is a tentative at a proposal to refine the config to a bare minimal of what wasm is supposed to do within the Gateway.
What is wasm even need for?
 This happens in "conceptual" steps:

Are there any Policy attached (directly or indirectly) to the HTTPRouteMatch?
Are the conditions of that Policy met?
If an action is taken, how does it affect the request?

The first step is to evaluate whether the request matches any of HTTPRouteMatch which do have a Policy attached, otherwise there is no action to be taken.
Mapping HTTPRouteRule to actual requests
In order to map a request to an HTTPRouteMatch, we need to evaluate which is matched by the request. There is a whole section in the Gateway API specification that describes the precedence rules for matching requests. Ideally the configuration would have the list of Actions to be sorted accordingly. Simplistically, we'd just "fall through" the list to find the best (i.e. the first) match. Obviously that list would contain only  HTTPRouteMatch for which actions are to be taken (i.e. ones for which at least one policy has been attached to). That "ActionSet" to be taken would be identified by these "RouteRuleConditions", composed of whatever the HTTPRouteMatch expresses, added to the Hostnames defined by both the HTTPRouteSpec and the GatewaySpec's Listeners.
That first step would be the RouteRuleConditions expressed as "top-level" conditions in the order list of ActionSet.
Evaluating whether an action is to be taken
Actions within that ActionSet are themselves conditional. These Conditions are expressed by the user as part of their Policy definition (e.g. only apply rate limiting if the request isn't from a known set of IP addresses, like our offices).
Each individual Action has first its Conditions evaluated and only upon them being satisfied, it is invoked. Otherwise, the next Action of the ActionSet gets evaluated for invocation (e.g. Authorino). Further down the ActionSets, Conditions can reuse data from the previous stage, e.g. only limit "anonymous" traffic.
Invocation itself can the be "enriched" with request specific data and/or data from a previous step. e.g. passing the IP address to Limitador so it can maintain a counter per IP address; pass the user_id from the "auth phase" to Limitador.
Dealing with the request
Upon each Action evaluated, there are 3 possible outcome for the request:

wait on the result of the action/invoke a further action, i.e. pause the request;
allow the request  thru;
hijack the request and terminate it

Concretely, what do we need?
Most of the config as it stands does what we need it to do, e.g. definition of services and their invocations. But we could probably simplify by having a ordered list of ActionSet narrowed down by RouteRuleConditions, which then define Actions to be taken, each with the option to be Conditionally invoked, and have data flow thru that Action chain (to be used in Conditions or invocation of the service.
Example

Pre-auth RL per IP for all requests, but from an allow-list of IPs
Auth for admin requests
Post-auth RL for all requests, with exceptions for certain users

Config (WIP)

---
- routeRuleConditions:
    hostnames:
    - "*.foo.com"
    - "users.bar.com"
    matches:
    - request.method == "GET"
    - request.path.startsWith('/bar')
  actions:
  - conditions:
    - "!['<IP_ADDRESS>', '<IP_ADDRESS>'].contains(source.ip)"
    action:
      service: limitador
      data:
        ip: source.ip
        magic_RL_name: "'1'"
  - conditions: []
    action:
      service: authorino
      data:
        authCfg: "'someIdentifier'"
  - conditions:
    - auth.user.name == 'bob'
    service: limitador
    data:
      user: auth.user_id
      magic_RL_bob: "'1'"
      magic_RL_all: "'1'"
  - conditions:
    - auth.user.name == 'alice'
    service: limitador
    data:
      user: auth.user_id
      magic_RL_alice: "'1'"
      magic_RL_all: "'1'"
  - conditions:
    - auth.user.name != 'alice'
    - auth.user.name != 'bob'
    service: limitador
    data:
      magic_RL_all: "'1'"

That last bit about all, alice & bob, could be "simplified" by letting the wasm-shim "merge" adjacent calls to a same service, and merge the data part automagically. I think we can come up with the heuristics to do that there. I think this only applies to calls to Limitador as well. That mostly if we want to keep the contract of applying multiple RateLimitPolicyies despite knowing that the most restrictive kicks in first (which is what this example does for alice & bob), so that the last bit of the config would be more like this:
  - conditions:
    - auth.user.name == 'bob'
    service: limitador
    data:
      user: auth.user_id
      magic_RL_bob: "'1'"
  - conditions:
    - auth.user.name == 'alice'
    service: limitador
    data:
      user: auth.user_id
      magic_RL_alice: "'1'"
  - conditions:
    service: limitador
    data:
      magic_RL_all: "'1'"

but would then be this:
  - conditions: []
    service: limitador
    data:
      user: auth.user.name
      user_id: auth.user_id
      magic_RL_alice: "'1'"
      magic_RL_bob: "'1'"
      magic_RL_all: "'1'"

Where the Limit in limitador would be the one honoring the user == bob or alice part.

So wrt the case where multiple limits are to possibly be applied to a HTTPRouteRule, I think I'm in favor of merging the Action (i.e. its data) and fold it in a single request to Limitador where the conditions will be evaluated on its side.
So indeed something like:
  - conditions: []
    service: limitador
    data:
      user: auth.user.name
      user_id: auth.user_id
      magic_RL_alice: "'1'"
      magic_RL_bob: "'1'"
      magic_RL_all: "'1'"

i.e. always call into Limitador and let it evaluate with of the 3 (alice, bob and/or all) have to be enforced. It becomes the reconciler's job to merge these and have the conditions propagate to the Limitador CR. All three would be potential candidates (based of the same namespace the matching Limits are declared in) and will be discriminated based on the DescriptorEntryies we send along. So in this case, for auth.user.name == "charlie", only all would apply, as we check that all entries required by a Limit are present, but there could be more entries... which will just be ignored.

Overall, +1 to the proposal of reviewing the config.
One thing I still find hard to ensure though, based on the (WIP) sample config provided, is the sorting the ActionSets and more so the sorting of Actions within an action set.
ActionSet conditions (routeRuleConditions) seem to map to HTTPRouteRules plus hostnames – or, equivalently, things we can obtain from Gateway API resources. My understanding of the specification provided by Gateway API is that it works fine for sorting HTTPRouteMatches, but not groupings of those, such as HTTPRouteRules and HTTPRoutes exactly.
E.g.:
Between /foo, /foo*, and /fo*, the spec clearly states that /foo ("Exact" path match) has precedence over /foo* ("Prefix" path match), which in turn has precedence over /fo* (also "Prefix" path match but with lower number of characters).
However, for the following two ActionSets, I suppose we would not be able to tell which one goes first:
- routeRuleConditions:
    matches:
    - request.path.startsWith('/foo')
    - request.path.startsWith('/')
    actions: <A>
- routeRuleConditions:
    matches:
    - request.path.startsWith('/fo')
    actions: <B>

And it's similar for hostnames of course. One can sort ["foo.com", "*.com", "*"], but not quite [["foo.com", "*"], ["*.com"]].
This makes me wonder if the configuration wouldn't have to be modeled so each HTTPRouteMatch-hostname combination maps to one ActionSet.
Regarding the sorting of Actions within an ActionSet, I honestly have no idea how we can calculate specificity and thus infer precedence for conditions based on completely arbitrary sets, i.e. not otherwise limited by a well-defined domain, such as the domain of all possible HTTP requests.

I'm confused:

This makes me wonder if the configuration wouldn't have to be modeled so each HTTPRouteMatch-hostname combination maps to one ActionSet.

Yes! That's what I'd do.

Regarding the sorting of Actions within an ActionSet

What? The order of the actions is "pre-auth RL", then "Auth" and finally "authenticated RL"... Confused as to where the problem is?

can this issue be closed @alexsnaps ?

I think we can... I might just have done that :P


PyTorch + ONNX + Caffe2 Model deployer

Along with a standard PyTorch model deployer, we should implement a model deployer that exports a PyTorch model to Caffe2 using ONNX.

Added in #362


headless + autostart VM

Hi,
I want to host some services in Linux VM into a Mac mini M1 for power efficiency reasons.
For that, the VM must restart after a power loss.
I tried to copy and past the Qemu command exported by the QEMU menu, but it did not works. (I used brew QEMU version).
Another request, it would be nice if we could start a VM in headless mode.

The URL scheme #2670 which will come in a future update will allow you to auto-start a VM on login. (A headless mode is not included with that PR.)

nice, & thx for this great piece of software.


Browser support?

Which browser does it support?
Seems it doesn't work on IE 11-, Chrome 40-. How can I make it work for these browsers?

It works on Linux chrome and Firefox for me

Which browser does it support? Seems it doesn't work on IE 11-, Chrome 40-. How can I make it work for these browsers?

Hello, ganlanyuan!
This Polyfill relies on the navigator.share() method of the Web Share API. CanIUse has a table of the browsers which support it: https://caniuse.com/?search=navigator.share.
It seems a bit outdated since this Polyfill certainly works out of the box with current versions of Firefox, but I hope this is enough to give you a rough idea.


ecflow fails to build on armv7hl

What happened?
Hi,
On Mageia Cauldron ecflow fails to build only on armv7hl with something like:

/usr/include/boost/asio/detail/reactive_socket_connect_op.hpp:69:(.text.unlikely+0x8bc): dangerous relocation: unsupported relocation
/usr/bin/ld: libs/libecflow_all.a(PlugCmd.cpp.o)(.text+0x1de4): R_ARM_TLS_LE32 relocation not permitted in shared object
libs/libecflow_all.a(PlugCmd.cpp.o): in function boost::asio::detail::posix_mutex::unlock()': /usr/include/boost/asio/detail/posix_mutex.hpp:59:(.text+0x1de4): dangerous relocation: unsupported relocation /usr/bin/ld: libs/libecflow_all.a(Ecf.cpp.o)(.text+0xf14): R_ARM_TLS_LE32 relocation not permitted in shared object libs/libecflow_all.a(Ecf.cpp.o): in function Ecf::incr_state_change_no()':
/home/iurt/rpmbuild/BUILD/ecflow-5.13.5-build/ecFlow-5.13.5-Source/libs/core/src/ecflow/core/Ecf.cpp:88:(.text+0xf14): dangerous relocation: unsupported relocation
/usr/bin/ld: libs/libecflow_all.a(Ecf.cpp.o)(.text+0xf74): R_ARM_TLS_LE32 relocation not permitted in shared object
libs/libecflow_all.a(Ecf.cpp.o): in function Ecf::incr_modify_change_no()': /home/iurt/rpmbuild/BUILD/ecflow-5.13.5-build/ecFlow-5.13.5-Source/libs/core/src/ecflow/core/Ecf.cpp:95:(.text+0xf74): dangerous relocation: unsupported relocation /usr/bin/ld: libs/libecflow_all.a(Ecf.cpp.o)(.text+0xf78): R_ARM_TLS_LE32 relocation not permitted in shared object /home/iurt/rpmbuild/BUILD/ecflow-5.13.5-build/ecFlow-5.13.5-Source/libs/core/src/ecflow/core/Ecf.cpp:95:(.text+0xf78): dangerous relocation: unsupported relocation /usr/bin/ld: libs/libecflow_all.a(Ecf.cpp.o)(.text+0xfac): R_ARM_TLS_LE32 relocation not permitted in shared object libs/libecflow_all.a(Ecf.cpp.o): in function EcfPreserveChangeNo::EcfPreserveChangeNo()':
/home/iurt/rpmbuild/BUILD/ecflow-5.13.5-build/ecFlow-5.13.5-Source/libs/core/src/ecflow/core/Ecf.cpp:102:(.text+0xfac): dangerous relocation: unsupported relocation
/usr/bin/ld: libs/libecflow_all.a(Ecf.cpp.o)(.text+0xfe4): R_ARM_TLS_LE32 relocation not permitted in shared object
libs/libecflow_all.a(Ecf.cpp.o): in function `EcfPreserveChangeNo::~EcfPreserveChangeNo()':
/home/iurt/rpmbuild/BUILD/ecflow-5.13.5-build/ecFlow-5.13.5-Source/libs/core/src/ecflow/core/Ecf.cpp:107:(.text+0xfe4): dangerous relocation: unsupported relocation
collect2: error: ld returned 1 exit status

Regards,
David
What are the steps to reproduce the bug?
Compile on armv7 arch.
Version
5.13.5
Platform (OS and architecture)
Mageia Linux 32bit (armv7hl)
Relevant log output
No response
Accompanying data
No response
Organisation
No response

Attached full build log:
build.armv7hl.0.20241122192746.log

I confirm that passing the option -DCMAKE_POSITION_INDEPENDENT_CODE=ON fixes build!
Thanks a lot for the fix :)
Regards,
David


A Flask app holds a reference to itself

from flask import Flask
import objgraph

def make_app():
    app = Flask(__name__)

    @app.route('/')
    def hello_world():
        return 'Hello, World!'

    return app

def test():
    myapp = make_app()
    objgraph.show_backrefs([myapp], filename='backrefs.png', max_depth=6)

test()

Here's what the produced reference graph looks like:

Is it the intended behavior? In our library a Flask app is created dynamically in a closure, and as a result it retains anything else that was created in that closure. We work around this by having a trampoline function and passing heavy objects as weakrefs, but it was still unexpected.
Environment

Python version: 3.7.5
Flask version: 1.1.2
Werkzeug version: 1.0.1

I'm not clear what the problem with this this circular reference is. The static route uses the app to load and send the static file. Since it's specific to the app, and is optional, it's created in the init method, so this is intentional. Nothing about that closure would affect a closure you created with a factory function though. It sounds like something else is causing issues with your objects.
If that's not the case, please create a minimal example that demonstrates that the issue you're having is with Flask itself.

A simplified usage pattern is the following:
def make_app():
    app = Flask(__name__)

    big_object = BigObject()

    @app.route('/')
    def some_route():
        big_object.use_in_some_way()

    return app

def somewhere():
    myapp = make_app()
    ...

BigObject opens and holds handles to some files, so when many apps are created in tests, GC simply cannot delete all the reference loops in time, and it overflows the open file limit. If app didn't create a circular reference, it would be deleted after its host object, leading to the deletion of BigObject, preventing their accumulation.
But regardless of that, I don't understand why a circular reference here is necessary. If you want to keep a back reference to the app in a route, why not use a weakref?

I don't understand why a circular reference here is necessary

Just looked at the code, and it seems pretty clear why it's necessary, it's because the view function for the static route is an instance method, and the static route is added conditionally in __init__. The pattern of storing instance methods under another name/structure doesn't seem particularly uncommon in Python, so I'm not sure why Flask needs special handling. Additionally, the only time this comes up is when you're running lots of tests, which doesn't seem to justify adding the complexity of weakrefs when the application is running normally.
It still seems to me that the problem is how you're instantiating/storing your data, not with Flask. First of all, creating the big object in the closure means you have to create it every time create_app is called, which seems inefficient for tests as well. Extract it to a view function outside the factory, then register it in the factory.
big = Big()

def process():
    big.use()
    return "done"

def create_app():
    ...
    app.add_url_rule("/process", view_func=process)
    ...

Just looked at the code, and it seems pretty clear why it's necessary, it's because the view function for the static route is an instance method, and the static route is added conditionally in __init__.

You can do that without creating a reference cycle, as I illustrated in #3762.

Additionally, the only time this comes up is when you're running lots of tests, which doesn't seem to justify adding the complexity of weakrefs when the application is running normally.

I guess it's a question of priorities. I do not expect any Python objects to linger until GC collects them. Doesn't matter if it leads to critical bugs only in specific situations - it's simply unexpected. If you create an OrderedDict, or a numpy array you don't think that you'll need to run gc.collect() to get rid of them quickly. The problem I described is just how I discovered it; I would have filed this issue even if it didn't lead to any immediate problems in my applications. Simply because it can, and you don't see it coming.

It still seems to me that the problem is how you're instantiating/storing your data, not with Flask. First of all, creating the big object in the closure means you have to create it every time create_app is called, which seems inefficient for tests as well.

Generally it is more important to run tests in a clean environment. The less objects are reused, the better. Also the solution your propose won't work for another reason: we need several of these apps existing at once (and, naturally, not using the same backend).

Second, in production you're probably using mutliple process workers, or distributing over multiple machines, so loading the data for each worker also seems inefficient, and will also cause issues if you're mutating the data. In that case you want to use something like multiprocessing.Manager to safely manage the data separately from the workers.

Production is a different beast. The problems we have are in tests, and I believe making your library easily testable is a part of the good design. (We don't actually load anything on creation; "Big" is figurative. It's a database, and it hogs file descriptors on creation, and there's a limit of 256 per process on many systems, so getting rid of them in time is essential).

Also, if you need to make sure files are closed, especially during lots of tests, you probably don't want to rely on GC to handle that predictably, regardless of a circular reference.

CPython's reference counting is predictable enough. It is a de facto standard, and it seems logical to make use of its properties to make objects behave better.

I don't have a full design off the top of my head, but you'll want some way to get at big and call something like big.close() manually at the end of tests anyway.

It is a workaround, but not a solution. An app can hold references to a lot of things, and if the app persists, so will all those things. Our app is pretty simple, so it's only the database that's causing real problems.

Thanks for bringing this up, it's an interesting issue, but I think ultimately it points to a design issue in the app, not Flask. I don't want to keep going back and forth about your app design however, so I'm making the call that in your specific case (baring further redesign), your test cleanup should call gc.collect() to ensure resources are collected.

@davidism and I discussed further and agreed to accept a fix for this, so I just merged #3762 after making some cleanups.
Thank you for the issue report and the PR!

This is now breaking other things, when I want to have a self.json = JSONProvidder(self) assignment to provide the test still fails. Composition like this is a very common pattern, at it would be meaningless to do it without the self in this case, so I'm very likely to remove the test to support that.


chore: rename StageDB to Transaction

Follow-up from https://github.com/paradigmxyz/reth/pull/465#issuecomment-1353254143.
Transaction (fka StageDB ) is basically a wrapper around an immutable ref to the Database which manages the lifecycle of a TxMut. Calling it a StageDB was misleading and did not communicate that there is indeed an active transaction inside of it.

needs lint & fmt


Force install a py2 compatible version of pandas

kitti2bag depends on pykitti which depends on pandas
which deprecated py2 support in 0.24 causing breakage
in the docker build. This patch works around this issue
by first installing a py2 compatible version of pandas
before installing kitti2bag.

travis failing with same error on master. https://travis-ci.org/tomas789/kitti2bag/builds/610976165?utm_medium=notification&utm_source=github_status

Confirmed this fix for the docker image build

anybody willing to give it a merge?

@amtagrwl thanks for the review. Somehow merge is still blocked?

@LiyouZhou Yeah. Travis CI fails. Could you please confirm that the pull request builds?

@amtagrwl verified today that this pr builds and master is still broken.


Overall architecture and class diagram section

This is a sub-task for issue #9.
Show us the layers that you recovered from your app and your classes. You can also include individual class diagrams in your stories on GitHub. Write one paragraph here to describe the architecture.

The architecture section of the release 1 document has been completed.


opt Remove unused code for unify code

Now, Agg's child predicates will  not spread to agg. For example:
select a, sum(b)
from (
select a,b from t where a = 1 and b = 2
) t
group by a
a = 1 in scan can be propagated to a of agg.
But b = 2 in scan can not be propagated to sum(b) of agg.


Why are ANY queries rejected?

 It's pretty natural to use ANY queries for service discovery, rather than "try SRV, then try CNAME, then try A".

This sums up some of reason. IMO someone should just write the RFC to deprecate ANY altogether.

The referenced article describes how ANY is useless against a recursive
server. Sure. There are lots of useless ways to use dns.
But what about the case where you're using SkyDNS as an authoritative
server?
I'm not seeing how that article sums up why SkyDNS refuses ANY always.
On 27 Feb 2015 12:29, "Miek Gieben"<EMAIL_ADDRESS>wrote:

This https://bugzilla.mozilla.org/show_bug.cgi?id=1137628 sums up some
of reason. IMO someone should just write the RFC to deprecate ANY
altogether.
—
Reply to this email directly or view it on GitHub
https://github.com/skynetservices/skydns/issues/97#issuecomment-76372328
.

[ Quoting<EMAIL_ADDRESS>in "Re: [skydns] Why are ANY queries re..." ]

The referenced article describes how ANY is useless against a recursive
server. Sure. There are lots of useless ways to use dns.
But what about the case where you're using SkyDNS as an authoritative
server?
I'm not seeing how that article sums up why SkyDNS refuses ANY always.

If you want both A and AAAA in one go you should standardize the meta
RR type for that. ANY is not the replacement for this.

I'm not sure where you got the idea that I wanted ANY for ipv6. I wanted it
for A or SRV.
I can live without it. I was just hoping to learn why, because I've
struggled to find clear motivation against its value (I.e. the RFC you wish
someone would write). :-)
On 27 Feb 2015 13:06, "Miek Gieben"<EMAIL_ADDRESS>wrote:

[ Quoting<EMAIL_ADDRESS>in "Re: [skydns] Why are ANY queries
re..." ]

The referenced article describes how ANY is useless against a recursive
server. Sure. There are lots of useless ways to use dns.
But what about the case where you're using SkyDNS as an authoritative
server?
I'm not seeing how that article sums up why SkyDNS refuses ANY always.

If you want both A and AAAA in one go you should standardize the meta
RR type for that. ANY is not the replacement for this.
—
Reply to this email directly or view it on GitHub
https://github.com/skynetservices/skydns/issues/97#issuecomment-76377417
.

[ Quoting<EMAIL_ADDRESS>in "Re: [skydns] Why are ANY queries re..." ]

I'm not sure where you got the idea that I wanted ANY for ipv6. I wanted it
for A or SRV.

Hmmm, so this only works if you hit SkyDNS directly. If you have
any chance of hitting an intermediate cache you can't be sure to get both
records.

I can live without it. I was just hoping to learn why, because I've
struggled to find clear motivation against its value (I.e. the RFC you wish
someone would write). :-)

I sympathise with the latency argument. But this is why everybody is prefetching and
parallel fetching DNS data.

I guess I tunnel-visioned on SkyDNS in a specific role, the service that docker containers in a CoreOS cluster use as the authoritative service for their own domain. That's really tying down a protocol to a very small use case, and so unwise.
Thanks!


configure ReadTheDocs

Tried a quick fix at https://github.com/gratipay/inside.gratipay.com/issues/654#issuecomment-224733256 but alackaday: it didn't work. Let's figure it aaaaht!

https://readthedocs.org/projects/gratipay/builds/4084646/

Closing in favor of #4053.


Vendor bundling example

The vendor bundling example doesn't appear to work as intended. I pulled and ran it and although everything server-rendered fine the output bundles look far too small—React + React DOM can't be 6kb total. Also the client-side code just doesn't run—the click-handler in the example doesn't appear to do anything.

I reproduced this in my own Razzle project too by copying the same config over. I'm not sure exactly what's going on because I'm far from a webpack expert but I know webpack 4 made a lot of changes to commons chunks etc, so is it possible that broke this?
Also probably unrelated to this but the example code in the README doesn't match the project code (and appear to not even build correctly)

Same here, doesn't work.

Vendor bundling is pretty important, so would be good to get this fixed. I might have some time to look at it in the next few weeks

Review the documentation on splitChunks and vendor bundling. That should help you out.

 I'm basing this example on the next branch!
module.exports = {
	modify: (config, { target, dev }) => {
		const appConfig = Object.assign({}, config);
		if (target === 'web' && !dev) {
			appConfig.optimization.splitChunks = {
				chunks: 'all',
				cacheGroups: {
					react: {
						test: /[\\/]node_modules[\\/](react|react-dom|react-router|react-redux)[\\/]/,
						priority: 10,
						chunks: 'all',
					},
					default: {
						minChunks: 2,
						priority: -20,
						reuseExistingChunk: true,
						chunks: 'all',
					},
				},
			};
			appConfig.optimization.runtimeChunk = true;
		}
		return appConfig;
	},
};

Scratch that. Tried a number of things and couldn't get splitChunks to work. Don't have time to continue on this right now.

Any updates on this? I really need to get vendor splitting to work as after code splitting with react-loadable, the main bundle size is still 1mb after gzip 😭

Okay I am not sure if this solves it but I got vendor splitting to work using cacheGroups instead.
For the with-vendor-bundle example, I did the following:
config.optimization = {    ...config.optimization,    splitChunks: {       cacheGroups: {          chunks: 'all',          name: 'vendor',          test: 'vendor',       }    } }

Followed Webpack site: split chunks example
  optimization: {
    splitChunks: {
      cacheGroups: {
        vendor: {
          test: /[\\/]node_modules[\\/](react|react-dom)[\\/]/,
          name: 'vendor',
          chunks: 'all',
        }
      }
    }
  }

This worked for me. I can see vendor.chunks.js correctly served.
And we do not seem to need this part in the example, not sure how we deal with razzle/polyfills though
      config.entry.vendor = [
        require.resolve('razzle/polyfills'),
        require.resolve('react'),
        require.resolve('react-dom'),
        // ... add any other vendor packages with require.resolve('xxx')
      ];

If @jaredpalmer can help confirm this is the right way, I can submit PR to update the example

@6thfdwp I can confirm your solution worked for me as well. Thanks for sharing it.
To include razzle/polyfills in your example, I think you should be able to just do this:
vendor: {
  test: /[\\/]node_modules[\\/](razzle|react|react-dom)[\\/]/,
  name: 'vendor',
  chunks: 'all',
}

The way in the docs seems to explicitly state each module to include in the vendor, whereas using test will match based on the directory structure in node_modules. Both ways will work, just different use cases.

In order to support vendor bundle splitting in production, it seems you need to use webpack's ManifestPlugin, since razzle's assets-webpack-plugin doesn't seem to report them. I came up with this solution:
// Some additional imports:

const ManifestPlugin = require('webpack-manifest-plugin');
const { extname } = require('path');

// Replace the existing AsetsWebpackPlugin with ManifestPlugin:

      config.plugins = config.plugins.map((plugin) => {
        if (plugin.constructor.name === 'AssetsWebpackPlugin') {
          return new ManifestPlugin({
            fileName: '../assets.json',
            writeToFileEmit: true,
            generate: (seed, files) => (
              files.filter(file => !file.isAsset).reduce((manifest, { name, path }) => {
                // Group files by extension in the manifest
                const ext = extname(path).substr(1);
                manifest[ext] = manifest[ext] || [];
                manifest[ext].push(path);
                return manifest;
              }, seed)
            ),
          });
        }

        return plugin;
      });

// Do vendor splitting:

      config.entry.vendor = [
        require.resolve('razzle/polyfills'),
        require.resolve('react'),
        require.resolve('react-dom'),
      ];

      config.optimization = {
        splitChunks: {
          chunks: 'all',
          name: dev ? 'vendor' : false,
        },
      };

You need to specify a name for the splitChunks config in dev, otherwise it will endlessly recompile for some reason.
Then you can import all the assets in your app like so:
  ${assets.css ? assets.css.reduce((styles, asset) => `${styles}<link rel="stylesheet" ref="${asset}">`, '') : ''}

  ${assets.js.reduce((scripts, asset) => `${scripts}<script src="${asset}" defer></script>`, '')}

Perhaps Razzle should migrate to using the ManifestPlugin? I saw it mentioned here, so this may be a good reason to do it.

@scraton Thanks for sharing and explanation.
So what you suggested here will produce more chunks, while the Webpack site example using
   test: /[\\/]node_modules[\\/](react|react-dom)[\\/]/,
   name: 'vendor',

will always give one chunk vendor.chunks.js, include all packages passing the test, react, react-dom etc.,

I gave it another try to no avail. Using splitChunks leads to endless reloads and no matter what I do, no vendor.js is generated. Tried various .env vars RAZZLE_DEV_BUNDLE_PATH, RAZZLE_BUNDLE_PATH

Well, got it done. No idea, why I didn't before. Here's my working config.
If anyone has any suggestions to optimize this, I'd love to hear it.
if (target === 'web') {

    newConfig.output.filename = dev
        ? 'static/js/[name].js'
        : 'static/js/[name].[hash:8].js';

    newConfig.optimization = {
        ...newConfig.optimization,
        splitChunks: {
            cacheGroups: {
                // Chunk splitting optimiztion
                dte: {
                    test: /[\\/]node_modules[\\/](luxon|@date-io\/luxon)[\\/]/,
                    name: 'dte',
                    reuseExistingChunk: true,
                    priority: -30,
                },
                redux: {
                    test: /[\\/]node_modules[\\/](redux|react-redux)[\\/]/,
                    name: 'redux',
                    reuseExistingChunk: true,
                },
                graphql: {
                    test: /[\\/]node_modules[\\/](graphql|react-apollo|apollo-cache-inmemory|apollo-client|apollo-link|apollo-link-context|apollo-link-http|apollo-link-ws|apollo-utilities)[\\/]/,
                    name: 'apollo',
                    reuseExistingChunk: true,
                },
                form: {
                    test: /[\\/]node_modules[\\/](yup|react-final-form|final-form)[\\/]/,
                    name: 'form',
                    reuseExistingChunk: true,
                    priority: -30,
                },
                vendor: {
                    test: /[\\/]node_modules[\\/](react|react-dom|@lingui|react-router|react-router-dom)[\\/]/,
                    name: 'vendor',
                    reuseExistingChunk: true,
                },
                default: {
                    minChunks: 2,
                    priority: -20,
                    reuseExistingChunk: true,
                },
            },
        },
    };
}

@mschipperheyn  Could you please send a PR ?

Should be fixed in dev but not using vendors but chunkGroups config


chore: fix repo-metadata.json api_ids to correctly identify the library coverage

We are not associating these libraries correctly. The api_id is the hostname of the API and is used to identify the product/service.

@blakeli0 From the generation action: ValueError: alloydb-connectors: api_shortname must not change when library_name remains the same.

@blakeli0 From the generation action: ValueError: alloydb-connectors: api_shortname must not change when library_name remains the same.

@JoeWang1127 is taking a look.

@chingor13 Why do you want to change api_shortname when the title said only api_id should change?

Why do you want to change api_shortname when the title said only api_id should change?

api_shortname is supposed to be the main subdomain of the service's endpoint. api_shortname is the fallback for many systems to re-create the api_id (<api-shortname> + '.googleapis.com')

api_shortname is supposed to be the main subdomain of the service's endpoint. api_shortname is the fallback for many systems to re-create the api_id (<api-shortname> + '.googleapis.com')

We have a configuration comparator to determine which libraries are changed and changing api_shortname is a bit complex situation that I haven' design well.
For this PR, could you only change api_id? I need to think again how to support api_shortname change.

For this PR, could you only change api_id? I need to think again how to support api_shortname change.

I left the library_name additions for the ones that will need to change later and it seems to have worked.


Updating Script repo with latest ApiHub SDK

Hi @safihamid, I'm your friendly neighborhood Azure Pull Request Bot (You can call me AZPRBOT). Thanks for your contribution!

It looks like you're working at Microsoft (hamids). If you're full-time, we DON'T require a contribution license agreement.

If you are a vendor, DO please sign the electronic contribution license agreement. It will take 2 minutes and there's no faxing! https://cla.azure.com.

TTYL, AZPRBOT;

Few nit comments - rest looks ok

History is looking messed up, with head having two parents with same commit string:

Can you fix? Thanks!

Can you check again please?

:ship:


Adding ability to create pomodoros by delta time, not only end-time

Hi! Great tool! When i ran it, i see missing(for me) feature - creating pomodros based on delta time.

 Here: https://github.com/Matt-Deacalion/Pomodoro-Calculator/compare/cf59db2ef791680e1c5b07f72f85e2735f569ca4...e9cea381ada5bdcecad864b80a776e72360f6b61
It's now on PyPi (version 0.3.9). Feel free to add your full name to CONTRIBUTORS.txt.

Great! Thank you for refactoring - this is my first Python code lines :)


Implement other example 0.2

Recurrent issue to implement at least one example for each version published.

Closed with be8f4f6c1d1e68654d7c5d13c3ad50eb47b5e5c5


Make test suit generic

Make test suit generic over lock implementation.

Welcome to Codecov :tada:
Once merged to your default branch, Codecov will compare your coverage reports and display the results in this comment.
Thanks for integrating Codecov - We've got you covered :open_umbrella:


Feat: Add new CLI options and create a specific NodeProvider entry for attractors

Codecov Report
Attention: Patch coverage is 66.66667% with 3 lines in your changes missing coverage. Please review.

Project coverage is 60.45%. Comparing base (2de7648) to head (06a5ee1).

Files with missing lines
Patch %
Lines

...esis/synthesis/main_trunk/create_graph/__init__.py
40.00%
3 Missing :warning:

Additional details and impacted files
@@            Coverage Diff             @@
##             main      #13      +/-   ##
==========================================
+ Coverage   60.44%   60.45%   +0.01%
==========================================
  Files          44       44
  Lines        4745     4749       +4
  Branches      571      571
==========================================
+ Hits         2868     2871       +3
  Misses       1634     1634
- Partials      243      244       +1

Flag
Coverage Δ

pytest
60.45% <66.66%> (+0.03%)
:arrow_up:

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines
Coverage Δ

axon_synthesis/cli/synthesis.py
86.80% <100.00%> (+0.37%)
:arrow_up:

axon_synthesis/constants.py
87.50% <ø> (ø)

...xon_synthesis/synthesis/main_trunk/post_process.py
84.80% <ø> (ø)

...esis/synthesis/main_trunk/create_graph/__init__.py
64.86% <40.00%> (+0.67%)
:arrow_up:

... and 1 file with indirect coverage changes

----
🚨 Try these New Features:

Flaky Tests Detection - Detect and resolve failed and flaky tests


Troubleshooting conda package uploading process

Codecov Report

Merging #268 (55aa5a4) into main (1bb37c9) will decrease coverage by 0.00%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             main     #268      +/-   ##
==========================================
- Coverage   95.74%   95.74%   -0.01%
==========================================
  Files          64       64
  Lines        2750     2748       -2
  Branches      412      412
==========================================
- Hits         2633     2631       -2
  Misses         75       75
  Partials       42       42

Impacted Files
Coverage Δ

dask_sql/physical/rel/custom/predict.py
95.45% <0.00%> (-0.11%)
:arrow_down:

dask_sql/utils.py
100.00% <0.00%> (ø)

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 1bb37c9...55aa5a4. Read the comment docs.


[Bug]: Multi NIC PC can't connect to ATEM

What happened?
I ran into an issue with TA today.
We have a PC which we just installed 4 more NICs and ever since then TA can't connect to the ATEM anymore.
The other applications as companion or the ATEM software all connect fine, so I was wondering if it might be a problem that TA can't work with multi-NIC setups?
The NIC and the ATEM are both on static IPs
Version
3.0.4
Distribution
Source
OS
Windows
What browsers are you seeing the problem on?
No response
If applicable, What Listener Clients are You Using?
No response
TallyArbiter configuration
No response
Relevant log output
No response
Error stacktrace (if applicable)
No response

@DachsbauTV just to confirm - you did not upgrade TA in the process of adding more NICs - it was working with the original amount of NICs and then was not after you added?

Correct. it was 3.0.4 before and after

I would think that since with ATEM, TA is a client and the ATEM is a server, as long as the ATEM is reachable from the TA computer, it would work. Very strange.


feat: detailed README.md

with pretty logo!

@all-contributors add @Kimu-Nowchira for doc

@all-contributors add @Kimu-Nowchira for doc

@all-contributors add @Kimu-Nowchira for doc


Expose the deployment strategy values for the policy controller

Description of the change
Prior to this change, the policy controller webhook was not able to have its deployment strategy modified. If you only deployed a single replica, it could not perform a rolling update due to the default maxSurge: 25% being rounded down to 0.
This change exposes those values, so that the maxSurge can be updated and a single instance can be rolled.
Existing or Associated Issue(s)
Fixes #748.
Additional Information
Checklist

[x] Chart version bumped in Chart.yaml according to semver. Where applicable, update and bump the versions in any associated umbrella chart
[x] Variables are documented in the values.yaml and added to the README.md. The helm-docs utility can be used to generate the necessary content. Use helm-docs --dry-run to preview the content.
[ ] JSON Schema generated.
[ ] List tests pass for Chart using the Chart Testing tool and the ct lint command.

can you rebase and sign the dco?

@shearn89 thanks for adding this feature. Could you do the necessary to get this merged please?

Sorry, it's been busy at work and home. I'll try to get this ready for merging soon.

Okay - rebased, updated, linted, schema generated, and commits signed off!
If you'd like me to squash the commits or squash-merge, let me know. :D

can you rebase just to get the latest changes?


get_loaded_locales returns duplicates for multiple translations

Godot version
3.4
System information
Any
Issue description
TranslationServer.get_loaded_locales() not checking duplicates.
For example, we have the following files in localization:
main.en.translation
main.ru.translation
coop.en.translation
coop.ru.translation

In this case get_loaded_locales() return [en, ru, ru, en]
Steps to reproduce
Create multiple csv files.
Import it to project.
Add *.translation to Localization in Project Settings.
Use TranslationServer.get_loaded_locales() in code.
Minimal reproduction project
No response

Hi PoqXert! I tried working on this issue and followed the steps you offered to reproduce the problem.
First I added the following translation files on a brand new empty project, duplicating the i18n.ja.translation file
and renaming it as NEWTEST.ja.translation, so I would have 2 Japanese translations.

I then ran TranslationServer.get_loaded_locales() and as expected from your example I received the following array:

After messing around in the translation.cpp I got the following result with the same project and unaltered translation files:

It now shows only one Japanese translation in the array, was this the desired result?