Typo in usage docs

var mv = require('mv');
Should be
var mv = require('node-mv');

This is incorrect. You're confusing https://www.npmjs.com/package/node-mv
for https://www.npmjs.com/package/mv
On Tue, Feb 10, 2015 at 7:41 AM, bgSosh<EMAIL_ADDRESS>wrote:

var mv = require('mv');
Should be
var mv = require('node-mv');
—
Reply to this email directly or view it on GitHub
https://github.com/andrewrk/node-mv/issues/14.

--
Simple & Secure Bitcoin Wallet: https://www.coinbolt.com
Bitcoin / JavaScript: http://cryptocoinjs.com
Follow me on Twitter: http://twitter.com/jprichardson

Doh - sorry!

No worries :)
On Tue, Feb 10, 2015 at 8:05 AM, bgSosh<EMAIL_ADDRESS>wrote:

Doh - sorry!
—
Reply to this email directly or view it on GitHub
https://github.com/andrewrk/node-mv/issues/14#issuecomment-73703767.

--
Simple & Secure Bitcoin Wallet: https://www.coinbolt.com
https://www.coinbolt.com
Bitcoin / JavaScript: http://cryptocoinjs.com http://cryptocoinjs.com
Follow JP Richardson: https://twitter.com/jprichardson
https://twitter.com/jprichardson


Add a Falstad importer

This one is not as fully featured, nor is it particularly robust
(handling fissing component errors gracefully is presently deferred to
upstream code) but it gets the job done, at least with resistive
circuits. Reactive elements remain untested.
Falstad's formatting prevents an easy way to access multipins, as
learned the hard way; some significant refactoring will likely need to
be made to achieve this. The abstraction was carefully chosen to allow
this in the future.
The code is untested except by example and the coverage probably
somewhat poor. Defer more testing until stabilization and probably merge
with an origin testing branch.
The stale old code is kept for reference right now, but should probably
be removed from any final releases.

The Falstad.kt file needs more comments in the future, but I've done some comments and want to integrate this with some things in the apps folder, the rest looks good.


[WIP] [g-sim 3] (g + P)-sim

Noticed that my approach in https://github.com/PennyLaneAI/qml/pull/1106 might not work (in the sense that examples just becomes too large to confirm), doing the branching approach instead here. This has neater illustrations anyway 👍

In the end I managed to combine both approaches into one, as they are effectlvely the same. The branching one is nice to understand the underlying transformations and the required maximum moment order. The g-sim in moment vector spaces approach is more practical and what one would do in the end, though I finally argue based on some scaling numbers that this approach is overall of limited practical utility and should be understood as a mere theoretical insight.


AAP-33711: Enable SSL connection if parameter is not recognized

Jira Issue: https://issues.redhat.com/browse/AAP-33711
Description

Incorrect value in environments variable shouldn't disable the SSL protection.
Testing

Steps to test

All unit tests are green

Scenarios tested

Tests are green
Production deployment

[x] This code change is ready for production on its own
[ ] This code change requires the following considerations before going to production:

Hi @goneri, I think it makes code harder to read. For an instance what are the default values in this sample?
SOCIAL_AUTH_VERIFY_SSL = not envvar_is_false("SOCAL_AUTH_VERIFY_SSL")
WCA_ENABLE_ARI_POSTPROCESS = envvar_is_true("WCA_ENABLE_ARI_POSTPROCESS")

Which function should I use if I want to add NEW_VAR with default True value? What if I want default False value?
Unify things sounds good to me, but unification should simplify things, for now I don't see how can we simplify future code reading/writing with those unified functions.

Hi @goneri, I think it makes code harder to read. For an instance what are the default values in this sample?
SOCIAL_AUTH_VERIFY_SSL = not envvar_is_false("SOCAL_AUTH_VERIFY_SSL")
WCA_ENABLE_ARI_POSTPROCESS = envvar_is_true("WCA_ENABLE_ARI_POSTPROCESS")

Which function should I use if I want to add NEW_VAR with default True value? What if I want default False value?
Unify things sounds good to me, but unification should simplify things, for now I don't see how can we simplify future code reading/writing with those unified functions.

We are returning boolean, so we don't really need default value for those. It may actually be nice use type hints to clarify that:
def envvar_is_false(envvar_name: str) -> bool:
    return  os.getenv(envvar_name, "True").lower() in ["false", "0", "f"]

SOCIAL_AUTH_VERIFY_SSL: bool = not envvar_is_false("SOCAL_AUTH_VERIFY_SSL")

It's the best I can imagine right now:
def environ_get_bool(variable_name: str, default_value: bool) -> bool:
    """Convert environment variable to boolean. If value is not recognizable as False
    returns default value. Method was inspired by check of SSL where it's better to
    enable SSL than disable if value is not recognizable."""
    env_var_value = os.getenv(variable_name, str(default_value)).lower()
    recognized_false = env_var_value in ("false", "f", "0", "-1")
    return False if recognized_false else default_value

SOCIAL_AUTH_VERIFY_SSL: bool = environ_get_bool("SOCIAL_AUTH_VERIFY_SSL", True)
ANSIBLE_AI_MODEL_MESH_API_VERIFY_SSL: bool = environ_get_bool(
    "ANSIBLE_AI_MODEL_MESH_API_VERIFY_SSL", True
)

But I am still not happy with the result. The thing is for SSL we want a specific case to cover: if it is not explicit that value is False, enable SSL, which means make the value of variable True. For some cases it can be reversed: if it is not explicit that the value is True, make it False. It means if we want generalize we need a second parse boolean method anyway and methods should be named like environ_get_bool_make_it_true_if_value_is_not_recognized_as_false environ_get_bool_make_it_false_if_value_is_not_recognized_as_true. I think it is all a big overkill for the case we are trying to solve.


WAFV2 ARN mapping is not correct

Region: us-east-1 is hard coded in the ARN, instead we can replace it with os.environ['REGION']
logWebACLId = "arn:aws:wafv2:us-east-1:" + os.environ['ACCOUNT_ID'] + ":regional/webacl/" + webacl["Name"] + "/" + webacl["Id"];

Good one! Thx! I will modify it next week!

Fixed


做一个docker镜像吧，实在是太难装了。

装了好多次都是在失败，真的挫败哦。

We will take a look at this! We have two new members joined Intel helping out. :)


SdFatSdioEX and FatFileSystem still broken for Teensy 4.1

Bill,
I'm trying to get SdFatSdioEX and FatFileSystem to work with my SD terminal library, but it fails with the following error:
C:\Users\ltber\OneDrive\Documents\Arduino\libraries\SdTerminal\src/SdTerminal.h:20:13: error: 'FatFileSystem' has not been declared

  void begin(FatFileSystem& sd, Stream& stream=Serial, const uint16_t& timeout=100);

             ^

C:\Users\ltber\OneDrive\Documents\Arduino\libraries\SdTerminal\src/SdTerminal.h:28:2: error: 'FatFileSystem' does not name a type

  FatFileSystem* _sd;

  ^

In file included from C:\Users\ltber\OneDrive\Documents\Arduino\small_plane_testbed\small_plane_testbed.ino:10:0:

datalog.h:9: error: 'SdFatSdioEX' does not name a type
 SdFatSdioEX sd;

 ^

Was this intended to be fixed here?
Is there a simple fix to this? Thanks!

Yes, SdFatBeta is required for Teensy 4.1.  I hope to soon release SdFatBeta as SdFat V2.0.


Merge the "skip" attribute from included terragrunt files is not supported

Describe the bug
The current Terragrunt documentation, specifically the section on the skip attribute here, stipulates that this flag must be explicitly set within Terragrunt modules that are intended to be skipped. This implies that the configuration will not be inherited from include blocks. Despite this being clearly documented, it appears to contradict the merging concept supported by the include block.
From a user's standpoint, it would be beneficial to have the ability to inherit this flag/attribute, similar to how many other attributes are inherited. Is there a specific rationale behind the distinct treatment of this attribute that I may be overlooking?
Steps To Reproduce
Create a partial terragrunt hcl file
partial.hcl
locals {
  module_path_parts = split("/", path_relative_to_include())
  module_base_path  = local.module_path_parts[0]
  module_name       = join("_", slice(local.module_path_parts, 1, length(local.module_path_parts)))
}

skip = !endswith(local.module_name, "_account_layer")

Include the partial file in a live module
partial.hcl
include {
  path   = find_in_parent_folders("partial.hcl")
  expose = true
}

Expected behavior
As you can see, the skip in the partial terragrunt file does not contain a simple true or false, it contains a more advanced logic that I would like to inherit in included modules, without having to duplicate the logic there, currently that is not possible because the skip attribute is not included.
Nice to haves

[ ] Terminal output
[ ] Screenshots

Versions

Terragrunt version: v0.59.5
OpenTofu/Terraform version: 1.5.5
Environment details (Ubuntu 20.04, Windows 10, etc.): macOS 14.x

Additional context
Add any other context about the problem here.

Hey @rodrigorfk ,
Thanks for opening this issue, and supplying a pull request to address your needs. Your initiative is appreciated!
We will need to take some time to review this logic, and make sure it doesn't impact anything too severely, as it is a breaking change in what's expected from an include.
To be transparent, I don't know why skips aren't included right now, but there's likely a good reason, and we want to make sure those are understood before merging anything in.

The context on this is that skip used to be part of a legacy terragrunt field that no longer exists. At the time, it didn't make sense to allow the skip to be included, but it's totally fine now.
How we handle skips is something that we're working on actively, and is likely to change over time, particularly if the following RFC is accepted:
https://github.com/gruntwork-io/terragrunt/issues/3134

Fix pre-released in v0.68.0-beta2024100701. Will be included in the next minor release.


CA1032 documentation does not reflect analyzer behavior.

Previously analyzer was checking if Exception(SerializationInfo, StreamingContext) ctor is implemented.
Currently the analyzer is not raising a warning when this constructor is missing.
I think that to be fair about how analyzer works it would be beneficial to delete Exception(SerializationInfo, StreamingContext) ctor info.
I am sorry if this is not correct.

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


Immediate traceback after providing a prompt to ChatGPT after it hasn't been used in a while

