Flow fails to check Disjoint Unions as object value type

type ASTLiteralNode = {
  type: 'Literal',
  value: any
};

type ASTThisNode = {
  type: 'ThisExpression'
};

class AST {
  static Literal = 'Literal';
  static ThisExpression = 'ThisExpression';

  static constants: { [key: string]: (ASTThisNode | ASTLiteralNode) } = {
    'this': { type: AST.ThisExpression },
    'null': { type: AST.Literal, value: null },
    'true': { type: AST.Literal, value: true },
    'false': { type: AST.Literal, value: false }
  };
}

I got the errors:
src/parse.js:242
242:     'null': { type: AST.Literal, value: null },
                         ^^^^^^^^^^^ string. Expected string literal `ThisExpression`, got `Literal` instead
228:   type: 'ThisExpression'
             ^^^^^^^^^^^^^^^^ string literal `ThisExpression`

src/parse.js:243
243:     'true': { type: AST.Literal, value: true },
                         ^^^^^^^^^^^ string. Expected string literal `ThisExpression`, got `Literal` instead
228:   type: 'ThisExpression'
             ^^^^^^^^^^^^^^^^ string literal `ThisExpression`

src/parse.js:244
244:     'false': { type: AST.Literal, value: false }
                          ^^^^^^^^^^^ string. Expected string literal `ThisExpression`, got `Literal` instead
228:   type: 'ThisExpression'
             ^^^^^^^^^^^^^^^^ string literal `ThisExpression`

Also, I have enabled esproposal.class_instance_fields and esproposal.class_static_fields in .flowconfig.

Using literal type solves the problem.
  static constants: { [key: string]: (ASTThisExpressionNode | ASTLiteralNode) } = {
    'this': { type: 'ThisExpression' },
    'null': { type: 'Literal', value: null },
    'true': { type: 'Literal', value: true },
    'false': { type: 'Literal', value: false }
  };

But flow works perfectly if I just use AST.Literal.
  static constants: { [key: string]: ASTLiteralNode } = {
    'null': { type: AST.Literal, value: null },
    'true': { type: AST.Literal, value: true },
    'false': { type: AST.Literal, value: false }
  };

Is it a bug? Or I missed something in the doc?😳

This is likely part of a larger problem with disjoint unions.
type A = {type: '1', value: B} | {type: '2': value: C}

The above is treated as: {type: '1', value: B & C} | {type: '2', value: B & C}. Key tags that exist in multiple disjoint alternatives are matched against each one of their types.

Is there any workaround to this problem? I'm getting the same problem with this types:
type BaseAction = { icon: string }
type ActionWithUploads = BaseAction & { onDrop: (files: Array<File>) => void }
type ActionWithLink = BaseAction & { href: string }
type Action = (ActionWithLink) | (ActionWithUploads)

Flow is failing to accept an object of the type Action that does not contain both onDrop and href.
Thanks in advance

Also, it wouldn't hurt in the meantime to mention this issue in the documentation. Many people may be trying to do this and thinking they are doing something wrong.

@masylum, I tried dropping your snippet above into the try flow editor and it showed no problems. Do you have an example of using these types where it breaks?

It used to fail with simple test cases like this but it seems to work fine now:
type A = {type: '1'; value: string} | {type: '2'; value: number}

function foo(x: A) {
  switch (x.type) {
    case '1': return x.value.toUpperCase()
    case '2': return x.value * 2
  }
}

I have built a failing case and I couldn't find a workaround. Can anyone check?

I can simplify that case by removing all the React bits:
type A = { tag: 'stuff', value: null }
type B = { tag: 'adding', value: string }
type AB = A | B

const a: A = { tag: 'stuff', value: null }

let b: AB = a; // Type-checks, as expected
let c: $Shape<AB> = a; // Type error, but should work?

So I think it's specifically an issue with unions and $Shape.

I get that it's a complicated case. But what should be done to support my use case? I think it's a valid use case and not an edge case.
I got a tip on Twitter suggesting I wrap my types in another object, and it worked, but it's a lot of hassle for a case that should just work.
Here's the tip: https://mobile.twitter.com/calebmer/status/901067504537268224

The reason why this is complicated is because of the merging together of a current state and some changes to it in a context that is a union type. The extra object makes React setState work because that nested object fully replaces the existing one rather than being merged into it.
If you try to think about the type of the merge operation, I think it makes sense that this isn't doable statically when Flow checks.
For example, let's take this context of a type on a variable:
declare var x: { tag: 'a'  } | { tag: 'b', val: number };

If we merge a new object into x, what is the type of object that is allowed to be merged into x?
x = {...x, { val: 2 }}; // is this allowed?
x = {...x, { val: 'b' }} // what about this?

Without knowing which of the cases (a or b), x currently is, we can't know what type of object is allowed to be merged in. For example. the first line only type checks if we know the value of x is in the second case (has tag b) and the second line is only allowed if the object is already in the first case (has tag a). But flow doesn't know which state the object will be in at runtime, so it simply can't allow either of these to type-check.
So, hopefully that explains why $Shape has trouble with unions for valid reasons, and also why the nested object isn't just a syntax trick, but actually makes the logic correct.

Yeah, that makes a lot of sense. The tool I reached first was in fact replaceState, but it was deprecated sadly. Looks like I'll have to do it with a wrapped object for now.


[Feature Request]: Create a page Footer component

Description
It would be nice to have a component to add a footer to pages similar to the demo pages (which I cannot seem to replicate but that is me just being a noob at React / JS / CSS). Additionally sections / sub-components for cookie management would make adding this stuff so much less time consuming. Those things are pretty much all the same across every site so this would help remove undifferentiated heavy lifting.
Code of Conduct

[X] I agree to follow this project's Code of Conduct
[X] I checked the current issues for duplicate requests

Sorry for the late reply.
As for features of a footer component:

Ability to easily add links as sub-components as simply as an array of objects like many of the existing component
Ability to follow theme dark/light or inverse of dark/light easily
Ability to add a label(s) before and/or after the links to be used as a copyright line or similar
Ability to justify each bit of content left/center/right as needed so that links could be left, labels center and right
Should be nicely rendered on desktop and mobile.  Would be great if certain items (sub-components) could be flagged optional view when space is limited (mobile)


Building for bladerf

Hi I have bladeRF not hackRF. When I follow the instructions to build your code, I get the cmake error:
Could NOT find LIBHACKRF (missing: LIBHACKRF_LIBRARIES LIBHACKRF_INCLUDE_DIR)
Call Stack
/usr/share/cmake-3.0/Modules/FinePacakageHandleStandardArgs.cmake:343 (_FPHSA_FAILURE_MESSAGE)
cmake/modules/FindLIBHACKRF.cmake:52 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
btle-tools/CMakeLists.txt:49 (find_pakage)

Could you advise me how to build this for bladeRF instead of hackRF?
Thanks

I follow instructions in my GitHub. It is successful. Have you used the -D?
Sent from my iPhone6s

On Sep 25, 2015, at 19:13, Alex Walker<EMAIL_ADDRESS>wrote:
Hi I have bladeRF not hackRF. When I follow the instructions to build your code, I get the cmake error:
Could NOT find LIBHACKRF (missing: LIBHACKRF_LIBRARIES LIBHACKRF_INCLUDE_DIR)
Call Stack
/usr/share/cmake-3.0/Modules/FinePacakageHandleStandardArgs.cmake:343 (_FPHSA_FAILURE_MESSAGE)
cmake/modules/FindLIBHACKRF.cmake:52 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
btle-tools/CMakeLists.txt:49 (find_pakage)
Could you advise me how to build this for bladeRF instead of hackRF?
Thanks
—
Reply to this email directly or view it on GitHub.

As said in the readme.md, you may try:
cd host
mkdir build
cd build
cmake ../      -DUSE_BLADERF=1
make
sudo make install


fix: adds semantic-release-plugin-update-version-in-files

:tada: This PR is included in version 1.22.1 :tada:
The release is available on:

GitHub release
npm package (@latest dist-tag)

Your semantic-release bot :package::rocket:


Refactor step buttons + improve assertion messages

I got annoyed with totally useless test failure messages and having to follow the steps to the failures.
A few important changes here:

I've removed StepButton constructors except where required (UntilStepButton, RepeatStepButton) to preserve behaviour. They now use properties including required and { get; init; } keywords to indicate expected uses.

Primary reason I did this is because I found ToggleStepButton missing the isSetupStep param. It feels like the contracts were too loose being optional ctor params.

UntilStepButton now has a callstack similar to AssertButton.
AddStep and AddLabelStep no longer return the step button. It's not used in o!f and osu!, and I'm not sure what practice use it could ever have.
Every method (e.g. AddUntilStep) calls the AddStep(StepButton) method which does the schedule + add to container. In particular, this is important for generating correct callstacks as they're currently generated inside the lambda and lose context. This is why our traces are terrible.

If deemed necessary, I can split this PR up into two. I kinda went down the rabbit hole to see where it ends, so it combines the refactoring.
Demo:
public class SomeTestScene : TestScene
{
    [Test]
    public void FailingAssertStep()
    {
        AddAssert("fail", () => false);
    }

    [Test]
    public void PassingAssertStep()
    {
        AddAssert("pass", () => true);
    }

    [Test]
    public void FailingUntilStep()
    {
        AddUntilStep("fail", () => false);
    }

    [Test]
    public void PassingUntilStep()
    {
        AddUntilStep("pass", () => true);
    }

    [Test]
    public void RepeatStep()
    {
        AddRepeatStep("repeat", () => { }, 10);
    }

    [Test]
    public void WaitStep()
    {
        AddWaitStep("wait", 10);
    }
}

Before:
  Failed FailingAssertStep [81 ms]
  Error Message:
   fail
  Stack Trace:
     at osu.Framework.Threading.ScheduledDelegate.InvokeTask()
   at osu.Framework.Threading.ScheduledDelegate.RunTaskInternal()
   at osu.Framework.Threading.Scheduler.Update()
   at osu.Framework.Graphics.Drawable.UpdateSubTree()
   at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
   at osu.Framework.Graphics.Containers.CompositeDrawable.updateChild(Drawable c)
   at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
   at osu.Framework.Graphics.Containers.CompositeDrawable.updateChild(Drawable c)
   at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
   at osu.Framework.Graphics.Containers.CompositeDrawable.updateChild(Drawable c)
   at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
   at osu.Framework.Graphics.Containers.CompositeDrawable.updateChild(Drawable c)
   at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
   at osu.Framework.Graphics.Containers.CompositeDrawable.updateChild(Drawable c)
   at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
   at osu.Framework.Graphics.Containers.CompositeDrawable.updateChild(Drawable c)
   at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
   at osu.Framework.Graphics.Containers.CompositeDrawable.updateChild(Drawable c)
   at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
   at osu.Framework.Platform.GameHost.UpdateFrame()
   at osu.Framework.Platform.HeadlessGameHost.UpdateFrame()
   at osu.Framework.Threading.GameThread.processFrame()
   at osu.Framework.Threading.GameThread.RunSingleFrame()
   at osu.Framework.Threading.GameThread.<createThread>g__runWork|70_0()
   at System.Threading.Thread.StartHelper.Callback(Object state)

