New Headshot Pierre Roman

uploaded new headshot

Docs Build status updates of commit 22aa1fb:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

advocates/media/profiles/pierre-roman.jpg
: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

Hey Pierre! Looks like the Validation is failing because the new Image isn't valid:

Unhandled exception. System.Exception: Invalid Image (Height and Width must be equal): ../advocates/pierre-roman.yml

https://github.com/MicrosoftDocs/cloud-developer-advocates/pull/534/checks?check_run_id=2463070795#step:5:89

Docs Build status updates of commit 1f62fd4:
:warning: Validation status: warnings

File
Status
Preview URL
Details

advocates/map.yml
:warning:Warning
View
Details

advocates/index.html.yml
:warning:Warning
View
Details

advocates/media/profiles/pierre-roman.jpg
:white_check_mark:Succeeded

advocates/media/profiles/pierre-roman.png
:white_check_mark:Succeeded
View

advocates/pierre-roman.yml
:white_check_mark:Succeeded
View

advocates/map.yml

Line 730, Column 10: [Warning-file-not-found] Invalid file link: 'media/profiles/pierre-roman.jpg'.

advocates/index.html.yml

Line 10, Column 8: [Warning-file-not-found] Invalid file link: './map'.
Line 12, Column 8: [Warning-file-not-found] Invalid file link: './tweets'.
Line 734, Column 10: [Warning-file-not-found] Invalid file link: 'media/profiles/pierre-roman.jpg'.

For more details, please refer to the build report.
If you see build warnings/errors with permission issues, it might be due to single sign-on (SSO) enabled on Microsoft's GitHub organizations. Please follow instructions here to re-authorize your GitHub account to Docs Build.
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.
Note: Your PR may contain errors or warnings unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel


Fix: A modal window takes place when it is in a hidden state #1622

This file changes is to fixed white space taken by model (clr-modal) when it is hidden.
So when model is hidden, I have applied display property none and when model is open i have added display property inline.

@govi2010: Could you please squash your commits? I see 4 commits now but to merge this change in we need 1 commit only.

@govi2010: Wanted to check if you could squash to commits so that we can merge this into master? Please let us know.

@adityarb88  bit new to github. So i have messed up with some commits.  What changes you need from me ? I can do that right a way.

@govi2010: No worries. You can refer to this: https://github.com/todotxt/todo.txt-android/wiki/Squash-All-Commits-Related-to-a-Single-Issue-into-a-Single-Commit for more information. Let me know if that helps.

@govi2010 You could also submit a new PR if you are facing issues with this one. Its a small PR so I can review it again.

@adityarb88 I am finding bit difficulty. But I think I need to learn one day , and it better to start from today.  I am running command blindly don't know what it is affect.

@govi2010: You can also refer to this video: https://www.youtube.com/watch?v=2E23I9PzplM. Let me know if that helps.


Smart pointers

Fixes #61
Description of the changes:
-moved the Rational class over to smart pointers(spawned in ToSmartRat())
How changes were validated:

-passed manual tests
-lots of watching memory allocate and de-allocate

 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: vlogozzo sign nowYou have signed the CLA already but the status is still pending? Let us recheck it.

Hi Vincent.  First, I want to say thank you for your work on this issue.
After looking at the change, I think that it doesn't really address the issue that is referenced and so further changes are needed.  The core task in this issue is to eliminate the engine's reliance on new, zmalloc, and delete.  There are a number of ways to accomplish this, for example, using smart pointers.  This change does eliminate a few places where destroyrat is called, but there are still plenty of other cases throughout the engine.  I would expect a comprehensive fix for this issue to, in some way, remove all cases of destroyrat and _destroyrat.
Similarly, createrat and _createrat still exist.  Smart pointers are fundamentally about expressing ownership of the memory.  Today's implementation of _createrat allocates memory and returns a pointer, that is left to anyone else to delete later.  One way I could see us avoid createrat is:
struct RAT
{
    std::unique_ptr<NUMBER> pp;
    std::unique_ptr<NUMBER> pq;
};

Now it's clear that a RAT owns the memory for its member data and there is no need for a custom delete functionality.  Then we can delete createrat entirely, because places that want a PRAT can instead use auto prat = make_unique<RAT>().  Something like Rational::ToPRAT could then be updated like:
unique_ptr<RAT> Rational::ToPRAT() const
{
    auto ret = make_unique<RAT>();

    ret->pp = this->P().ToPNUMBER();
    ret->pq = this->Q().ToPNUMBER();

    return ret;
}

This is the right change to make, because we are now using smart pointer types to clearly indicate to the caller that they must own this memory and figure out how to control its lifetime.  This decision is enforced by the use of unique_ptr.  Using make_unique means we can delete createrat; its functionality is provided by make_unique in addition to the ownership semantics that we gain.
Deleting createrat, deleting destroyrat, updating ToPRAT to return a unique_ptr, these changes will cause a ripple of compilation errors throughout the project.  That's a good thing, because they point out places where we now need to make decisions about the lifetime of these objects, whereas previously, there was no enforcement and it was easy for a programmer to accidentally not delete some memory.  By now I hope you can see that there is much more to this issue than is addressed by this change.
I do think we, the repository owners, did drop the ball in that we weren't clear on the direction we wanted to take the engine.  PRAT, createrat, destroyrat, et al. are remnants from the original calc engine which was C code.  There were no classes and destructors, so functions were written to create and destroy memory.  The desire we have is to eliminate PRAT and PNUMBER entirely, replacing them with Rational and Number.  You can see that, from what we have so far, we try to use Rational and Number as much as possible but the true functionality of the engine is still implemented with these old types.  Our hope for the engine is that the functionality can be moved entirely into the Rational and Number classes and that we can delete PRAT and PNUMBER from the codebase entirely.  A side-effect of that deletion would be that this issue of memory management is solved, as the classes will naturally have their memory managed by stack allocation and destruction.
Regarding this PR, given that it doesn't fix the issue and the desired change involves much more work, I'm going to politely close the PR for now.  I encourage you to ask questions on the issue and we can work together to make the right change for the codebase.  I think I'll need to do a followup on the issue to more clearly capture our roadmap for evolving the engine.  The referenced issue regarding smart pointers is too vague and doesn't capture the true intent.


Use modern ES features where applicable

Use classes where applicable
Use arrow functions for callbacks
Use object initializer shorthands
Swap lodash functions with native implementations where possible
Alphabetically order imported modules

I avoided making everything use Promises since I'd rather jump straight to async/await style when we eventually decide to do that.
This shouldn't change any existing behavior at all, it should all be purely syntax updates.

@leontastic I've addressed everything I wanted to so far, I just wanted some extra input on what to do about the arrow functions.


Add ability to Delete records using a predicate.

Added a Delete function which allows records to be deleted using a predicate.
See StackOverflow question for details:
http://stackoverflow.com/questions/21123170/is-there-a-way-to-delete-in-sqlite-net-by-using-a-predicate/22055268#22055268
Can delete using:
conn.Table<MyEntity>().Delete(t => t.someProperty == someValue);

Sorry for the delay in merging this!


The performance of default voc8.res50v3+.CPS

Hello, I'm training with double 3080 cards. The batchsize can only be set to 4. The learning rate is 0.0025. The ratio of 1 / 8. I've run it three times and the IOU is only 0.66. What's the reason?Does batchsize have a great impact?

Have you solved your problem?What changes do you make?


Passing element reference from js to C# and back

I am trying to pass an element reference to C# from JS in my blazor library,
I am trying with the following code:

Hello, world!

<button type="button" onclick="@PassElement">Pass element</button>
@functions{
    ElementRef element;
    void PassElement()
    {
        RegisteredFunction.Invoke<object>("PassElementToJs", element);
    }
}

//C# interop

public static class JsInterop
{
  public static void PassElementToCSharp(ElementRef element)
  {
      Console.WriteLine("C#: PassElementToCSharp => element: " + element);
      RegisteredFunction.Invoke<object>("SecondPassElementToJs", element);
  }
}

What I am doing wrong ?

What error are you seeing?
Sent with GitHawk

Your JS code rec

Your JS code receives an HTMLElement, which is not the same thing as an ElementRef. We don’t presently have any support for passing an HTMLElement to .NET - that relates to a broader matter of passing arbitrary JS object references to .NET which is not yet implemented.
For now I’d recommend you add an ID to your element and pass that instead.

Ok I will do that. Thanks for the answer @SteveSandersonMS


Bug about ufo support

nvim --version: nightly
Operating system/version: arch linux

