BatchNormalization on non-last axis throws ValueError with Tensorflow backend

from keras.layers import BatchNormalization, Input
x = Input(shape=(1, 2, 2))
BatchNormalization(axis=1)(x)

Above code fails with ValueError: Shape must be rank 1 but is rank 4 for 'batch_normalization_1/cond/FusedBatchNorm' (op: 'FusedBatchNorm') with input shapes: [?,1,2,2], [1,1,1,1], [1,1,1,1], [1,1,1,1], [1,1,1,1]. when using Tensorflow as backend, meaning the BatchNormalization layer can not be used with the channels_first format currently.
This seems to be caused by the changes from #10207. tf.nn.fused_batch_norm expects 1D tensors as non-input parameters but the inference part of keras.layers.normalization.BatchNormalization.call calls keras.backend.batch_normalization with 4D tensors when it does broadcasting. That broadcasting is not required for TF's fused batch norm.
Full traceback:
InvalidArgumentError                      Traceback (most recent call last)
C:\ProgramData\Anaconda3\envs\keras\lib\site-packages\tensorflow\python\framework\ops.py in _create_c_op(graph, node_def, inputs, control_inputs)
   1566   try:
-> 1567     c_op = c_api.TF_FinishOperation(op_desc)
   1568   except errors.InvalidArgumentError as e:

InvalidArgumentError: Shape must be rank 1 but is rank 4 for 'batch_normalization_1/cond/FusedBatchNorm' (op: 'FusedBatchNorm') with input shapes: [?,1,2,2], [1,1,1,1], [1,1,1,1], [1,1,1,1], [1,1,1,1].

During handling of the above exception, another exception occurred:

ValueError                                Traceback (most recent call last)
<ipython-input-1-d7f9f59b50e7> in <module>()
      1 from keras.layers import BatchNormalization, Input
      2 x = Input(shape=(1, 2, 2))
----> 3 BatchNormalization(axis=1)(x)

C:\ProgramData\Anaconda3\envs\keras\lib\site-packages\keras\engine\base_layer.py in __call__(self, inputs, **kwargs)
    458             # Actually call the layer,
    459             # collecting output(s), mask(s), and shape(s).
--> 460             output = self.call(inputs, **kwargs)
    461             output_mask = self.compute_mask(inputs, previous_mask)
    462

C:\ProgramData\Anaconda3\envs\keras\lib\site-packages\keras\layers\normalization.py in call(self, inputs, training)
    202         return K.in_train_phase(normed_training,
    203                                 normalize_inference,
--> 204                                 training=training)
    205
    206     def get_config(self):

C:\ProgramData\Anaconda3\envs\keras\lib\site-packages\keras\backend\tensorflow_backend.py in in_train_phase(x, alt, training)
   3067
   3068     # else: assume learning phase is a placeholder tensor.
-> 3069     x = switch(training, x, alt)
   3070     if uses_learning_phase:
   3071         x._uses_learning_phase = True

C:\ProgramData\Anaconda3\envs\keras\lib\site-packages\keras\backend\tensorflow_backend.py in switch(condition, then_expression, else_expression)
   3002         x = tf.cond(condition,
   3003                     then_expression_fn,
-> 3004                     else_expression_fn)
   3005     else:
   3006         # tf.where needs its condition tensor

C:\ProgramData\Anaconda3\envs\keras\lib\site-packages\tensorflow\python\util\deprecation.py in new_func(*args, **kwargs)
    430                 'in a future version' if date is None else ('after %s' % date),
    431                 instructions)
--> 432       return func(*args, **kwargs)
    433     return tf_decorator.make_decorator(func, new_func, 'deprecated',
    434                                        _add_deprecated_arg_notice_to_docstring(

C:\ProgramData\Anaconda3\envs\keras\lib\site-packages\tensorflow\python\ops\control_flow_ops.py in cond(pred, true_fn, false_fn, strict, name, fn1, fn2)
   2070     context_f = CondContext(pred, pivot_2, branch=0)
   2071     context_f.Enter()
-> 2072     orig_res_f, res_f = context_f.BuildCondBranch(false_fn)
   2073     if orig_res_f is None:
   2074       raise ValueError("false_fn must have a return value.")

C:\ProgramData\Anaconda3\envs\keras\lib\site-packages\tensorflow\python\ops\control_flow_ops.py in BuildCondBranch(self, fn)
   1911     """Add the subgraph defined by fn() to the graph."""
   1912     pre_summaries = ops.get_collection(ops.GraphKeys._SUMMARY_COLLECTION)  # pylint: disable=protected-access
-> 1913     original_result = fn()
   1914     post_summaries = ops.get_collection(ops.GraphKeys._SUMMARY_COLLECTION)  # pylint: disable=protected-access
   1915     if len(post_summaries) > len(pre_summaries):

C:\ProgramData\Anaconda3\envs\keras\lib\site-packages\keras\layers\normalization.py in normalize_inference()
    163                     broadcast_gamma,
    164                     axis=self.axis,
--> 165                     epsilon=self.epsilon)
    166             else:
    167                 return K.batch_normalization(

C:\ProgramData\Anaconda3\envs\keras\lib\site-packages\keras\backend\tensorflow_backend.py in batch_normalization(x, mean, var, beta, gamma, axis, epsilon)
   1892                 variance=var,
   1893                 data_format=tf_data_format,
-> 1894                 is_training=False
   1895             )
   1896             return y

C:\ProgramData\Anaconda3\envs\keras\lib\site-packages\tensorflow\python\ops\nn_impl.py in fused_batch_norm(x, scale, offset, mean, variance, epsilon, data_format, is_training, name)
    902       data_format=data_format,
    903       is_training=is_training,
--> 904       name=name)
    905   return y, batch_mean, batch_var
    906

C:\ProgramData\Anaconda3\envs\keras\lib\site-packages\tensorflow\python\ops\gen_nn_ops.py in _fused_batch_norm(x, scale, offset, mean, variance, epsilon, data_format, is_training, name)
   3772         "FusedBatchNorm", x=x, scale=scale, offset=offset, mean=mean,
   3773         variance=variance, epsilon=epsilon, data_format=data_format,
-> 3774         is_training=is_training, name=name)
   3775     _result = _op.outputs[:]
   3776     _inputs_flat = _op.inputs

C:\ProgramData\Anaconda3\envs\keras\lib\site-packages\tensorflow\python\framework\op_def_library.py in _apply_op_helper(self, op_type_name, name, **keywords)
    785         op = g.create_op(op_type_name, inputs, output_types, name=scope,
    786                          input_types=input_types, attrs=attr_protos,
--> 787                          op_def=op_def)
    788       return output_structure, op_def.is_stateful, op
    789

C:\ProgramData\Anaconda3\envs\keras\lib\site-packages\tensorflow\python\framework\ops.py in create_op(self, op_type, inputs, dtypes, input_types, name, attrs, op_def, compute_shapes, compute_device)
   3390           input_types=input_types,
   3391           original_op=self._default_original_op,
-> 3392           op_def=op_def)
   3393
   3394       # Note: shapes are lazily computed with the C API enabled.

C:\ProgramData\Anaconda3\envs\keras\lib\site-packages\tensorflow\python\framework\ops.py in __init__(self, node_def, g, inputs, output_types, control_inputs, input_types, original_op, op_def)
   1732           op_def, inputs, node_def.attr)
   1733       self._c_op = _create_c_op(self._graph, node_def, grouped_inputs,
-> 1734                                 control_input_ops)
   1735     else:
   1736       self._c_op = None

C:\ProgramData\Anaconda3\envs\keras\lib\site-packages\tensorflow\python\framework\ops.py in _create_c_op(graph, node_def, inputs, control_inputs)
   1568   except errors.InvalidArgumentError as e:
   1569     # Convert to ValueError for backwards compatibility.
-> 1570     raise ValueError(str(e))
   1571
   1572   return c_op

ValueError: Shape must be rank 1 but is rank 4 for 'batch_normalization_1/cond/FusedBatchNorm' (op: 'FusedBatchNorm') with input shapes: [?,1,2,2], [1,1,1,1], [1,1,1,1], [1,1,1,1], [1,1,1,1].

I just got the exact same issue. Likes the OP says batch normalization works when changes to channel_last and axis=-1(NHWC).

Got here because I ran into the same issue today. I can add that this only happens with tensorflow-gpu, though. The snippet above runs OK on CPU tensorflow.

Just want to bump this up as this also affects me. For the moment any CNN that has its features in NCHW format results in non-usable networks with the newest Keras version as the aim was to introduce fused batch normalization support from tensorflow. The line I refer to here [1] is causing issues in combination with [2] for the following cases:
If the data format is NHWC then dimensions are not expanded in [2] (unclear to me why, just used an exhaustive debug session with axis = -1(none done), 0(crashes), 1(our problem), 2(expands but not using fused batchnorm later as neither NCHW nor NHWC) and 3(no expansion done)) and the data can be passed on correctly. If on the other hand NCHW is used then expansion happens in [2] and [1] will feed in 4D-Tensors for arguments gamma, beta, mean and var.
As an ugly fix I propose to add the following instead of [3]
            if K._BACKEND == 'tensorflow':
                from ..backend import tensorflow_backend as tf_backend
                tf_nchw_support = tf_backend._has_nchw_support()
            else:
                tf_nchw_support = False
            if needs_broadcasting and not tf_nchw_support:

I suppose some more engineering needs to be done than this hack on my end but for the moment it works and I can profit from fused batch normalization and Keras' simplicity for prototyping.
For something quick, I  have a fork of Keras-2.2.0 with that applied (see commit above).
Links:
1
2
3