---

  Failed FailingUntilStep [10 s]
  Error Message:
   "fail" timed out
  Stack Trace:
     at osu.Framework.Testing.Drawables.Steps.UntilStepButton.<>c__DisplayClass11_0.<.ctor>b__0() in /Users/smgi/Repos/osu-framework/osu.Framework/Testing/Drawables/Steps/UntilStepButton.cs:line 66
   at osu.Framework.Testing.Drawables.Steps.StepButton.PerformStep(Boolean userTriggered) in /Users/smgi/Repos/osu-framework/osu.Framework/Testing/Drawables/Steps/StepButton.cs:line 124
   at osu.Framework.Testing.TestScene.runNextStep(Action onCompletion, Action`1 onError, Func`2 stopCondition) in /Users/smgi/Repos/osu-framework/osu.Framework/Testing/TestScene.cs:line 235
--- End of stack trace from previous location ---
   at osu.Framework.Testing.TestSceneTestRunner.TestRunner.RunTestBlocking(TestScene test) in /Users/smgi/Repos/osu-framework/osu.Framework/Testing/TestSceneTestRunner.cs:line 89
   at osu.Framework.Testing.TestSceneTestRunner.RunTestBlocking(TestScene test) in /Users/smgi/Repos/osu-framework/osu.Framework/Testing/TestSceneTestRunner.cs:line 32
   at osu.Framework.Testing.TestScene.UseTestSceneRunnerAttribute.AfterTest(ITest test) in /Users/smgi/Repos/osu-framework/osu.Framework/Testing/TestScene.cs:line 564
   at NUnit.Framework.Internal.Commands.TestActionCommand.<>c__DisplayClass0_0.<.ctor>b__1(TestExecutionContext context)
   at NUnit.Framework.Internal.Commands.BeforeAndAfterTestCommand.<>c__DisplayClass1_0.<Execute>b__1()
   at NUnit.Framework.Internal.Commands.DelegatingTestCommand.RunTestMethodInThreadAbortSafeZone(TestExecutionContext context, Action action)

After:
  Failed FailingAssertStep [74 ms]
  Error Message:
   fail
  Stack Trace:
     at osu.Framework.Tests.SomeTestScene.FailingAssertStep() in /Users/smgi/Repos/osu-framework/osu.Framework.Tests/SomeTestScene.cs:line 14

---

  Failed FailingUntilStep [10 s]
  Error Message:
   "fail" timed out
  Stack Trace:
     at osu.Framework.Tests.SomeTestScene.FailingUntilStep() in /Users/smgi/Repos/osu-framework/osu.Framework.Tests/SomeTestScene.cs:line 26

Game-side tests passed ok, so here goes...


az arcdata dc export command is incorrect

Added the required parameters for the az arcdata dc export command

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

#please-close
Opening in private repo


Made blocks return to original position if trash is canceled

Thanks for submitting code to Blockly!  Please fill out the following as part of your pull request so we can review your code more easily.
The basics

[ ] I branched from develop
[ ] My pull request is against develop
[x ] My code follows the style guide

The details
Resolves
What Github issue does this resolve (please include link)?
#1210 from MIT AppInventor, in which blocks do not move back to their original position when the trash action is canceled.
https://github.com/mit-cml/appinventor-sources/issues/1210
Proposed Changes
Describe what this Pull Request does.  Include screenshots if applicable.
If a group of 3 or more blocks gets dragged to the trashcan, the dialog box for confirmation will pop up. If the user clicks "cancel", the block will jump back to the position it was originally dragged from.
Reason for Changes
Explain why these changes should be made.  Include screenshots if applicable.
The issue was brought up in AppInventor, and this will make the user experience better, as they will not have to reposition the piece
Test Coverage
Please show how you have added tests to cover your changes, or tell us how you tested it and on which platforms.
I tested the change on MIT AppInventor locally, and tested it by dragging blocks to the trashcan and checking if it moves back to its original position when the trashing is canceled. I also checked to make sure everything else still works.
Tested on:

[ ] Desktop:

[ x] Chrome
[ x] Firefox
[ ] Safari
[ ] Opera
[ ] IE 10+
[ ] IE 11
[ ] EDGE

[ ] Smartphone/Tablet/Chromebook (please complete the following information):

Device: [e.g. iPhone6]
OS: [e.g. iOS8.1]
Browser [e.g. stock browser, safari]
Version [e.g. 22]

Additional Information
Anything else we should know?

Seems to work well. LGTM. Thanks @hsun1316


Need updated code to refer for a custom image

Hi, @ukewea
I was wondering if you could please push the changes for the releases as seen here
I am trying to make custom image, with a lighter base image, but haven't been able to successfully install ta-lib library in my docker build yet.
Also if you could mention the source for ta-lib in the line COPY ta-lib ./ta-lib, thanks in advance.

Hi,
The Docker images are built on a regular basis, with my own x64 server and a Raspberry Pi 4, and I am sure that the Dockerfile used to build image on Docker Hub are identical to the on I published on GitHub.
Maybe you could list you build environment and issue you have encountered? as I can remember I once had an issue when building arm/arm64 image with qemu, that's why I build arm/arm64 variant with a Raspbery Pi 4 in the end.

No activity in last 14 days, I am closing this issue.

Just for a record here, the TA-Lib source code has been uploaded to the repo, the Dockerfile stayed the same.


docs: improve install page

This PR adds a few things that came up doing the Getting Started guides.  Better to put everything on the Install page and just link to that.

This PR was corrupted and I am closing it.


add support for env::home_dir

and a bit of cleanup

@bors r+

:pushpin: Commit d61e55a1d4f5c00e3f1b7ab025683f50a8c075d2 has been approved by RalfJung
It is now in the queue for this repository.

:hourglass: Testing commit d61e55a1d4f5c00e3f1b7ab025683f50a8c075d2 with merge 296fc5725b1d0acbcfa13cb1a1f710da71497b1d...

:broken_heart: Test failed - checks-actions

Wow, clippy can be quite annoying indeed... type-complexity really shouldn't be warn-by-default IMO.
@bors r+

:pushpin: Commit 889c073aa66049d28d7bb243cd9d774cfa96f4ae has been approved by RalfJung
It is now in the queue for this repository.

:hourglass: Testing commit 889c073aa66049d28d7bb243cd9d774cfa96f4ae with merge d6b750e48d5ec04b29e3f8897c288ac0b0fb52ff...

:sunny: Test successful - checks-actions
Approved by: RalfJung
Pushing d6b750e48d5ec04b29e3f8897c288ac0b0fb52ff to master...


imagemagick: 7.1.1-40 -> 7.1.1-41

Diff: https://github.com/ImageMagick/ImageMagick/compare/7.1.1-40...7.1.1-41
Changelog: https://github.com/ImageMagick/Website/blob/main/ChangeLog.md

Things done

Built on platform(s)