Describe the bug
Look at the video, the count increase;
https://user-images.githubusercontent.com/62557596/210085076-a3eff465-dd56-4cb2-965e-ecac0bc4c62b.mp4
To Reproduce using nvim -u mini.lua
Copied from the readme
-- packer
use {'kevinhwang91/nvim-ufo', requires = 'kevinhwang91/promise-async'}

-- if Neovim is 0.8.0 before, remap yourself.
local function nN(char)
    local ok, winid = hlslens.nNPeekWithUFO(char)
    if ok and winid then
        -- Safe to override buffer scope keymaps remapped by ufo,
        -- ufo will restore previous buffer keymaps before closing preview window
        -- Type <CR> will switch to preview window and fire `tarce` action
        vim.keymap.set('n', '<CR>', function()
            local keyCodes = api.nvim_replace_termcodes('<Tab><CR>', true, false, true)
            api.nvim_feedkeys(keyCodes, 'im', false)
        end, {buffer = true})
    end
end

vim.keymap.set({'n', 'x'}, 'n', function() nN('n') end)
vim.keymap.set({'n', 'x'}, 'N', function() nN('N') end)

Steps to reproduce the behavior:

enter nvim and search a keyword only in one ufo fold
pressing n

Expected behavior
Show the current count, 2 in the video

The bottom index/count is not related to hlslens and ufo, check out your plugins.


Fixes to localizations and more

validations.js - isValidInvoice error messages
start.js - bot.on error messages
Enable socks proxy, such as Tor (add SOCKS_PROXY_HOST='socks5h://localhost:9050' in .env)

A few fixes

Hi, thank you for your contribution but I am afraid that this PR is over a very old commit, you need to update to the last commit in master before try to push any code change

Hi. I was current yesterday night (in Europe), when doing PR. This is the second time I'm in this situation. Yesterday I had to wipe my fork, clone it again, introduce all my changes from a backup. This morning I'm behind again. Not sure how to accept your commits and not lose mine. What is the proper way to collaborate??
------- Original Message -------
On Thursday, March 31st, 2022 at 1:29 AM, Francisco Calderón @.***> wrote:

Hi, thank you for your contribution but I am afraid that this PR is over a very old commit, you need to update to the last commit in master before try to push any code change
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you authored the thread.Message ID: @.***>

They lost me here!
[image.png]
------- Original Message -------
On Thursday, March 31st, 2022 at 10:18 AM, impalor @.***> wrote:

Hi. I was current yesterday night (in Europe), when doing PR. This is the second time I'm in this situation. Yesterday I had to wipe my fork, clone it again, introduce all my changes from a backup. This morning I'm behind again. Not sure how to accept your commits and not lose mine. What is the proper way to collaborate??
------- Original Message -------
On Thursday, March 31st, 2022 at 1:29 AM, Francisco Calderón @.***> wrote:

Hi, thank you for your contribution but I am afraid that this PR is over a very old commit, you need to update to the last commit in master before try to push any code change
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you authored the thread.Message ID: @.***>

Hello. I had to delete my fork and start over again.
Can we agree on date/time when 1) you commit all your code. 2) you wait a few hours on my PR. 3) You go through it before adding any more commits from your side?
There are many error messages coming back through the bot in Spanish or English, instead of Russian. I want to fix that first!
------- Original Message -------
On Thursday, March 31st, 2022 at 1:29 AM, Francisco Calderón @.***> wrote:

Hi, thank you for your contribution but I am afraid that this PR is over a very old commit, you need to update to the last commit in master before try to push any code change
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you authored the thread.Message ID: @.***>

Hi, git is being used all around the world , it doesnt matters timezone, you just need to learn how to use it, I recommend to read git book before continue
https://git-scm.com/book/es/v2

Hello. I had to delete my fork and start over again. Can we agree on date/time when 1) you commit all your code. 2) you wait a few hours on my PR. 3) You go through it before adding any more commits from your side? There are many error messages coming back through the bot in Spanish or English, instead of Russian. I want to fix that first!


Modbus-Response-Filter doesn't work

I'm submitting a ...  (check one with "x")
Problem

(x) bug report => please search github for a similar issue or PR and test Modbus problems with the modbus-serial package before submitting
( ) unexpected behavior => please visit the Wiki before

Current behavior
Node "Modbus-response-filter" issues an error "Error: 0 does not match 8". After "fixing" this error by entering "0" instead of 8 under "Modbus-Response-Filter-->Properties-->Registers" the error disappears but the filter doesn't work. This is because Message.payload always is a zero length array instead of an array with actual values in it.
It seems like the filter node was not updated after a major code revision, so it's broken now.
Expected behavior
A working filter based on the names in the JSON file.
Minimal reproduction of the problem with instructions

Install Modbus Nodes into Node-red
Create a valid JSON file from your Codesys device CSV (checkout the Wiki for howto and errors in the node example that does this)
Use the Simple-modbus-IO-demo flow to test.
Change the filter to find an existing name
Check out the errors

Your Environment
Using build-in node-red-contrib-modbus server
Using latest build of node-red-contrib-modbus

Device :

( ) macOS: v
( ) Linux: v
(x) Windows: v
( ) Raspbian: v
( ) Other:

Name:
Version:

node-red-contrib-modbus version: latest

Node: latest

Hi, could you send the debug result before the Response-Filter? The error means, that your array should have 8 entries, but it has input via msg with 0 entries.

Hi biancode,
Sorry for not responding. Your message seems to have slipped by. Meanwhile I stopped using the node and coded my own workaround. I cannot remember all the details of my post, so I can't help you. I'm sorry...

Hi Biancode,
Closed because it was stale or did you manage to solve the problem?
Best regards,
Bert Kortenbach

from the stale state and we were waiting for the debug result before the Response-Filter, please ;)

(From my previous post)"Message.payload always is a zero length array instead of an array with actual values in it"
Maybe you can try it for yourself to see what is going on?

Modbus IO-File has to be improved and more documented for the next version v6.x - Release is planned to be on the roadmap for Node-RED 4.0 Q2-2023

Hi Biancode,
That's great! Thanks for picking this up!


Time utils

Resolve #9
client.CreateEvent() should get time in POSIX in ms.
Add logging utility.
Waiting for answer

Ok, it works. Comencing merge :D


Get nightly builds to pass

Fix one broken test - CanGetArtifactsOrdered
Add diagnostic logging for live test runs
Update unit tests to use EnvironmentCredential instead of DefaultAzureCredential

Per @schaabs, if you initialize DefaultAzureCredential with no options, it will use a cached credential chain.  This chain is created the first time a DAC is referenced.  See this section of DefaultAzureCredential for details.

/azp run net - containerregistry - ci

/azp run net - containerregistry - ci

/azp run net - containerregistry - ci

/check-enforcer reset

/check-enforcer evaluate

/check-enforcer reset

/azp run net - containerregistry - ci

/check-enforcer override


Allow editor commands to be registered in extension code without adding to package.json

I've got an idea to allow extra extensibility of VS Code using PowerShell via my extension.  Here's a proposal that I wrote up with some initial ideas:
https://github.com/PowerShell/PowerShellEditorServices/issues/81
The core requirement for my extensibility model is to be able to add new commands to VS Code after my extension has already loaded, without also having to add them to my package.json.  This will allow my users to write new actions, analyzers, and code formatters which they could invoke using VS Code's great keybinding system.
Currently the API lets you register the ID of the command and the function to be called.  If we could also get parameters for the display name and category of the command it should be enough to accomplish full dynamic command registration.  As a bonus it would nice to have a parameter for registering a default key binding for the command, but it's OK if that comes later.
I realize that there's probably a reason why you'd prefer to have commands be registered in package.json rather than completely in code.  My guess is that it allows the commands to be displayed before the extension is fully loaded.  The dynamic commands I'd like to have wouldn't need to be displayed until the extension is fully loaded anyway, so this doesn't matter as much to me.
Thanks for considering this!

@jrieken fyi

Was this meant to be closed?  I couldn't find a similar issue in the backlog :)

sorry, wrong button

I've been talking to a few people about this recently and there seems to be a real interest from users of the PowerShell extension to be able to write new VS Code commands using PowerShell.  I'd like to gauge your interest in providing the capability of dynamic command registration so that I can enable this scenario.
I know that on the list of valuable things you could do post-Build, this is probably not very high.  However, I think it could open the door to even more ways to extend VS Code using any language without any significant changes to the current extensibility model.
Here's a description of how it would work:

The user installs the PowerShell extension for Visual Studio Code.  One day, they hear about a new PowerShell module that provides a custom formatting command for PowerShell scripts.  They install this module using the PowerShell Gallery.
The next time they start Visual Studio Code, the language service scans their locally installed PowerShell modules for any that contain editor command extensions.  The new script formatting extension is found and loaded.  This causes a special message to be sent from the language service to the PowerShell extension in VS Code to indicate that an editor command extension was loaded.
The PowerShell extension then uses the VS Code APIs to dynamically register this new command with its ID, display name, and default key binding.  If the key binding is already in use, the default key binding is ignored.  The user can now see and execute the "PowerShell: My custom formatter" command in VS Code's command palette.  They can also bind this command to a key combination of their choosing in keybindings.json.
When the custom command is executed, the PowerShell extension will use VS Code's APIs to gather context about the user's currently open file and the current selection or cursor position.  This information is then sent with a request to the PowerShell language service to execute a custom command with the selected ID.  The custom command runs its logic in PowerShell and then returns a result which contains edits to be applied to the file.
When the response is returned from the language service, the PowerShell extension will translate the desired edits to the VS Code APIs so that they're applied to the user's file buffer.

Aside from cpde formatting extensions, I'd also be providing general action commands (execute some task) or analysis commands (run some special linter or script checker).  The standard VS Code APIs will be used for all extension capabilities.
There are two major benefits to this approach for PowerShell users:

They can write new editor commands in a language they're already comfortable with.

These same editor commands can be made available in the PowerShell ISE and any other editor where our language service (PowerShell Editor Services) is used.

Would you be willing to accept a pull request from me to enable this after the appropriate design discussion has taken place?
Thanks!

A workaround is to have a command that opens quick pick with a list of (dynamic) command. Omnisharp vscode does this for project specific commands and package restore: https://github.com/OmniSharp/omnisharp-vscode/blob/master/src/features/commands.ts#L109

Yep, this is what I was going to do for now.  The main 2 downsides with this approach are the reduced  discoverability and inability to bind a hotkey to those commands.  I'd prefer it if the extension commands could show up as top-level commands under the "PowerShell" category.

I also had the idea of creating an extensions which allows you to setup commands (and bind them to hotkeys) in a more generic way. This way all the "open-in" / "open-with" / filter selected lines with shell command, ... extensions could be substituted with this generic one.
But since it is not possible to add / remove commands dynamically I did not bother implementing a prototype. I asked (#11045) whether they'd implement such functionality into vscode itself, but they declined.

I wrote an extension that could help with this. It allows you to create custom macros and bind them to hotkeys.
https://marketplace.visualstudio.com/items?itemName=geddski.macros

@daviwil this issue is over a year old, has there been any movement on it?

@bcardarella Not yet, but I'd love to see it get added

This functionality would be pretty useful to me. I'm making an extension for adding commands like "Open in Chrome/Firefox" to the palette, but configurable, so that if you need to use Yandex or something you can add a command for it, but turns out there's no API for doing this.
Resolving to a QuickPick is a sub-optimal solution.

Has there been an update on this @jrieken?

This feature would be really useful here as well.
@jrieken @egamma is there blockers that prevent this from hapenning?
Are you willing to accept a PR to add this functionality to vscode?

Any thoughts on this? there has been multiple asks from multiple people. Please let us know if it is something that you're willing to take into the platform, or you decided to not support it.

@jrieken @egamma can you please advise?

@jrieken @egamma can you please advise?
This would be useful in case of workspace commands as well, not just editor commands.
Would this be an API change you're willing to accept?

@jrieken @egamma can you please advise? :)

Yes found that out yesterday it is working now on all editions of windows

@snewfie is this comment intended here? Which API did you try?

@OmarTawfik I believe they meant to respond in https://github.com/SeeminglyScience/EditorServicesCommandSuite/issues/41.

Friendly ping, this would also be useful for source control to allow users to define their own aliases (e.g. hg amend && hg push)

@jrieken, 2.7 years later, is this request still "out of scope"?
Would limiting the possibilities to mitigate abuse make it more palatable?

Limit the number that an extension can add (ideally user overridable).
Dynamic user facing commands could be required to contain a static prefix or suffix, or match a static regex.
When (if?) extension permissions exist (see https://github.com/microsoft/vscode/issues/52116), that would be another avenue, letting the user know the extension wants the ability to create dynamic user facing commands.
Not sure if there is any precedent for this, but it could also require explicit permission from the user for each command or batch of commands added by an extension, e.g. via a confirmation dialog.

This is a major issue blocks vscode to be a hackable editor(like emacs or vim). The editor's user (not plugin/addon author) cannot add a command to the command palette.

Thanks for making VScode! Having great traction with it for DSL design and implementation.
For extension generators such as Rascal (produces a VScode extension from a "language description") this feature would be very useful. Currently we register one LSP server that multiplexes on file extension to redirect every LSP call to the right language. Every programmable feature that is locked in package.json is therefore out of our reach. The great benefit is that we can roll experiments with new LSP servers without a second level or rebooting. That's worth a lot to our users (typically DSL engineers).
We currently have to give every new DSL-specific command a place as a "lense" instead. It would be better for our users if they can also access DSL-specific commands that are not exposed as lenses but simply in the command palette.
By the way, we have similar issues with other package.json-locked features like language-specific bracket-balancing and comment prefixes/postfixes. A programmable alternative would be great.


Fix zsh config location to respect ZSH environment variables

ZSH has an environment variable that can change the location of the .zshrcfile. Updated the config_file definition to respect this variable.

thanks I didn't know there is an environment variable for .zshrc.


Allow nullable model relation

This PR fixes errors like Call to function is_null() with DummyModelWithDocBlock will always evaluate to false. when the property is explicitly marked as nullable by the phpdoc comment.

Thank you.

when the property is explicitly marked as nullable by the phpdoc comment.

Could add a test exactly like that?

Oh! You've just did.
/**
 * @property \Tests\Features\Properties\DummyModel|null $belongsToRelation
 */

@canvural Can you check this one?

Yes Laravel always returns null when the relation is empty, so I can see why always returning the Union type is a good idea and might be the solution.
But I think that having errors like Call to function is_null() with DummyModelWithDocBlock will always evaluate to false. for relationships that cannot be null is really useful. Because you explicitly must add nullable to the field in the migration.

If you have annotation for the relation in your class, ModelRelationsExtension extension will not even run. So you can customize it however you want.
So I think we can just return UnionType everytime with NullType added. And this should only apply to single relations. For example belongsTo, hasOne etc.  If hasMany relation is empty, an empty collection is returned. So that's fine now.

I have annotations for the properties in my class, which are automatically generated by the ide-helper. I really don't want to add annotations for the methods because the methods themselves don't return null but a relation object.
I also want larastan to report errors for properties that can't be null, so I am closing this PR and will continue to use my own fork.

Why would you need to add annotation for the relation method? If you already have annotation for the relation property as Model|null the extension would not even run and use the Model|null type.

Disabling these lines result in the following error: tests/Features/Properties/ModelRelationsExtension.php:79:Ternary operator condition is always true. So the extension is definitely running and not using the Model|null phpdoc.

I now see your point. The extension shouldn't have run. I have changed the code to not run the extension when the property is defined in the phpdoc, however shouldn't this be the task of phpstan?

PHPStan has a specific order of how it runs the extensions. AnnotationsPropertiesClassReflectionExtension extension runs after any 3rd party extensions. So our ModelRelationsExtension was running before it, so overriding it with the annotations was not possible. I fixed this in #369 So I'm closing this PR in favor of that.
But thank you for your time and effort to bring up this issue!


Wrong Route defaults method behaviour

Laravel Version: 5.4.27
PHP Version: 7.0.4
Database Driver & Version: MySQL 5.6 (Not Relevant)

Description:
AFAIK route params are passed to action from left to right order.
But method defaults on Route instance works wrongly when URL have no optional params values and when you pass params to defaults in other order.
Steps To Reproduce:
Route::get("test/{foo?}/{bar?}", function ($foo, $bar) {
    echo "foo is {$foo}
";
    echo "bar is {$bar}";
})->defaults("bar", "bar")
    ->defaults("foo", "foo");

URL test outputs:
foo is bar
bar is foo

while it should be:
foo is foo
bar is bar

if we have URL test/foo it works normal.

I've got the correct values in a fresh 5.4 installation:
foo is foo
bar is bar

Route::get("test/{foo?}/{bar?}", function ($foo, $bar) {
    echo "foo is {$foo}
";
    echo "bar is {$bar}";
})->defaults("bar", "bar")
    ->defaults("foo", "foo");

It's strange.
I installed fresh Laravel 5.4.28 and still have this.
Maybe it's relevant: I'm on Windows 10, Apache.
Do you hit test/ URL?
Will try test on Linux.

Same on Linux

Ah, looks like the order of declaring defaults matter, you need to declare in the same order of the parameters in the method signature.
Route::get("test/{foo?}/{bar?}", function ($foo, $bar) {
    echo "foo is {$foo}
";
    echo "bar is {$bar}";
})->defaults("foo", "foo")->defaults("bar", "bar");

Of course order is important. This is all about this bug. Do I need specify correct order or maybe Laravel should check it for me? I think second more appropriate.

Yes you need to specify the correct order while declaring defaults.

Ok I see you don't consider this as a bug.


Port gradle plugin to Java

http://www.thinkcode.se/blog/2015/03/22/a-gradle-plugin-written-in-java

Lack of time


[Feature] Need ability to pick Day Name of Week

Ionic version:  (check one with "x")
[ ] 1.x
[x] 2.x
I'm submitting a ...  (check one with "x")
[ ] bug report
[x] feature request
[ ] support request => Please do not submit support requests here, use one of these channels: https://forum.ionicframework.com/ or http://ionicworldwide.herokuapp.com/
Current behavior:

Shows only day name as number ( From 1 to 31).
Expected behavior:

I only wanted to pick and display full name of a day(From Monday to Sunday).
Related code:
    <ion-item>
      <ion-label>Day 3</ion-label>
      <ion-datetime displayFormat="DDDD" pickerFormat="DDDD" min="2001-01-01"  max="2001-01-07" (ngModel)]="dayOfWeek">
      </ion-datetime>
    </ion-item>