Hi
Just copying over answer from Stack overflow which works:

This bug has been fixed by #10684 .

Still exists in Keras 2.2.4

pip install -I keras==2.1.6

Thanks so much !

I downgraded the keras version to 2.2.0 and the code is working fine but it is now running on cpu and not gpu.

Still getting issues trying to run batchNormalization (tf.keras.layers.BatchNormalization(name="batch_norm_1")) on GPU on a mac m1. Apparently it complains of the size of the input, although the required is the exact size it is being fed to the layer tensorflow.python.framework.errors_impl.InvalidArgumentError: input must be 4-dimensional[40,1,32,32,32] [Op:FusedBatchNormV3]
Using tf.config.set_visible_devices([], 'GPU') to force computation through CPU (with the exact same code) does not present the issue


[Plugin] Get successful message but doesn't create a profile with long name.

For replay this bug you need:
Test case

Go to SS and login under any account.
Go to Bazaar page -> Generic plugin.
Put in a profile name a huge name and click create.

Result: you can observe successful message. But can not observe created profile.
Recommendation:  add the symbols limit in profile field.

Added limit


Unclear how to use fixed font size with frameit

While trying to use frameit, my screenshots came back looking slightly off because the fonts were differently across all 5 screenshots. Doing some digging, I found various references to fontSize in several PR's and issues, and those issues showed fontSize being included at different points in the data structure of the FrameFile.json I attempted to use fontSize in various places, but none of them seemed to impact the font size on the screenshots.
I was not able to find any documentation on the use of that property anywhere.
In addition, I could not find that property in the source code of frameit.
Would some clarity on if this is supported, and some documentation demonstrating the correct place to include it.

I'm that this was never intented to work due to the text having to be much larger on iPads and smaller on iPhones: https://github.com/fastlane/fastlane/issues/2773

@KrauseFx thought it was in there, and ask me to create this ticket to track it.

I have the same issue.
Can this commit fix it?
https://github.com/futuretap/fastlane/commit/d719893d881c7f717b04a861e1ce52b517cb2109

@Anders123fr You should test out the fix? We would love to see this improved.

I am not that much into Ruby so don't know how to build it myself, so i was hoping someone could try it out.

@Anders123fr No problem :+1:

I like fix font size too, now it difference each image @TKBurner  please add this to release, i don't know how to build fastlane

Hello,
Any idea why the fontSize feature had been added in 2.5.0 and then immediately removed?
I have to create portrait screenshots for an iPad app, I am using raw screenshots from an iPad Pro 12.9 inches (and intend to use the iTunes screenshot manager). Currently, the title is taking way too much space above the screenshot.

I can play a bit with the padding, but it's not ideal.
It would be really nice to precise the fontSize (or fontScale) for iPhone & iPad and being able to differentiate for both. cc @KrauseFx
Thanks for your help,
Axel

@alpennec If it was removed there was probably a problem with it. If you can find the PRs for adding and then for removing the features for me, that would help 👍

@KrauseFx thanks for the update.
Here is the tag https://github.com/fastlane-old/frameit/releases/tag/2.5.0
Fontsize is at the end of this file: https://github.com/fastlane-old/frameit/blob/2.5.0/lib/frameit/editor.rb


Investigate deleting Asynchronous checkbox on trigger handler

Recently we are aware of some potential issues with allowing TDTM triggers to run asynchronously. Asynchronous checkbox seems to be dangerous to use for our users. We need to investigate more about the asynchronous checkbox and decide if we can remove it from HEDA package.

**lurch:add

Tracking W-020620

We have decided we will not deprecate it. We will just update the Label and Description to make the risks of using it clear.

Duplicate of #432


kubelet: Add 'image pulling' event. Refactor dockerManager.createPodInfraContainer()

Since it takes a while (1-2mins) for kubelet to pulling a big image
(>500MB). Just showing "Pending" for pod status is not very helpful.
This commit introduces a "pulling" event, and inserts it before the
kubelet starts to pull an image.
Before:
$ kubectl describe pods dns-frontend
W0608 18:01:31.222834   32037 request.go:291] field selector: v1beta3 - events - involvedObject.name - dns-frontend: need to check if this is versioned correctly.
W0608 18:01:31.222911   32037 request.go:291] field selector: v1beta3 - events - involvedObject.namespace - default: need to check if this is versioned correctly.
W0608 18:01:31.222922   32037 request.go:291] field selector: v1beta3 - events - involvedObject.uid - 102ad4ca-0e43-11e5-a405-28d244b00276: need to check if this is versioned correctly.
Name:				dns-frontend
Image(s):			ddysher/dns-frontend
Host:				<IP_ADDRESS>/
Labels:				name=dns-frontend
Status:				Pending
Replication Controllers:	<none>
Containers:
Events:
  FirstSeen				LastSeen			Count	From			SubobjectPath				Reason		Message
  Mon, 08 Jun 2015 18:01:30 -0700	Mon, 08 Jun 2015 18:01:30 -0700	1	{scheduler }							scheduled	Successfully assigned dns-frontend to <IP_ADDRESS>
  Mon, 08 Jun 2015 18:01:30 -0700	Mon, 08 Jun 2015 18:01:30 -0700	1	{kubelet <IP_ADDRESS>}	implicitly required container POD	pulled		Successfully pulled image "gcr.io/google_containers/pause:0.8.0"
  Mon, 08 Jun 2015 18:01:30 -0700	Mon, 08 Jun 2015 18:01:30 -0700	1	{kubelet <IP_ADDRESS>}	implicitly required container POD	created		Created with docker id 0d00c8b1e3aca395de644536d994921dea06836e22bb12c4ae72e8937c894189
  Mon, 08 Jun 2015 18:01:31 -0700	Mon, 08 Jun 2015 18:01:31 -0700	1	{kubelet <IP_ADDRESS>}	implicitly required container POD	started		Started with docker id 0d00c8b1e3aca395de644536d994921dea06836e22bb12c4ae72e8937c894189

After:
$ kubectl describe pods dns-frontend
W0623 13:07:06.800598   21221 request.go:291] field selector: v1beta3 - events - involvedObject.name - dns-frontend: need to check if this is versioned correctly.
W0623 13:07:06.800665   21221 request.go:291] field selector: v1beta3 - events - involvedObject.namespace - default: need to check if this is versioned correctly.
W0623 13:07:06.800675   21221 request.go:291] field selector: v1beta3 - events - involvedObject.uid - 15f60526-19e3-11e5-a355-28d244b00276: need to check if this is versioned correctly.

Shippable failure: 	*fakeRuntimeHooks does not implement container.RuntimeHooks (missing ReportImagePulled method)
Since @vmarmol and I will both be out starting Tuesday, assigning this to @dchen1107 to review or re-assign.

@yujuhong Fixed. And added tests

@yujuhong @dchen1107 @vmarmol Rebased, and refactored the tests. Want take a look?

The rest looks good to me.
@k8s-bot, ok to test

@k8s-bot ok to test

@yifan-gu, both integration tests (2 builds on shippable) and jenkins e2e failed. Could you take another look at the PR? Thanks!

@yujuhong OK

@yujuhong Fixed. The reason is I added the image pull policy for the pod infra container spec during creation, but I forgot to do the same when comparing the pod infra container.
As for risk assessment, this touches the pod infra container creation and comparison. But I think the change is mostly cleanup, and very straightforward.
Would like another LGTM for merging :) /cc @vmarmol @dchen1107

@yifan-gu, the new policy requires LGTMs from two team leads, so aside from @dchen1107, we'll need another one :)
I like the cleanup in this PR, and it makes events sending more consistent for infra/user containers. Whether we should send so many events is up for debate though, but this is probably beyond this PR as there is no standard set in our codebase :\

@yifan-gu, could you please rebase your pr.
LGTM in general. Thanks!

Shippable is failing, and one example is:
--- FAIL: TestSyncPodWithPodInfraCreatesContainer (0.01s)
docker_test.go:55: Expected: []string{"inspect_container", "create", "start", "inspect_container"}, Actual: []string{"inspect_container", "inspect_container", "stop", "create", "start", "inspect_container", "create", "start", "inspect_container"}
You need updating the test.

@dchen1107 I just updated. it should be fine now :)

Also following question is that why there are extra operations being introduced by this pr?

@dchen1107 No extra operations. The tests failed because the generatePodInfraContainerHash is not updated, it didn't take the image pull policy into account when computing the hash, thus the expected hash is not correct, and it cause the pod infra container to be killed incorrectly in the tests.

@yifan-gu That makes sense.
LGTM

As an record: If image pulling failed due to a bad image, this pr will generate more events related to pulling operation. But this won't cause issue of too many events in etcd since event compression will be triggered.


Convert RGD to use mine.

Instead of loading RGD go and disease annotations from rat_go.tsv and rat_disease.tsv convert over to using Rat Mine.

rat_disease will come from RatMine instead of DAF?

Yes the rat_go and rat_disease should be coming from their mine. I am working with Jeff to get that setup and the data into AGR.

Why wouldn't you use the disease info from our daf file instead of the mine?
  From: Olin Blodgett<EMAIL_ADDRESS>