[ ] x86_64-linux
[x] aarch64-linux
[ ] x86_64-darwin
[x] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
25.05 Release Notes (or backporting 24.11 and 25.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

img2pdf shows some test failures: https://gitlab.mister-muffin.de/josch/img2pdf/issues/205


Adapting the RPKI Validation to the new single interval format

Due to the change of the time window format, the RPKI Validation did not work properly anymore or could not even compile.
@digizeph Be careful, please include the RPKI section in your testsuite to see if changes affect the code.

@salsh Thanks for the PR, I'll review it soon. In the mean time, could you give me some context on why you want to make the change? Is there some upstream changes that break the current version?
Thanks!

While I'm trying to install the required environment, I had the following error when making ROAFetchlib:
rpki_config.c: In function ‘cfg_create’:
rpki_config.c:72:46: error: invalid application of ‘sizeof’ to incomplete type ‘struct pfx_table’
   val->pfxt = malloc(MAX_RPKI_COUNT * sizeof(struct pfx_table));
                                              ^
rpki_config.c:74:5: warning: implicit declaration of function ‘pfx_table_init’ [-Wimplicit-function-declaration]
     pfx_table_init(&val->pfxt[i], NULL);
     ^
rpki_config.c:74:5: error: invalid use of undefined type ‘struct pfx_table’
rpki_config.c:74:30: error: dereferencing pointer to incomplete type ‘struct pfx_table’
     pfx_table_init(&val->pfxt[i], NULL);
                              ^
rpki_config.c: In function ‘cfg_destroy’:
rpki_config.c:123:5: warning: implicit declaration of function ‘pfx_table_free’ [-Wimplicit-function-declaration]
     pfx_table_free(&cfg->cfg_val.pfxt[i]);
     ^
rpki_config.c:123:5: error: invalid use of undefined type ‘struct pfx_table’
rpki_config.c: In function ‘cfg_parse_urls’:
rpki_config.c:191:5: warning: implicit declaration of function ‘pfx_table_src_remove’ [-Wimplicit-function-declaration]
     pfx_table_src_remove(&val->pfxt[i], NULL);
     ^
rpki_config.c:191:5: error: invalid use of undefined type ‘struct pfx_table’
rpki_config.c:212:9: error: invalid use of undefined type ‘struct pfx_table’
         if (cfg_import_roa_file(roa_arg, &val->pfxt[val->pfxt_count]) != 0) {
         ^
rpki_config.c:216:9: error: invalid use of undefined type ‘struct pfx_table’
         if (cfg_import_roa_file(roa_arg, &val->pfxt[0]) != 0) {
         ^
rpki_config.c: In function ‘cfg_add_record_to_pfx_table’:
rpki_config.c:358:7: warning: implicit declaration of function ‘pfx_table_add’ [-Wimplicit-function-declaration]
   if (pfx_table_add(pfxt, &pfx) == PFX_ERROR) {
       ^
Makefile:481: recipe for target 'rpki_config.lo' failed
make[4]: *** [rpki_config.lo] Error 1
make[4]: Leaving directory '/home/vagrant/src/ROAFetchlib/src/lib'
Makefile:521: recipe for target 'all-recursive' failed
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory '/home/vagrant/src/ROAFetchlib/src/lib'
Makefile:567: recipe for target 'all-recursive' failed
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory '/home/vagrant/src/ROAFetchlib/src'
Makefile:407: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/home/vagrant/src/ROAFetchlib'
Makefile:339: recipe for target 'all' failed
make: *** [all] Error 2

I have added LD_LIBRARY_PATH and CPPFLAGS for rtrlib. Also tried setting flags for configure.
VM OS Version:
vagrant@ubuntu-xenial:~/src/ROAFetchlib$ lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 16.04.5 LTS
Release:	16.04
Codename:	xenial

What was the output of $ ./configure CFLAGS='-L<path_to_librtr.so> -I<path_to_rtrlib_includes>'?
The configure should already check whether the RTRlib is passed properly.
Was the installation of the RTRlib successful without any errors? Was it installed globally or locally?

@digizeph it seems that the rtrlib header files include from rtrlib/lib so maybe something like this:
(also, -L takes a path, not a file as its argument)
./configure -L/usr/local/lib/x86_64-linux-gnu/ -I/usr/local/include

@salsh @alistairking Unfortunately, changing -L input to the directory, and using -I/usr/local/include doesn't resolve the problem. Same errors as before.
configure:3758: checking whether the C compiler works
configure:3780: gcc -L/usr/local/lib/x86_64-linux-gnu/ -I/usr/local/include/ /usr/local/include/rtrlib  conftest.c  >&5
/usr/bin/ld: cannot find /usr/local/include/rtrlib: File format not recognized
collect2: error: ld returned 1 exit status

Yes, I noticed the -L option should provide a directory but the documentation says otherwise. I really wish @salsh could  provide a default paths (commands) in the documentation for the ones that just do sudo make install for all of their dependent libraries. (Otherwise, users need to look up where the libraries and so are installed)

Somehow you're passing in /usr/local/include/rtrlib to some CFLAGS or CPPFLAGS or something. That's what is causing configure to break.

Just re-downloaded the repository, did a ./autobuild.sh and ./configure, same error:
configure:3758: checking whether the C compiler works
configure:3780: gcc  /usr/local/include/rtrlib  conftest.c  >&5
/usr/bin/ld: cannot find /usr/local/include/rtrlib: File format not recognized
collect2: error: ld returned 1 exit status

I think @alistairking is right about the extract /usr/local/include/rtrlib added to the configure.

@salsh My mistake. I added the /usr/local/include/rtrlib in my bash environment, causing the configuration trouble. After removing it, the configure can now pass without a problem, and I'm back to the make problem.
https://github.com/CAIDA/libbgpstream/pull/58#issuecomment-431927193
I have updated the config.log gist: https://gist.github.com/digizeph/2d7aaa5e58c56b874f097ea890f5fcce

Hm looks like the configuration is getting the includes directly but the make process doesn't. I think the CPPFLAGS should do the trick (without the rtrlib at the end):
$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib/x86_64-linux-gnu/
$ export CPPFLAGS=$CPPFLAGS"-I/usr/local/include"
$ ./configure CFLAGS="-L/usr/local/lib/x86_64-linux-gnu/ -I/usr/local/include"

@salsh unfortunately, that doesn't solve the problem. Without exporting the flags, the gcc already taks the correct input. Here is the output from make:
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I../.. -I../.. -I../../src/lib/utils -I../../src/lib/jsmn -L/usr/local/lib/x86_64-linux-gnu/ -I/usr/local/include/ -MT rpki_config.lo -MD -MP -MF .deps/rpki_config.Tpo -c rpki_config.c  -fPIC -DPIC -o .libs/rpki_config.o
rpki_config.c: In function ‘cfg_create’:
rpki_config.c:72:46: error: invalid application of ‘sizeof’ to incomplete type ‘struct pfx_table’
   val->pfxt = malloc(MAX_RPKI_COUNT * sizeof(struct pfx_table));

It already has the library and include paths in it.

I was able to reproduce the error. The reason for the error is the new release of the RTRlib. Sorry for the inconvenience. Please use the 0.5 release.

@salsh no worries! I'll use 0.5 release for testing this PR and get back to you soon.

Okay, thank you! I'll hopefully have it fixed in the very near future.

Now it should work with the latest release of the RTRlib.

@salsh Cool. I'll try it out soon.

@salsh everything works now. The PR looks good to me. I'll merge it now. Thank you for your contribution!

@salsh forgot to mention, I used the master branch of RTRLib instead of the release. apparently, there is no new release for the changes you made at the time when I tried to test it.


[Python] Bindings for FixedShapeTensorType.FromTensor/ToTensor and FixedShapeTensorArray.strides

Describe the enhancement requested
We added new methods to FixedShapeTensorType and FixedShapeTensorArray in https://github.com/apache/arrow/pull/34797. We want to be able to use them in Python as well.
Component(s)
Python

Do you have an example for which it would be useful to have the strides in python?

It would be useful when creating a numpy array from a non-trivially permuted FixedShapeTensorArray?


Wrong default param config in requests.model.Request.init

The default value here should be dict() as otherwise the config parsing below results in AttributeError: 'NoneType' object has no attribute 'get' if no config is passed.

This has bitten me today.
Kenneth, you setup config in Session. Some project might need to create Request objects without having to create a Session before. Maybe you should move config  setdefaults to the Request constructor.
Regards,
Miguel

The config default value as dict() seems to have been fixed in this commit. I believe those statements are equivalent to just having dict() as the default value, so I'm not sure why it's in this particular form.


Add special characters to stop list

This partially addresses https://github.com/clulab/eidos/issues/827 by adding % and ~ to the stop list since they are frequently picked up as entities.

may not be needed with #830 , FWIW

Let's try #830 and see how it works.  It will apply to any 1-character value, not just the two added here, and there are additional checks performed.  Please sound the alarm it you notice unforeseen consequences, @bgyori.


Add tags to SafeApp

Related with https://github.com/gnosis/safe-config-service/issues/486 and https://github.com/gnosis/safe-react/issues/3698

Enables serialisation and deserialisation of tags for a SafeApp
Serialisation is enabled IFF SAFE_APPS_TAGS_FEATURE_ENABLED is set to true

GET /v1/chains/<chain_id>/safe-apps

{
    "id": 1,
    "name": "OpenZeppelin",
    "tags": [
	    "tag1",
	    "tag2",
	    "tag3"
    ]
    ...
}

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

43 of 45 (95.56%)  changed or added relevant lines in 6 files are covered.
6 unchanged lines in 2 files lost coverage.
Overall coverage increased (+0.02%) to 88.671%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

src/common/models/backend/safe_apps.rs
0
1
0.0%

src/routes/safe_apps/tests/routes.rs
31
32
96.88%

Files with Coverage Reduction
New Missed Lines
%

src/routes/safe_apps/converters.rs
1
58.57%

src/common/converters/tests/safe_app.rs
5
60.76%

Totals

Change from base Build<PHONE_NUMBER>:
0.02%

Covered Lines:
11881

Relevant Lines:
13399

💛  - Coveralls


Broken links to git repo

E.g. at https://www.neos.io/download-and-extend/packages/sfi/sfi-news.html the links for the source code point to https://www.neos.io/download-and-extend/packages/sfi/git@github.com:dimaip/Sfi.News.git

Also images are targeting relative pathes on neos.io.
E.g. in https://www.neos.io/download-and-extend/packages/wwwision/wwwision-neos-mailchimp.html


Bug: Branch is broken, developers should control their code before sending.

Describe the bug
Bug: Branch is broken, developers should control their code before sending.
bor-encoding-and-http-connection-engine
db.go:1: : # github.com/surrealdb/surrealdb.go
./db.go:24:2: declared and not used: baseURL
./db.go:40:6: no new variables on left side of :=
./db.go:49:3: undefined: liveScheme
./db.go:56:19: undefined: connect (typecheck)
package surrealdb
internal/mock/mock.go:1: : # github.com/surrealdb/surrealdb.go/internal/mock
internal/mock/mock.go:12:9: cannot use w (variable of type *ws) as connection.Connection value in return statement: *ws does not implement connection.Connection (wrong type for method Connect)
		have Connect(string) (connection.Connection, error)
		want Connect() error (typecheck)
package mock
db_test.go:21:2: could not import github.com/surrealdb/surrealdb.go (-: # github.com/surrealdb/surrealdb.go
./db.go:24:2: declared and not used: baseURL
./db.go:40:6: no new variables on left side of :=
./db.go:49:3: undefined: liveScheme
./db.go:56:19: undefined: connect) (typecheck)
	"github.com/surrealdb/surrealdb.go"
	^
db_test.go:37:23: undefined: surrealdb (typecheck)
	db                  *surrealdb.DB
	                    ^
db_test.go:120:46: undefined: surrealdb (typecheck)
func (s *SurrealDBTestSuite) createTestDB() *surrealdb.DB {
                                             ^
db_test.go:131:86: undefined: surrealdb (typecheck)
func (s *SurrealDBTestSuite) openConnection(url string, impl connection.Connection) *surrealdb.DB {

       ^
db_test.go:635:74: not enough arguments in call to marshal.SmartUnmarshal[testUser]
	have (*invalid type)
	want (interface{}, error) (typecheck)
	_, err = marshal.SmartUnmarshal[testUser](s.db.Select("users:notexists"))
	                                                                       ^
db_test.go:653:5: not enough arguments in call to marshal.SmartUnmarshal[testUser]
	have (*invalid type)
	want (interface{}, error) (typecheck)
		}))
		 ^
db_test.go:663:5: not enough arguments in call to marshal.SmartUnmarshal[testUser]
	have (*invalid type)
	want (interface{}, error) (typecheck)
		}))
		 ^
internal/benchmark/benchmark_test.go:7:2: could not import github.com/surrealdb/surrealdb.go (-: # github.com/surrealdb/surrealdb.go
./db.go:24:2: declared and not used: baseURL
./db.go:40:6: no new variables on left side of :=
./db.go:49:3: undefined: liveScheme
./db.go:56:19: undefined: connect) (typecheck)
	"github.com/surrealdb/surrealdb.go"
	^
pkg/connection/connection.go:1: : # github.com/surrealdb/surrealdb.go/pkg/connection [github.com/surrealdb/surrealdb.go/pkg/connection.test]
pkg/connection/http_test.go:57:13: assignment mismatch: 2 variables but con.Connect returns 1 value
pkg/connection/http_test.go:57:25: too many arguments in call to con.Connect
	have (string)
	want ()
pkg/connection/ws_test.go:36:14: assignment mismatch: 2 variables but con.Connect returns 1 value
pkg/connection/ws_test.go:36:26: too many arguments in call to con.Connect
	have (string)
	want () (typecheck)
