Added manage_zk_file parameter, tests, and documentation.

/etc/mesos/zk is not necessary for mesos-master or mesos-slave, and this module already adds ZK="<zk URL(s)>" to /etc/default/mesos-master and MASTER="<zk URL(s)>" to /etc/default/mesos-slave - which is what Mesos ends up using. /etc/mesos/zk, on the other hand, is hardcoded in the Marathon framework to be used. I have created a module to configure Marathon, and I am having it manage /etc/mesos/zk.
This PR adds a parameter to the deric-mesos module to enable/disable management of /etc/mesos/zk by this module. This parameter, manage_zk_file, defaults to true to maintain backwards compatibility for users of the module.
This aim of this PR, and associated discussion, can be found at PR https://github.com/deric/puppet-mesos/pull/31

Much better, thanks!


Implement CREATE TABLE parsing

The CREATE TABLE statement has the following EBNF grammar (for ANSI-92 SQL):
<table definition>    ::=
         CREATE [ { GLOBAL | LOCAL } TEMPORARY ] TABLE <table name> <table element list> [ ON COMMIT { DELETE | PRESERVE } ROWS ]

 <table element list>    ::=   <left paren> <table element> [ { <comma> <table element> }... ] <right paren>

<table element>    ::=   <column definition> | <table constraint definition>

<column definition>    ::=
         <column name> { <data type> | <domain name> } [ <default clause> ] [ <column constraint definition> ... ] [ <collate clause> ]

<column name>    ::=   <identifier>

 <column constraint definition>    ::=
         [ <constraint name definition> ] <column constraint> [ <constraint attributes> ]

<constraint name definition>    ::=   CONSTRAINT <constraint name>

<constraint name>    ::=   <qualified name>

<column constraint>    ::=
         NOT NULL
     |     <unique specification>
     |     <references specification>
     |     <check constraint definition>

<unique specification>    ::=   UNIQUE | PRIMARY KEY

<references specification>    ::=
         REFERENCES <referenced table and columns> [ MATCH <match type> ] [ <referential triggered action> ]

<referenced table and columns>    ::=   <table name> [ <left paren> <reference column list> <right paren> ]

<table name>    ::=   <qualified name> | <qualified local table name>

<reference column list>    ::=   <column name list>

<column name list>    ::=   <column name> [ { <comma> <column name> }... ]

<match type>    ::=   FULL | PARTIAL

<referential triggered action>    ::=
         <update rule> [ <delete rule> ]
     |     <delete rule> [ <update rule> ]

<update rule>    ::=   ON UPDATE <referential action>

<referential action>    ::=   CASCADE | SET NULL | SET DEFAULT | NO ACTION

<delete rule>    ::=   ON DELETE <referential action>

<check constraint definition>    ::=   CHECK <left paren> <search condition> <right paren>

Will create separate issue for CHECK constraints. Otherwise, this is done.


Missing iOS's implementations

Use case
The current implementation of the file_selector plugin has missing features on iOS.

There are other packages available that offer this implementation that can be used as guidance.
Proposal
Add the missing implementations to satisfy the whole interface.

One of your pictures is of the test page for getSavePath. Can you elaborate on what you expect that method to do on iOS?

Hi Stuart, thanks for your prompt response. About the second image, I would expect that the plugin let users select a directory, like it does on the other platforms.

Here is the code that is being invoked on this page:
Future<String?> getDirectoryPath({
  String? initialDirectory,
  String? confirmButtonText,
}) async {
  return FileSelectorPlatform.instance.getDirectoryPath(
      initialDirectory: initialDirectory, confirmButtonText: confirmButtonText);
}

Thanks,

About the second image, I would expect that the plugin let users select a directory

Yes, but that's getDirectoryPath; I was asking about getSavePath.

Hi Stuart, we just want to share the same functionality among all the platforms. We've already verified that the XFile abstraction allows developers to store a file in the device.
Thanks,

we just want to share the same functionality among all the platforms

I understand that, but we're wrapping OS functionality in file_selector. What is the iOS version of a save dialog that you are proposing wrapping with getSavePath?

We've already verified that the XFile abstraction allows developers to store a file in the device.

XFile is an abstraction around files; file_selector is an abstraction around native file selector UI. They are very different layers. getSavePath doesn't save anything, it shows UI that allows someone to choose where to save something. I'm trying to understand what you are proposing that UI be on iOS.

Hi, please correct me if I'm wrong but, I would propose opening the file selector just to pick a folder, pretty similar to what getDirectoryPath will do.
Thanks,

getSavePath returns a file, not a directory, so that would have the wrong semantics.
I'm not aware of any iOS analog to a save dialog, and it sounds like you aren't either, so I'm still not clear on why you believe that the lack of implementation of getSavePath is a bug.

Hi Stuart,
Thanks for the clarification, now I have a better understanding of your concern. We explored other packages and found inspiration in this one called flutter_file_dialog. It allows users to select a folder where the file is going to be saved.
The current code of the flutter_file_dialog doesn't match one-to-one with the file_selector implementation but, it offers a great starting point for developers.

What do you think of offering a UI like this one?

I'm not clear on what that UI is exactly. What component is that displaying?

Hi Stuart,
It is relying on an UIDocumentPickerViewController.

Hi @juandausa, @stuartmorgan
I would like to summarize the proposal as below, please correct me if I'm missing something:

Propose adding implementation to get directory path on iOS: getDirectoryPath()
Proposal adding implementation to save a file on iOS: getSavePath(). The proposal UI is relying on an UIDocumentPickerViewController. For example: https://github.com/flutter/flutter/issues/111583#issuecomment-1253935095

Labeling this issue as a new feature. Thanks!

Hi @huycozy, that's correct. Thanks!


Suggestion. Coercing null's only for required properties.

First of all I thank you for your project!
I have a suggestion.
Often coerceTypes behavior is undesirable.
For example
// SH1
var schema = {
  "properties": {
    "foo": { "type": "string" },
    "bar": { "type": "number" }
  }
};
var source = { "bar": null };
// Coerce to (current result):
//{ "bar": 0 }

It seems to me that it would be logical for such a result:
// Coerce to (desired result):
{  }

since property "bar" is optional
Expected (and currently):
// SH2
var schema = {
  "properties": {
    "foo": { "type": "string" },
    "bar": { "type": "number" }
  },
  "required": ["bar"]
};
var source = { "bar": null };
// Coerce to (current result):
//{ "bar": 0 }

What do you think about it? This is logical and would be very helpful in my case. Possible and other users such behavior would seem preferable.
More example (problematically):
// SH3
var schema = {
  "properties": {
    "foo": { "type": "string" },
    "bar": { "type": ["number", "null"] }
  }
};
var source = { "bar": null };
// Coerce to:
//{ "bar": null }

It may need a separate option?
Thank you!