To: alliance-genome/agr<EMAIL_ADDRESS>Cc: Subscribed<EMAIL_ADDRESS>Sent: Tuesday, February 21, 2017 3:16 PM
Subject: Re: [alliance-genome/agr] Convert RGD to use mine. (#134)
Yes the rat_go and rat_disease should be coming from their mine. I am working with Jeff to get that setup and the data into AGR.—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.

Yes we could I guess... I know that the other mod's are still trying to get the DAF file going. Maybe I will take a crack at it, I am not familiar with the DAF format but there is always something to learn.

We just discussed in DQMs today, about producing a JSON file for disease.  Please don't take a crack at it quite yet?

Olin, all disease associations should come from DAFs.  all GO annotations should come from GAFs.  these are standard file formats that all MODs share.
downstream JSON's are fine/good, but the primary data should come from those file types (GAF, DAF).

Stacia - I thought we had discussed today, representing the data in a hierarchical way so that issues about two delimiters per field, etc.. could be easier to parse and reconcile.  Did I misunderstand that meeting?

not sure, Sierra, are we crossing topics?  all i'm trying to say here is that i was concerned about this new decision to take rat disease associations and GO annotations from ratMine instead of daf and gaf.

yes, lets not take it from the mine.  we have good info from disease group on how to represent this data in AGR now.  we will try to produce a json schema for this.  lets spend tech resources parsing and loading and pulling out the data based on that json representation.  we can wait on changing from a tsv file I hope, until that is done.  then all data will be pulled from json, dictated and shaped by the disease working group.

From my perspective it doesn't matter where the data comes from, but the file that has been checked into the project is old, and not being updated. So where to go for an always up to date version is my question? Doesn't matter if its a DAF, GAF, Mine, JSON, CSV, TSV, whatever.

For the prototype (0.3.0) the decision is to use hard-coded data on the UI side. So no worries about uploading new data for now. We plan to load a JSON-version of the DAF for 0.6.0.
@srengel and @sierra-moxon, please correct me if I'm wrong.

which file checked in by whom is old and not being updated?

This file was added a month ago by the person that wrote the prototype, not sure if that was when the repo was created or not.
agr/scripts/elastic_search/data/rat_disease.tsv
agr/scripts/elastic_search/data/rat_go.tsv
Three mods have provided a query to their minds to get this data (MGI, SGD, ZFIN). RGD has a mine, as does FlyBase, so I made the assumption that there was a query provided like the other three and it had just not got implemented yet, the code to implement a mine query is quite straight forward and then we would have RGD on board with the rest.
But there is no standard (in the code at least) on what data and where it comes from or how to store it, in place, so I guess it doesn't matter. If there is a standard then the code should implement it, and not have multiple. If there isn't a standard then we should create one, and then implement it.

Sorry for all the confusion Olin. This was something we discussed extensively a few months back (and more recently before you were involved).
Those files are remnants from the prototype release in December. The disease data is getting a complete rework (DAF/JSON discussion above) so none of the older data are relevant. The standard won't be implemented in time for 0.3.0.

Closing this issue for now, if that's OK with everyone, just to try and organize a bit.


How to use themeing/styling?

Category

[x] Question
[ ] Typo
[ ] Bug
[ ] Additional article idea

Expected or Desired Behavior
One consistent way to apply themeing.
Observed Behavior
I am confused how to integrate the themeing.
It seems to me that colours are included via .scss, as in the samples/react-themes and StfBauers - Theme Token Variables/#761 .
Font classes are imported in the .tsx file import { FontClassNames } from '@uifabric/styling'; and used like FontClassNames.mediumPlus. Is that correct by using ?
In ColorClassNames imported from @uifabric/styling I found all colours but primaryText. Should I use themePrimary or neutralPrimary instead?
Steps to Reproduce
test.scss:
$ms-primaryBackground:          "[theme:primaryBackground, default:#ffffff]";
$ms-primaryText:                "[theme:primaryText, default:#333333]";
$ms-themePrimary:               "[theme:themePrimary, default:#0078d7]";

.test {
    background-color: $ms-primaryBackground;
    color: $ms-primaryText;

    .heading {
        color: $ms-themePrimary;
    }
}

test.tsx:
import {
    FontClassNames
} from '@uifabric/styling';
...

const headingStyles = [styles.heading, FontClassNames.mediumPlus];
const contentStyles = [FontClassNames.medium];

public render(): JSX.Element {
    return (

Heading 1

Content 1 text

Heading 2

Content 2 text

);
}

Is this the recommended/right way to do it? The Office-UI-Fabric styling references weight and size classes as well. How  are they supposed to be included?
Bottom line, I wonder how to to integrate the office styling proper in one place, so I can simply define my style based on the standard style. E.g.:
NormalHeading: ColorClassNames.ThemePrimary, FontClassNames.medium, FontWeight.semibold
NormalText: ColorClassNames.PrimaryText, FontClassNames.medium
SmallHeading: ColorClassNames.ThemePrimary, FontClassNames.small, FontWeight.semibold
SmallText: ColorClassNames.PrimaryText, FontClassNames.small

This issues should be fully solved and fixed, given the work we have done in engineering in this area. To ensure that we clean up the backlog of the issues, we will be closing this one. If you still have issues on this particular area, please open up a new issue so that we can get updated issue description and reproduce steps. We do apologize the non-optimal handling of these old issues and are looking into improving this in future.


Feat: Apache Kafka using Strimzi on EKS

What does this PR do?
🛑 Please open an issue first to discuss any significant work and flesh out details/direction - we would hate for your time to be wasted.
Consult the CONTRIBUTING guide for submitting pull-requests.
This PR has templates to create Kafka on EKS using Strimzi with metrics System that uses Prometheus and Grafana dashboards, provided by Strimzi, configured on the EKS.
Motivation
https://github.com/awslabs/data-on-eks/issues/22
More

[x] Yes, I have tested the PR using my local account setup (Provide any test evidence report under Additional Notes)
[ ] Yes, I have added a new example under examples to support my PR
[x] Yes, I have created another PR to add a new Add-on for Terraform EKS Blueprints repo (if applicable)
[ ] Yes, I have updated the website/docs or website/blog section for this feature
[ ] Yes, I ran pre-commit run -a with this PR. Link for installing pre-commit locally

For Moderators

[ ] E2E Test successfully complete before merge?

Additional Notes
This PR has dependency on PR https://github.com/aws-ia/terraform-aws-eks-blueprints/pull/1090
Updates to READ ME will follow

Please mark this as draft if not ready for review.

PR https://github.com/aws-ia/terraform-aws-eks-blueprints/pull/1090 has been merged and now this PR can be tested

Added documentation and README, and modified the directory structure.

LGTM. Thank you very much for this!
@vara-bonthu We may want to move website related stuff to another PR in the future. I think PRs for new services are large enough. I think it's better to cut down the amount of things we have to look through in a PR.


7-Order status, user balance

Tasks

[ ] Change status. #11
[ ] Update user balance. #8

Involved data

order.status.
user.balance.

Useful

https://github.com/janis-rullis/pr1/wiki

Due date

March 2, 2020.

#18 Evaluate @lauris-printify code against requirements in the MVP
This is combined with Order #11. Works for MVP.


Taxon/genome list view: default should be overview tab

I am in borrelia, protein family tab. Next, I select mycobacterium from the top nav, and it jumps directly to mycobacterium protein family tab.
Every time taxon level is changed, by default it should go to the oveview page, not the same tab
for the last taxon.
I think the same principle whould apply to other views as well, i.e. genome list, genome view, etc.
-Maulik

Fixed this for the tabs in the menu bar


Class parameter does not affect methods of the given class in some cases.

Dart SDK Version: 2.0.0_dev.68.0
OS: Windows 10
The following code sample declares class C<X>, create C<int> instance and assigns parametrized call function to the String variable:
class C<X> {
  X call() { return null; }
}

main() {
  C c = new C<String>();
  int i1 = c.call();
  int i2 = c();
}

This test  should fail both on int i1 = c.call(); and int i2 = c(); calls because X type is set to String during the c object creation, so c.call() should return String object and so it should be impossible to assign it to int variable.
However, it does not happen: both dart and dartanalyzer pass here.
Please note that the following example passes with analyzer (is it a bug?) and fails with dart:
class C<X> {
  call(X x) { return null; }
}

main() {
  C c = new C<String>();
  c.call(12345);
  c(12345);
}

Dart sample output is:
Unhandled exception:
type 'int' is not a subtype of type 'String' of 'x'
#0      C.call (file:///D:/DART/sdk/tests/co19/src/LanguageFeatures/Instantiate-to-bound/Callable/test.dart)
#1      main (file:///D:/DART/sdk/tests/co19/src/LanguageFeatures/Instantiate-to-bound/Callable/test.dart:7:5)
#2      _startIsolate.<anonymous closure> (dart:isolate/runtime/libisolate_patch.dart:279:19)
#3      _RawReceivePortImpl._handleMessage (dart:isolate/runtime/libisolate_patch.dart:165:12)

The type of c is C<dynamic> because there is no inference on raw types.
The code says C c = , and that first C is expanded to C<dynamic>.
You are allowed tor assign a C<String> to C<dynamic> and you are allowed to assign dynamic (the return type of C<dynamic>.call) to int, and the actual value is null, so everything works.
See also #33119.
33119


Major SWF parser refactoring.

This is a long overdue refactoring of the SWF parser. The code it now nicely formatted, fully typed and provides proper interfaces for all objects returned by the parser. Stream objects are now wrappers around a Uint8Array and a DataView object, with all custom reader methods implemented on the class' prototype instead of adding custom properties to a DataView instance. Furthermore we reduces memory usage of the parser by not storing unused fields and combining groups of boolean fields to single flag properties, accessible via provided enums/bitmasks.

/botio test

This looks pretty great! I added lots of comments, but most of them are quite minor.
It's very nice that this PR largely paves the way for the one major performance issue we still have in the parser: the two-phased parsing of shapes (and hence glyphs).
One change I'm not wild about is moving all tag handlers into the same package. I quite liked the LowLevel thing because it made clear which structures we intend to tell the non-parser world about and which not. (I do see that there's a fuzzy line between these categories, though, so I won't make an r+ dependent on reverting this.)
Is there any reason for not making the various interfaces defined in SWFTags.ts proper classes and newing them? That make it easier to, in the future, splice in the classes we end up actually using in the player and thus skipping the whole conversion thing from one object to another.

Reviewed 21 of 21 files at r1.
Review status: all files reviewed at latest revision, 31 unresolved discussions, all commit checks successful.

src/base/SWFTags.ts, line 187 [r1] (raw file):
I'd much prefer ColorTransform for this. I know that the SWF spec usesCxform, but that doesn't only look odd, it also requires far more contextual knowledge to grok.

src/base/SWFTags.ts, line 198 [r1] (raw file):
I'd call this SWFTag.

src/base/SWFTags.ts, line 213 [r1] (raw file):
Superfluous, exists on base class.

src/base/SWFTags.ts, line 270 [r1] (raw file):
ClipEvents?

src/base/SWFTags.ts, line 309 [r1] (raw file):
preserveAlpha

src/base/SWFTags.ts, line 341 [r1] (raw file):
It's not terribly important (because SWFs usually don't contain a huge amount of buttons), but these four booleans could also be one stateFlags number.

