delay() not functioning as expected.

I have been having trouble with postponing changes to the dom in my motorcycle.js app running at http://schalk.net:3099, repo at https://github.com/dschalk/JS-monads-part4. I haven't been able to get functions that rely on setTimeout to work at all, or to update the DOM when they are supposed to.  I'll try promises next.
I am raising an issue here because, when I tried `most.delay()', every instance of its use was triggered at the time specified in the first instance. Here is the code:
 const mult2$ = mMmult.x.result.map(v => {
    mMmult.x.product2 = ret(v).x
  });

  const mult3$ = mMmult.x.result.map(v => {
    mMmult.x.product2 = ret(v)
    .bnd(add, 1000)
  }).delay(2000);

  const mult4$ = mMmult.x.result.map(v => {
    mMmult.x.product2 = ret(v)
    .bnd(add, 1000)
    .bnd(double).x
  }).delay(10000);

  const mult5$ = mMmult.x.result.map(v => {
    mMmult.x.product2 = ret(v)
    .bnd(add, 1000)
    .bnd(double)
    .bnd(add, 1).x
  }).delay(15000);

These are all merged into the stream that initiates the virtual dom. The first result displays correctly. Then, after two seconds, the result from the last stream (delay(15000)) displays. It is as though the first time interval specified is applied in all subsequent instances.

I think you have to delay first and then map:
const mult2$ = mMmult.x.result.map(v => {
    mMmult.x.product2 = ret(v).x
  });

  const mult3$ = mMmult.x.result.delay(2000).map(v => {
    mMmult.x.product2 = ret(v)
    .bnd(add, 1000)
  });

  const mult4$ = mMmult.x.result.delay(10000).map(v => {
    mMmult.x.product2 = ret(v)
    .bnd(add, 1000)
    .bnd(double).x
  });

  const mult5$ = mMmult.x.result.delay(15000).map(v => {
    mMmult.x.product2 = ret(v)
    .bnd(add, 1000)
    .bnd(double)
    .bnd(add, 1).x
  });

As the example in the README shows:
// After 4 seconds, logs 10
most.from([1, 2, 3, 4])
    .delay(1000)
    .reduce(function(result, y) {
        return result + y;
    }, 0)
    .then(function(result) {
        console.log(result);
    });

That looks better. I think I tried doing it the right way and still didn't get a good result. Lots of late night, frustrating experimentation has receded into a distant fog. Algorithms that worked in my plain Snabbdom application all flopped.
I opted for doing things more in the Cycle/Motorcycle way. See http://schalk.net:3099, repo at https://github.com/dschalk/JS-monads-part4.  The relevant code is:
  const unitDriver = function () {
    return periodic(1000, 1);  // Creates a stream of 1-1-1-1..., in one-second intervals.
  }

  const sources = {
    DOM: makeDOMDriver('#main-container'),
    WS: websocketsDriver,
    UNIT: unitDriver           // Added unitDriver to the sources object.
  }

  const unitAction$ = sources.UNIT.map(v => {  // unitDriver, cycled back around from "run".
      mMunit.ret(mMunit.x + v)  // mMunit is a monad dedicated to calling "next" with its bnd method.
      .bnd(next, 2, mMZ26)  // Releases mMZ26 (below) after two seconds.
      .bnd(next, 4, mMZ27)
      .bnd(next, 6, mMZ28)
      console.log('mMunit.x ', mMunit.x)
  })

  const mult2$ = mMmult.x.result.map(v => {
    mMmult.x.product2 = v;
    let mMtemp = new Monad(v);
    mMZ26.bnd(() => mMtemp.bnd(add, 1000).bnd(mMtemp.ret).bnd(x => mMmult.x.product2 = x));
    mMZ27.bnd(() => mMtemp.bnd(double).bnd(mMtemp.ret).bnd(x => mMmult.x.product2 = x));
    mMZ28.bnd(() => mMtemp.bnd(add, 1).bnd(mMtemp.ret).bnd(x => mMmult.x.product2 = x));
    mMunit.ret(0);
  })

I put this comment in JS-monads-part4: "Algorithms that worked in JS-monads-part3, a plain Snabbdom application, don't work in Motorcycle.js. But Motorcycle.js is a whirling wonder, awe-inspiring to behold and to use."

Seems like you forgot to flatten your inner stream(assuming map is related to most's operator).
you can do that by using the switch operator
  const mult3$ = mMmult.x.result.map(v => {
    mMmult.x.product2 = ret(v)
    .bnd(add, 1000).delay(2000)
  }).switch();

BTW.. you might wanna look at the new :: operator
https://github.com/zenparsing/es-function-bind

This also works:
  const mult3$ = mMmult.x.result.delay(2000).map(v => {
    mM27.ret(mMmult.x.product)
  })

  const mult4$ = mMmult.x.result.delay(4000).map(v => {
    mM27.bnd(add, 1000).bnd(mM27.ret)
  })

  const mult5$ = mMmult.x.result.delay(6000).map(v => {
    mM27.bnd(add, 1000).bnd(double).bnd(mM27.ret)
  })

  const mult6$ = mMmult.x.result.delay(8000).map(v => {
    mM27.bnd(add, 1).bnd(mM27.ret)
  })

I didn't need to create a driver. "delay" works as expected in Motorcycle.js.

I experimented some more with "dalay". Streams did not resume until after the specified milliseconds had elapsed, but then I could not depend on computation sequences to run only once. It is as though delay(n) means "continue once, or twice, or maybe more times after n milliseconds have elapsed." I have also been unable to get reliable results, or any results at all, using setInterval or setTimeout.
I am very pleased with Motorcycle, and will continue to use it. My impression at this point is that my slolution (above) is not too convoluted. Defining a driver like my unitDriver and an action stream that receives values from it is the only way to get dependable results, as far as I can tell.
My solution didn't require very many lines of code, and the driver can be re-used any time I want to delay the appearance of something in the DOM. But if there is a simpler way to reliably postpone future actions, I would much appreciate it if somebody would clue me in.

This isn't the best place for this discussion, but I'll add what is probably my last comment here. I just want to show how the result is calculated in http://schalk.net:3099 without resort to MonadIter. Here it is:
  const mult3$ = mMmult.x.result.map(v => {
    mMtem.ret(v)
    mMmult.x.product3 = v;
    mMpause.ret(0);
  })

  const mult4$ = sources.UNIT.map(v => {
      mMpause.ret(mMpause.x + v)
      if(mMpause.x ===1) {
        mMtem.bnd(add, 1000).bnd(mMtem.ret).bnd(x => mMmult.x.product3 = x)
      }
      if(mMpause.x === 2) {
        mMtem.bnd(double).bnd(mMtem.ret).bnd(x => mMmult.x.product3 = x)
      }
      if(mMpause.x === 3) {
        mMtem.bnd(add, 1).bnd(x => mMmult.x.product3 = x)
      }
    })

This uses "unitDriver", defined above.

Hey @dschalk.  Appreciate all the examples in this thread.  Is it possible you can provide a simplified example that reproduces the problem(s) you've described?  For example, you could use requirebin or something that could be pasted directly into a js file and run with node locally.
I'm quite confident in delay's behavior (the circles example is a seriously intense stress test of it), but I'd like to see if there may be an edge case we've missed.  It could also be that your expectations about what delay is supposed to do don't match what it actually does.  That could mean that we need to improve our documentation.
Anyway, it'd be really helpful to have a simple, runnable test case.
I've noticed that in your examples, you seem to be using shared mutable state and side effects.  For example, the purpose of map is to turn events of type A into events of type B using a pure function (e.g. it should only use its input--the event--and should return something), rather than to mutate shared properties (e.g. mMult.x.product3 = x).
Using side effects in a highly asynchronous system can be very difficult to reason about.  One goal of reactive programming is to forego side effects, in favor of purely transformative data flow style.  That made me wonder if some of the oddities you are experience are due to using a side-effectful approach.
I hope that didn't come across as critical, but rather as just trying to understand the situation, with the goal of trying to help!

The erratic behavior occurs only when I make a change that starts setTimeout or delay before a previous setTimeout() or delay has completed. window.clearTimeout() is ignored in my up-to-date versions of Chrome and Firefox. When I change a number in http://schalk.net:3099 using BACKSPACE and then entering a substitute number, a computation starts immediately after the backspce key is pressed and then again when the new number is entered. The base number gets 1000 added to it twice and gets doubled twice. This code works perfectly if I wait for completion after pressing the backspace key:
  const mult5$ = mMmult.x.result
  .filter(x => x !== 0).map(v => {mM27.ret(v)}).delay(1000)
  .map(() => mM27.bnd(add, 1000).bnd(mM27.ret)).delay(1000)
  .map(() => mM27.bnd(double).bnd(mM27.ret)).delay(1000)
  .map(() => mM27.bnd(add, 1).bnd(mM27.ret)).delay(1000)

mM27 is an instance of Monad. Using its "bnd" method with add and double do what you would expect, but they return an anonymous monad holding the result in its "x" attribute. "bnd(mM27.ret)" uses mM27's "ret" method to fetch the result from the anonymous monad.
clearTimeout's not working in Motorcycle doesn't seem to be relevant to 'most', although it might make it hard to fashion an "abort delay" function that works in Motorcycle. I think an "abort delay" function might be a useful addition to most. My solution using a stream of 1's to cause delays is interesting, but does seem excessively elaborate.
For a while, my monad ret method created a new monad with the same id as the calling monad. Browsers don't let you use caller, so I was using eval with the id, or window[id], to give the new monad the id of the monad using its ret method. I could have kept the monad and substituted a new value for the old one, rather than simply mutating the old one. I don't mutate the monads, but I went back to mutating their values. I don't see what is lost by doing this. In my server, I keep state in a TMVar. The TMVar doesn't mutate, even though its value frequently changes. Javascript allows mutation of object attributes, which strikes me as being a convenient shortcut. I am pretty sure that I am confessing my ignorance, and not presenting a sound argument. I wish I had an example of mutating an attribute's causing a problem in Cycle.js or Motorcycle.js.
My problem stems from the fact that I use delay in a sequence of computations, and I can't abort an ongoing sequence when a new one starts. That causes some computation steps to occur twice. I can get the result I want, but not by using setTimeout or delay.
You certainly didn't come across as being unfairly critical. Would the immutable library that people use with React be useful in a Motorcycle application?

The code below is now part of the app running at http://schalk.net:3099 . It consistently gives the desired results because debounce provides enough time for any ongoing computations to complete.
  const mult5$ = mMmult.x.result
  .debounce(3200).map(v => {mM27.ret(v)}).delay(1000)
  .map(() => mM27.bnd(add, 1000).bnd(mM27.ret)).delay(1000)
  .map(() => mM27.bnd(double).bnd(mM27.ret)).delay(1000)
  .map(() => mM27.bnd(add, 1).bnd(mM27.ret)).delay(1000)

I'm starting work on JS-monads-part5. It will feature immutable data structures using the Facebook immutable-js library.

@dschalk v0.18.2 just landed with a fix for a very subtle issue related to delay.  The issue seems like it'd be rare, but it's possible you were encountering it.  Maybe give the update a try and see what happens.

Would the immutable library that people use with React be useful in a Motorcycle application?

Sure.  Immutable.js is a general purpose immutable data structures library, so it's quite useful in almost any context :)

I upgraded to v0.18.2. Nothing changed. If I don't wait for an already-started computation sequence to finish, I get larger than desired results due to both computation sequences calling add and double.
I don't know if it is feasible, but a "clearWait" function at the beginning of my computation sequence would make wait more useful in cases such as this.

@dschalk It was a rare situation, so I'm not surprised nothing changed.
It's still a bit tough to understand what you're seeing without a runnable example.  Any chance you could put one together?

@briancavalier  I changed the definition of Monad's ret method and added a demonstration to http://schalk.net:3099 showing that you can move back through history by selecting previous versions of a monad instance which is saved in an array every time it calls its ret method. Monad might not be familiar to you, but it is very simple. I used its ret method in a demonstration I made for you.
It is all set forth at the bottom of the page at http://schalk.net:3099.

Update: Nothing is being mutated in the app running online at http://schalk.net:3099.
I found an aberation in this:
  const mult5$ = mMmult.x.result
  .map(v => {mM27.ret(v)})
  .map(() => mM27.bnd(add, 1000).bnd(mM27.ret)).debounce(1000)
  .map(() => mM27.bnd(double).bnd(mM27.ret)).debounce(1000)
  .map(() => mM27.bnd(add, 1).bnd(mM27.ret)).debounce(2000)```