null is a value in JSON rather than an absent property. So if you use an option coerceType it will be coerced to the first allowed type (if "null" is not allowed)
The second schema does not coerce null to 0, it leaves it as it is (see https://runkit.com/esp/583dc2ae82382300136c0c3a). What is the problem here?
The behaviour you want for required property should be achieved with the default keyword - when the property is missing there is nothing to coerce but if the default is present it will be used. See docs about assigning defaults.
I don't think any changes are necessary to be honest. You can also add any custom post-processing with custom keywords (e.g. if you want to delete property when it is null or 0).

I sealed in SH3, sorry
SH2 - is the current behavior with a required property
Desired result of SH1 - empty source, because this property is not necessary, it can not contain null seamlessly and can be removed from the source (by new special coercive option)

Desired result of SH1 - empty source, because this property is not necessary, it can not contain null seamlessly and can be removed from the source (by new special coercive option)

I will not be adding an additional option, because:

I think this requirement is not common enough
coerce means "change", it does not mean remove. null is a value, so removing it is not something ajv will support.
making coercion dependent on another keyword in addition to type keyword will substantially complicate it.

It can be implemented for your use-case as a custom keyword, e.g. removeNull: true or you can even implement a more generic keyword removeIf: { type: 'null' } that takes schema as a value and removes current property if the data is valid against this schema. I'd be happy to add it to ajv-keywords package if you contribute it there.

@epoberezkin thanks for your reply!

Thanks for this, it gives a lot of context on an issue i am experiencing right now.
@epoberezkin i would like this behaviour in all validations on all my schemas and nested schemas. Is it in some way possible to use a (single) custom keyword for global ajv validation behaviour?

i would like this behaviour in all validations on all my schemas and nested schemas.

Why do you need it to be a part of validation then? The whole point of schema is to apply specific requirements (and possibly changes). If you just want to modify everything, it can be just the code you run before or after validation.


cant run the bootstrap

when I run ./bootstrap I get this error
ERROR:  While executing gem ... (Gem::FilePermissionError)
You don't have write permissions into the /var/lib/gems/1.9.1 directory.
and when I sudo it I get also another error
Don't run Bundler as root. Bundler can ask for sudo if it is needed, and
installing your bundle as root will break this application for all non-root
users on this machine.
[!] There was an error parsing Gemfile: No such file or directory - .ruby-version. Bundler cannot continue.
from /home/oddcoder/choosealicense.com/Gemfile:2
-------------------------------------------
source "https://rubygems.org"

ruby File.read(".ruby-version").strip

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

I'm not able to duplicate this. Does this help fix it for you? http://flummox-engineering.blogspot.com.au/2014/05/you-dont-have-write-permissions-for.html


Fingerprinting invalidates resources so useResourceCacheWhen fails

When using resource.Fingerprint, after ToCSS Hugo complains of
Building sites … ERROR 2020/03/15 17:49:13 Transformation failed: TOCSS: failed to transform "css/cat-oldnew-mashup.scss" (text/x-scss): resource "scss/css/cat-oldnew-mashup.scss_0e8a3c4652156e4e2d9daae0f6b77134" not found in file cache. Check your Hugo installation; you need the extended version to build SCSS/SASS.

despite
[build]
  useResourceCacheWhen = "fallback"

in config.toml for the exampleSite for a theme.
EDIT: And having copied resources from exampleSite to theme after building the site using hugo extended.
What version of Hugo are you using (hugo version)?

0.66.0 (extended and basic)

Does this issue reproduce with the latest release?
Need to check, consider this a placeholder / heads up until then.

Update: It may not be fingerprinting that is the issue but rather the use of modules and having changes in the theme that exampleSite is trying to use, but can't because the changes are not yet committed and versioned.  Will get back to you...

So fingerprinting isn't the issue at all.  The issue was that because the theme imports itself (there's a reason, but it's not relevant to this bug), so exampleSite needs to use the github URL and not just the themeDir setting.  Because of that, for certain changes, it is necessary to push to a public repo even though things aren't working, tag it, and then one can do an update of the offending module/theme, and things will work again.


edges_trunkbasesettings, error with new setting "inboundsiteid"

Hi,
There is a new option when creating an external trunk, Inbound -> Number Plan Site.
When i export, this field does not seem to be in the export.
And when i try to modify a trunk through terraform, where the live version has the field set, i got an error:
[{"errorCode":"REQUIRED_FIELD_MISSING","fieldName":"inboundSiteId"}]}
"status":"400 Bad Request","error":{"status":400,"message":"Field 'inboundSiteId' is required and cannot be empty."
But when i have a blank environment, with no trunks, i can create the trunk without the field "inboundSiteId" with no problem
Possible something to add in the export code? And also possibly, i need to add the field to the terraform resource, but i do not know where.
Kind regards,
Addie

Hi Addie,
Thanks for reporting this.  We have created an internal ticket to track this (DEVENGAGE-2243) and I will get someone looking at this soon.

Hi,
I can see that inboundsiteid has been added to the terraform plugin, thanks!. But i think we have another problem now.
Since, according to the website: https://help.mypurecloud.com/articles/improve-inbound-call-handling-with-the-number-plan-site-feature/
The site that you select controls the number plan that a trunk uses, both for transforms on inbound calls and for subsequent outbound transfers for calls that never flow through another site
So, if the the newly created inbound site Y has an outbound route with trunk X, because of the need of the "subsequent outbound transfers" in the help webpage.
And Trunk X has "inboundSite" site Y. Both can never be created, because they depend on eachother, terraform also shows an error, when doing this.
Or must i read "subsequent outbound transfers" as "internal transfers only", then, there is no problem. Because the "inboundsite " does not need an outbound route.
Kind regards,
Addie

Hi Striker,
I will need to chat with the Dev team about what the behavior of their underlying API is.
Thanks,
John

Hi @carnellj-genesys
Any news regarding this issue? Did you get any info back from dev, about this chicken/egg issue?
Kind regards,
Addie

Hi Addie,
No update.  Still working it.
Thanks,
John

Hi John,
I see in another issue listed, that this is tracked under DEVTOOLING-477. Lets not keep both issues open.
Will close mine.
Kind regards,
Addie


Main page with a button [not yet closed]

Basic structure, with navigation "+" button (but without the action for it)

Ooops. So I will address this first and then I will go on with restructuring.


Training custom model

Hello;
Is there any way to train the models without coco_train_script.py and  just using model.fit? I made a custom model for object detection that uses head and anchorfree loss function of keras_cv_attention_models. but the hornet backbone is extended by concatanating its output to the input of an image reconstruction model with a custom loss function. please guide me for training the new model.
Thank you for your guidance

I think you are using a model with 2 outputs and 2 losses? Technically, you can modify coco_train_script.py for your own usage, or just follow the steps build model -> build dataset -> build optimzier -> init loss -> compile -> fit. Here is a standalone one extracted from the script.
import tensorflow as tf
from tensorflow import keras
from keras_cv_attention_models import yolov8, hornet
from keras_cv_attention_models.coco import init_dataset, eval_func, losses
from keras_cv_attention_models.imagenet import train, init_global_strategy, init_lr_scheduler

input_shape = (320, 320, 3)
num_classes = 2  # Specify the actual num_classes
batch_size = 4
anchors_mode = "anchor_free"
anchor_pyramid_levels = [3, 5]
rescale_mode = "raw01"
lr_base = 1e-3
lr_decay_steps = 30
data_name = "coco/2017"  # Or custom one "datasets/coco_dog_cat/detections.json"

strategy = init_global_strategy(enable_float16=True)

with strategy.scope():
    # Build own model
    backbone = hornet.HorNetTiny(num_classes=0, input_shape=input_shape)
    model = yolov8.YOLOV8_S(
        backbone=backbone, input_shape=input_shape, anchors_mode='anchor_free', regression_len=4, pretrained=None, num_classes=num_classes
    )
    # Add another output
    another_output = keras.layers.GlobalAveragePooling2D(name="another")(model.inputs[0])
    model = keras.models.Model(model.inputs[0], model.outputs + [another_output])

    train_dataset = init_dataset(
        data_name=data_name, input_shape=input_shape, rescale_mode=rescale_mode, batch_size=batch_size, anchors_mode=anchors_mode, anchor_pyramid_levels=anchor_pyramid_levels,
    )[0]
    # Add another output for dataset
    train_dataset = train_dataset.map(lambda xx, yy: (xx, (yy, tf.random.uniform([batch_size, 3]))))

    lr_scheduler, lr_total_epochs = init_lr_scheduler(lr_base, lr_decay_steps)
    loss = losses.AnchorFreeLoss(input_shape, pyramid_levels=anchor_pyramid_levels)
    metrics = losses.ClassAccuracyWithBboxWrapper(loss)
    optimizer = keras.optimizers.AdamW(learning_rate=lr_base, weight_decay=0.002)

    # Add another loss and metrics
    another_loss = keras.losses.MeanSquaredError()
    model.compile(optimizer, loss=[loss, another_loss], metrics={"outputs_fp32": metrics, 'another': None})
    coco_ap_eval = eval_func.COCOEvalCallback(data_name, rescale_mode=rescale_mode, batch_size=batch_size)

    other_fit_kwargs = {}  # Set custom ones for `model.fit`
    latest_save, hist = train(
        compiled_model=model,
        epochs=lr_total_epochs,
        train_dataset=train_dataset,
        test_dataset=None,  # COCO eval using coco_ap_eval callback, set `validation_data` for `model.fit` to None
        initial_epoch=0,
        lr_scheduler=lr_scheduler,
        basic_save_name="coco_test",
        init_callbacks=[coco_ap_eval],
        logs=None,
        **other_fit_kwargs,
    )

Thank you for your kindness and helpful response. My first outputs of dataset are a set of images and the second ones are object detection labels. Isn't there any way to feed directory of two sets of images and labels to the model in keras_cv_attention_model? If I want to create json file how should I do it?

The json file doesn't supports this, you can modify the dataset after creation anyway. Like using tf.data.Dataset.zip and map combining 2 built datasets, or justing adding an input to dataset like the output one.
train_dataset = init_dataset(...)[0]
another_dataset = init_dataset(...)[0]
# Zip them
tt = tf.data.Dataset.zip((train_dataset, another_dataset))

(aa, bb), (cc, dd) = tt.as_numpy_iterator().next()
print(aa.shape, bb.shape, cc.shape, dd.shape)
# (4, 320, 320, 3) (4, 320, 320, 3) (4, 100, 7) (4, 100, 7)

# Map and rearrange, here keeps only the first lables output, but repeat twice
tt = tt.map(lambda one, another: ((one[0], another[0]), (one[1], one[1])))
(images, another_images), (labels, another_labels) = tt.as_numpy_iterator().next()
print(images.shape, another_images.shape, labels.shape, another_labels.shape)
# (4, 320, 320, 3) (4, 320, 320, 3) (4, 100, 7) (4, 100, 7)

Then create a model with 2 inputs, and 2 outputs, compile a new loss, and feed the dataset in.
another_input = keras.layers.Input(model.input_shape[1:])
another_output = model(another_input)
model = keras.models.Model([model.inputs[0], another_input], [model.outputs[0], another_output])
...
model.compile(optimizer, loss=[loss, another_loss], metrics={model.output_names[0]: metrics, model.output_names[1]: None})
latest_save, hist = train(compiled_model=model, train_dataset=train_dataset, ...)

Anyway, train_dataset and model are just typical TF Dataset and Model, you can apply any available TF / Keras api on them.

Thank you. I appreciate your kindness. With your helpful guidance I could design a new object detection model that consists of several models.  Now a new problem is appeared. Due to changing the model and using 2 inputs and 4 outputs in my model (the last output is object detection model output), a lot of bugs occured in eval_func.py during training. I fixed some bugs but now I can not do anything more to resolving them. What do you propose? Is there any straight forward method to evaluate the performance of model without using eval_func.py?

May try if rebuild a model taking required input/output for coco eval works in your case, before COCOEvalCallback.build.
def on_epoch_end(self, epoch=0, logs=None):
    if not self.built:
        if self.dataset_kwargs["rescale_mode"] == "auto":
            self.dataset_kwargs["rescale_mode"] = getattr(self.model, "rescale_mode", "torch")
        self.model = models.Model(self.model.inputs[0], self.model.outputs[-1])  # <- rebuild model
        self.build(self.model.input_shape, self.model.output_shape)

It should work without much issue...

Thank you for your guidance. Unfortunately I get an error again
{{function_node
_wrapped__Mul_device/job:localhost/replica:0/task:0/device:GPU:0}}
required broadcastable shapes [Op:Mul]
Call arguments received by layer "decode_predictions_1" "
f"(type DecodePredictions):
• preds=tf.Tensor(shape=(1, 5376, 10), dtype=float32)
• input_shape=None
• training=False
• nms_kwargs={'score_threshold': '0.001', 'iou_or_sigma': '0.5',
'max_output_size': '100', 'method': "'gaussian'", 'mode': "'per_class'",
'topk': '0'}
I investigated it and I found out that in my code the "anchors" shape in
decode_single function is (1280,4)  while it should be (5376,4). And it
arises from different input shapes of my combined model and the object
detection model. The combined model is as follows:
comb = Model(inputs=[input1,input2], outputs=[output1, output2, output3,
output4]). where input1 shape is (128,128,3). Its resolution is increased
and the output of it (output1) with the size of (512,512,3) is fed to the
yolox model and output4 is yolox output.
I tried so much but couldn't fix the error.
On Sat, Aug 12, 2023 at 10:33 AM leondgarse @.***>
wrote:

May try if rebuild a model taking required input/output for coco eval
works in your case, before COCOEvalCallback.build
https://github.com/leondgarse/keras_cv_attention_models/blob/main/keras_cv_attention_models/coco/eval_func.py#L487
.
def on_epoch_end(self, epoch=0, logs=None):
if not self.built:
if self.dataset_kwargs["rescale_mode"] == "auto":
self.dataset_kwargs["rescale_mode"] = getattr(self.model, "rescale_mode", "torch")
self.model = models.Model(self.model.inputs[0], self.model.outputs[-1])  # <- rebuild model
self.build(self.model.input_shape, self.model.output_shape)
It should work without much issue...
—
Reply to this email directly, view it on GitHub
https://github.com/leondgarse/keras_cv_attention_models/issues/134#issuecomment-1675751136,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AMHD5FVRF6DDVHANZERJ3U3XU4TEVANCNFSM6AAAAAA23W7MPA
.
You are receiving this because you authored the thread.Message ID:
@.***>

How about build model with self.model = models.Model(self.model.outputs[0], self.model.outputs[-1])? Also note if eval_func.py#L467 giving correct print info. Anchors shape should match with correct model input_shape.
from keras_cv_attention_models.coco import anchors_func
print(anchors_func.get_anchor_free_anchors(input_shape=(512, 512, 3)).shape)
# (5376, 4)

Thank you sir. I appreciate your responsibility. It works. Doesn't using "self.model = models.Model(self.model.outputs[0], self.model.outputs[-1])" lead to incorrect anchors? what about plotting predicted bounding boxes on images in the test phase in this case? As you know I have a custom model with different input shapes. Also, I changed the integration of features feeding to neck. When I load my trained model although I use my custom model architeture it skipps some layers and returns false results of object detection that is so different from AP values obtained by eval_func.py.

The anchor initializing actually needs only the model inpu_shape for anchor_free mode. Just providing a model with correct input_shape and output_shape should be fine.
It shouldn't skip any layer if using same architecture, may check the log which layers are skipped, and why they mismatch.
May also try load directlyfrom tensorflow import keras
import keras_cv_attention_models  # In case missing custom layer definition

model = keras.models.load_model("xxxx.h5", compile=False)
# build a sub-model again
model = keras.models.Model(model.outputs[0], model.outputs[-1])

Closing now, may raise new issue if still needed.


ddc not scheduling await correctly?

This code prints one way in dart2js and vm and another with ddc.
import 'dart:async';

foo() {
  print('running foo');
  return 'foo';
}

bar() async {
  print('running bar');
  return 'bar';
}

main() async {
  var f = new Future(foo);
  var b = await bar();

  await f;
}

In dart2js / vm, we get:
running bar
running foo

In ddc, we get:
running foo
running bar

@lrhn - does the spec require an order in the example above?  Is await supposed to map to a microtask?

@jmesserly @floitschG

@vsmenon is it possible our SDK code is just out of date here? that seems the most likely guess. I doubt it has anything to do with async/await -- which is a syntactic transform. Try reproducing with Future.then?

see also -- my FutureOr change which had some implementation changes to future_impl:
https://codereview.chromium.org/2647833002/diff/160001/pkg/dev_compiler/tool/input_sdk/lib/async/future_impl.dart
there might be other updates we need in dart:async.

You're right.  If I replace main with:
main() async {
  var f = new Future(foo);
  bar().then((_) {
    f.then((_) {});
  });
}

I see the same ordering difference.

ahhh nice!!! yeah we're rly behind especially on dart:async, so missing any recent bug fixes. should really do a roll for all that. it was super easy to roll future, at least.

After chatting with @jmesserly - the spec is clear on await.  The question is whether the async function should be scheduled via microtask.

fyi, dart2js uses _asyncHelper:
dynamic _asyncHelper(dynamic object,
    dynamic /* int | _WrappedAsyncBody */ bodyFunctionOrErrorCode,
    Completer completer) {
  if (identical(bodyFunctionOrErrorCode, async_error_codes.SUCCESS)) {
    completer.complete(object);
    return;
  } else if (identical(bodyFunctionOrErrorCode, async_error_codes.ERROR)) {
    // The error is a js-error.
    completer.completeError(unwrapException(object),
    getTraceFromException(object));
    return;
  }

  _awaitOnObject(object, bodyFunctionOrErrorCode);
  return completer.future;
}

/// Awaits on the given [object].
///
/// If the [object] is a Future, registers on it, otherwise wraps it into a
/// future first.
///
/// The [bodyFunction] argument is the continuation that should be invoked
/// when the future completes.
void _awaitOnObject(object, _WrappedAsyncBody bodyFunction) {
  Function thenCallback =
      (result) => bodyFunction(async_error_codes.SUCCESS, result);

  Function errorCallback = (dynamic error, StackTrace stackTrace) {
    ExceptionAndStackTrace wrappedException =
        new ExceptionAndStackTrace(error, stackTrace);
    bodyFunction(async_error_codes.ERROR, wrappedException);
  };

  if (object is _Future) {
    // We can skip the zone registration, since the bodyFunction is already
    // registered (see [_wrapJsFunctionForAsync]).
    object._thenNoZoneRegistration(thenCallback, errorCallback);
  } else if (object is Future) {
    object.then(thenCallback, onError: errorCallback);
  } else {
    _Future future = new _Future();
    future._setValue(object);
    // We can skip the zone registration, since the bodyFunction is already
    // registered (see [_wrapJsFunctionForAsync]).
    future._thenNoZoneRegistration(thenCallback, null);
  }
}

typedef void _WrappedAsyncBody(int errorCode, dynamic result);

initial call is with "null" object and then a body function. So it looks like 1 more tick than DDC's implementation, because it desugars into something like:
return new Future.value(null).then( ... what DDC does ... )

oh, and also one more tick for the completer.complete

Here's a more detailed test:
import 'dart:async';

foo() {
  print('running foo');
  return 'foo';
}

bar() async {
  print('running bar');
  return 'bar';
}

main() async {
  var f = new Future(foo);
  var b = bar();
  print('before microtasks');
  Zone.current.scheduleMicrotask(() => print('last microtask'));
  await b;
  await f;
}

Dart2JS and the VM:
before microtasks
running bar
last microtask
running foo

DDC:
before microtasks
last microtask
running foo
running bar

@jmesserly - do you know how Completer.complete is scheduled?

Assuming that's the path it's going down ... maybe not?

I think the important part of this example is new Future(foo). The Future constructor schedules its argument as a timer task (like Timer.run), which won't run until after the current microtask queue is empty.
Future completion always happens in the current microtask queue, and await is triggered by future completion, so that should happen in the current microtask queue too.
So, the (only) correct order is "bar" then "foo".
Completer.complete (for a non-sync completer) uses a microtask.
(And, just FYI, sheduleMicrotask is a top-level function in dart:async that forwards to Zone.current.scheduleMicrotask, so you don't need the prefix).

Thanks, for the clarification, @lrhn !
We were scheduling new Future(...) as a timer task (just using the dart2js lib code here), but our helper to execute async functions (e.g., bar) was also scheduling the body of the async function as a timer task instead of a microtask.

Should be fixed as of:
https://github.com/dart-lang/sdk/commit/a91cc9cc9e3f90e648685fb3cef92b36ab75e332


Portainer with private self-hosted registry authentication issue maybe?

Bug description
I have portainer setup with a private self-hosted registry. When deploying a stack on the edge compute feature, I keep running into this: Head "https://obscured-url.com/v2/myrepo/my-app/manifests/1.0.0": no basic auth credentials : exit status 1
Expected behavior
Expected portainer to handle the registry authentication as its setup in the portainer registries section.
Portainer Logs
... emitted for brevity but the logs only show this line repeatedly:
level=info msg="2021/10/20 15:09:57 [DEBUG] [chisel,monitoring] [endpoint_id: 7] [status: ACTIVE] [status_time_seconds: 3.132484] [message: environment tunnel monitoring]"
Steps to reproduce the issue:

Add custom/private registry with authentication and include the username and password
Deploy a stack to the edge group with the image prefix of my registry
See error

Technical details:

Portainer version: latest
Docker version (managed by Portainer): Docker version 20.10.8, build 3967b7d28e
Platform (windows/linux): linux
Command used to start Portainer (docker run -p 9443:9443 portainer/portainer):
version: "3.3"

services:
portainer service
portainer:
command: -H unix:///var/run/docker.sock
image: portainer/portainer-ce:latest
restart: always
ports:
- 9000:9000
- 8000:8000
- 9443:9443
volumes:
- "/var/run/docker.sock:/var/run/docker.sock"
- "portainer_data:/data"
volumes:
portainer_data:
Additional context
Add any other context about the problem here.

Edge Stacks currently does not support private registries.
Does it work if you deploy a stack by connecting to the Environment instead? If that's still an issue, it could be related to #4375

Thanks for the reply! I think the fact that edge not supporting this is conclusive enough for me, no need for further digging.


Functions defined on the struct are bidden to the Env they were compiled with

For example, the following program can't be reused with different environments, because functions are bidden to the Env they were compiled with:
package main

import (
	"fmt"

	"github.com/expr-lang/expr"
)

type Env struct {
	Value string
}

func (e *Env) Get(args ...any) (any, error) {
	return e.Value, nil
}

func main() {
	code := `get()`

	env := Env{Value: "<empty>"}
	program, err := expr.Compile(code,
		expr.Function("get", env.Get, new(func() any)),
		expr.Env(env))
	if err != nil {
		panic(err)
	}

	output, err := expr.Run(program, Env{Value: "hello"})
	if err != nil {
		panic(err)
	}
	fmt.Println(output)

	output, err = expr.Run(program, Env{Value: "world"})
	if err != nil {
		panic(err)
	}
	fmt.Println(output)
}

The program output:
<empty>
<empty>

Expected:
hello
world

I can patch the code to pass $env as the first arg of the function, but then users get weird error messages if compilation fails.

This is intended behaviour. You passed env.Get to Function:
expr.Function("get", env.Get, new(func() any)),
In Golang this makes reciver argument bidden to env.  You can simplify your code and do not use expr.Function and use methods on env directly.
Please, try this approach and see if it works.

You can simplify your code and do not use expr.Function and use methods on env directly.

But it will be slower and I can't use type hints to get helpful error message, right? It is not the trade-off I am willing to make...

It will be just a bit slower. Types will be inherited.

If I understood correctly, what you trying to achieve you can try this approach: create a function which will be bidden to and env outside of expr. Use expr.Function to call it.
This way you can achieve fastest calling speed and preserve bindings.
I will try to write some questions when I can reach my computer

The program I've shared gives a good example of what I am trying to achieve:

Compile a program once and then run it with different struct envs.
Functions must have access the current/running env, because I don't have vars and use getter functions instead. It is much more flexible this way.

Currently I am patching functions to pass $env as the first arg. It would be nice if expr-lang could detect this and pass it automatically, i.e. support functions with this signature:
var funcGetAttr = expr.Function(
	"getAttr",
	func (env expr.Env, args ...any) (any, error) {
		fmt.Println(env.(*myenv), args[0].(string))
        },
	new(func(string) string),
)

This is a nice idea. Expr already has patcher for context. We can have a patcher for env as well.


heapsort implementation started at index 1

Description of Change

Checklist

[x] Added description of change
[x] Added file name matches File name guidelines
[x] Added tests and example, test must pass
[x] Relevant documentation/comments is changed or added
[x] PR title follows semantic commit guidelines
[x] Search previous suggestions before making a new one, as yours may be a duplicate.
[x] Sort by alphabetical order
[x] I acknowledge that all my contributions will be made under the project's license.

Notes:

Will do similar for the C version once this is reviewed/merged

Please Stick to the format for the Pull request description. @ericcurtin

Is it ok now @bhaumikmistry ?

@ericcurtin Great work!! Since you have touched this file and made it better. Would you mind added a test() function and writing some test check for the functions?

[ ] Tests

Hi @bhaumikmistry is there any example file that does this you could point me towards? I'd like to see the tests actually get executed in the build :) Otherwise it seems like a waste of time.

Hi @bhaumikmistry is there any example file that does this you could point me towards? I'd like to see the tests actually get executed in the build :) Otherwise it seems like a waste of time.

You Make a good point @ericcurtin

Perhaps https://github.com/TheAlgorithms/C/tree/master/data_structures/Array shows a model to follow.  There is an xyz.cpp file that contains the algorithm and there is an xyz_test.cpp file that tests the functions in xyz.cpp.  We could write a GitHub Action that found all _*test.cpp files and ran them on all pull requests.  Thoughts?


FancyZones for windows without title bars.

Description of the new feature / enhancement
Electron js with the following, creates a cool feature where the window can be dragged by clicking anywhere on the window.
-webkit-app-region: drag;
However, it is typical they will then hide the title bar
titleBarStyle=hidden
Without a title bar, holding shift while dragging does not activate FancyZones.
Scenario when this would be used?
I have verified that holding Windows key along with left or right arrow key, does activate moving between Fancy zones.
Would love to understand if fixing this, is better in the app using -webkit-app-region: drag; or if can be addressed in FancyZones.
Supporting information
App where this can be reproduced is video stream playing in MultiViewer for F1.  But a subscription is needed in order to login, etc.

Upvoting the issue.


Dirty tracking?

This may be a feature request, as I looked through the code and couldn't find any evidence of support.
Scenario:

Fetch a record from the server
Modify some (but not all) attributes of that record
Save that record back to the server

Does the PATCH request include all attributes of the record, or only those that have been modified?

Hi @swrobel, you're correct - this feature is not implemented. Is this something that should be supported, since the specification says it doesn't matter if the whole object is sent or just some properties:

Any or all of a resource’s attributes MAY be included in the resource object included in a PATCH request.
If a request does not include all of the attributes for a resource, the server MUST interpret the missing attributes as if they were included with their current values. The server MUST NOT interpret missing attributes as null values.

I realize this would mean less data to be sent, but it increases complexity (potentially new bugs where the wrong attributes are sent) and it would have influence on the performance (higher memory usage - need to keep two versions of a record).

Not exactly:

adds another dependency
still uses more memory (relevant if you have 100s of models)
has some reserved property names - I'm trying to remove as much of the reserved names as possible (TBD)


Favicon Added

This is not a static hosted site so it doesn't take absolute path it is a dynamically static hosted one so yeah it works as intended and works well


Repository, BranchRepository, Issue, IssueAssignet

Create entities and view models for them

Okey

Vayvo, eplab bulmayaptiku silarni

Shunaqa
On Thu, Mar 21, 2024, 1:11 AM Asrorbek Abrorov @.***>
wrote:

Vayvo, eplab bulmayaptiku silarni
—
Reply to this email directly, view it on GitHub
https://github.com/makhammadsoliyev/CodeHub/issues/3#issuecomment-2010535968,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/BDVKGXLUNKNOXAZAGPDWL73YZHUNZAVCNFSM6AAAAABE7FQ5R6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAMJQGUZTKOJWHA
.
You are receiving this because you authored the thread.Message ID:
@.***>

only view models for these entities?

Yes
On Thu, Mar 21, 2024, 10:08 AM Mirjalol Ziyadullayev <
@.***> wrote:

only view models for these entities?
—
Reply to this email directly, view it on GitHub
https://github.com/makhammadsoliyev/CodeHub/issues/3#issuecomment-2011229011,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/BDVKGXJHJQQRWTQ2HUH6WHLYZJTMZAVCNFSM6AAAAABE7FQ5R6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAMJRGIZDSMBRGE
.
You are receiving this because you authored the thread.Message ID:
@.***>

Completed


Support for Mac OS X for this framework

Hello @noahmehl
Thanks for this library. Is it possible to extend this to support Mac OS X as OS X is adopting many iOS features. Seems likely but not sure how easy or possible it is.
Thanks
Vijay

@sei-vsarvepalli I'm not sure I really understand the request.  Are you asking if this could be extended to provide the WebRTC framework functionality to WKWebView for Swift in MacOS X?

Hello @noahmehl
Yes - sorry if that wasn't clear. It will be good to extend the framework to support wkwebview in Mac OS X Swift.

@sei-vsarvepalli I don't see why not, but this would require sponsorship, or it likely will stay open forever.

@noahmehl I concur with @sei-vsarvepalli here, having this framework in Mac OS Swift would be a game changer and avoid going through a few hundreds Swift / Obj-C hoops.
I suppose there isn't any progress, announcement on this ?
The only other option we have is using Electron for MacOS which isn't what I'd call elegant :/

I tried to pass the hat around in my contacts to look for funding, assuming that is the hold up.  Currently nobody has stepped up! If things change I will bring @noahmehl an offer for support and maybe this can happen then.
Vijay

@sei-vsarvepalli thanks for the update.  Just FYI, we're extending the current Pod for Video support.  I'll update here when we have something with that.

  I've downloaded the latest and got it working on a couple of iPhones.  I was expecting that there would be a way to point to a STUN or TURN server to be able to communicate with another user on their iPhone.  What do I have to implement to make that happen?

@sei-vsarvepalli we should have video support now.  We are still actively working on the twilio WebRTC implementation as well.

Out of topic (kind of) @noahmehl
Note: to get MacOSx i think it can be done with the iosRTC WebRTC.framework build.
On iosRTC side we released 6.0.17 that fix issue with ios 14.3 and webRTC-adapter SHIM and many other minor issues.
I really think the future for iosRTC is to create a library and made the cordova plug-in using the library. So the effort can be mutualized instead of spread. We have nice features coming to 6.1 with Typescript implementation, 6.2 screen capture, 7.0 android SHIM for enumerate deiced and update to M79, and 8.0 with Transceiver and M87 support.

Out of topic (kind of) @noahmehl
Note: to get MacOSx i think it can be done with the iosRTC WebRTC.framework build.
On iosRTC side we released 6.0.17 that fix issue with ios 14.3 and webRTC-adapter SHIM and many other minor issues.
I really think the future for iosRTC is to create a library and made the cordova plug-in using the library. So the effort can be mutualized instead of spread. We have nice features coming to 6.1 with Typescript implementation, 6.2 screen capture, 7.0 android SHIM for enumerate deiced and update to M79, and 8.0 with Transceiver and M87 support.


feat: ACH Direct Debit payments

Stripe.js now supports ACH Direct Debit: https://stripe.com/docs/payments/ach-debit
Getting this set up would be great!

I have a new completely rewritten and up-to-date integration coming imminently for frappe cloud
Is this a feature you would pay for?

As in sponsor the feature for inclusion here, or pay for a separate app?

The app is already written and tested. Pay monthly via frappe cloud

Does that work for self-hosted?

I would have to license it separately.
Note also it has been implemented as an erpnext app. I haven't tested for just frappe though it might work. I'll test it.
https://www.casesolved.co.uk
Screenshot for interest


AVRO-2275 Refactor schema-resolution code from grammar-generation

Efforts to improve performance by code-generation and other means have been hampered by the fact that our schema-resolution logic is embedded in resolving-grammar-generation logic (see AVRO-2275).  This patch factors the resolution logic out from the grammar-generation logic, so the resolution logic can be more easily reused.  See the design document included in this patch for more information.
This patch consists of the following pieces:

A design/user-guide document (refactoring-resolution.md).
Core changes: a new file, Resolver.java, containing the extracted resolution logic, and a rewrite of ResolvingGrammarGenerator.java based on the new Resolver.java.
Changes to resolution-related tests.  These changes do not change the tests themselves, but rather output more diagnostic information upon failure to help developers resolve bugs.

I just checked in a few changes: some cosmetic name-changes, plus a few API changes that will make it easier to utilize Resolver.Action trees.  Also, reused Schema.SeenPair rather than reimplement it in Resolver.

We introduced automatic code formatting. For more info see the "How to contribute" page. This  probably affected this PR can you please rebase it.

I've rebased this to the current master and it passes tests in Travis CI. If there are no further comments, I'll merge this in a day or so.


Replace current CSV translation system with gettext

This is kind of big step, but manageable one.
gettext currently most widely used system for translating software and games.
It has many nice features that every translator will appreciate! But might be less obvious then something like csv file.
What should be done:

Convert CSV to gettext. This is relatively easy task, most of time you need to replace keys like "tooltip_1" with your source text (so, effectively move text from csv file to your source scripts).
Convert other translations (bulgarian, german(?), and others) to gettext. This is also relatively easy task, some copy pasting required.
Check if this thing even works, catch bugs if they arise.
Somehow teach/introduce you to gettext basics, that might be little harder, but also manageable.
Add translation documentation. It's not necessary has something to do with gettext, but this is still something that should be taken seriously if you want people to spend their time translating your software.

I might try to start this tomorrow. This might be kinda hard step since I'm not familiar with your codebase.

Somehow teach/introduce you to gettext basics, that might be little harder, but also manageable.

Do this its own section in CONTRIBUTORS.md, I shouldn't be the only one getting an introduction to how this works.

After some initial digging I found, that, apparently, first step going to be actually hard, lol
Some issues related to actual bugs in Godot. You have some checkboxes (for example, settings window for inputs) and they all just instanced from single checkbox scene, so using gettext from script there not an option, unless every checkbox will get it's own script. I think it's probably not good idea to refer to setting in checkboxes as exported string, rather then checkboxes own script. But also auto-translate not going to be kicked in (because Godot can collect text from nodes with auto-translate set to true) because this bug: https://github.com/godotengine/godot/issues/79144; Apparently, there bug that prevent gettext from collecting text from instanced scenes, like your checkboxes.
There also problem with tab container (I don't like it in overall, at least for that weird feature that it will collect name for tab from it's child, instead of being able to specify it in more normal way). Every tab child node should get it's own script with it's own tr function that gettext will be able to collect it. Probably, some class that tab will inherit.
Currently, you there implemented for loop in parent that will translate their names, while every tab probably should translate itself (it also might be better for decoupling tab container and their childs).
And in overall translations in every part of program implemented very differently, which is not good, even if we put gettext aside. Some nodes translates themself, while some nodes translate other nodes instead. Some rely on "auto-translate" property, while others simple translate from scripts.
Conversion most likely will require reworking entire parts of some components, which I'm not sure if you going to be happy with this and this might require much more time then I initially thought.
Also, offtopic, but why you use visual signals connecting? Aren't that thing considered to be anti-pattern? And it is kind of confusing...
So, what do you say?

Sadly, implementing game/program with gettext better when you starting from scratch, not when you already have entire codebase build around idea of csv. That's also why I'm trying to tell to developers that they need to consider moving to gettext as earlier as possible. (In future, consider using gettext from scratch, please.)
So this proposal might need to wait until some parts of codebase might get refactored a bit.
I already have some idea, how translations might be implemented in more cohesive and clean way. Maybe some composition will do, like adding simple node as child of label/button/etc that need to be translated. It will be actually responsible for translating stuff.
In fact, I think this might actually work with less significantly codebase changes, but again, will you be interested in this kind of solution?

I think you should first focus on drafting out what the "For translators" section in CONTRIBUTING.md would be, because it will ultimately be the deciding factor on whether your work is accepted or not. I want to objectively weigh the pros and cons. Because I'm leaning towards no with what I know right now.

Needing to download more specialized programs just to be able to work on GodSVG is a huge downside, and the program you had mentioned as free and open-source only mentioned a free trial on its website. (If everything is like this, it's a complete dealbreaker)
Having a more complex workflow is also a downside, we have to gauge if this added complexity is worth it.
Being more automatic is neutral - while it improves certain situations, like finding where a string was used, it also forces you into implementing things a certain way, which might not be the best way. (You've listed this is an upside, I think it's a downside though)
Being a widely used standard also isn't too relevant - so is CSV. Even AAA games usually do it this way.

The features you listed sound nice, but I'm doubtful about them justifying the huge downsides mentioned above.

Pluralization is nice, but this looks like it would make sense maybe if I had a big app with thousands of readable strings. GodSVG is more like an assisted SVG code editor, so I doubt it will ever even hit 200 strings. Pluralization might come up a couple of times, but not enough to justify its own solution.
The same holds for context, which also hasn't come into play a single time yet. Anyway, that's why I'm using placeholder strings; if "bat" needs to be a flying animal one time and a sports tool another time, I'll just name the strings "#bat_animal" and "#wooden_bat" or something, and then you can look at the English translation to figure out what to do.
I use placeholder strings, so if all localizations were done in scripts, you'd be able to easily fetch them anyway, with or without external tools.
The other management-related things are also not as clear-cut as they would be in a normal codebase: GodSVG is never going to have enough strings to start losing track. We just have to be careful when adding, modifying, or removing strings - and I'm already extremely thorough with inspecting every PR that modifies the translations file.

Besides that, the answer to almost every "Why is X done like this" question is "Because it solved an immediate problem". GodSVG is not even in beta, I can't worry about clean code when even the most fundamental systems are still getting refactored. It's a gradual process. I also don't see why signals connecting in the editor would be bad or confusing.

I think you should first focus on drafting out what the "For translators" section in CONTRIBUTING.md would be, because it will ultimately be the deciding factor on whether your work is accepted or not. I want to objectively weigh the pros and cons.

I'll open pull request later then.
But I still want to provide some counter (and maybe slightly offtopic) points anyway.

* Needing to download more specialized programs just to be able to work on GodSVG is a huge downside, and the program you had mentioned as free and open-source only mentioned a free trial on its website. (If everything is like this, it's a complete dealbreaker)

(I was talking about that thing: https://poedit.net/download/, it is free and open source. I think I misspelled several times yesterday. Instead of "POEdit" I write "POEditor, which is not related things. POEditor is actually web translation tool, like weblate. Sorry abou that.)
First, you absolutely can edit and work with both csv files using nothing but text editor.
But in both cases it's not best idea to do so.
Try working with csv by hand like this:

Instead of using something like libreoffice:

So, ultimately, you need to have some special program to work with translation anyway.
Also, for comparison sake, that's how translating by hand will look from po file:

Also, don't forget that translators already need to download Godot and know git just to even download and open your project.
And also translators usually don't translate 1 project and never do this again. They, like me, maintain several projects with translations. And this is why I was referring to standarization: when every project has csv/ini/json file for translation, it's mean that they translation system will work differently from project to project. With gettext, all that translator need to know is where pot file is. Then open it with standarized program (like poedit), click "create new translation" and translate. And same with updating existing translation after some time (because, lets say translator made translation for you, but after that they dissapeared). With time, you added new strings or removed old ones. Next translator might run your program, see that it is not 100% translated, and then they will go to your repo to help. All they need to do, is to (as previous translator) find po file with translation that they need (in my case, uk_UA.po), run it with poedit, click "update translation from pot" where you will pick pot file that most likely will be in same folder as po file, and then everything will be updated. Strings that no longer exist will be removed, and strings that changed slightly will be marked as such.
That's where standarization shines! Even small projects. I often don't have time to keep up with every program that I translate. I just open pot and update my po. After that I immediately know what changed. And I don't need to check git logs, check releases, anything!
In case of non gettext system, YOU as developer need to take care of this. Making sure that you removed deprecated strings and all of this, while in gettext, you simple generate new pot file once in while (same can do your translators, it's easy to do in godot itself). it's just making thing less prone to "Ah, I forget that string, damn!". And while this might not have yet happened with you, it was happening in project that I was editing text in several times in several languages (they were using script file from their game engine.).

* Having a more complex workflow is also a downside, we have to gauge if this added complexity is worth it.

It's pretty default way to work with translations.
You open translation file with whatever tool you have, do some changes and then (ideally) try to test them in-program.
I would say having dealing with csv file was more complex, simple because even looking visually on csv file is hard because you always have entire text file or (in case of libreoffice) entire spreadsheet in your eyes, plus keys, plus other languages (because in your case, all translations inside single csv).

* Being more automatic is neutral - while it improves certain situations, like finding where a string was used, it also locks you into implementing things a certain way, which might not be the best way. (You've listed this is an upside, I think it's a downside though)

I list it as upside because it is forcing  you try to make your translations more predictable, where exactly you apply them, when and how. Making it more consistent and predictable. (For example, that's why I'm not biggest fan of auto-translation property) Applying them all over the place might become very problematic once refactor might required.

* Being a widely used standard also isn't too relevant - so is CSV. Even AAA titles usually use spreadsheets still.

There several problems with that.
First, csv file format itself is wildly used, yes - but localization features in it - isn't. There no standards for any localization feature in csv. No standards to define pluralization, no gender variants (which actually used quite often, like refer to player by gender if they can chose it, this is especially important in non-English languages, where you often need several gender forms just to say "Hey, you! What are you doing?". And this gender amount might vary from language to language), no standard to define comments between translators (or comments in general), no context, anything.
And second, AAA game devs very conservative in their translation choices and often translation tools and workflow for their games - sucks. Around 2 months ago, I finished translation (not for AAA game, but translation experience was pretty close) for one game with almost ~3k strings (maybe close to 2-2.5) and author used ini file instead (which is also doesn't include any localization features aswell). Do I need to tell, that it wasn't very good experience? Even finding strings that wasn't translated was painful. (gettext tools actually do provide ways to count this kinda of information). I can't even imagine managing games with 10k and more strings with this kinda of systems!

The features you listed sound good, but I'm doubtful that they will justify the downsides mentioned above.

Welp, that's fair
Again, it's just easier to implement when you starting, not in-between, sadly

* Pluralization is nice, but this looks like it would make sense maybe if I had a big app with thousands of readable strings. GodSVG is more like an assisted SVG code editor, so I doubt it will ever even hit 200 strings. Pluralization might come up a couple of times, but not enough to justify its own solution.

Problem here, that if you need pluralization, then it's become problematic (remember that every language have it's own rules regarding translation). For example, csv never had any standards regarding this. And Godot doesn't even have it's own way to pluralize with csv yet: https://github.com/godotengine/godot-proposals/issues/1291 (but there ssems to be ready pr for that, but it was left pretty untouched for almost 4 years...)

* The same holds for context, which also hasn't come into play a single time yet. Anyway, that's why I'm using placeholder strings; if "bat" needs to be a flying animal one time and a sports tool another time, I'll just name the strings "#bat_animal" and "#wooden_bat" or something, and then you can look at the English translation to figure out what to do.

Context in gettext it's just not simple hint tags, they have technical purpose. (and, being able to sort strings by their context is big improvements for workflow. For example, sort strings by settings tab, e.g: "Visual options", "Input options", etc.)
Consider this:
a = tr("Bat", "Animal")
b = tr("Bat", "Item")
will generate 2 separate strings for pot file.
And problem here that from your language everything might looks right, while from my language point I might have bad time.
For example, recently I was translating Extension Manager for GNOME, and author used 1 word "Downloads" when referring to "Sort extensions by download amount" and "How much times this extension was downloaded?" in several places. From their point there nothing wrong, because "Downloads" for them is fine, why it should be wrong? But for almost all other languages it wasn't. Later they split string using gettext's context when I pointed out and other translators catch up.

* I use placeholder strings, so if all localizations were done in scripts, you'd be able to easily fetch them anyway, with or without external tools.

Well, it's only true if you actually familiar with codebase. Most people who might want to contribute translations or help with it won't able to easily find anything. Or just glance context in which this string might be used.
Also, problem here with csv: you can't tell how much times string was used and where.
Again, if you already familiar with codebase it is not big deal. For translator it might be painful, especially if they need to test out some edge case translations, like error messages and error popups, which usually not easy to trigger and test properly without hacking stuff together.

* The other management-related things are also not as clear-cut as they would be in a normal codebase: GodSVG is never going to have enough strings to start losing track.

It's mostly management features for USERS. gettext makes this easy for you and users, because when you have gettext setup, you never really touch translation files ever again. You just add script or scenes (adding scene to pot system will add it's dependencies aswell) that need to be translated and write translations
We just have to be careful when adding, modifying, or removing strings - and I'm already extremely thorough with inspecting every PR that modifies the translations file. And with this system, I'll need to be thorough anyway with ensuring new strings can be fetched by gettext.
That's why exactly you should use pseudolocalization should be used tho.

I also don't see why signals connecting in the editor would be bad or confusing.

Mostly because it's harder to track where each node connects which signal to which function. Connecting signals in node's own node script makes it easier to track where signals and to whom emits.

Okay, if this is openable in a basic text editor and in simple programs, then I don't think the downsides I brought up are as valid. I do still think the extra dependencies are a notable downside though, as currently the barrier for contributing is really low because there's only Git (unavoidable) and Godot (a very simple downloda and most people who find the project already have it).
So yeah, I'd appreciate writing a draft paragraph for "CONTRIBUTING.md" for translators, i.e. outlining what to do if your PR includes some new strings, or if you want to do translations.

Okay, if this is openable in a basic text editor and in simple programs, then I don't think the downsides I brought up are as valid. I do still think the extra dependencies are a notable downside though, as currently the barrier for contributing is really low because there's only Git (unavoidable) and Godot (a very simple download and most people who find the project already have it). Libreoffice or other spreadsheet tools are usually around by default too, so I disagree with that point.

There still many people who might use this program but without knowing what "Godot" is. And I wouldn't call Godot simple download, considering tit weight slightly over 100mbs, aswell configuring git on windows is more PITA then it should be, while spreadsheet of choice might as well be not available or support for displaying csv might require some input for user to display it correctly (some slightly older version of Microsoft Excel can't even recognize csv without additional manipulations, which already more problematic then opening format with 100% supported software, such as Poedit which weight less then 30mb and available for all majority platforms without any strings attached)
Also, WIP version of contribution guide is done, now I need to create pull.

Can I see it?

https://github.com/godotengine/godot/pull/87530
This is relevant, it would address the grievances with the translation system if it gets merged timely.


Missing LICENSE file

Garden repositories must be released under the MIT license. Please tell us if you agree to release it with this license, or simply add the file, following this template: https://github.com/kivy-garden/kivy-garden.github.io/blob/master/LICENSE.

License file added, ref: https://github.com/kivy-garden/garden.roulettescroll/issues/1.


Build settings for node as backend and react as frontend

Please describe which feature you have a question about?
Amplify build settings
Provide additional details
When we try to host and app having node as backend and react as frontend. Using "yarn build" for frontend and "yarn start" for backend. Build failing with timeout error.
What AWS Services are you utilizing?
AWS Amplify
Provide additional details e.g. code snippets
App id: dg0ljlnkqoqjr
Region : "us-east-1"
version: 1 backend:   phases:     build:       commands:         - '# Execute Amplify CLI with the helper script'         - amplifyPush --simple 		- yarn start frontend:   phases:     preBuild:       commands:         - yarn install     build:       commands:         - yarn build   artifacts:     baseDirectory: build     files:       - '**/*'   cache:     paths:       - node_modules/**/*

Hi @shahid139 it looks like you were able to successfully build after posting this, do you still need assistance with this issue?


Enable usage of a OTLP Exporter

Summary
Enables user to use an OTLP exporter with io.quarkus.test.services.JaegerContainer#useOtlpCollector flag. By default, we use the collector over gRPC. Jaeger all-in-one is bumped from 1.30.0 to 1.37.0 as the OTLP collector feature was only introduced in 1.35.0. I replaced deprecated smallrye-opentracing with the OpenTelemetry in Examples as it's related to the changes and good test the changes are working both locally and on OC.
Please check the relevant options

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[x] Dependency update
[x] Refactoring
[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] This change requires a documentation update
[x] This change requires execution against OCP (use run tests phrase in comment)

Checklist:

[x] Example scenarios has been updated / added
[x] Methods and classes used in PR scenarios are meaningful
[x] Commits are well encapsulated and follow the best practices

run tests

OpenShift failure - Examples - Ping Pong is not related to this PR.

@pjgg thank you for suggestion. I incorporated them and also changed a description of the PR as substance changed a little bit.

run tests

LGTM

OC failure - Examples - Ping Pong is not related.

OC native has following not related failures
[io.quarkus.qe.OpenShiftUsingExtensionAndDockerBuildAndServerlessPingPongResourceIT.io.quarkus.qe.OpenShiftUsingExtensionAndDockerBuildAndServerlessPingPongResourceIT](https://main-jenkins-csb-quarkusqe.apps.ocp-c1.prod.psi.redhat.com/job/quarkus-main-rhel8-jdk11-openshift-tf-native-githubci/176/testReport/junit/io.quarkus.qe/OpenShiftUsingExtensionAndDockerBuildAndServerlessPingPongResourceIT/io_quarkus_qe_OpenShiftUsingExtensionAndDockerBuildAndServerlessPingPongResourceIT/)
[io.quarkus.qe.OpenShiftUsingExtensionAndServerlessPingPongResourceIT.io.quarkus.qe.OpenShiftUsingExtensionAndServerlessPingPongResourceIT](https://main-jenkins-csb-quarkusqe.apps.ocp-c1.prod.psi.redhat.com/job/quarkus-main-rhel8-jdk11-openshift-tf-native-githubci/176/testReport/junit/io.quarkus.qe/OpenShiftUsingExtensionAndServerlessPingPongResourceIT/io_quarkus_qe_OpenShiftUsingExtensionAndServerlessPingPongResourceIT/)


Remove arch suffixes from Docker images where possible

e.g. on Packet we still pull kubelet images with suffixes even though we publish multi-arch manifests.

For etcd it will be possible with next release: https://github.com/etcd-io/etcd/pull/12630/commits/7f79ffb4092be1235d83a85657351145d3542405


Generate configuration for comparison

This is a first step to testing this role. This adds a reference configuration against which the deployed configuration is compared. This means when this role is modified the changes made to the expected configuration are clear, even if they're not functionally tested.

Travis is passing and the test_default.py changes look good. Looks good to merge, acc to me.


Add [at] to localisations

A few times now I've used moment for projects where there was a need to display "Date [at] Time". This is fine when we're only working with English languages, but gets complex with foreign languages.
Moment's calendar feature partially covers this off - could we add support for localising the word 'at' for appointments and edited times, etc?

You're right in one thing: "its complicated". The thing is some languages don't have an "at" word, they use comma, or space, or something else. In order to customize you need to know the language.
If you want your site to work well in fixed number of languages, then get translators to tell you proper formats and use them directly.
If you want your code to work in all moment supported languages, then you have to accept whatever it does now.

Thanks for the feedback. I agree that proper translation needs translators, I just thought this may have been a common enough scenarios that it warranted being a feature.


[SPARK-45456][BUILD] Upgrade maven to 3.9.5

What changes were proposed in this pull request?

Why are the changes needed?

Does this PR introduce any user-facing change?

How was this patch tested?

Was this patch authored or co-authored using generative AI tooling?

Test first


Problem with documentation navigation: elements placed outside of visible area

This occurs on my system e.g. on:

https://mne.tools/dev/generated/mne.channels.fix_mag_coil_types.html
https://mne.tools/dev/generated/mne.channels.read_polhemus_fastscan.html

Browser is Safari 15.5, run in fullscreen mode.

Can you open this on pydata-sphinx-theme? This stress not seem MNE specific as it should occur with any sufficiently long link name, and I don't think we do any relevant CSS overrides (but please check)
One solution could involve setting the overflow (I think) in CSS but it wouldn't be pretty

@drammock could you please transfer this to pydata-sphinx-theme? You should have permissions I think (I do not).

cannot transfer outside an org AFAICT. at least it doesn't offer me the option to transfer to PST.  Can you transfer issues from MNE to SG or scipy?

Oh... no, you can't. I'll just open a new one over there

... actually it's fixed in dev, never mind! I had only looked at stable...


Non pythonic naming conventions

PEP guide for Python suggest:
Function names should be lowercase, with words separated by underscores as necessary to improve readability.
Example is the function name StationaryBootstrap(). It should be stationary_bootstrap()

New function name is stationary_bootstrap()


[en] replace 'control' with 'controller' in content/en/docs/concepts/policy /_index.md

Discrepancy in terminology usage of 'control' and  'controller' in these two lines
https://github.com/kubernetes/website/blob/61fa6a099246c0e903302e1f356a340557fc06ca/content/en/docs/concepts/policy/_index.md?plain=1#L45
https://github.com/kubernetes/website/blob/61fa6a099246c0e903302e1f356a340557fc06ca/content/en/docs/concepts/policy/_index.md?plain=1#L54

/language en

/priority awaiting-more-evidence
“Admission control” is what admission controllers provide; I don't think the docs are wrong.

What I assume is in the same page controllers is being used https://kubernetes.io/docs/concepts/policy/#apply-policies-using-admission-controllers
Let me know what's your take @sftim, if it's not working can close this issue

Nothing to fix. Admission controllers are part of how Kubernetes implements admission control.
/close not-planned


Error: CANCEL read_loop after running Async BinanceManager for an hour

Describe the bug
System crash after running BinanceManager for an hour
To Reproduce
import asyncio
from binance import AsyncClient, BinanceSocketManager
async def main():
client = await AsyncClient.create()
bm = BinanceSocketManager(client)
# start any sockets here, i.e a trade socket
ts = bm.trade_socket('BNBBTC')
# then start receiving messages
async with ts as tscm:
while True:
res = await tscm.recv()
print(res)
await client.close_connection()

if name == "main":
loop = asyncio.get_event_loop()
loop.run_until_complete(main())

Expected behavior
BinanceManager stream the ticker data without error
Environment (please complete the following information):
Python version: 3.9.7
Virtual Env: conda
OS: Windows11
python-binance version: 1.0.15
Logs or Additional context
CANCEL read_loop
Traceback (most recent call last):
File "d:\OneDrive\OIG Tech\Tradingview_BOT\binancesocket.py", line 202, in
File "C:\ProgramData\Anaconda3\lib\asyncio\base_events.py", line 642, in run_until_complete
return future.result()
File "d:\OneDrive\OIG Tech\Tradingview_BOT\binancesocket.py", line 179, in main
async with ts as tscm:
KeyError: 'data'
Unclosed client session
client_session: <aiohttp.client.ClientSession object at 0x000001D93DCF9D30>

Same issue here, after about 2 - 8 hours I get an error saying CANCEL read_loop stream. Do we need to resubscribe to the websocket stream after awhile?

I have the same issue. I read somewhere that the problem lies in the websocket version. In websocket 10+ the problem is fixed but python-binance 1.0.15 requires and older version. Hopefully they will fix it soon.

Same issue

I have the same issue. I read somewhere that the problem lies in the websocket version. In websocket 10+ the problem is fixed but python-binance 1.0.15 requires and older version. Hopefully they will fix it soon.

I have a VPS where I run a bot using this module and I checked the websockets version.  It's running 9.1, so I downgraded to that version and I still get the error.

Same issue

Same issue here. My terminal is full with CANCEL read_loop

I experienced the same thing building a multiplex socket. Oddly, before I converted it from a symbol_ticker over to the multiplex, I didn't have the issue, but once I did change it, that's when it started appearing. Now, I wouldn't say this is the most elegant of solutions, but the way I stopped it is I went to the module file C:\Program Files\Python39\Lib\site-packages\binance\streams.py, and found the line: 'self._log.error("CANCEL read_loop")', and I commented it out. It was printing it because of an error, but the error doesn't mean it's so broken that my program couldn't run, so I won't use the logging on it.

I see the same issue with multiplex socket. Didn't have that with individual aggtrade_socket.

when you say multiplex socket - is that because for example you run code from, say a python file and then other code on the same account from a notebook (*.ipynb) therefore opening two sockets ?

when you say multiplex socket - is that because for example you run code from, say a python file and then other code on the same account from a notebook (*.ipynb) therefore opening two sockets ?

Good question, but no. Multiplex is the solution for having multiple ticker streams in a single socket. I was concerned about issues with multiple sockets being opened simultaneously, so just to cross my j's, I cleared all of my API keys and created a new one just for it, but to no avail. However, the question makes me wonder if the multiplex socket itself could be causing a multi-socket error

interesting. at this point in time I just have one ticker stream and the only thing that i was doing was working in a notebook on the side. So i would have been connecting in the same way as the python file... i have had this error message a few times and need to eliminate or handle it.

I experienced the same thing building a multiplex socket. Oddly, before I converted it from a symbol_ticker over to the multiplex, I didn't have the issue, but once I did change it, that's when it started appearing. Now, I wouldn't say this is the most elegant of solutions, but the way I stopped it is I went to the module file C:\Program Files\Python39\Lib\site-packages\binance\streams.py, and found the line: 'self._log.error("CANCEL read_loop")', and I commented it out. It was printing it because of an error, but the error doesn't mean it's so broken that my program couldn't run, so I won't use the logging on it.

do you cancel just this line of also the await self.kill_read_loop() ?


Fix improper ... suffix on showing ndarray

Signed-off-by: GuoRentong<EMAIL_ADDRESS>

/lgtm
/approve


Preview observable with monitor lock

This pull request is the same as #199, except no reader-writer locks are used.
It also removes reader-writer locks from lists.
Related PRs: #199, #213, #211,
Related issue: #194

Are you willing to write a wiki entry?

Done.

Awesome. Thanks very much


[Enhancement] should use time.Since instead of time.Now().Sub[producer_processor.go]

Search before asking

[X] I had searched in the issues and found no similar issues.

Enhancement Request
This issue is a subproject issue of eventmesh. the subproject address is:
https://github.com/apache/eventmesh-go

located at:
eventmesh-go/runtime/core/protocol/grpc/producer/producer_processor.go line 102,107,165,170,223,235,292,296
Describe the solution you'd like
use time.Since instead of time.Now().Sub
Are you willing to submit PR?

[ ] Yes I am willing to submit a PR!

The link to the PR that addresses this issue.
https://github.com/apache/eventmesh-go/pull/10


Inconsistent response time less than a second expected, sometimes up to 20-30 seconds until JSON data is returned, even 100 seconds

time curl -i "http://api.meetup.com/2/events?group_urlname=Angular-js-Pittsburgh&key=my_api_key"
When I first started developing using meetup API last night, responses were fairly quick. Today, running that curl command I observe sometimes responses are 1/5th a second or less, but sometimes take up to 10-30 seconds just to return JSON data. How come?
HTTP/1.1 522 Origin Connection Time-out
Date: Mon, 07 Mar 2016 22:02:00 GMT
Content-Type: text/html; charset=UTF-8
Transfer-Encoding: chunked
Connection: keep-alive
Pragma: no-cache
X-Frame-Options: SAMEORIGIN
Server: cloudflare-nginx
CF-RAY: 280153ed593423c6-IAD
...
Oops. We seem to be experiencing some technical difficulties.
Don't worry, our team is on it. By the time you've read this message, the details of this error have already been recorded.
Try reloading the page. If that doesn't work, check back again soon.

...
Even one request took 100 seconds until a response came
real    1m40.023s
user    0m0.004s
sys     0m0.003s

Are you still experiencing these latencies @jasonkhanlar?


symlinks in zip are not retained on the docker image created when using Layers

Description
When adding a package that contains symlinks these symlinks are flattened on the docker image
Briefly describe the bug you are facing.
I am taking a folder with symlinks in it and zipping it using the --symlinks option of the zip
when I unpack the zip file locally the symlinks are there but when I run the sam invoke command there are failures to find these file.
when debugging the produced container using
docker run -it --rm --entrypoint=/bin/bash samcli/lambda:provided-11bcc8dc4810532c82a432b30 -i the files are flatten into names with no symlinks.
Steps to reproduce
create a folder with a symlink to a file
package the files using zip -yr some.zip folder_name
run sam local invoke and call the symlink file.
Provide steps to replicate.
git clone git@github.com:gkrizek/bash-lambda-layer.git
cd bash-lambda-layer
zip -yr layer.zip bootstrap bin/ lib/ libexec/ share/
aws lambda publish-layer-version --layer-name myLayer --zip-file fileb://layer.zip

template.yaml:

AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Description: >
  Sample SAM Template for sam-app
Globals:
  Function:
    Timeout: 300

Resources:
  Bash:
    Type: AWS::Serverless::Function
    Properties:
        CodeUri: .
        Handler: index.handler
        Runtime: provided
        Layers:
        - arn:aws:lambda:us-west-2:744348701589:layer:bash:4

index.sh
handler () {
    set -e
    git clone git@github.com:hypnoglow/helm-s3.git
}

Observed result
symlinks are flattened into files
ls -la
total 204
drwx------ 3 sbx_user1051  495   4096 Dec 18 20:33 .
drwxr-xr-x 1 root         root   4096 Dec 18 20:33 ..
drwx------ 2 sbx_user1051  495   4096 Dec 18 20:33 fipscheck
-rwx------ 1 sbx_user1051  495     17 Dec 18 20:33 libedit.so.0
-rwx------ 1 sbx_user1051  495 178816 Dec 18 20:33 libedit.so.0.0.27
-rwx------ 1 sbx_user1051  495     21 Dec 18 20:33 libfipscheck.so.1
-rwx------ 1 sbx_user1051  495   6960 Dec 18 20:33 libfipscheck.so.1.1.0
bash-4.2# cat libfipscheck.so.1
libfipscheck.so.1.1.0bash-4.2# ln -nfs libfipscheck.so.1.1.0 libfipscheck.so.1

command output with debug flag
Cloning into '/tmp/.helm/plugins/helm-s3'...
/opt/bin/ssh: error while loading shared libraries: /opt/lib/libfipscheck.so.1: file too short
fatal: Could not read from remote repository.

Please provide command output with `--debug` flag set.
```console
2018-12-19 10:52:45 Using SAM Template at /Users/ami/ltx/devops/lambda/kubernetes_deploy/template.yaml
2018-12-19 10:52:45 Changing event name from creating-client-class.iot-data to creating-client-class.iot-data-plane
2018-12-19 10:52:45 Changing event name from before-call.apigateway to before-call.api-gateway
2018-12-19 10:52:45 Changing event name from request-created.machinelearning.Predict to request-created.machine-learning.Predict
2018-12-19 10:52:45 Changing event name from before-parameter-build.autoscaling.CreateLaunchConfiguration to before-parameter-build.auto-scaling.CreateLaunchConfiguration
2018-12-19 10:52:45 Changing event name from before-parameter-build.route53 to before-parameter-build.route-53
2018-12-19 10:52:45 Changing event name from request-created.cloudsearchdomain.Search to request-created.cloudsearch-domain.Search
2018-12-19 10:52:45 Changing event name from docs.*.autoscaling.CreateLaunchConfiguration.complete-section to docs.*.auto-scaling.CreateLaunchConfiguration.complete-section
2018-12-19 10:52:45 Changing event name from before-parameter-build.cloudsearchdomain.Search to before-parameter-build.cloudsearch-domain.Search
2018-12-19 10:52:45 Changing event name from docs.*.cloudsearchdomain.Search.complete-section to docs.*.cloudsearch-domain.Search.complete-section
2018-12-19 10:52:45 Changing event name from before-parameter-build.logs.CreateExportTask to before-parameter-build.cloudwatch-logs.CreateExportTask
2018-12-19 10:52:45 Changing event name from docs.*.logs.CreateExportTask.complete-section to docs.*.cloudwatch-logs.CreateExportTask.complete-section
2018-12-19 10:52:45 Changing event name from creating-client-class.iot-data to creating-client-class.iot-data-plane
2018-12-19 10:52:45 Changing event name from before-call.apigateway to before-call.api-gateway
2018-12-19 10:52:45 Changing event name from request-created.machinelearning.Predict to request-created.machine-learning.Predict
2018-12-19 10:52:45 Changing event name from before-parameter-build.autoscaling.CreateLaunchConfiguration to before-parameter-build.auto-scaling.CreateLaunchConfiguration
2018-12-19 10:52:45 Changing event name from before-parameter-build.route53 to before-parameter-build.route-53
2018-12-19 10:52:45 Changing event name from request-created.cloudsearchdomain.Search to request-created.cloudsearch-domain.Search
2018-12-19 10:52:45 Changing event name from docs.*.autoscaling.CreateLaunchConfiguration.complete-section to docs.*.auto-scaling.CreateLaunchConfiguration.complete-section
2018-12-19 10:52:45 Changing event name from before-parameter-build.cloudsearchdomain.Search to before-parameter-build.cloudsearch-domain.Search
2018-12-19 10:52:45 Changing event name from docs.*.cloudsearchdomain.Search.complete-section to docs.*.cloudsearch-domain.Search.complete-section
2018-12-19 10:52:45 Changing event name from before-parameter-build.logs.CreateExportTask to before-parameter-build.cloudwatch-logs.CreateExportTask
2018-12-19 10:52:45 Changing event name from docs.*.logs.CreateExportTask.complete-section to docs.*.cloudwatch-logs.CreateExportTask.complete-section
2018-12-19 10:52:45 local invoke command is called
2018-12-19 10:52:45 Looking for credentials via: env
2018-12-19 10:52:45 Looking for credentials via: assume-role
2018-12-19 10:52:45 Looking for credentials via: shared-credentials-file
2018-12-19 10:52:45 Found credentials in shared credentials file: ~/.aws/credentials
2018-12-19 10:52:45 Loading JSON file: /Users/ami/ltx/virtual_envs/sam/lib/python2.7/site-packages/botocore/data/endpoints.json
2018-12-19 10:52:45 Event choose-service-name: calling handler <function handle_service_name_alias at 0x1039457d0>
2018-12-19 10:52:45 Loading JSON file: /Users/ami/ltx/virtual_envs/sam/lib/python2.7/site-packages/botocore/data/serverlessrepo/2017-09-08/service-2.json
2018-12-19 10:52:45 Event creating-client-class.serverlessapplicationrepository: calling handler <function add_generate_presigned_url at 0x1038f97d0>
2018-12-19 10:52:45 Setting serverlessrepo timeout as (60, 60)
2018-12-19 10:52:45 Loading JSON file: /Users/ami/ltx/virtual_envs/sam/lib/python2.7/site-packages/botocore/data/_retry.json
2018-12-19 10:52:45 Registering retry handlers for service: serverlessrepo
2018-12-19 10:52:45 No Parameters detected in the template
2018-12-19 10:52:45 1 resources found in the template
2018-12-19 10:52:45 Found Serverless function with name='Bash' and CodeUri='./mycode'
2018-12-19 10:52:45 Trying paths: ['/Users/ami/.docker/config.json', '/Users/ami/.dockercfg']
2018-12-19 10:52:45 Found file at path: /Users/ami/.docker/config.json
2018-12-19 10:52:45 Found 'auths' section
2018-12-19 10:52:45 Auth data for https://1234567812.dkr.ecr.us-west-2.amazonaws.com is absent. Client might be using a credentials store instead.
2018-12-19 10:52:45 Auth data for<PHONE_NUMBER>.dkr.ecr.us-west-2.amazonaws.com is absent. Client might be using a credentials store instead.
2018-12-19 10:52:45 Auth data for<PHONE_NUMBER>64.dkr.ecr.us-west-2.amazonaws.com is absent. Client might be using a credentials store instead.
2018-12-19 10:52:45 Found 'credsStore' section
2018-12-19 10:52:45 http://localhost:None "GET /v1.35/_ping HTTP/1.1" 200 2
2018-12-19 10:52:45 Event choose-service-name: calling handler <function handle_service_name_alias at 0x1039457d0>
2018-12-19 10:52:45 Loading JSON file: /Users/ami/ltx/virtual_envs/sam/lib/python2.7/site-packages/botocore/data/lambda/2015-03-31/service-2.json
2018-12-19 10:52:45 Event creating-client-class.lambda: calling handler <function add_generate_presigned_url at 0x1038f97d0>
2018-12-19 10:52:45 Setting lambda timeout as (60, 60)
2018-12-19 10:52:45 Registering retry handlers for service: lambda
2018-12-19 10:52:45 Trying paths: ['/Users/ami/.docker/config.json', '/Users/ami/.dockercfg']
2018-12-19 10:52:45 Found file at path: /Users/ami/.docker/config.json
2018-12-19 10:52:45 Found 'auths' section
2018-12-19 10:52:45 Auth data for https://1234567812.dkr.ecr.us-west-2.amazonaws.com is absent. Client might be using a credentials store instead.
2018-12-19 10:52:45 Auth data for<PHONE_NUMBER>.dkr.ecr.us-west-2.amazonaws.com is absent. Client might be using a credentials store instead.
2018-12-19 10:52:45 Auth data for<PHONE_NUMBER>64.dkr.ecr.us-west-2.amazonaws.com is absent. Client might be using a credentials store instead.
2018-12-19 10:52:45 Found 'credsStore' section
2018-12-19 10:52:45 Found one Lambda function with name 'Bash'
2018-12-19 10:52:45 Invoking index.handler (provided)
2018-12-19 10:52:45 No environment variables found for function 'Bash'
2018-12-19 10:52:45 Environment variables overrides data is standard format
2018-12-19 10:52:45 Loading AWS credentials from session with profile 'default'
2018-12-19 10:52:45 Resolving code path. Cwd=/Users/ami/ltx/devops/lambda/kubernetes_deploy, CodeUri=./mycode
2018-12-19 10:52:45 Resolved absolute path to code is /Users/ami/ltx/devops/lambda/kubernetes_deploy/mycode
2018-12-19 10:52:45 Code /Users/ami/ltx/devops/lambda/kubernetes_deploy/mycode is not a zip/jar file
2018-12-19 10:52:45 arn:aws:lambda:us-west-2:744348701589:layer:bash:4 is already cached. Skipping download
2018-12-19 10:52:45 http://localhost:None "GET /v1.35/images/samcli/lambda:provided-2a230b32cca171ea74c975d71/json HTTP/1.1" 200 None
2018-12-19 10:52:45 Trying paths: ['/Users/ami/.docker/config.json', '/Users/ami/.dockercfg']
2018-12-19 10:52:45 Found file at path: /Users/ami/.docker/config.json
2018-12-19 10:52:45 Found 'auths' section
2018-12-19 10:52:45 Auth data for https://1234567812.dkr.ecr.us-west-2.amazonaws.com is absent. Client might be using a credentials store instead.
2018-12-19 10:52:45 Auth data for<PHONE_NUMBER>.dkr.ecr.us-west-2.amazonaws.com is absent. Client might be using a credentials store instead.
2018-12-19 10:52:45 Auth data for<PHONE_NUMBER>64.dkr.ecr.us-west-2.amazonaws.com is absent. Client might be using a credentials store instead.
2018-12-19 10:52:45 Found 'credsStore' section
2018-12-19 10:52:45 http://localhost:None "GET /v1.35/images/samcli/lambda:provided-2a230b32cca171ea74c975d71/json HTTP/1.1" 200 None
2018-12-19 10:52:45 Requested to skip pulling images ...

2018-12-19 10:52:45 Mounting /Users/ami/ltx/devops/lambda/kubernetes_deploy/mycode as /var/task:ro inside runtime container
2018-12-19 10:52:45 http://localhost:None "POST /v1.35/containers/create HTTP/1.1" 201 90
2018-12-19 10:52:45 http://localhost:None "GET /v1.35/containers/db9cd95fd9d8945622ffd8659e58c48c569cd1016aec570976d2293c88cac725/json HTTP/1.1" 200 None
2018-12-19 10:52:46 http://localhost:None "GET /v1.35/containers/db9cd95fd9d8945622ffd8659e58c48c569cd1016aec570976d2293c88cac725/json HTTP/1.1" 200 None
2018-12-19 10:52:46 http://localhost:None "POST /v1.35/containers/db9cd95fd9d8945622ffd8659e58c48c569cd1016aec570976d2293c88cac725/start HTTP/1.1" 204 0
2018-12-19 10:52:46 Starting a timer for 300 seconds for function 'Bash'
2018-12-19 10:52:46 http://localhost:None "GET /v1.35/containers/db9cd95fd9d8945622ffd8659e58c48c569cd1016aec570976d2293c88cac725/json HTTP/1.1" 200 None
2018-12-19 10:52:46 http://localhost:None "POST /containers/db9cd95fd9d8945622ffd8659e58c48c569cd1016aec570976d2293c88cac725/attach?stream=1&stdin=0&logs=1&stderr=1&stdout=1 HTTP/1.1" 101 0
START RequestId: 52fdfc07-2182-154f-163f-5f0f9a621d72 Version: $LATEST
Cloning into '/tmp/.helm/plugins/helm-s3'...
/opt/bin/ssh: error while loading shared libraries: /opt/lib/libfipscheck.so.1: file too short
fatal: Could not read from remote repository.

Please make sure you have the correct access rights

Expected result
symlinks files should be preserved
total 368
drwxr-xr-x   7 ami   wheel     224 Dec 18 17:31 .
drwxrwxrwt  24 root  wheel     768 Dec 19 10:56 ..
drwxr-xr-x   6 ami   wheel     192 Dec 18 17:31 fipscheck
lrwxr-xr-x   1 ami   wheel      17 Dec 18 23:26 libedit.so.0 -> libedit.so.0.0.27
-rwxr-xr-x   1 ami   wheel  178816 Dec 18 17:31 libedit.so.0.0.27
lrwxr-xr-x   1 ami   wheel      21 Dec 18 23:26 libfipscheck.so.1 -> libfipscheck.so.1.1.0
-rwxr-xr-x   1 ami   wheel    6960 Dec 18 17:31 libfipscheck.so.1.1.0

Describe what you expected.
Additional environment details (Ex: Windows, Mac, Amazon Linux etc)

OS:
sam --version:
SAM CLI, version 0.9.0
Add --debug flag to command you are running

Note: this does not happen with real lambda

Any update on this from SAM team? Also Unable to use this layer locally https://github.com/lambci/git-lambda-layer

Here here, ran into this issue today too with Ruby runtime and a Layer with libvips.

Maybe the core team can point us to the piece of code that does the unzip of the layers? If it's a matter of looking up with flag or option to use I could maybe try to contribute a fix.

@mnapoli We download and unzip layers here but the main unzipping logic lives here.
The other part this could be going wrong is when we tar up the contents and build the image. This happens within the lambda_image.py file with the actual tar'ing code here.
I haven't had the chance to dig into which part (or both) are causing trouble here. Happy to help lead someone or answer questions around the code.

Maybe related to this? https://stackoverflow.com/questions/35782941/archiving-symlinks-with-python-zipfile and maybe require this? http://infozip.sourceforge.net/UnZip.html

@metaskills SAM CLI doesn't do the zipping. It seems like the zip information is already there but we aren't respecting it?

Yup, that's what I'm thinking cause Python zip does not have the capability to do so. From my limited research. If that is true, how would you suggest a proposed change fix that? Seems the options (and maybe more) are:

Shell out to the lower OS for the unzip. Can we assume that is the Docker container?
Add some Python package for zip features that respects symlink.

This is affecting C++ Lambda functions as well, which relies heavily on symlinks in the zip file.
I see that the label "stage/waiting-for-release" has been removed and the related PR has been reverted. Is there still a plan to fix this problem?

@bubba-h57 Are you still willing to send a new PR with what we talked about here?

I apologize, I'm struggling with some PTSD issues and once the episode
passes I can focus again. I would love to do it, I just don't know how long
this one will lat and that makes me unreliable. Again, my apologies.
On Fri, Aug 30, 2019, 4:07 PM Jacob Fuss<EMAIL_ADDRESS>wrote:

@bubba-h57 https://github.com/bubba-h57 Are you still willing to send a
new PR with what we talked about here
https://github.com/awslabs/aws-sam-cli/pull/1315#issuecomment-520499875?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/awslabs/aws-sam-cli/issues/878?email_source=notifications&email_token=AAETL3VZCN4IMIXWDJCI4KLQHF4XBA5CNFSM4GLHGAGKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD5SUWIQ#issuecomment-526732066,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAETL3XDB2EGODV47QXBYJDQHF4XBANCNFSM4GLHGAGA
.

This is also affecting me for C++ lambda.

@bubba-h57 No need to apologize, your health is way more important!

Since we just merged removing Py2.7 support #1416 and we reverted the initial fix for this due to Py2.7 issues: https://github.com/awslabs/aws-sam-cli/pull/1140#issuecomment-519154547. We should be able to just add this back in. Going to work on a PR based on the previous PR.

PR: #1482

+1 on getting this fixed.  I've built an "imagemagick" image processing layer that is impacted by this because imagemagick uses lots of symlinks.  Not being able to run and develop locally adds significant friction.

Closing this issue as it was fixed in Release 0.48.0


[ZEPPELIN-209] Folder structure for notebook (based on pr-190)

What is this PR for?
This PR is based on #190
What type of PR is it?
Feature
Todos

[ ] - Should disable clicking the folder in dropdown menu
[ ] - CSS cleanups
[ ] - Add instruction about how to add folder in the notebook create menu
[ ] - Sort the notes / dirs by name
[ ] - The hidden property is shared across clients?

What is the Jira issue?
ZEPPELIN-209
How should this be tested?
Screenshots (if appropriate)

Questions:

Does the licenses files need update?

NO

Is there breaking changes for older versions?

NO

Does this needs documentation?

NO?

@corneadoug I've created a new pr here. Thanks for your review!

@zhongneu thank you for taking a stab at bringing that feature to life again!
:+1: for screenshots, but could you please also updated PR description a bit, explaining how exactly the hierarchy is formed? Like how to create a nested structure of notebooks, and if there are any changes in how notes are persisted.
This, as well as screenshots, usually helps communicating the value of the feature and gauge people's the interest.
Also please feel free to assign ZEPPELIN-209 to yourself, so it's not get lost on the release.

\cc @felizbear for a reivew

I didn't test it yet, but I also think it could be nice to have feedbacks from people who worked on some Notebook storages. (Git, S3 etc..) @vgmartinez @khalidhuseynov

I think way it implements is just treating '/' in the notebook title as a directory separator in a front end side as described in ZEPPELIN-209. and it is not really related to the notebook storage.

Any thoughts about; showing folders first and then files ?


doc: Raw message postfilter

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


"ChunkLoadError: Loading chunk ajs-destination failed." on Safari browser

Hi,
the library's codes aren't loading on the safari browser, on chrome it works perfectly.
I don't know if there is any difference but it is a browser extension.
I tried  AnalyticsNode package but after that it says this:
AnalyticsNode is not available in browsers.

 "dependencies": {
...
    "@segment/analytics-next": "^1.35.1",
    "react": "^17.0.1",
    "react-dom": "^17.0.1",
  },
 "devDependencies": {
...
    "typescript": "^4.1.5",
    "webpack": "^5.70.0",
    "webpack-cli": "^4.9.2",
    "webpack-dev-server": "^4.7.4"
  }

@beqramo Can you share a minimal repro setup? I've only worked briefly with chrome extensions and haven't got a working safari extension yet.
When I've used webpack for a chrome extension, I see some additional files such as ajs-destination.js after building -> do you have something like this in your safari extension project?

thanks for the comment, I think that is the problem, I just realised that there is no such file. will try to fix it and will get back to you if it will work.

Closing, please feel free to re-open if still an issue