I'm on Windows 10. After not having used the Chatgpt program for a while (several hours) when I first run it and provide a prompt, I get an immediate traceback, as follows:
Provide a prompt for ChatGPT, or type !help or ? to list commands.
1> What is a dog?
Traceback (most recent call last):
File "C:\python39\Scripts\chatgpt-script.py", line 33, in
sys.exit(load_entry_point('chatGPT==0.3.8', 'console_scripts', 'chatgpt')())
File "C:\python39\lib\site-packages\chatgpt-0.3.8-py3.9.egg\chatgpt_wrapper\chatgpt.py", line 570
, in main
File "C:\python39\lib\cmd.py", line 138, in cmdloop
stop = self.onecmd(line)
File "C:\python39\lib\cmd.py", line 217, in onecmd
return func(arg)
File "C:\python39\lib\site-packages\chatgpt-0.3.8-py3.9.egg\chatgpt_wrapper\chatgpt.py", line 365
, in do_ask
File "C:\python39\lib\site-packages\chatgpt-0.3.8-py3.9.egg\chatgpt_wrapper\chatgpt.py", line 372
, in default
File "C:\python39\lib\site-packages\chatgpt-0.3.8-py3.9.egg\chatgpt_wrapper\chatgpt.py", line 107
, in ask_stream
File "C:\python39\lib\site-packages\chatgpt-0.3.8-py3.9.egg\chatgpt_wrapper\chatgpt.py", line 72,
in refresh_session
File "C:\python39\lib\site-packages\playwright\sync_api_generated.py", line 7697, in evaluate
self._sync(
File "C:\python39\lib\site-packages\playwright_impl_sync_base.py", line 104, in _sync
return task.result()
File "C:\python39\lib\site-packages\playwright_impl_page.py", line 407, in evaluate
return await self._main_frame.evaluate(expression, arg)
File "C:\python39\lib\site-packages\playwright_impl_frame.py", line 277, in evaluate
await self._channel.send(
File "C:\python39\lib\site-packages\playwright_impl_connection.py", line 44, in send
return await self._connection.wrap_api_call(
File "C:\python39\lib\site-packages\playwright_impl_connection.py", line 419, in wrap_api_call
return await cb()
File "C:\python39\lib\site-packages\playwright_impl_connection.py", line 79, in inner_send
result = next(iter(done)).result()
playwright._impl._api_types.Error: Execution context was destroyed, most likely because of a navigation

I meet the same problem, have you solved it yet?

Running !session should solve the problem. The problem should have been fixed in #153
Please let me know if the issue is still there


Make the picture icon more intuitiv

Please make the picture icon more intuitiv. Right now you should not click on the picture icon but on the text field „Attach …“ to get to the option menu from where you want to upload a picture (I have a screencast if needed for a better understanding of my problem).
When you click on the picture icon you have to give an URL to post a picture. Can‘t we get the option menu for the pictures at the icon?

I think you added this in the wrong repository 😅


Add download page for 1.13.0 release

Add download page for 1.13.0 release
Refine releasing documentation

@shangxinli @gszadovszky Please take a look. I will send announcement email for the new release once this gets merged and the site is updated. Thanks!


Feat/docs site

PR Checklist
Please check if your PR fulfills the following requirements:

[x] The commit message follows our guidelines: https://github.com/scullyio/scully/blob/master/CONTRIBUTING.md#commit
[x] Tests for the changes have been added (for bug fixes / features)
[x] Docs have been added / updated (for bug fixes / features)

PR Type
What kind of change does this PR introduce?

[ ] Bugfix
[x] Feature
[x] Code style update (formatting, local variables)
[ ] Refactoring (no functional changes, no api changes)
[ ] Other... Please describe:

What is the current behavior?

Issue Number: N/A
What is the new behavior?
Does this PR introduce a breaking change?

[ ] Yes
[x] No

Other information

Looks great to me. Great job. Can we put this on a host somewhere and I will redirect DNS.


Image Tag (helper) displaying on the HtmlGenerationWebSite

The Image Tag (helper) is not displaying the images
Steps to reproduce:
1, Open the MVC.sln solution from branch rel/1.1.1
2. Go to HtmlGenerationWebSite project, set as startup
3. Run the project - it will go to http://locahost:<port> . Modify to http://locahost:<port>/HtmlGeneration_Home/image
4. Assert all images are not seeing ( red block, red versioning)
e.g. this image will not display
<img src="~/images/red.png" alt="Red block" title="<the title>">

Solution( and I will make a fork and pull request ASAP)

Add "
Microsoft.AspNetCore.StaticFiles": "1.1.0"
to project,json
Add
app.UseStaticFiles();
in the
public void Configure(IApplicationBuilder app)
from Startup class.

@dougbu any thoughts on this? Is this supposed to work? (Presumably, yes...)

We don't worry too much about the end-to-end behaviour of the functional test sites. The most important thing here is that src="~/images/red.png" in the .cshtml results in src="/images/red.png" in the generated HTML.
That said, adding StaticFiles to the project has no downside.

1840d68. Thanks very much @ignatandrei
tiny cleanup in cc584ad


Taking the last card of a deck doesn't work

Taking cards from decks (e.g. attack modifiers cards or reward items) won't work if there's only 1 card left in the deck. This is due to the fact, that the deck doesn't exist anymore when there's only one card left. As a consequence loading a character with lots of perks or loading a save with all rewards won't work correctly.

Sample JSON for testing:  https://pastebin.com/4yQe76ns


Readability?

Does the code has really to be the the "most unreadable" (see README)?

I don't think you understood what @Tristramg was trying to say, actually; but it may be missing an either somewhere. They are only propositions :wink:
If you can provide a Brainf*ck implementation of the CSA algorithm, it would be great!


bpf: lb: have lb4_extract_tuple() pass direction for IPv4 fragment metrics

When introducing lb4_extract_tuple() a while back, we just hard-coded the CT direction as CT_EGRESS (as that's what the previous code was doing). This is currently only used for updating IPv4 fragmentation-related metrics in ipv4_handle_fragmentation().
But we use the helper in all kinds of code paths now, and some of those are actually in inbound direction. So have the caller pass a ct_dir parameter instead.
Set correct direction in IPv4 fragmentation metrics.

/test

/test


Added the _restore function to "unpop" the argument stack.

This is a pull request based on the discussion #2581.
Thanks!

For me this ok, although I haven't reviewed the original code. Perhaps @akosthekiss could help.

Please add some test into the tests/unit-ext/test-ext-arg.c file.

I think another round of review could be done here.

Sorry for the late response. I am not sure this is right way to do this, but I am not against this PR. Please add the new API function to the related documentation (docs/09.EXT-REFERENCE-ARG.md). The patch is good to me after that.


DAM: Highlight newly uploaded files

After uploading one or multiple new files:

they are highlighted for 3 seconds
automatic scrolling to the first uploaded file

TODO:

[x] highlighting only happens when dnd, should also happen when uploading via upload button

Screencast:
https://user-images.githubusercontent.com/13380047/184840924-075cd33a-b956-4229-97d8-532005388eb5.mov

Does this also work in the select file dialogs of blocks? - @johnnyomair

Yes, it also works in the select file dialog


Error: spawn E2BIG

I encountered a spawn E2BIG error when trying to use ee-runner to export a CSV file. See the error message below. I found a similar error message reported HERE. Not sure if this issue is caused by ee-runner or the earthengine api. Any help will be appreciated!
[user@linux]$ ee-runner huc.js
Running script: huc.js
internal/child_process.js:371
    throw errnoException(err, 'spawn');
    ^

Error: spawn E2BIG
    at ChildProcess.spawn (internal/child_process.js:371:11)
    at spawn (child_process.js:561:9)
    at exports.XMLHttpRequest.send (/usr/lib/node_modules/ee-runner/node_modules/xmlhttprequest/lib/XMLHttpRequest.js:503:22)
    at Object.ee.data.send_ (/usr/lib/node_modules/ee-runner/node_modules/@google/earthengine/build/main.js:14992:13)
    at Object.ee.data.startProcessing (/usr/lib/node_modules/ee-runner/node_modules/@google/earthengine/build/main.js:14638:18)
    at Object.<anonymous> (/media/hdd/Dropbox/git/earth-engine/ee-runner/examples/huc.js:535:9)
    at Module._compile (internal/modules/cjs/loader.js:816:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:827:10)
    at Module.load (internal/modules/cjs/loader.js:685:32)
    at Function.Module._load (internal/modules/cjs/loader.js:620:12)

Sample GEE code:
var csv_feat_col = ee.FeatureCollection([csv_feature]);

var json = ee.Serializer.toJSON(csv_feat_col);
var desc = 'HUC_' + huc10_id + '_Stats';

var params = {
    json: json,
    type: 'EXPORT_FEATURES',
    description: desc,
    folder: 'GEE',
    fileFormat: 'CSV'
};

var taskId = ee.data.newTaskId(1);
ee.data.startProcessing(taskId, params);

Here is the link to the json file exported from the ee.Serializer.toJSON function. The file size is 78 KB. Could this be reason for the spawn E2BIG error?

Got the same error:
internal/child_process.js:371
    throw errnoException(err, 'spawn');
    ^

Error: spawn E2BIG
    at ChildProcess.spawn (internal/child_process.js:371:11)
    at spawn (child_process.js:561:9)
    at exports.XMLHttpRequest.send (/home/ucfafyi/ee-runner/node_modules/xmlhttprequest/lib/XMLHttpRequest.js:503:22)
    at Object.ee.data.send_ (/home/ucfafyi/ee-runner/node_modules/@google/earthengine/build/main.js:15363:13)
    at Object.ee.data.computeValue (/home/ucfafyi/ee-runner/node_modules/@google/earthengine/build/main.js:14703:18)
    at ee.Geometry.ee.ComputedObject.getInfo (/home/ucfafyi/ee-runner/node_modules/@google/earthengine/build/main.js:15622:18)
    at Object.<anonymous> (/home/ucfafyi/ee-runner/SIAC/AC_processor:251:65)
    at Module._compile (internal/modules/cjs/loader.js:816:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:827:10)
    at Module.load (internal/modules/cjs/loader.js:685:32)

This kind of errors usually come from using the sync API, try providing a callback instead.
I cannot reproduce it either, please attach a working (crashing) example.

Hi,
The code I have used to test is here:
https://github.com/MarcYin/TEST_SIAC
And the way I run the code is:
node ee-runner/ee-runner.js SIAC/AC_processor.js
The working version on code editor is here:
https://code.earthengine.google.com/b4fb38865be2bfb59f04b93eb415a042
Thank you very much,
Marc.

The problem comes with xmlhttprequest, try running async, this is not ideal, but you should not get that error anymore:
var taskId = ee.data.newTaskId(1)

let deasync = require('deasync')

let done = false

ee.data.startProcessing(taskId, params, () => { done = true })

while(!done) {
  deasync.sleep(100)
}

This will make sure that the startProcessing runs asynchronously, and once done - the Node.js process will exit

Hi,
It dose the magic to solve the problem, thank you very much!
BTW, is it going to be implemented as a option for those codes (like mine...) as a trial and error process?
Marc.


Notify, no way to listen to all events and event message is lost on listen

I have been playing with the message bus and want to show a possible problem. If you want to have a logging class or something to listen to all messages then the message is lost if you assign the same function to the listener.
e.g.
sandbox.listen('page-header-loaded', this.log, this);
sandbox.listen('advert-loaded', this.log, this);
log: function(data) {
   // Which event was fired? No way to know..
   console.log(data);
}

See this gist
https://gist.github.com/jaetask/4bd15608a8c0931be0b7

I wonder if it would be better to pass the whole object to the listener and not need to specify a type.
something like this:
sandbox.notify('message-name', {some: 'value'});
log: function(event, data) {}

This simplifies the event API and also allows for a possible 3 param version when message channels are added (like in backbone marionette) When there are lots of events on a page, we really dont want everything listening to them. so we could do this.
sandbox.notify('channel-name', 'message-name', {some: 'value'});
sandbox.listen('channel-name', 'all', this.log, this);
log: function(event, data) {}

Hey, I can easily implement it that way, and I agree that it is helpful to know from which notifier the notification came from.
One question, when you said all in the last example, you mean that there's a notification called "all"? or if I put "all" then I want to listen to all notifications from all modules?

Great :)
Yes, all means the same as *, so listen to all notifications. This is how backbone works and its very useful

Cool, I'll treat that all as * like you said.
I'll keep this issue opened as I work on that. Thanks

How would you feel about integrating with another small library? or enabling channelled eventing through a plugin?
Would it be possible to make the sandbox event into a pluggable thing? allowing something like mediator.js to be used.
http://thejacklawson.com/Mediator.js/

I think your point is good, but I didn't want to include any external libs for now...
But as things gets more complex, I'll consider it. :D

Actually, I totally agree. Keep it simple, keep it internal. The messaging will be more than good enough for now and when channeling is required we can look at it proper. There are more important issues to focus on.
100% agree :+1:

Passing around the module is probably not a great idea: https://www.youtube.com/watch?v=b5pFv9NB9fs at 19:15 basically warns against it explicitly. It will lead to increased coupling between the modules composing the app.

Hi @allain, I don't understand the last comment. We are not discussing passing the module around. This thread is about changing the notify messages to also include the message name, so that when we enable a sandbox.listen('*') ability the function that is assigned will know which message was sent wit the data payload.
Hope that helps clarify.

Indeed. There was a previous comment about passing the whole object around threw me. I misread. Sorry

good suggestion, especially for debugging and maintenance

Having a message name and channel name is redundant
sandbox.notify('channel-name', 'message-name', {some: 'value'});
Propagating a context is also redundant, there are many ways to do it already, apply, bind, call, closures arrow functions ...
listening.callback.call(listening.context, notification.data);
Two things should be added:

A way to listen to everything
The type of the event should be provided to the listener functions

This should solve all use cases.
We should also re-consider if it is worth using https://github.com/ajacksified/Mediator.js or https://github.com/GrosSacASac/event-e3 in the future

Have a look at https://github.com/mauriciosoares/core.js/blob/architecture-change/examples/simple/main.js#L28

only the main file (the one that imports core) has the possiblity to listen on ALL, as I consider it out of scope for individual modules


Update to swift 4.2

Update to swift 4.2 and fixed error -> 'deallocate(capacity:)' is deprecated: Swift currently only supports freeing entire heap blocks, use deallocate() instead

+1

Can you merge it ?


feat: update code-snippet v1.5.0 for GAFeature/update code snippet

Can one of the admins verify this patch?

ok to test


Ensure consistency between figures and text in tutorial notebook

In the Google Colab Tulog notebook, right before the End-to-End Pipeline Configuration section, the text refers to the pipeline catching 4 out of 5 anomalies. However, the image shown in the notebook that loaded in shows on 2 out of 5 being caught.
At the top of the notebook, the text does clarify that the results might differ between runs, but this disclaimer may be missed by someone skimming the results. Setting a random seed for the program to ensure the results look the same every time may prevent this confusion, or clarifying again that the image may not show 4 out of 5 anomalies if the run differs.

Thanks for pointing this out @zyteka! There is definitely some inconsistency here. I updated the colab notebook to mention Several anomalies rather than being specific.
The stochasticity of TadGAN falls into two main parts:

the random initialization of weights in the network
the sampling of the latent variable

Generally GANs are unstable because of their randomness and it would be difficult to ensure exactness.


Opening a Color picker in the inspector places it outside the display border

Tested versions
4.3 dev, 2042420bd7f43bb834316d7ca4631ab2fcfcc820
System information
Windows 11
Issue description
Opening a color picker dialog for the full-screened inspector (in the standard editor layout) place it outside the window, which makes it unusable:

Probably a recent regression (does not present in 4.3 dev 6)
Steps to reproduce
^^
Minimal reproduction project (MRP)
No need

Bisected to 5c28814b3944f899c6e8971f28c7857e4c2a9e13, cc @KoBeWi

Maybe it also affects the ColorPicker's preset buton, it's size is calculated as (int(get_minimum_size().width) - (preset_container->get_h_separation() * (PRESET_COLUMN_COUNT - 1))) / PRESET_COLUMN_COUNT, and I got -5 at the current master.

A variation of this issue still exists.

Low ColorPickers appear below task bar. I don't know what is the cause this time.

Was this fixed by #92664?

No.

I'm going to put some time into trying to fix this.


Convert ReactTestHelper

Summary:
As part of the effort to Kotlin-fy React Native tests, I've converted ReactTestHelper to Kotlin.
Changelog:
[Internal] [Changed] - Convert ReactTestHelper to Kotlin
Test Plan:
Tests pass: ./gradlew :packages:react-native:ReactAndroid:test
Formatted with KtFmt

@cortinico can u take look of this

@cortinico Thank you for your comments, I resolved them, can you please double check again.


pkgconfig integration wrongly rendered if tests are run

When running the tests for the project after building it (with -DCMAKE_INSTALL_PREFIX=/usr), the pkgconfig file is rendered with /usr/local/include instead of /usr/include.
What is the issue you have?
When building and running the tests, the CMAKE_INSTALL_PREFIX is not honored when creating the pkgconfig integration.
Please describe the steps to reproduce the issue.
  cmake -DCMAKE_INSTALL_PREFIX='/usr' \
        -DCMAKE_INSTALL_LIBDIR='/usr/lib' \
        -DCMAKE_BUILD_TYPE='None' \
        -DBUILD_TESTING=ON \
        -DJSON_BuildTests=ON \
        -DJSON_MultipleHeaders=ON \
        -Wno-dev \
        -B "build" \
        -S .
  make VERBOSE=1 -C "build"
  make -k test -C "build"
  make DESTDIR="${pkgdir}" install -C build

The pkgconfig integration will contain /usr/local/include, but should include /usr/include.
When building without tests, CMAKE_INSTALL_PREFIX is honored and the pkgconfig file contains /usr/include:
  cmake -DCMAKE_INSTALL_PREFIX='/usr' \
        -DCMAKE_INSTALL_LIBDIR='/usr/lib' \
        -DCMAKE_BUILD_TYPE='None' \
        -DJSON_MultipleHeaders=ON \
        -Wno-dev \
        -B "build" \
        -S .
  make VERBOSE=1 -C "build"
  make DESTDIR="${pkgdir}" install -C build

Can you provide a small but working code example?
n/a
What is the expected behavior?
CMAKE_INSTALL_PREFIX is always honored. Tests never influence the installed files.
And what is the actual behavior instead?
CMAKE_INSTALL_PREFIX is not honored if tests are run. Running tests influences the installed files.
Which compiler and operating system are you using?

Compiler: gcc 11.1.0
Operating system: Arch Linux

Which version of the library did you use?

[x] latest release version 3.9.1
[ ] other release - please state the version: ___
[ ] the develop branch

If you experience a compilation error: can you compile and run the unit tests?

[ ] yes
[ ] no - please copy/paste the error message below

Thanks for reporting. Maybe @doronbehar @eli-schwartz @xvitaly @ericonr who worked on pkg-config related PRs in the past can help here.

Is this just #2324 and #2318 again?
For what it's worth, I simply don't understand the initial resolution at all. The testsuite should not be writing into the main project's build configuration. Admittedly, I'm equally at fault here, for slapping on a band-aid fix in the second link.
In self-defense, I find cmake incredibly confusing, and at the time I believe I thought it would be enough. But as later history showed, it ends up producing the wrong content... and I just do not think that "don't test those tests" is the correct way to handle it.
I don't actually understand the underlying problem (and haven't really investigated it), but... why does running a test that executes cmake to build a test project, cause the main build configuration to execute the make install of the test case?

I also have little experience with pkg-config and only use CMake in this project to serve my needs (i.e., compile and execute the tests).

I could not reproduce in Ubuntu 22.04, cmake 3.22.1.
Checked the pkg-config files:
/build/nlohmann_json.pc
./build/tests/cmake_fetch_content/_deps/json-build/nlohmann_json.pc
./build/tests/cmake_fetch_content2/_deps/json-build/nlohmann_json.pc
./build/tests/cmake_add_subdirectory/nlohmann_json/nlohmann_json.pc

In all tests the main file (nlohmann_json.pc) have the config Cflags: -I/usr/include and the others with the local path.
Can you drive me where (file?, install output?) the error was found?

I've also tried to reproduce this issue before the 3.11.0 release and was unable to do so. I suspect this might have been fixed when uses of CMAKE_BINARY_DIR were replaced with PROJECT_BINARY_DIR.

Thanks for looking into this again!
I can confirm that this appears to be resolved with 3.11.3 on Arch Linux and therefore I'll close this issue.
Thanks!


Enable BoringUtils Tests with MFC

Re-enable BoringUtilsSpec and update it in minor ways to work with MFC. The MLIR-based FIRRTL Compiler (MFC) now supports existing BoringUtils APIs after:

https://github.com/llvm/circt/commit/05ca6572e0a4962599cdb0f21cdc81dd9f4d86fb

Signed-off-by: Schuyler Eldridge<EMAIL_ADDRESS>This requires firtool 1.30.0 which is scheduled to be released this week.

I cleaned up the imports on this as it helps on the chisel5-slice-n-dice branch.


Remove or coalesce extraneous GH Actions workflows

The Armada repo has a large number of GH Actions workflows, and several appear to be possibly redundant or not useful - review all the workflows and remove or coalesce the extraneous ones where possible.

Hey team! Please add your planning poker estimate with Zenhub @ClifHouck @dejanzele @kannon92 @richscott @Sharpz7 @suprjinx


Bump version to 3.7

It appears that the docs build fails due to griffe v. 1.0 (a dependency of mkdocstrings[python]).


fix: No messages is not being displayed.

Show No messages if messageList size is zero
and no fetching is in progress.
Fix:#518

caughtUp is true when we're at the last message in that direction. But if there are no messages then there is no sense of last message.

Good work. Thanks for the fix.


Fixed number of toasts if two or more options in Quiz Template are same.

@shikharbhuddi , can you please add some more info on what you fixed here? And  It looks that you have created the PR targeted to master branch. Can you please redirect to bug-fixes branch.

#336

@opticod Can I work on this if @shikharbhuddi not working on it?

@opticod Apologies for the delay. Missed previous mail. @free4murad I have created the PR.


Adding a wiki for this repo

I found this a very useful repo for beginners who want to learn EDA. One suggestion would be to seperate some of contents from Readme into Wiki for clarity.

If you'd be kind enough to do that, I'd be very happy! Otherwise, I shall do it!

Glad you liked the idea. I would be more than happy to do it. Probably will tackle it first then

Do as you prefer! I'm really glad that you're my first contributor EVER 😍

Any updates?

Any updates?

Hi @muhammadanas365 . Apologies for the delay. Anyway I think I need permission to edit the wiki for this repo.
 fatal: remote error: access denied or repository not exported: /c/nw/c9/1e/03/467736882/502851748.wiki.git

Not very familiar with how to do this, but I think I have done something which will allow you to do so. I've invited you as a collaborator, I hope this works. Let me know if it doesn't. Can't thank you enough for contributing!

Not very familiar with how to do this, but I think I have done something which will allow you to do so. I've invited you as a collaborator, I hope this works. Let me know if it doesn't. Can't thank you enough for contributing!

Yup. Works perfect.

Awesome! Just pull a PR when ready!

Please add the Heart Analysis As well! Other than that, it looks great!

Hi @muhammadanas365  Added Heart Analysis data sources.
I think we have created a good wiki structure. The next step would be to fill out individual wiki pages of each analysis .
As of now we can structure it as follows:

Data Source
Problem Statement
Visualisation and Analysis
4.Conclusion

Let me know how you feel about this.
We can chat more about the content. Here is my email id<EMAIL_ADDRESS>

Awesome. I love the way you are managing this. Feel free to do whatever you feel is right. The structure is awesome! Before I close this issue, there are 3-4 projects not mentioned in the Wiki. Once that's done, I'll close this one and create a new one!

Btw, if you have discord we can also talk over there. Much more convenient.
Here's my id: Muhammad Anas#0716

Btw, if you have discord we can also talk over there. Much more convenient.
Here's my id: Muhammad Anas#0716

Great.
Not at the moment but I will create one soon.

Sure! Until then, we can talk over Github!

Any updates @AbhishekD15


Socketed items

Well... Do you know that it IS working right?
Just make from 0 and not from 1 and it is working lol.

Has been already added


Mat/Pat - CRM ticket edits

AC

Add Employee ID in employee information section
Remove the confirmation field for both employee information & partner information

Submitted a form with Stella as my supervisor - would complete the test at check-in!

Confirmed updated; employee id has been added

@ayushdamani, please upload a screenshot that shows both the AC & close this ticket!


eslintrc generate error with typescript checked

When i generate a eslint config file with typescript checked, the styleGuides seems not correct

@eslint/create-config version

node:16.13.0
npm:8.19.2

I was not able to repro. is it a npm caching issue? can you try npm cache clean --force, and retry?

Yes, I have tried this.

I was not able to repro. is it a npm caching issue? can you try npm cache clean --force, and retry?

or have you globally-installed an older @eslint/create-config? I recall npx will use the global version if installed.:)
you can try npm uninstall @eslint/create-config -g to uninstall it first.

or have you globally-installed an older @eslint/create-config? I recall npx will use the global version if installed.:)
you can try npm uninstall @eslint/create-config -g to uninstall it first.