@dschalk Thanks, I appreciate the effort you're putting into your app and into learning algebraic structures.  FWIW, most.js Streams are a (or more properly, "have a") Functor, Applicative Functor, Monoid, and Monad per the fantasy-land specification for JS algebraic structures
There's quite a bit there on your app's page.  That's cool.  However, it also makes debugging extremely difficult.  I think our goal needs to be to find a way to create a smallest possible case that reproduces a problem.  Without doing that, it seems impossible determine whether most, motorcycle, or your own code is the source of the issue.
As a next step, can you take the last debounce example that you mentioned and try to isolate it?  For example, are you able to reproduce the same issue if you remove motorcycle from the picture and implement a similar example using on most and console (instead of DOM manipulation), etc.

@briancavalier  I just now eliminated some mutating code in the history example. I don't think any mutating remains now.
I am not able to reproduce the debounce issue now, with motorcycle in the picture. While rapidly changing the numbers, I estimate at least 100 times, three times the result was off a little. I know it was 2 greater than expected twice and maybe all three times. I don't know what I did to produce the anomaly, and I don't know that doing exactly the same thing again would produce the unexpected result again. I suspect a previously initiated sequence performed a computation. That certainly is what happens in the example at the bottom of the page using delay. It could very well be that motorcycle was the cause in the debounce example.
I will gladly create a debounce example that prints to the browser console, or the system console if you prefer. I don't understand what you mean by "using on most". Do you mean "using most"?
I am looking forward to studying the most code. I am somewhat familiar with Haskell Functor, Applicative Functor, Monoid, and Monad. My http://schalk.net:3099 server is built on the  wai-websockets

I tried some more, but the algorithm using debounce consistently gives the expected result. I wonder if the rare exceptions occurred when a new sequence started on the same tick when a live debounce waiting period expired, resulting in a previously scheduled computation being performed on the freshly generated number. Or something similar to that.


Fix issue #34: Translation table 9 is not applied (parameter -t 9)

fixed with commit 4e1215d123624b90cdf11c91592a71265f62c706


Subpartitioning: Add SDK changes to support subpartitioning.

SDK Changes to support Subpartitioning.

Adds the new PartitionKind 'MultiHash' which accepts multiple Partition keys.
Operations currently supported

Document CRUD operations with MultiHash Partition Kind.

Changes done:

New Class PartitionKeyBuilder.
New ContainerProperties constructor that accepts an IReadOnlyList<string> object as multiple partition key paths
Changes to extract multiple partition keys from the Resource object.

Sample usage of Collection create with MultiHash Partition kind and multiple partition key paths.
CosmosClient client = TestCommon.CreateCosmosClient(true);
Cosmos.Database database = await client.CreateDatabaseAsync("mydb");

ContainerProperties containerProperties = new ContainerProperties("mycoll", new List<string>{"/Zipcode","/City"});
Container container = await database.CreateContainerAsync(containerProperties);

Sample Document Create, where the PartitionKey is extracted from the resource stream.
Document  doc1 = new Document { Id = "Id1" };
doc1.SetValue("ZipCode", 15232);
doc1.SetValue("Address", "Pittsburgh");
await container.CreateItemAsync<Document>(doc1);

Reading back the document with the PartitionKey set during the read call.
PartitionKey partitionKey = new PartitionKeyBuilder()
                .Add(15232)
                .Add("Pittsburgh")
                .Build();
Document readDocument = (await container.ReadItemAsync<Document>("Id1", partitionKey )).Resource;

Type of change

[x] New feature (non-breaking change which adds functionality)
[x] This change requires a documentation update

Please resolve the first iteration of comments.

@bchong95 Resolved the comments, can you please review this, thanks.

Hi @j82w, @ealsur , @kirankumarkolli . Fixed and resolved all the comments. Could you please sign off on this PR?

/azp run

/azp run

/azp run


PoC: support babel-register

Thank you for opening a Pull Request! Before submitting your PR, there are a few things you can do to make sure it goes smoothly:

[ ] Make sure to open an issue as a bug/issue before writing your code!  That way we can discuss the change, evaluate designs, and agree on the general idea
[ ] Ensure the tests and linter pass
[ ] Code coverage does not decrease (if any source code was changed)
[ ] Appropriate docs were updated (if necessary)

Fixes #<issue_number_goes_here> 🦕

@mctavish and I have been in communication about this.  I will review it as soon as I can.

gentle bump we have a major release coming up - any chance of us landing this along with it?

@DominicKramer sorry for the slow response. I need to give this a more thorough review. If we do have a specific application in mind, I don't think it's a bad idea to release it to a next tag, and have @mctavish test it out.
@mctavish, could I bother you to flesh out the description of this pull request with a more thorough description of the feature, and the motivation 👌

👋 is this still work we want to land eventually?

I'll close this for now; the forked repository still exists so it can be revived later if the demand for the feature returns.


DropDown doesn't work as expected

The thing is,  no matter wherever I put the Datepicker, It always pops up to the top side of the input and it doesn't care about the location of scroll which it should open to the bottom side.
I'm using react semantic ui and I'm not sure if it's the reason for this conflict

In the screenshot you've provided, it shouldn't open from bottom because there's not enough space over there(your dev tools got some space). If you provide an example on CodeSandBox, I can investigate it easily.

Thank you for your response in such a short notice, I'll keep you posted


[Part1|xwindow PR] Split up to dbus

scaled down the patches a bit compared to #21584.

[x] depends on #24935 to fix baseline regression (openscap) but could be merged without it.

hmm vcpkg crashed in x64_windows_static_md. osx is now building dbus successfully.

Ping @ras0219-msft, could you review this PR? Thanks in advance.

openscap:x64-windows
-- Found LibXml2: D:/installed/x64-windows/lib/libxml2.lib (found version "2.9.14")
CMake Error at D:/installed/x64-windows/share/libxml2/libxml2-export.cmake:37 (message):
  Some (but not all) targets in this export set were already defined.

  Targets Defined: LibXml2::LibXml2;LibXml2::xmllint

  Targets not yet defined: LibXml2::xmlcatalog

baseline or related to this PR?

baseline or related to this PR?

seems to be baseline. I don't touch anything libxml2 related in this PR. I'll will check the configure logs against master.

Replacing
_find_package(${ARGS})
with
list(REMOVE_ITEM ARGS "NO_MODULE")
list(REMOVE_ITEM ARGS "CONFIG")
list(REMOVE_ITEM ARGS "MODULE")
_find_package(${ARGS} CONFIG)

within the libxml2 wrapper solves the error here.
The problem is:
find_package(LibXml2 REQUIRED) -> Calls FindLibXml2.cmake
find_package(LibXslt REQUIRED) -> find_dependency(LibXml2 CONFIG) (in libxslt-config.cmake) -> Calls libxml2-config.cmake

@dg0yt you mean libxml2. This only happens if libxml2 is build with tools.

follow

Can you link in the first msg what PR this PR is waiting for?

Done but this PR really is only waiting to be further reviewed or having a final decision on port names.

Can you link in the first msg what PR this PR is waiting for?

Done but this PR really is only waiting to be further reviewed or having a final decision on port names.

Thank you!
So it mean that it will be merge soon? 🎉🎉

@Neumann-A  Are you going to fix libxml in this PR?

you going to fix libxml in this PR?

Why? There is https://github.com/microsoft/vcpkg/pull/24935. Are you inviting merge conflicts?

@BillyONeal:

xlib: 12 Wait, this is what is libx11?

xlib is the old name for x11. I don't mind switch xlib <-> x11 but i also don't thing it matters.

No usage generated.

Should I deal with that? All of that is basically https://cmake.org/cmake/help/latest/module/FindX11.html. I would rather see vcpkg generating PkgConfig heuristics if pc files exists.
(However if you want a message I could inject a port helper function via xorg-macros so the message is only in one place)

xproto: 67 I don't think this is right?

Is there a policy to deactivate usage display? xproto is just a shared data port for the other x ports. Same for xtrans which contains sources to be used by other x ports. (For now I just deactivated the automatic usage for these ports. )

I would mildly like to see us align with repology if possible.

please reach a decision on that in the team. the lib prefix is just from unix. I like to go with the pc file name so that port = pkg-config usage. The reason that some are missing lib prefixes is just because they don't have a library. I changed xau to libxau since that was explicitly requested.

< about license stuff >

I can change the problematic ones to null if requested.
Are there any other open points I missed from the list?

xlib is the old name for x11. I don't mind switch xlib <-> x11 but i also don't thing it matters.

I think it's confusing only because the name is reused here to mean something else.

No usage generated.
Should I deal with that?

No usage generated was more 'Bill observes this'; I think no usage is fine. The main thing we needed to block is wrong usage. (Worst case, with an empty usage file)
I started checking this because @dg0yt asked for it here: https://github.com/microsoft/vcpkg/issues/20190

I can change the problematic ones to null if requested.

I would feel better about it. null is always safe.

@ras0219 / @ras0219-msft , @vicroms , @dan-shaw , @JavierMatosD Marking vcpkg-team-review to resolve the naming question.

I would feel better about it. null is always safe.

I'll adjust that when the naming question has been resolved.

@ras0219-msft, @JavierMatosD, @dan-shaw, @vicroms, and I met today and polled the following questions:

Do we want to align with Repology names?

We agree that putting lib in front is unfortunate but do want to align with repology.

Do we care / have opinions on what should happen with libx11 / x11 / libx.

We do not think we should have an x11 meta port right now. Unlike boost or qt, which ship as hermetic releases by their respective upstreams, libxXxx does not do that, and we haven't demonstrated a need for such a thing right now. (This may change following the other PRs adding other X stuff but we aren't making future statements about it right now)
=====
We agree that licenses should be 'null' if there is any doubt.

We agree that putting lib in front is unfortunate but do want to align with repology.

done for the ports you pointed out (xau x11 xdmcp)

We agree that licenses should be 'null' if there is any doubt.

done

We do not think we should have an x11 meta port right now. Unlike boost or qt, which ship as hermetic releases by their respective upstreams, libxXxx does not do that, and we haven't demonstrated a need for such a thing right now. (This may change following the other PRs adding other X stuff but we aren't making future statements about it right now)