Other information:

Ionic info: (run ionic info from a terminal/cmd prompt and paste output below):

Hello! While we appreciate you opening an issue with us i am going to close this issue and ask that you open a new one that has the issue template filled out please. Thanks for using Ionic!


docs: added content for bus-factor + technical fork (EN + ZH)

Description
Added the Bus Factor section into the metrics section. I've tried to preserve the quality of content by taking references from the existing ones (e.g. Technical Fork). Do note that the Chinese version is yet to be translated, so once this is approved, I'll push in the changes for CN/ZH variant.
UPDATE (04.07.24) → Added the Chinese (CN / ZH) translation of both Bus Factor & Technical Fork 🎉
🦄 Tested on local, build running successfully. PR is ready to be merged!

Ref : Slack Discussion  /  cc: @Peng99999
○ Partially resolves #24

Before submitting the PR, please take the following into consideration

[x] It's really useful if your PR references an issue where it is discussed ahead of time. In many cases, features are absent for a reason. If you don't have an issue, please create one.
[x] Prefix your PR title with feat: , fix: , chore: , docs:, or refactor:.
[x] The description should clearly illustrate what problems it solves.
[x] Ensure that the commit messages follow our guidelines.
[x] Resolve merge conflicts (if any).
[x] Make sure that the current branch is upto date with the main branch.

/preview

🪧The website for this PR is deployed at https://open-digger.cn/pull_25/

@peng99999 the correct preview link is this.

@Neilblaze Well done! You can use translation software first (such as ChatGPT). If any modifications are needed in the Chinese documents, we will handle some of the language adjustments (polishing) ourselves afterwards.

@Peng99999 ptal

/preview

@Neilblaze I found that if we do not modify the base URL config in the config file, the redirections are broken in the preview website both yours and with 'preview` command. Is that right?

/preview

/preview

@Neilblaze The workflow has been fixed. Right now, PR preview website will have a correct base URL to make sure all the relative links in the preview website are properly set. In order to make it take effect, I need to rebase and push back in this PR~

@Neilblaze I found that if we do not modify the base URL config in the config file, the redirections are broken in the preview website both yours and with 'preview` command. Is that right?

@frank-zsy Yes, exactly! That's the root reason. I was planning to raise a PR, but I'm glad that you fixed it 😄

@frank-zsy, @Peng99999 can we get this merged so that I can start working on adding new metrics :)

@Neilblaze There are several places where the translation would be better as follows: "Bus factor" translated to "巴士因子"; "Technical Fork" translated to "技术分支".

@Peng99999 Since @Neilblaze do not know Chinese, I think we should help with the Chinese part. I will work on this PR about the Chinese part then we can merge this PR.

@frank-zsy That'd be extremely helpful, meanwhile as an update from my end, I've already started on this. Will ship a PR once done :)

/preview

The PR now LGTM. Thanks for the docs. And I think ChatGPT is really good in translation~


Prototype Implementation - Stand up Embedded Jetty operating environment

Prototype Implementation - Stand up Embedded Jetty operating environment
Includes OpenDCS Web Client, and OpenDCS API. Investigate how CWMS AAA fits into this operating environment.

Prototype works with embedded jetty and within Tomcat. Closed with PR: https://github.com/opendcs/rest_api/pull/186/


bug - console spew on address validation

every keystroke on a send input form is throwing console errors
react_devtools_backend.js:3973 Error: 0xdef too short
    at Object.decode (index.js:158:15)
    at r.<anonymous> (CosmosSdkBaseAdapter.js:113:48)
    at l (runtime.js:63:40)
    at Generator._invoke (runtime.js:294:22)
    at Generator.next (runtime.js:119:21)
    at t (asyncToGenerator.js:3:20)
    at s (asyncToGenerator.js:25:9)
    at asyncToGenerator.js:32:7
    at new Promise (<anonymous>)
    at r.<anonymous> (asyncToGenerator.js:21:12)

What's the intended behavior on this one? Do we want not to console.error when the input is shorter than the expected bech32, or to never console error at all?

@gomesalexandre at least debounce on input before validating - or maybe don't log at all, as a user typing into that box is kind of expected behavior?

@gomesalexandre at least debounce on input before validating - or maybe don't log at all, as a user typing into that box is kind of expected behavior?

The rationale to logging was to be able to know exactly why the bech32 validation failed so in theory debouncing would help, but let's go with not logging errors at all, the errored button state should be enough to inform about the error


⚠ Bofrost.de has degraded performance

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

HTTP code: 200
Response time: 1583 ms

Resolved: Bofrost.de performance has improved in f45fbe7.


Added support for seconds in time picker

This adds a new feature where the time picker contains support for querying seconds from the user. The control is the same as the minutes picker. The feature is disabled by default and can be enabled through TimePickerDialog#setSecondsEnabled(boolean enable).

I needed to change the callback method to receive seconds as well. This breaks BC but is easily fixed. However, if this is a problem, OnTimeSetListener could be converted to an abstract class with a default implementation of two methods, one receiving seconds and one not. However this would mean that different methods would be called depending on if seconds are enabled or not, causing potential confusion.
If accepted, this would solve #87.

@wdullaer: Do you think that this is going upstream at some point? We have a release of our app coming up and if not I'm going to have to build it differently. Thanks in advance.

Yes, this will make it in.
I haven't had the time yet to properly review it and merge with some refactoring I've done.
I unfortunately haven't had massive amounts of time to spend on this recently.

Good news, thanks for the heads up. Cheers!

I've resolved merge conflicts of your recent changes. Please take a minute to review, I won't have the time to keep it up forever.

I really appreciate the effort you made.
I have just been extremely low on time.
I'm gradually working my way through the bugs reports, feature requests and pull requests.
This one will definitely make it in, but I need a block of a few hours.

Yeah I know how that feels.
Thanks for the update anyway!


How to get Rfid UID?

Please can anyone suggest me a method on how to get RFID card UID just by scanning.

see example: rfid/examples/DumpInfo/DumpInfo.ino

I have seen that. I want to extract UID from the information to be sent over to database. Please help me with this.

I don't understand it either. I just want the ID. I tried:
Serial.println(mfrc522.PICC_ReadCardSerial());
But it allways prints 0

@onokje please read lookup the function before you complain, return type is bool so it has to be 0 or 1 ....
@devishj look at instructables there is a example with uid database doorlook system