If i npm i @eslint/create-config -D, it will correct......

npm init @eslint/config@latest correct
npm init<EMAIL_ADDRESS>correct
npm init<EMAIL_ADDRESS>not correct
npm init @eslint/config not correct, same as 0.3.0

I use npx --node-options=--inspect @eslint/create-config to  debug this question ,and found

The path is not a global path

The @eslint/create-config  version is 0.1.2, it seems a nodejs problem, not your bug.

clear the npx cache , it solved. And it give me a tip which not given before

If i execute npm init @eslint/config again, It will not give a tip and not  install this module ,so it's a npx cache problem..


[Windows] Docker, .NET Core and NPM improvements

Merge Install-Docker.ps1 and Update-DockerImages.ps1 into the single one to simplify logic. They both are pretty small
Create separate toolset toggle for .NET Core warmup.


AX 2012 R3 Scope of Extended Support

AX 2012 R3 Scope of Extended Support is not clear on this page.
Are we supposed to assume that scope of AX 2012 R3 Extended support is same as AX 2012 R2

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 07b21efb-8608-4d17-2bcb-32052046cba5
Version Independent ID: afcf5ce6-5277-119c-6414-db8e26d655cf
Content: End of mainstream support for Microsoft Dynamics AX 2009, Dynamics AX 2012, and Dynamics AX 2012 R2
Content Source: articles/fin-ops-core/fin-ops/get-started/mainstream-support-ax-2009-2012.md
Service: dynamics-ax-applications
Product: ****
Technology: ****
GitHub Login: @meeramahabala
Microsoft Alias: meeram