renamed xlib to libx11 since xlib is the old name and libx11 is the repology name. Merged the wrapper from x11 into libx11.

I would still like to see the ci.baseline.txt => "supports" but I'm not willing to block merging this over it.

Thanks!

When building libx11:x86-windows:
/bin/sh: line 1: ../src/util/makekeys: No such file or directory
make[1]: *** [Makefile:2094: ks_tables.h] Error 127
make: *** [Makefile:525: all-recursive] Error 1

out.log:
Making all in src
make[1]: Entering directory '/f/vcpkg/buildtrees/libx11/x86-windows-dbg/src'
Makefile:2098: update target '../src/util/makekeys' due to: .././../src/8b71282530-fd21532563.clean/src/../src/util/makekeys.c
cd util && /usr/bin/make
Makefile:857: update target 'config.h' due to: stamp-h1
test -f config.h || rm -f stamp-h1
test -f config.h || /usr/bin/make  stamp-h1
make[2]: Entering directory '/f/vcpkg/buildtrees/libx11/x86-windows-dbg/src/util'
Makefile:441: update target 'makekeys.obj' due to: ../.././../src/8b71282530-fd21532563.clean/src/util/makekeys.c
source='../.././../src/8b71282530-fd21532563.clean/src/util/makekeys.c' object='makekeys.obj' libtool=no \
DEPDIR=.deps depmode=msvc7 /bin/sh ../.././../src/8b71282530-fd21532563.clean/depcomp \
touch a.out | touch conftest.exe | true -DHAVE_CONFIG_H -I. -I../.././../src/8b71282530-fd21532563.clean/src/util -I../../src -I../../include/X11  -I../.././../src/8b71282530-fd21532563.clean/include  -Wall -fd  -c -o makekeys.obj `cygpath -w '../.././../src/8b71282530-fd21532563.clean/src/util/makekeys.c'`
Makefile:414: update target 'makekeys' due to: makekeys.obj
rm -f makekeys
touch a.out | touch conftest.exe | true -Wall -fd    -o makekeys makekeys.obj
make[2]: Leaving directory '/f/vcpkg/buildtrees/libx11/x86-windows-dbg/src/util'
Makefile:2094: update target 'ks_tables.h' due to: F:/vcpkg/installed/x86-windows/debug/../include/X11/keysymdef.h F:/vcpkg/installed/x86-windows/debug/../include/X11/XF86keysym.h F:/vcpkg/installed/x86-windows/debug/../include/X11/Sunkeysym.h F:/vcpkg/installed/x86-windows/debug/../include/X11/DECkeysym.h F:/vcpkg/installed/x86-windows/debug/../include/X11/HPkeysym.h ../src/util/makekeys
../src/util/makekeys F:/vcpkg/installed/x86-windows/debug/../include/X11/keysymdef.h F:/vcpkg/installed/x86-windows/debug/../include/X11/XF86keysym.h F:/vcpkg/installed/x86-windows/debug/../include/X11/Sunkeysym.h F:/vcpkg/installed/x86-windows/debug/../include/X11/DECkeysym.h F:/vcpkg/installed/x86-windows/debug/../include/X11/HPkeysym.h > ks_tables_h
make[1]: Leaving directory '/f/vcpkg/buildtrees/libx11/x86-windows-dbg/src'

already fixed in #26486
side effect due to #25009 deactivating cross builds.

session.conf.txt
system.conf.txt
@Neumann-A What should I do with the absolute paths?

Should I simply remove these files?


Scene object missing when loading additive scene

hi there,
I am working on a game with two scenes.
a main map scene

and a additive scene, which is an interior of mansion where players challenge Boss.

The Boss is a network object with NetworkIdentity.but every time after server sends RPC back and moves the player to additive scene, I get a scene without Boss showing up on Client like

and on host is like mixture of main scene and additive scene

also two error infos pop up

says the Boss object not found. If the NetworkIdentity on Boss is removed, the Boss will appear on Client build and no error.
I tried many workarounds,  none works completely.and also how to remain the old scene on host after server loads additive scene so that host and client can work on different scenes.

This can be done with Additive Scenes and Scene Interest Management, so not a bug.
Please join our Discord for support with this.


Add new Stack and Queue folder to implement some standard functions using Array and Linked list both

Description:
Please provide a detailed description of the algorithm you are proposing.
Checklist:

[x] Contributor in GSSoC-ext-Yes
[x] Want to work on it-Yes

Additional Information:
Provide any other relevant information or resources regarding the algorithm.
This pull request proposes the implementation of a standard function creation algorithm and code using stacks and queues. The algorithm will adhere to college-level standards and utilize both linear and list data structures.
Algorithm Overview:
Tokenization:
Break down the input function string into individual tokens (keywords, identifiers, operators, etc.).
Parsing:
Analyze the token sequence to determine the grammatical structure of the function.
Use a stack to handle parentheses and operator precedence.
Code Generation:
Generate the corresponding code based on the parsed function structure.
Employ stacks and queues to manage the order of operations and function calls.
Data Structures:
Stacks: Used for handling parentheses, operator precedence, and function calls.
Queues: Employed for storing function arguments and temporary results.
Expected Benefits:
Standardization: Ensures consistent and well-structured code generation.
Efficiency: Leverages the power of stacks and queues for optimized performance.
Educational Value: Provides a practical example of algorithm implementation using fundamental data structures.
Checklist:
[x] Contributor in GSSoC-ext
[x] Want to work on it
Additional Information:
Refer to the following resources for in-depth understanding of stacks, queues, and parsing algorithms:
[Insert relevant links to textbooks, online tutorials, or research papers]
This pull request aims to contribute a valuable tool for developers and students by providing a robust and efficient algorithm for standard function creation.

Please assign me this  Issue so that I can start working on it. Thank you


Bump github actions versions

old versions are deprecated and to be removed.
see https://github.blog/changelog/2024-04-16-deprecation-notice-v3-of-the-artifact-actions/

LGTM!


Company Attributes

Since mixpanel does not accept object properties, wouldn't it make sense to check if "company" is being passed in as an object and if it is, flatten it. In other words, since segment allows you to specify a company object in the identify call, this code could simply take the object and translate it to "company_name", "company_plan", etc.

Hi @jkindness, as part of the monorepo migration, this issue has been moved to new issue. Our engineers have been notified and will prioritize and work on it ASAP. Thank you!
For more information, see README.md.


6.2 Release?

@larshg I'm thinking of doing a 6.2 release - this would fix the ADFS regression #681, and the various AD issues you've been working on.
What do you think?   I've had a go at updating changelog.md

Yes, lets do that. As there are currently no critical PRs that should be merged first. I have however something to the documentation here.
Can you merge that one?
But go ahead with a 6.2 release.

Done


Run globalSetup and globalTeardown only once in watch mode

🚀 Feature Proposal
Hey there 👋 I'd like to propose running globalSetup and globalTeardown functions only once before actually entering watch mode and then after exiting it. I can't think of any side-effects atm, it could be opt-in/out configuration flag if there's any.
Motivation
Global setup hooks are great to prepare performance-wise expensive environment, and it would be helpful to run it just once before starting and stopping Jest. Currently Jest re-runs whole global setup/teardown on each change detected in watch mode.
Example
puppeteer and any other expensive server-kind processes, e.g. webpack-serve are good examples. Having single instance running in background during --watch mode would be amazing performance boost.

It sounds more appropriate to automate this with bash (however you invoke jest watch) instead of adding to jest. I can imagine it be misleading to devs if globalSetup/globalTeardown were only called once.

Hey @palmerj3 thanks for the tip. Given I'd like to integrate that into custom preset, how'd you suggest to keep process in background only for --watch mode? I can think of spawning detached process but not sure how to catch then Jest is stopped to kill that process.

I think you could likely achieve this with pre and post npm scripts.
So something like:
prewatch: './the_thing',
watch: 'jest --watch',
postwatch: './kill_the_thing'

@palmerj3 I need to run same setup and teardown in non-watch mode, also this holds us from moving  it into custom preset.

I second that. It would be useful for integration / E2E / black box tests. There could be a key prompt to run teardown + setup manually if needed.

same here. puppeteer.

I've just faced this problem and noticed that the first argument to both globalSetup and globalTeardown comes with a watch and watchAll property. You can check if either property is true and then not do your teardown (your setup function has to cache it's result so it doesn't execute more than once). You can then use the 'signal-exit' npm package to do proper teardown.
It's a bit of a work-around, but I'm running a test elasticsearch cluster locally using this method and it saves a bunch of time in not setting that up each test run

@samwyma thanks for checking into this!
I think that's the behavior we're going to run with for supporting this use case - rather than opting-into watch mode setup/teardown, you can opt out 👍

I'm still not clear how to opt into this. Can we get it documented?
On Wed, Nov 21, 2018, 4:37 PM Rick Hanlon II<EMAIL_ADDRESS>wrote:

@samwyma https://github.com/samwyma thanks for checking into this!
I think that's the behavior we're going to run with for supporting this
use case - rather than opting-into watch mode setup/teardown, you can opt
out 👍
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/facebook/jest/issues/6800#issuecomment-440817647, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAQpRZTJlJZ-EbGEmnENqLs-V6af3W7Oks5uxcd-gaJpZM4Vr_xT
.

Something like:
// jest.config.js
module.exports = {
  globalSetup = 'setup.js'
};

// setup.js
module.exports = async (config) => {
  if (config.watch || config.watchAll) return;
  // ...
};

Thanks for the followup! It didn't do what the OP was asking though.
Hey there 👋 I'd like to propose running globalSetup and globalTeardown functions
only **once** before actually entering watch mode and then after exiting it.

emphasis mine.
I tried The above and it makes the setup and teardown run zero times.
I guess I'd have to store a global variable or something?
How exactly can I opt into this behavior.
Just to push you to explain better, why would you want to opt into this? If your tests are independent and the setup is only needed before any tests and the teardown after all tests the same test running multiple times should not need an extra teardown/setup just like multiple tests in the same run don't need it.
basically. I think the original reporter is asking for an intuitive change that would make jest --watch faster for everybody, and that shouldn't hurt anybody using jest in a reasonable way.

Yeah, the above isn't exactly what you need.
Here's pretty much the setup I'm using for elasticsearch (but some other database or service should work too):
// setup.js
const { startServer, ES_PORT } = require("./elasticsearch");
module.exports = async () => {
  await startServer();

  process.env.AWS_ES_ENDPOINT = `http://localhost:${ES_PORT}`;
}

// teardown.js
const { destroyCluster } = require("./elasticsearch");

module.exports = async function(opts) {
  if (!opts.watch && !opts.watchAll) {
    await destroyCluster();
  }
};

// jest.config.js
module.exports = {
  globalSetup: "<rootDir>/setup.js",
  globalTeardown: "<rootDir>/teardown.js",
};

// elasticsearch.js
const onExit = require("signal-exit");

let clusterSetupPromise;
async function setupServer() {
  let cluster = createCluster(); //This uses the package esvm

  onExit(function() {
    cluster.shutdown().then(function() {
      process.exit();
    });
  });

  // ...setup elasticsearch...

  runningCluster = cluster;

  return cluster;
}