Hi Devishj, maybe this code work for you:
//GeekChickens
//http://geekchickens.blogspot.com.es/
/*
SDA es el pin 10 Change to 6 for Share with Ethernet shield
SCK es el pin 13 Share with Ethernet shield
MOSI es el pin 11 Share with Ethernet shield
MISO es el pin 12 Share with Ethernet shield
RST es el pin 9 Change for 7 for Share with Ethernet shield
*/
//-----------------------------------------------variables, includes, funciones, etc-------------------------------------------------
#include <SPI.h>
#include <RFID.h>
#define SS_PIN 6
#define RST_PIN 7
RFID rfid(SS_PIN, RST_PIN);
int numero_serie[5]; // aqui guardaremos el número que nuestro sensor RFID detectará
//-----------------------------------------------variables, includes,funciones, etc-------------------------------------------------
void setup()
{
Serial.begin(9600);
SPI.begin();
rfid.init();
}
void loop()
{
leer_usuario();
}
void leer_usuario()
{
if (rfid.isCard())
{
if (rfid.readCardSerial())
{
Serial.print("Numero usuario: "); // guardamos el numero del usuario
for(int i=0; i<=4 ; i++)
{
numero_serie[i] = rfid.serNum[i];
}
            for(int i=0; i<=4 ; i++) // y lo imprimimos
            {
              Serial.print(numero_serie[i]);
              Serial.print("    ");
            }

            Serial.println(" "); // espacio para el siguiente código
            delay(500); // para que no se imprima constantemente el mismo numero
         }
}
rfid.halt();

}

@devishj there is a new example that you could use to accoplish that.
See ReadNUID in examples folder.

I'm here also with the same problem.
Should be a sample for getting UID as simple string in hex or decimal to send to database.
Right now we are getting bytes , byte after byte and we have to write a function to extract the UID etc.
It should be just like in PN532 libraries a option in library to get it as string that can easily be able to send to another interface.

Hello Neto Perez, Serial.print is not adding the new line and Serial.println is indeed adding a new line per each increment in the loop, tats why you are seeing byte under byte, maybe you already figured this out because its an old post. I wanna help this Issue go to close. if you want to convert the readCard[] char variable into String just search in Google how to convert char to String in arduino, for sure you will find answers :)


SkyConnect Documentation and FAQ

Feedback
Please provide full SkyConnect Documentation on

technical specs,
datasheet,
setup with HA core (addon->configuration->integration->adding devices),
settings

and of course FAQ relating especially to

features,
information on running two ZigBee radios simultaneously, (for legacy support, offloading or migration)
compatibility with addons/integrations,
migration from other ZigBee radios/gateways/controllers (Conbee/deconz, Sonoff, ZHA, Zigbee2MQTT etc.),
status of matter/thread support
and so on.

Maybe you can also share experimental/alpha/beta firmware for those who want to test out thread/matter.
Thanks in advance.
URL
https://skyconnect.home-assistant.io/
https://www.home-assistant.io/skyconnect/
https://www.home-assistant.io/integrations/homeassistant_sky_connect/
https://www.home-assistant.io/integrations/homeassistant_hardware/
Version
No response
Additional information
https://community.home-assistant.io/t/skyconnect-setup-with-ha-os-missing-official-documentation/502849

Hi @NanoWireDnB,
Thank you for your feedback! In the meantime, the majority of the items you listed have been documented:

Technical specs: https://www.home-assistant.io/skyconnect/
setup with HA core: https://skyconnect.home-assistant.io/ and https://skyconnect.home-assistant.io/new-zigbee/
settings: not sure what you mean? settings during migration? depends on the setup: see instructions: https://skyconnect.home-assistant.io/
features: https://www.home-assistant.io/skyconnect/
information on running two ZigBee radios simultaneously, (for legacy support, offloading or migration): This is not documented yet. I created a new issue for this: https://github.com/home-assistant/skyconnect.home-assistant.io/issues/19.
compatibility with addons/integrations: I created a new issue for this: https://github.com/home-assistant/skyconnect.home-assistant.io/issues/20.
migration from other ZigBee radios/gateways/controllers (Conbee/deconz, Sonoff, ZHA, Zigbee2MQTT etc.): The migration is now described in step-by-step procedures:  https://skyconnect.home-assistant.io/zigbee-migration-selection/
status of matter/thread support: An overview is provided in this blogpost: https://www.home-assistant.io/blog/2023/02/08/state-of-matter-and-thread

@NanoWireDnB in general, try creating small tickets with actionable items, and also describe exactly what information you are missing (e.g. "settings" is really broad, SkyConnect is just a piece of HW without "settings". What do you expect exactly).


Synthesis failed for nodejs-bigquery-storage

Hello! Autosynth couldn't regenerate nodejs-bigquery-storage. :broken_heart:
Here's the output from running synth.py:
ocessing GAPIC library...
DEBUG:synthtool:Post-processing GAPIC library...
2020-11-17 03:31:07,550 synthtool [DEBUG] > Installing dependencies...
DEBUG:synthtool:Installing dependencies...

><EMAIL_ADDRESS>postinstall /home/kbuilder/.cache/synthtool/nodejs-bigquery-storage/node_modules/protobufjs
> node scripts/postinstall

><EMAIL_ADDRESS>prepare /home/kbuilder/.cache/synthtool/nodejs-bigquery-storage
> npm run compile-protos && npm run compile

><EMAIL_ADDRESS>compile-protos /home/kbuilder/.cache/synthtool/nodejs-bigquery-storage
> compileProtos src

installing<EMAIL_ADDRESS>installing<EMAIL_ADDRESS>installing<EMAIL_ADDRESS>installing<EMAIL_ADDRESS>installing<EMAIL_ADDRESS>installing<EMAIL_ADDRESS>
><EMAIL_ADDRESS>precompile /home/kbuilder/.cache/synthtool/nodejs-bigquery-storage
> gts clean

version: 14
Removing build ...

><EMAIL_ADDRESS>compile /home/kbuilder/.cache/synthtool/nodejs-bigquery-storage
> tsc -p . && cp -r protos build/

npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY<EMAIL_ADDRESS>(node_modules/chokidar/node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for<EMAIL_ADDRESS>wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})

added 667 packages from 769 contributors and audited 669 packages in 27.796s

57 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities

2020-11-17 03:31:35,993 synthtool [DEBUG] > Running prelint...
DEBUG:synthtool:Running prelint...

><EMAIL_ADDRESS>prelint /home/kbuilder/.cache/synthtool/nodejs-bigquery-storage
> cd samples; npm link ../; npm install

><EMAIL_ADDRESS>prepare /home/kbuilder/.cache/synthtool/nodejs-bigquery-storage
> npm run compile-protos && npm run compile

><EMAIL_ADDRESS>compile-protos /home/kbuilder/.cache/synthtool/nodejs-bigquery-storage
> compileProtos src

><EMAIL_ADDRESS>precompile /home/kbuilder/.cache/synthtool/nodejs-bigquery-storage
> gts clean

version: 14
Removing build ...

><EMAIL_ADDRESS>compile /home/kbuilder/.cache/synthtool/nodejs-bigquery-storage
> tsc -p . && cp -r protos build/

npm WARN optional SKIPPING OPTIONAL DEPENDENCY<EMAIL_ADDRESS>(node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for<EMAIL_ADDRESS>wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})

audited 669 packages in 13.814s

57 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities

/home/kbuilder/.nvm/versions/node/v14.15.1/lib/node_modules/@google-cloud/bigquery-storage -> /home/kbuilder/.cache/synthtool/nodejs-bigquery-storage
/home/kbuilder/.cache/synthtool/nodejs-bigquery-storage/samples/node_modules/@google-cloud/bigquery-storage -> /home/kbuilder/.nvm/versions/node/v14.15.1/lib/node_modules/@google-cloud/bigquery-storage -> /home/kbuilder/.cache/synthtool/nodejs-bigquery-storage

><EMAIL_ADDRESS>install /home/kbuilder/.cache/synthtool/nodejs-bigquery-storage/samples/node_modules/snappy
> prebuild-install || node-gyp rebuild

npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY<EMAIL_ADDRESS>(node_modules/chokidar/node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for<EMAIL_ADDRESS>wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})

added 200 packages from 155 contributors and audited 288 packages in 6.853s

58 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities

2020-11-17 03:31:58,221 synthtool [DEBUG] > Running fix...
DEBUG:synthtool:Running fix...

><EMAIL_ADDRESS>fix /home/kbuilder/.cache/synthtool/nodejs-bigquery-storage
> gts fix

version: 14

/home/kbuilder/.cache/synthtool/nodejs-bigquery-storage/src/v1/big_query_read_client.ts
  96:48  error  'window' is not defined  no-undef

/home/kbuilder/.cache/synthtool/nodejs-bigquery-storage/src/v1beta1/big_query_storage_client.ts
  96:48  error  'window' is not defined  no-undef