src/base/SWFTags.ts, line 390 [r1] (raw file):
You could also change this to export type Glyph = ShapeRecord[]; and eliminate the outer object (with some changes in other parsing code, of course). Which would be nice, because there are quite a few of them sometimes.

src/base/SWFTags.ts, line 474 [r1] (raw file):
Ideally, this'd also be an enum. Up to you, though.

src/base/SWFTags.ts, line 552 [r1] (raw file):
Can isMorph and canHaveStrokes be integrated into the flags field?

src/base/SWFTags.ts, line 609 [r1] (raw file):
As long as this is an interface, it probably doesn't matter much, but the large amount of optional fields is a bit worrying here. Eventually we should clean that up, perhaps.

src/base/SWFTags.ts, line 610 [r1] (raw file):
Can this be an enum?

src/flash/display/MovieClip.ts, line 94 [r1] (raw file):
It doesn't hurt, but you don't really need the boolean coercion here. The resulting code won't be any more efficient, or clear, I think.

src/flash/display/SimpleButton.ts, line 326 [r1] (raw file):
nit: missing whitespace after :. More importantly (and preexisting), is there any reason why we can't just define this default tag once and reuse the same instance? Something like var defaultButtonStatePlacePbject, defined above ButtonSymbol.

src/flash/text/TextField.ts, line 933 [r1] (raw file):
Nit: also wrap after :.

src/flash/text/TextField.ts, line 947 [r1] (raw file):
We should eventually turn all of these into flags, too. Same for TextField. In another PR, though.
(Oh, and here I agree that the boolean coercion is required. Storing the masked number into a field is quite different from using it a few lines later.)

src/flash/text/TextField.ts, line 979 [r1] (raw file):
If you type the var here, you don't need to add the explicit cast a few lines below.

src/swf/parser/font.ts, line 106 [r1] (raw file):
Ideally, we'd also just use the flags here, but I agree with limiting changes to the low-level parser for now.

src/swf/parser/image.ts, line 31 [r1] (raw file):
Wow.

src/swf/parser/module.ts, line 2 [r1] (raw file):
2015

src/swf/parser/module.ts, line 69 [r1] (raw file):
Pretty sure these should be 255 or, even better (but no more correct) 0xff.
Or you could just turn them (and the offsets) into one uint32, of course ;)

src/swf/parser/module.ts, line 281 [r1] (raw file):
This should always be assigned after tag.depth. That way, tag.depth ends up in the same slot for all instances, making the JIT's job easier.

src/swf/parser/module.ts, line 368 [r1] (raw file):
Can you replace these weird flag tests with simple enum checks?

src/swf/parser/module.ts, line 373 [r1] (raw file):
As I said above, ideally the states would stay around as flags. I understand now that you want to contain the changes instead of extending them to the entire code base, so this should probably be a followup.

src/swf/parser/module.ts, line 415 [r1] (raw file):
Nit: type tagEnd

src/swf/parser/shape.ts, line 216 [r1] (raw file):
Nit: no need to put braces around the & operations as long as you don't want to negate them.

src/swf/stream.ts, line 81 [r1] (raw file):
I wonder what we should really be doing here? Throwing a string seems ... not right.

src/swf/stream.ts, line 103 [r1] (raw file):
This and perhaps readSi8 would be excellent candidate for your closure compiler inlining annotation, I think.

src/swf/stream.ts, line 109 [r1] (raw file):
nit: missing ;

src/swf/stream.ts, line 115 [r1] (raw file):
nit: missing ;

src/swf/stream.ts, line 127 [r1] (raw file):
nit: missing ;

src/swf/SWFFile.ts, line 706 [r1] (raw file):
There's really no reason to pass the tag in here instead of using it in the parser function itself.

Comments from the review on Reviewable.io

/botio reftest

/botio test

/botio reftest

/botio reftest

/botio reftest

/botio reftest

/botio reftest

/botio reftest

/botio reftest

/botio reftest

/botio reftest

/botio reftest

/botio reftest

/botio reftest

/botio reftest

/botio reftest

/botio test

/botio reftest

/botio reftest


Read version information from project.json

Implement telemetry initializer that populates telemetry.Component.Version to the value read from project.json.
This was blocked before by the issue in Configuration package. More details: https://github.com/aspnet/Configuration/issues/115

One question, should the project.json file be loaded as a Configuration File on ASP.NET Core 1 using a ConfigurationBuilder or should it be loaded in a different way?
Trying to figure out the best way to load the file and get the config information from it.

Are there any other options how to load it? Will ConfigurationBuilder require a new dependency for the package?

I don't see problems with ConfigurationBuilder

I don't think we need to explicitly load project.json. We need to make sure that "appsettings.json" is loaded, which contains the instrumentation key.

I will try ConfigurationBuilder then. Just need to add an additional nuget to the project: Microsoft.Extensions.Configuration.Json.
Does the appsettings.json contain version info?

I am sorry for the confusion. I got the question wrong. No, appsettings will not contain the version info.

Does this work without any configuration? Or I need to set up this to work?

It should work out of the box. Do you see otherwise?
Here are the pointers in code if it would help: reading and setting


Support receptive field

Support receptive field. It will not affect the previous function.
from torchsummary import summary
summary(your_model, input_size=(channels, H, W), has_receptive_field=True)

start is the center of first item in the map grid .
jump is the distance of the adjacent item in the map grid.
field_size is the field size of the item in the map grid.
------------------------------------------------------------------------------
        Layer (type)    map size      start       jump      field_size
==============================================================================
        Input         [224, 224]        0.5        1.0             1.0
        Conv2d-1      [224, 224]        0.5        1.0             3.0
        ReLU-2        [224, 224]        0.5        1.0             3.0
        Conv2d-3      [224, 224]        0.5        1.0             5.0
        ReLU-4        [224, 224]        0.5        1.0             5.0
        MaxPool2d-5   [112, 112]        0.5        2.0             6.0
        Conv2d-6      [112, 112]        0.5        2.0            10.0
        ReLU-7        [112, 112]        0.5        2.0            10.0
        Conv2d-8      [112, 112]        0.5        2.0            14.0
        ReLU-9        [112, 112]        0.5        2.0            14.0
        MaxPool2d-10    [56, 56]        0.5        4.0            16.0
        Conv2d-11       [56, 56]        0.5        4.0            24.0
        ReLU-12         [56, 56]        0.5        4.0            24.0
        Conv2d-13       [56, 56]        0.5        4.0            32.0
        ReLU-14         [56, 56]        0.5        4.0            32.0
        Conv2d-15       [56, 56]        0.5        4.0            40.0
        ReLU-16         [56, 56]        0.5        4.0            40.0
        MaxPool2d-17    [28, 28]        0.5        8.0            44.0
        Conv2d-18       [28, 28]        0.5        8.0            60.0
        ReLU-19         [28, 28]        0.5        8.0            60.0
        Conv2d-20       [28, 28]        0.5        8.0            76.0
        ReLU-21         [28, 28]        0.5        8.0            76.0
        Conv2d-22       [28, 28]        0.5        8.0            92.0
        ReLU-23         [28, 28]        0.5        8.0            92.0
        MaxPool2d-24    [14, 14]        0.5       16.0           100.0
        Conv2d-25       [14, 14]        0.5       16.0           132.0
        ReLU-26         [14, 14]        0.5       16.0           132.0
        Conv2d-27       [14, 14]        0.5       16.0           164.0
        ReLU-28         [14, 14]        0.5       16.0           164.0
        Conv2d-29       [14, 14]        0.5       16.0           196.0
        ReLU-30         [14, 14]        0.5       16.0           196.0
        MaxPool2d-31      [7, 7]        0.5       32.0           212.0
        Linear-32             []          0          0               0
        ReLU-33               []          0          0               0
        Dropout-34            []          0          0               0
        Linear-35             []          0          0               0
        ReLU-36               []          0          0               0
        Dropout-37            []          0          0               0
        Linear-38             []          0          0               0
==============================================================================

It doesn't work!
For every model, it gives the following error:
device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
vgg = models.vgg16().to(device)

summary(vgg, input_size=(3, 224, 224), has_receptive_field=True)