module.exports = {
  async startServer() {
    if (clusterSetupPromise) {
      return clusterSetupPromise;
    } else {
      clusterSetupPromise = setupServer();
      return clusterSetupPromise;
    }
  },
  async destroyCluster() {
    if (runningCluster) {
      await runningCluster.shutdown();
      clusterSetupPromise = null;
      runningCluster = null;
    }
  }
};

I apologise that the example is somewhat verbose, but there are a few key things to it:

Your setup script has to cache the result such that it only executes once, even if it's called multiple times (in this example this is done by setting the clusterSetupPromise variable)
Use the signal-exit module to ensure your service is always destroyed. I'm not sure whether this will work in all cases, but it's working well for me
Your teardown script is where you check for the watch flags. That way, it'll not teardown anything when you're doing jest --watch, but a normal run of jest will tear everything down fine (I suppose that, since I'm using signal-exit I don't need the teardown script at all, but I figure it makes it a bit clearer what's going on)

I have to admit this seems like a bit of a hack. I'd advocate for something like a flag to be set on the options given to the setup/teardown the first time setup is run and the last time teardown will be run. Not sure how possible this is, but it would make my code clearer.
But, for the purposes of just getting on with what you're doing, this is working well for me :).
Hopefully this helps! Feel free to ask any questions

thanks everybody for the help. I think I've got something working for myself. Any chance we can re-open this feature request to make doing this easier to opt into at least?

Good to head @fringd - I'm curious, what would be easier than checking config.watch and specifying the behavior you want?

yeah globalSetup and globalTeardown are not needed between tests, so why do
they run between tests in watch mode?
On Tue, Nov 27, 2018 at 11:27 AM Sam Wyma<EMAIL_ADDRESS>wrote:

If I understand correctly, it's mainly that we can't know when the program
is going to exit and therefore when we should actually tear down our
services, which makes us have to use signal-exit when then makes the code
unclear (same goes to the first run of the setup script, but that's easier
to get around)
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/facebook/jest/issues/6800#issuecomment-442122742, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAQpRaqkb2Ay24zfeOaypdkmesmr2OXYks5uzWfmgaJpZM4Vr_xT
.

If that doesn't make sense to anybody but me and reporter, at least give us
an easy way to test if the setup or teardown is actually the real first
setup/last teardown.
On Tue, Nov 27, 2018 at 12:01 PM Ram Dobson<EMAIL_ADDRESS>wrote:

yeah globalSetup and globalTeardown are not needed between tests, so why
do they run between tests in watch mode?
On Tue, Nov 27, 2018 at 11:27 AM Sam Wyma<EMAIL_ADDRESS>wrote:

If I understand correctly, it's mainly that we can't know when the
program is going to exit and therefore when we should actually tear down
our services, which makes us have to use signal-exit when then makes the
code unclear (same goes to the first run of the setup script, but that's
easier to get around)
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/facebook/jest/issues/6800#issuecomment-442122742,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAQpRaqkb2Ay24zfeOaypdkmesmr2OXYks5uzWfmgaJpZM4Vr_xT
.

or another superGlobalSetup superGlobalTeardown pair

rick, maybe you can explain why you wanted this to be opt-in? is there some implementation difficulty or use-case that would be broken if globalSetup/Teardown was not run with each watch run?

Hey @fringd @samwyma, thanks for explaining this more!
I understand this better now and I think I was wrong to close it since it's not as easy to opt-out of running setup/teardown in watch mode as I thought. Having to attach to process.exit to opt-out is not a great experience
@fringd it's hard to say who is using this and how, so I think we would need a pretty compelling reason to flip the behavior. I'm happy to discuss opt-out/opt-in more though after we have a good solution for either
Also interested in getting @SimenB, @thymikee and @xfumihiro's thoughts as they were more involved in creating the feature originally (maybe we didn't mean for it to run in watch mode this way)

Running them exactly once makes sense to me, but I also bet people will say "I want to create a test DB and populate it when tests starts to run, and cleaning it after tests run. Only running it once will keep data in it from the last run". Maybe a somewhat bad example, but something like it is bound to come up

I understand the current behavior since Jest provides strong guarantees of test isolation, so having option to opt-out or separate steps in the lifecycle (like superGlobalSetup mentioned above) would helpful.
To illustrate another use case, we use Jest for blackbox testing of an AMQP service. In our case, I have completely given up on globalSetup and globalTeardown due to this behaivor and wrapped it all into a shell script:
#!/bin/sh
set -e

# setup env variables ...
PORT_READINESS=$(npx get-port)

cd "$(dirname -- "$0")/.."
node e2e/setup.js &
PID=$!
trap 'kill $PID; node e2e/teardown.js' EXIT
npx wait-port http://:$PORT_READINESS
echo "Server ready"
npx jest "$@"

This lets us run integration tests in watch mode without restarting the service. On the other hand, now I need to think about running the shell script (or npm test) rather than npx jest directly.

If that doesn't make sense to anybody but me and reporter, at least give us
an easy way to test if the setup or teardown is actually the real first
setup/last teardown.

Since we use require on the files, they're cached. So you can keep track of that yourself.
let hasRun = false;

module.exports = () => {
  if (hasRun) return;

  hasRun = true;

  // ...blabla
};

https://github.com/facebook/jest/blob/b502c07e4b5f24f491f6bf840bdf298a979ec0e7/packages/jest-cli/src/runJest.js#L259
https://github.com/facebook/jest/blob/b502c07e4b5f24f491f6bf840bdf298a979ec0e7/packages/jest-cli/src/runJest.js#L282
I'm not sure I would rely 100% on that working forever, but it should work for now (I haven't tested it)

@SimenB that doesn't work for teardown. in teardown we need to know if it will run again in the future. which is harder to guess from my perspective. I want it to run when the user hits ctrl-c or q

Running them exactly once makes sense to me, but I also bet people will say "I want to create a test DB and populate it when tests starts to run, and cleaning it after tests run. Only running it once will keep data in it from the last run". Maybe a somewhat bad example, but something like it is bound to come up.

This is sort of a bad use case though because the tests aren't independent, right? Can we maybe deprecate support for this and change the behavior of globalSetup/globalTeardown in the next major version? Users can still support that use case with
describe('needs fresh data', () => {
  beforeAll(setupData);
  ...
});

or just add a bit to jest config "setupTeardownOnceInWatchMode" or something

Looks like the suggested approach of
let hasRun = false;

module.exports = () => {
  if (hasRun) return;

  hasRun = true;

  // ...blabla
};

is no longer viable in Jest 24, I'm guessing as a side-effect of moving to transpile the setup/teardown hooks. (It worked well in 23, though, so thanks for the suggestion!) As I'm not aware of any potential workaround short of dumping a flag to disk, do you think this issue might gain any traction?

with the approach on preventing globalTeardown to run in a watch mode you could just add to your script another teardown that could be called from the bash and then just do jest ... --watch && node ./teardown-script.js which should be just calling your globalTeardown after you hit q or ctrl+c

That shell script would probably work. Again, I'm sure somebody will complain if we change it, but shouldn't we just change it to the right thing and let them catch up? Tests should be independent. If you are doing something like depending on the order that your test suites run, your life is already a living hell and probably you won't notice.

another gentle ping on this almost a year later. Maybe changing the behavior of globalTeardown/Setup could be rolled into the next major release?

I currently rely on this behavior in my test suite. In jest.setup.ts, I create a node server that listens for API requests. Each test then sends requests to that node server. If I change the API code, then I want the node server to be recreated before running the tests again.
If this does change, I suggest we also add a way to setup/teardown per watch iteration as well.


Fix the strerror_r() usage for all cases.

Codecov Report

Merging #30 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master      #30   +/-   ##
=======================================
  Coverage   64.48%   64.48%
=======================================
  Files           3        3
  Lines         625      625
  Branches      131      131
=======================================
  Hits          403      403
  Misses        147      147
  Partials       75       75

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update d1c5666...3419e34. Read the comment docs.


Facilitate the installation of VMware Workstation on Linux.

Currently  installation of  VMware Workstation uses security privileges to launch.
How to reproduce:

Install all needed components for VMWare Workstation.

Open VMware Workstation and select trial period. It will ask you root password. Even root password is correct, you can not pass.

You need to run it:
sudo su
vmware

After this you can open VMware Workstation.

This is a known issue in VMWare Workstation. Here is the reference: https://communities.vmware.com/thread/481396
We will try to workaround/fix in control-center, but there is no any guarantees, that it will work.

This is the problem of VMWare on Ubuntu, related to obscured root user on Ubuntu OS: https://communities.vmware.com/thread/155402


Server keep crashing

I run a lnbits server and it crashes on me randomly. I couldn't figure out what was causing the crash this time - any help would be appreciated. Here's the logs
 49 [2021-10-30 08:22:12,259] <IP_ADDRESS>:48390 POST /grpc.reflection.v1alpha.ServerReflection/ServerReflectionInfo 2<PHONE_NUMBER>
 50 Traceback (most recent call last):
 51  File "/root/.local/share/virtualenvs/app-4PlAip0Q/lib/python3.7/site-packages/quart_trio/app.py", line 151, in full_dispatch_request
 52    result = await self.dispatch_request(request_context)
 53  File "/root/.local/share/virtualenvs/app-4PlAip0Q/lib/python3.7/site-packages/quart/app.py", line 1927, in dispatch_request
 54    raise request_.routing_exception
 55 quart.exceptions.NotFound: NotFound(404)
 56 Traceback (most recent call last):
 57  File "/root/.local/share/virtualenvs/app-4PlAip0Q/lib/python3.7/site-packages/quart_trio/app.py", line 151, in full_dispatch_request
 58    result = await self.dispatch_request(request_context)
 59  File "/root/.local/share/virtualenvs/app-4PlAip0Q/lib/python3.7/site-packages/quart/app.py", line 1927, in dispatch_request
 60    raise request_.routing_exception
 61 quart.exceptions.NotFound: NotFound(404)
 62 Traceback (most recent call last):
 63  File "/root/.local/share/virtualenvs/app-4PlAip0Q/lib/python3.7/site-packages/quart_trio/app.py", line 151, in full_dispatch_request
 64    result = await self.dispatch_request(request_context)
 65  File "/root/.local/share/virtualenvs/app-4PlAip0Q/lib/python3.7/site-packages/quart/app.py", line 1927, in dispatch_request
 66    raise request_.routing_exception
 67  quart.exceptions.MethodNotAllowed: MethodNotAllowed(405)