✖ 2 problems (2 errors, 0 warnings)

Error: Command failed with exit code 1: node ./node_modules/eslint/bin/eslint --fix **/*.ts **/*.js **/*.tsx **/*.jsx --no-error-on-unmatched-pattern
    at makeError (/home/kbuilder/.cache/synthtool/nodejs-bigquery-storage/node_modules/execa/lib/error.js:59:11)
    at handlePromise (/home/kbuilder/.cache/synthtool/nodejs-bigquery-storage/node_modules/execa/index.js:114:26)
    at processTicksAndRejections (internal/process/task_queues.js:93:5)
    at async run (/home/kbuilder/.cache/synthtool/nodejs-bigquery-storage/node_modules/gts/build/src/cli.js:120:17) {
  shortMessage: 'Command failed with exit code 1: node ./node_modules/eslint/bin/eslint --fix **/*.ts **/*.js **/*.tsx **/*.jsx --no-error-on-unmatched-pattern',
  command: 'node ./node_modules/eslint/bin/eslint --fix **/*.ts **/*.js **/*.tsx **/*.jsx --no-error-on-unmatched-pattern',
  exitCode: 1,
  signal: undefined,
  signalDescription: undefined,
  stdout: undefined,
  stderr: undefined,
  failed: true,
  timedOut: false,
  isCanceled: false,
  killed: false
}
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR<EMAIL_ADDRESS>fix: `gts fix`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>fix script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/kbuilder/.npm/_logs/2020-11-17T11_32_04_493Z-debug.log
2020-11-17 03:32:04,500 synthtool [ERROR] > Failed executing npm run fix:

None
ERROR:synthtool:Failed executing npm run fix:

None
Traceback (most recent call last):
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/tmpfs/src/github/synthtool/synthtool/__main__.py", line 102, in <module>
    main()
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/click/core.py", line 829, in __call__
    return self.main(*args, **kwargs)
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/click/core.py", line 782, in main
    rv = self.invoke(ctx)
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/click/core.py", line 1066, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/click/core.py", line 610, in invoke
    return callback(*args, **kwargs)
  File "/tmpfs/src/github/synthtool/synthtool/__main__.py", line 94, in main
    spec.loader.exec_module(synth_module)  # type: ignore
  File "<frozen importlib._bootstrap_external>", line 678, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/home/kbuilder/.cache/synthtool/nodejs-bigquery-storage/synth.py", line 34, in <module>
    node.postprocess_gapic_library()
  File "/tmpfs/src/github/synthtool/synthtool/languages/node.py", line 194, in postprocess_gapic_library
    fix(hide_output=hide_output)
  File "/tmpfs/src/github/synthtool/synthtool/languages/node.py", line 179, in fix
    shell.run(["npm", "run", "fix"], hide_output=hide_output)
  File "/tmpfs/src/github/synthtool/synthtool/shell.py", line 39, in run
    raise exc
  File "/tmpfs/src/github/synthtool/synthtool/shell.py", line 33, in run
    encoding="utf-8",
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/subprocess.py", line 438, in run
    output=stdout, stderr=stderr)
subprocess.CalledProcessError: Command '['npm', 'run', 'fix']' returned non-zero exit status 1.
2020-11-17 03:32:04,577 autosynth [ERROR] > Synthesis failed
2020-11-17 03:32:04,577 autosynth [DEBUG] > Running: git reset --hard HEAD
HEAD is now at 9d0131d chore: release 2.2.2 (#127)
2020-11-17 03:32:04,597 autosynth [DEBUG] > Running: git checkout autosynth
Switched to branch 'autosynth'
2020-11-17 03:32:04,613 autosynth [DEBUG] > Running: git clean -fdx
Removing __pycache__/
Removing build/
Removing node_modules/
Removing package-lock.json
Removing samples/node_modules/
Removing samples/package-lock.json
Traceback (most recent call last):
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 354, in <module>
    main()
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 189, in main
    return _inner_main(temp_dir)
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 334, in _inner_main
    commit_count = synthesize_loop(x, multiple_prs, change_pusher, synthesizer)
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 65, in synthesize_loop
    has_changes = toolbox.synthesize_version_in_new_branch(synthesizer, youngest)
  File "/tmpfs/src/github/synthtool/autosynth/synth_toolbox.py", line 259, in synthesize_version_in_new_branch
    synthesizer.synthesize(synth_log_path, self.environ)
  File "/tmpfs/src/github/synthtool/autosynth/synthesizer.py", line 120, in synthesize
    synth_proc.check_returncode()  # Raise an exception.
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/subprocess.py", line 389, in check_returncode
    self.stderr)
subprocess.CalledProcessError: Command '['/tmpfs/src/github/synthtool/env/bin/python3', '-m', 'synthtool', '--metadata', 'synth.metadata', 'synth.py', '--']' returned non-zero exit status 1.

Google internal developers can see the full log here.

Autosynth is still having trouble generating nodejs-bigquery-storage. :sob:
Here's the output from running synth.py:
essing GAPIC library...
DEBUG:synthtool:Post-processing GAPIC library...
2020-11-18 03:30:32,007 synthtool [DEBUG] > Installing dependencies...
DEBUG:synthtool:Installing dependencies...

><EMAIL_ADDRESS>postinstall /home/kbuilder/.cache/synthtool/nodejs-bigquery-storage/node_modules/protobufjs
> node scripts/postinstall

><EMAIL_ADDRESS>prepare /home/kbuilder/.cache/synthtool/nodejs-bigquery-storage
> npm run compile-protos && npm run compile

><EMAIL_ADDRESS>compile-protos /home/kbuilder/.cache/synthtool/nodejs-bigquery-storage
> compileProtos src

installing<EMAIL_ADDRESS>installing<EMAIL_ADDRESS>installing<EMAIL_ADDRESS>installing<EMAIL_ADDRESS>installing<EMAIL_ADDRESS>installing<EMAIL_ADDRESS>
><EMAIL_ADDRESS>precompile /home/kbuilder/.cache/synthtool/nodejs-bigquery-storage
> gts clean

version: 14
Removing build ...

><EMAIL_ADDRESS>compile /home/kbuilder/.cache/synthtool/nodejs-bigquery-storage
> tsc -p . && cp -r protos build/

npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY<EMAIL_ADDRESS>(node_modules/chokidar/node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for<EMAIL_ADDRESS>wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})

added 667 packages from 769 contributors and audited 669 packages in 27.433s

57 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities

2020-11-18 03:31:00,125 synthtool [DEBUG] > Running prelint...
DEBUG:synthtool:Running prelint...

><EMAIL_ADDRESS>prelint /home/kbuilder/.cache/synthtool/nodejs-bigquery-storage
> cd samples; npm link ../; npm install

><EMAIL_ADDRESS>prepare /home/kbuilder/.cache/synthtool/nodejs-bigquery-storage
> npm run compile-protos && npm run compile

><EMAIL_ADDRESS>compile-protos /home/kbuilder/.cache/synthtool/nodejs-bigquery-storage
> compileProtos src

><EMAIL_ADDRESS>precompile /home/kbuilder/.cache/synthtool/nodejs-bigquery-storage
> gts clean

version: 14
Removing build ...

><EMAIL_ADDRESS>compile /home/kbuilder/.cache/synthtool/nodejs-bigquery-storage
> tsc -p . && cp -r protos build/

npm WARN optional SKIPPING OPTIONAL DEPENDENCY<EMAIL_ADDRESS>(node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for<EMAIL_ADDRESS>wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})

audited 669 packages in 13.322s

57 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities

/home/kbuilder/.nvm/versions/node/v14.15.1/lib/node_modules/@google-cloud/bigquery-storage -> /home/kbuilder/.cache/synthtool/nodejs-bigquery-storage
/home/kbuilder/.cache/synthtool/nodejs-bigquery-storage/samples/node_modules/@google-cloud/bigquery-storage -> /home/kbuilder/.nvm/versions/node/v14.15.1/lib/node_modules/@google-cloud/bigquery-storage -> /home/kbuilder/.cache/synthtool/nodejs-bigquery-storage

><EMAIL_ADDRESS>install /home/kbuilder/.cache/synthtool/nodejs-bigquery-storage/samples/node_modules/snappy
> prebuild-install || node-gyp rebuild

npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY<EMAIL_ADDRESS>(node_modules/chokidar/node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for<EMAIL_ADDRESS>wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})