---------------------------------------------------------------------------

NameError                                 Traceback (most recent call last)

<ipython-input-9-7c83c0ec87c5> in <module>()
      4 vgg = models.vgg16().to(device)
      5
----> 6 summary(vgg, input_size=(3, 224, 224), has_receptive_field=True)

/content/pytorch-summary/torchsummary/torchsummary.py in summary(model, input_size, batch_size, device, has_receptive_field)
    128         receptive_field["0"]["conv_stage"] = True
    129         # receptive_field["0"]["output_shape"] = list(x.size())
--> 130         receptive_field["0"]["output_shape"] = [2, in_size[0], in_size[1], in_size[2]]
    131     hooks = []
    132

NameError: name 'in_size' is not defined

@kHarshit
Hello, please try this.  https://github.com/Fangyh09/pytorch-receptive-field

Hi @Fangyh09, I tried your repo as well, received an error https://github.com/Fangyh09/pytorch-receptive-field/issues/5


Made the file system on the Bottom next to the output tab for convenience.

Just a convenience commit. No need to include, code isn't great but still a nice little feature. Maybe not the best way to implement it and can definitely be improved, I've just wanted this for a while so I just did it myself. having the file system in the sides of the screen is just too inconvenient for me.

Features like this require a feature proposal for discussion beforehand. Even then, this particular problem is better solved by uniting the bottom panels and the docks, which is in the plans for future 4.x versions.
As for the PR, you need to make it against the master branch first, and then it can be backported to 3.x. Read more on this here.
For the reasons stated above this will likely be closed.

Just moved it to a GIP instead because this was kind of hacky, might make a fork of it so people can use it now but won't put it to main.


How to center the leaderline but behind the draggable div?

Hey @anseki First of all I'd like to say that this is one of the most amazing things I've ever used. You've really nailed on this feature and it's working extremely well for me.
However due to the designs which were requested I need to have the line sort of behind the draggable divs raher than on the same level or above. Also it needs to be starting and ending in hte center of draggable div which I've solved.
Any additional input into how lines would have lower Z-index than the draggable divs would be greatly appreciated.
I've tried manually setting z-indexes through inspector but that seems to break everything rather than just show it behind
Thanks again!

Here's a screenshot to perhaps give you a better understanding of what I'm trying to solve. Basically when the white line overlaps yellow circle I just want it to be below it rather than above

Hi @vukic-makro, thank you for the comment.
Was the issue already solved?


not exist cosmos

hello @evgenyneu evgeny
when I Set the view's class to CosmosView in the Identity Inspector .
warning: IB Designables: Using class UIView for object with custom class because the class CosmosView does not exist
Because you know it ?

Hi, hmm looks like it can not find the Cosmos module. Did you set Cosmos in the "Module" field ?

yes. but not working

I see, which one of the setup methods did you use? Carthage, Cocoa Pods or CosmosDistrib.swift file?

Hi @J-Arji, was the problem fixed for you?

hi @evgenyneu .
Yes .thank you  :)


Hebrew Translation Request

Hi there, amazing @高怡飞!
I’ve translated the application into Hebrew, and I would appreciate it if you could push the translation to the repository.
Here are a few points regarding the translation:
Contextual Strings:
Some strings weren’t translated because I need to see them in the application to understand their exact context. If there’s a way to preview them without having to compile the application myself—as I’m not a developer and often struggle with this—I’d really appreciate it.
Release Update:
I’d love it if you could release an update for the application that includes Hebrew. If you think it’s not right to release an update for all users, an alternative would be to compile the application with Hebrew in the same version ([5.0.905.0]) and allow users to download it separately as the latest release.
RTL Support:
The current translation is designed for right-to-left (RTL) alignment. It would be amazing if you could adjust the application to fully support RTL. If that’s not possible, please let me know so I can revise the translation accordingly. Explanation: Since Hebrew characters are aligned to the right and general characters (like periods '.', commas ',', colons ':', etc.) are aligned to the left, issues might arise if the application doesn’t support RTL. RTL support would resolve these potential issues, but if you’re not interested in working on it, Please notify me before the release so I can address these problems.
Please note that when updating strings to English, it’s important to update all strings for all languages as well. I hope this isn’t too much trouble. Feel free to email me if you need assistance—I’m mostly available on weekends. I think a translation website could be helpful for this task, but I understand you’re already exploring this topic. Would you like suggestions for sites?
Thank you for creating such a beautiful and highly useful piece of software!

Hi there, amazing @高怡飞!
I’ve translated the application into Hebrew, and I would appreciate it if you could push the translation to the repository.
Here are a few points regarding the translation:
Contextual Strings: Some strings weren’t translated because I need to see them in the application to understand their exact context. If there’s a way to preview them without having to compile the application myself—as I’m not a developer and often struggle with this—I’d really appreciate it.
Release Update: I’d love it if you could release an update for the application that includes Hebrew. If you think it’s not right to release an update for all users, an alternative would be to compile the application with Hebrew in the same version ([5.0.905.0]) and allow users to download it separately as the latest release.
RTL Support: The current translation is designed for right-to-left (RTL) alignment. It would be amazing if you could adjust the application to fully support RTL. If that’s not possible, please let me know so I can revise the translation accordingly. Explanation: Since Hebrew characters are aligned to the right and general characters (like periods '.', commas ',', colons ':', etc.) are aligned to the left, issues might arise if the application doesn’t support RTL. RTL support would resolve these potential issues, but if you’re not interested in working on it, Please notify me before the release so I can address these problems.
Please note that when updating strings to English, it’s important to update all strings for all languages as well. I hope this isn’t too much trouble. Feel free to email me if you need assistance—I’m mostly available on weekends. I think a translation website could be helpful for this task, but I understand you’re already exploring this topic. Would you like suggestions for sites?
Thank you for creating such a beautiful and highly useful piece of software!

As for the first doubt you mentioned, I will provide you with a small packaged test package under this PR after the incorporation of PR for your convenient debugging. Of course, I prefer that you can use the compilation tool on your local computer after deployment and adjustments. Personally, I think compiling this project is relatively easy, if you encounter any doubts during the compilation process, you can ask me individually.
As for the third doubt you mentioned, a user submitted localization support for Arabic before, I found that the language is also RTL layout, so I made relevant adaptations before, this is the effect drawing.
-------------------------------
关于第一个您提到的疑惑，我在合并 PR 后，会在这个 PR 下面给您提供一个小型的打包测试包供您方便调试。当然，我更多的是希望您可以在您本地的电脑上使用编译工具部署后并进行调整。我个人认为编译这个项目相对来说是比较容易的，您如果在编译过程中遇到什么疑惑，可以单独向我询问。
关于您提到的第三个疑惑，之前有一位用户提交了关于阿拉伯语的本地化支持，我经调查发现该语言也是 RTL 布局，故我在之前就做了相关适配，这是效果图。

Hi there, amazing @高怡飞!
I’ve translated the application into Hebrew, and I would appreciate it if you could push the translation to the repository.
Here are a few points regarding the translation:
Contextual Strings: Some strings weren’t translated because I need to see them in the application to understand their exact context. If there’s a way to preview them without having to compile the application myself—as I’m not a developer and often struggle with this—I’d really appreciate it.
Release Update: I’d love it if you could release an update for the application that includes Hebrew. If you think it’s not right to release an update for all users, an alternative would be to compile the application with Hebrew in the same version ([5.0.905.0]) and allow users to download it separately as the latest release.
RTL Support: The current translation is designed for right-to-left (RTL) alignment. It would be amazing if you could adjust the application to fully support RTL. If that’s not possible, please let me know so I can revise the translation accordingly. Explanation: Since Hebrew characters are aligned to the right and general characters (like periods '.', commas ',', colons ':', etc.) are aligned to the left, issues might arise if the application doesn’t support RTL. RTL support would resolve these potential issues, but if you’re not interested in working on it, Please notify me before the release so I can address these problems.
Please note that when updating strings to English, it’s important to update all strings for all languages as well. I hope this isn’t too much trouble. Feel free to email me if you need assistance—I’m mostly available on weekends. I think a translation website could be helpful for this task, but I understand you’re already exploring this topic. Would you like suggestions for sites?
Thank you for creating such a beautiful and highly useful piece of software!

GetStoreAppPackage_5.2.1219.0_x64.msix.zip

