Proposal: quoted and unquoted property names distinct

Closure Compiler is a JavaScript optimizer that also works well with TypeScript (using our https://github.com/angular/tsickle as an intermediate re-writer). It produces the smallest bundles, and we use this internally at Google and externally for some Angular users to get the smallest application.
In ADVANCED_OPTIMIZATIONS mode, Closure Compiler renames non-local properties. It uses a simple rule: unquoted property accesses can be renamed, but quoted property access cannot. This can break a program in the presence of mixed quoted and non-quoted property access, as a trivial example:
window.foo = "hello world";
console.log(window["foo"]);

Is minified by Closure Compiler [1] as
window.a = "hello world";
console.log(window.foo); // prints "undefined"

Currently, Closure Compiler puts the burden of correct quoted/unquoted access on the author. This is documented here: https://developers.google.com/closure/compiler/docs/api-tutorial3#propnames
With TypeScript's type-checker we believe we could flag the majority of cases where property renaming breaks a users program. We propose to introduce an option that makes quoted and unquoted properties be separate, non-matching members. In the proposal below, assume we enable this behavior with an option --strictPropertyNaming
Treat quoted and unquoted properties as distinct
Currently, TypeScript allows quoted access to named properties (and vice versa):
interface SeemsSafe {
    foo?: {};
}

let b: SeemsSafe = {};
b["foo"] = 1; // This access should fail under --strictPropertyNaming
b.foo = 2; // okay

Also, newly introduced in TypeScript 2.2, the inverse problem exists:
interface HasIndexSig {
  [key: string]: boolean;
}
let c: HasIndexSig;
c.foo = true; // This access should fail under --strictPropertyNaming

Defining types whose members should not be renamed
It's convenient for users to specify a type that insures the properties are not renamed. For example, when an XHR returns, property accesses of the JSON data must not be renamed.
// Under --strictPropertyNaming, the quotes on these properties matter.
// They must be accessed quoted, not unquoted.
interface JSONData {
  'username': string;
  'phone': number;
}

let data = JSON.parse(xhrResult.text) as JSONData;
console.log(data['phone']); // okay
console.log(data.username); // should be error under --strictPropertyNaming

Structural matches
Two types should not be a structural match if their quoting differs:
interface JSONData {
  'username': string;
}

class SomeInternalType {
  username: string;
}

let data = JSON.parse(xhrResult.text) as JSONData;
let myObj: SomeInternalType = data;  // should fail under --strictPropertyNaming
console.log(myObj.username); // would get broken by property renaming

Avoid a mix of Index Signatures and named properties
Optional: we could add a semantic check for .ts inputs that disallows any type to have both an index signature and named properties.
interface Unsafe {
    [prop: string]: {};
    foo?: {}; // This could be a semantic error with --strictPropertyNaming
}

let a: Unsafe = {};
a.foo = 1;
a["foo"] = 2;

Note that the intersection operator & still defeats such a check:
type Unsafe = {
    [prop: string]: {};
} & {
    foo?: {}; // This is uncheckable because the intersection never fails
}

We should not check .d.ts inputs as they may have been compiled without --strictPropertyNaming.
Compatibility with libraries
If a library is developed with --strictPropertyNaming, the resulting .d.ts files should be usable by any program whether it opts into the flag or not. There is one corner case however.
The following example should probably produce a declarationDiagnostic, because the generated .d.ts would be an error when used in a compilation without --strictPropertyNaming.
type C = {
  a: number;
  'a': string; // this one should probably error
  [key: string]: number;
}

A simpler alternative is just to allow this case, and produce it in .d.ts files. Then downstream consumers will have an error unless they turn on --strictPropertyNaming or --noLibCheck.
Either choice here is okay with us.
Property names that require quoting
In this case, there is no choice but to quote the identifier:
interface JSONData {
  'hy-phen': number;
}

This continues to work under --strictPropertyNaming, but the implication is that such an identifier is forced to be non-renamable since there is no unquoted syntax to declare it. This seems fine, it results in a lost optimization only for such names, which we assume are rare.
Property-renaming safety
There are some cases that will remain unsafe:

the any type still turns off type-checking, including checking quoted vs. unquoted access
libraries developed without --strictPropertyNaming use unquoted identifiers which should not be renamed (such as document.getElementById. Closure Compiler already has an 'externs' mechanism that prevents the renaming. In the TypeScript code it will not be evident that the properties are not renamed, but this is the same situation we have today.

[1] https://closure-compiler.appspot.com/home#code%3D%252F%252F%2520%253D%253DClosureCompiler%253D%253D%250A%252F%252F%2520%2540compilation_level%2520ADVANCED_OPTIMIZATIONS%250A%252F%252F%2520%2540output_file_name%2520default.js%250A%252F%252F%2520%2540formatting%2520pretty_print%250A%252F%252F%2520%253D%253D%252FClosureCompiler%253D%253D%250A%250Awindow.foo%2520%253D%2520%2522hello%2520world%2522%253B%250Aconsole.log(window%255B%2522foo%2522%255D)%253B%250A

Wouldn't this be something that a tool like https://github.com/angular/tsickle should handle instead?

Why not do it in tsickle?

we would have to implement our own type-checker. Right now tsickle is just a syntax-directed tree transform. We'll move it into the emit transform pipeline API soon. Imagine if some emit transform wanted to modify the type system in this way.
it would be slow to type-check the program a second time during emit
we want editor tooling to suggest correct completions, error highlighting, etc

we would have to implement our own type-checker. Right now tsickle is just a syntax-directed tree transform. We'll move it into the emit transform pipeline API soon. Imagine if some emit transform wanted to modify the type system in this way.
it would be slow to type-check the program a second time during emit

The new transfomration pipeline should allow tsickle to just plugin with no need for an extra pass. You get the typechecker state as an input, so no need for extra type checking.

we want editor tooling to suggest correct completions, error highlighting, etc

I was suggesting that tsickle rewrites the output based on the type. i.e. i.value => i["value"] if typeof i does not have an explicit declaration for value. So this way, no need for errors to be reported in the editor, it should just work.

As you can see in the linked history from tsickle, @mprobst tried converting in both directions (change to quoted access on types with an index signature, change to unquoted access on types with named properties) and we rolled it out internally at Google.
We hit a number of problems. For one thing, this becomes type-directed emit which is just not how TS works. Practically it also had a bunch of holes (eg. the types remain assignable, initial assignment is unchecked).
I think next step is for me, Martin, and @rkirov to write up more clearly why the tsickle re-writing doesn't work. We could then either

revisit this issue so that we have rigor and correctness
try another experiment where tsickle (or tslint) produces warnings when we think the quoting might be wrong

An update on what transpired in the last 1.5 years. As Alex described we implemented the minimal transformation in angular/tsickle - if the user wrote foo.bar on foo which was of a type T that had an index signature and there was no other definition of the property bar in T, we emitted foo['bar'] in the .js file instead of the original foo.bar in the .ts file.
This mostly worked, but every month or so someone will stumble upon this. In some scenarios this change (along with the usual Closure optimization behavior) actually breaks code that is working fine without it. For example:
let x: {[key: string]: string} = {someProperty: 'foo'};
x.someProperty;

we would emit:
let x = {someProperty: 'foo'};
x['someProperty'];

which Closure will change to (remember the rule is simple in closure, all non-quoted properties get changed)
let x = {a: 'foo'};
x['someProperty'];

You might wonder why would one write an index signature in this scenario.  I recommend just using type-inference, which sidesteps the whole issue, but we can't really check each index signature usage to see if it is legitimate.
Also debugging this type of issues has proved nightmarish for our users because noone expects that tsickle will change the emit. Users mostly look at the source .ts and the minified output, and cannot reason through each step of the pipeline. Also, as Alex said, at a high-level non-type directed .js emit is generally how TS works, and every time we have violated that it has caused surprise and confusion. I think TS team has similar experience with for-of, const enums, etc.
So, in the last month, we switched to making this a compilation error instead of tsickle rewrite -
https://github.com/bazelbuild/rules_typescript/blob/master/internal/tsetse/rules/property_renaming_safe.ts and
https://github.com/angular/tsickle/commit/ba1381483d0458b7b125e0d3ba71187ea1aa503d
We have received some fair criticisms that we are inventing a custom flavor of TS that is not officially approved, so we would still love to see some action on --strictPropertyNaming. We might further downgrade this to tslint, so that it is easier to run this check in repositories that don't use Bazel.
Here is one stylistic benefit that comes to mind with --strictPropertyNaming (in the minimal version that we have implemented). With that check on when one sees myObj.myLongProperty they know that the string myLongProperty is checked for typos (unless myObj is any as usual). Without --strictPropertyNaming one can get by without checking on the name of the property through an index signature and is exposed to a runtime error in case of a typo. Most TS authors know to limit usage of any, but index signatures still slide by as not everyone realizes the loss of static guarantees that come with them.


Fix Globo extractor

Checklist

[x] I'm reporting a broken site support issue
[x] I've verified that I'm running youtube-dl version 2<IP_ADDRESS>
[x] I've checked that all provided URLs are alive and playable in a browser
[x] I've checked that all URLs and arguments with special characters are properly quoted or escaped
[x] I've searched the bugtracker for similar bug reports including closed ones
[x] I've read bugs section in FAQ

Verbose log

[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: ['--cookies', 'cookies.txt', '-v', '-F', 'https://globoplay.globo.com/v/7928258/programa/']
[debug] Encodings: locale UTF-8, fs utf-8, out UTF-8, pref UTF-8
[debug] youtube-dl version 2<IP_ADDRESS>
[debug] Python version 3.6.3 (CPython) - Linux-4.15.0-30deepin-generic-x86_64-with-debian-9.0
[debug] exe versions: avconv 3.2.12-1, avprobe 3.2.12-1, ffmpeg 3.2.12-1, ffprobe 3.2.12-1, rtmpdump 2.4
[debug] Proxy map: {}
[Globo] 7928258: Downloading JSON metadata
[Globo] 7928258: Downloading security hash for 7928258_manifest_360_1080_m3u8
[Globo] 7928258_manifest_360_1080_m3u8: Downloading m3u8 information
WARNING: Failed to download m3u8 information: HTTP Error 403: Forbidden
[Globo] 7928258: Downloading security hash for 7928258_manifest_360_1080_l_m3u8
[Globo] 7928258_manifest_360_1080_l_m3u8: Downloading m3u8 information
WARNING: Failed to download m3u8 information: HTTP Error 403: Forbidden
[Globo] 7928258: Downloading security hash for 7928258_manifest_90_720_m3u8
[Globo] 7928258_manifest_90_720_m3u8: Downloading m3u8 information
WARNING: Failed to download m3u8 information: HTTP Error 403: Forbidden
[Globo] 7928258: Downloading security hash for 7928258_manifest_240_720_m3u8
[Globo] 7928258_manifest_240_720_m3u8: Downloading m3u8 information
WARNING: Failed to download m3u8 information: HTTP Error 403: Forbidden
[Globo] 7928258: Downloading security hash for 7928258_manifest_90_720_l_m3u8
ERROR: Globo returned error: User has exceeded the simultaneous access limit.
Traceback (most recent call last):
  File "/usr/local/lib/python3.6/site-packages/youtube_dl/YoutubeDL.py", line 796, in extract_info
    ie_result = ie.extract(url)
  File "/usr/local/lib/python3.6/site-packages/youtube_dl/extractor/common.py", line 530, in extract
    ie_result = self._real_extract(url)
  File "/usr/local/lib/python3.6/site-packages/youtube_dl/extractor/globo.py", line 122, in _real_extract
    '%s returned error: %s' % (self.IE_NAME, message), expected=True)
youtube_dl.utils.ExtractorError: Globo returned error: User has exceeded the simultaneous access limit.

Description

This error is now happening to all content using this globe extractor. I checked my account access and only my browser and youtube-dl are logged in. So, I wish you could help us solve this problem.

@dstftw
Could you please show the issue that was duplicated?


BInt Math Functions not showing

Even after importing the module, I cant seem to use the BInt functions like GCD LCM Permu and Combination

BIntMath is currently internal.

So when will it be non internal?

@twodayslate Do you remember why we have set it to internal?


Does anyone trained succesfully with cycleGan unpaired?

I have been reading the open comments here, and I am growing skeptical that this code works regarding training..
Does anyone have it working? Does anyone successfully trained the Zebra example?

I ran the unpaired training example again today morning and get expected results.

This is the accelerate config file i use:
compute_environment: LOCAL_MACHINE
debug: false
distributed_type: MULTI_GPU
downcast_bf16: 'no'
gpu_ids: 0,1,2,3
machine_rank: 0
main_training_function: main
mixed_precision: 'no'
num_machines: 1
num_processes: 4
rdzv_backend: static
same_network: true
tpu_env: []
tpu_use_cluster: false
tpu_use_sudo: false
use_cpu: false

and this is the training command:
export NCCL_P2P_DISABLE=1
accelerate launch --main_process_port 29501 --config_file temp/config_4gpu_full.sh \
    src/train_cyclegan_turbo.py \
    --pretrained_model_name_or_path="stabilityai/sd-turbo" \
    --output_dir="output/cyclegan_turbo/my_horse2zebra" \
    --dataset_folder "data/my_horse2zebra" \
    --train_img_prep "resize_286_randomcrop_256x256_hflip" --val_img_prep "no_resize" \
    --learning_rate="1e-5" --max_train_steps=25000 \
    --train_batch_size=1 --gradient_accumulation_steps=1 \
    --report_to "wandb" --tracker_project_name "gparmar_unpaired_h2z_cycle_debug_v3" \
    --enable_xformers_memory_efficient_attention --validation_steps 250 \
    --lambda_gan 0.5 --lambda_idt 1 --lambda_cycle 1

Please let me know if you are unable to obtain similar results!
-Gaurav

I was sceptical at first too but I also managed to reproduce the results. I did not dive too deep into it but here are my current findings:

The training seems very seed dependant. With exactly the same command and setup but different seeds I got completely different results (one diverging, one converging)
Dependent on the dataset the cycle loss might be too high. For my dataset the cycle loss was way too high leading to a perfect reconstruction but completely nonsense in the translation.
Training with batch size 8 leads to much better convergence and results than with batch size 1
I'm not sure about this point or if there is an error with the gradient accumulation but for my experiments using a native batch size of 8 yields much better results than accumulating 8 batches of size 1, which is weird.
It takes a couple of 1000 steps to see first good translation effects.

The only thing that is really confusing me is the high VRAM usage. @GaParmar you stated somewhere that you trained the 512x512 models on a GPU with 48GB of RAM. For my experiments I could not come close to this value. On a H100 it needs ~56GB of RAM for BS of 1. Also I'm very confused why gradient accumulation, xformers and TF32 have nearly no effect and only reduce the occupied RAM by at most 5-10% which is much less of an effect as I see it when training other SD models. And finally training 512x models on an H100 with BS1 (with gradient accumulation of 8) would take about 12 days to reach 25000 steps which seems insane to me.
@GaParmar Are these observations at least close to what you found when training 512x models? Or is there some trick to reduce the VRAM usage an training time?

@tim-kuechler interesting observations!
I'm currently only now into training on a custom dataset. I'm trying to do blurring/deblurring. So far results look good. I train on 4 GPUs (3090 w 24GB ram), resolution 256x256 with grad accumulation of 2, so effective batch size is 8.
Each gpu is using 19.5 GB. Unfortunately I can't go to 448 or 512 with the RAM I got.
I do wonder why you need 56GB. Is that for your custom dataset with higher res?
I wonder if I can use a model trained on 256 and use it as is for higher res. Maybe if not, finetuning it using a method that doesn't tune full weights will work? I regularly train vision transformers to good performance by only training attention layers.

Hi @tfriedel
Based on your dataset and task, you can try training your model on random crops during training time and full resolution at test time.
This should enable you to maintain high resolution outputs.

Hi @GaParmar, the point @tim-kuechler brought up is something really hindering my training. It seems like vae.encode() and vae.decode() in the forward pass of Pix2Pix_Turbo consumes enormous amounts of memory, which makes it impossible for me to train with a batch size larger than five on a A100 with 80 GB RAM.
I have followed the guide on how to train pix2pix_turbo on my own paired dataset. Please describe how you can train with significantly higher batch size.

@swold99 That low batch size is expected. I'm interested how you found out that the high memory usage is due to the VAE?
To increase the effective batch size you can use gradient accumulation (--gradient_accumulation x). If you have e.g. a native batch size of 4 and use gradient accumulation with 2 this leads to an effective batch size of 8 although it also doubles your training time. Normally there should be no difference in using a native bs of x or a accumulated bs of x, at least not in model performance.
For my trainings I can use a native bs of 8 because I use a version of a version of the H100 with 100GB of VRAM.

@tim-kuechler I printed the memory usage on a lot of places in the code and noticed that allocated and reserved GPU memory increased by around 30 GB (batch_size=5) after both vae.encode() and vae.decode().

I ran the unpaired training example again today morning and get expected results.
This is the accelerate config file i use:
compute_environment: LOCAL_MACHINE
debug: false
distributed_type: MULTI_GPU
downcast_bf16: 'no'
gpu_ids: 0,1,2,3
machine_rank: 0
main_training_function: main
mixed_precision: 'no'
num_machines: 1
num_processes: 4
rdzv_backend: static
same_network: true
tpu_env: []
tpu_use_cluster: false
tpu_use_sudo: false
use_cpu: false

and this is the training command:
export NCCL_P2P_DISABLE=1
accelerate launch --main_process_port 29501 --config_file temp/config_4gpu_full.sh \
    src/train_cyclegan_turbo.py \
    --pretrained_model_name_or_path="stabilityai/sd-turbo" \
    --output_dir="output/cyclegan_turbo/my_horse2zebra" \
    --dataset_folder "data/my_horse2zebra" \
    --train_img_prep "resize_286_randomcrop_256x256_hflip" --val_img_prep "no_resize" \
    --learning_rate="1e-5" --max_train_steps=25000 \
    --train_batch_size=1 --gradient_accumulation_steps=1 \
    --report_to "wandb" --tracker_project_name "gparmar_unpaired_h2z_cycle_debug_v3" \
    --enable_xformers_memory_efficient_attention --validation_steps 250 \
    --lambda_gan 0.5 --lambda_idt 1 --lambda_cycle 1

Please let me know if you are unable to obtain similar results!
-Gaurav

Hi, @GaParmar ,I just copy your code, including accelerate config and training code, but I meet the questions below, could you please help me analyze these problems? thank you very much!

Me the same. I can train with batch size 1 and image size 256x256 by using RTX A6000 50GB memory. It consumes 26GB memory. When i try to increase resolution to 512, it never succeed. The largest resolution I can try is 384x384.


inline touch-action:none not being properly applied

When using document.querySelector(this.get('handle')) in order to find the element with the dragging handle, the first matching element in the whole DOM is returned.
The consequence is that only the first element in a sortable list has the inline style touch-action:none. If the list had n members, the current code would match the first element in the list n times, applying the style only to that element n times in an idempotent way.
The fix scopes the query to the actual element which has just been inserted in the DOM so as to guarantee that each draggable element gets the inline style.

This PR is meant to solve issue #230 :
https://github.com/heroku/ember-sortable/issues/230

Released as part of 1.12.5. Thanks again!


Drawer demo should not have sass

I noticed that the drawer demo added a sass file.  We should remove this since demos should not have their own distributed css.

:tada: This issue has been resolved in version 2.25.2 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Tweaks to datetime optimization

Prerequisites:

[X] Unless it is a documentation hotfix it should be merged against the dev branch
[X] Branch is up-to-date with the branch to be merged with, i.e. dev
[x] Build is successful
[X] Code is cleaned up and formatted

Summary
A followup PR to https://github.com/cmu-delphi/delphi-epidata/pull/977, this makes a few changes to the new datetime optimization code:

merges days_to_ranges and weeks_to_ranges into a single _to_ranges function with Callable arguments
adds extra tests for some edge cases, as well as TimePair objects
other minor changes

good stuff, theres just the comment i left in the previous PR about not guessing at the date type when we dont have to: https://github.com/cmu-delphi/delphi-epidata/pull/977/files#r986447003


Breadcrumb will not show all nodes if selected node is from CMSAttachMenu for an AppHook.

Summary
Sometimes when you are not logged in breadcrumb will not show all nodes if selected node is from CMSAttachMenu for an AppHook.
Let's use the following URL structure:
/ (CMS Page)
|-- /my-app/ (CMS Page with attached AppHook with menus)
    |-- /my-app/slug/ (URL handled from AppHook. There is `NavigationNode` for it by custom `CMSAttachMenu`)

We are opening /my-app/slug/
Expected behaviour
We expect the breadcrumb to show:
/ -> /my-app/ -> /my-app/slug/
Actual behavior
When you are logged out it randomly only shows:
/ -> /my-app/
Environment

Python version: < 3.6
Django version: 1.11.*
django CMS version: 3.5.2

The issue does not occur on Python 3.6
Extra details
I'm not sure if #6514 is related or not.
From my observations the cause for my problem is that in the {% show_breadcrumb %} the currently selected node is got by the following code:
selected = next((node for node in nodes if node.selected), None)

which will find the first node with is marked as selected.
The problem is that in the nodes list if there are extensions there can be more than one selected node (at least from what I found). In my case both /my-app/ and /my-app/slug/ was marked as selected. Depending on the order of the nodes if the right one was found first then the breadcrumb will be shown correctly, if the wrong one was first then there will be missing elements in the breadcrumb.
This problem does not occur in Python 3.6 (CPython 3.6) because dicts are ordered (preserve insertion order). My custom menu is registered in the menu pool as soon as server starts. On the other hand CMSMenu is registered on first request. For that reason when building the list of nodes in Python 3.6 custom nodes always comes before nodes for CMS pages and everything works fine. In Python >= 3.3 < 3.6 dicts has random order on every interpreter start which makes this problem inconsistent (sometime works, sometimes not).
I was not tested with Python 2.7 (there order of dicts should be somewhat predictable)
The problem also does not occur when in edit mode because for some reason the node for the page is not marked as selected.
There are few possible solutions that came to my mind:

No matter how many selected nodes there are in the list (I think maximum of two - the node for the CMS page with AppHook and the node for the actual view) to use the node with higher level.
Ensure that there is only one selected node in the list.
Use OrderedDict for Python versions < 3.6 in MenuPool.menus and local variable registered_menus in MenuPool.get_registered_menus which is returned as result and then assigned to MenuRenderer.menus

I created the following workaround for my project:
from menus.base import Modifier
from menus.menu_pool import menu_pool

class FixBreadcrumbModifier(Modifier):
    """
    This modifier fixes the breadcrumb for Python < 3.6

    This is a workadound to a bug in Django CMS. More details at:
    https://github.com/divio/django-cms/issues/6540
    """
    def modify(self, request, nodes, namespace, root_id, post_cut, breadcrumb):
        if breadcrumb:
            if sum(1 for node in nodes if node.selected) > 1:
                nodes.sort(key=lambda node: node.url, reverse=True)
        return nodes

menu_pool.register_modifier(FixBreadcrumbModifier)

Hello @vstoykov,
Can you check the release/3.5.x branch?
A fix related to menus and selected nodes is in there.
Just to make sure is not the same.

Hello @czpython,
Yes I checked with release/3.5.x branch and the problem is still there. There are more than one selected node and depending on which came first the breadcrumb may be shown correctly or not.
I also was able to reproduce the problem 100% of the time (not on random) on Python 3.6 by just importing cms.cms_menus in my_app.cms_menus. This way iterating over MenuPool.menus and MenuRenderer.menus will always put CMSNavigationNodea before the nodes from app and because CMSNavigationNode for the page is also marked as selected is returned in the template tag instead of the right one.

I can confirm that the issue still occurs with django-cms==3.7.0rc2. As @vstoykov describes, the issue seems to be that both the node where the apphook is bound, and the apphook's subnode are set to selected. The breadcrumb code then only walks to the first selected page and ignores the rest.
The apphook root page gets selected because the page id matches the one of the request object.
Reversing the search in ShowBreadcrumb.get_context solves this particular case.
selected = next((node for node in reversed(nodes) if node.selected), None)

Since I do not know this codebase very well, it is unclear to me whether this is a proper solution, or if the bug is actually the fact that the root page of the apphook is also marked as selected (Instead of just the subnode).
It would be really great if this issue was fixed. It has been around from since I started using Django CMS version 3.4, and it breaks the otherwise seamless integration of Django apps in the CMS.

@decden you can try my workaround

@vstoykov. I did and it works. However the order in which it gets registered is also important. I first registered it together with my apphook, which caused it to be inserted too early and some other built-in modifier ended up changing the order again. I finally registered it in cms_menus.py, which ended up working.


Remember language choose in popup for translation selected text

It must be option
When i choose target language, it must be remembered
Optionally, toggle language in any popup will toggle also global target language

Thank you for such a great tool! Is this some thing that's going to be worked on? This feature is the only thing that's keeping me from moving away from Translate Web Pages.
I work with a lots of non-english speaking projects, it'd be really great to not have to re-select my last translation language.
I'm willing to work on this if  pointed to the right direction.
Thank you!

@pombadev could you explain what exactly you expect of this feature.
I can implement the logic, but the most important thing we have to do is determine a behavior in details.
You can tell here about your use case, about your pain and suggest a solution for your use case. Let's try


adding keycorrction to not duplicate the offset keys

Problem
bottomsheet anchor map replaces statevalues when the keys are same in some scenarios
Root cause
Map used for anchors use Float as Key. These key values can be same in some scenarios
Fix
Added a very small value for key that will prevent from key duplication while also not causing any issues wrt to dp
Validations
Manual Testing
Pull request checklist
This PR has considered:

[ ] Light and Dark appearances
[ ] Automated Tests
[ ] Documentation and demo app examples
[ ] VoiceOver and Keyboard Accessibility
[ ] Internationalization and RTL layouts
[ ] Size classes and window sizes (notched devices, multitasking, different window sizes, etc)

Add value to Hidden state instead of Shown or Expanded state as this wont affect UX alignment anyway.


check for packages is broken

@rultor release, tag is 0.10.2

@rultor release, tag is 0.10.2

@yegor256 OK, I will release it now. Please check the progress here

@rultor release, tag is 0.10.2

@yegor256 Done! FYI, the full log is here (took me 1min)


Re your discussion on jabber

@jashkenas hi. Sorry if this is the wrong place for this but I was hearing you talk on javascript jabber podcast and the topic of Backbone.ModelBinding Backbone.Marionette got brought up, you offered to go into it but never got the chance. I gotta say I really want to hear what you think about those, especially how they compare to layoutmanager, ModelBinding, Knockback, and Synapses, and how important it is for the majority to use those and how they compare to what ember has.

this is the wront place for this. This is where discussion is supposed to occur for feature requests and bugs.

The google group, however, is a fantastic place to discuss this.  I've taken the liberty of posting a topic for you there and it should appear shortly once it's been approved.

The topic has been posted here.


Live Video in ionic/angular working erratically

I have a couple of apps using this library to read barcodes and QR codes from the camera's live video feed. Last year, we were testing  one of these apps before deploying a new update. Some of our testing devices seemed to present a weird issue with the video feed, it would not update unless there was a screen touch or some other event that would lead to Angular's change detection cycle. The devices had varying major versions of the Android OS, and sometimes on a fresh install the camera would work just fine. We ended leaving it as is, seeing that none of our userbase had reported any issues at the time.
More recently though, we have gotten reports that this same issue is occurring on our users' devices.
Since this has been happening in a wildly inconsistent manner, we haven't really found any hint of what may be causing this issue.
After the recent reports, I even made a new blank ionic project to test if this would happen on a clean new project, and I can attest that it does. But again, even after the issue occurring on a specific device, sometimes after a clean new install it goes away. This is the repo I used to test that on the device.

Some more insight into this issue after testing I've done the past few days.
Starting off on a fresh install, here's what happens:

On the first access, after requesting for the camera's permission it always works
Switching to another app that's using the same camera and switching back to the app using Quagga, the video feed stops working and you need to restart the app for it to work again, even invoking Quagga.init doesn't work, as it returns this error

After a restart, this is where the randomness comes it in it seems, the camera will either work fine, or it will present the prior problem, where the video only updates on a touch or similar event (manually dispatching these events doesn't seem to have any effect)

Restarting the app does not fix the issue above, but clearing the app's data, seems to have the same effect as doing a fresh install, and it works the same as it does in the steps above.
Since the problem occurs after switching to a second app that's utilizing the same camera, I figured the problem might be with my app not taking the proper steps to release the camera when going into background mode.
So I modified things around a bit, and made it so every time the app goes into the background I invoke Quagga.stop, and on return I invoke Quagga.init. The first time around, the same thing happens like in the step above, with the main difference being that after the initial hiccup, the app seems to handle fine the switch to other apps using the camera and I have not experienced the bit about the camera feed being stuck anymore on launch.

Hmm.  We could probably add an option to init that if enabled would cause a stop/start when going background/foreground.
Am I understanding that calling stop() when your web app is backgrounded and notified via the Page Visibility API and then start() when it is foreground again, seems to solve the problem?
addEventListener("visibilitychange", (event) => { if (document.visibilityState == 'visible') Quagga.start(); else Quagga.stop(); });

something like that?

Frankly, I just assume on Android that trying to switch between two apps that have the camera open will break both of them, so I've never tried it :-D
Can you share any specific details about the environment?  what version of Android, what other app you're going into?  just so i can try to repro similar things .. although i'd guess it probably repros with anything..  probably can just launch the regular Android camera app, use swipe gesture to switch between and see...

I'm running these tests on Android 12, and yes, the regular camera app reproduces the error.

FWIW, I just got an Android 13 device.  I tried to switch back and forth between having the stock Camera app on, and my webapp using Quagga2.  It was successfully switching back and forth, even with a second copy of my webapp open in a Chrome tab.
There was a visible pause sometimes, as Android was clearly switching the camera between apps, with the "camera in use" light flickering as it went.
My other Android device is Android 11, I'll have to try there, if I can get it to charge.  It took a pretty nasty fall and hasn't worked right since.


Use simplified method for converting types to/from json

The basic recommended method for converting to/from json is described here: https://json.nlohmann.me/features/arbitrary_types/#basic-usage
namespace ns {
    void to_json(json& j, const person& p) {
        j = json{ {"name", p.name}, {"address", p.address}, {"age", p.age} };
    }

    void from_json(const json& j, person& p) {
        j.at("name").get_to(p.name);
        j.at("address").get_to(p.address);
        j.at("age").get_to(p.age);
    }
} // namespace ns

Where ns is the type's namespace.
The current implementation in djinni is using the method recommended for third-party types such as e.g. in std where we cannot place our implementation into the type's namespace.
When there are errors, however, it is much harder to understand what's wrong -and I've recently run into problems trying to convert types which have been defined in multiple libraries.

Seems like an improvement to me, thank you!
Since I am not a user of json now, I have no code to use and check that, but for me it looks ok.


Update 2022-05-best-practices-on-NRIS-clusters.md

Link to documentation. Please check URL  format before merging

I will move this patch to GitLab which will then auto-merge/close this PR.


clientcmd-based kubeconfig handling for single-context functions

See individual commits for details.
This relates to https://github.com/submariner-io/enhancements/issues/79

This works locally, I’m looking into why it fails in CI.


Use custom styled tooltips everywhere

There is an awkward mix of native and custom styled tooltips currently. Some examples from Windows:

If window zoom is used (as above), then the mix is most apparent, since native tooltips don't zoom.
I think it would be best if all tooltips would use custom styling to make things consistent and more accessible.

There are also some users who hate the custom hover and think everything should be native. Unfortunately because of how differently they're used (a function on hover vs title attr which must be there on hover) it's difficult to have a setting to drive this.

I personally would prefer to switch all to custom tooltips, but I think also in the past we've talked about the perf hit that this could introduce.

Probably wouldn't impact performance as hovers can be evaluated lazily with the custom hover.

The problem with "native hovers" vs "custom hovers" lies simply in the ability to show things outside of the vscode window borders.
The only reason why people keep this option still turned on is because of that limitation.

There are also some users who hate the custom hover and think everything should be native.

Because the native parts can be shown outside of the vscode window when vscode is not maximized.

@keenbowl3009 I don't think that's the only reason, some people are just fundamentally opposed to the window looking different to the OS. Same reason people use the native title bar when the custom one is superior at this point.

@keenbowl3009 I don't think that's the only reason, some people are just fundamentally opposed to the window looking different to the OS. Same reason people use the native title bar when the custom one is superior at this point.

The custom title bar is not superior, because it cannot be shown outside the window borders.
The only reason why people use the custom title bar is because it's a default setting, and has been like that for a long time.
You know it, I know it, and everyone who has worked on vscode knows it.
Pretending otherwise imho is a cynical act.

Here's that issue I alluded to above where people want to disable the custom hovers: https://github.com/microsoft/vscode/issues/134203

I'm going to close this, I realized this is way less important than dealing with the frequency/occurence of tooltips (https://github.com/microsoft/vscode/issues/15667) which is something that trips me up way more than styling inconsistencies. If people feel strongly about styling, then please keep up/down-voting the first post in this issue and maybe at some point it can be addressed one way or another.

I hate these custom hovers and those tooltips. On top of that, they are all inconsistently placed, they are extremely distracting, and they don't work with the native titlebar on windows.
Each day vscode is getting more privacy invasive and unpleasant to use, making developers more and more unproductive and implementing addictive social networking UI patterns.


support http

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
Describe the solution you'd like
A clear and concise description of what you want to happen.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.

when will  openfeign  support http2 ？

Hello @BlackDragonKnight - there's already some work being done on it within gh-809, so I'm going to close this in favour of that issue.


Roadmap

Could you sketch some of the future directions for owl?
I think OCaml community might benefit from a single numerical library and would like to contribute.

Thanks Sergei, this is a good suggestion. I will sketch out a future plan and specify some TODOs in the following days.

OK, here is a list of crude ideas: https://github.com/ryanrhymes/owl/wiki/Future-Plan
The plan can be adjusted based on the feedback, so all comments are welcome.

hi, first of all it's great that you are addressing the lack of numerical computing infrastructure on ocaml!
the thing that i am missing most on the roadmap is something equivalent to the foundation of numpy: a multidimensional array that is a pleasure to manipulate, with slicing, (fancy) indexing, broadcasting, views, transpose, copy, whatnot. to my mind having that would be the start of tying the ocaml ecosystem together for numerics. matrices and matrix manipulation would then apply to two-dimensional (slices of) (sub)arrays.
are you planning on something like that? would the current design be compatible with such a type if someone builds something like that based on bigarray.genarray?

another thought: when i produce data with ocaml i often want to plot it using matplotlib (i think it's great that you are providing native plotting options but it's probably fair to say that that can't get as feature complete as mpl anytime soon) so it would be good to have easy to use export of matrices and/or vectors to a mpl-digestible format. i sometimes do memmapping and building a numpy array from the memmapped file but i find it quite cumbersome to handle.
or even to call out to python in some way (but that again seems like a big project)

another thought: when i produce data with ocaml i often want to plot it using matplotlib (i think it's great that you are providing native plotting options but it's probably fair to say that that can't get as feature complete as mpl anytime soon) so it would be good to have easy to use export of matrices and/or vectors to a mpl-digestible format. i sometimes do memmapping and building a numpy array from the memmapped file but i find it quite cumbersome to handle.
or even to call out to python in some way (but that again seems like a big project)

another thought: when i produce data with ocaml i often want to plot it using matplotlib (i think it's great that you are providing native plotting options but it's probably fair to say that that can't get as feature complete as mpl anytime soon) so it would be good to have easy to use export of matrices and/or vectors to a mpl-digestible format. i sometimes do memmapping and building a numpy array from the memmapped file but i find it quite cumbersome to handle.
or even to call out to python in some way (but that again seems like a big project)

another thought: when i produce data with ocaml i often want to plot it using matplotlib (i think it's great that you are providing native plotting options but it's probably fair to say that that can't get as feature complete as mpl anytime soon) so it would be good to have easy to use export of matrices and/or vectors to a mpl-digestible format. i sometimes do memmapping and building a numpy array from the memmapped file but i find it quite cumbersome to handle.
or even to call out to python in some way (but that again seems like a big project)

another thought: when i produce data with ocaml i often want to plot it using matplotlib (i think it's great that you are providing native plotting options but it's probably fair to say that that can't get as feature complete as mpl anytime soon) so it would be good to have easy to use export of matrices and/or vectors to a mpl-digestible format. i sometimes do memmapping and building a numpy array from the memmapped file but i find it quite cumbersome to handle.
or even to call out to python in some way (but that again seems like a big project)

another thought: when i produce data with ocaml i often want to plot it using matplotlib (i think it's great that you are providing native plotting options but it's probably fair to say that that can't get as feature complete as mpl anytime soon) so it would be good to have easy to use export of matrices and/or vectors to a mpl-digestible format. i sometimes do memmapping and building a numpy array from the memmapped file but i find it quite cumbersome to handle.
or even to call out to python in some way (but that again seems like a big project)

another thought: when i produce data with ocaml i often want to plot it using matplotlib (i think it's great that you are providing native plotting options but it's probably fair to say that that can't get as feature complete as mpl anytime soon) so it would be good to have easy to use export of matrices and/or vectors to a mpl-digestible format. i sometimes do memmapping and building a numpy array from the memmapped file but i find it quite cumbersome to handle.
or even to call out to python in some way (but that again seems like a big project)

N-dimensional array is a good suggestion and we definitely need that in owl. I will add it to the roadmap later. Thank you very much.
oml is a very cool library focusing more on stats (learning) if my understanding is correct, whereas Owl plans to target more general numerical operations (matrices, linear algebra, optimisation, and etc.). There is certain overlap at the moment but I guess they will diverge more at some point.

Matplotlib is already very mature but heavily integrated with Python. I think the best solution is to interface with Matplotlib with standard file format (as you suggested) which should be doable.

hi, about the nd-array related work in oml i found this: https://github.com/hammerlab/oml/issues/166 . i guess the direction of oml is more statistics but they are forced to provide the array infrastructure to do that. i think there also was some talk about splitting off the actual statistics from the linear algebra in oml.

Cool, thanks. I read the thread you referred to and it seems we share a lot of common concerns. At this moment, I probably only focus on real and complex numbers.
Regarding the plotting, you can currently save matrices to csv files then import in numpy (although not very efficient comparing to marshal). I plan to use HDF5 in the future. But please do let me know if there are better (e.g., more efficient) solutions.


remove io.dapr.client.domain.Response from DaprClient APIs

Description
Removed io.dapr.client.domain.Response from all APIs.
Removed reactor.util.context.Context  from "request" classes.
Use reactor.util.context.Context to "carry scoped-values across API boundaries and between threads".
Examples
from
<T> Mono<Response<T>> invokeMethod(InvokeMethodRequest invokeMethodRequest, TypeRef<T> type);
<T> Mono<Response<State<T>>> getState(GetStateRequest request, TypeRef<T> type)

to
<T> Mono<T> invokeMethod(InvokeMethodRequest invokeMethodRequest, TypeRef<T> type);
<T> Mono<State<T>> getState(GetStateRequest request, TypeRef<T> type);

Issue reference
We strive to have all PR being opened based on an issue, where the problem or feature have been discussed prior to implementation.
Please reference the issue this PR will close: #478
Checklist
Please make sure you've completed the relevant tasks for this PR, out of the following list:

[x] Code compiles correctly
[x] Created/updated tests
[x] Extended the documentation

@xiazuojie Thanks for the PR. We are almost there. This PR, like others you did, adds a ton of value. Please, consider joining us in Discord. We have a channel for the Java SDK.


No word wrap in review text

Review text doesn't wrap words correctly.
OB v1.1.5

I confirm that this is an issue on OSX and that this is very important. Consider the difference in meaning between these two:
determining

and
deter
mining


Dataset that comprises of chemical elements (tabular data) AND spectral data

Hello,
I have a new machine learning technique for effective data-fusion of chemical measurements (FTIR, UV, ICP, ED, etc..).
Could you recommend a dataset for benchmarking?
Best,
Tommaso

Hi Tommaso,
New algorithms are fun :D.
Unfortunately, there aren't any good datasets for datafusion in this repository (this project has kind of died due to my bandwidth).
Without knowing more about what your algorithm is doing, I would check here for data fusion datasets: http://www.models.life.ku.dk/datasets
Please feel free to message me on LinkedIn if you would like to discuss further :). I don't do Chemometrics professionally anymore, but it is a fun hobby,
Casey


remove dirty experiments, simplify others

Types of changes

[ ] Docs change / refactoring / dependency upgrade
[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Motivation and Context / Related issue

How Has This Been Tested (if it applies)

Checklist

[x] The documentation is up-to-date with the changes I made.
[x] I have read the CONTRIBUTING document and completed the CLA (see CONTRIBUTING).
[x] All tests passed, and additional code has been covered with new tests.

So, there is still some reproducibility problem I did not expect, I'll have to check that in more details tomorrow


fix(actions): call automerge service on successful commit state

The actions runner doesn't call automerge on successful commit states, so automerge never happens from actions.
It's working fine from Jenkins, because the commit status api is calling the automerge service.

fixes #24445

duplicated with #30223 and #30225
https://github.com/go-gitea/gitea/pull/30225/files#diff-4ef2de9b7e092cb4212405afc36fd3e9f799a2dae974975cb158d58fa74d91b7R126

sure. this is a much simpler and smaller fix 🙃

sure. this is a much simpler and smaller fix 🙃

I don't think so. #30225 is simpler and reused the exist functions with no duplicated code.


Use legacy build and test golang tasks

Changes
Use golang-build-legacy and golang-test-legacy.
Theres are identical copies of the existing ones, designed to allow
pipeline, dashboard and triggers to switch to them.
This step uncouples the various projects so that we way then:

switch pipeline, dashboard and triggers one at the time to a publish
task and release pipeline that use workspaces, no resources and thus
the catalog version of golang-build and golang-test
once the three projects are migrated, the legacy tasks will be
removed

See https://github.com/tektoncd/plumbing/pull/734
Signed-off-by: Andrea Frittoli<EMAIL_ADDRESS>/kind misc
Submitter Checklist
These are the criteria that every PR should meet, please check them off as you
review them:

[ ] Includes tests (if functionality changed/added)
[ ] Includes docs (if user facing)
[x] Commit messages follow commit message best practices
[x] Release notes block has been filled in or deleted (only if no user facing changes)

See the contribution guide for more details.
Double check this list of stuff that's easy to miss:

If you are adding a new binary/image to the cmd dir, please update
the release Task to build and release this image.

Reviewer Notes
If API changes are included, additive changes must be approved by at least two OWNERS and backwards incompatible changes must be approved by more than 50% of the OWNERS, and they must first be added in a backwards compatible way.
Release Notes
NONE

this is interesting, thanks @afrittoli
/lgtm
You don't have to answer this, but, why migration and how are we handling this migration process?

this is interesting, thanks @afrittoli
/lgtm
You don't have to answer this, but, why migration and how are we handling this migration process?

The current release process uses pipeline resources, and a version of golang tasks hosted in the plumbing repo. We should dog food our latest and greatest features like workspaces and results instead, and use tasks from the catalog where possible. The tasks from the catalog also only work with workspaces.

That's great, didn't realize we are not using tasks from catalog on the dog fooding cluster. I recall now creating git resources while creating a release 🤪.  Thanks! 👍


Correct presentation server license (apache 2.0 ?)

Picked up in a scan:
Priority: Medium
Some package.json files incorrectly list the project's license as "ISC". These should be corrected to "Apache-2.0"
1 file (hide files)
egeria/open-metadata-implementation/user-interfaces/presentation-server/nodejs/package.json

i think this is done now?

yes


Way Cooler can't find libwayland-server.so.0

On Ubuntu 17.04, for whatever reason, libwayland-server.so.0 and libwayland-server.so.0.1.0 exist, but libwayland-server.so does not exist, and libloading (the library that ultimately searches for the library) can not find libwayland-server.so.0 from the given library name libwayland-server.so.
I was able to fix this issue on my end by making libwayland-server.so symlinked to libwayland-server.so.0 however it might be better to look for libwayland-server.so.0 instead.

I should mention the issue lives within wayland_sys, and a similar issue happens for sample client applications when looking for libwayland-client.so

I suggest reporting this bug to https://github.com/vberger/wayland-rs, as it's probably a bug in how they find what library to link to with their build script (if you provide a log of the compilation failing in verbose mode (--verbose) then I might be able to learn when the linker is trying to find the library).

This is not a compilation error, but a runtime issue. You see wayland-sys has a feature ("dlopen", which you seem to have enabled) where it will programmatically look for and load libwayland-server.so. The error you get is a way-cooler panicking when you run it on not finding libwayland-server.so and giving a nice backtrace.
Relevant line from wayland-sys loading the library here: https://github.com/Smithay/wayland-rs/blob/8bf61dd6d5fefc43837ae17ca3c74e64e23db40f/wayland-sys/src/server.rs#L138
However I have reported the issue to wayland-rs and am working on a pull request to handle this case as well

I'm still getting this issue on ubuntu 17.10
thread 'main' panicked at 'Library libwayland-server.so could not be loaded.', /checkout/src/libcore/option.rs:823

Is this the same bug or a something else?

Yes, since this crate hasn't updated its wayland-sys to the version with the fix. Until that dependency gets update, try my solution at the top and see if it starts working. (You'll probably have to do the same for libwayland-client.so to get the built in apps working). They should be somewhere like /usr/lib/aarch64-linux-gnu/libwayland-client.so.0

@mark-blum oh I never updated the cargo lock? I should probably fix that then

Are there any breaking changes in the newer wayland-sys versions?
I'm guessing no if it follows semantic vesioning
I could just make a quick PR to bump it to the latest version

As long as it wasn't the minor version (since it's technically < 1.0, wayland-sys can have breaking changes on minor version bumps but not patch bumps (e.g the last number).
If so, open a PR and I'll merge it. We don't use much of it, so the amount of breakage that can happen is minor (and easy to spot)

wayland-sys 9.10 might just be enough at it was released 6 days after @mark-blum's PR was merged into wayland-rs
I will try once I resolve my issues building/running this #426

Putting this in 0.7 since it's an easy fix (updating the version number of wayland-sys)


Update codeowners for older Event Hubs and Service Bus packages

Adding

@shankarsama and @yvgopal as code owners for the package under the folder microsoft-azure-servicebus
@sjkwak and @JamesBirdsall as code owners for the packages under the folders microsoft-azure-eventhubs*

This will result in 2 things

All PRs to these package will add the above mentioned owners as code reviewers automatically
Test failure notifications for these packages will go to the emails of the above mentioned owners. This is currently blocked by https://github.com/Azure/azure-sdk-for-java/issues/23826

@weshaggard I don't see multiple tests.yml file here like there are in the .NET repo. With the changes in this PR, can we expect the test failures notifications for the older packages to go to the owners updated in this PR?

/check-enforcer override


Add a callback with just created element

To keep it short, I am looking for a way to do this:
https://svelte.dev/docs/element-directives#bind-this
where today you need to create the element, assign it to a variable and then return the variable again.
What I would like to write is something along the lines of:
const el = state(null)

return div(() => a({self: el}, /* some text */), ...)

but today I need to write:
const el = state(null)

return div(() => {
    const it = a({self: el}, /* some text */)
    el.val = it
    return el.val
}, ...)

similarly, I find myself sometimes needing to access an element from a callback, and the dance to do this less nice as well.
I hope this can be somehow considered, thanks!

For your specific example, I think you can simply have:
return div(() => el.val = a({self: el}, /* some text */),
  ...
)

That said, it's advised to avoid setting the value of the state to a DOM element, see https://vanjs.org/advanced#why-not-dom-valued-states.

My hopefully legitimate use case is scrolling the container from within a callback that is define within the body of the container I want to scroll, but your suggestion actually fits nicely I think; I am not too literate in all the javascript tricks! thanks :)


Permissions and UI improvements.

If user has no permissions, app title does not describe in admin panel.
for example I don't have a permission for Roles, Billing, Pharmacy. That's why only title has exist.

https://github.com/unfoldadmin/django-unfold/pull/253
plz merge it, it has already fixed.

Fixed in #258


Create 0000-01-02-Erin-Vega.md

Created a branch, created a file, made a commit, and opened a pull request.


gulp-protractor autostarstop does not update chromedriver

It appears that gulp-protractor is trying to update webdriver every time it starts it up using the autoStartStopServer parameter, which via gulp-stream runs the webdriver_update() function, which calls the webdriver-manager binary with  args = ["update", "--standalone"].
However, it does not seem to actually update the install's copy of Chromedriver at all, which is still stuck at 2.20 even though webdriver-manager is capable of installing at least 2.22.

I guess thats why all specs fail on travis

The bug was in the dependency webdriver-manager https://github.com/angular/protractor/issues/3644
The sticking issue was that fixing webdriver-manager wasn't good enough until gulp-protractor was using the new version of it. It wasn't obvious that gulp-protractor downloads and uses it's own tucked-away instance of webdriver and chromedriver, so it wasn't enough to just do "npm update webdriver-manager" since that would not update the instance of chromedriver used by gulp-protractor.
(Any reason why GP installs its own copy of webdriver instead of using a more global one?)

@keithdtyler could you please confirm whether this issue is still reproducible after we updated the protractor version to ^5?

GP is now having latest version of protractor and able to update drivers as well. It also works fine with directConnect: true
I am closing this issue as of now


android.permission.RECORD_AUDIO

Hi,  Is it possible to exclude android.permission.RECORD_AUDIO to be added on build if not using voice search?  Thanks.

sure. I am doing next version right now, so I will remove it.

Fixed in 3.3.


Treat jupyter as an editor (decouple jupyter and user environments)

I think jupyter should be treated as an editor, decoupled from user code and environment. As a start, it could be installed in its own environment, out of the environment where the user code is run. (This is true in general: desktop users are better off with a system-installed jupyter and kernelspecs pointing to environments.)
The main issue with the current setup is to run ancient code with a modern jupyter, as dependencies might conflict. That is especially true when their versions are specified by the user (in requirements.txt, environment.yml, etc.) for reproducibility's sake. I have in mind scientific experiments which, for reproducibility, shouldn't be updated (unlike living projects).
There is however a deeper issue, as ipykernel itself has many dependencies to be installed in the user environment. Longer term, it would be good to decouple ipykernel and jupyter more (to execute code with an old ipykernel specified by user environment with a modern jupyter editor). Even better would be to push the interface down to the notebook file to entirely decouple the editor from the user environment. After all, if jupyter is an editor, running notebooks should not require to install anything in the user environment.
This is potentially a far-fetched and long-term issue that I have little idea how to technically realize, if even possible. Please let me know your thoughts and if it has been discussed (elsewhere) already. As always, thanks for your amazing work!

We need to do a bit of digging but there should be a few issues already around splitting the environment of the kernel and the environment of the notebook server. This is what we do for Python 2 already. The kernel runs in a environment with Python 2, but the notebook server (and other r2d infrastructure) runs on Python 3.
We have talked about adopting that approach for Python in general. One immediate hurdle is that you now need two files. One to specify dependencies for your kernel and one for the notebook server (for example to change the Jupyter Lab version or install a extension). How to solve this nicely is a problem for which we need a few attempts (I think).
--
As a general point we will continue to ship Jupyter as the default UI with repo2docker. We need some form of default UI that can be accessed over the web. Jupyter seems like a good fit for that. We also have a bit of infrastructure already to proxy other UIs. There are even examples like https://github.com/danlester/binderhub-voila-direct and/or https://github.com/danlester/binderhub-voila-native that run without installing Jupyter (well, they install voila which is Jupyter but ... they show how you could run something else :) ). So I think repo2docker will continue with shipping Jupyter as the UI.

I didn't know it already worked this way for python 2. Great! It shouldn't be too much of a hurdle to do it for python3 then. What's the situation on non-python kernels? All the better if it unifies operations across kernels.
The notebook server environment could be specified in a .binder/requirements_ui.txt. It also makes sense from a reproducibility point-of-view, as you might want to update your UI (or use r2d's default) while preserving the experiment code and environment.
Completely agree with shipping Jupyter as the default UI. My point in general is to restrain from "polluting" (or altering) the user code environment.

Some thoughts about a potential shorter-term fix. It's possible to pin the base environment (specified in repo2docker/buildpacks/conda/environment.yml) by pinning those packages (and their dependencies) in the repo's environment.yml or requirements.txt. But what if some packages shouldn't be installed (like jupyterlab on ancient environments)? Or if newer versions of repo2docker add packages there?
While ipykernel needs to alter the user environment through dependencies, separating the user and editor environments will only solve part of the issue anyway.

For reference, I ended up achieving the desired independence by creating a venv from postBuild, requiring the python version in runtime.txt, and defering to the default conda env for the jupyter UI.
.binder/postBuild:
python3.6 -m venv ./env
./env/bin/pip install -r requirements.txt
# Shadow the default kernelspec for jupyter to use our environment by default.
./env/bin/python -m ipykernel install --user

The problem here is that the old computational environment (that I want to preserve for reproducibility) is not compatible with any jupyterlab (required by r2d's default conda env). I like this solution because my users can run the frozen env from the cloud in the latest jupyterlab! Happy to make a binder-example if you think that's a good (even if temporary) solution.

Cross-referencing related issues:

Default urlpath/filepath configurable from a file in repo? #369
Fresh Python kernels for reliable builds. #741

Another use-case: Disabling the mybinder.org jitsi extension https://github.com/jupyterhub/mybinder.org-deploy/issues/1562#issuecomment-700432663

This issue has been mentioned on Jupyter Community Forum. There might be relevant details there:
https://discourse.jupyter.org/t/previous-built-binder-repo-suddenly-with-404-error/13047/5


Access Data from the LAADS Archive

Thank you for this great library! I would like to request the LAADS archive to be added, as I have not been able to add this myself. I saw from issue #3 that this is possible and has been implemented for another archive, however my attempts haven't been fruitful.
Is your feature request related to a problem? Please describe.
I am trying to access data in the MYDATML2 and MODATML2 collections in the LAADS archive, also available from CMR. This is currently not possible with the most recent version of modis_tools. I have attempted to add the LAADS archive in the same way that the NSIDC DAAC archive was added (downloading from the NSIDC DAAC archive is working for me):

In .constants.urls.py I have added "ladsweb.modaps.eosdis.nasa.gov", named LAADS_RESOURCE
I have added this (URLs.LAADS_RESOURCE.value) to .granule_handler.py in the get_url_from_granule function, under URLs.NSIDC_RESOURCE.value

The url(s) generated from this is correct. When printed, I can click them and download the file from the website. An example is shown below with the following inputs:
nigeria_bbox = [2.1448863675, 4.002583177, 15.289420717, 14.275061098]
nigeria_granules_terra = granule_client_terra.query(start_date="2019-02-02", end_date="2019-12-31", bounding_box=nigeria_bbox)
GranuleHandler.download_from_granules(nigeria_granules_terra, session, threads=1, path=os.getcwd()+"\\MODIS_data_nigeria\\")

https://ladsweb.modaps.eosdis.nasa.gov/archive/allData/61/MODATML2/2019/129/MODATML2.A2019129.2050.061.2019130073927.hdf

However a missingSchema (invalid URL) error is raised:
Traceback (most recent call last):
  File "<input>", line 1, in <module>
  File "C:\ProgramData\App-V\712CFDF0-0616-4F1D-91E1-998E20D5E558\1473798F-4223-4606-9549-B2B59538A13F\Root\VFS\ProgramFilesX64\JetBrains\PyCharm Community Edition 2021.2\plugins\python-ce\helpers\pydev\_pydev_bundle\pydev_umd.py", line 198, in runfile
    pydev_imports.execfile(filename, global_vars, local_vars)  # execute the script
  File "C:\ProgramData\App-V\712CFDF0-0616-4F1D-91E1-998E20D5E558\1473798F-4223-4606-9549-B2B59538A13F\Root\VFS\ProgramFilesX64\JetBrains\PyCharm Community Edition 2021.2\plugins\python-ce\helpers\pydev\_pydev_imps\_pydev_execfile.py", line 18, in execfile
    exec(compile(contents+"\n", file, 'exec'), glob, loc)
  File "C:/Users/beersehv/PycharmProjects/SpaceCapabilitiesConda/MODIS_data_retriever2.py", line 41, in <module>
    GranuleHandler.download_from_granules(nigeria_granules_terra, session, threads=1, path=os.getcwd()+"\\MODIS_data_nigeria\\")
  File "C:\Users\beersehv\Anaconda3\envs\SpaceCapabilitiesConda\lib\site-packages\modis_tools\granule_handler.py", line 54, in download_from_granules
    return cls.download_from_urls(
  File "C:\Users\beersehv\Anaconda3\envs\SpaceCapabilitiesConda\lib\site-packages\modis_tools\granule_handler.py", line 137, in download_from_urls
    req = cls._get(
  File "C:\Users\beersehv\Anaconda3\envs\SpaceCapabilitiesConda\lib\site-packages\modis_tools\granule_handler.py", line 173, in _get
    req = session.get(location, stream=stream)
  File "C:\Users\beersehv\Anaconda3\envs\SpaceCapabilitiesConda\lib\site-packages\requests\sessions.py", line 600, in get
    return self.request("GET", url, **kwargs)
  File "C:\Users\beersehv\Anaconda3\envs\SpaceCapabilitiesConda\lib\site-packages\requests\sessions.py", line 573, in request
    prep = self.prepare_request(req)
  File "C:\Users\beersehv\Anaconda3\envs\SpaceCapabilitiesConda\lib\site-packages\requests\sessions.py", line 484, in prepare_request
    p.prepare(
  File "C:\Users\beersehv\Anaconda3\envs\SpaceCapabilitiesConda\lib\site-packages\requests\models.py", line 368, in prepare
    self.prepare_url(url, params)
  File "C:\Users\beersehv\Anaconda3\envs\SpaceCapabilitiesConda\lib\site-packages\requests\models.py", line 439, in prepare_url
    raise MissingSchema(
requests.exceptions.MissingSchema: Invalid URL '/oauth/login?redirect=%2Farchive%2FallData%2F61%2FMODATML2%2F2019%2F129%2FMODATML2.A2019129.2050.061.2019130073927.hdf': No scheme supplied. Perhaps you meant http:///oauth/login?redirect=%2Farchive%2FallData%2F61%2FMODATML2%2F2019%2F129%2FMODATML2.A2019129.2050.061.2019130073927.hdf?

When I prefix the LAADS_RESOURCE with "https://", an exception is raised that no matching link is found.
  File "<input>", line 1, in <module>
  File "C:\ProgramData\App-V\712CFDF0-0616-4F1D-91E1-998E20D5E558\1473798F-4223-4606-9549-B2B59538A13F\Root\VFS\ProgramFilesX64\JetBrains\PyCharm Community Edition 2021.2\plugins\python-ce\helpers\pydev\_pydev_bundle\pydev_umd.py", line 198, in runfile
    pydev_imports.execfile(filename, global_vars, local_vars)  # execute the script
  File "C:\ProgramData\App-V\712CFDF0-0616-4F1D-91E1-998E20D5E558\1473798F-4223-4606-9549-B2B59538A13F\Root\VFS\ProgramFilesX64\JetBrains\PyCharm Community Edition 2021.2\plugins\python-ce\helpers\pydev\_pydev_imps\_pydev_execfile.py", line 18, in execfile
    exec(compile(contents+"\n", file, 'exec'), glob, loc)
  File "C:/Users/beersehv/PycharmProjects/SpaceCapabilitiesConda/MODIS_data_retriever2.py", line 41, in <module>
    GranuleHandler.download_from_granules(nigeria_granules_terra, session, threads=1, path=os.getcwd()+"\\MODIS_data_nigeria\\")
  File "C:\Users\beersehv\Anaconda3\envs\SpaceCapabilitiesConda\lib\site-packages\modis_tools\granule_handler.py", line 52, in download_from_granules
    urls = [cls.get_url_from_granule(x, "hdf") for x in granules]
  File "C:\Users\beersehv\Anaconda3\envs\SpaceCapabilitiesConda\lib\site-packages\modis_tools\granule_handler.py", line 52, in <listcomp>
    urls = [cls.get_url_from_granule(x, "hdf") for x in granules]
  File "C:\Users\beersehv\Anaconda3\envs\SpaceCapabilitiesConda\lib\site-packages\modis_tools\granule_handler.py", line 103, in get_url_from_granule
    raise Exception("No matching link found")
Exception: No matching link found

Describe the solution you'd like
If this could be implemented I would be very grateful! The library is excellent and I feel this added feature would be a small addition to implement!

I found a solution to my issue! The link that is generated by the _get_location function in .granule_handler.py leads to a redirect link, which was blocked. I have now amended this function to the function below. Note that the database_LAADS boolean is added to the download_from_granules function, and parsed by each subsequent function.
    @staticmethod
    def _get_location(url: HttpUrl, session: Session, database_LAADS: bool) -> str:
        """Make initial request to fetch file location from header."""
        split_result = urlsplit(url)
        https_url = split_result._replace(scheme="https").geturl()
        if database_LAADS:
            location_resp = session.get(https_url, allow_redirects=True)
            location = location_resp.url
        else:
            location_resp = session.get(https_url, allow_redirects=False)
            location = location_resp.headers.get("Location")
            if not location:
                raise FileNotFoundError("No file location found")
        return location

The other two amendments stated in my initial issue are 1) adding the LAADS resource url in resources.py:
""" URLs for the API """
from enum import Enum

class URLs(Enum):
    """URLs"""

    API: str = "cmr.earthdata.nasa.gov"
    URS: str = "urs.earthdata.nasa.gov"
    RESOURCE: str = "e4ftl01.cr.usgs.gov"
    NSIDC_RESOURCE: str = "n5eil01u.ecs.nsidc.org"
    LAADS_RESOURCE: str = "ladsweb.modaps.eosdis.nasa.gov"
    EARTHDATA: str = ".earthdata.nasa.gov"

And 2) adding it to the get_url_from_granule function in granule_handler.py:
    @staticmethod
    def get_url_from_granule(granule: Granule, ext: ParamType = "hdf") -> HttpUrl:
        """Return link for file extension from Earthdata resource."""
        for link in granule.links:
            if (
                link.href.host
                in [
                    URLs.RESOURCE.value,
                    URLs.NSIDC_RESOURCE.value,
                    URLs.LAADS_RESOURCE.value,

            ]
                and link.href.path.endswith(ext)
            ):
                return link.href
        raise Exception("No matching link found")

As I suspected it was an easy addition for the LAADS archive to be accessible with the modis_tools package; thank you again for the library!

Hi @noorvanbeers sorry we weren't able to get to your thread here until you found a resolution. Do you anticipate that the solution you've outlined requires a change to the modis-tools codebase or it's documentation?

Hi @jamie-sgro, I found this issue and I'm just commenting to say that I also wanted to use modis-tools to access data from the LAADS Archive, and ended up using pretty much the same solution as @noorvanbeers (just checking if url.host == "ladsweb.modaps.eosdis.nasa.gov" instead of adding a new bool argument). I think it would be great if this simple fix could be added to the codebase.

Hi @polpel, thanks for documenting what worked for you here. If you'd like, I'd absolutely invite you to create a small PR with those changes in mind and I'd have the team review it in short order. Otherwise I've made a task to have our team revisit your note here which will like likely result in new PR within the next week or so


Merge CodedMonth and MonthReportedtoMSHP columns

I think this is another column renaming from older csv's to newer (similar to DateOccur and DateOccured).
Confirm and if so, merge the two columns.

This turned out to be more complicated than anticipated.
Many columns were renamed at some point in history, so I had to merge the old/new columns and then clean them up.  It should all be fixed now though.


Infinite loop in AdjustHue

System information

Have I written custom code (as opposed to using a stock example script provided in TensorFlow): Yes
OS Platform and Distribution (e.g., Linux Ubuntu 16.04): Ubuntu 16.04 / Windows 10
Mobile device (e.g. iPhone 8, Pixel 2, Samsung Galaxy) if the issue happens on mobile device: N/A
TensorFlow installed from (source or binary): source / binary
TensorFlow version (use command below): 2.4.1
Python version: python 3.8
Bazel version (if compiling from source): 3.7.2
GCC/Compiler version (if compiling from source): clang 12
CUDA/cuDNN version: N/A
GPU model and memory: N/A

An infinite loop bug in adjust_hue_op.cc when computing AdjustHue op. It can be triggered easily when argument delta sets as a big floating point value.
Standalone code to reproduce the issue
https://colab.research.google.com/drive/1-j_9NiRewoC6DEUk8qS2ceajJ2qbrA7K?usp=sharing
Other info / logs
Code: https://github.com/tensorflow/tensorflow/blob/master/tensorflow/core/kernels/image/adjust_hue_op.cc#L232-L238
h may be inf or -inf. Infinite loop in separate while loop.
-inf:
tensorflow::AdjustHueOp<Eigen::ThreadPoolDevice, float>::DoCompute(tensorflow::OpKernelContext*, tensorflow::AdjustHueOpBase::ComputeOptions const&)::{lambda(long, long)#1}::operator()(long, long) const (this=<optimized out>,
    start_channel=<optimized out>, end_channel=6) at tensorflow/core/kernels/image/adjust_hue_op.cc:232
232              h += delta_h * kChannelRange;
(gdb) p h
$6 = <optimized out>
(gdb) n
233              while (h < 0) {
(gdb) p h
$7 = -inf
(gdb) n
234                h += kChannelRange;
(gdb)
233              while (h < 0) {
(gdb) p h
$8 = -inf
(gdb)

inf:
(gdb) n
233              while (h < 0) {
(gdb) p h
$5 = inf
(gdb)

@mihaimaruseac Can you help to triage this bug to the right team? Thank you!

I ran the code on tf 2.4 gpu and it did not get into an infinite loop, please find the gist here.

delta must be in the range [-1, 1]: tf.image.adjust_hue API doc
The infinite loop is happening because the huge delta used above is out of range.
I'll retry adding the input check (https://github.com/tensorflow/tensorflow/issues/47663).

Was able to replicate the issue in TF v2.5,please find the gist here..Thanks !


Segmentation fault in create_mb_refstate script

Is your issue a feature request? If so, please raise it as an enhancement
Environment

OS / version: N/A
Processor architecture: N/A
TPM Manufacturer: N/A
Keylime version: current master (7033891)

Description
Segmentation fault in create_mb_refstate depending on the input provided.
Expected behavior vs. actual behavior
The script should run normally instead of core dump with segmentation fault
Steps to reproduce problem

Change directory to scripts
Download the mb_log_b64.txt linked below
Decode with base64 -d mb_log_b64.txt > mb_log.bin
Run ./create_mb_refstate mb_log.bin mb_refstate.json

Relevant logs

mb_log_b64.txt

The input that causes the segmentation fault

mb_parsed.txt

The output parsed by tpm2_eventlog --eventlog_version=2

Attach any relevant log files that can help to debug your issue.

This here seems to be a solution but I don't know whether this is the correct way of handling it? @maugustosilva , @galmasi ?
diff --git a/keylime/tpm_bootlog_enrich.py b/keylime/tpm_bootlog_enrich.py
index ef8e9f7..a817d6e 100644
--- a/keylime/tpm_bootlog_enrich.py
+++ b/keylime/tpm_bootlog_enrich.py
@@ -47,6 +47,8 @@ efivarlib_functions = CDLL(config.LIBEFIVAR)

 def getDevicePath(b):
+    if b == b'\x00' * 8:
+        return ""
     ret = efivarlib_functions.efidp_format_device_path(0, 0, b, len(b))
     if ret < 0:
         raise Exception(f"getDevicePath: efidp_format_device_path({b}) returned {ret}")


Updated SQL statment to pull proper field

Type of PR

[ ] Documentation changes
[x] Code changes
[ ] Test changes
[ ] CI-CD changes
[ ] GitHub Template changes

Purpose of PR
Update genre api to expected output
Review notes
Issues Closed or Referenced

Closes #63  (this will automatically close the issue when the PR closes)
References # (this references the issue but does not close with PR)

Updated title for accuracy


Beautify setting page

@aidan-gibson what are your thoughts on beautifying the settings page?

One thing of note is, there's an entire subgenre of plugins that are just "open this filetype in obsidian" ie https://github.com/danieltomasz/qmd-as-md-obsidian
All of those can be consolidated into our plugin! But our way of adding extensions is clunky imo.

OOF it looks like at some point with the updates, the "Open Inside Obsdian" feature was broken. qmd and html no longer working for me. Sorry I should've been testing more

Also, changing the size of the textboxes in both manual lists is an absolute disaster. This bug probably always existed and I just didn't notice until now.

Hi aidan,
Thanks for the infos. Just tired changing the textbox sizes which was super funny 😆.
I don't quite understand the "open inside obsidian feature" what is the point, don't these other plugins take care of that anyways?

Also it would be cool if the list textboxes would only show up when the toggle is activated (not sure if it's possible but would be neat!)


Update autoscaling annotations

What type of PR is this?
/kind cleanup

What this PR does / why we need it:
To be compatible with the latest version of the Cluster Autoscaler
Which issue(s) this PR fixes:

Fixes #
Special notes for your reviewer:
Does this PR introduce a user-facing change?

NONE

/assign @yaroslava-serdiuk

/retitle Support for new ProvisioningRequest annotations

/lgtm


feat: Integrate .component into graph

Angular 1.5 introduced the concept of .component, and this tool doesn't pick up on them.  I've added them in here as controllers, since technically that's what we're checking against the graph.

hi @SomeKittens apologies this didn't make in earlier, I forgot about this project


If the platform is darwin put the title bar buttons on the left

Fixes https://github.com/gmarull/qtmodern/issues/36

Thanks @Jerakin . Would you like to become a maintainer of this repository :-) ?

That would be awesome, could you also take the time and add me as a maintainer at https://pypi.org/project/qtmodern/ (username: jerakin) ? So I can do pypi releases too :)

@Jerakin Done.
You may also be interested in a better approach regarding custom titlebars. I have gathered all necessary bits here https://gist.github.com/gmarull/75a7f67bd1944bc59141f31a46c80591 (haven't tested the gist, but should work). The advantage is that all native functionality is preserved (e.g. AeroSnap on Windows). The end result is something like this:
Windows:

macOS:

Very interesting, as this is not using Qt.FramelessWindowHint I think it will also make the minimize button work.

I know this has nothing to do with the topic, but can I find the code for that vertical sidebar anywhere? Looks really good @gmarull


Add support for compiling and running NIO on Raspberry Pi 32-bit

Port SwiftNIO to 32-bit platforms
Motivation:
Pretty much every developer in the world want to run MicroExpress applications on Raspberry Pi K8s clusters. The unfortunate precondition to that is getting NIO compiled for RaspberryPi. This PR makes it work.

Thanks go to @chnmrc for providing a Swift 4.1 Raspi build, also available via a DockerHub: helje5/rpi-swift.

Modifications:
Two main changes:

Timestamps used to be stored as Int, this needs to be an explicit Int64 to provide the necessary value range for ns values
Some hardcoded pointers like 0xdeafbeef got mapped to Int values, but Int32 can't represent 0xdeadbeef. Needs to be UInt32 to capture the full deadness.

Result:
NIO compiles on Raspi 3, 32-bit Ubuntu. I tried the Echo Server, which seems to work, and also the HTTP sample Server, which also seems to work.
P.S.: This should also allow you to run NIO on AppleWatch, which is 32-bit too.

I have...mixed feelings about this.
For NIO's major server-side use-cases 32-bit architectures are not compelling to target. While the convenience of running on a Raspberry Pi is nice, it's certainly not a feature I feel compelled to support.
Supporting it would be easier if it we had CI for 32-bit environments, but currently we don't, so the risk of regression here is high. I think we probably need to decide as a team whether we care about supporting 32-bit environments at all: if we do, then we can merge this for 2.0, and if we don't, we can skip it.

I think you should treat this similar to Swift itself - no official support at all, but accept community PRs which make it work.

BTW: Why do you think this needs a major version bump?

@helje5 / @Lukasa we could just make a hack and only make it Int64 for 32 bit platforms. I know that's not how it's meant to be used but I'd be okay with that.

@weissi Any reason not to just make it an Int64 but provide deprecated compat shims to the old type, so that it can still be accessed and set via Int?

TBH this kind of code doesn't feel quite right in the first place when you have your own TimeAmount abstraction:
Int(DispatchTime.now().uptimeNanoseconds) + amount.nanoseconds

This code probably belongs into a new Timestamp type, and/or the TimeAmount.

Mqtt broker on top of this
https://www.netiot.com/netpi/industrial-raspberry-pi-3/

Supporting it would be easier if it we had CI for 32-bit environments, but currently we don't, so the risk of regression here is high. I think we probably need to decide as a team whether we care about supporting 32-bit environments at all.

As Swift is supporting 32-bit environments I think it is important that swift-nio also supports 32-bit.
We now have CI for Armv7 32-bit environments.
https://swift.org/blog/swift-community-hosted-ci/

I will do the #if fix for the 1.x line.  In a different PR we should pull out the time calculations out of the main code base into TimeAmount, but let’s just go with the #if arm for this PR

@weissi @Lukasa PTAL, I added a typealias which should make it SemVer minor. OK with that?
BTW: Small hint: You don't need an actual Raspi to test a Raspi build! If you have Docker4Mac, it has QEmu included and can run simple Raspi images. To build NIO from within a NIO checkout:
docker run --rm \
		-v $(pwd):/src \
		-v $(pwd)/.build-linux-rpi-4.1.0:/src/.build \
		helje5/rpi-swift-dev:4.1.0 \
		bash -c "cd /src && swift build -c release"

Takes about 2.5 mins on my MacPro.

@swift-nio-bot test this please


Fix private release image repository issues

Before this patch, several components installed from the release image were
being used by pods whose service accounts did not include the associated pull
secret from the hosted cluster. So when the release image requires
authentication, these components would fail to launch with image pull errors.
This commit adds pull secret references to service accounts used for working
with the release image so that a private image can be specified.

/test e2e-aws


Screen flickering the first time I open Spyder (MacOS)

After doing reset, the first time I open Spyder the application flickers. It seems like it loads the layout twice. (It might be an OS problem)

Hi @juanis2112 this happens to you systematically after a restart? Maybe is related with the application of the default layout after the mainwindow is visible which resizes the mainwindow and then in MacOS causes the 'flickering' (I'm guessing you mean the resize when the mainwindow is loading but I'm unsure)


static image is not showing

My static image is not howing .
regards
gmchaturvedi

Do you have more details? Are you talking in dev mode or in production? Are you putting the image file in the public folder and linking to it from there?

yes i am working in decv mode  and putting my image files in the same folder of components.
reagrds
gmchaturvedi

To reference raw assets using only a URL, you must put them in the public folder. Otherwise, you have to use a webpack loader.


Document use of pachyderm config file

split out from #3030
My understanding is that we support using ~/pachyderm/config.json instead of $ADDRESS to set which pach cluster to connect to. Not sure what else this file is used for, but it should be documented
Related: #2138 and #2606

I think the need for setting address in the pach config file is somewhat diminished if we can implement autodiscovery of the address in a wider variety of contexts: #3089

note that this will change when config/context management lands: #3774

From slack convo:

To actually set the address in the config, you'll want to add it to the v1 field of the config of the form:
  "user_id": "xxxxxx-xxxx-xxxx-xxxx",
  "v1": {
    "pachd_address": "<IP_ADDRESS>:12345"
  }
}```
(we don't have any documentation for this, but if you're familiar with digging around in protobuf, this is where I confirmed the above https://github.com/pachyderm/pachyderm/blob/master/src/client/pkg/config/config.proto#L18)


Configure Azure Pipelines

This pipeline configuration builds the application and produces a build for the Release configuration.

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


SF-I and CF-I are not implemented

Note also that these need to be assigned op codes at the end of the range.

D'oh!  Wrong repo.  Also, not a bug:  these operations aren't present on the real 16C, AFAI can tell from the manual.


Locale tweaks

Some additional site work necessary before #63  / #12 can be fully operational. cc @victorhck
It looks good locally, I want to test a bit more tomorrow before merging.

yay!! It's on line now!! I will check if everything it's ok!!
Thanks for your work!! :)


chore: surface SDK compatibility issues through logs

When we upgrade to numaflow 1.2.0, sdk versions must be >= 0.7.0 in order to be compatible. This adds logic to surface this information to users, example output:

related to: #1504

couple of notes: we dont need to check if the minimumNumaflowVersion field exists because we are using the latest numaflow-go dependency in the go.mod file, so it will always be present. Still not entirely sure how best to handle the check for local testing when numaflowVersion = "latest" currently we just skip the numaflow side check if that is the case, but what if an older version of the sdk is running, locally we will still have "latest"

tests are failing because redis-sink is using old numaflow-go version: PR to upgrade it: https://github.com/numaproj/numaflow-sinks/pull/37

PR to bump numaflow-go versions in side-input examples: https://github.com/numaproj-contrib/e2e-tests-go/pull/11

The failing unit tests are not because of the changes in this PR. When @yhl25 merges his changes in https://github.com/numaproj/numaflow/pull/1669/files they will be fixed (specifically the changes in the files event_time_extractor_test.go, filter_test.go, and time_extraction_filter_test.go)