package connection
pkg/logger/slog_test.go:1: : # github.com/surrealdb/surrealdb.go/pkg/logger_test [github.com/surrealdb/surrealdb.go/pkg/logger.test]
pkg/logger/slog_test.go:39:12: undefined: New (typecheck)
package logger_test```

### Steps to reproduce

https://github.com/golangci/golangci-lint

### Expected behaviour

No lint errors.

### SurrealDB version

non-releated

### Contact Details

<EMAIL_ADDRESS>
### Is there an existing issue for this?

- [X] I have searched the existing issues

### Code of Conduct

- [X] I agree to follow this project's Code of Conduct

Hi @ElecTwix . Is this breaking any existing flow? This should be resolved. A PR to the master branch will also be created shortly

Hi @remade, First, thank you for maintaining the Go SDK.

Was this breaking any existing flow?

No, it is not, but for the sake of the go SDK, we should check the linting error before committing to the official repo. If you want to work as a draft, we should do that by forking the official repo and doing it there.


Notebook to visualize gini coefficient

looking to see how the gini coefficient in BC compares to Canada as a whole as well as Atlantic Provinces, QC, ON, Prairie (not including AB), AB.
Reference period 1990-current.
Income concepts: adjusted market income, adjusted total income, adjusted after-tax income.
The data sets are here: https://www150.statcan.gc.ca/t1/tbl1/en/cv.action?pid=1110013401.
You can download a CSV with the data mentioned above.

@Maralsotoudehnia a notebook was added in this repo. To view it, you can go to: https://nbviewer.jupyter.org/github/bcgov/cas-notebooks/blob/e406ccdaf9007881aabf6fa5fe2ffe32d3e7fe87/CanadaGini.ipynb
The notebook view shows all of the code needed to produce the plots, which allows easy reuse and peer review.
If you want to only share the plots, you can export png images by hovering on them and clicking on the camera icon

Note that the data did not have a series for the "Prairie provinces without Alberta", as asked in the issue.

Nice work @matthieu-foucault! Thanks!


Add Templates to the Stories Post Type Admin Dashboard Menu

Feature Description
Initially requested in this issue, adding templates to the Stories Post Type Admin Dashboard Menu would improve discovery and use:

The structure seems a bit strange to me, and I would expect templates to be part of the add new also, since that is the normal route in WordPress, or at least the templates should be part of the stories admin menu too, making it directly visible as an option. Normally with a custom post type I would expect add new to be a starting point for creating stories and the "all stories" to give access to the list. It seems that the dashboard tries to combine that in a more visual interface, but then it probably should replace the others, or add the templates too in the menu. And how am I expected to go from the dashboard to viewing stories on the frontend?
When templates is a way to add new stories based on prefabricated stories, it should in some form be part of the add new story dialogue. Something like: 1. Choose add new. 2. Get to select a template (or a blank canvas) 3. edit the content.
Anyway, except for missing an option to see stories in the frontend, the dashboard seems pretty complete, so probably most of the time the other menu-items will not be needed. On a system with long response times eliminating steps (page loading) would be helpful.

(@hansschuijff does this capture your request or were there other alternatives we should consider?)
Alternatives Considered

Additional Context

Do not alter or remove anything below. The following sections will be managed by moderators only.
Acceptance Criteria

Implementation Brief

I recommend closing this in favor of #2750, and mentioning this suggestion there.

@ernee Yes, that is as far as I was with my suggestion. Mostly templates could be a part by itself, but should imo also be part of the add new flow, making it obvious for those of us that are not aware of the fact that templates is actually another startingpoint for adding new stories, but then based on a template. When the intention is to add a story, probably I would choose add new, expressing my intention to add a new story, and then would like to have the option to select on what template I would base that.
The other thing works too, but expects users to know the alternative workflow. Probably most users would like to start of with a template since that offers some default styling and some inspiration. So add new should respect that probable route and not assume users want to start of with a blank canvas.
I would probably just call the list of templates add new and make a default empty template as first template for people who want that. In that way having a separate route without templates is not needed. That route is actually the equivalent of starting with an empty template.
And than the menu-option to templates could be a template maintenance option, offering to update and save a template instead of creating a new story based on a template. Probably mostly the same page, but with different intention.
I don't know if that would be preferable, but it would probably my approach in this.
Thanks for picking this up.

@hansschuijff very valuable feedback. As @swissspidy mentions, it looks like there is an open related issue: https://github.com/google/web-stories-wp/issues/2750. I will close this one and refer to your feedback here for more perspective/ context. Thanks again for raising this!


need help with adding pushback labels

I tried to add pushback labels so that we can go through the PRs I sampled for pushback survey. Now I can get the labels to appear on the page and the comment in mongoDB is also updated. But the parent PR in mongoDB doesn't seem to get updated...

Can you confirm that this is still an issue after the major refactoring last week?


Dropdown: Style tab

Ref original issue: https://github.com/carbon-design-system/carbon-website/issues/3363
Style tab PDF comments: https://ibm.box.com/s/4ea8cbexk5vfme5rijvncn1xbmyntslf

Main items to update

Placeholder text: Remove placeholder text from enabled states for all dropdown variants in images and table content. For Multiselect/Filterable Multiselect, keep the word "Options" in the field for the selected states.
Focus states and highlighting:  We have changed our focus states to resemble the following spec in this GitHub discussion to accommodate for when the menu has focus and an item in the list is active/selected. (*Note: Update any images to reflect this change throughout the page.)
Multi-select tag focus states: Add content/images for these wherever appropriate.

Update from Dev: Updating fields in Dropdown to have no placeholder text is considered a breaking change and can not be implemented right now in code.

Created a separate issue to tackle the removal of placeholder text https://github.com/carbon-design-system/carbon-website/issues/3662

To resolve this issue, I connected with @mbgower, and after our discussion, we confirmed that all of his comments were addressed and fixed during the previous dropdown discussion. The updates have been made accordingly.
I'm closing this issue as completed, and I’ve documented the solution for each of his comments in the Figma file as well.


fix: update the method for importing the nunjucks filter dependency

Changes Added.

Updated the method for importing the Nunjucks filter dependency

Related issue(s)
Related to: https://github.com/asyncapi/generator/issues/1044

/rtm

@asyncapi/bounty_team

/bounty


Encoding::CompatibilityError when using marshal => true

When using marshal, I sometimes receive this error: Encoding::CompatibilityError (incompatible character encodings: UTF-8 and ASCII-8BIT).
Here's the same issue on redis-store: https://github.com/redis/redis-rb/issues/128
How it got fixed: https://github.com/shingara/redis-store/commit/113d6e6a9f259d9095c103e0dcf3982e986ce8f7
I could prepare a pull request if you are interested.
I'll wait for your feedback.
Thanks

This is still a problem as of v1.2.0 when using a UTF-8 key with marshal: true

I'll be honest, I'm not an encoding expert at all.  What are the implications to existing keys of forcing encoding on every key?  Would existing ASCII keys continue to work as expected?

My very specific fix was to call force_encoding to make the UTF-8 keys ASCII. In limited testing, this appeared to preserve existing ASCII keys.


Questions on statistics

I've been trying to wrap my head around the overall process and understand the numbers associated. The questions below are things that I can't figure out:

Why are the CleanEval results different for the Java & Python implementations if it's the same algorithm?
The Phase 1 stats are inconsistent. The text says 22 hours, but the pasted log says 10.5 hrs.
The Phase 1 log says there were 34901 map tasks, which is suspiciously close to the number of files in the CC-MAIN-2016-07 crawl, not the 2015-48 crawl. Are these stats for a different crawl than the others?
Phase 1 mapper output records is 1.1 billion which is significantly lower than the 1.73B (or 1.82B) URLs listed for the crawl. That seems like too big a difference to be accounted for by content type filters (or is my perception wrong?). Is it known what factors contribute to this delta?
The paper says that the there were only ~1% duplicates in the Common Crawl, but the Phase 2 reducer (exact duplicates filter) appears to have only output 39% of the input records (ie it filtered 60%+). Am I misunderstanding the stats or is this the actual number of exact duplicates.
The Phase 1 stats seem to indicate that a significant amount (40%) of time was spent in the shuffle phase, but it doesn't look like the reducer actually does anything. Could Phase 1 be implemented as a map only job? Conversely, could Phase 1 & Phase 2 be merged so that the reducer actually does useful work?
The Phase 3 Step 3 stats for Tuples Creation (36 hrs, 7104 normalized instance hours) seem to indicate that very few instances were used for this phase. Is that an accurate observation? Would more instances reduce the elapsed time?
Are there stats on how many near-duplicate documents were eliminated in Phase 3/4?

Thanks for any answers/insights you can offer!

Why are the CleanEval results different for the Java & Python implementations if it's the same algorithm?

As far as I remember, Python has a library for parsing HTML which has no direct equivalent in Java; so it's only an approximation (maybe @OmniaZayed can say a word?)

The Phase 1 stats are inconsistent. The text says 22 hours, but the pasted log says 10.5 hrs.
The Phase 1 log says there were 34901 map tasks, which is suspiciously close to the number of files in the CC-MAIN-2016-07 crawl, not the 2015-48 crawl. Are these stats for a different crawl than the others?
Phase 1 mapper output records is 1.1 billion which is significantly lower than the 1.73B (or 1.82B) URLs listed for the crawl. That seems like too big a difference to be accounted for by content type filters (or is my perception wrong?). Is it known what factors contribute to this delta?

I was copy&pasting output from the 2016-07 (!!) crawl processing, it will be cleared later (I had some other article deadlines but was curious to run it on the new crawl); I don't have Hadoop logs for the 2015 crawl as reported in the article.

The paper says that the there were only ~1% duplicates in the Common Crawl, but the Phase 2 reducer (exact duplicates filter) appears to have only output 39% of the input records (ie it filtered 60%+). Am I misunderstanding the stats or is this the actual number of exact duplicates.

I have to investigate that deeper...

The Phase 1 stats seem to indicate that a significant amount (40%) of time was spent in the shuffle phase, but it doesn't look like the reducer actually does anything. Could Phase 1 be implemented as a map only job? Conversely, could Phase 1 & Phase 2 be merged so that the reducer actually does useful work?

Yep, reducer now does nothing in Phase1. Phase1 & 2 can be easily merged (as the work is done in Mapper in Phase1 and duplicates are removed in Reducer in Phase 2). We wanted to keep them separate thought for getting statistics of exact match.

The Phase 3 Step 3 stats for Tuples Creation (36 hrs, 7104 normalized instance hours) seem to indicate that very few instances were used for this phase. Is that an accurate observation? Would more instances reduce the elapsed time?

As I experimented with different number of instances and also different price for spot instances, this was a bit fiddling around... I might do proper measurement for the 2016-07 crawl.

Are there stats on how many near-duplicate documents were eliminated in Phase 3/4?

not yet, maybe later for the 2016-07 data

Why are the CleanEval results different for the Java & Python implementations if it's the same algorithm?

Yes, as Ivan said, but not only due to the different library to parse the HTML page into DOM but also due to the library used to divide the page into paragraphs.
The python implementation use a library to convert  a HTML page represented as a DOM object into a list of paragraphs which is called "lxml.sax". This library controls how the HTML page will be segmented into paragraphs. Since Java doesn't have a similar accurate library, we had to implement a similar way to traverse the HTML page and render the paragraphs. These paragraphs will be classified further as good or bad text and each paragraph will take into account the classification of its neighbour paragraphs.

Thanks for the quick answers! I'll leave this open to learn the results of
the exact duplicates investigation, but I'm happy with everything else. One
of the reasons I'm interested in the times is that time/cost is one of the
questions that people always ask about CommonCrawl, so it's nice to have
some example data points that people can use.
A couple suggestions:

converting the Phase 1 job to a map-only job would allow you to keep
things separate without wasting the 4+ hrs that the shuffle phase required.
That would cut processing time almost in half.
If you do decide to combine Phase 1 & Phase 2, you can use Hadoop
counters to output interest stats, like the number of exact matches.
context.getCounter(EXACT_MATCHES).increment(1L)

Thanks again for the fast response.

In case it's helpful, here are some stats from a sample segment that I was testing hashing code on:
154,000 total WARC records
32,695 HTTP response with non-empty text after boilerplate extraction (21% of total)
17,284 empty responses after extraction (not included above)
1,442 with non-HTML/text content type (not included above)
19,704 exact duplicates (60% of texts) in 6,216 sets, 139 pages in biggest set of duplicates, 63 in 2nd biggest
1,236 near duplicates (Hamming dist < 3)
Even though it's only a single segment that I'm testing with, so could obviously be skewed, the numbers track fairly closely with those from the full 2016-07 crawl.
One thing I still need to verify is that the "exact duplicates" from the Simhash comparisons really are identical to make sure there are no errors in my hashing.

Intersting findings Tom, thanks! It shows that exact duplicates after boilerplate removal are more common (60%), while near duplicates are a minor problem (10% of the remaining ones). Still lots of duplicate texts, though.


[Material] Remove "down position" from toggleable ripple calculation

Before
After

Pre-launch Checklist

[ ] I read the Contributor Guide and followed the process outlined there for submitting PRs.
[ ] I read the Tree Hygiene wiki page, which explains my responsibilities.
[ ] I read and followed the Flutter Style Guide, including Features we expect every widget to implement.
[ ] I signed the CLA.
[ ] I listed at least one issue that this PR fixes in the description above.
[ ] I updated/added relevant documentation (doc comments with ///).
[ ] I added new tests to check the change I am making, or this PR is test-exempt.
[ ] All existing and new tests are passing.

If you need help, consider asking for advice on the #hackers-new channel on Discord.

CC @guidezpl @QuncCccccc - I realize that this issue came up just recently. Can you-all check this PR's proposal, it still seems sensible to me to change this part of the checkbox's highlight, at least when responding to pointer (not touch) events.

Hmm, looking at the GIFs more carefully, the circle outline seems to get darker for one frame and then return back to being its normal shade of grey. This happens in both GIFs, but is more consistent in the first one.

@whiskeyPeak - I can see that as well and it's possible it's related to https://github.com/flutter/flutter/pull/111112. Appreciate it if you'd verify the problem on the master branch and file an issue if needed.


Wrong styles on selection

Ahh, got it, syntax styles != ui styles. Moved to light syntax theme.
Awesome job, btw!


Task.andThenWithResult proposal

Hello, I found no way how to do:
if task succeed then do task2
else if task failed then do task3

Someting like:
andThenWithResult : (Result x a -> Task x a) -> Task x a -> Task x a

Any ideas?
EDIT: Also I'm searching for andThenAlways that will do a task regardless if the task failed or not.

use andThen then onError

andThenWithResult : (Result x a -> Task x a) -> Task x a -> Task x a
andThenWithResult next task =
    task
        |> Task.andThen (\a -> next (Ok a))
        |> Task.onError (\x -> next (Err x))

or with function composition,
andThenWithResult : (Result x a -> Task x a) -> Task x a -> Task x a
andThenWithResult next =
    Task.andThen (Ok >> next)
        >> Task.onError (Err >> next)

@avh4 I think that there is following problem:

task succeed
andThen calls nextTask
nextTask fails
onError calls nextTask second time?

onError calls nextTask second time?

next is only executed once.

Task.andThen only does something if the previous task was successful.
Task.onError only does something if the previous task failed.

ah yeah, I think you're right @pravdomil   I think this could be solved still somehow using andThen/onError, but you'd also wrap the error in another Result so you could tell the difference between the original task failing and next failing.   Since I don't quickly have the answer at hand for that,  would you mind posting your question on Discourse https://discourse.elm-lang.org/ or asking in Elm Slack as noted by the bot "Ask questions a community forum. You will get an answer quicker that way!"

Thanks for feedback
I will leave the issue open
I think that it can be common code pattern and easy to miss the right implementation

I think this will do what you are asking for:
toResult : Task x a -> Task y (Result x a)
toResult task =
    Task.map Ok task
        |> Task.onError (Task.succeed << Err)

andThenWithResult : (Result x a -> Task x a) -> Task x a -> Task x a
andThenWithResult next task =
  toResult task
      |> Task.andThen next

@albertdahlin I think that works.
There is small typo at first line : Task x a -> Task y should be : Task x a -> Task x?
I endup using:
andThenWithResult : (Result x a -> Task x a) -> Task x a -> Task x a
andThenWithResult next a =
    a
        |> Task.map Ok
        |> Task.onError (Err >> Task.succeed)
        |> Task.andThen next


Functionality of array input (multiple)

Hey,
is there a way, to use the polaris formbuilder with multiple: true?
So I would like to allow the user duplicating an input field, which gets saved in an array.
On normal rails form_with function, I can add multiple: true to the input field, but it looks like this does not work with the polaris formbuilder

Yes, try passing it via input_options:
form.polaris_text_field :input_name, input_options: { multiple: true }

@kirillplatonov amazing. Works like a charm. Thank you very much


skin versions don't show up

skin weight versions aren't showing up. Might be a Maya 2022 thing

This is working.  No fix needed


Bugfix/post onboarding banner close button

📝 Description
The post onboarding hub banner had a positioning issue for the close button, so in case some content was displayed above the banner, the button would be positioned outside of the post onboarding banner:

The existing playwright tests were already taking screenshots of the banner, but not in an environment where there would be content above the banner, which is the breaking case.
This fix includes a change of userdata in the post onboarding test so that there's actually content around the banner.
❓ Context

Impacted projects: ledger-live-desktop
Linked resource(s): ``

✅ Checklist

[x] Test coverage
[x] Atomic delivery
[x] No breaking changes

📸 Demo

🚀 Expectations to reach
Please make sure you follow these Important Steps.
Pull Requests must pass the CI and be internally validated in order to be merged.

/generate-screenshots

/generate-screenshots

/generate-screenshots

/generate-screenshots

/generate-screenshots


⚠ Samsung has degraded performance

In 6637317, Samsung (https://samsung.com) experienced degraded performance:

HTTP code: 200
Response time: 2474 ms

Resolved: Samsung performance has improved in 85bbe03.


Why a self-signed certificate is claimed 'for testing purposes only' in this particular case?

I'm trying to understand, why this page explicitly states that self-signed certs are not recommended for this particular scenario - Service Principal auth.
Does AAD really care about who signed the certificate I'm uploading? Does it do any kind of extra validation of that? If yes, what kind of validation is that and how does it work exactly?
If not, then why keeping this remark in the doc?
Again, to underscore: I'm talking about this particular scenario of using certs and trying to understand the underlying AAD logic. This has nothing to do with generic talks about how bad self-signed certs are in general.

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

ID: 11aaa091-1108-52f6-0066-0f4e939aeef4
Version Independent ID: dbc7e37e-87a7-c124-3e4c-47aa060e6cf3
Content: Create an Azure AD app & service principal in the portal - Microsoft identity platform
Content Source: articles/active-directory/develop/howto-create-service-principal-portal.md
Service: active-directory
Sub-service: develop
GitHub Login: @rwike77
Microsoft Alias: ryanwi

@scale-tone
Thanks for your feedback! We will investigate and update as appropriate.

@scale-tone
Thank you for pointing this out!
When it comes to this specific instance, it seems like the "for testing purposes only" comment, is mentioned because the actual cmdlet New-SelfSignedCertificate, creates a self-signed certificate for testing purposes. Using the CloneCert parameter, a test certificate can be created based on an existing certificate with all settings copied from the original certificate except for the public key.

I hope this helps! If you have any other questions, please let me know.
Thank you for your time and patience throughout this issue.

@JamesTran-MSFT , so basically you confirmed my suspicion, that AAD doesn't differentiate self-signed vs. CA-signed certs in any way, thanks for that.
Now it's a matter of figuring out the difference between 'test self-signed vs. non-test self-signed' certs.
My guess is that New-SelfSignedCertificate cmdlet is only stamped with that label because it is primarily used for generating SSL/TLS certs (in which case self-signed is indeed for testing purposes only). Would you agree that for the usecase we're talking about this remark doesn't make much sense then?

@scale-tone
Thank you for the quick and detailed response!
I've created a PR to remove the "for testing purposes only" remark and it's currently waiting for the author to review and sign off.
I will now close out this issue. Please allow some time for the author to review and the changes to reflect.
Thank you for your time and patience!


scatter with one point does not show in offline plots

In Matlab 2015b:
scatter(1, 1)
p = fig2plotly(gcf, 'offline', true, 'strip', false)
p.data{1}.x = [p.data{1}.x, p.data{1}.x]
p.data{1}.y = [p.data{1}.x, p.data{1}.y]
p.plotly

The first plot does not show any data points. Duplicating the data point, then calling p.plotly again forces the point to show.

Actually it seems like the offline conversion of a scatter plot in matlab just does not show the first point in the scatter plot.

This problem persists even when plot is used:
plot(1, 1, 'v')
p = fig2plotly(gcf, 'offline', true, 'strip', false)


Driver Monitoring Camera Exposure - Request 9075

Describe the bug
During drive (Right Hand Drive) unit will consistently display either 'No Face Detected' or 'Driver Model Input Uncertain' causing 'Touch Steering Wheel' prompt and mode disengagement, appears to be error in exposure of driver monitoring camera while using Right Hand driver mod. Driver camera indicator will flicker consistently
How to reproduce or log data
Unit will show these errors frequently during driving in all conditions
Expected behavior
Driver camera with correct exposure able to accurately identify face of driver while in Right Hand driver mode
Device/Version information (please complete the following information):

Device: Comma2
Dongle ID: 7e6bdbe1cef85fea
Route: 7e6bdbe1cef85fea_2020-12-08--19-35-11--0
Timestamp: All
Version: 0.7.8, 0.7.9, 0.7.10, 0.8
Car make/model: Toyota Rav4 Hybrid 2020

Additional context
Australia based with Right Hand drive engaged. Unit will consistently fail to recognize face of driver causing mode disengagement. When troubleshooting, unit has no problem identifying face of person in left hand seat. Driver camera indicator will flicker between steady and nothing observed during engagement
Driver segmet
7e6bdbe1cef85fea_2020-12-08--19-35-11--0--dcamera.zip
Attached pictures demonstrate the difference in exposure in Left and Right hand modes

https://github.com/commaai/openpilot/commit/fef8d4093f1ebf6ad91c6bac95c465c83ee7e396
should be fixed in next release! thanks for reporting!

Thanks!


HyperExpress doesn't support very useful next function in its methods

Code similar to #197 but entirely different issue:
import express from 'express';
import HyperExpress from 'hyper-express';

const USE_HYPER_EXPRESS = true;

const app = USE_HYPER_EXPRESS ? new HyperExpress.Server() : express();

app.get('/', (req, res) => {
    res.send('Hello World!');
});

app.get('/:name', (req, res, next) => {
    if(req.params.name === 'tester') {
        return next();
    }
    res.send(`Hello ${req.params.name}!`);
});

app.get('/:name2', (req, res) => {
    res.send(`Greetings, ${req.params.name2}.`);
});

if(USE_HYPER_EXPRESS) {
    app.listen(3001)
        .then(() => {
            console.log('Listening on port 3001');
        }).catch((err) => {
            console.error(err);
        });
} else {
    app.listen(3001, () => {
        console.log('Listening on port 3001');
    });
}

If you use express:

Going to localhost:3001/test will return Hello test!
Going to localhost:3001/tester will return Greetings, tester.

If you use hyper-express:

Going to localhost:3001/test will return Hello test!
Going to localhost:3001/tester will return HyperExpress: Uncaught Exception Occured (TypeError: next is not a function)

I see, so this behavior seems to occur because Express allows usage of overlapping routes while uWebsockets.js the underlying performant webserver that powers hyper-express will serve the first route it matches natively.
With that said, adding support for this should not be too difficult given hyper-express can simply match overlapping routes, then execute the first one and provide a next() iterator which lets you chain multiple routes similar to middlewares throughout the request lifecycle.
I will begin exploring an implementation for this feature and potentially have it rolled out soon.

Closing for now as addressed in #197

Hi, are you still working on this? I don't believe this and #197 should have been closed since they're ongoing issues. These issues are one of the biggest roadblocks in using this library, would be really nice to see these reopened and fixed.


Webhook - (En/Dis)able hook based on action "location" (Frontend vs API)

Issue type
[X ] Feature request
[ ] Bug report
[ ] Documentation
Environment

Python version:  3.4
NetBox version:  2.4-dev

Description
Looking at the webhooks implementation, it appears that it will fire on either a web or api call.
It would be a nice feature to be able to action on only one or the other.
As discussed in slack, this would require a workaround for the Django signals functionality not carrying context. (https://networktocode.slack.com/archives/C3DQ6MZ0Q/p1528320359000565)

Can you provide a use case for this? Typically I'd think you'd want to know about the change regardless of the interface via which it was executed.
(FYI: The NetworkToCode Slack only retains history for a couple days.)

Closing due to lack of activity.

Sorry, I completely missed this.
I could see a couple use cases where you may want to enable/disable based on what you are doing:

Importing data or updating into netbox through the API with something like Ansible, where you might have the GUI portion firing off webhooks to do stuff in ansible or similar
Updates on the front-end (import, add, edit, whatever), fires a webhook which does stuff which then writes back to the API (this could fire off the webhook again)


Search Filters for devices are not working in group detail page

Description:
Search filter which is in the Group detail page is not working. This is only reproducible in the group details page. Search filter in other pages is working as expected way.
Affected Product Version:
IoTS 3.3.0, IoTS 3.3.1
OS, DB, other environment details and versions:
H2, MySQL

This is fixed in the latest release of the IoTS


wrong download link in latest release (<IP_ADDRESS>.2) description

https://github.com/szepeviktor/w3-total-cache-fixed/releases/tag/<IP_ADDRESS>.2 description includes "Download Link: w3-total-cache-fixed-(for-v0.9.5.x-users).zip" which refer to old version <IP_ADDRESS>.4 instead of <IP_ADDRESS>.2. Link in the "Downloads" section at the bottom of the page refers to correct version, though.

Thanks, fixed.


[DoNotMerge] [CompilerPerf] All your collections are belong to us

This PR will be continually rebased off #2745.
It is not expected to ever be pulled into the main line, but rather this is just testing conformance and performance of Seq by changing the List.* and Array.* functions to Seq functions within the compiler (and beyond maybe.)

@dsyme
I'm getting wild variations in times of the build server; but when I kick off this at about the same time as #2587, I appear to be getting faster builds with this branch. This wasn't really to be expected, as this was more just a test that the Seq functions were not too much worse that directly using the List functions, but in the process I am making some things lazy that previously weren't, so it is possible that this may be faster? (i.e. doesn't have to iterate all lists completely, plus saving on garbage)
Anyway, might all be just random luck on the build server - do you have any more consistent figures on this builds timings?
(Even if it isn't, I'll continue to convert more of it over to Seq; as it will help if I do do any final optimizations in ISeq land...)

I'm getting wild variations in times of the build server; but when I kick off this at about the same time as #2587, I appear to be getting faster builds with this branch. This wasn't really to be expected, as this was more just a test that the Seq functions were not too much worse that directly using the List functions, but in the process I am making some things lazy that previously weren't, so it is possible that this may be faster? (i.e. doesn't have to iterate all lists completely, plus saving on garbage)

I think it's better to keep the use of Seq in the compiler  as a separate branch (on top of this one) so we can measure that independently?  I'd hate there to be some problem where there is either a performance problem or semantic change and we have to dig back through this PR to find it

@dsyme
This already is a seperate branch 😀 I have three on the go. This is just a test branch really...

This already is a seperate branch 😀 I have three on the go. This is just a test branch really...

Oh, great, yes, I hadn't noticed.  Thanks for doing it this way.

Don't think I will continue with this experiment. I have just been modifying as many things to seq as I can without too much effort just to make sure that it still works OK. I wasn't really expecting this to be any more performant that it previously was, I wasn't being particularly targeted in my approach, just going to whatever I could do en masse, but this meant that in many (most?) cases all I was doing was removing an existing optimized path for one that needs to do casting and creating more objects. But I am interested to see what the actual performance vs original was so if those figures could be produced at some stage then I'd be happy...
And I'll leave this around for a little while, as I might do some lower level work and see if any performance changes ripple up, or if I damage performance...

Bit of a mess rebasing here; but we'll see if it survives... Not that I care too much about this branch, but nice if it remains green... we'll see...

This was just a temporary PR for testing, so closing.


Migrating comments from WordPress

This project looks awesome, using Github issues for comments is a great idea! I'm considering switching from WordPress to a static website (perhaps using GitHub Pages), and I was wondering: is there a way to import WordPress comments using Utterances?

If you are asking about a way in general, WordPress gives you an ability to export your comments in parseable format, so using the GitHub API you could add the comments, enhancing their comments with metadata (e.g. time when it was placed or the commenter name).
In a case you are looking for a complete solution, I don't know any, but I also didn't migrate my comments, so maybe there is such as script and someone else will suggest it to you.

Hi @szpak, thanks for your quick answer. Yeah, I guess I could import them using the Github API. Not sure what it would look like, though... The comment would be posted by me, with just a note showing the original commenter name? Would Utterances be able to interpret this note and display the commenter name accordingly?

Oh! Feature idea: support for YAML Front Matter in comments. The Front Matter could contain metadata (e.g. original comment date and commenter name), and Utterances would read these metadata and display the correct date and name.
(Sorry, I haven't even used your project yet and already I'm suggesting new features... Maybe it's a bit premature!)

It seems that the comments are displayed as is using data from GH and it could be needed to display author and date as a part of the message itself.
However, I started using Utterances a week ago and I have just one comment, so I'm also just a beginner in that area. @jdanyow is a person who could answer credibly to your question.

I realize now that it wouldn't really make sense. In WordPress, a comment can be a reply to another comment, and appear as such. Github issues don't support that.

I realize now that it wouldn't really make sense. In WordPress, a comment can be a reply to another comment, and appear as such. Github issues don't support that.

Yes they do. This is one!

Yes they do. This is one!

Yes, but you just quoted my message. Your reply doesn't explicitly appear as a reply to mine, iow you didn't start a new "thread" off my message.

Yes they do. This is one!

Yes, but you just quoted my message. Your reply doesn't explicitly appear as a reply to mine, iow you didn't start a new "thread" off my message.

OK, thank you!

I've created a quick and dirty python script to import wordpress comments https://github.com/aothms/wordpress-to-utterances


Support editable installation

pip help:

Install a project in editable mode (i.e. setuptools "develop mode") from a local project path or a VCS url.

As I see, this is not possible now with the virtualenv-api.
I tried env.install("-e /path/to/module"), but it raised an exception.
(virtualenv-api==2.1.9)
BTW this package is pretty cool :)

Thanks for picking this up. Version 2.1.10 is now available on pypi which fixes this.
>>> env.install('-e git+https://github.com/stephenmcd/cartridge.git')

(or any other valid URL/path)

Wow, thx for the quick response and release.


[editor]: Support gradle in preview

Please add support for .gradle files to the editor preview.
Generated by adamraichu.zip-viewer

Thanks a lot for the fast response!


First keypress not working

Describe the bug
Hi there! I came across an annoying issue with the initialization of my inputs. It seems like the inputs won't let you write the first character you enter in them the first time you type in them.
To Reproduce
Steps to reproduce the behavior:

Go to https://codepen.io/zhorton34/pen/zYvWZYz
Click on any input
Type only one character. Nothing happens. Type again, characters now show.

Expected behavior
Should display first keypressed character
Desktop (please complete the following information):

OS: Windows
Browser Chrome
Version 86.0.4240.183

Closing ticket ~ new merge request fixes this bug thanks to @vaugenwake
See pull request for more details
https://github.com/zhorton34/vuejs-form/pull/21


Transition Agent Pools from Windows-2019TLS -> Windows-2022TLS

In a bunch of our repositories, we have the following platform configs:
      "windows-2019": { "OSVmImage": "MMS2019TKS", "Pool": "azsdk-pool-mms-win-2019-general" },

Needs to shift to be
      "windows-2022": { "OSVmImage": "MMS2022TLS", "Pool": "azsdk-pool-mms-win-2022-general" },

However. However, before this happens, we need to move some of the cores that we currently allocate to the windows-2019 pool to a NEW pool for the 2022 machines. When that happens, we will need to PR the adjustments in each language repository to shift to consume that new pool.
This will be a balancing act, as as each repo transitions, the load on the previous pool will lighten commensurately.

[ ] azure-sdk-for-java
[ ] azure-sdk-for-net
[ ] azure-sdk-for-js
[ ] azure-sdk-for-python
[ ] azure-sdk-for-go
[ ] azure-sdk-for-cpp
[ ] azure-sdk-for-c
[ ] azure-sdk-for-ios
[ ] azure-sdk-for-android

As part of this we should move to windows 2022 Compliant image instead of TLS.


CPU high usage for supervisor

When I run 'supervisor ./bin/www' , The node CPU usage become over 100% after supervisor run.

When I run node ./bin/www the cpu usage is low.

> node -v
v5.2.0

Try with this option:
 --poll-interval 5007

@petruisfan I add the option but still high cpu usage.

Is node_modules or bower_components inside the folder you are watching?

@petruisfan  , I think so, How can i ignore them?

-i node_modules,bower_components


Any easy way to change the behaviour when parsing alpha_num pattern string?

Currently, an alpha_num pattern string (for example, x2 , y3, T21) would be interpreted as 'pow(alpha,num)'.
Is there any way to change the default behavior?
I wanna interpret 'x2' as a variable, whose name is 'x2'. Then interpret x^2 as 'pow(x,2)'.
Here are some cases in my situation:
k * x+b                                  interpreted as                         (x,k,b)=>k*x+b
A1 * t1+A2 * t2+A0                 interpreted as                        (A1,t1,A2,t2,A0)=>A1*t1+A2*t2+A0
exp(-t/T)+bias ^ 4                       interpreted as                  (t,T,bias) => Math.Exp(-t/T)+Math.Pow(bias,4)

Yes, you need to enable explicit parser in MathS.Settings

Any demos or docs about how to? @WhiteBlackGoose

Ah no, I was wrong. The docs are here, but a2 will probably be interpreted as wrongly written a^2 and throw an exception. If that's the case, use _ as a delimiter between the variable and the index, e. g. a_2.

In my situation, there are several proper nouns like T23, T24, T25.

T_23 is legal

I got it!


[boost] bugfix and new features after update to 1.77.0

Allow to disable compression filters for iostreams. Examples:
vcpkg install boost-iostreams[core]
vcpkg install boost-iostreams[core,zlib]
vcpkg install boost-iostreams[core,zstd]
vcpkg install boost-iostreams[core,lzma,zstd]
etc.

Fixes #20417
Fixes #20508

boost-odeint also depends on boost-mpi. Could you please remove it from boost dependency list?

Done.

Maintainers please re-run CI on this.

Done.


Updates opts to options in documentation

Updates existing uses of the .opts method to the .options method, significantly simplifying many examples.

@philippjfr Grepping /examples for .opts(, the only notebook left with an inappropriate .opts is sri_model.ipynb which fails at the end with an exception. As far as I can tell, all the other notebooks are now updated.
Not sure why the tests are failing. I see some display test failures but these example notebooks aren't tested and I haven't touched them here. Transient errors maybe?

@philippjfr Ready to merge? I think that is all the .opts updated where required.

We should figure out what's going on with https://github.com/ioam/holoviews/issues/2633 first.


targets and tests in platform headers

some open questions

is tests required? maybe expect-fx does not make sense for my platform?
I suspect we'll need the type for expectFx to be in the header too (because we can't import the function because that would be circular, unless we find some way around that)
there is some parser issue currently

Closing as this has not been active for some time, and I think these changes have been overtaken by later updates -- though we don't have these features.


Use weak_tibble

Like fortedata

@stephpenn1 Are you interested in taking this on? It would involve

Moving tibble from Imports to Suggests in DESCRIPTION
Copy weak_tibble as weak_as_tibble functions from fortedata into utils.R here
Replacing every as_tibble call with a weak_as_tibble, and every tibble with weak_tibble

Let's talk about this, in the context of your other work, on Tuesday.


Option to display power consumption

I love this card, awesome job! Replaced all my light controls with this one.
Have one feature request, maybe you could consider implementing.
I have power sensors of all my lights and other appliances.
It would be nice to display the current consumption (Watt) in the slider-button-card.
Introducing two options to control this: power_entity and maybe display_power.

This state information can be added to displayed state via an "additional state" option which will prompt for either a template or choose multiple entries from the entity's attributes.

@mouth4war would be nice to have some option for additional state. To have some more generic approach and not only for power consumption. however in this issue the power sensor is a different entity than the card entity, so your proposed solution won't work in this case.
Could be something like this maybe in the configuration. additional_state config option with the following possibilities:
entity -> Optional, when not passed the same entity as the card will be assumed
state_attribute -> Required, attribute of the entity, or state when you want the state
template -> Optional
So for the power sensor the configuration can be:
{
    "additional_state": {
        "entity": "my_power_sensor",
        "state_attribute": "state"
    }
}

Or for you humidity example:
{
    "additional_state": {
        "state_attribute": "humidity"
    }
}

Not sure about the feasibility of this approach. @mattieha, what do you think?
Also issue #84 could be intregrated somehow in this generic implementation

Good idea. Just need multiple addition attributes lines.


Support for Ruby 1.9.2

This gem seems to work well under Ruby 1.8.7 but not under Ruby 1.9.2.  Create User is failing but so are other methods...

A couple of issues:

It looks like the user needs to add a slash to the end of PROV_API_BASE_URI in SMSified when using Ruby 1.9.2 for the login to to work such as:

ENV['PROV_API_BASE_URI'] = "https://api.smsified.com/v1/"
Note: Other resources fail in SMSified with the slash at the end of the URL

The Create-User method is failing (as are most of the other REST calls) using Ruby 1.9.2.  The problem seems to be in the request method of tropo_client.rb.  When calling the create_user method Tropo responses as follows:

TropoError: 400: Bad Request - {
"error": "error parsing JSON request entity - are you sure you set the correct Content-type?: Encountered "" at line 0, column 0.\u000aWas expecting one of:\u000a     ...\u000a    "null" ...\u000a    "NaN" ...\u000a    "Infinity" ...\u000a     ...\u000a    <SINGLE_QUOTE_LITERAL> ...\u000a    <DOUBLE_QUOTE_LITERAL> ...\u000a    ")]}\'\n" ...\u000a    "{" ...\u000a    "[" ...\u000a    "-" ...\u000a    "
}
from /Users/christoffe/.rvm/gems/ruby-1.9.2-p180/gems/tropo-provisioning-0.0.22/lib/tropo-provisioning/tropo_client.rb:183:in request' 	from /Users/christoffe/.rvm/gems/ruby-1.9.2-p180/gems/tropo-provisioning-0.0.22/lib/tropo-provisioning/tropo_client.rb:66:in post'
from /Users/christoffe/.rvm/gems/ruby-1.9.2-p180/gems/tropo-provisioning-0.0.22/lib/tropo-provisioning/tropo_provisioning.rb:132:in create_user' 	from (irb):199 	from /Users/christoffe/.rvm/rubies/ruby-1.9.2-p180/bin/irb:16:in '
Note: This works in Ruby 1.8.7

Should be fixed, give it a try.


BottomNavigationBar inactive items should have reduced opacity

https://material.io/design/components/bottom-navigation.html#states

Bottom navigation uses opacity and text to show when a destination is active. States are used to show pressed, focused, and unselected states.

Inactive destination states are represented with reduced opacities; active states have full opacity.

Currently inactive states are at full opacity. Hopefully this is a simple fix.

Please add the output of flutter doctor -v.

flutter doctor -v                              Mon 31 Dec 2018 00:38:36 GMT
[✓] Flutter (Channel stable, v1.0.0, on Linux, locale en_US.UTF-8)
    • Flutter version 1.0.0 at /home/marcoms/dev/flutter
    • Framework revision 5391447fae (4 weeks ago), 2018-11-29 19:41:26 -0800
    • Engine revision 7375a0f414
    • Dart version 2.1.0 (build 2.1.0-dev.9.4 f9ebf21297)

[✓] Android toolchain - develop for Android devices (Android SDK 28.0.3)
    • Android SDK at /home/marcoms/dev/android-sdk
    • Android NDK location not configured (optional; useful for native profiling
      support)
    • Platform android-28, build-tools 28.0.3
    • ANDROID_HOME = /home/marcoms/dev/android-sdk
    • Java binary at: /usr/bin/java
    • Java version OpenJDK Runtime Environment (build
      1.8.0_191-8u191-b12-0ubuntu<IP_ADDRESS>-b12)
    • All Android licenses accepted.

[!] Android Studio (not installed)
    • Android Studio not found; download from
      https://developer.android.com/studio/index.html
      (or visit https://flutter.io/setup/#android-setup for detailed
      instructions).

[✓] VS Code (version 1.30.1)
    • VS Code at /usr/share/code
    • Flutter extension version 2.21.1

[✓] Connected device (1 available)
    • MI 5 • 8dd58bcd • android-arm64 • Android 9 (API 28)

! Doctor found issues in 1 category.


Indexing error: unknown field 'absolute-path'

Using the Solr schemas embedded within kale along with the (not yet released) Data Crawler is not working. We get an error for each document unknown field 'absolute-path'.
Apparently, the Data Crawler is adding a meta-data field absolute-path that is not in the Solr schema, causing the failure.

This issue is fixed by #21


add overload for Nan::NewInstance that takes argc/argv

This adds another overloaded variant of Nan::NewInstance that supports passing argc/argv through to the invoked Function.

Oh, didn't notice this was left out. Good catch. Can you update the signatures to take v8::Local<v8::Value> instead of v8::Handle<v8::Value>? We've moved away from Handle since it is being phased out and will be completely removed from V8 in latter versions.

Sure -- done.

Should this count as a bugfix or a feature addition? I'm willing to go with the former and include this is 2.0.1. It was intended to be included.

I don't think it matters too much but it's technically a feature addition and a 2.1.0 shouldn't be scary, just bump and run

Merged 29450ed1670051613ffea9dd3f980f8685feceb4


API key is not saved sometimes and causes a redirection

Example schema
{
    "openapi": "3.0.2",
    "info": {
        "title": "API access"
    },
    "paths": {
        "/api/credits/": {
            "get": {
                "tags": [
                    "account"
                ],
                "summary": "Retrieve Remaining Credits",
                "description": "Credits in the user account.",
                "operationId": "retrieve_remaining_credits_api_credits__get",
                "responses": {
                    "200": {
                        "description": "Successful Response",
                        "content": {
                            "application/json": {
                                "schema": {}
                            }
                        }
                    }
                },
                "security": [
                    {
                        "APIKeyHeader": []
                    }
                ]
            }
        }
    },
    "components": {
        "securitySchemes": {
            "APIKeyHeader": {
                "type": "apiKey",
                "in": "header",
                "name": "X-API-Key"
            }
        }
    }
}

index.html used to test
<!doctype html>
<html lang="en">

<head>
  <meta charset="utf-8">
  <script type="module" src="https://unpkg.com/openapi-explorer/dist/browser/openapi-explorer.min.js"></script>
</head>

<body>
  <openapi-explorer default-schema-tab="model" collapse nav-item-spacing="relaxed" show-server-selection="false"
    spec-url="openapi.json">
  </openapi-explorer>
</body>

</html>

To reproduce:
Running a local python server with python -m http.server 8000

visit http://localhost:8000
click on auth, now the url is http://localhost:8000/#?route=auth
(optional) enter any value in api key
click on set, the API key is quickly applied before there is a redirection and it is gone. Now the url is http://localhost:8000/?#?route=auth
At this stage, everything works and there are no more redirection. It mainly happens on first visit.

Is it a bug or can something be done in html ?
Screencast from 2023-06-08 23-17-57.webm

Well that definitely doesn't need a redirect there, so that shouldn't be happening. This is a bug.

I think wee found the problem and it should be fixed with https://github.com/Rhosys/openapi-explorer/commit/f054e5fafe48563913419633af46f8edbe92d5ba which will be released automatically shortly.


ERROR! Could not find main module js file.

Platform: (Raspberry Pi 3).
Node Version:
MagicMirror Version: 201).
Description: By starting MM I get the following dialogue
(node:14713) DeprecationWarning: sys is deprecated. Use util instead.
Whoops! There was an uncaught exception...
{ Error: listen EADDRINUSE :::8080
    at Object.exports._errnoException (util.js:1026:11)
    at exports._exceptionWithHostPort (util.js:1049:20)
    at Server._listen2 (net.js:1253:14)
    at listen (net.js:1289:10)
    at net.js:1399:9
    at _combinedTickCallback (internal/process/next_tick.js:77:11)
    at process._tickCallback (internal/process/next_tick.js:98:9)
    at Module.runMain (module.js:592:11)
    at run (bootstrap_node.js:402:7)
    at startup (bootstrap_node.js:157:9)
  code: 'EADDRINUSE',
  errno: 'EADDRINUSE',
  syscall: 'listen',
  address: '::',
  port: 8080 }
MagicMirror will not quit, but it might be a good idea to check why this happened. Maybe no internet connection?
If you think this really is an issue, please open an issue on GitHub: https://github.com/MichMich/MagicMirror/issues
Launching application.
ERROR! Could not find main module js file.
ERROR! Could not find main module js file.

Steps to Reproduce: Actually it ofter works till the ERROR! Could not... message. seems kind of unstable. often crashes,.. Any idea?
Expected Results: No Error at all, actually,....
Actual Results: White or black full screen...no information on it.
Configuration:

/* Magic Mirror Config Sample
 *
 * By Michael Teeuw http://michaelteeuw.nl
 * MIT Licensed.
 */

var config = {
	port: 8080,
	ipWhitelist: ["<IP_ADDRESS>", "::ffff:<IP_ADDRESS>", "::1", "xxxx/24", "::ffff:xxxx/24"],
	language: 'de',
	timeFormat: 24,
	units: 'metric',

	modules: [
		{
			module: 'alert',
		},
		{
			module: 'updatenotification',
			position: 'top_bar'
		},
		{
			module: 'clock',
			position: 'top_left'
		},
		{
            		module: 'calendar_monthly',
          		position: 'top_left',
           		config: {
        	      		showHeader: false,
                  		cssStyle: 'block'
               			},
    	},
		{
			module: 'calendar',
			header: 'Was .. wann ..?',
			position: 'top_left',
			config: {
					maximumEntries: 4,
					maximumNumberOfDays: 7,
					calendars: [
					{
						symbol: 'xxx',
						url: 'webcal://xxxx',
					}
				]
			}
		},
		{
			module: 'calendar',
			header: 'Feiertrage',
			position: 'top_left',
			config: {
					maximumEntries: 4,
					maximumNumberOfDays: 30,
					calendars: [
					{
						symbol: 'Feiertage',
						url: 'xxx',
					}
				]
			}
		},

		{
			module: 'compliments',
			position: 'top_center'
		},
		{
  			module: 'MMM-WunderGround',
   			position: 'top_right',
    			config: {
       			apikey: 'xxx', // private; don't share!
        		pws: 'pws:xxx', //culemborg
        		hourly: '1',
        		fctext: '1',
        		fcdaycount: "4",
        		fcdaystart: "0",
        		hourlyinterval: "3",
        		hourlycount: "2",
        		alerttime: 10000,
        		alerttruncatestring: "english:",
			roundTmpDecs: 1,
			UseCardinals: 0,
			layout: "horizontal",
			sysstat: 0
    			}
		},
		{
			module: 'MMM-DWD-WarnWeather',
			header: 'Wetterwarnungen',
			position: 'top_right',
			config: {
				region: 'xxx',
				changeColor: true,
				interval: 600000,
				loadingText: 'Warnungen werden geladen...',
				noWarningText: 'Alles ruhig',
			}
		},
		{
			module: 'newsfeed',
			position: 'bottom_center',
			config: {
				feeds: [
					{
						title: "xx",
						url: "xxx"
					},
				],
				showSourceTitle: true,
				showPublishDate: true,
				Interval: 100000,
				updateInterval:10000,
				animationSpeed:1000,
			}
		},
		{
			module: 'newsfeed',
			position: 'bottom_center',
			config: {
				feeds: [
					{
						title: "xx",
						url: "xxx"
					},
				],
				showSourceTitle: true,
				showPublishDate: true,
				Interval: 100000,
				updateInterval:9000,
				animationSpeed:1000,
			}
		},
		{
			module: 'MMM-Fuel',
			position: 'top_right',
			config: {
				api_key: "xxx",
				lat: xxx,
				lng: xxx,
				types: [
					"e10"
				],
				open: true,
				radius: 2,
				max: 4,
				height: 600,
				width: 600,
				colored: true,
				shortenText: false,
				showAddress: false,
				showOpenOnly: true,
				iconHeader: false,
				rotate: false,
				rotateInterval: 60000,
				updateInterval: 900000,
				}
		},

		{
			module: 'mmm-systemtemperature',
			position: 'top_center',
			config: {},
			classes: 'small dimmed'
		},
		{
			module: 'MMM-Globe',
			position: 'middle_center',
			config: {
				style: 'europeDiscNat',
				imageSize: 600,
				ownImagePath: "",
				updateInterval: 900000
			}
		},
		{
      	 	module: 'MMM-WatchDog',
      	 	config: {
      	    	interval: 5,
      	    	timeout: 10,  // See 'Configuration options' for more information.
        		}
    	},
    	{
			module: 'MMM-Admin-Interface'
		},
		{
			module: 'MMM-Remote-Control'
		},
		{
			module: 'MMM-pihole-stats',
			position: 'bottom_left',
			config: {
				apiURL: 'xxx',
			}
		},
		{
 		    module: 'MMM-voice',
    		position: 'bottom_left',
    		config: {
     			microphone: 1,
     			keyword: 'MAGIC MIRROR',
     			timeout: 15,
    		 }
 		},
		{
			module: 'MMM-NetworkScanner',
			header: 'Wer ist zu Hause',
			position: 'top_left',
			config: {
				devices: [
					{ macAddress: "xxx", name: "xx", icon: "xx"},
					{ macAddress: "xxx", name: "xx", icon: "xx"},
					{ macAddress: "xxx", name: "xx", icon: "xx"},
				],
				showUnknown: false,
				showOffline: false,
				keepAlive: 3000,
				updateInterval: 3600,
				residents: "mobile",

				}
		},

	]

};

/*************** DO NOT EDIT THE LINE BELOW ***************/
if (typeof module !== 'undefined') {module.exports = config;}

"Error: listen EADDRINUSE :::8080"
some other application seem to already use port 8080.

Yeah I thought so, how can I find out which one it is? I didn't install any other webserver on purpose.

Did you installed by installer script or manually?

Maybe, try rebooting. That's the easy way to solve it. ;)

Yes I did couple of time,. rebooting. Did installed automatically. Found one reason: two crontab files,.. deleted one,. but now I do have 3 left,..don't know why...

@Binog The processes you're showing are the Chromium and Electron processes. You shouldn't normally need to kill them. It's okay if there is more than one of them.

Thank You for replying. I thought so, but wasn't sure, cause had the port 8080 is in use by another instance error. And the hud is still crashing. although,. I ruled out a lot of errors. If I start by cronjob pm2 then it crashes,. if I do this manually it doesn't,.. don't understand that,..

@Binog Can you post the output of this command?
netstat -tulpn | grep 8080

I am also having same issue, please help...

Most of these issues are discussed on the forum. I'm closing this issue for now.
If you feel this issue should remain open, please let me know.

Hi,
I have the same error.
I change the port and reboot the application too often ... it is not very practical to code a module.

Hi,
I have the same Problem electron.js use the 8080 port.
@nhubbard if I use your command I get
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
tcp        0      0 <IP_ADDRESS>:8080          <IP_ADDRESS>:*               LISTEN      1120/electron.js


NX mono-repo cannot find module i18n

What version of this package are you using?
"next-translate": "^1.6.0",
Related packages:
"next-translate-plugin": "^2.4.4",
"i18next": "^23.2.8",
"next": "13.4.9",
"nx": "16.2.2",
"@nx/next": "16.4.2",
What operating system, Node.js, and npm version?
OS: macOS Monterey 12.5.1
Node: v20.2.0 (also tested with node 16)
Yarn: 1.22.19
What happened?
Trying to provide path to the i18n.json file in a mono-repo application using NX.
.env:
NEXT_TRANSLATE_PATH=./apps/basic
next.config.json:
`
/* eslint-disable @typescript-eslint/no-var-requires */
const withNx = require('@nx/next/plugins/with-nx');
const nextTranslate = require('next-translate-plugin');
const withImages = require('next-images');
/**

@type {import('@nx/next/plugins/with-nx').WithNxOptions}
**/
const nextConfig = {
images: {
domains: [
...
],
},
nx: {
// Set this to true if you would like to to use SVGR
// See: https://github.com/gregberge/svgr
svgr: false,
},
publicRuntimeConfig: {
env: {
...
},
},
modularizeImports: {
'@mui/material': {
transform: '@mui/material/{{member}}',
},
'@mui/icons-material': {
transform: '@mui/icons-material/{{member}}',
},
},
};