I would be happy if you would write to me, so that I can update the translation:
Did you also push the new strings to the he-il folder? [I think so, but I don't know github well enough...]
If not, in which file are they located?
Besides:
I think it might be worth changing the folder name to lowercase [it's currently in uppercase].
You don't have to write to me in Chinese either, because unfortunately I don't know the language. Too bad!

I would be happy if you would write to me, so that I can update the translation: Did you also push the new strings to the he-il folder? [I think so, but I don't know github well enough...] If not, in which file are they located? Besides: I think it might be worth changing the folder name to lowercase [it's currently in uppercase]. You don't have to write to me in Chinese either, because unfortunately I don't know the language. Too bad!

https://github.com/Gaoyifei1011/GetStoreApp/tree/main/GetStoreApp/Strings/he-IL
In this folder, you may need to synchronize the progress of your fork project
The Chinese language was added because the English translation I did was obtained by machine translation, so the Chinese language was retained in case of inaccurate translation


Unexpected behavior when isEnabled in Custom Strategy definition has an exception thrown

Describe the bug
If you create a custom strategy, and try to access a property of undefined during the isEnabled method, the entire call for getting features given a context returns a 404 - which is a very strange response. I would expect it to at least log the error, or throw a 500. Had me chasing reverse proxy/cache-ing issues for three-four hours 😂
Steps to reproduce the bug
Create a custom strategy that accesses a property of undefined. Not the notAField in the return statement, this will surely throw a 'cannot access property accountId of undefined
You could also probably just throw an Error in the function as well and get the same result, though I did not test that.
const { Strategy } = require('unleash-client');

class AccountsStrategy extends Strategy {
    constructor() {
        super('Accounts');
    }

    isEnabled(parameters, context) {
            return parameters.accountIds.includes(context.notAField.accountId);
    }
}

module.exports.AccountsStrategy = AccountsStrategy;

Now, register that custom strategy, and make a call to the proxy with a feature configured to be using that custom strategy.
The app will respond with a 404 Not Found error.
Expected behavior
I'd expect this to fail a little more noticeably, or at least log the exception and return false for the feature. Not a random 404 that has nothing to do with the logic of the code.
Logs, error output, etc.
Setting log level to debug would show the context of the user's request before returning a 404, so I knew it was getting routed properly.

INFO: Get enabled feature toggles for provided context [
  {
    appName: 'myApp',
    environment: 'production',
    userId: 'myUserId',
    remoteAddress: '::1',
    properties: { accountId: 'validAccountId' }
  }
]

### Screenshots

_No response_

### Additional context

This happened on the Node.js version of the self-hosted proxy, not the Docker one. Was able to reproduce in the cloud as well as locally.

### Unleash version

latest

### Subscription type

Open source

### Hosting type

Self-hosted

### SDK information (language and version)

Was connecting to the proxy via the Javascript client SDK

Hi sheastyer, thanks for raising this, I'll have a chat with the team about this one and get back to you.

Hey, @sheastyer! Thanks for opening the ticket and great catch! I think this will be solved by #80 which has something similar going on. The reason is that the error handler only targets a specific kind of error, leading to unknown errors turning into random 404s. The changes in #80 should be enough to catch the errors that you're seeing here as well 🤞🏼

@sheastyer We've just released v0.10.2 now. I can confirm that the changes in #80 do address the issue you reported. As of today, a crash in a strategy will return a 500 error (the following image shows the result in the OpenAPI spec for now).
I'll close this  issue for now in the belief that it is resolved. If you think it still occurs, please feel free to reopen the issue ☺

Thank you much @thomasheartman !


Daemon set timeouts fail

/usr/lib/ruby-shopify/ruby-shopify-2.3.3/lib/ruby/gems/2.3.0/gems/kubernetes-deploy-0.12.0/lib/kubernetes-deploy/kubernetes_resource/daemon_set.rb:42:in `timeout_message': undefined method `map' for nil:NilClass (NoMethodError)
	from /usr/lib/ruby-shopify/ruby-shopify-2.3.3/lib/ruby/gems/2.3.0/gems/kubernetes-deploy-0.12.0/lib/kubernetes-deploy/kubernetes_resource.rb:130:in `debug_message'
	from /usr/lib/ruby-shopify/ruby-shopify-2.3.3/lib/ruby/gems/2.3.0/gems/kubernetes-deploy-0.12.0/lib/kubernetes-deploy/runner.rb:168:in `block in record_statuses'
	from /usr/lib/ruby-shopify/ruby-shopify-2.3.3/lib/ruby/gems/2.3.0/gems/kubernetes-deploy-0.12.0/lib/kubernetes-deploy/runner.rb:168:in `each'
	from /usr/lib/ruby-shopify/ruby-shopify-2.3.3/lib/ruby/gems/2.3.0/gems/kubernetes-deploy-0.12.0/lib/kubernetes-deploy/runner.rb:168:in `record_statuses'
	from /usr/lib/ruby-shopify/ruby-shopify-2.3.3/lib/ruby/gems/2.3.0/gems/kubernetes-deploy-0.12.0/lib/kubernetes-deploy/runner.rb:124:in `run'
	from /usr/lib/ruby-shopify/ruby-shopify-2.3.3/lib/ruby/gems/2.3.0/gems/kubernetes-deploy-0.12.0/exe/kubernetes-deploy:70:in `<top (required)>'
	from /usr/lib/ruby-shopify/ruby-shopify-2.3.3/bin/kubernetes-deploy:22:in `load'
	from /usr/lib/ruby-shopify/ruby-shopify-2.3.3/bin/kubernetes-deploy:22:in `<main>'
kubernetes-deploy ci ci-east --bindings=region=us-east1 exited with status 1

@karanthukral  can you look into this please?


FeatureRequest: TextObject Camelcase and underscore

If the text contains '_',

'vi_' ... selects the text from the previous '' until the next ''
'ci_' ... change the text from the previous, '' until the next ''

If the text doesn't contain '_',

'vi_' ... selects the camelcase words
'ci_' ... selects the camelcase words

Example select the camelcase words against the text "MyPDFView"

Current cursol
Result vi_

M
My

y
My

P
PDF

D
PDF

F
PDF

V
View

i
View

e
View

w
View

Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

Related to #379.


License file

Would you be able to add a license file to the repository so I know what use is allowed and how to credit?
This method makes it pretty easy: https://stackoverflow.com/a/37895659 .
Thanks!!

Super neat project, I would say it "replaces" DOTween prop, and since DOTween is open source licensed. It's completely legal. But could you also put an open source license on this repo? I would like to use DOTween with TMP in my project, but since currently you own all the right to it, I can't use if for any of my purposes. As pointed out by Jarryd
Nice work

Super neat project, I would say it "replaces" DOTween prop, and since DOTween is open source licensed. It's completely legal. But could you also put an open source license on this repo? I would like to use DOTween with TMP in my project, but since currently you own all the right to it, I can't use if for any of my purposes. As pointed out by Jarryd
Nice work


Add missing space in select-over-clause-transact-sql.md

Add missing space between two words so that functioncalculation becomes function calculation.

@ericmutta : Thanks for your contribution! The author(s) have been notified to review your proposed change.

Hi @VanMSFT, any chance you could review and merge this? It's a single-character fix and shouldn't take too much time to review. Thanks in advance and happy new year!

@ericmutta - Hi Eric, sorry for the delay. This article has been re-worked, and your changes are already incorporated in the live document. We do really appreciate your help on our documentation, and appreciate your PR. Since the changes have are already in place, I will go ahead and close this PR. Please feel free to let us know if you have further concerns.

@VanMSFT many thanks for following up, looks good to me, so no further concerns :+1:


⚠ Secret Website 3 has degraded performance

In 3122ed6, Secret Website 3 ($SECRET_WEBSITE_3) experienced degraded performance:

HTTP code: 200
Response time: 15442 ms

Resolved: Secret Website 3 performance has improved in ef78e65.


review docs getting started copy

Getting Started sections need copy review

@abemassry can we close this? or should we use this as a reference for adding the curl detail to the intro

Can we just add a paragraph / few sentences on where to create a PAT?


SSM waiter for command to complete

Waits for an ssm command invocation to complete.
Closes https://github.com/boto/botocore/issues/1744

Codecov Report

Merging #1753 into develop will decrease coverage by 0.03%.
The diff coverage is n/a.

@@             Coverage Diff             @@
##           develop    #1753      +/-   ##
===========================================
- Coverage    92.44%   92.41%   -0.04%
===========================================
  Files           53       53
  Lines         9851     9851
===========================================
- Hits          9107     9104       -3
- Misses         744      747       +3

Impacted Files
Coverage Δ

botocore/credentials.py
98.44% <0%> (-0.39%)
:arrow_down:

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 6c7dc9b...41a04a0. Read the comment docs.

Codecov Report

Merging #1753 into develop will decrease coverage by 0.03%.
The diff coverage is n/a.

@@             Coverage Diff             @@
##           develop    #1753      +/-   ##
===========================================
- Coverage    92.44%   92.41%   -0.04%
===========================================
  Files           53       53
  Lines         9851     9851
===========================================
- Hits          9107     9104       -3
- Misses         744      747       +3

Impacted Files
Coverage Δ

botocore/credentials.py
98.44% <0%> (-0.39%)
:arrow_down:

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 6c7dc9b...41a04a0. Read the comment docs.

Can this get a look over botocore team? Other PRs that just add waiter config have merged before without added integration tests. I just wrote pretty much the same waiter and found this while preparing my own PR.

I've tested this waiter in one of my projects and it seems to work as expected.

Can we get this merged ?  Would like to start using it without having to copy it into my own custom waiter.

Is this feature ready to be merged?

Hi all,
Thanks again for the request. We are now submitting requests for paginators and waiters upstream so that all AWS SDKs benefit from a consistent implementation. I will pass on the request for these waiters to the service team. We will also update the guidance in the contributing guide to better reflect this policy. I've added an issue to track this here:
aws/aws-sdk#90
Thanks again for bringing this to our attention!

@stobrien89 I'm a little bit confused as to how this is meant to work. This is an open PR with working code that solves the problem that many many teams have, and could be merged right now into botocore.
aws-sdk project on the otherhand seems to be an abstract issue tracker - that I assume would generate tickets/issues for some to implement these exact changes in every sdk project.
Is the intent that we wait another 3 years before this issue is looked at in aws-sdk project, before someone the creates a PR in this repo again, and waits another 3 years for it to accepted?
The aws-sdk seems like a good idea to gain consistency between SDKs but I have to ask, is that important? because this appears to make getting changes to botocore even more difficult than it was before.

Hi All,
Just wanted to touch base— I haven't heard anything from the SSM team on this just yet, but I bumped our internal ticket on this in hopes of expediting a response.  Any updates are sent to me by email, so I'll let you know as soon as I hear anything!

Thanks @stobrien89, I appreciate it

hi @stobrien89 is there any update on this? I am also face the same issue and an improvement for this would be really helpful

Hi @kiararip91,
I haven't received a response from the team yet after bumping the ticket.  I'm working on finding a point of contact for ssm feature requests so I can hopefully provide a meaningful update.  I'll let everyone know as soon as I hear anything!

thanks @stobrien89

Hi all,
Just received an update from the SSM team today— They've added this request to their backlog, which is a good sign, but I there is not an estimated date for completion as of right now.  I'll provide any additional updates I receive from them!

Opened, Tested and Fixed in 2019
2020 ... 2021 ... 2022 ??
Nothing happened, please help @stobrien89  @aBurmeseDev @mattsb42-aws


Add hot module reloading like in the project template

See: https://github.com/jincod/AspNet5DemoApp

Should update docs on dotnet run + npm start and related stuff before closing this issue.

Decided to settle on regular live reload (full refresh on changes) instead of true hot module replacement for two reasons:

A bit easier to configure.
Feels safer. I'm much more confident that the reload logic won't fail and cause wonky behavior when updating component tree or something.


Vue.merge, reactive deep merge of objects

What problem does this feature solve?
I want to merge two or more objects like _.merge, $.extend or Object.assign, but I can't get the changes outside the component, becoause this methods does not call the Vue.set.
I created a custom method like below, but it would be nice to have this feature out of the box
What does the proposed API look like?
Vue.prototype.$merge = (baseValue, value) => {
    // merge arrays
    if (
        Array.isArray(baseValue)
        && Array.isArray(value)
    ) {
        for (let i = 0; i < value.length; i  ) {
            let val = Vue.prototype.$merge(baseValue[i], value[i]);
            if (val === undefined)
                continue;
            if (baseValue[i])
                Vue.set(baseValue, i, val);
            else
                baseValue.push(val);
        }
    }
    // merge objects
    else if (
        value
        && baseValue
        && typeof value === 'object'
        && typeof object === 'object'
    ) {
        for (let key of Object.keys(value)) {
            let val = Vue.prototype.$merge(baseValue[key], value[key]);
            if (val === undefined)
                continue;
            Vue.set(baseValue, key, val);
        }
    }
    // return value
    else if (value !== undefined)
        return value;
    else
        return baseValue;
};

This can be done in userland as a custom helper - I think the use case is quite niche to be included in core. As stated in the past, we intend to avoid adding pure utility functions unless it cannot be easily implemented by the user.


Inconsistent behavior with sockets

Steps to reproduce
When activating "Local network access", in which Windows and WSA get the same IP address, we can't communicate between two running apps using sockets. We can communicate with a TCP socket we opened in WSA from Windows.
When deactivating "Local network access", the apps can communicate over sockets, but we cannot communicate between WSA and Windows.
In both scenarios, we try to connect to localhost and a specific port.
Before the "Local network access" feature was available, the workaround shown in issue #213 did work as expected.
✔ Expected Behavior
When activating "Local network access" we should be able to communicate both between apps and between WSA and Windows.
❌ Actual Behavior
"Local network access" prevents the localhost communication inside WSA.
Other Software
No response
Please specify the version of Windows Subsystem for Android
2310.40000.2.0

UPDATE:
I use Java's ServerSocket to create a socket that listens to a specific port (without specifying the interface or the IP address). Before the "Local network access" feature was available, when I was listening to a port in all interfaces with the previous "Advanced Networking" mode, I could connect to that port by creating a Socket client that connects to <IP_ADDRESS> and that port. Unfortunately, now with the "Local network access" feature, the Socket client cannot connect to the server socket.
I used netcat (the nc command) to test the functionality of inner communication in WSA and saw the following:

Running the command nc -s <IP_ADDRESS> -lp 1234 starts a server port in the lo interface. In this case, we can connect to the port using the command nc <IP_ADDRESS> 1234.
Running the command nc -s <IP_ADDRESS> -lp 1234 starts a server port that should listen to all interfaces. In this case, we can connect to the port using the command nc <IP_ADDRESS> 1234.
Running the command nc -s <ip-address-of-eth0> -lp 1234 starts a server port in the eth0 interface. In this case, we cannot connect to the port using the command nc <IP_ADDRESS> 1234.

Running the command nc -lp 1234 starts a server port that should listen to all interfaces (should be the same as nc -s <IP_ADDRESS> -lp 1234). In this case, we cannot connect to the port using the command nc <IP_ADDRESS> 1234.


Integration with Wallabag2

Add Wallabag2 as external service for bookmarks.
Issue #277

Why did you introduce a new dependency that is not compatible with 5.3?

@fguillot Wallabag API use POST requests with JSON response. I had tried to use PicoFeed and JsonRPC packages, but I could not. After that I decided to find small package implemented a REST client and found this one. I found that it is not support php 5.3 only after had made pull request. If you want support php 5.3 or you don't want to use new dependencies I'll implement REST POST request function a bit later and remove this package.

You don't really need an external library to make a HTTP call. For example, you can use curl or the stream context if not available. Here an example of plugin for tiny-rss, https://github.com/joshp23/ttrss-to-wallabag-v2/blob/master/wallabag_v2/oauth.php

Just tested commit 0e2bf84 and the wallabag integration seems to work perfectly! thank you

Oh, thank you for this feature.
Nico, from @wallabag team.


Issue in enviornment setup

I followed the setup instructions in the README and when I tried to run the train script with:
python train.py --configs defaults lexa_temporal --task dmc_walker_walk --logdir ~/logdir/lexa_temporal_walker
I got the following error:
Traceback (most recent call last):
  File "train.py", line 9, in <module>
    from dreamer import Dreamer, setup_dreamer, create_envs, count_steps, make_dataset, parse_dreamer_args
  File "/home/ei-lab/rbhagat8/lexa/lexa/dreamer.py", line 27, in <module>
    import wrappers
  File "/home/ei-lab/rbhagat8/lexa/lexa/wrappers.py", line 5, in <module>
    import mujoco_py
  File "/home/ei-lab/miniconda3/envs/lexa/lib/python3.6/site-packages/mujoco_py/__init__.py", line 3, in <module>
    from mujoco_py.builder import cymj, ignore_mujoco_warnings, functions, MujocoException
  File "/home/ei-lab/miniconda3/envs/lexa/lib/python3.6/site-packages/mujoco_py/builder.py", line 510, in <module>
    cymj = load_cython_ext(mujoco_path)
  File "/home/ei-lab/miniconda3/envs/lexa/lib/python3.6/site-packages/mujoco_py/builder.py", line 106, in load_cython_ext
    mod = load_dynamic_ext('cymj', cext_so_path)
  File "/home/ei-lab/miniconda3/envs/lexa/lib/python3.6/site-packages/mujoco_py/builder.py", line 125, in load_dynamic_ext
    return loader.load_module()
ImportError: /home/ei-lab/miniconda3/envs/lexa/bin/../lib/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by /lib/x86_64-linux-gnu/libOSMesa.so.8)

But I was able to fix this using these two commands:
 rm ~/miniconda3/envs/lexa/bin/../lib/libstdc++.so.6
cp /usr/lib/x86_64-linux-gnu/libstdc++.so.6 ~/miniconda3/envs/lexa/bin/../lib/
But after that, when I ran the train script again using the same command as above I got this error:
Traceback (most recent call last):
  File "train.py", line 9, in <module>
    from dreamer import Dreamer, setup_dreamer, create_envs, count_steps, make_dataset, parse_dreamer_args
  File "/home/ei-lab/rbhagat8/lexa/lexa/dreamer.py", line 29, in <module>
    import envs
  File "/home/ei-lab/rbhagat8/lexa-benchmark/envs/__init__.py", line 1, in <module>
    from envs.robobin import RoboBinEnv
  File "/home/ei-lab/rbhagat8/lexa-benchmark/envs/robobin.py", line 8, in <module>
    import metaworld.envs.mujoco.sawyer_xyz.v1 as sawyer
  File "/home/ei-lab/rbhagat8/lexa-benchmark/metaworld/__init__.py", line 7, in <module>
    import metaworld.envs.mujoco.env_dict as _env_dict
ModuleNotFoundError: No module named 'metaworld.envs.mujoco'

I tried reinstalling metaworld with pip install metaworld but it still results in the same error. Any advice?

The error came up before I pip installed metaworld as well.
I ran
conda env create -f environment.yml
conda activate lexa
and then
export PYTHONPATH=~/rbhagat8/lexa/lexa:/home/ei-lab/rbhagat8/lexa-benchmark
export MUJOCO_RENDERER=egl; export MUJOCO_GL=egl
export MJLIB_PATH=~/.mujoco/mujoco200/bin/libmujoco200.so
export MJKEY_PATH=~/.mujoco/mjkey.txt

and then
rm ~/miniconda3/envs/lexa/bin/../lib/libstdc++.so.6
cp /usr/lib/x86_64-linux-gnu/libstdc++.so.6 ~/miniconda3/envs/lexa/bin/../lib/
to fix the first error above.
After this I used
python train.py --configs defaults lexa_temporal --task dmc_walker_walk --logdir ~/logdir/lexa_temporal_walker
to run the train script and got the meta worlderror

Can you verify that metaworld.envs.mujoco is present? Since it is in the repo you should have it as well.

The mujoco folder isn't in the lexa-benchmark repo. I just tried recloning it and got this message:
fatal: packed object 9349e92fd000b33e00fbdcc856d2d7528b17a8ba (stored in ~/lexa-benchmark/.git/objects/pack/pack-3e9847d724f9e099ec4bbe6e66d9c03bcb04bdb9.pack) is corrupt
warning: Clone succeeded, but checkout failed.
You can inspect what was checked out with 'git status'
and retry with 'git restore --source=HEAD :/'

I cannot replicate this problem. You can manually download a zip from github.

Will do! I'll give that a try and let you know. Thanks for all the help!

Awesome that seemed to fix this problem, thanks! Now, just debugging some cudnn stuff to get the repo running.


I want to know what the weights of the various losses of your network are during training, because I think that different loss assignments will make the network focus on a certain branch. How do you assign the weights of loss?

Hi! The weights used in the experiments are the default ones defined in SpotNet/object detection/src/lib/opts.py, unless specified otherwise in the respective SpotNet/object detection/experiments sh file. Hope this helps!


Feature Request: PHP & Tailwind CSS docs

Feature Requested
Can you please add PHP, Tailwind CSS, and Vue.js docs? Thank you!
Relevant Screenshot
No response
Checklist

[X] The feature would be useful to more users than just me.

Hi, since I do not use those languages myself, I cannot add them myself, but PRs adding searches for them as welcome.
Adding a new language is fairly straightforward, for most cases, the searches are 10-20 lines of code: https://github.com/chrisgrieser/alfred-docs-searches/tree/main/scripts

With version 2.0, this workflow has been overhauled to include all devdocs, meaning Tailwind and PHP are now supported.
https://github.com/chrisgrieser/alfred-docs-searches/releases/download/2.0.0/alfred-docs-searches.alfredworkflow


Source Variable substitution only works for single occurrence

Steps To Reproduce
(This can also be reproduced using a real sources/ file, but is harder to show).
Import subSourceVariables from https://github.com/evidence-dev/evidence/blob/next/packages/lib/plugin-connector/src/data-sources/sub-source-vars.js into nodejs:
process.env.EVIDENCE_VAR__var_a = 'abc';   // "hack", usually already set in the calling environment
process.env.EVIDENCE_VAR__var_b = 'def';

console.log(subSourceVariables('|${var_a}|${var_b}|'));

Environment

Node version (node -v): v20.5.1

Expected Result
'|abc|def|'

Actual Result
'|abc|${vardef'

Workarounds
Maybe: Use only a single variable?
Better: Fix implementation to not rely on (or: adjust) match indices that become invalid after the first replacement.

I believe this whole (buggy) part:
	let output = queryString;
	// This regex is prefixed with a negative lookbehind to disqualify $${var} patterns
	const regex = RegExp(/(?<!\$)\$\{(.+?)\}/, 'g');

	let match;
	while ((match = regex.exec(queryString)) !== null) {
		const fullMatch = match[0]; // e.g. ${variable}
		const varName = match[1]; // e.g. variable
		const start = match.index;
		const end = match[0].length + start;
		if (...replacement exists...) {
			const value = [... obtain replacement...]
			const before = output.substring(0, start);
			const after = output.substring(end);
			output = `${before}${value}${after}`;

can simply be replaced with
	// This regex is prefixed with a negative lookbehind to disqualify $${var} patterns
	const regex = RegExp(/(?<!\$)\$\{(.+?)\}/, 'g');

	let output = queryString.replaceAll(regex, (fullMatch, varName) => {
		return [...obtain replacement or warn/throw];
	});

(in older JS standards, .replace(regex, (...) => ...) would also work; in newer JS, .replaceAll is a bit clearer.)

closed by #2173


⚠ Bofrost.de has degraded performance

In b3a8258, Bofrost.de (https://www.bofrost.de) experienced degraded performance:

HTTP code: 200
Response time: 1044 ms

Resolved: Bofrost.de performance has improved in 2835c01.


Cannot find connected ios devices

Hi,
I have connected my iphone 8 to macbook pro, and running flutter devices no devices are shown.
But if I open xcode, I can see the device there
Flutter doctor seem  to be successful with output:
flutter doctor -v
[✓] Flutter (Channel stable, 2.2.2, on macOS 11.4 20F71 darwin-x64, locale en-DE)
    • Flutter version 2.2.2 at /Users/kristi.jorgji/flutter
    • Framework revision d79295af24 (12 days ago), 2021-06-11 08:56:01 -0700
    • Engine revision 91c9fc8fe0
    • Dart version 2.13.3

[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.3)
    • Android SDK at /Users/kristi.jorgji/Library/Android/sdk
    • Platform android-29, build-tools 29.0.3
    • ANDROID_HOME = /Users/kristi.jorgji/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.8+10-b944.6916264)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 12.5, Build version 12E262
    • CocoaPods version 1.10.1

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 4.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.8+10-b944.6916264)

[✓] IntelliJ IDEA Ultimate Edition (version 2020.2.3)
    • IntelliJ at /Users/kristi.jorgji/Applications/JetBrains Toolbox/IntelliJ IDEA Ultimate.app
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart

[✓] VS Code (version 1.57.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension can be installed from:
      🔨 https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter

[✓] Connected device (1 available)
    • Chrome (web) • chrome • web-javascript • Google Chrome 91.0.4472.114

I deleted rm -rf ~/flutter/bin/cache, then flutter devices downloaded new binaries and device was shown


Empty  profile updating doesn't notify errors

Steps:
1.Visit https://apinf.io
2.Sign in
2.Go to Profile section
3.Click on update button
Expected: Not successful in update profile and notify users to fill empty fields
Actual:  shows notification dialog 'profile updated' while text fields are empty
- Update button is active all the time.
Screenshot:

Fields are optional, so there are no errors when submitting empty values. They will have to remain optional, because we don't require all users to provide that information.


isURL() incorrectly claims http:// is valid url

validator.isURL('http://', { require_host: false }); // returns true

I understand that I could set require_host: true to get the right result, but then if the test string is a relative url (/example/foo.html), it won't validate.  And I can't just || two executions of isURL() to cover both cases (as suggested for a similar issue), because it will lead to an incorrect result because http:// is flagged as valid in the above example:
var str = '/example/foo.html';
validator.isURL(str, { require_host: true }) || validator.isURL(str, { require_host: false }) // true

var str = 'http://';
validator.isURL(str, { require_host: true }) || validator.isURL(str, { require_host: false }) // true

It seems like validator should recognize that passing a protocol and nothing else cannot be a valid url, even if configured for not requiring a hostname.

This is fixed in an upcoming release.

Was this actually fixed, I am seeing this as a validURL, and I can't see how it is:
validator.isURL('http://www.te');

.te isn't a valid country code domain AFAIK, but if it were, www.te would
technically be a well-formed and valid URL.  (eg www.com exists.)
On Fri, Sep 8, 2017 at 11:45 AM, Dean S<EMAIL_ADDRESS>wrote:

Was this actually fixed, I am seeing this as a validURL, and I can't see
how it is:
validator.isURL('http://www.te');
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/chriso/validator.js/issues/642#issuecomment-328184067,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AADs18NyDEh7c1M3H0ysV3dqn79BoG8cks5sgYtSgaJpZM4Mnca8
.

--
Steve Carlson
<EMAIL_ADDRESS>

validator.isURL('www.bro', { require_tld: true }) <-- WHY is this returning true.  I clearly do NOT have a TLD here, yet, it is saying 'a-ok', why?

@dsacramone see #623, #428, #429, https://github.com/chriso/validator.js/issues/704#issuecomment-325167598.
www.bro is a syntactically-valid URL string, and bro is a syntactically-valid generic TLD. There is nothing special about the www subdomain, e.g. www.com is a valid hostname that resolves – there doesn't have to be anything between www and the TLD. Checking whether the generic TLD is registered with IANA is outside the scope of the library. The library doesn't, and will never, include the full, ever-changing list of generic TLDs – all it can do is check whether the string is valid. Checking whether the hostname resolves is also outside the scope of the library, although this is easy to do yourself if you're validating on the backend.


image size

I am combining 6 jpg images about 70K a piece into an animated gif using 20 as the compression value... The resulting GIF is about 3MB. Does this sound normal to you? It seems like it's excessively large. Maybe it has something to do with the JPG compression. Thanks!

GIFs can get large quite quickly so 3MB isn't unfathomable. There could be factors like the JPG's being large which would definitely cause such problems.
To verify if it's this library or GIFs in general, we could try something like ImageMagick to create a GIF and GIF optimizers:

http://www.imagemagick.org/Usage/anim_basics/
https://github.com/imagemin/imagemin-cli

Closing issue due to inactivity

@twolfson
need <150. Very bad. And if png try?


"API Table of Contents" doesn't fully work

The following options don't work:

AFK Player Utility
Command Builder
Command Utility
Custom gradient colour interface
Directional Enumeration
Economy interface wrapper
Entity creation tools
File management
Item Recipe Builder
Item Modification Builder
Legacy Safe NamespacedKey
Material Matcher
Message Formatter
Tab Completion Builder
Template Creation
Text Component Builder
Vault Permission Interface Wrapper

In the library section:

Applicable Data
Annotation Discovery
Base64 Serialization
Cuboid Generation
List Formatting Utility
Math Formatting Utility
Persistent Data Container
Reflective Class Instantiation
Region Services w/ Flag Abstraction
(all bar 2 in this section)

Hi! Sorry for the inconvenience but i just updated that as of today! Im still completing the wiki while updating other stuff but in the mean time if you have a piece of utility youd like to use and need a tutorial on thats not posted yet let me know so i can get it added asap!

Expect all wiki pages to be partially/fully completed by the end of today.