68Traceback (most recent call last):
 69  File "/root/.local/share/virtualenvs/app-4PlAip0Q/lib/python3.7/site-packages/quart_trio/app.py", line 151, in full_dispatch_request
 70    result = await self.dispatch_request(request_context)
 71  File "/root/.local/share/virtualenvs/app-4PlAip0Q/lib/python3.7/site-packages/quart/app.py", line 1927, in dispatch_request
 72    raise request_.routing_exception
 73quart.exceptions.MethodNotAllowed: MethodNotAllowed(405)
 74Traceback (most recent call last):
 75  File "/root/.local/share/virtualenvs/app-4PlAip0Q/lib/python3.7/site-packages/quart_trio/app.py", line 151, in full_dispatch_request
 76    result = await self.dispatch_request(request_context)
 77  File "/root/.local/share/virtualenvs/app-4PlAip0Q/lib/python3.7/site-packages/quart/app.py", line 1927, in dispatch_request
 78    raise request_.routing_exception
 79 quart.exceptions.NotFound: NotFound(404)
 80 Traceback (most recent call last):
 81  File "/usr/local/lib/python3.7/runpy.py", line 193, in _run_module_as_main
 82    "__main__", mod_spec)
 83  File "/usr/local/lib/python3.7/runpy.py", line 85, in _run_code
 84    exec(code, run_globals)
 85  File "/app/lnbits/__main__.py", line 33, in <module>
 86    app.run(host=app.config["HOST"], port=app.config["PORT"])
 87  File "/root/.local/share/virtualenvs/app-4PlAip0Q/lib/python3.7/site-packages/quart_trio/app.py", line 68, in run
 88    trio.run(self.run_task, host, port, debug, use_reloader, ca_certs, certfile, keyfile)
 89  File "/root/.local/share/virtualenvs/app-4PlAip0Q/lib/python3.7/site-packages/trio/_core/_run.py", line 1896, in run
 90    raise runner.main_task_outcome.error
 91  File "/root/.local/share/virtualenvs/app-4PlAip0Q/lib/python3.7/site-packages/hypercorn/trio/__init__.py", line 42, in serve
 92    await worker_serve(app, config, shutdown_trigger=shutdown_trigger, task_status=task_status)
 93  File "/root/.local/share/virtualenvs/app-4PlAip0Q/lib/python3.7/site-packages/hypercorn/trio/run.py", line 99, in worker_serve
 94    lifespan_nursery.cancel_scope.cancel()
 95  File "/root/.local/share/virtualenvs/app-4PlAip0Q/lib/python3.7/site-packages/trio/_core/_run.py", line 741, in __aexit__
 96    raise combined_error_from_nursery
 97  File "/root/.local/share/virtualenvs/app-4PlAip0Q/lib/python3.7/site-packages/trio/_highlevel_serve_listeners.py", line 25, in _run_handler
 98    await handler(stream)
 99  File "/root/.local/share/virtualenvs/app-4PlAip0Q/lib/python3.7/site-packages/hypercorn/trio/tcp_server.py", line 77, in run