added 200 packages from 155 contributors and audited 288 packages in 6.534s

58 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities

2020-11-18 03:31:21,502 synthtool [DEBUG] > Running fix...
DEBUG:synthtool:Running fix...

><EMAIL_ADDRESS>fix /home/kbuilder/.cache/synthtool/nodejs-bigquery-storage
> gts fix

version: 14

/home/kbuilder/.cache/synthtool/nodejs-bigquery-storage/src/v1/big_query_read_client.ts
  102:48  error  'window' is not defined  no-undef

/home/kbuilder/.cache/synthtool/nodejs-bigquery-storage/src/v1beta1/big_query_storage_client.ts
  102:48  error  'window' is not defined  no-undef

✖ 2 problems (2 errors, 0 warnings)

Error: Command failed with exit code 1: node ./node_modules/eslint/bin/eslint --fix **/*.ts **/*.js **/*.tsx **/*.jsx --no-error-on-unmatched-pattern
    at makeError (/home/kbuilder/.cache/synthtool/nodejs-bigquery-storage/node_modules/execa/lib/error.js:59:11)
    at handlePromise (/home/kbuilder/.cache/synthtool/nodejs-bigquery-storage/node_modules/execa/index.js:114:26)
    at processTicksAndRejections (internal/process/task_queues.js:93:5)
    at async run (/home/kbuilder/.cache/synthtool/nodejs-bigquery-storage/node_modules/gts/build/src/cli.js:120:17) {
  shortMessage: 'Command failed with exit code 1: node ./node_modules/eslint/bin/eslint --fix **/*.ts **/*.js **/*.tsx **/*.jsx --no-error-on-unmatched-pattern',
  command: 'node ./node_modules/eslint/bin/eslint --fix **/*.ts **/*.js **/*.tsx **/*.jsx --no-error-on-unmatched-pattern',
  exitCode: 1,
  signal: undefined,
  signalDescription: undefined,
  stdout: undefined,
  stderr: undefined,
  failed: true,
  timedOut: false,
  isCanceled: false,
  killed: false
}
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR<EMAIL_ADDRESS>fix: `gts fix`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>fix script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/kbuilder/.npm/_logs/2020-11-18T11_31_27_646Z-debug.log
2020-11-18 03:31:27,654 synthtool [ERROR] > Failed executing npm run fix:

None
ERROR:synthtool:Failed executing npm run fix:

None
Traceback (most recent call last):
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/tmpfs/src/github/synthtool/synthtool/__main__.py", line 102, in <module>
    main()
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/click/core.py", line 829, in __call__
    return self.main(*args, **kwargs)
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/click/core.py", line 782, in main
    rv = self.invoke(ctx)
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/click/core.py", line 1066, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/click/core.py", line 610, in invoke
    return callback(*args, **kwargs)
  File "/tmpfs/src/github/synthtool/synthtool/__main__.py", line 94, in main
    spec.loader.exec_module(synth_module)  # type: ignore
  File "<frozen importlib._bootstrap_external>", line 678, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/home/kbuilder/.cache/synthtool/nodejs-bigquery-storage/synth.py", line 34, in <module>
    node.postprocess_gapic_library()
  File "/tmpfs/src/github/synthtool/synthtool/languages/node.py", line 194, in postprocess_gapic_library
    fix(hide_output=hide_output)
  File "/tmpfs/src/github/synthtool/synthtool/languages/node.py", line 179, in fix
    shell.run(["npm", "run", "fix"], hide_output=hide_output)
  File "/tmpfs/src/github/synthtool/synthtool/shell.py", line 39, in run
    raise exc
  File "/tmpfs/src/github/synthtool/synthtool/shell.py", line 33, in run
    encoding="utf-8",
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/subprocess.py", line 438, in run
    output=stdout, stderr=stderr)
subprocess.CalledProcessError: Command '['npm', 'run', 'fix']' returned non-zero exit status 1.
2020-11-18 03:31:27,724 autosynth [ERROR] > Synthesis failed
2020-11-18 03:31:27,724 autosynth [DEBUG] > Running: git reset --hard HEAD
HEAD is now at 9d0131d chore: release 2.2.2 (#127)
2020-11-18 03:31:27,743 autosynth [DEBUG] > Running: git checkout autosynth
Switched to branch 'autosynth'
2020-11-18 03:31:27,759 autosynth [DEBUG] > Running: git clean -fdx
Removing __pycache__/
Removing build/
Removing node_modules/
Removing package-lock.json
Removing samples/node_modules/
Removing samples/package-lock.json
Traceback (most recent call last):
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 354, in <module>
    main()
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 189, in main
    return _inner_main(temp_dir)
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 334, in _inner_main
    commit_count = synthesize_loop(x, multiple_prs, change_pusher, synthesizer)
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 65, in synthesize_loop
    has_changes = toolbox.synthesize_version_in_new_branch(synthesizer, youngest)
  File "/tmpfs/src/github/synthtool/autosynth/synth_toolbox.py", line 259, in synthesize_version_in_new_branch
    synthesizer.synthesize(synth_log_path, self.environ)
  File "/tmpfs/src/github/synthtool/autosynth/synthesizer.py", line 120, in synthesize
    synth_proc.check_returncode()  # Raise an exception.
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/subprocess.py", line 389, in check_returncode
    self.stderr)
subprocess.CalledProcessError: Command '['/tmpfs/src/github/synthtool/env/bin/python3', '-m', 'synthtool', '--metadata', 'synth.metadata', 'synth.py', '--']' returned non-zero exit status 1.

Google internal developers can see the full log here.

Autosynth is still having trouble generating nodejs-bigquery-storage. :sob:
Here's the output from running synth.py:
essing GAPIC library...
DEBUG:synthtool:Post-processing GAPIC library...
2020-11-18 13:59:48,876 synthtool [DEBUG] > Installing dependencies...
DEBUG:synthtool:Installing dependencies...

><EMAIL_ADDRESS>postinstall /home/kbuilder/.cache/synthtool/nodejs-bigquery-storage/node_modules/protobufjs
> node scripts/postinstall

><EMAIL_ADDRESS>prepare /home/kbuilder/.cache/synthtool/nodejs-bigquery-storage
> npm run compile-protos && npm run compile

><EMAIL_ADDRESS>compile-protos /home/kbuilder/.cache/synthtool/nodejs-bigquery-storage
> compileProtos src

installing<EMAIL_ADDRESS>installing<EMAIL_ADDRESS>installing<EMAIL_ADDRESS>installing<EMAIL_ADDRESS>installing<EMAIL_ADDRESS>installing<EMAIL_ADDRESS>
><EMAIL_ADDRESS>precompile /home/kbuilder/.cache/synthtool/nodejs-bigquery-storage
> gts clean

version: 14
Removing build ...

><EMAIL_ADDRESS>compile /home/kbuilder/.cache/synthtool/nodejs-bigquery-storage
> tsc -p . && cp -r protos build/

npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY<EMAIL_ADDRESS>(node_modules/chokidar/node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for<EMAIL_ADDRESS>wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})

added 667 packages from 769 contributors and audited 669 packages in 28.849s

57 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities

2020-11-18 14:00:18,392 synthtool [DEBUG] > Running prelint...
DEBUG:synthtool:Running prelint...

><EMAIL_ADDRESS>prelint /home/kbuilder/.cache/synthtool/nodejs-bigquery-storage
> cd samples; npm link ../; npm install

><EMAIL_ADDRESS>prepare /home/kbuilder/.cache/synthtool/nodejs-bigquery-storage
> npm run compile-protos && npm run compile

><EMAIL_ADDRESS>compile-protos /home/kbuilder/.cache/synthtool/nodejs-bigquery-storage
> compileProtos src

><EMAIL_ADDRESS>precompile /home/kbuilder/.cache/synthtool/nodejs-bigquery-storage
> gts clean

version: 14
Removing build ...

><EMAIL_ADDRESS>compile /home/kbuilder/.cache/synthtool/nodejs-bigquery-storage
> tsc -p . && cp -r protos build/

npm WARN optional SKIPPING OPTIONAL DEPENDENCY<EMAIL_ADDRESS>(node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for<EMAIL_ADDRESS>wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})

audited 669 packages in 14.022s

57 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities

/home/kbuilder/.nvm/versions/node/v14.15.1/lib/node_modules/@google-cloud/bigquery-storage -> /home/kbuilder/.cache/synthtool/nodejs-bigquery-storage
/home/kbuilder/.cache/synthtool/nodejs-bigquery-storage/samples/node_modules/@google-cloud/bigquery-storage -> /home/kbuilder/.nvm/versions/node/v14.15.1/lib/node_modules/@google-cloud/bigquery-storage -> /home/kbuilder/.cache/synthtool/nodejs-bigquery-storage