module.exports = withNx(withImages(nextTranslate(nextConfig)));
`
Error when running "yarn nx run basic:build":

info Loaded env from /Users/andersbs/Documents/GitHub/xpand-frontend/apps/basic/.env
error Failed to load next.config.js, see more info here https://nextjs.org/docs/messages/next-config-error

Build error occurred
Error: Cannot find module '/Users/andersbs/Documents/GitHub/xpand-frontend/apps/basic/apps/basic/apps/basic/i18n'
Require stack:

/Users/andersbs/Documents/GitHub/xpand-frontend/node_modules/next-translate-plugin/lib/cjs/index.js
/Users/andersbs/Documents/GitHub/xpand-frontend/apps/basic/next.config.js
at Module._resolveFilename (node:internal/modules/cjs/loader:1070:15)
at /Users/andersbs/Documents/GitHub/xpand-frontend/node_modules/next/dist/server/require-hook.js:185:36
at Module._load (node:internal/modules/cjs/loader:923:27)
at Module.require (node:internal/modules/cjs/loader:1137:19)
at require (node:internal/modules/helpers:121:18)
at nextTranslate (/Users/andersbs/Documents/GitHub/xpand-frontend/node_modules/next-translate-plugin/lib/cjs/index.js:26:14)
at Object. (/Users/andersbs/Documents/GitHub/xpand-frontend/apps/basic/next.config.js:68:36)
at Module._compile (node:internal/modules/cjs/loader:1255:14)
at Module._extensions..js (node:internal/modules/cjs/loader:1309:10)
at Module.load (node:internal/modules/cjs/loader:1113:32) {
code: 'MODULE_NOT_FOUND',
requireStack: [
'/Users/andersbs/Documents/GitHub/xpand-frontend/node_modules/next-translate-plugin/lib/cjs/index.js',
'/Users/andersbs/Documents/GitHub/xpand-frontend/apps/basic/next.config.js'
]
}
Error occurred while trying to run the npx next build
Error: Command failed: npx next build
at checkExecSyncError (node:child_process:885:11)
at execSync (node:child_process:957:15)
at /Users/andersbs/Documents/GitHub/xpand-frontend/node_modules/@nx/next/src/executors/build/build.impl.js:49:42
at Generator.next ()
at /Users/andersbs/Documents/GitHub/xpand-frontend/node_modules/tslib/tslib.js:169:75
at new Promise ()
at Object.__awaiter (/Users/andersbs/Documents/GitHub/xpand-frontend/node_modules/tslib/tslib.js:165:16)
at buildExecutor (/Users/andersbs/Documents/GitHub/xpand-frontend/node_modules/@nx/next/src/executors/build/build.impl.js:20:20)
at /Users/andersbs/Documents/GitHub/xpand-frontend/node_modules/nx/src/command-line/run/run.js:101:23

What did you expect to happen?
According to the docs "NEXT_TRANSLATE_PATH=./apps/basic" should do the trick. This has also worked in earlier versions.
Expected path:
/Users/andersbs/Documents/GitHub/xpand-frontend/apps/basic/i18n
Actual path which causes the error:
/Users/andersbs/Documents/GitHub/xpand-frontend/apps/basic/apps/basic/apps/basic/i18n
Are you willing to submit a pull request to fix this bug?
Yes

Same problem

This works when running build, but when Im trying to start the production build it fails because of the path.

Try NEXT_TRANSLATE_PATH=./ yarn nx serve app --prod when serving. Replace ./ with somth else maybe if doesnt work.

almost the same here: Module not found: Can't resolve ' next-translate/withTranslationClientComponent '
I just went from 2.3.0-canary.3 to 2.4.4

@mlnima ensure that the next-translate-plugin is in the same version than next-translate. This internal property is removed and the new version of the plugin uses another one.
You should have been warned when installing the dependencies as we are restricting with peerDependencies 🤔

Thank You, it was my bad

This is an update about what I did for other people who are facing the same issue using next-translate,
my goal was to server the default language on the path "/" and the rest on "/:locale", however, I tried so hard to fix the issue but it was very simply by not using next-translate or any other lib. I just changed my translation data structure according to the nextJs docs, I had an issue trying to rewrite or redirect the user in middleware.ts or .js but now it's working fine. for longer as you are using server components it would not put a noticeable weight on your app. but I've lost a few good abilities.

Duplicated of https://github.com/aralroca/next-translate/issues/1121#issuecomment-1665699301