@chris-ayers-uk, thanks for posting here.
@ShellyBakke or @meeramahabala, please review and update the content, as necessary.

Bug 427168 has been logged to track this issue.

The scope for extended support for AX 2012 R2 will also apply to Dynamics AX 2012 R3 once R3 reaches the extended support phase.  I have updated the question in the FAQ to hopefully be more clear.

The updated topic will be published later today.


Add prelease on merge to master

This PR adds a new step to the pipeline to publish a pre-release of master.
The versioning follows this convention:
If the master branch is on 1.9.3 the next time we merge it will release 1.10.0-beta.0, the next merge 1.10.0-beta.1 and so on. Once we bump master to 1.10.0, it will start releasing 1.11.0-beta.0. If we just release a patch, it will continue to make beta releases using the next minor, so master on 1.9.4 should release beta 1.10.0-beta.2, assuming the previous example.
I am never sure if the YML changes will work on Azure pipelines, so if you like the idea I will try this manually before I merge
@JaapRood it's here 😄

This is great, makes it that much easier to use a pre-release version, with the version number nicely documenting in our projects what it could be upgraded to. I do wonder how you ever publish patch versions for a current minor? Say 1.10.0 just got released, is broken and requires a 1.10.1?  Wouldn't some hotfix PR then instantly create the wrong pre-release version?

The hotfix would release 1.10.1 and 1.11.0-beta.0, I can make the pre-release dependent on the release, so we never create both if that's the case. I am also planning to add the commit hash into the bundle so you can always check what's in the release, or create a tag on github. I will try to refine this a bit.

1.10.0-beta.0 released :tada:

This PR is complete now; it will only generate beta versions for merges changing index.js, package.json, src/* or types/*. It will also create a tag with the beta version.
It's hard to test pipeline changes, so we have to merge and fix as we go.


HyperTerm theme?

This should be a thing.
https://hyperterm.org
https://github.com/zeit/hyperterm

Closing in favour of https://github.com/jamiewilson/predawn-shell/issues/1


Ennemies

Two kinds of ennemies : static (e.g : spikes) and walking (we'll surely include more if we reach the alpha release ) :
Walking

Sprites :
[ ] Walking
[ ] Attaquing
[ ] Dying
Code :
[ ] Walking : goes from left to right when reaching a solid node, or when reaching void of 1 block at least.
[ ] Attacking : Will depend on ennemies attacks. We will discuss about that when we will be working on it.
[ ] Dying : Dying sprite, sprite blinking, disappear.

Static

Sprites :
[ ] Make sprites and include them as a tilemap (if possible)
Code :
[ ] If touched, losing "x" life points

Question: Why is it Ennemies with a double n?

Question: Why is it Ennemies with a double n?

Because @ObaniGemini is French and it has a double n in French ;)

@mamarilmanson @akien-mga may I remove your two comments along with editing the issue? (to reduce bloat)

Sure :)


How do you make introductory quotes?

In the official D&D Books, they use quotes in the beginning of each race to give a feel for what they are like. A special font and formatting is used to set it apart from the actual race description.
Does anyone know how to formal the text to look like this? if possible at all?

Those just look like italicized regular font to me, but...
You can give paragraphs custom fonts and styles. I made a brew describing how to use Google Fonts. I think I describe it well, but you can view the source of the brew to see working examples.
http://homebrewery.naturalcrit.com/share/HJNNFqYI-
As far as which font to use, that's for you to decide. There are many hundreds to choose from at https://fonts.google.com and you can use them from elsewhere (but maybe not as easily).
It's not clear if these methods will work when v3 eventually comes out.

Closing since there hasn't been a reply from the user for many months and it is assumed the problem was solved.
@esda01 If you are still experiencing this issue, feel free to reopen and provide information.


Make FileType and FileAttr fully comparable

There is no reason these two types shouldn't be PartialEq and Eq, so
make them be.  Having them be comparable is very useful for unit testing.
Motivated by the tests in:
https://github.com/bazelbuild/sandboxfs/blob/6758dcf48d09ac06db475b0137cda373748227ff/src/nodes/conv.rs#L283

A couple more examples where this would be useful for me (though these links point at WIP commits and may have vanished by the time you look at them):
https://github.com/jmmv/sandboxfs/commit/ed3daa727edaa1e679f3d76b19dfd7271421675a
https://github.com/jmmv/sandboxfs/commit/18b7036d0e6a06e6d195cac81b90685af400a9f6#diff-b4aea3e418ccdb71239b96952d9cddb6R366

ping!

Sorry for the late response. Of course PartialEq and Eq are very useful for these types. Thanks.


Failsafe version of checkVersion Task

Prevent stopping  check Task if an exception happens during checkVersion execution.
Print proper warning message if a version violates semantic versioning.
Closes #479

Thanks! Works like a charm now


Import Optimization Feature

Can we support a similar mechanism from what ktlint has for import optimization?

Sorting alphabetically was implemented on 3a7a096146773ac8656a8ecc8dd14e4037246c64.
Now we are just missing the import removal. Should we open a separated issue for that or just keep this one open?

Yes, let's reopen (or rename this issue) so it's clear.
I took a look at removing dead imports, but it wasn't immediately clear how to do it.

Won't this be easy to solve by just remembering all name-references we see in a file, and removing all imports which have never been seen?
This might not remove 100%, but it should be correct to remove according to it.

Sounds good, let's try this. I think this approach is easy enough for first-time contributors?

Is it possible to disable this feature?

It's possible only with the code right now:
https://github.com/facebook/ktfmt/blob/b25b5a00e07f8354fb8da047de5715bf42c9e40d/core/src/main/java/com/facebook/ktfmt/format/FormattingOptions.kt#L50
That's clearly not optimal, so I sent a commit to review to support it, once it is committed it will be merged to the open source version and the next version will support a flag to disable it.

Flag was added in ba8138dd887245dbff23c2d3b6643e3a0ba97d2c


Fix MarshalIndent for interface type

fix https://github.com/goccy/go-json/issues/316

Codecov Report

Merging #317 (acc66cf) into master (e17c06a) will decrease coverage by 0.00%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##           master     #317      +/-   ##
==========================================
- Coverage   79.77%   79.77%   -0.01%
==========================================
  Files          51       51
  Lines       17481    17479       -2
==========================================
- Hits        13945    13943       -2
  Misses       2970     2970
  Partials      566      566


Cassandra: fields with JSON type should be serialized in to strings

There are a few things that must change so that cassandra can accept a type that exists in aion-land but not in cassandra-land.

[x] Cassandra asks for JsonNode type in classOfType.
[x] Cassandra maps json types to text in initializeSchema.
[x] Cassandra maps json type to String in insertQuery
[x] Cassandra maps Strings returned for json type back to JsonNode in executeQuery
[ ] Aion Application correctly handles the case of reading / writing JsonNodes

This approach requires possibly repetitive coding in each new DataSource that cannot handle JSON natively, and makes for some somewhat-fragile code there, but at the end of the day it allows the most flexibility for using DataSources that can handle JSON natively.


DocsArchive-<IP_ADDRESS>Auto archive content

Please don't merge this PR until target archive repo PR https://github.com/OPS-E2E-PPE/docs-yml-archive-non-versioning-archive/pull/350 is merged into live branch.
Auto archive content to https://github.com/opstest2/docs-yml-archive-non-versioning-archive.git

Docs Build status updates of commit b3c3429:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

.openpublishing.redirection.json
:white_check_mark:Succeeded

docs/TOC.yml
:white_check_mark:Succeeded
View

docs/index.yml
:white_check_mark:Succeeded
View

docs/to-be-archive/level1/article3-1-1.md
:white_check_mark:Succeeded
View

docs/to-be-archive/level1/article3-1-2.md
:white_check_mark:Succeeded
View

docs/to-be-archive/level1/article3-1-3.yml
:white_check_mark:Succeeded
View

docs/to-be-archive/level1/sql-database-engine.png
:white_check_mark:Succeeded

docs/to-be-archive/level2/article3-2-1.md
:white_check_mark:Succeeded
View

docs/to-be-archive/level2/article3-2-2.md
:white_check_mark:Succeeded
View

docs/to-be-archive/level2/article3-2-3.yml
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel


@auth can be bypassed with list operation

Describe the bug
I can bypass @auth read rules by using the list query instead of get.
This is something that happened "live" so I had to redact some data. I verified the bug using AWS Appsync and DynamoDB from the console. Adding projectMembers via DynamoDB and quering via AWS Appsync.
Amplify CLI Version
4.25.0
To Reproduce
I got this schema
type Project @model
@auth(rules: [
    { allow: groups, groups: ["Admin"]}
    { allow: owner, ownerField: "projectMembers", operations: [read] }
])
{
    id: String!
    customerId: String!
    customerReference: String
    name: String!
    projectMembers: [String] @auth(rules: [
        {allow: groups, groups: ["Admin"]},
        {allow: owner, ownerField: "projectMembers", operations: [read, update]}])
}

I have some projects but no projectMembers exists / are empty. I use listProjects and as expected I get nothing.
{
  "data": {
    "listProjects": {
      "items": []
    }
  }
}

But when I add my user to projectMembers on project 100542867 I can suddenly do this:
I am using getProject to show you which id I added the projectMembers. All other projects should be forbidden.
{
  "data": {
    "getProject": {
      "id": "100542867"
    },
    "listProjects": {
      "items": [
        {
          "id": "100542867"
        },
        {
          "id": "100950360"
        },
        {
          "id": "100619144"
        },
        {
          "id": "100807769"
        },
        {
          "id": "100513315"
        }
      ]
    }
  }
}

If I try to get any of those Ids (100950360 in this case) this happens:
{
  "data": {
    "getProject": null,
    "listProjects": {
      "items": [
        {
          "id": "100542867"
        },
        {
          "id": "100950360"
        },
        {
          "id": "100619144"
        },
        {
          "id": "100807769"
        },
        {
          "id": "100513315"
        }
      ]
    }
  },
  "errors": [
    {
      "path": [
        "getProject"
      ],
      "data": null,
      "errorType": "Unauthorized",
      "errorInfo": null,
      "locations": [
        {
          "line": 2,
          "column": 5,
          "sourceName": null
        }
      ],
      "message": "Not Authorized to access getProject on type Query"
    }
  ]
}

Interestingly enough projectMembers is the only field where the protection works for list
{
  "data": {
    "listProjects": {
      "items": [
        {
          "id": "100542867",
          "projectMembers": [
            "2db07842-558a-4ed3-816c-6366cea4e2c4"
          ]
        },
        {
          "id": "100950360",
          "projectMembers": null
        },
        {
          "id": "100619144",
          "projectMembers": null
        },
        {
          "id": "100807769",
          "projectMembers": null
        },
        {
          "id": "100513315",
          "projectMembers": null
        }
      ]
    }
  },
  "errors": [
    {
      "path": [
        "listProjects",
        "items",
        1,
        "projectMembers"
      ],
      "data": null,
      "errorType": "Unauthorized",
      "errorInfo": null,
      "locations": [
        {
          "line": 5,
          "column": 7,
          "sourceName": null
        }
      ],
      "message": "Not Authorized to access projectMembers on type String"
    },
    {
      "path": [
        "listProjects",
        "items",
        2,
        "projectMembers"
      ],
      "data": null,
      "errorType": "Unauthorized",
      "errorInfo": null,
      "locations": [
        {
          "line": 5,
          "column": 7,
          "sourceName": null
        }
      ],
      "message": "Not Authorized to access projectMembers on type String"
    },
    {
      "path": [
        "listProjects",
        "items",
        3,
        "projectMembers"
      ],
      "data": null,
      "errorType": "Unauthorized",
      "errorInfo": null,
      "locations": [
        {
          "line": 5,
          "column": 7,
          "sourceName": null
        }
      ],
      "message": "Not Authorized to access projectMembers on type String"
    },
    {
      "path": [
        "listProjects",
        "items",
        4,
        "projectMembers"
      ],
      "data": null,
      "errorType": "Unauthorized",
      "errorInfo": null,
      "locations": [
        {
          "line": 5,
          "column": 7,
          "sourceName": null
        }
      ],
      "message": "Not Authorized to access projectMembers on type String"
    }
  ]
}

I could query all the other fields and would get the value but have to redact the data there...
PS: For some reason I only get these 5 or so other projects (seem to always be correlated to which projectId I am added to so maybe something with the order they are in the Database)
Expected behavior
I expect the list to only be of the projects which I have [read] rights on.

I get my application to work as intended when switching from
const myProjects = await API.graphql(graphqlOperation(listProjects, {limit: 10}));

to
const myProjects = await API.graphql({
                query: listProjects
            })

and Appsync somehow fixed itself because it seems to work now aswell..?

Hi @Zanndorin
I followed the exact same steps as you mentioned and I am not able to reproduce it.
These are list of projects I added without project Members
{
  "data": {
    "listProjects": {
      "items": [
        {
          "id": "testing",
          "customerId": "testing"
        },
        {
          "id": "testing1",
          "customerId": "testing1"
        }
      ]
    }
  }
}

I used listProjects command as project member and it returns empty as you mentioned above
{
  "data": {
    "listProjects": {
      "items": []
    }
  }
}

I added my user to projectMembers on project testing and ran get and list queries:
{
  "data": {
    "listProjects": {
      "items": [
        {
          "id": "testing",
          "customerId": "testing",
          "projectMembers": [
            "test"
          ]
        }
      ]
    },
    "getProject": {
      "id": "testing",
      "projectMembers": [
        "test"
      ]
    }
  }
}

As you can see here I am not getting testing1 project in the get and list queries as it doesnt have projectMembers field.
Let me know if I am missing anything here to repro this or there are anymore changes you did on your side ?

We are a bit understaffed this week, I'll see if I can find time to triage this a bit more.
How did you query it? Appsync seems to be a bit on and off if it happens.
Quering with the first option gives the issues second one doesn't.
const myProjects = await API.graphql(graphqlOperation(listProjects, {limit: 10}));

const myProjects = await API.graphql({
                query: listProjects
            })

I also failed to replicate this. Could you post your Query.listProjects and Project.projectMembers templates found in AppSync?

I tried to replicate this in a clean project but I am failing in Appsync with the reverse issue (always protected and projectMembers field is ignored).
But when going back to my production project running Frontend on Localhost:
const myProjects = await API.graphql(graphqlOperation(listProjects, {limit: 10}));
gives me 0 items. (Expected: 1)
Setting limit to 100
gives me 1 item. (Expected: 1)
Setting limit to 1000
gives me 31  (Expected: 1)
const myProjects = await API.graphql({
                query: listProjects
            })

gives me 1 item. (Previously: 1, Expected: 1)
Adding another project to my user (same query) gives me 1 item. (Previously: 1, Expected: 2)
Running this in Appsync
query MyQuery {
  getProject(id: "100486315") {
    id
  },
  listProjects{
    items{
      id
    }
  }
}

Gives me
  "data": {
    "getProject": {
      "id": "100486315"
    },
    "listProjects": {
      "items": [
        {
          "id": "100542867"
        }
      ]
    }
  }
}

(100542867 being the old project, 100486315 the new one).
Going back to the old query
const myProjects = await API.graphql(graphqlOperation(listProjects, {limit: 100}));
again
gives me 1 item. (Expected: 2)
const myProjects = await API.graphql(graphqlOperation(listProjects, {limit: 1000}));
gives me 33 items (Expected: 2)
There are 2209 items in the DynamoDB.
PS: The protected field is still always protected correctly. i.e. I get projectMembers only for the projects I am a projectMember in.

@RossWilliams
type Project {
	id: String!
	customerId: String!
	customerReference: String
	name: String!
	projectMembers: [String]
	createdAt: AWSDateTime!
	updatedAt: AWSDateTime!
}

listProjects(filter: ModelProjectFilterInput, limit: Int, nextToken: String): ModelProjectConnection

?

I assume this has to do with how Filter and Auth are working. If I recall correctly list runs a getAll and filters afterwards? Is it the same for get operations?
Sidenote:
project 100542867 is the 9th project that shows up when you open DynamoDB while the other one is number 300++

I also tried it with a while (nextToken) operation
            const myProjects = await API.graphql({
                query: listProjects
            })
            setMyProjects(myProjects.data.listProjects.items);
            let nextToken = myProjects.data.listProjects.nextToken
            while (nextToken) {
                let d = await API.graphql({
                    query: listProjects,
                    variables: {nextToken}
                })
                nextToken = d.data.listProjects.nextToken
                console.log(d.data)
            }

Here, in addition to the expected result, I also get a lot of projects which I should not get. These items do not contain the projectMembers field. Adding the projectMembers field (just an empty list []) to any of these unexpected results seems to resolve the issue for all of them.

It’s the resolver templates I need to see, not the schema.

@RossWilliams I assumed so.. 😊
I do not know where to find them in Appsync so I am providing the ones from my source code ( I assume they are the same?)
These should be fully auto generated.
## [Start] Determine request authentication mode **
#if( $util.isNullOrEmpty($authMode) && !$util.isNull($ctx.identity) && !$util.isNull($ctx.identity.sub) && !$util.isNull($ctx.identity.issuer) && !$util.isNull($ctx.identity.username) && !$util.isNull($ctx.identity.claims) && !$util.isNull($ctx.identity.sourceIp) && !$util.isNull($ctx.identity.defaultAuthStrategy) )
  #set( $authMode = "userPools" )
#end
## [End] Determine request authentication mode **
## [Start] Check authMode and execute owner/group checks **
#if( $authMode == "userPools" )
  ## [Start] Static Group Authorization Checks **
  #set($isStaticGroupAuthorized = $util.defaultIfNull(
            $isStaticGroupAuthorized, false))
  ## Authorization rule: { allow: groups, groups: ["Admin"], groupClaim: "cognito:groups" } **
  #set( $userGroups = $util.defaultIfNull($ctx.identity.claims.get("cognito:groups"), []) )
  #set( $allowedGroups = ["Admin"] )
  #foreach( $userGroup in $userGroups )
    #if( $allowedGroups.contains($userGroup) )
      #set( $isStaticGroupAuthorized = true )
      #break
    #end
  #end
  ## [End] Static Group Authorization Checks **

  ## No Dynamic Group Authorization Rules **

  ## [Start] Owner Authorization Checks **
  #set( $isOwnerAuthorized = $util.defaultIfNull($isOwnerAuthorized, false) )
  ## Authorization rule: { allow: owner, ownerField: "projectMembers", identityClaim: "cognito:username" } **
  #set( $allowedOwners0 = $ctx.source.projectMembers )
  #set( $identityValue = $util.defaultIfNull($ctx.identity.claims.get("username"), $util.defaultIfNull($ctx.identity.claims.get("cognito:username"), "___xamznone____")) )
  #if( $util.isList($allowedOwners0) )
    #foreach( $allowedOwner in $allowedOwners0 )
      #if( $allowedOwner == $identityValue )
        #set( $isOwnerAuthorized = true )
      #end
    #end
  #end
  #if( $util.isString($allowedOwners0) )
    #if( $allowedOwners0 == $identityValue )
      #set( $isOwnerAuthorized = true )
    #end
  #end
  ## [End] Owner Authorization Checks **

  ## [Start] Throw if unauthorized **
  #if( !($isStaticGroupAuthorized == true || $isDynamicGroupAuthorized == true || $isOwnerAuthorized == true) )
    $util.unauthorized()
  #end
  ## [End] Throw if unauthorized **
#end
## [End] Check authMode and execute owner/group checks **

{
  "version": "2018-05-29",
  "payload": {}
}

## [Start] Checking for allowed operations which can return this field **
#set( $operation = $util.defaultIfNull($context.source.operation, "null") )
#if( $operation == "Mutation" )
$util.toJson(null)
#else
$util.toJson($context.source.projectMembers)
#end
## [End] Checking for allowed operations which can return this field **

#set( $limit = $util.defaultIfNull($context.args.limit, 100) )
#set( $ListRequest = {
  "version": "2018-05-29",
  "limit": $limit
} )
#if( $context.args.nextToken )
  #set( $ListRequest.nextToken = $context.args.nextToken )
#end
#if( $context.args.filter )
  #set( $ListRequest.filter = $util.parseJson("$util.transform.toDynamoDBFilterExpression($ctx.args.filter)") )
#end
#if( !$util.isNull($modelQueryExpression)
                        && !$util.isNullOrEmpty($modelQueryExpression.expression) )
  $util.qr($ListRequest.put("operation", "Query"))
  $util.qr($ListRequest.put("query", $modelQueryExpression))
  #if( !$util.isNull($ctx.args.sortDirection) && $ctx.args.sortDirection == "DESC" )
    #set( $ListRequest.scanIndexForward = false )
  #else
    #set( $ListRequest.scanIndexForward = true )
  #end
#else
  $util.qr($ListRequest.put("operation", "Scan"))
#end
$util.toJson($ListRequest)

## [Start] Determine request authentication mode **
#if( $util.isNullOrEmpty($authMode) && !$util.isNull($ctx.identity) && !$util.isNull($ctx.identity.sub) && !$util.isNull($ctx.identity.issuer) && !$util.isNull($ctx.identity.username) && !$util.isNull($ctx.identity.claims) && !$util.isNull($ctx.identity.sourceIp) && !$util.isNull($ctx.identity.defaultAuthStrategy) )
  #set( $authMode = "userPools" )
#end
## [End] Determine request authentication mode **
## [Start] Check authMode and execute owner/group checks **
#if( $authMode == "userPools" )
  ## [Start] Static Group Authorization Checks **
  #set($isStaticGroupAuthorized = $util.defaultIfNull(
            $isStaticGroupAuthorized, false))
  ## Authorization rule: { allow: groups, groups: ["Admin"], groupClaim: "cognito:groups" } **
  #set( $userGroups = $util.defaultIfNull($ctx.identity.claims.get("cognito:groups"), []) )
  #set( $allowedGroups = ["Admin"] )
  #foreach( $userGroup in $userGroups )
    #if( $allowedGroups.contains($userGroup) )
      #set( $isStaticGroupAuthorized = true )
      #break
    #end
  #end
  ## [End] Static Group Authorization Checks **

  ## [Start] If not static group authorized, filter items **
  #if( !$isStaticGroupAuthorized )
    #set( $items = [] )
    #foreach( $item in $ctx.result.items )
      ## No Dynamic Group Authorization Rules **

      ## [Start] Owner Authorization Checks **
      #set( $isLocalOwnerAuthorized = false )
      ## Authorization rule: { allow: owner, ownerField: "projectMembers", identityClaim: "cognito:username" } **
      #set( $allowedOwners0 = $item.projectMembers )
      #set( $identityValue = $util.defaultIfNull($ctx.identity.claims.get("username"), $util.defaultIfNull($ctx.identity.claims.get("cognito:username"), "___xamznone____")) )
      #if( $util.isList($allowedOwners0) )
        #foreach( $allowedOwner in $allowedOwners0 )
          #if( $allowedOwner == $identityValue )
            #set( $isLocalOwnerAuthorized = true )
          #end
        #end
      #end
      #if( $util.isString($allowedOwners0) )
        #if( $allowedOwners0 == $identityValue )
          #set( $isLocalOwnerAuthorized = true )
        #end
      #end
      ## [End] Owner Authorization Checks **

      #if( ($isLocalDynamicGroupAuthorized == true || $isLocalOwnerAuthorized == true) )
        $util.qr($items.add($item))
      #end
    #end
    #set( $ctx.result.items = $items )
  #end
  ## [End] If not static group authorized, filter items **
#end
## [End] Check authMode and execute owner/group checks **

#if( $ctx.error )
$util.error($ctx.error.message, $ctx.error.type)
#else
$util.toJson($ctx.result)
#end

These items do not contain the projectMembers field

Thanks, I can reproduce the issue and I believe this is a security issue.
@SwaySway @attilah I'm not very good at velocity, but it appears the issue is that the line
 #set( $allowedOwners0 = $item.projectMembers )
nullable is maybe not turned on for AppSync, so we cannot unset $allowedOwners, this results in the previous item in the loop being used. @Zanndorin is able to hit this more often because the auth field is being filtered as well, but this can occur for anyone where a null field follows an allowed auth property.

@RossWilliams do I understand correctly, that your suspicion is that if once in the loop we set a value for $allowedOwners0 because $item.projectMembers has value, then later in the loop is not resetting it to null when $item.projectMembers does no exist on item or it has a null value, so the result is not getting filtered and bypasses auth check by using the previous value?

@attilah Exactly correct.
The PR I submitted has a test that fails without the fix in place, but it depends on the order of the returned values from the Scan operation. If the authorised value is returned last, then the test does not fail, but if the authorised value is 1st or 2nd, the values afterwards are returned as well.
If you notice in the code the dynamic group auth does do a null check, so it is only the owner auth with this issue.

@RossWilliams I will have to check with AppSync team on that, I did not find the VTL settings in AppSync docs documented. Wondering if this is tied to AppSync resolver version and it works when the version is 2017-02-28, since if I recall correctly we changed it recently to 2018-05-29.
Thanks for the PR! To make the fix in the test predictable, would you add a sort key to the model and used that to make sure we've null members in the middle? Meanwhile I try to play with the null setting in VTL.

@RossWilliams I can confirm that null behavior is what you suspected, since for this resolver template:
#set ($vv = [0,1,2,3,0,4,0,5,6,0])
#set ($items = [])
#set ($match = 0)

#foreach ($v in $vv)
  #if ($v == $match)
    #set ($tempv = $null)
  #else
    #set ($tempv = $v)
  #end

  $util.qr($items.add($tempv))
#end

$util.error($util.toJson($items))

this is the result:
[null,1,2,3,3,4,4,5,6,6]

3,4,6 should not repeat.

test updated with sort key.

@RossWilliams thanks, awesome!
I checked the other resolvers (create and subscription), where we have the same logic and the generated code looks like this:
set(ref(allowedOwnersVariable), raw(`$util.defaultIfNull($${variableToCheck}.${ownerAttribute}, null)`))

And it causes the same problem, since null assignment will not work end of the day.
Would you add that to the fix as well to have it covered in 1 PR.
https://github.com/aws-amplify/amplify-cli/blob/master/packages/graphql-auth-transformer/src/resources.ts#L413
https://github.com/aws-amplify/amplify-cli/blob/master/packages/graphql-auth-transformer/src/resources.ts#L490

@RossWilliams sorry, my bad...I looked at what we are generating with the additional 2 lines I requested and it seems that are actually fine in a sense that those variables are not reused in a loop and on the other hand the first one at line 413 is augmenting the input, which this way disables the automatic owner assignment. Please undo those 2 null value changes, that seems to be the cause of the mock test failures.

@attilah So this is fixed by regenerating the resolver code after updating?

@Zanndorin that's correct. You don't have to wait for the release, just copy the generated list resolver response templates to turn them into custom resolvers into the resolvers folder and apply the fix and deploy.

I'm on 4.27.1 now but the listProjects autogenerated resolver is still is the same. But it removed a lot of other resolvers that existed before.

@Zanndorin Did you try creating an empty line in the schema.graphql file? It's been a useful trick for me in the past, but I'm not sure if it'll work in your case.

@houmark
I'll tried something similar at first and tried yours now.
Amplify push updates all the resolvers
UPDATE_IN_PROGRESS ListProjectResolver                 AWS::AppSync::Resolver Tue Aug 11 2020
but the code in them seems to stay the same / bug seems to persist.
(Tried running codegen after addig and empty line aswell but no changes)

Okay I deleted all resolvers I had checked in and did some other GraphQL work (added a function resolver) and now it seems to be updated and to work.
I also found how to access them in Appsync now 😊
Can I get the resolvers back locally somehow? Except the short time I amplify mock api?

OK sorry guys I got it to work.
I think all my issues were related to IntelliJ and it not syncing / saving files correctly.


Map resource "kinds" to API endpoints

Define mappings between resource "kinds" and associated API endpoints (i.e. OpenShift /oapi, Kubernetes /api).
Resource "kind" string is used as the key to apiMap for retrieving REST API type (oapi/api) and endpoint path.
Map uses a string array, which can provide for additional path fragments/parms, if needed later.
Note: "Template" maps to both "processedtemplates" (commented-out for now) and "templates" endpoints. So the desired one is not apparent based solely on the "Template" request kind.

Change applied via https://github.com/openshift/jenkins-plugin/commit/e720e3b6022bff59740dc51d7acdf91c53f8dd9d


[RFC] Add index support to tables.

Adds support for defining indexes when defining a table, via a defineIndexes() function that takes in the table's columns. Examples can be seen in table-indexes.test.ts and table-indexes.check.ts. Indexes are implemented largely analogously to how columns are implemented - there is an IndexDefinition builder-pattern type used when the index is being initially defined, and an Index type used when indexes are accessed from an already-defined table. Currently, all that can be done with an Index object is convert it to tokens. The tokens generated are based on the format of index definitions stored in pg_indexes, so that they can be compared to ensure that the index definitions in code match up with the index definitions in the db.
In the future, we could store the referenced columns in an expression in the State object so that we can create a heuristic to programmatically if a query is likely to use an index or not based on whether the columns referenced in the expression for a given table are a subset of the columns referenced in one of the indexes on that table.
Overview of changes by file
table-index.ts
It includes the IndexDefinition interface, as well as makeIndexDefinition(), which is the starting point of any index definition as well as the effective implementation of the IndexDefinition interface via its return value object.
It also includes the Index class, the meat of which is the toTokens() function. This function's output is intended to be compared to the value stored in pg_indexes, which doesn't specify the table when referencing a column, and also doesn't quote column names (this is largely accomplished in changes to the column class). Another snag is that mammoth interpolates all values in queries as parameters ($1, $2 etc.), while the index definitions stored in pg_indexes has the values inline in the query. This PR makes a few changes to the expressions file to make this happen.
table-index-types.ts
This file is an analogue of data-types.ts for column definitions - it has functions that begins the definition of a column that calls makeIndexDefinition(), such as btree() and gist().
TableType.ts
Adds a third type parameter to Table and InternalTable that represents the types of the indexes defined on that table. Also adds getIndexes() to the Table class, which returns the Index instances defined on the class.
column.ts
Moves ColumnDefinitionsToColumns from values.ts to this file. Adds a boolean flag to the Column class called isColumnForIndexExpression. When this flag is set, both tokens and getTokens() for the column return just the column name in snake case rather than ${wrapQuotes(tableName)}:${wrapQuotes(columnName)}. It also passes the flag through to expression.ts to ensure that the expression tokens generated by future builder calls are for inline values rather than parameters.
table.ts
Reworks TableDefinition from being a direct mapping of column names to ColumnDefinitions to having two properties: columns, which contains column mappings that made up the original definition, and defineIndexes, an optional field that allows defining indexes on the table. As a result of this, we needed to rework the TableDefinition interface from being an empty type with a brand to containing a few placeholder properties so that Object.keys can be called on the properties without errors.
Reworks makeTable() to use the new tableDefinition shape, and also define the indexes based on columns created from columnDefinitions with the isColumnForIndexExpression flag set.
Updates the types for defineTable() to work with the new table definition shape.
db.ts
Updates makeTables() to correctly infer the index types for each table.
Also updates the getTableDefinitions() function returned by defineDb() to include index information for each table.
expression.ts
Defines a new class that extends Expression called InlineValue. This class generates tokens for a value to be inline in an expression rather than a parameter. It accomplishes this via a function called valueToInlineValueToken() that does its best to infer what type of value is passed in at runtime and output a token that generates right SQL. This class also accepts a cast type as an optional constructor parameter, for explicitly defining a value with an associated type. This is necessary for enum types, which pg_indexes uses <value>::<enum type> to represent in index definitions.
Adds a function inlineValue() which creates an inline value expression based on a value and an optional cast type.
Adds a flag to the Expression class called shouldInlineParameters which defaults to false. Adds a function makeTokenForValue() that is used to convert a value to be used in an expression into a token, and replaces all usages of ParameterToken in the Expression class with calls to this function.
Changes builder methods that accept DataType in the parameters to also accept InlineValue<DataType>. This is mostly unnecessary for regular values, but enum values require a value and a cast type.
inline-value-token.ts
Defines a handful of Token classes for various value types to be used by valueToInlineValueToken().
All other files
All other file changes are whitespace, moving code around, or a consequence of changing the type signature of Table - nothing significant.

There are a handful of issues with this that are non-trivial to fix. Will close this PR until we have some idea of how to fix them.


Provide or validate capability to output histograms of distributions without outliers for use in creating or adjusting thresholds

Possibly include plate by plate distributions

show_report was removed during the migration of CytoDataFrame and has also been removed from that project. Closing this issue as a result.


[Workshop] Cursor partially covers the number of items in a stack

There is a small slight that I have with your mod. It's that the cursor becomes a bit large and it partially covers the number of items in a stack that I hold with my cursor.

Cannot reproduce.


Drastically reduce proximity feature

The proximity raw value should be close to 1.0 for within 40 miles but drastically tail down once outside of that range. Examples below:
Reston VA -> Fairfax, VA 0.95
Reston VA -> Fredericksburg VA 0.7
Reston VA -> Richmond VA 0.5
Reston VA -> Durham NC 0.3
Reston VA -> St. Louis MO 0.15
Reston VA -> San Jose CA 0

Proximity feature is pulling its max distance from Elasticsearch's settings index (to be altered from admin page on app).  To scale it down we just have to change the feature value on ES


Add luma.core and luma.oled pip dependencies to python.yaml

Please add the following dependency to the rosdep database.
Package name:
luma.core, luma.oled
Package Upstream Source:
luma.core - https://github.com/rm-hull/luma.core
luma.oled - https://github.com/rm-hull/luma.oled
Reason to add:

luma.core - component library providing a Pillow-compatible drawing canvas for Python 3, and other functionality to support drawing primitives and text-rendering capabilities for small displays on the Raspberry Pi and other single board computers
luma.oled - Python 3 library interfacing OLED matrix displays with the SSD1306, SSD1309, SSD1322, SSD1325, SSD1327, SSD1331, SSD1351, SH1106, SH1107 or WS0010 driver using I2C/SPI/Parallel on the Raspberry Pi and other linux-based single-board computers

Both libraries are useful for rendering on displays on robots
Links to Distribution Packages

pip:

https://pypi.org/project/luma.core/
https://pypi.org/project/luma.oled/

A quick search shows me that this packages exist in Ubuntu noble :
https://packages.ubuntu.com/noble/python3-luma.core
https://packages.ubuntu.com/noble/python3-luma.oled
and in consequence at least in Debian bookwrom. We usually try to avoid adding pip packages where binaries are available at the system leve, i.e.: https://github.com/ros/rosdistro/pull/41870#pullrequestreview-2148978970.
If you're looking to add it to a specific OS that don't have the system package please narrow down the scope of the rosdistro entry.

@SPGC friendly ping

A quick search shows me that this packages exist in Ubuntu noble :
https://packages.ubuntu.com/noble/python3-luma.core https://packages.ubuntu.com/noble/python3-luma.oled
and in consequence at least in Debian bookwrom. We usually try to avoid adding pip packages where binaries are available at the system leve, i.e.: #41870 (review).
If you're looking to add it to a specific OS that don't have the system package please narrow down the scope of the rosdistro entry.

Changed to binary package for Ubuntu

This is failing CI, and there has been no response to the outstanding comments from 3 weeks ago.  I'm going to go ahead and close this, but if you'd still like to get it merged please feel free to reopen.


Layout fixes in shipping_address template.

Follow-up from #2056 to fix a few more issues in this template:

Add an outer column class to the main block, because the parent template expects one.
Remove use of UL in the address list, because it causes styling issues.
Fix div closure logic in for loop.

There is also one line of dashboard CSS that was not compiled from the LESS.

Current coverage is 83.29% (diff: 100%)

Merging #2073 into master will not change coverage

@@             master      #2073   diff @@
==========================================
  Files           301        301
  Lines         15016      15016
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
  Hits          12507      12507
  Misses         2509       2509
  Partials          0          0

Powered by Codecov. Last update 3e3dafb...df44ea1

Works perfectly! Thanks for the quick response :-)


ARMClient Deployment to Management Group

Should add example of deployment of policy def to management group scope.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 9cafa274-2aa5-4c61-96ba-8746e87406d4
Version Independent ID: 1131d055-8988-02ec-bf79-4054fef8890a
Content: Programmatically create policies and view compliance data with Azure Policy
Content Source: articles/azure-policy/policy-insights.md
Service: azure-policy
GitHub Login: @bandersmsft
Microsoft Alias: banders

@danmyhre  Thanks for bringing this to our attention. Your feedback has been shared with the content owner for further review.

We are looking into this and will get back to you.  #in-process

@danmyhre Thank you again for your feedback. The details for REST API (which ARMClient calls) is available at Create or Update At Management Groups here: https://docs.microsoft.com/en-us/rest/api/resources/policydefinitions/createorupdateatmanagementgroup.  The full list of operations for Policy Definitions is here; https://docs.microsoft.com/en-us/rest/api/resources/policydefinitions.  I've added an example to the page that will get published next week.  Thanks again for the feedback!  #please-close

@danmyhre We will now proceed to close this thread. If there are further questions regarding this matter, please tag me in your reply. We will gladly continue the discussion and we will reopen the issue.


Tensorflow Distributed Learning Tutorial Code not working on localhost

System information

Have I written custom code (as opposed to using a stock example script provided in TensorFlow): No
OS Platform and Distribution (e.g., Linux Ubuntu 16.04): MacOS Mojave Version 10.14.5 (Darwin-18.6.0-x86_64-i386-64bit)
Mobile device (e.g. iPhone 8, Pixel 2, Samsung Galaxy) if the issue happens on mobile device: N/A
TensorFlow installed from (source or binary): binary
TensorFlow version (use command below): 2.0.0-beta1
Python version: 3.7.3
Bazel version (if compiling from source): N/A
GCC/Compiler version (if compiling from source): N/A
CUDA/cuDNN version: N/A
GPU model and memory: N/A

Describe the current behavior
I have used the exact same code from the Tensorflow 2.0 Distributed Training Tutorial as in https://www.tensorflow.org/beta/tutorials/distribute/multi_worker_with_estimator. The model does not run on localhost and the code returns an error with "Unable to destroy server_ object, so releasing instead. Servers don't support clean shutdown."
The same error was reported here: #27562 but the fix says to use "localhost" which I have already done and the model still won't run. Moreover, removing TF_CONFIG allows the model to run perfectly fine but adding it is what causes the error.
Describe the expected behavior
The model runs as described in the tutorial.
Code to reproduce the issue
Run the code below in a local machine:
from __future__ import absolute_import, division, print_function, unicode_literals

import tensorflow_datasets as tfds
import tensorflow as tf
import os
import json

BUFFER_SIZE = 10000
BATCH_SIZE = 64

def input_fn(mode, input_context=None):
    datasets, info = tfds.load(name='mnist',
                                with_info=True,
                                as_supervised=True)
    mnist_dataset = (datasets['train'] if mode == tf.estimator.ModeKeys.TRAIN else
                     datasets['test'])

    def scale(image, label):
        image = tf.cast(image, tf.float32)
        image /= 255
        return image, label

    if input_context:
        mnist_dataset = mnist_dataset.shard(input_context.num_input_pipelines,
                                            input_context.input_pipeline_id)
    return mnist_dataset.map(scale).shuffle(BUFFER_SIZE).batch(BATCH_SIZE)

NUM_WORKERS = 1
IP_ADDRS = ['localhost']
PORTS = [12345]

os.environ['TF_CONFIG'] = json.dumps({
    'cluster': {
        'worker': ['%s:%d' % (IP_ADDRS[w], PORTS[w]) for w in range(NUM_WORKERS)]
    },
    'task': {'type': 'worker', 'index': 0}
})

LEARNING_RATE = 1e-4

def model_fn(features, labels, mode):
    model = tf.keras.Sequential([
      tf.keras.layers.Conv2D(32, 3, activation='relu', input_shape=(28, 28, 1)),
      tf.keras.layers.MaxPooling2D(),
      tf.keras.layers.Flatten(),
      tf.keras.layers.Dense(64, activation='relu'),
      tf.keras.layers.Dense(10, activation='softmax')
    ])
    logits = model(features, training=False)

    if mode == tf.estimator.ModeKeys.PREDICT:
        predictions = {'logits': logits}
        return tf.estimator.EstimatorSpec(labels=labels, predictions=predictions)

    optimizer = tf.compat.v1.train.GradientDescentOptimizer(
      learning_rate=LEARNING_RATE)
    loss = tf.keras.losses.SparseCategoricalCrossentropy(
      from_logits=True, reduction=tf.keras.losses.Reduction.NONE)(labels, logits)
    loss = tf.reduce_sum(loss) * (1. / BATCH_SIZE)
    if mode == tf.estimator.ModeKeys.EVAL:
        return tf.estimator.EstimatorSpec(mode, loss=loss)

    return tf.estimator.EstimatorSpec(
      mode=mode,
      loss=loss,
      train_op=optimizer.minimize(
          loss, tf.compat.v1.train.get_or_create_global_step()))

strategy = tf.distribute.experimental.MultiWorkerMirroredStrategy()

config = tf.estimator.RunConfig(train_distribute=strategy)

classifier = tf.estimator.Estimator(
    model_fn=model_fn, config=config)
eval_result = tf.estimator.train_and_evaluate(
    classifier,
    train_spec=tf.estimator.TrainSpec(input_fn=input_fn),
    eval_spec=tf.estimator.EvalSpec(input_fn=input_fn)
)

print(eval_result)

Other info / logs
2019-06-19 18:52:26.920506: I tensorflow/core/platform/cpu_feature_guard.cc:142] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA
2019-06-19 18:52:26.922213: I tensorflow/core/distributed_runtime/rpc/grpc_channel.cc:250] Initialize GrpcChannelCache for job worker -> {0 -> localhost:12345}
2019-06-19 18:52:26.922707: I tensorflow/core/distributed_runtime/rpc/grpc_server_lib.cc:365] Started server with target: grpc://localhost:12345
WARNING: Logging before flag parsing goes to stderr.
W0619 18:52:26.923428<PHONE_NUMBER> cross_device_ops.py:1164] Some requested devices in `tf.distribute.Strategy` are not visible to TensorFlow: /job:worker/replica:0/task:0/device:CPU:0
W0619 18:52:26.926181<PHONE_NUMBER> estimator.py:1811] Using temporary folder as model directory: /var/folders/g1/9kky40_94s9_5qckppqs5fs9w56_br/T/tmp6x4api2p
W0619 18:52:26.928005<PHONE_NUMBER> distribute_coordinator.py:829] `eval_strategy` is not passed in. No distribution strategy will be used for evaluation.
W0619 18:52:26.928821<PHONE_NUMBER> cross_device_ops.py:1164] Some requested devices in `tf.distribute.Strategy` are not visible to TensorFlow: /job:worker/replica:0/task:0/device:CPU:0
W0619 18:52:26.929581<PHONE_NUMBER> cross_device_ops.py:1164] Some requested devices in `tf.distribute.Strategy` are not visible to TensorFlow: /job:worker/replica:0/task:0/device:CPU:0
W0619 18:52:27.373800<PHONE_NUMBER>56608 deprecation.py:323] From /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/tensorflow/python/ops/array_ops.py:1340: add_dispatch_support.<locals>.wrapper (from tensorflow.python.ops.array_ops) is deprecated and will be removed in a future version.
Instructions for updating:
Use tf.where in 2.0, which has the same broadcast rule as np.where
W0619 18:52:27.378234<PHONE_NUMBER> monitored_session.py:347] Collective ops may deadlock with `save_checkpoints_secs` please use `save_checkpoint_steps` instead. Clearing `save_checkpoint_secs` and setting `save_checkpoint_steps` to 1000 now.
None
2019-06-19 18:52:37.840780: W tensorflow/core/common_runtime/eager/context.cc:232] Unable to destroy server_ object, so releasing instead. Servers don't support clean shutdown.

Do you resolve this problem?
I also meet the same question. I found that the problem appeared in the official demon of estimator and keras when using one worker two workers.
I also change the localhost according to the discussion #27562, however, it doesn't work.
I don't understand that is "Moreover, removing TF_CONFIG allows the model to run perfectly fine ".

Hi @runner-yang ,
No, I haven't resolved it yet.
When using Python 3.6, Tensorflow 1.13.0, I get an unimplemented error because the server destroy or shutdown function hasn't been implemented yet. But Python 3.7 and Tensorflow 2.0, gives the error that I have stated above.
And about the TF_CONFIG variable, what I meant was that the code/model compiles and runs without the TF_CONFIG but adding it is what causes the error. So the root cause should be something related to the functions that parse and execute from the TF_CONFIG environment variable. It would be a good place to start looking...

@AshwinAmbal : I have tried to reproduce the issue on Colab with TF version 2.0beta1 and was unable to get the mentioned error. Can you please help us to replicate the issue. For reference Colab Link. Thanks!

Hi @achandraa ,
I am unable to access the Colab link that you have given.
Anyway, this error occurs in localhost when configuring TF_CONFIG. In Colab, I think the Collective Ops is pre-configured. So we don't set the TF_CONFIG environment variable right? Moreover, the tutorial mentioned not to set the variable in Colab. This error occurs when we run the same piece of code in our local machine after setting the TF_CONFIG Environment variable. You can reproduce the error by running the sample code given above in this thread and running it in your local machine.

Mixing single worker TF_CONFIG and a MultiWorkerMirrored Strategy used with Estimator seem like a very odd combination.
That said, if the tutorial says that, it needs to be fixed, and the error should really be better.

Note that the "unable to destroy server object" message is a red herring.  The training does complete, however it does not run evaluate because no evaluator task was started in this cluster.  The return value of train_and_evaluate is None in this case, which is printed before the last line in the logs.
In order to run evaluation, please start a separate evaluator task.  #27857 has more details.
I've updated the tutorial to provide an example of a TF_CONFIG with 2 workers; the single worker example wasn't great.


Fixed code format

Coverage remained the same at 97.866% when pulling fe3e5b8097be5cda3e0299a4ebcf5913dae4839b on nibble2:master into be15f1c742b35134ce5bd35521d8bf1ab1ba67cf on thelinmichael:master.


Glimpse.ADO + Telerik.Reporting Issues

Currently I have Glimpse + Glimpse.ADO  installed in an ASP.NET 3.5 application. It works great for all of the pages except for those that have Telerik Reports.
Whenever I run one of the reports, it displays an error like: "An error has occurred while processing Report 'ReportNameHere': Procedure or function 'storedProcedureName' expects parameter '@ParameterName', which was not supplied." There is no stack trace or other mechanism for debugging this that I can tell because it's internal to the Telerik components.
The Telerik reports use a Telerik.Reporting.SqlDataSource to retrieve the data for the report. I believe that there is some conflict with the Glimpse DbAdapter/DbCommand objects, which is why the parameters aren't set properly.
Since the Glimpse.ADO code replaces the DbProviderFactory entries with its wrapped versions during initialization of the component, excluding these pages with a custom policy or a blacklist url does not help as a workaround. I either have to turn off Glimpse for the whole app, or remove the Glimpse.ADO dll completely.
Any thoughts on how I could workaround this so that I get the benefits of the Sql tab on other pages, even if I can't use it on these report pages?

Hi everybody,
I would like to know if this issue has now a solution? Like others, I'm using Telerik.Reporting and started using Glimpse because it's just great but i'm with this problem too. At the moment I uninstalled the EF6 and ADO modules but it would be great if i there's a solution for this.
Thank you!


Excel export can't filter on dates

Issue Type: Bug
When I save as Excel, the date filter in Excel can't parse the dates correctly so that it can collapse all the dates in a year and let you expand specific years to get to the months.
If I copy the data to my clipboard, and paste it into Excel the date filtering works just fine.
Azure Data Studio version: azuredatastudio 1.40.1 (3a32679ab590c1023ab4de6f191769e7e127d25b, 2022-11-22T19:35:40.769Z)
OS version: Darwin x64 22.1.0
Restricted Mode: No
Preview Features: Enabled

System Info

Item
Value

CPUs
Intel(R) Core(TM) i7-8850H CPU @ 2.60GHz (12 x 2600)

GPU Status
2d_canvas: enabledcanvas_oop_rasterization: disabled_offdirect_rendering_display_compositor: disabled_off_okgpu_compositing: enabledmetal: disabled_offmultiple_raster_threads: enabled_onoop_rasterization: enabledopengl: enabled_onrasterization: enabledraw_draw: disabled_off_okskia_renderer: enabled_onvideo_decode: enabledvideo_encode: enabledwebgl: enabledwebgl2: enabled

Load (avg)
4, 5, 6

Memory (System)
32.00GB (0.62GB free)

Process Argv

Screen Reader
no

VM
0%

Extensions (1)

Extension
Author (truncated)
Version

profiler
Mic
0.11.0

@caohai please take a look.

Yes, that it is what I'm referring to.  That behavior works if I copy the results to the clipboard and paste it into Excel. If I export it to Excel it doesn't work.

@caohai Yes, that it is what I'm referring to. That behavior works if I copy the results to the clipboard and paste it into Excel. If I save as Excel it doesn't work.

I see. This feature was working for me when I tested it. I'm guessing it's some issue with the data in date column. Can you share the following if possible?

A copy of the Excel file (w/o any sensitive info) that data filter doesn't work.
The data type of the date column. (It would be great if you can provide a small script that can create a similar table and insert a few rows of data that have have this issue reproduced)

Needs more info to proceed, feel free to reopen once we have that.


Adapters (check, quota, APAs) should communicate back to mixer on what input fields they used.

For APAs and for other adapters too, we need a mechanism to figure out what input fields did the adapter used within a scope of a given request. This information along with operator configuration will help Mixer identify the smallest set of attributes used to serve a request, which indirectly will help reduce the attribute based cache key size and might result into higher cache hit rate.
For APAs, when we call the APA we need to tell it which of its outputs are actually going to be consumed and hence need to be populated. This will allow the adapter to avoid generating stuff that no one looks at, and will help the adapter reduce the set of input attributes it touches.

@geeknoid do we already have an issue for this, I couldn't find it and therefore created it and referenced it from my APA to template model migration work (#1477)

I don't think we'll get much leverage for this idea for check & quota adapters. I'm much more interested in APAs at the moment.


bug: fixed issue to be able to remove the tmp folder when it has content

Hey @jprichardson can you check my pull request?

hey @jprichardson any luck checking my pull request?

fs.remove should do this - it's from fs-extra.
I have no intention of maintaining this package anymore.

got it, maybe just update the fs-extra package should fix it, still use it on one of my packages.

Added a new commit, let me know if is possible for you to add a new version to NPM, thanks.


repoint perl lib to correct repo

has been moved from leejo to G3S org, so fix this link

:+1: Thanks @leejo!


load_mon move from NuttX LPWORK to PX4 work queue lp_default

Weird include ordering problem here.

Header ordering restored (systemlib/cpuload.h) and rebased on master.


Build failed react-native 0.73 mmkv-storage android contains no files

When I run npx react-native run-android It throws the next error:
A problem occurred evaluating project ':[react-native-mmkv-storage]'.
Expected directory '...\node_modules\react-native-mmkv-storage\android' to contain exactly one file, however, it contains no files.

The error is on line 138 of the build.gradle file:
  def rnAAR = fileTree("$reactNative").matching({ it.include rnAarMatcher }).singleFile
I have upgraded all modules with yarn upgrade and I'm using the latest react-native version. I have tried to create a fresh new project, add all my sources, and then run yarn install to install all required modules, but with the same result.
Platform Information:

React Native Version [e.g. 0.73]
Library Version [latest]

same issue for me

This has been fixed.


Multi platforms selections for Arcade

Actually I prefer to have a unified list of Arcade titles and I prefer to use MAME latest revision core as it has games I love that fbneo core hasn’t… however for a few games (Naomi, latest 2D games, or others) it is preferred to use fbneo core or a Dreamcast core.
but we can’t select on a per game basis any other cores than “mame” suite, even if the others cores are installed.
Woukd it be possible, in game information where we can select a specific core for that game, to have a “show all” box to show and select other cores than the various mame ones..?
thanks in advance, great front ! Love it !

"The player should now be selectable in the Edit Item > Custom Player for the platform"
It is actually but the cores listed are only the Mame ones (mame, mame 2000 etc with retroarch 32, 64, etc...) but other cores such as Naomi ones or fbneo ones are not listed there... Am I missing something ?

Thanks a lot perfectly works


[BUG]Metrics issue

Describe the bug
Metrics issue
Hi. I am using JMeter file for testing. And it works locally and in Blazemeter. But in AzureLoadTest I don't see any metrics
I've tried to add/remove app components. But app components used only for server-side metrics. And I cant see any metrics
Desktop (please complete the following information):

OS: MacOS and Windows 11
Browser chrome and brave

Additional context

AB#1715419

@Viktor5528 Thanks for reaching out. We are looking into this and will get back. Is this issue only for new runs or for existing runs as well?

@ninallam For all runs.
364e0d1f-1105-4273-a459-7755770750a7
364e0d1f-1105-4273-a459-775577075048
edbd91b3-b949-4b27-ae47-0b737a47902c

@Viktor5528 We have deployed a fix for this. Can you please check if it is working now?