><EMAIL_ADDRESS>install /home/kbuilder/.cache/synthtool/nodejs-bigquery-storage/samples/node_modules/snappy
> prebuild-install || node-gyp rebuild

npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY<EMAIL_ADDRESS>(node_modules/chokidar/node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for<EMAIL_ADDRESS>wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})

added 200 packages from 155 contributors and audited 288 packages in 6.673s

58 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities

2020-11-18 14:00:40,749 synthtool [DEBUG] > Running fix...
DEBUG:synthtool:Running fix...

><EMAIL_ADDRESS>fix /home/kbuilder/.cache/synthtool/nodejs-bigquery-storage
> gts fix

version: 14

/home/kbuilder/.cache/synthtool/nodejs-bigquery-storage/src/v1/big_query_read_client.ts
  101:48  error  'window' is not defined  no-undef

/home/kbuilder/.cache/synthtool/nodejs-bigquery-storage/src/v1beta1/big_query_storage_client.ts
  101:48  error  'window' is not defined  no-undef

✖ 2 problems (2 errors, 0 warnings)

Error: Command failed with exit code 1: node ./node_modules/eslint/bin/eslint --fix **/*.ts **/*.js **/*.tsx **/*.jsx --no-error-on-unmatched-pattern
    at makeError (/home/kbuilder/.cache/synthtool/nodejs-bigquery-storage/node_modules/execa/lib/error.js:59:11)
    at handlePromise (/home/kbuilder/.cache/synthtool/nodejs-bigquery-storage/node_modules/execa/index.js:114:26)
    at processTicksAndRejections (internal/process/task_queues.js:93:5)
    at async run (/home/kbuilder/.cache/synthtool/nodejs-bigquery-storage/node_modules/gts/build/src/cli.js:120:17) {
  shortMessage: 'Command failed with exit code 1: node ./node_modules/eslint/bin/eslint --fix **/*.ts **/*.js **/*.tsx **/*.jsx --no-error-on-unmatched-pattern',
  command: 'node ./node_modules/eslint/bin/eslint --fix **/*.ts **/*.js **/*.tsx **/*.jsx --no-error-on-unmatched-pattern',
  exitCode: 1,
  signal: undefined,
  signalDescription: undefined,
  stdout: undefined,
  stderr: undefined,
  failed: true,
  timedOut: false,
  isCanceled: false,
  killed: false
}
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR<EMAIL_ADDRESS>fix: `gts fix`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>fix script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/kbuilder/.npm/_logs/2020-11-18T22_00_47_038Z-debug.log
2020-11-18 14:00:47,046 synthtool [ERROR] > Failed executing npm run fix:

None
ERROR:synthtool:Failed executing npm run fix:

None
Traceback (most recent call last):
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/tmpfs/src/github/synthtool/synthtool/__main__.py", line 102, in <module>
    main()
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/click/core.py", line 829, in __call__
    return self.main(*args, **kwargs)
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/click/core.py", line 782, in main
    rv = self.invoke(ctx)
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/click/core.py", line 1066, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/click/core.py", line 610, in invoke
    return callback(*args, **kwargs)
  File "/tmpfs/src/github/synthtool/synthtool/__main__.py", line 94, in main
    spec.loader.exec_module(synth_module)  # type: ignore
  File "<frozen importlib._bootstrap_external>", line 678, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/home/kbuilder/.cache/synthtool/nodejs-bigquery-storage/synth.py", line 34, in <module>
    node.postprocess_gapic_library()
  File "/tmpfs/src/github/synthtool/synthtool/languages/node.py", line 194, in postprocess_gapic_library
    fix(hide_output=hide_output)
  File "/tmpfs/src/github/synthtool/synthtool/languages/node.py", line 179, in fix
    shell.run(["npm", "run", "fix"], hide_output=hide_output)
  File "/tmpfs/src/github/synthtool/synthtool/shell.py", line 39, in run
    raise exc
  File "/tmpfs/src/github/synthtool/synthtool/shell.py", line 33, in run
    encoding="utf-8",
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/subprocess.py", line 438, in run
    output=stdout, stderr=stderr)
subprocess.CalledProcessError: Command '['npm', 'run', 'fix']' returned non-zero exit status 1.
2020-11-18 14:00:47,131 autosynth [ERROR] > Synthesis failed
2020-11-18 14:00:47,131 autosynth [DEBUG] > Running: git reset --hard HEAD
HEAD is now at 9d0131d chore: release 2.2.2 (#127)
2020-11-18 14:00:47,151 autosynth [DEBUG] > Running: git checkout autosynth
Switched to branch 'autosynth'
2020-11-18 14:00:47,169 autosynth [DEBUG] > Running: git clean -fdx
Removing __pycache__/
Removing build/
Removing node_modules/
Removing package-lock.json
Removing samples/node_modules/
Removing samples/package-lock.json
Traceback (most recent call last):
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 354, in <module>
    main()
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 189, in main
    return _inner_main(temp_dir)
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 334, in _inner_main
    commit_count = synthesize_loop(x, multiple_prs, change_pusher, synthesizer)
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 65, in synthesize_loop
    has_changes = toolbox.synthesize_version_in_new_branch(synthesizer, youngest)
  File "/tmpfs/src/github/synthtool/autosynth/synth_toolbox.py", line 259, in synthesize_version_in_new_branch
    synthesizer.synthesize(synth_log_path, self.environ)
  File "/tmpfs/src/github/synthtool/autosynth/synthesizer.py", line 120, in synthesize
    synth_proc.check_returncode()  # Raise an exception.
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/subprocess.py", line 389, in check_returncode
    self.stderr)
subprocess.CalledProcessError: Command '['/tmpfs/src/github/synthtool/env/bin/python3', '-m', 'synthtool', '--metadata', 'synth.metadata', 'synth.py', '--']' returned non-zero exit status 1.

Google internal developers can see the full log here.

Autosynth passed, closing! :green_heart:


Remove beast::SharedData

This removes the beast::SharedData class, which wrapped a structure to provide semi-transparent locked access. Use cases are replaced with std::mutex or std::recursive_mutex as appropriate.
This should be reordered to go ahead of #1341.
@vinniefalco, @seelabs

Current coverage is 49.36%

Merging #1348 into develop will decrease coverage by -0.02% as of 66b26df

@@            develop   #1348   diff @@
=======================================
  Files           962     960     -2
  Stmts         65925   65833    -92
  Branches          0       0
  Methods           0       0
=======================================
- Hit           32560   32501    -59
  Partial           0       0
+ Missed        33365   33332    -33

Review entire Coverage Diff as of 66b26df

Powered by Codecov. Updated on successful CI builds.

:+1:

Merged as b7c3b96516e6468a26d39fdf80cd0e9a1fbc2df0.


Feature request: Debug date

I looked at documentation and through the code and didn't see any way to easily do this.
As a developer, it would be beneficial to have MagicMirror use a simulated debug date. This could be specified in config.json for example, and then become useful for tests.
This would essentially replace all calls to moment() with moment(config.debugDate) since moment(undefined) falls back to returning the current date/time. Anything else that doesn't use moment() would also need fixup.

Just add Date.now = () => new Date('2001-02-03T04:05:06'); in your config.js

Just add Date.now = () => new Date('2001-02-03T04:05:06'); in your config.js outside of the config-object

This might be a helpful addition to the module-development section of the documentation if someone wants to create a PR for that ;-)

Setting Date.now to a lambda that responds with a specific date is an interesting idea, but it basically means that time stops. Sometimes we just want time to start at a specific time when MM is started 🤔

Just add Date.now = () => new Date('2001-02-03T04:05:06'); in your config.js outside of the config-object

@buxxi this didn't quite work. The date/time typically in the top-middle shows the hard-coded date/time, but many modules still show actual time. Any other ideas?

I went through and changed everywhere doing new Date() to Date.now() and that seemed to work. However, several external modules use new Date() and we should probably offer guidance on using Date.now() instead

Also created https://github.com/MichMich/MagicMirror-Documentation/pull/218 for the documentation fixup

However, several external modules use new Date() and we should probably offer guidance on using Date.now() instead

To see which modules are using new Date() I just added a check for this in my 3rd Party Module project - here is the result.  So this may help to decrease the use of new Date() in the future.