100    await self._read_data()
101  File "/root/.local/share/virtualenvs/app-4PlAip0Q/lib/python3.7/site-packages/hypercorn/trio/tcp_server.py", line 110, in _read_data
102    await self.protocol.handle(RawData(data))
103  File "/root/.local/share/virtualenvs/app-4PlAip0Q/lib/python3.7/site-packages/hypercorn/protocol/__init__.py", line 60, in handle
104    return await self.protocol.handle(event)
105  File "/root/.local/share/virtualenvs/app-4PlAip0Q/lib/python3.7/site-packages/hypercorn/protocol/h2.py", line 183, in handle
106    await self._handle_events(events)
107  File "/root/.local/share/virtualenvs/app-4PlAip0Q/lib/python3.7/site-packages/hypercorn/protocol/h2.py", line 230, in _handle_events
108    await self.streams[event.stream_id].handle(
109KeyError: 1

Run the latest version, which uses FastAPI instead of Quart and is far more stable


Image Builder fails to create Ubuntu Image on Bare Metal

What happened:
The image builder failed to create an Ubuntu image. After checking what happened with VNC we can see following error:
SourcePackage: subiquity
Title: install failed crashed with CalledProcessError
Traceback:
(most recent call last):
File "/snap/subiquity/4380/1ib/python3.8/site-packages/subiquity/server/controllers/install-py", line 290, in install await self.postinstall(context=context)
File "/snap/subiquity/4380/1ib/python3.8/site-packages/subiquitycore/context.py", Line 148, in decorated _async return await meth(self, *ku)
File "/snap/subiquity/4380/1ib/python3.8/site-packages/subiquity/server/controllers/install.py", Line 325, in postinstall await self.run_unattended_upgrades(context=context, policy=policy)
File "/snap/subiquity/4380/1ib/python3.8/site-packages/subiquitycore/context.py", line 148, in decorated_async return await meth (self, **ku)
File "/snap/subiquity/4380/1ib/python3.8/site-packages/subiquity/server/controllers/install.py", Line 371, in run_unattended_ upgrades await self.unattended_upgrades_cd.wait()
File */snap/subiquity/4380/1ib/python3.8/site-packages/subiquity/server/curtin.py", line 116, in wait
result = await self-runner.wait (self.proc)
File "/snap/subiquity/4380/1ib/python3.site-packages/subiquity/server/runner.py", line 84, in wait raise subprocess.calledProcesserror (proc-returncode, proc.args!
subprocess.CalledProcessError:
-v'I' returned non-zero exit status 1.

After that cluster creation process failed. We can reproduce it whenever we start starting cluster creation process.
What you expected to happen:
Ubuntu image is created.
How to reproduce it (as minimally and precisely as possible):
Start cluster creation process with Bare Metal provider.
Anything else we need to know?:
``
Environment:

EKS Anywhere Release: 0.19.6

It’s the same problem as described here:
https://github.com/aws/eks-anywhere-build-tooling/issues/3058

Hello @vitas13, The permanent fix for this issue has been included in the image-builder CLI that ships with EKS-A v0.19.4 and above. May I know the image-builder CLI version you're using for the build? Was it downloaded recently or is it an older image-builder CLI?
In general, we recommend upgrading the image-builder CLI as well whenever you upgrade the EKS-A CLI. If the image-builder CLI you have on your machine is not the latest one, kindly refer to the installation docs to download the latest CLI. Once you have installed the latest image-builder, you can retry the build and it should produce the desired bare metal image.

Thanks @abhay-krishna . Fix works ;)
We are using the newest version of the image-builder available.

Thanks @abhay-krishna . Fix mentioned here aws/eks-anywhere-build-tooling#3058 works. We are using the newest version of the image-builder available.

Great! If your issue has been resolved, feel free to close it. Thanks!


chore: bdd-ghfjxy-import-1586892471 to 0.0.1

chore: Promote bdd-ghfjxy-import-1586892471 to version 0.0.1

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by:
To fully approve this pull request, please assign additional approvers.
We suggest the following additional approvers:
If they are not already assigned, you can assign the PR to them by writing /assign  in a comment when ready.
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment


build: regression test crate

This change is

#945  👈
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @AvivYossef-starkware and the rest of your teammates on  Graphite

crates/gateway/src/lib.rs line 8 at r2 (raw file):

pub mod gateway;
mod rpc_objects;
pub mod rpc_state_reader;

I'm not sure it's desirable to change to pub just for testing purposes.
Code quote:
pub mod rpc_state_reader;


The assembler changed to use nasm error

TNTI@DESKTOP-4I1KMV3 /e/rav1e
$ cargo build --release
    Compiling rav1e v0.1.0 (file:///E:/rav1e)
Error: failed to run custom build command for rav1e v0.1.0 (file:///E:/rav1e)
Process didn't exit successfully: e:\rav1e\target\release\build\rav1e-ecb1cf6943cb39f1\build-script-build (exit code: 101)
--- stdout
Running: "nasm" "-fwin64" "-Ie:\rav1e\target\release\build\rav1e-63dbf1bcd1d6ad4d\out/" "-Isrc/" "e:\rav1e\src/ X86/mc.asm" "-o" "e:\rav1e\target\release\build\rav1e-63dbf1bcd1d6ad4d\out\src/x86\mc.o"
Running: "lib" "/NAME:rav1easm.lib" "e:\rav1e\target\release\build\rav1e-63dbf1bcd1d6ad4d\out\src/x86\mc.o"
--- stderr
Thread 'main' panicked at 'failed to spawn process: The system cannot find the file specified. (os error 2)', C:\Users\TNTI.cargo\git\checkouts\nasm-rs-4e8d02e8a0db2eea\7c01c74\src\lib.rs:336:19
Note: Run with RUST_BACKTRACE=1 for a backtrace.

error: failed to run custom build command for rav1e v0.1.0 (file:///E:/rav1e)
process didn't exit successfully: e:\rav1e\target\release\build\rav1e-8f1a93b0b6501a3d\build-script-build (exit code: 101)
--- stdout
running: "nasm" "-fwin64" "-Ie:\rav1e\target\release\build\rav1e-748a63817d424d0b\out/" "-Isrc/" "e:\rav1e\src/x86/mc.asm" "-o" "e:\rav1e\target\release\build\rav1e-748a63817d424d0b\out\src/x86\mc.o"
running: "ar" "crus" "e:\rav1e\target\release\build\rav1e-748a63817d424d0b\out\librav1easm.a" "e:\rav1e\target\release\build\rav1e-748a63817d424d0b\out\src/x86\mc.o"
cargo:rustc-flags=-L e:\rav1e\target\release\build\rav1e-748a63817d424d0b\out
running: "cmake" "e:\rav1e\aom_build/aom" "-G" "MSYS Makefiles" "-DCONFIG_DEBUG=0" "-DCONFIG_ANALYZER=0" "-DENABLE_DOCS=0" "-DENABLE_NASM=1" "-DENABLE_TESTS=0" "-DCMAKE_INSTALL_PREFIX=e:\rav1e\target\release\build\rav1e-748a63817d424d0b\out" "-DCMAKE_C_FLAGS= -ffunction-sections -fdata-sections -m64" "-DCMAKE_CXX_FLAGS= -ffunction-sections -fdata-sections -m64" "-DCMAKE_BUILD_TYPE=Release"
-- The C compiler identification is GNU 7.3.0
-- The CXX compiler identification is GNU 7.3.0
-- Check for working C compiler: E:/MSYS/mingw/bin/gcc.exe
-- Check for working C compiler: E:/MSYS/mingw/bin/gcc.exe -- broken
-- Configuring incomplete, errors occurred!
See also "E:/rav1e/target/release/build/rav1e-748a63817d424d0b/out/build/CMakeFiles/CMakeOutput.log".
See also "E:/rav1e/target/release/build/rav1e-748a63817d424d0b/out/build/CMakeFiles/CMakeError.log".
--- stderr
CMake Error at D:/Program Files/CMake/share/cmake-3.12/Modules/CMakeTestCCompiler.cmake:52 (message):
The C compiler
"E:/MSYS/mingw/bin/gcc.exe"

is not able to compile a simple test program.
It fails with the following output:
Change Dir: E:/rav1e/target/release/build/rav1e-748a63817d424d0b/out/build/CMakeFiles/CMakeTmp

Run Build Command:"E:/MSYS/bin/make.exe" "cmTC_dc4bc/fast"
/usr/bin/make -f CMakeFiles/cmTC_dc4bc.dir/build.make CMakeFiles/cmTC_dc4bc.dir/build
make[1]: Entering directory `/e/rav1e/target/release/build/rav1e-748a63817d424d0b/out/build/CMakeFiles/CMakeTmp'
Building C object CMakeFiles/cmTC_dc4bc.dir/testCCompiler.c.obj
/E/MSYS/mingw/bin/gcc.exe   -ffunction-sections -fdata-sections -m64    -o CMakeFiles/cmTC_dc4bc.dir/testCCompiler.c.obj   -c /E/rav1e/target/release/build/rav1e-748a63817d424d0b/out/build/CMakeFiles/CMakeTmp/testCCompiler.c
cc1.exe: sorry, unimplemented: 64-bit mode not compiled in
make[1]: *** [CMakeFiles/cmTC_dc4bc.dir/testCCompiler.c.obj] Error 1
make[1]: Leaving directory `/e/rav1e/target/release/build/rav1e-748a63817d424d0b/out/build/CMakeFiles/CMakeTmp'
make: *** [cmTC_dc4bc/fast] Error 2

CMake will not be able to correctly generate this project.
Call Stack (most recent call first):
CMakeLists.txt:60 (project)
thread 'main' panicked at '
command did not execute successfully, got: exit code: 1
build script failed, must exit now', C:\Users\TNTI.cargo\registry\src\github.com-1ecc6299db9ec823\cmake-0.1.35\src\lib.rs:778:5
note: Run with RUST_BACKTRACE=1 for a backtrace.
warning: build failed, waiting for other jobs to finish...
The above message appears when using x86_64-pc-windows-gnu.

For me it works. Just install nasm.

I had to run first  "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars64.bat" and then run cargo build --release which built rav1e successful

Thank @moisesmcardona tnti
I have successfully built rav1e.


[Bug] Workplace chat does not trigger notifications

Expected Behavior
When I receive a message on Workplace, I should receive a notification and the badge icon should be updated accordingly.
Current Behavior
When I receive a message on Workplace, I do not receive a notification and the badge icon does not change.
Steps to Reproduce

Sign into Franz with a Workplace account
Minimize Franz
Ask someone to send you a message
Observe

Your Environment

Franz Version used: 5.0.0-beta.18 (5.0.0-beta.18.903)
Operating System and version: Macbook Pro - MacOS Sierra 10.13.6 (17G65)

By any chance, isn't there an option in Workplace to enable notifications? If not, it may also be useful to open an issue here.

@Wouter0100 the notifications are enabled and they work fine on the Workplace desktop and mobile apps. Also, the above link opens the Workspace integration for IBM.

@aberonni sorry! I see, this issue seems already fixed - but the recipes in Franz are lacking behind in updates. See this repository. It has been updated some days back with this fix. See here how to manually install a recipe from git, which will overwrite the ones from the centralised Franz repository.

@Wouter0100 thanks for getting back to me! Will close this issue now and try and install the recipe from git. Much appreciated!


Where are the C++ tests?

Running bazel test ... should invoke the tests for the C++ code, but it seems only to build it.

TODO: add a cc_test target to next2018/BUILD that exercises the cc test targets


QueryTablesIncludeFlags doesn't seem to be used anywhere within the QueryTables operation

This option doesn't seem to be used by the SDK, in the implementation detail, but is publicly exposed:
https://github.com/Azure/azure-sdk-for-cpp/pull/6154
It's probably worth going back to a source of truth and investigating. What does the REST API specs or service docs say here?
Maybe it was carried over from storage, where "include" is added as query parameter. Should the same be done here?
https://github.com/Azure/azure-sdk-for-cpp/blob/c168d736dddeaf0e589ba9fc1c415184c000715c/sdk/storage/azure-storage-blobs/src/rest_client.cpp#L788-L795
GoLang doesn't seem to have this option, though I am not familiar with the service or specifics of Go's implementation:
https://github.com/Azure/azure-sdk-for-go/blob/0387c89ceebae256c9ea717533c739b7a875d996/sdk/data/aztables/options.go#L115-L145

Marking as blocking release if we need to remove it, since this is public surface area, and can't be fixed after.
cc @RickWinter, @LarryOsterman

The REST docs for query tables don't mention any use of the include query param.
https://learn.microsoft.com/en-us/rest/api/storageservices/query-tables
But, they do mention setting the Accept request header to one of a few sets of Metadata values (one of application/json;odata=nometadata, application/json;odata=minimalmetadata, application/json;odata=fullmetadata:
https://learn.microsoft.com/en-us/rest/api/storageservices/query-tables#request-headers
We seem to hardcode it to minimalmetadata always (and only in the PrepXEntity operations).
https://github.com/Azure/azure-sdk-for-cpp/blob/c168d736dddeaf0e589ba9fc1c415184c000715c/sdk/tables/azure-data-tables/src/tables_clients.cpp#L1027
GoLang exposes this via options:
https://github.com/Azure/azure-sdk-for-go/blob/0387c89ceebae256c9ea717533c739b7a875d996/sdk/data/aztables/options.go#L129-L131
https://github.com/Azure/azure-sdk-for-go/blob/0387c89ceebae256c9ea717533c739b7a875d996/sdk/data/aztables/constants.go#L59-L67
cc @jhendrixMSFT

The other languages expose the Metadata option which let's users modify the accept request header when calling QueryTables. The REST API doc linked above mentions it.
Re-opening to consider what we want to do here.

done

https://github.com/Azure/azure-sdk-for-cpp/issues/6155#issuecomment-2448679389
Can you please link where this was fixed? What's the conclusion here.


I get this error, how do I fix it?

python3: can't open file '/content/gdrive/MyDrive/sd/stable-diffusion-webui/webui.py': [Errno 2] No such file or directory

you need to run all the cells from the top

I'm getting the same error and I definitely ran all the cells.

which notebook and how to reproduce the error ?

fast_stable_diffusion_AUTOMATIC1111.ipynb
I run all the cells and when I get to the bottom one I get the error.

use this link https://colab.research.google.com/github/TheLastBen/fast-stable-diffusion/blob/main/fast_stable_diffusion_AUTOMATIC1111.ipynb

I think that's the link I had. At any rate, I still get the error.

do a screenshot

I have same issue today. I am getting same error as above or this one.

I had same issue today. I got same error as above.
Fixed by deleting all SD files on G-Disk.

@ordinaryjohn77 try a fresh sd folder

That fixed it. Thanks!

I have this issue, I already tried twice, already deleted the sd folder on g drive and reinstalled.
I just pressed play on each cube.
I am following this guide:
https://colab.research.google.com/github/TheLastBen/fast-stable-diffusion/blob/main/fast_stable_diffusion_AUTOMATIC1111.ipynb
I firs I getted the error:
No module named 'pyngrok"
That I solved putting the line:
!pip install pyngrok
on the first line of last block
But still have the error :
can't open file '/content/gdrive/MyDrive/sd/stable-diffusion-webui/webui.py': [
Please help

I had same issue today. I got same error as above. Fixed by deleting all SD files on G-Disk.

I tried three time but still getting the error

you're probably using free colab and it's disconnecting you every 5 minutes

colab and it's disconnecting you every 5 minutes

Ok thanks,
So there is a way to fix ora I have just to give up to use google collab? (for sure I will not pay if not work even 1 time on free version xD)

Colab is slow and relatively expensive, I recommend the alternative, Paperspace or Runpod

Hey I've run into the same error and have tried deleting and reinstalling the sd folder from my g drive twice and have tried running all the cells from the top but I'm still running into the same error (python3: can't open file '/content/gdrive//sd/stable-diffusion-w/webui.py': [Errno 2] No such file or directory) and I have a 10$ subscription to Colab. I am using this note book of colab - fast_stable_diffusion_AUTOMATIC1111.ipynb and am utilizing my cpu to run colab


[wip] submit-queue: redo retest logic

This changes the required status logic a fair bit.

All PRs must pass all 'required' contexts at least once
Change e2e-not-required label name to retest-not-required
Create 2 types of 'required' contexts
RequiredStatusContexts and RequiredRetestContexts
All must be success to merge a PR but only RequiredRetestContexts
must be true twice.
Get rid of the custom flags for our unit and e2e tests
New flag to tell the bot how to request the requisite retests

WIP because this will take a little coordination in the core repo (label name changes)

@lavalamp something to look at during your boring weekend   :)

Description sounds like a good idea :)

@bgrant0607 @david-mcmahon

Thinking about this more-- I guess this will still catch problems where people break stuff, but it won't catch incompatibilities between two PRs. Hopefully those are rare enough that this is still a good idea for some fraction of our tests?

LGTM


Add redfish-obm-service schema and fix node view

Create Redfish OBM service schema file.
Fix nodes view template to handle a target list type.

@RackHD/corecommitters @zyoung51 @tannoa2 @uppalk1 @keedya @BillyAbildgaard @srinia6 @dalebremner @geoff-reid
@brianparry @srinia6: One of the changes below changes the relation target value.  Not all relationship values could be a reference to another resource,  for example Redfish endpoint relations:
       "targets": [
          "ComputeElement0",
          "StorageElement1"
        ],
        "relationType": "elementEndpoints"
      }

Was the intention to make all properties a reference link?

@anhou also submitted a PR (https://github.com/RackHD/on-http/pull/381) to fix node view, but had different solution. The API 2.0 style prefers link rather than raw identifier, so I'd prefer @anhou 's fix.
@brianparry

@jlongever : yes, we wanted to make all properties a reference link.  But didn't realize about "elementEndpoints".

@yyscamper How does @anhou's PR solve the problem that elementEndpoints targets are not a resource that can be referenced?  e.g. /api/2.0/nodes/StorageElement1 is an invalid request.

test this please

@jlongever I also didn't notice if the reference link is valid, just fix the syntax issue, I will close my PR. I‘m thinking, in previous implementation of relationType is for RackHD managed nodes, which is also assigned a mongoId(or other identifier), so maybe either a node is created for 'ComputeElement0' has a Id, or this info is not included in 'targets', just let them in catalogs?

@anhou there was a requirement to include endpoint elements as node relations for composed systems.

@anhou Also- generating new nodes for elements seems like an overkill.
Typically (at least following Redfish conventions) there are designated ref properties for a resource.  Seems like 2.0 API applies refs links as the the resource value.

@jlongever Thanks for clarification! agree 'generating new nodes for elements seems like an overkill.' so although it's a requirements, personally, I prefer to include endpoint elements in catalogs.  Or maybe we have to extend original thoughts of 'targets' (at least for me) that it's for RackHD manged nodes. just some thoughts :) not a comment for this PR
yeah, redfish/odata convention is well designed. API 2.0 could refer to it
:+1: for me

@jlongever : How to distinguish the relation node is RackHD generated node or from elementEndpoints?  I think a raw identifier is hard to distinguish.

@yyscamper They can be distinguished by the Chassis (enclosure) node relation.    i.e. enclosed by this enclosure target with these elements.

@jlongever : enclosure relation also applies for RackHD generated nodes, as the discovery-workflow will auto generate enclosure nodes. So I think this is still not enough for distinguishability.

@yyscamper there might not be any relations since no Systems have been composed yet so the enclosure relation tasks won't set those up.
I don't understand your concern - a compute node will have an enclosedBy target and elementEndpoint targets.   It's implied those elementEndpoint targets are from the enclosedBy target because the Chassis (enclosure node) resource provides the element catalog.

@jlongever : I didn't realize the difference of relationType.  I understand it right now. Anyway, To convert the relation target to link should still be the right direction for API 2.0 though we cannot resolve all challenge now. That's not the scope of your PR. We can move the discussion to otherwhere.
For this PR is :+1:  with a nice-to-have suggestion to add "additionProperties: false"


Adding beanstalk check and a few other minor updates

I am also pulling ec2 instance id config info from multiple fallback locations on the clients config so we can rename the instances to something that makes sense - such as reflecting a cloudformation stack name + instance id, then letting the client configure an AWS block like so:
{
  "client": {
    "stack": "{{ .Env.STACK_NAME }}",
    "aws": {
        "instance_id": "{{ .Env.INSTANCE_ID }}"
    }
  }
}

@brendangibat put in a pull request with sensu-plugins/sensu-plugins-aws and I'll pull that into my branch until it's merged into sensu-plugins


unable to build lib with cmake

Hello! Please use x64 native tools that come with MSVC compiler

Now try to configure project again

And also i've changed presets names so just use <your platform>-<build type> like "windows-release"


Zeppelin Debian build files?

Hi
We're trying to make a custom Zeppelin build and looking at https://github.com/GoogleCloudPlatform/dataproc-initialization-actions/blob/master/apache-zeppelin/zeppelin.sh, it's doing apt-get install from this repo:
http://dataproc-bigtop-repo.storage.googleapis.com/
Just wondering if the Debian build files are publicly available somewhere?

We build our packages using a fork of Apache Bigtop, which we have not made publicly accessible at this time.
In the case of Zeppelin we have made no modifications from Bigtop HEAD (which uses pristine Zeppelin 0.5.6), aside from setting the versions of Spark and other components. You are welcome to use Bigtop, but I would suggest manually installing your build into /usr/local/ or /opt/ and optionally using checkinstall to create your own deb package.

@pmkc thank you for clarification!
So does that imply that in order to get a new version of Apache Zeppelin on DataProc you would need it to be added to Apache BigTop first?
Asking, as these is 0.6.1 coming with Spark 2.0 support and a build-in interpreter for BigQuery.

When 0.6.1 is released, we will upgrade it for (Dataproc image version 1.1)[https://cloud.google.com/dataproc/concepts/dataproc-versions], which currently has Zeppelin 0.6.0 with spark excluded.
The initialization action, which apt-get installs Zeppelin, will pick up the change. You are more than welcome to build Zeppelin at HEAD and edit the initialization action to use that in the meantime.

@pmkc just FYI, Apache Zeppelin 0.6.1 has just been released

@bzz As a heads up, the initialization action should pull Zeppelin 0.6.1 on Dataproc 1.1 now.


Case Sensitive Configuration Type Folders

Describe the bug
Configuration type folder names are case sensitive. No configuration will be applied if folders are not lowercase.
But, no error is shown if folders are not lowercase.
How to reproduce
Steps to reproduce the behavior:
Create a folder called auto-tag with valid config. This will work:
monaco.exe --environments=environments.yaml
2020-11-20 08:57:32 INFO  Dynatrace Monitoring as Code v1.0.0
2020-11-20 08:57:32 INFO  Executing projects in this order:
2020-11-20 08:57:32 INFO        1: projects\baseconfig\auto-tag (1 configs)
2020-11-20 08:57:32 INFO  Processing environment my_environment...
2020-11-20 08:57:32 INFO        Processing project projects\baseconfig\auto-tag...
2020-11-20 08:57:32 INFO  Deployment finished without errors

Delete the tag rule and rename auto-tag to Auto-Tag. Re-run monaco:
monaco.exe --environments=environments.yaml
2020-11-20 08:57:32 INFO  Dynatrace Monitoring as Code v1.0.0
2020-11-20 08:57:32 INFO  Executing projects in this order:
2020-11-20 08:57:32 INFO        1: projects\baseconfig\Auto-Tag (0 configs)
2020-11-20 08:57:32 INFO  Processing environment my_environment...
2020-11-20 08:57:32 INFO        Processing project projects\baseconfig\Auto-Tag...
2020-11-20 08:57:32 INFO  Deployment finished without errors

This time, no tag rule is created.
Expected behavior
Either accept case insensitive foldernames or print a warning for invalid folder names.

I'm going to take a look at this. My plan is to:

Leave the folder names case-insensitive because then they still match the way they are defined in api.go. So, configs in an Auto-Tag folder would not be deployed.
Print a warning for the user if the tool encounters a folder name which is named the same way, as an api folder but with a different uppercase/lowercase spelling.
Print a warning if the user defines a project folder with the same name name as an api folder, but with a different uppercase/lowercase spelling.
Add documentation to the readme that the API folders are case-sensitive.


Unable to edit and resave existing feature type

Based on the updated error feedback in the Type editor, I am unable to save an existing feature type after editing.
Steps to replicate:

Create a new feature type using custom yaml and save
Select to edit the existing type
Make an edit and attempt to save your changes

This seems to be fixed with new add types modal #667


[NEW] Set leaderboard start date

Introduces the capability to set the starting date for the leaderboard. All the stats on the leaderboard will be displayed counting all the PRs and Issues created after the selected start date.

@djcruz93 there seem to be some merge conflicts in API.js. Can you please resolve them?

@djcruz93 there seem to be some merge conflicts in API.js. Can you please resolve them?

@lolimay once the PR#48 gets merged, I'll rebase this PR to the updated master, which will then automatically resolve conflicts.

@lolimay once the PR#48 gets merged, I'll rebase this PR to the updated master, which will then automatically resolve conflicts.

@lolimay once the PR#48 gets merged, I'll rebase this PR to the updated master, which will then automatically resolve conflicts.

done. Please do!

@lolimay once the PR#48 gets merged, I'll rebase this PR to the updated master, which will then automatically resolve conflicts.

done. Please do!


Home Assistant integration needed

Someone has to come up with an integration (or at least the boilerplate I can build up upon) that makes use of this project.
This is what I need:

A boilerplate, which allows me to add the integration via Home Assistants UI
It has to allocate 3 files (json) where hahomematic can store its cached data
In the first part of the configuration it should ask for the local listening IP and port of the callback-server. Both options are optional
After that the user has to be able to configure an arbitrary number of hosts, which need the following options:

name (string)

host (IP address or hostname)

port

path (string, optional, default should be /)

username (string, optional)

password (string, optional)

tls (checkbox to enable encryption)

verify_tls (checkbox to enable SSL/TLS verification)

callback_hostname (string, optional IP address or hostname)

callback_port (optional port)

local_port (optional port)

json_port (optional port)

json_tls (checkbox to enable encryption for communication via JSON-RPC)

Any help is welcome!

Great initiative! Thank you very much for this. I've been using the old integration for years now. It is working fine with exactly the flaws you mention above.
I can try to contribute a bit as my time allows. I've got a bunch of devices here. Async Python and networking is fine for me, but about the HA integration I also have no clue.
One thing would be good: Design the architecture in away that as much as possible can be tested without HA. Setting up an editable HA instance for development was the most complicated thing when I did my tiny contribution some time ago

but about the HA integration I also have no clue.

That's exactly the part I need help with because I don't know much about the modern integrations as well. 😅 Apart from some small details and custom devices this project is already working. I'll let you know if there's something I need help with.
Right now I got the basics going, but I don't know if everything makes sense for the integration. Hence I need the HA-part to do more testing and possibly do some changes.

Until now, I have also only developed old-style custom_components or fixed existing ones.
Maybe we could start from here?
https://github.com/custom-components/integration_blueprint

@danielperna84 I'd really like to help, but unfortunately I'm not skilled enough to do more than copy and adapt small code fragments, as I already did for pyhomematic. But if you need help testing hahomematic I'm definitely available (RaspberryMatic VM, ~25 device types, ~60 devices in total - so it's not a very big setup, but it's not the smallest either).

For reference: this blog post seems to provide a way how the host-steps can be repeated. Hope that's still valid.

Regarding the cache-files I had a look at other Home Assistant components. The TTS integration allows to configure a path for the cached audio-files. I guess a simlar approach would also make sense for hahomematic. Until now I have assumed the exact files should be configured. But maybe just setting a path is more futureproof, as hahomematic could just do whatever it wants based on a single configured path.

hi @danielperna84.
I'm happy to help testing the new integration.  I just setup a ha sandbox environment. so let me know how I can help to support!

To whom it may concern: I was provided with the base structure for a custom component, which I have published in the custom_homematic repository. I did not yet have time to test it or have a thorough look at it. As far as I know, this doesn't do much yet, except providing the config flow which allows to configure the interfaces one after another, just like I asked for.
I will have a look at it some time in the future if I have more time. Until then anyone else of course can have a look at it and try to come up with something that is working.
The feedback I got with hahomematic so far is, that it creates to many entities. So we might have to gather some commonly uninteresting paramters in some list to exclude them from being created as an entity.

The feedback I got with hahomematic so far is, that it creates to many entities.

The new entity categories may help, too.

The new entity categories may help, too.

Currently I'd say that the entity categories do not help, because they only make the device view clearer - in the entity picker and states list you still have all entities unsorted. But of course this can change at some point, since it's just the first HA release with entity categories.

Hey,

The feedback I got with hahomematic so far is, that it creates to many entities. So we might have to gather some commonly uninteresting paramters in some list to exclude them from being created as an entity.

Excluding some undoubtedly uninteresting parameters sounds like one step. As for the rest, I am a big fan of how the Tasmota integration approached that issue:

Important sensors are provided as expected, arguably less interesting ones are disabled by default and can be enabled by the user as needed (in the example I've enabled the RSSI entity).

I think this issuer can be closed her. Further opinions and testing feedback should be collected in a discussion.


Update amalgamation for 3.38.0

https://sqlite.org/releaselog/3_38_0.html

The JSON functions are now built-ins. It is no longer necessary to use the -DSQLITE_ENABLE_JSON1 compile-time option to enable JSON support. JSON is on by default. Disable the JSON interface using the new -DSQLITE_OMIT_JSON compile-time option.

@mattn As a followup I guess we can ditch sqlite3_opt_json1.go now.

I would like to make it a rule that only I update the amagramation code, but since this PR has already been reviewed, so I would like to accept this PR this time.

If it is or becomes no good, feel free to take it over or close it. Thanks!

Codecov Report

Merging #1019 (f0b076c) into master (ae2a61f) will decrease coverage by 0.13%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master    #1019      +/-   ##
==========================================
- Coverage   46.17%   46.04%   -0.14%
==========================================
  Files          11       11
  Lines        1490     1490
==========================================
- Hits          688      686       -2
- Misses        666      667       +1
- Partials      136      137       +1

Impacted Files
Coverage Δ

sqlite3.go
52.97% <0.00%> (-0.23%)
:arrow_down:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update ae2a61f...f0b076c. Read the comment docs.

I'll make PR to remove sqlite3_opt_json1.go my-self in later. Thanks!


Refactor linked list hashing

The current hashing for the initial state non-deterministically guesses the accounts and storage linked list, which define the leaves of the initial state and storage tries respectively, as well as all the internal nodes and hashed nodes of the state trie and storage tries. On the other hand, the hash of the final trie is constructed by applying the following modifications to the inital tries:

Delete all nodes which where deleted from the initial linked lists.
Insert all nodes in the final linked lists

Both procedures require traversing the whole linked lists, which may contain several nodes. Additionally, insertions and deletions usually involve the creation of a new trie for accounting the changes in the trie structure (for example, an extension node becoming a branch node)
A more efficient way of hashing would be as follows. For the initial trie we non deterministically guess the linked lists, the internal nodes of the trie, and separately the hash nodes. For the final trie we guess all the internal nodes but reuse the final linked lists nodes as well as the hash nodes used in the initial trie, in the same order and with the same nibbles as in the initial trie.
Provided the guessed internal nodes are correct, that is branch nodes have at least two children and extension nodes child is not another extension node, the list of internal nodes seems to be unique and hence correct.

idk why, but I'm struggling proving that the linked lists. + hashed nodes (with nibbles) imply a unique list of non-terminal nodes. I'm quite sure this must be the case, as otherwise there might be more than 1 hash for the same state. At least I'm ok with this last informal argument.


Update CI script cassandra to retry download if it fails

seen multiple download failures in CI logs, added 5 retries to fix these

Nice.
Side note: this will also fail as soon as Cassandra releases a new version (mirrors do not maintain older versions). I was thinking about using Apache archives as other projects (like ccm) already do to retrieve our Cassandra version.


No pointer on showSimplePickerLocation()

Hello, I found a new issue on the simple picker: the pointer (icon) at location initPosition is not showing up. It doesn't work on iOS and Android. My code is:
// Show the map and await for a click
var newLocation = await showSimplePickerLocation(
context: context,
isDismissible: true,
title: "Set bird feeder location",
textConfirmPicker: "Confirm",
initPosition: _cameraLocation,
zoomOption: ZoomOption(initZoom: 10),
radius: 8);

As a follow up of my previous comment, the confirm button doesn't work either.

yeah that widget i will update with new API because
for some reason i dont need to built native Ui for it
so I changed it to be able to add custom flutter where you can add animated picker marker

So the fix will be included in your next release or will you have a dev version before ?

i will update the widget in dev version before here we can test it together
i will try to do update today or tomorrow

check our latest version 1.0.0-dev.4
we improved the picker dialog
we added custom widget where you can put any picker or you can use our existing widget
you see the example for more details

Works fine, thanks again for your reactivity.


Change Tech Image

Following image needs to be updated that matches the SILK vibe.

@Remy-Reveltek, I did 2 PRs for now.


test(examples): add example React app with ts-jest

Test plan

Green CI
Does this PR introduce a breaking change?

[ ] Yes
[x] No

Other information
N.A.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 94.159%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
1167

Relevant Lines:
1194

💛  - Coveralls


themes: add base16

See https://github.com/chriskempson/base16/issues/174 for an explanation of why base16 is useful.

Can you upload a screenshot?
Also, the linked explanation isn't related to this change, since this is just a theme and does not add the ability to use base16 to generate themes for f-s-h.

This is base16-default-dark with vim to the left and fast-theme -t to the right so you can see that the colors are similar.

Also, the linked explanation isn't related to this change, since this is just a theme and does not add the ability to use base16 to generate themes for f-s-h.

It explains how you're supposed to change the base16 theme only in the terminal and all terminal applications using the generic base16 theme will inherit the new colors. I used it as "a set of themes they can download for a couple of programs of their choosing" as mentiond in that issue for a long time before realizing it. :P I just put the link there in case people don't understand the point of base16, since no one else added a base16 theme yet.

So if I understand correctly (and just for my understanding), adding the base16 theme here is somewhat breaking the base16-shell philosophy?
I briefly used  base16-shell w/ macintosh theme, but found that a single color theme isn't great because maybe nvim looked good, but made ls & exa so hard to read. And it made differentiating programs in tmux panes harder to differentiate from a glance.
Related to this issue, should the file name include default-dark or renamed (e.g., base16-dark)?

So if I understand correctly (and just for my understanding), adding the base16 theme here is somewhat breaking the base16-shell philosophy? I double dog dare you to implement base16 globally in zinit ;). That would be really cool

This is a regular base16 theme, base16-shell would have to be implemented separately.

I briefly used base16-shell w/ macintosh theme, but found that a single color theme isn't great because maybe nvim looked good, but made ls & exa so hard to read. And it made differentiating programs in tmux panes harder to differentiate from a glance.

I never used base16-shell but I never had problems with regular base16 themes and ls/exa. Never used tmux.

Related to this issue, should the file name include default-dark or renamed (e.g., base16-dark)?

This isn't the default-dark theme. It adapts to any base16 theme you set your terminal to, light or dark.
https://github.com/sharkdp/bat/pull/543
https://github.com/sharkdp/bat/pull/1111
The explanations in these similar PRs to bat may make things clearer.


libspatialindex: 1.8.5 → 1.9.3

Description of changes
Changelog
Things done

Built on platform(s)

[x] x86_64-linux
[x] aarch64-linux (cross)
[x] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] 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/)
22.11 Release Notes (or backporting 22.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
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

A little obscure but the pkgsStatic variant doesn't build anymore with this version (where it did before):
/nix/store/c3qpvp6s9bbskqsay1q3snabqls544w7-x86_64-unknown-linux-musl-binutils-2.38/bin/x86_64-unknown-linux-musl-ld: /nix/store/ym1418bazp23rqg9l43kqzhvv2cdibby-x86_64-unknown-linux-musl-stage-final-gcc-11.3.0/lib/gcc/x86_64-unknown-linux-musl/11.3.0/crtbeginT.o: relocation R_X86_64_32 against hidden symbol `__TMC_END__' can not be used when making a shared object
/nix/store/c3qpvp6s9bbskqsay1q3snabqls544w7-x86_64-unknown-linux-musl-binutils-2.38/bin/x86_64-unknown-linux-musl-ld: failed to set dynamic section sizes: bad value
collect2: error: ld returned 1 exit status

Likely due to the switch to cmake. However, I am not very experienced in fixing pkgsStatic issues.

Likely due to the switch to cmake. However, I am not very experienced in fixing pkgsStatic issues.

Looks like fixed in upstream: https://github.com/libspatialindex/libspatialindex/pull/183


Cannot compile last version

When I run make, i got these errors:
====================
/Users/svm/Documents/Github/XVim/XVim/IDESourceCodeEditor+XVim.m:17:9: fatal error: 'NSobject+ExtraData.h' file not found
#import "NSobject+ExtraData.h"
^
1 error generated.
<..>
** BUILD FAILED **
The following build commands failed:
CompileC /Users/svm/Library/Developer/Xcode/DerivedData/XVim-fnladrvlpfzvmqezlzblfhblgcsq/Build/Intermediates/XVim.build/Release/XVim\ for\ Xcode5\ and\ 6.build/Objects-normal/x86_64/IDESourceCodeEditor+XVim.o XVim/IDESourceCodeEditor+XVim.m normal x86_64 objective-c com.apple.compilers.llvm.clang.1_0.compiler
(1 failure)
make: *** [release] Error 65
============================
After that i checked out commit b5bf219653d12131d893b5e4607e34541bc05156 and make works well on it.

---
Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/27984236-cannot-compile-last-version?utm_campaign=plugin&utm_content=tracker%2F252770&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F252770&utm_medium=issues&utm_source=github).

The latest master and develop branch should fix this. Please check.

I consider it is fixed. Please reopen if you still have problems.


Track comparison with in specific time

how can i modify the program for the specific start time and end time without reading entire file. actually i need to modify the program for reading and comparing with specified start time and end time..but, actually the file reads completely and then only its comparing the parameter specified.how can i modify the code for specific read start time and end time without reading it fully?

You can specify the startAt and seconds parameters, during both fingerprinting and query time.
// query the underlying database for similar audio sub-fingerprints
 var queryResult = queryCommandBuilder.BuildQueryCommand()
                                         .From(queryAudioFile, secondsToAnalyze, startAtSecond)
                                         .UsingServices(modelService, audioService)
                                         .Query()
                                         .Result;


MatSelect with appearance outline has weird height in table

Bug:
When a select in a mat-form-field with appearance outline is put in a table, its height get weirdly skewed compared to an input in a similar mat-form-field.
Issue happens, at least, on Windows, in Chrome, Opera, Firefox, Edge and IE 11. (Sounds like all browsers)
What is the expected behavior?
The select and the input should have the exact same height
What is the current behavior?
The select is weirdly disproportionate (too high) compared to the input.
What are the steps to reproduce?
https://stackblitz.com/edit/select-in-table?file=app%2Fselect-in-table.html
Which versions of Angular, Material, OS, TypeScript, browsers are affected?
OS: Windows 10
Typescript version: 2.7.0 and later (up to 3.0.3)
Angular: 6.1.7
Material: 6.4.7

As a workaround, the following code seems to fix the issue without visibly changing the height of any inputs:
table .mat-form-field-appearance-outline .mat-form-field-flex
{
	// Force all inputs to have the same height.
	// Otherwise mat-select are doing their own thing and gain extra-height
	// https://github.com/angular/material2/issues/13198
	height: 4.2em;
}

Obviously, this requires view encapsulation to be disabled for these rules (either using ViewEncapsulation.None or loading the CSS as a global style or using ::ng-deep with ViewEncapsulation.Emulated).


Cannot build for Windows 10

System information

OS Platform and Distribution (e.g., Linux Ubuntu 20.04, WSL2): Windows 10
Target (e.g. desktop cpu, android arm64): desktop cpu/gpu
Bazel version: 4.0.0
Python version: 3.9.4
GCC/G++ version:
Unity version: 2020.3.0f1
Android NDK version (if building for Android):
Xcode version (if building for iOS):

Describe the problem
I've got a build error at the beginning with the bazel command.
The weird thing is that I can copy/paste the bazel command and run it in the console and it works.
Steps to reproduce the issue
Provide the exact sequence of commands / steps that you executed before running into the problem.
python build.py build --desktop gpu -v
Full logs
D:\MediaPipeUnityPlugin-master>python build.py build --desktop gpu -v
INFO (build.py): Building protobuf sources...
DEBUG (build.py): Running `bazel --output_user_root C:/_bzl build -c opt --action_env PYTHON_BIN_PATH=C://Python39//python.exe //mediapipe_api:mediapipe_proto_srcs`
Traceback (most recent call last):
  File "D:\MediaPipeUnityPlugin-master\build.py", line 362, in <module>
    Argument().command().run()
  File "D:\MediaPipeUnityPlugin-master\build.py", line 102, in run
    self._run_command(self._build_proto_srcs_commands())
  File "D:\MediaPipeUnityPlugin-master\build.py", line 47, in _run_command
    return subprocess.run(command_list, check=True)
  File "C:\Python39\lib\subprocess.py", line 505, in run
    with Popen(*popenargs, **kwargs) as process:
  File "C:\Python39\lib\subprocess.py", line 951, in __init__
    self._execute_child(args, executable, preexec_fn, close_fds,
  File "C:\Python39\lib\subprocess.py", line 1420, in _execute_child
    hp, ht, pid, tid = _winapi.CreateProcess(executable, args,
FileNotFoundError: [WinError 2] Le fichier spécifié est introuvable

(last line is in french means file not foud. but does not specify any file)
Additional context

Can you run bazel --version ?
If not, please set the path to bazel to %PATH%.
In addition to that, you cannot build native libraries for Desktop GPU on Windows, so please run python build.py build --desktop cpu -v instead.

D:\MediaPipeUnityPlugin-master>bazel --version bazel 4.0.0
same problem for cpu version

Can you run the below command?
bazel --output_user_root C:/_bzl build -c opt --action_env PYTHON_BIN_PATH=C://Python39//python.exe //mediapipe_api:mediapipe_proto_srcs

Ok I think I finally found it.
I installed bazel with npm, and python didn't like that (although terminal found it)
Solved, thanks!


⚠ Bofrost.be has degraded performance

In 5daa530, Bofrost.be (https://www.bofrost.be) experienced degraded performance:

HTTP code: 200
Response time: 1549 ms

Resolved: Bofrost.be performance has improved in 03fc7f5.


Contigs QC

QC contigs (rough items, this if after #3, so to be done in a couple of months):

sylph or KMCP on contigs
Run CheckM

have only one single-copy

standard assembly stats including N50, genome length, num contigs
Map contigs to human genome and filter/count how many map to human;

This was done, but not by me