Great job!!

Wonderful job, friend.
Can you please tell us what's the performance you got with this approach? Do you have some statistics or something?
Regards!

Hi, mokemokechicken
It's a wonderful project, keep it going!

Hi, thank you for your compliment!

performance you got with this approach? Do you have some statistics or something?

Currently, not so strong.
I do not do objective evaluation because I do not know how to do it, but it is still a level I can win.
The 7th generation model win http://kuina.ch/board_game/a01 's beginner player(the left icon of 初心者).
The progress of model evolution is as follows.

model generation
winning percentage to best model
Time Spent(hours)

1
-
-

2
94.1%
-

3
63.4%
13

4
62.0%
3

5
56.7%
8

6
67.3%
7

7
59.0%
3

8
59.7%
6

9
59.4%
3

10
55.7%
5

11
57.9%
9

12
55.6%
5

13
56.5%
7

14
58.4%
20

15
62.4%
3

16
56.0%
11

17
64.9%
17

18
55.2%
19

19
57.2%
33

20
55.7%
12

Hi, @mokemokechicken
Forgive my ignorance, I wonder what is the game that your agent is playing? It seems like a black-white flip stones game played on a 8x8 grid world. Could you please provide any background on this game? How is it similar and different from the game of Go?
And I am quite stuck on the implementation of AVP-MCTS in python. I am not new to python, but I haven't practiced coroutine programming before. Especially, could you please explain to me the idea behind player.py line 172-174. It would be great if you can take a look at my code (I have a feeling that I have to combine the MCTS tree node class and the tree search control class together).

About Reversi game: https://en.wikipedia.org/wiki/Reversi

Hi, @yhyu13

the idea behind player.py line 172-174

Although I may not accurately grasp the intent of the question,
it is "Future" design pattern and "Producer and Consumer" design pattern.
You know, costs of TF prediction are very high and it is better to predict collectively.
Actual prediction is done collectively by Consumer(line 190-209), the requests are queued by Producer(line 172, 213).
The prediction results should be returned to the Producer, so Future pattern is useful.

AVP-MCTS

I saw your code. It is difficult to make useful comments,
but in case of your process pool architecture, I think it is better that
the main controller just queues each search iteration(1600) and they run in the pool(process pool).
Synchronize the each results(N, W and Q) while paying attention to the race condition.
Prediction worker(Producer and Consumer pattern) is also useful to improve performance(like the paper).
If you want to implement timeout, main controller decides timeout and collect results(about N) at that time, decides the next move.

@Zeta36 Thanks, it is helpful. And I just know that Reversi also sparks interests of A.I. in the late 90's. One of the professor at U of Alberta, Michael Buro was the pioneer in solving this challenge.
@mokemokechicken I have put TreeNode, NN and MCTS in the same class, it does sometimes to get it correct. I will let review it when I am ready.

model generation
winning percentage to best model
Time Spent(hours)

1
-
-

2
94.1%
-

3
63.4%
13

...

@mokemokechicken in your table, what is the "generation" mean? Generation of best model, or generation of trained model? As we can see every generation beats best model over 55%, so I guess it is the former one?

@gooooloo Yes, it is Generation of best model.

@mokemokechicken got it. Thank you!

@mokemokechicken
HI, I've learned a lot from your coroutine implementation of MCTS in python. Please take a look: AVP-MCTS in python..
Also, I was recommended to compile it with Cython. The C compiler optimize my tree search a little bit.
Trough method profiling, I found two bottleneck:

Expand leaf node
Evaluate leaf node

(1) has to to with data structure, and (2) has to do with whether or not I am using GPU. The supervised training on Volta instance tells me that it is able to process ~1450 samples per second (including I/O) with 20 blocks resNet. For a small batch ready to be evaluated (size 8~16), it should take about 0.01 seconds. However, for 1600 iterations, there has about 200 evaluations in total. So 200*0.01=2s is far away from DeepMind's 0.4 seconds per move. On my 4 cpus macbook, 1600 iterations takes about 5.6 seconds (excluding evaluation), so I will give a try for machines with more and better cpus.
My question at this moment is:

What does margin in the method prediction worker does? Why is avoid finishing before other searches starting important?
What is your tip to find the best combination of the number of Semaphore and the size of queue?

Regards,
Hang Yu

@mokemokechicken
Could you please tell me how did you manage to make the download_the_best_model.sh? Where are the files stored? I am trying to upload/download training dataset without using git lfs.

Hi, @yhyu13

APV-MCTS in python

I think it is a good idea to separate NetworkAPI from MTCS.
FYI: according to https://gogameguru.com/i/2016/03/deepmind-mastering-go.pdf, they set virutual loss to 3 .

So 200*0.01=2s is far away from DeepMind's 0.4 seconds per move.

Google's TPU machine might perform better than other GPUs.
If you have 4 TPUs or GPUs, there may be a more efficient implementation using coroutines.

What does margin in the method prediction worker does? Why is avoid finishing before other searches starting important?

RUNNING_SIMULATION_NUM is incremented in the coroutine.
I thought execution order of coroutines is not controllable (depending on implementation or not??).
If the prediction worker coroutine starts before all other coroutines, the worker will finish immediately.
Maybe it is a very rare case, but I was a little worried, so I did it.

What is your tip to find the best combination of the number of Semaphore and the size of queue?

It is a very difficult question...
I think there are two viewpoints. One is search performance, the other is search accuracy.
For the accuracy, I think single thread(sem=1) is best.
Larger sem is better performance, but it should be capped anyway and the accuracy may drop slightly.
Performance also depends on the execution environment, I think that there is only the experiment to adjust.

about download_the_best_model.sh

I just push models in https://github.com/mokemokechicken/reversi-alpha-zero-models.
I do not use Git LFS (store as normal files...).
Because the file size is large, I feel like I'm getting angry from github ...
I would like to change it if there is a better way.

@mokemokechicken
Here is two of my profile, I found that the time cost per move search really depends on the amount of illegal moves encounters. It will spend the most time if every leaf node is expandable (which calls the neural network & create all leaves nodes-> I tried to put illegal check in the expansion phase so that it creates less children nodes, but I wasn't find a hacky way to do so it's even slower).
First, the selected child node is generated by random process that will invoke the most evaluation & expansion (BTW, the elements in queue is upper bounded by the number of semaphores, i.e. it's better to have queue_size>=num_sem, so the queue is never full, am I right?)
2017-11-11 00:37:50,026 [45186] DEBUG    model.APV_MCTS: Searched for 9.05447 seconds

1747521 function calls in 3.358 seconds

   Ordered by: cumulative time, internal time, call count

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
     1593    0.040    0.000    3.358    0.002 APV_MCTS.py:123(expand)
     1593    0.712    0.000    3.284    0.002 APV_MCTS.py:127(<dictcomp>)
   576666    1.674    0.000    1.674    0.000 APV_MCTS.py:84(__init__)
   576666    0.744    0.000    0.903    0.000 index_tricks.py:516(__next__)
   576666    0.158    0.000    0.158    0.000 {built-in method builtins.next}
     1593    0.002    0.000    0.018    0.000 fromnumeric.py:138(reshape)
     1593    0.011    0.000    0.016    0.000 fromnumeric.py:55(_wrapfunc)
     1593    0.005    0.000    0.012    0.000 index_tricks.py:513(__init__)
     1593    0.005    0.000    0.007    0.000 numeric.py:463(asarray)
     1593    0.004    0.000    0.004    0.000 {method 'reshape' of 'numpy.ndarray' objects}

     1593    0.002    0.000    0.002    0.000 {built-in method numpy.core.multiarray.array}
     1593    0.001    0.000    0.001    0.000 index_tricks.py:530(__iter__)
     1593    0.001    0.000    0.001    0.000 {built-in method builtins.getattr}
     1593    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
        0    0.000             0.000          profile:0(profiler)

Second profile is made by a run with a lot of illegal moves, thus there are 4x less expansion & evaluation:
2017-11-11 00:33:19,549 [45135] DEBUG    model.APV_MCTS: Searched for 5.97132 seconds

116282 function calls in 0.136 seconds

   Ordered by: cumulative time, internal time, call count

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
      106    0.002    0.000    0.136    0.001 APV_MCTS.py:121(expand)
      106    0.039    0.000    0.132    0.001 APV_MCTS.py:125(<dictcomp>)
    38372    0.059    0.000    0.059    0.000 APV_MCTS.py:84(__init__)
    38372    0.025    0.000    0.033    0.000 index_tricks.py:516(__next__)
    38372    0.008    0.000    0.008    0.000 {built-in method builtins.next}
      106    0.000    0.000    0.001    0.000 fromnumeric.py:138(reshape)
      106    0.001    0.000    0.001    0.000 fromnumeric.py:55(_wrapfunc)
      106    0.000    0.000    0.001    0.000 index_tricks.py:513(__init__)

      106    0.000    0.000    0.000    0.000 numeric.py:463(asarray)
      106    0.000    0.000    0.000    0.000 {method 'reshape' of 'numpy.ndarray' objects}
      106    0.000    0.000    0.000    0.000 {built-in method numpy.core.multiarray.array}
      106    0.000    0.000    0.000    0.000 index_tricks.py:530(__iter__)

DeepMind claim its average search time per move is 0.4, meaning I have to take the average of the upper bound and the lower bound. In this case, full expansion and only root expansion.
Third, the profile generated by only root expansion (with 8 sem on 4 cores machine):
2017-11-11 00:58:00,998 [45373] DEBUG    model.APV_MCTS: Searched for 2.57048 seconds

         2194 function calls in 0.002 seconds

   Ordered by: cumulative time, internal time, call count

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
        2    0.000    0.000    0.002    0.001 APV_MCTS.py:123(expand)
        2    0.001    0.000    0.002    0.001 APV_MCTS.py:127(<dictcomp>)
      724    0.001    0.000    0.001    0.000 APV_MCTS.py:84(__init__)
      724    0.000    0.000    0.001    0.000 index_tricks.py:516(__next__)
      724    0.000    0.000    0.000    0.000 {built-in method builtins.next}
        2    0.000    0.000    0.000    0.000 fromnumeric.py:138(reshape)

        2    0.000    0.000    0.000    0.000 fromnumeric.py:55(_wrapfunc)
        2    0.000    0.000    0.000    0.000 index_tricks.py:513(__init__)
        2    0.000    0.000    0.000    0.000 numeric.py:463(asarray)
        2    0.000    0.000    0.000    0.000 {method 'reshape' of 'numpy.ndarray' objects}

Interestingly enough, the total time it takes with 16sem, 8 sem, 4 sem, 2 sem and 1 sem are the same (about 2.5s) with root expansion only. This is understandable because it doesn't need extra coroutines.

@yhyu13

illegal moves

I think it is a good idea to check illegal moves in the expansion phase.
As learning of that model proceeds, illegal moves will cease.

it's better to have queue_size>=num_sem, so the queue is never full, am I right?

Yes, you are right.
timing about add/remove virtual_loss
in leaf nodes, I think virtual_loss_undo() should be done around backup_value_single() .
this timing is too early not to block other coroutines.
virtual_loss_do() is done in beginning of start_tree_search().
so, a node of self.children[select_move] (L240) 's virtual loss is added later.
Then, other coroutines can select the node before vitual loss added.
The virtual loss should be added before await. (after await, another coroutine will restart).

@mokemokechicken

I think it is a good idea to check illegal moves in the expansion phase.
As learning of that model proceeds, illegal moves will cease.

I've tired that, it makes code run slower because it doesn't reduce the total iterations at each expansion. It is still 362 because I need to check validity.
Also, do you have any idea about resigning games with a certain threshold? It sounds like a very convenient way to early stop a game and save time. I am not sure I understand the false positive rate:

If I want to measure false-positive, I would replay all resigned games from the point of resign and see if I can get a win ratio better than 5%. I am not sure I understand how does it work.

timing about add/remove virtual_loss

Thanks you so much for spotting my mistakes, it has improved my code!

@yhyu13

idea about resigning games with a certain threshold?

I think it is not difficult.
Like the paper,

disable resignation in 10% of self-play games and play until termination.
check the games that met resign condition and the final results. The games of win after resign is false-positive.
3 If false-positive rate is larger than 5%, relax resign condition.

@mokemokechicken
Thanks! So of these 10% self-play game, the algorithm would resign N games, and among those N games, I want make sure that the win ratio is less than 5%.

@mokemokechicken
I manage to refractory the APV_MCTS_2.py by using @classmethod. I believe now it not only looks better but also run faster.
But as I said earlier, the main reason for speed up comes from going into more illegal move so that the expensive expansion is not invoked.
When comparing APV_MCTS.py and APV_MCTS_2.py, I found even though their hyperparameters are the same, the search result is quite different consistently, see this line in second version and this line in the first version. The second version consistently expand less leaf nodes than the first version. The best guess for me is that some coruntines bypass the virtual_loss_do() and manage to select the same location for both player, thus create illegal move in early game.
I also found adding dirichlet noise is expensive because the data structure of my MCTS node has no phyonic way to do it see this line.

@mokemokechicken, I can see in the "readme" that your model is still improving!!? I think you've done a really great job and that you only need more computation power (or more time) to get a superhuman player.
It seems you really were able to simulate DeepMind AlphaGo Zero theory model :).
As soon as I get time I'll try to adapt your code to a chess environment. I've looking your code and I think it'll be "easy" to do.
Regards!!

@yhyu13

I manage to refractory the APV_MCTS_2.py by using @ classmethod. I believe now it not only looks better but also run faster.

I think it is not a very good way to use Class feature for sharing a context.
Because functions/methods using the context must be implemented the one class, it leads to a big class.
Instead, create a 'context' object to share parameters and objects, share it explicitly among the class instances.
I think it is a better way (I don't know the best way...)

But as I said earlier, the main reason for speed up comes from going into more illegal move so that the expensive expansion is not invoked.
When comparing APV_MCTS.py and APV_MCTS_2.py, I found even though their hyperparameters are the same, the search result is quite different consistently, see this line in second version and this line in the first version. The second version consistently expand less leaf nodes than the first version. The best guess for me is that some coruntines bypass the virtual_loss_do() and manage to select the same location for both player, thus create illegal move in early game.

I think it is still late to call virtual_loss_do().
It should be called before await instead of begining of start_tree_search().

I also found adding dirichlet noise is expensive because the data structure of my MCTS node has no phyonic way to do it see this line.

Yes, I think so too.
I think it is better that the parent node have all children's N/W/U and move-probabilities as nd.array.
Then it becomes natural that the parent adds virtual_loss to a child node.

@mokemokechicken

Yes, I think so too.
I think it is better that the parent node have all children's N/W/U and move-probabilities as nd.array.
Then it becomes natural that the parent adds virtual_loss to a child node.

I manage to find a hacky way to solve this problem. I add dirichlet noise to the prior probabilities at the expansion phase. The profile results shows it explore more (1468/1600 vs. 1000/1600), and because of that, time per move increases from 3.6 to 4.2 without actually having to do with the child dictionary (which will increase time per move to 7s).
         5076128 function calls (5069017 primitive calls) in 4.207 seconds

   Ordered by: cumulative time, internal time, call count
   List reduced from 295 to 40 due to restriction <40>

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
        1    0.002    0.002    4.208    4.208 APV_MCTS_2.py:266(suggest_move_prob)
        1    0.014    0.014    4.097    4.097 {method 'run_until_complete' of 'uvloop.loop.Loop' objects}
     4603    0.012    0.000    4.055    0.001 APV_MCTS_2.py:286(tree_search)
8567/3067    0.052    0.000    4.024    0.001 APV_MCTS_2.py:150(start_tree_search)
     1468    0.037    0.000    2.028    0.001 APV_MCTS_2.py:123(expand)
     1468    0.551    0.000    1.904    0.001 APV_MCTS_2.py:128(<dictcomp>)
     2928    0.318    0.000    1.268    0.000 {built-in method builtins.max}
   531416    0.984    0.000    0.984    0.000 APV_MCTS_2.py:85(__init__)
  1059936    0.284    0.000    0.950    0.000 APV_MCTS_2.py:229(<lambda

I think it is still late to call virtual_loss_do().
It should be called before await instead of begining of start_tree_search().

I've fixed it, thanks!

Instead, create a 'context' object to share parameters and objects, share it explicitly among the class instances.

Forgive my ignorance, I not sure I understand what a context is? I believe you need to more explicit on your idea.
Talk to you soon.

Hi, @Zeta36
Yes, I am training my model now. I cannot win already...(^^
The version of chess is very interesting. I would like you to try implementing it by all means!

@yhyu13

I add dirichlet noise to the prior probabilities at the expansion phase.

That's good!

context

It means like this .
A context object has some parameters and objects for sharing among other objects.
Be careful not to become very big context.
In your case, the context may have running_simulation_num, ROOT, api and so on.
A Class field can have only one object.
Class fields are one of the global variables.
So, it is difficult to have two api objects if black and white want to use different api, for example.
(especially in thread/asynchronous programing. It is easy to mistake.)

@mokemokechicken
Thanks for your explanation! So I guess a context would be similar to the NetworkAPI class I made before but there is only the __init__() method, am I right?
But since predict_worker() and push_queue() only use attributes initialized in NetworkAPI, I move these two methods into that class.

So, it is difficult to have two api objects if black and white want to use different api, for example.
(especially in thread/asynchronous programing. It is easy to mistake.)

You're perfectly right about it, I will use the APV_MCTS with the NetworkAPI class for self-play evaluation. However, I guess it would be more efficient to let NN play out the game instead of aiding MCTS in the model evaluation procedure. According to DeepMind, one model is against the best model for 400 games and calculate the win ratio afterwards. DeepMind made each model play each move after 1,600 searches. It seems redundant. I believe if a model can beat a another model just by the outputs of policy networks, then that model is coined "stronger", what do you think?

@yhyu13

Thanks for your explanation! So I guess a context would be similar to the NetworkAPI class I made before but there is only the init() method, am I right?

Yes, you are right.

But since predict_worker() and push_queue() only use attributes initialized in NetworkAPI, I move these two methods into that class.

I think that as one aspect of class design, it may be better for NetworkAPI has only Queue and loop attributes.
(Because NetoworkAPI don't use sem and running_simulation_num)
And a context class has api, sem and running_simulation_num attributes.
Well, but I do not mind that much (^^;

However, I guess it would be more efficient to let NN play out the game instead of aiding MCTS in the model evaluation procedure. ...  I believe if a model can beat a another model just by the outputs of policy networks, then that model is coined "stronger", what do you think?

That is an interesting hypothesis! I think that it is worth experimenting.
If I give an objection, the goodness of the value network is not reflected. Because the value network has a big meaning if you are using MCTS in an actual game.
I think playing using only policy network means changing MCTS count from 1,600 to 1.
It may be a trade-off between thought time and strength.

@mokemokechicken

If I give an objection, the goodness of the value network is not reflected. Because the value network has a big meaning if you are using MCTS in an actual game.

I haven't thought about it before. It makes sense to me. However, my supervised training shows me the MSE of predicting game result stays in 1.00 because DeepMind set the factor of predicting game result MSE 100 time smaller in SL than in RL. I believe the value network is important as the MSE trained by DeepMind is around 0.2.
So the self-play with search not only test the policy network but also utilize the value network.

I think playing using only policy network means changing MCTS count from 1,600 to 1.
It may be a trade-off between thought time and strength.

Thanks for insight!
Question: I wonder how do you build the self-play agent that can play with reversi phone apps? Does it provide APIs?

Question: I wonder how do you build the self-play agent that can play with reversi phone apps? Does it provide APIs?

I don't build a phone app.
I made only a desktop app of python.

@yhyu13

However, I guess it would be more efficient to let NN play out the game instead of aiding MCTS in the model evaluation procedure. ... I believe if a model can beat a another model just by the outputs of policy networks, then that model is coined "stronger", what do you think?

Here is another viewpoint: the NN policy(the agent) is to play a "wrapper game" rather than the original "Go" game. When the "wrapper game" env takes an action, it first uses MCTS to generate an "internal action" from agent's action, then apply the "internal action" to the internal "Go" game -- which is unknown to the NN policy. All the NN policy is playing with is the "wrapper game" env.
This matches the standard RL model, in which the state transition is stochastic though. From this viewpoint, I believe it is better to play with the same wrapper game when evaluating the NN policy, which means, it is better to use MCST too when evaluation.
-- Just my personal opinion though :)

@mokemokechicken
I found a desktop app Sabaki which support Go Text Protocol, and I am using it well.

@gooooloo
Good point! Your analogy makes sense. But keep in mind that the NN is trying to learn the statistical distribution calculated by MCTS which is guided by the NN in the first place. DeepMind also argues that MCTS usually gives stronger play.
But my concern now is the quality of the search tree. At least in the initial phase, the search tree gives result that says several nodes have equivalent probability and the others are zero (no visited nodes). Maybe 1,600 palyouts is no engouth? Pachi, a go program fully relies on MCTS, would do 10,000 playouts per move. Leela does even more playouts about 50,000 per move. Keep in mind the time it take to feedfoward a deep neural net must be a factor of trade-off as well.

@yhyu13
Off topic, but according to the Deepmind Mastering Go paper, Pachi runs 100k simulations per move (p.6).


macOS binary

Hi there,
Would love to see a macOS binary. I tried to find ways of building it myself, if you can point me to a guide I would be happy to build and submit.

I cannot build a macOS binary without a mac, and generally anything someone compiles would quickly get out of date. You would have to follow some XCode tutorials for the engine.


Fix: (sentry) user.email not used in user-create job

When user.email is set in values.yaml, the created username is still<EMAIL_ADDRESS>

Thanks for the fix and sorry for the delay.
cc @rothgar

/ok-to-test


Add several missing X.Org libraries

This PR adds several X.Org libraries listed in the BLFS page for X libraries.

What are these libraries used for? We should not add libraries without consumers. Otherwise, we don't really know whether they work or not.

What are these libraries used for? We should not add libraries without consumers. Otherwise, we don't really know whether they work or not.

Libxinerama and Libxcomposite are quite commonly used, and I plan on using them for the X backend in webkitgtk, among other things. Libxscrnsaver is for screen savers, libxres seems to be listed as a dependency for some X apps and xorg-server in gentoo, and libdmx is also used by Xorg-server. I haven't updated the consumers to use them yet so at this moment in time they are unused in master.


Add field for global position/rotation to State views

We need to pass the position and rotation information to Aerodyn-Inflow interface. To this end, we need to add field for it in the State class.

In progress.


corectl: corectl to be symlinked to an action name

see #174

Codecov Report

Merging #185 into 1.1.0-alpha will not change coverage.
The diff coverage is n/a.

@@             Coverage Diff              @@
##           1.1.0-alpha     #185   +/-   ##
============================================
  Coverage        16.81%   16.81%
============================================
  Files               15       15
  Lines             1029     1029
============================================
  Hits               173      173
  Misses             845      845
  Partials            11       11

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 baed32b...e419875. Read the comment docs.


Using this with getInitialProps() in pages

The examples I've seen that use this library avoid using getInitialProps() in the page components, whereas the learnnextjs.com prefers doing that and then passing data into child components.
Is the recommendation to always use apollo in components and not pages? How does one use withData and graphql together?

@hobbs may I have an example of how you got getInitialProps to work?


Don't check IDs when genearting new cards

When generating new cards we call slugLegal, which is a cloud function which might be cold (even with the pre-warming for editor activity)
This can make flows like creating a new working notes card take way longer than they should.
The IDs, as long as the ID space is large enough, can just be assumed to be legal and not conflict. It's only for user-entered values that we should check witht he cloud function.

Also, are the prewarming requests failing in production due to CORS?

Related to #346


Disable fingerprints ignored in 3.5.0

Option
{
    fingerprints: false
}

stop working in 3.5.0. Manifest always created with fingerprints.

Not a priority now, since v4.0.0 is coming out soon and v3.5.0 will be very deprecated.

How soon is soon?

I have the same problem and this feature is realy important for me :/

If you specify a filename it will not append the thumbprint. filename: "manifest.json"

Fixed in v3.6.2.


Code peek has incorrect color

The code suggest in the code peek of WebStrom has incorrect color as same as the previous version 2.0's default editor color.
Envirnoment:
Latest Theme 3.0
Win10 1809
WebStrom 2019.2.3

What do you think about this?

It is ok.
Thanks.


flutter-devicelab-linux-21, 23, 25 will need to be restarted in the lab

The listed bots were not accessible via ssh and will need to be restarted from the lab.

flutter-devicelab-linux-25 has been recovered.

Tracking in the mentioned issue.


BUG: Error occured spsolve_triangular

Describe your issue.
Errors might occur when using scipy.sparse.linalg.spsolve_triangular with unit_diagonal=true.
As the doc said
    unit_diagonal : bool, optional
        If True, diagonal elements of `a` are assumed to be 1 and will not be
        referenced.

It should be fine if I pass a strict lower-triangular sparse matrix to it (such as L in any LU decomposition) while error occurs in this case.

Analysis:
This is caused by row 606, row 617 in scipy/sparse/linalg/_dsolve/linsolve.py as the indptr will be [0, 0, ...] and A_diagonal_index_row_i = -1 (in the first iteration), causing the indexing in row 617 behaves wrongly. The error then outputs A[0, {n-2}] is nonzero. (n is the size of matrix)
The problem is gone after I forcibly set the diagonal to have any nonzero elements.
Reproducing Code Example
from scipy.sparse.linalg import spsolve_triangular
import scipy.sparse as sp
import numpy as np
l = np.array([
[0, 0, 0],
[1, 0, 0],
[1, 1, 0]], dtype=np.float64)
b = np.array([1.,2.,3.])

spsolve_triangular(l, b, unit_diagonal=True)

Error message
numpy.linalg.LinAlgError: A is not triangular: A[0, 1] is nonzero.

SciPy/NumPy/Python version information
1.4.1 1.19.5 sys.version_info(major=3, minor=6, micro=9, releaselevel='final', serial=0)

/tag scipy.sparse.linalg

@j7168908jx, thanks for reporting the problem.
@j7168908jx reported the error with scipy version 1.4.1, but the error still exists in the master branch (i.e. version 1.9.0.dev0+1057.202d03c).

I have confirmed that this fails on macOS.
I can take up this issue. Please assign me to it.

In general, there's no need for assignments - just feel free to submit a PR. Thanks!


Fix issue with client providing allow list

Description
This fix ensures that the allow list is provided to the chrony config file. This is required when the default['chrony']['allow'] list is set either automatically by master discovery or directly via node attributes.
Issues Resolved
Resolves issue where setting the allow attribute in chef is not reflected in the configuration file when calling the client recipe
Check List

[x] A summary of changes made is included in the CHANGELOG under ## Unreleased
[ ] New functionality includes testing. -- N/A no new functionality
[ ] New functionality has been documented in the README if applicable. - Not required as this fixes an existing bug.

Is a change to the client template missing from the PR? It doesn't look to use the allow variable as-is?

Is a change to the client template missing from the PR? It doesn't look to use the allow variable as-is?

I've now updated the template.
I was able to work around this issue using the extra_config attribute.

Released as: 1.2.1


Pusher doesn't receive messages after a network change or has an network error

What is the issue?
I got an issue same as this topic:
https://github.com/pusher/pusher-js/issues/223
Do you fix for swift client version?
It's hard to reproduce the issue, But, at the last time I got the error, I debugged and saw the pusher status is connected, the network was OK, but before a moment when that issue happens, the network was not stable.
...
Is it a crash report? Submit stack traces or anything that you think would help
This is the image that shown my client was Disconnected > Vacated > ... After that the issues that I told you happen until I'm fore to reconnect and subscribe channel again.

For more information:
Can you see the events being triggered in the Pusher Debug Console? YES
Are your users connected when you expect them to receive events? To check this you should monitor connection state within the client application. YES
...
Any improvements you suggest
...

CC @pusher/mobile

@quoctc I've just tried to recreate this by disabling wifi and then turning it back on repeatedly but I can't seem to recreate it.
Just to be clear - the series of events that you're experiencing is:

successfully connected and subscribed to a channel that is receiving events
network event leads to disconnection
reconnection occurs
client seems to have reconnected but channel isn't receiving new events

Is that correct?

Yes, I debugged and my app seem to never call to these function:

internal func handleEvent(name: String, data: String, channelName: String?)
internal func handleErrorEvent(name: String, data: [String: AnyObject])

I think I ran into the same issue.
Steps to reproduce:

Connect to Pusher. Events are received as usual.
Turn off Wifi for ~5 min.
Turn on Wifi.

What I can observe is that there is a Disconnection message in the web console once Wifi is turned on, but in the app, pusher.connection.connectionState still returns connected and pusher.connection.socketId returns the disconnected(as seen in the web console) socket id.
@hamchapman It sometimes works fine if Wifi is turned off for less than 2-3 min - it auto reconnects and receives events again. If you didn't disable Wifi for long, this is why you weren't able to reproduce it.
I've also added
        pusher.connection.reconnectAttemptsMax = nil
        pusher.connection.maxReconnectGapInSeconds = 60

but it doesn't change anything.
I've also added a listener on changedConnectionState, but the only time it fires is during the initial connection setup - it goes from connecting to connected.
From what I can gather, there may be an error in state management which doesn't record the connection as disconnected. Or maybe there's some limit that is getting hit somewhere when disconnected for too long and Pusher stops retrying.

Oh thank you @roshanr95, I could do a quick fix on my app. After re-connect, I will call to re-subscribe channels again to avoid it. Hope you can fix it on next release version. Thank!

Hi @hamchapman
To re-create the issue,

Connect internet via VPN,
Close VPN and open it as quick as possible. Just try to simulate the heartbeat. (I'm using VPN Unlimited and when I try to disconnect it from menu bar icon, it already behaves like that. =) )

PS: VPN isn't necessary but easy to trigger this issue via VPN.
Thanks!

You should be able to try the cleanup-crash-fix branch (associated PR here: https://github.com/pusher/pusher-websocket-swift/pull/178)
This should have fixed this problem.
Let me know if you're able to and what results you see 👍  I'm hoping to merge that PR and release 6.0.0 on Monday if all goes well.

Hi again @hamchapman Thanks for the information. I tried the cleanup-crash-fix branch for the same VPN scenario but sadly nothing changes. Here are the debugLogs function results. Maybe that would help you to find the issue...
[PUSHER DEBUG] Ping sent
2018-03-23 23:13:42:020 Debug[59401:8207170] 🌍 connected -> disconnected
2018-03-23 23:13:42.020491+0300 Debug[59401:8214777] 🌍 connected -> disconnected
2018-03-23 23:13:42:020 Debug[59401:8207170] RTC connection failed with fatal error
2018-03-23 23:13:42.020586+0300 Debug[59401:8215667] RTC connection failed with fatal error
[PUSHER DE2018-03-23 23:13:42:023 Debug[59401:8207170] 🌍 disconnected -> reconnecting
BUG]2018-03-23 23:13:42.023348+0300 Debug[59401:8214777] 🌍 disconnected -> reconnecting
 Waiting 0.0 seconds before attempting to reconnect (attempt 1 of 12)
2018-03-23 23:13:42:033 Debug[59401:8207170] 🌍 reconnecting -> connecting
2018-03-23 23:13:42.033593+0300 Debug[59401:8214777] 🌍 reconnecting -> connecting
2018-03-23 23:13:43:437 Debug[59401:8207170] 🌍 connecting -> connected
2018-03-23 23:13:43.437593+0300 Debug[59401:8214777] 🌍 connecting -> connected
[PUSHER DEBUG] sendEvent {"event":"pusher:subscribe","data":{"channel":"announcement-test"}}
[PUSHER DEBUG] websocketDidReceiveMessage {"event":"pusher:connection_established","data":"{\"socket_id\":\"735.1353374\",\"activity_timeout\":120}"}
[PUSHER DEBUG] websocketDidReceiveMessage {"event":"pusher_internal:subscription_succeeded","data":"{}","channel":"announcement-test"}
[PUSHER DEBUG] sendEvent {"event":"pusher:subscribe","data":{"auth":"fe9b5290fxxx8e1b5850:237a3a8fd4f1bbxxx6a58a6d13a32c44704a0d92xxxf19debf6e24xxx6b89c42","channel":"private-project-test@5a7a4e252bxxx69722xxxb6c"}}
[PUSHER DEBUG] websocketDidReceiveMessage {"event":"pusher:error","data":{"code":null,"message":"Invalid signature: Expected HMAC SHA256 hex digest of<PHONE_NUMBER>:private-project-test@5a7a4e252bxxx69722xxxb6c, but got 237a3a8fd4f1bbxxx6a58a6d13a32c44704a0d92xxxf19debf6e24xxx6b89c42"}}

Please let me know if you need any other information...

Those logs suggest that the connection is reestablished but the subscription to channel private-project-test@5a7a4e252bxxx69722xxxb6c fails because of an invalid auth value.
That could be because the socketId is being cached by the client for too long or at least the old socketId value is being used to attempt a subscription, only just before the new value is set. I'll take a look at the code and see if I can spot anything like that.

It looks like it was possible for the old socketId to still be used upon reconnection for subscriptions to private / presence channels. I've just pushed a fix for this so if you could try that again and let me know if that fixes the invalid auth error then that would be great! Thanks!

I couldn't try it deeply yet but it looks like it's fixed! 😄 Thank you!
If I find any other issue, I'll let you know!


add notification api change and style parameter

Change the bus event for  show_notification to use the Notification Daemon API
Adds style parameter to show_notification

merging and will move into a new class as discussed in chat in a follow up PR


Add STI section in Readme.md

Declare in Readme that Dynamoid supports STI and add example

Coverage remained the same at 95.892% when pulling f95efc893ef00b68ae546dab2dc51dcb3e843d2f on andrykonchin:add-sti-declaration into fe2de35fd421fd84bd36d91786844fc419f5cb2d on Dynamoid:master.


[Request for External] Page 50 "Purchase Order" - SaveInvoiceDiscountAmount

Describe the request
Could you please change the scope of the procedure "SaveInvoiceDiscountAmount" to protected in Page 50 "Purchase Order""?
Current
local procedure SaveInvoiceDiscountAmount()
var
    DocumentTotals: Codeunit "Document Totals";
begin
    CurrPage.SaveRecord();
    DocumentTotals.PurchaseRedistributeInvoiceDiscountAmountsOnDocument(Rec);
    CurrPage.Update(false);
end;

Requested
protected procedure SaveInvoiceDiscountAmount()
var
    DocumentTotals: Codeunit "Document Totals";
begin
    CurrPage.SaveRecord();
    DocumentTotals.PurchaseRedistributeInvoiceDiscountAmountsOnDocument(Rec);
    CurrPage.Update(false);
end;

Additional context
We need to access the procedure "SaveInvoiceDiscountAmount" from the Page Extension.
Internal work item: AB#497556

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. Please do not reply to this, as we do not monitor closed issues. If you have follow-up questions or requests, please create a new issue where you reference this one.
Build ID: 15971.


Add functional methods for instances, Instance class and tests

This PR adds functional methods for instance and functional Instance class.
This PR also adds unit tests for ComputeImpl and Instance as well as integration tests.

Coverage decreased (-0.5%) to 83.542% when pulling d5568eb26197f284554de0e79b877dc7470f4190 on mziccard:compute-instance into a71d83b1ceff1a38520a9e237266497a3a299d8e on GoogleCloudPlatform:compute-alpha.

Coverage decreased (-0.5%) to 83.549% when pulling 390dda54f8fa05da9eaa562be3435d819788c48a on mziccard:compute-instance into ec140172b949f40221ff56f7bd12cdac21007ce5 on GoogleCloudPlatform:compute-alpha.


Removed a small code duplication, and added Logger::toMonologLevel() tests.

This is a rather small change, but keeping things DRY is always a good thing.
I removed the duplicated logic and replaced it with a Monolog\Logger::toMonologLevel() call.
Plus added the tests that cover that method.

Thanks


HTMLPictureElement listed twice in baselines/dom.generated.d.ts

@zhengbli creating a follow-up issue to https://github.com/Microsoft/TypeScript/pull/7619#issuecomment-207550804
Confirmed problem still exists in 1.9.0-dev.20160412:
$ ./node_modules/.bin/tsc --version
Version 1.9.0-dev.20160412
$ grep -n 'var HTMLPictureElement' node_modules/typescript/lib/* | grep dom\.d\.ts
node_modules/typescript/lib/lib.dom.d.ts:6679:declare var HTMLPictureElement: {
node_modules/typescript/lib/lib.dom.d.ts:13681:declare var HTMLPictureElement: {

Thanks - confirmed fixed as of 1.9.0-dev.20160429


chore: use #adaptation_note for the remaining cases

This regressed somewhen... so merging a linter (like #13660, but other options are possible) for this could be useful.

@jcommelin I've merged master, fixing the conflicts. Can you re-approve, please?

bors d+

bors merge

Since CI passes last time, except for shake (which I just handled), let me
bors r+

Thanks for the fast review!

Once more
bors r+


PostgreSQL: foreign key problems when delete records

In MySQL the problem does not occur because the engine MyISAM doesn't support foreign keys.

Do you have a traceback?

Superseded by Invenio 3.


fixFixed the bug that HadoopLz4BlockCompression creates _decompressor every time it decompresses.(#37187)

bp : #37187
Proposed changes
Issue Number: close #xxx

run buildall


std.experimental.checkedint.Checked doesn't check on assignment or construction

simen.kjaras reported this on 2018-02-19T21:32:59Z
Transfered from https://issues.dlang.org/show_bug.cgi?id=18471
CC List

greensunny12
petru.gurita1

Description
When constructing or assigning to a Checked!int with a custom hook that define min and max, these min and max values are ignored.

import std.experimental.checkedint;

struct MyHook {
    enum min(T) = 3;
    enum max(T) = 15;

    static B onLowerBound(T, B)(T value, B bound)
    {
        assert(0);
    }

    static B onUpperBound(T, B)(T value, B bound)
    {
        assert(0);
    }
}

unittest
{
    // This should trigger one of the above asserts:
    Checked!(int, MyHook) a = 500;
    // As should this:
    a = 22;
    // Instead, Checked blithely ignores the limits, and this assert triggers:
    assert(a != 22);
}

greensunny12 commented on 2018-06-08T09:58:09Z
There's a PR for this: https://github.com/dlang/phobos/pull/6473


Configure a Pod to Use a PersistentVolume for Storage shows wrong config description

This config is described wrong:
spec:
  storageClassName: manual
  capacity:
    storage: 10Gi
  accessModes:
    - ReadWriteOnce
  hostPath:
    path: "/mnt/data"

the storage: 10Gi suggests there is a limit placed on storage. That is not the case, this snippet will "just" mount /mnt/data on host on the pod, it will not set any limit on amount of storage that pod can use
See Red hat docs about it: https://docs.openshift.com/container-platform/4.7/storage/persistent_storage/persistent-storage-hostpath.html

We could link to https://kubernetes.io/docs/concepts/storage/volumes/#resources which already makes this clear.
/language en
/kind feature

We need to set a capacity for the PV so that the control plane can see that it satisfies the PVC. However, we could clarify that:

hostPath isn't suitable for production
this volume type only enforces a storage limit if you set that up at node level (for example, by creating a block device and mounting it).

/sig storage

Hi @sftim so for more clarification on this should we reference this link  https://kubernetes.io/docs/concepts/storage/volumes/#resources or document this

We need to set a capacity for the PV so that the control plane can see that it satisfies the PVC. However, we could clarify that:

hostPath isn't suitable for production
this volume type only enforces a storage limit if you set that up at node level (for example, by creating a block device and mounting it).

as a reference ?

/remove-lifecycle stale

Hi @sftim so for more clarification on this should we reference this link https://kubernetes.io/docs/concepts/storage/volumes/#resources or document this

We need to set a capacity for the PV so that the control plane can see that it satisfies the PVC. However, we could clarify that:

hostPath isn't suitable for production
this volume type only enforces a storage limit if you set that up at node level (for example, by creating a block device and mounting it).

as a reference ?

Hi @sftim could you please take a look here.


async-std's attribute macros are not IDE(rust-analyzer) friendly

In short this is a problem with how syn and attributes using syn implement failure, as these crates tend to just discard the entire attributed item on a parsing failure, replacing it with a compile_error! invocation. This has the side effect that when typing inside an item, a user may momentarily create invalid syntax causing the item to be fully discarded resulting in loss of IDE features as the item now effectively does not exist in the file until this syntax error has been fixed.
This problem can be observed here:
#[async_std::test]
async fn buggy_autocomplete() {
    let x = 0;
    x.
    //^ cursor right after the dot, then try and request completions (ctrl + space in VSCode)
    // No completions will be suggested, while without the attribute there will
}

A simple solution to this problem is to change the attributes such that when they error, they re-emit the original item with the compile_error! invocation, that way IDEs will still see the item even if the attribute fails causing IDE features to continue to function.
Sidenote: This will fix the general problem, but if the attribute introduces new usable items inside the item they will of course not always be visible in completions with just this fix. An ideal fix would be to make the attribute do parsing with recovery in such cases if required.
Relevant r-a issues https://github.com/rust-analyzer/rust-analyzer/issues/10468, https://github.com/rust-analyzer/rust-analyzer/issues/10788#issuecomment-972813308
Example PR that tokio received as a fix https://github.com/tokio-rs/tokio/pull/4162

Closing this, as we most likely will change our plans which will hopefully no longer require these workarounds https://github.com/rust-analyzer/rust-analyzer/issues/11014


Optimize DrawNode

This PR does some DrawNode optimizations:

Disabled transform by default, which had significant performance impact by default.
Use pod_vector for storing and growing buffers.
Don't update actual vertex buffer every time drawXXX() is called.
Avoid unnecessary allocations on some drawXXX() methods in _transform().

There's still a lot of drawXXX() methods that do unnecessary allocations that have a big impact on performance.
Also there are _lineWidth and _defaultLineWidth members that can be set by the user but do nothing. Seems like a bug that probably breaks old behavior.

There's still a lot of drawXXX() methods that do unnecessary allocations that have a big impact on performance.

@smilediver
Can you add comments or better can you improve this methods too?

Also there are _lineWidth and _defaultLineWidth members that can be set by the user but do nothing. Seems like a bug that probably breaks old behavior.

See here:
DrawNode: setLineWitdh() is no longer working#1411
See here for more info:
https://github.com/axmolengine/axmol/issues/1411#issuecomment-1788550519
@halx99 @smilediver:
setLineWitdh() should be deprecated.

Can you add comments like // To do: Improve: unnecessary allocations ... or better can you improve this methods too?

It would be better if you did that, since you wrote it and know the code better.

setLineWidth() should be deprecated.

Maybe it's better to remove it completely, since it's not doing anything anyway, and will mislead people.

Ok. If it working well I will look ion it again
Can you add benchmark test too?

@aismann could we delete https://github.com/axmolengine/axmol/tree/dev/extensions/DrawNodeEx/src/DrawNodeEx?

@smilediver (@halx99)
Can you explain me what this means:
    bool _trianglesDirty: 1 = false;

@aismann could we delete https://github.com/axmolengine/axmol/tree/dev/extensions/DrawNodeEx/src/DrawNodeEx?

I read to late, yes can deleted.


APEX Error Handling Procedure

From @martindsouza on September 15, 2013 22:27
Default procedure for the APEX Error Handler code. This may be integrated with #46.
Consider this as a low priority as we may need to start handling various version of APEX etc.
Copied from original issue: tmuth/Logger---A-PL-SQL-Logging-Utility#46

Moved to Future since may need to handle multiple versions of APEX and not sure if we want to at this moment. Also should wait for APEX error example in docs to be updated.


usm: Fix cleanup after startup failure

What does this PR do?
Fixes the cleanup in case of a failed loading

Motivation
In case we have an error preventing us from loading into a build mode (CO-RE, runtime compilation) and we fallback to the next build mode, we didn't clean correctly the maps and probes, thus we would have a failure due to 'name already taken' error

Additional Notes

Possible Drawbacks / Trade-offs

Describe how to test/QA your changes

Insert a CO-RE only bug in the ebpf source code. For example

diff --git a/pkg/network/ebpf/c/runtime/usm.c b/pkg/network/ebpf/c/runtime/usm.c
index f81c91edf1..9cb78e6e66 100644
--- a/pkg/network/ebpf/c/runtime/usm.c
+++ b/pkg/network/ebpf/c/runtime/usm.c
@@ -73,10 +73,13 @@ int uprobe__crypto_tls_Conn_Write(struct pt_regs *ctx) {
     u64 pid_tgid = bpf_get_current_pid_tgid();
     u64 pid = pid_tgid >> 32;
     tls_offsets_data_t* od = get_offsets_data();
+
+#if defined(COMPILE_RUNTIME)
     if (od == NULL) {
         log_debug("[go-tls-write] no offsets data in map for pid %d\n", pid);
         return 0;
     }
+#endif

     // Read the PID and goroutine ID to make the partial call key
     go_tls_function_args_key_t call_key = {0};

Enable the protocol in datadog.yaml
Enable CO-RE and runtime compilation
Load USM - and ensure we're able to load successfully in runtime compilation after a failure in CO-RE
Run the same on main (or a version without the fix) and ensure we fail in both modes

Reviewer's Checklist

[ ] If known, an appropriate milestone has been selected; otherwise the Triage milestone is set.
[ ] Use the major_change label if your change either has a major impact on the code base, is impacting multiple teams or is changing important well-established internals of the Agent. This label will be use during QA to make sure each team pay extra attention to the changed behavior. For any customer facing change use a releasenote.
[x] A release note has been added or the changelog/no-changelog label has been applied.
[ ] Changed code has automated tests for its functionality.
[x] Adequate QA/testing plan information is provided. Except if the qa/skip-qa label, with required either qa/done or qa/no-code-change labels, are applied.
[ ] At least one team/.. label has been applied, indicating the team(s) that should QA this change.
[ ] If applicable, docs team has been notified or an issue has been opened on the documentation repo.
[ ] If applicable, the need-change/operator and need-change/helm labels have been applied.
[ ] If applicable, the k8s/<min-version> label, indicating the lowest Kubernetes version compatible with this feature.
[ ] If applicable, the config template has been updated.

/merge


Traversal fails inspite of increased heap size

My Environment

ArangoDB Version:       3.3.14
Storage Engine:             RocksDB
Deployment Mode:       Single Server
Deployment Strategy:   Manual Start in Docker
Infrastructure:               own
Operating System:       Suse Leap
Used Package:             Docker - official Docker library

Component, Query & Data
Affected feature:
Graphs traversal query
AQL query (if applicable):
info: request to method traversal over transport grpc error {"request":{"request":{"vertex":"start_vertex","start_vertex":"service_teams/9a2e582997494bee9066bbcf2aa52218","start_vertices":null,"opts":{"expander":"var connections = [];\n    config.datasource.getOutEdges(vertex).forEach(function (e) {\n      if(  (e._id.indexOf(\"loc_has_parent_loc\") > -1)  || (e._id.indexOf(\"loc_is_associated_with_org\") > -1)  || (e._id.indexOf(\"st_is_allocated_loc\") > -1) ) {\n        connections.push({ vertex: require(\"internal\").db._document(e._to), edge: e});\n      }\n    });\n    return connections;"},"collection_name":"","edge_name":"","data":true,"path":false}},"err":{"code":500,"message":"Invalid string length"}}
Problem:
I have a traversal api which traverses through 3 vertices and returns around 300 document vertices.
For 200 I get the proper response but when I increase the number of vertices to 300, the traversal api throws an error invalid string length. I have increased the heap space for application to 8GB but as can be seen below the heap_used is way far too less. I am quite not sure if this issue is during serialization to JSON as there is sufficient heap memory available.

Can you share the actual traversal code? Maybe it's possible to replace it by AQL traversal?

I am using the the graphs traversal api from arangojs:
import { Graph, Database } from "arangojs";
traversedData = await this.graph.traversal(vertex, opts);
Vertex is: service_teams/9a2e582997494bee9066bbcf2aa52218
opts is: {"expander":"var connections = [];\n    config.datasource.getOutEdges(vertex).forEach(function (e) {\n      if(  (e._id.indexOf(\"loc_has_parent_loc\") > -1)  || (e._id.indexOf(\"loc_is_associated_with_org\") > -1)  || (e._id.indexOf(\"st_is_allocated_loc\") > -1) ) {\n        connections.push({ vertex: require(\"internal\").db._document(e._to), edge: e});\n      }\n    });\n    return connections;"}
Basically vertices are service_teams, locations and organizations, and edges are st_is_allocated_loc, loc_has_parent_loc, loc_is_associated_with_org :
(service_teams) ->st_is_allocated_loc -> (locations) ->loc_is_associated_with_org-> (organization)
There is only one service_team and one organization and if I have 200 locations then the traversal works fine, if I increase the number of locations to 300 then the traversal fails with Invalid string length error.

Also one more thing I noticed is although I had the expander opts to traverse only through 3 edges from ArangoDB log files i see that it actually traverses through entire graph and when returning the data I see the vertices only for those 3 nodes.  So is it better to return only the vertex_ids and then make individual queries? please suggest.

@Arun-KumarH I meant to ask for the output of the traversal, not the code (you posted the code in the first post already) - my bad!
Nonetheless, if I understand correctly, then you want to hop from a service_team vertex over edges in edge collection st_is_allocated_loc to location vertices and from there via edges in edge collection loc_is_associated_with_org to organization vertices. This should translate quite well to an AQL query:
//import { Database, aql } from "arangojs";
const { Database, aql } = require("arangojs");
const db = new Database();

(async function() {
  const service_team = "9a2e582997494bee9066bbcf2aa52218"
  try {
    const cursor = await db.query(aql`
    FOR team IN service_teams
      FILTER team._key == ${service_team}
      FOR location, locationEdge IN OUTBOUND team st_is_allocated_loc
      FOR organization, organizationEdge IN OUTBOUND location loc_is_associated_with_org
        RETURN { team, location, locationEdge, organization, organizationEdge }
    `);
    let result = await cursor.all();
    console.log(`Count: ${result.length}`)
  } catch(err) {
    console.error(err);
  }
})();

If you don't need the full vertex/edge documents, then you can adjust the RETURN statement accordingly.

Above query works fine, but with _api/traversal HTTP endpoint, I see that it traverses through entire graph although the edges were limited to 3.
Probably that was the reason for string limit error, closing it. Thank you.


Changes to fix #257

Can you please consider my PR for the fix.

@sschueller Ok, i assumed the js file would be produced as a by product of build. Hence i didn't make the changes there.

I saw the issue, moment typings has changed,
Will be testing today

can not reproduce now, closing


TDX VMs with hyperthreading getting incorrect thread count

In Windows TDX VMs, the powershell command gwmi Win32_Processor | fl * is yeilding incorrect values for ThreadCount and NumberOfEnabledCore when hyperthreading is enabled.
The topology builder needs a correction in how vps_per_socket are determined from Cpuid leaf Cache Parameters (0x4). Additionally, the kernel forwards most CPUID intercepts received in #VE handler to the user mode without any particular handling. Hence the topology builder is unable determine the topology from Cpuid leaf Extended Topology Enumeration (0xB).

Should the #VE handler be updated to retrieve the topology from ExtendedTopologyEnumeration?


chore(docs/spin.toml): update contributing redirect

Actually, @tpmccallum, I'm wondering if the change should be in the developer repo to update the endpoint to developer.fermyon.com/spin/contributing (and thus close this PR) -- thoughts?

Thanks, @vdice
Nice catch. Not sure how to deploy these Spin docs (so that the redirect takes effect).
Please let me know how to deploy it for my future reference; future redirect changes may occur.
Thanks so much

Please let me know how to deploy it for my future reference; future redirect changes may occur.

@tpmccallum no manual action necessary.  This website is re-deployed on every merge to main.


Swarm plugin: use explicit rather than implicit attachments

This allows the configuration to define attachments rather than trying to work with the implicit association previously done by the swarm plugin.
Signed-off-by: Bill Farner<EMAIL_ADDRESS>

Current coverage is 72.00% (diff: 86.20%)

Merging #279 into master will increase coverage by 1.44%

@@             master       #279   diff @@
==========================================
  Files            20         20
  Lines          1226       1250    +24
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
+ Hits            865        900    +35
+ Misses          294        282    -12
- Partials         67         68     +1

Powered by Codecov. Last update 9f243ab...57b25b3


Revert Only Project Manager or Project Assurance Adviser can move project to Verify Win.

This reverts commit 64806fb8a1b754cf3a929b43d4a6e7e2e31b7ebe, reversing
changes made to cef3902be2d4bbf32287b01c70c1191d79e24e11.
SPI work shouldn't go live yet.

Codecov Report

Merging #966 into develop will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff            @@
##           develop     #966   +/-   ##
========================================
  Coverage    96.65%   96.65%
========================================
  Files          192      192
  Lines         5419     5419
  Branches       511      511
========================================
  Hits          5238     5238
  Misses         119      119
  Partials        62       62

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 5a29e06...ad02c46. Read the comment docs.


Stop caching of non-existent schedules

Currently any id that is searched for is cached, even if it is wrong and does not correspond to a schedule on Kronox. This shouldn't happen, and the ics flow should return if no schedule is found.

schedule endpoint will now return a dict with the following structure when a schedule could not be found on kronox:
{"error": "schedule not found on kronox"}


S3 output / Plugin support

@vadorovsky I've submitted the changes you requested - let me know if there's anything else you want to change.  I'll mark this for review in the meantime.

I'm happy to merge this after squashing into one commit and giving some descriptive commit message.

@vadorovsky Do you mean you want me to squash the commits on my fork, or you're going to do them on your end pre-merge?


The old instance of bread remains in memory[BUG]

The problem occurs when you try to open the same cupertino-pane with different data.
If I open a cupertino-pane with the data of a product A I close it and reopen it with the data of a product B, if I continue to close it and reopen it I will see the cupertino-pane alternately with the data of product A and B. ..
Example:
If I enter a page with the data of a product A and open the cupertino-pane and then I exit ... afterwards I enter the same page again but with the data of a new product B and open the cupertino-pane, this the first time it opens with the data of product B, but the second time it opens with the data of product A and if I continue to open and close the cupertino-pane I will see once the data of product A and then those of product B ...
If I also exit the page and access it with the data of a new product C then the cycle is repeated by seeing once the cupertino-pane with the data of product C, then B and then A and so on indefinitely ...
This is a video that demonstrates clarification of the bug just described:
https://drive.google.com/file/d/1n7xVXBTffpcv5_MvxZAJBb3R0GVzlo_d/view?usp=sharing
My Code
TS:
  async openPanePreviewProduct() {
    console.log(this.deal.productName);
    this.checkOpenPanePreviewProduct = true;
    let settings: CupertinoSettings = {
      parentElement: 'body',
      fitHeight: true,
      maxFitHeight: this.th.heightPlatform - 70,
      topperOverflow: false,
      bottomClose: true,
      buttonDestroy: false,
      backdrop: true,
      onWillDismiss: () => {
        //this.openPaneProductList();
        this.checkClosePanePreviewProduct = false;
      }
    };
    this.panePreviewProductDetail = new CupertinoPane('.panePreviewProductDetail', settings);

    await this.panePreviewProductDetail.present({ animate: true }).then(() => this.checkOpenPanePreviewProduct = false );
  }

  closePanePreviewProduct(b) {
    this.checkClosePanePreviewProduct = true;
    if (b) {
      //this.panePreviewProductDetail.destroy({ animate: true });
      this.addToFavoriteList();
      this.panePreviewProductDetail.destroy({ animate: true });
    } else {
      this.panePreviewProductDetail.destroy({ animate: true });
    }
  }

HTML:

    <ion-grid style="margin-left: 3%; margin-right: 3%;  margin-bottom: 6%;">
      <ion-row>

          Vuoi aggiungere questo prodotto alla tua lista?

      </ion-row>
      <ion-row *ngIf="deal !== null" style="padding-left: 2%; width: 98%;">
        <ion-col size="5" class="immagineProdottoContainer">

        </ion-col>
        <ion-col size="7" style="margin-top: 3%;">

            <ion-label *ngIf="deal.productName.length>90">{{deal.productName | slice:0:90}}...
            </ion-label>

            <ion-label *ngIf="deal.productName.length<=90">{{deal.productName | slice:0:90}}
            </ion-label>

            <ion-label color="newgosu">

{{deal.finalPrice}}

            </ion-label>

        </ion-col>
      </ion-row>
      <ion-row style="margin-right: 3%; margin-left: 3%;">
        <ion-col>
          <ion-button class="noShadow cancel-button" expand="block" (click)="closePanePreviewProduct(false)"
            [disabled]="checkClosePanePreviewProduct">
            Annulla
          </ion-button>
        </ion-col>
        <ion-col>
          <ion-button class="noShadow" color="newmania" expand="block" (click)="closePanePreviewProduct(true)"
            [disabled]="checkClosePanePreviewProduct">
            Aggiungi
          </ion-button>
        </ion-col>
      </ion-row>
    </ion-grid>

Any news??? You can't help me?

@GosuMania Sorry for delay. In the next few days here will be a solution.

'#' + productID +

i fix with id="{{deal.id}}"
I was already using dealActive, but unfortunately it doesn't work. Even if I replace each time the active offer the previous ones remain in the DOM, in my opinion you need to add a function to clean up the DOM manually when you leave a page
Thanks a lot anyway :)

@GosuMania Thank you, i will add something like .destroy({clearDOM: true}) if more requests will appears.


Sanitize Anime API's

Description
Removed list of Anime API's that weren't free, required an API key, signup or contained inappropriate content.
Changed Studio Ghibli API url.
Related Issues
#21
Checklist

[ x ] I have tested my changes locally.
[ x ] I have added necessary documentation or updated existing documentation.
[ x ] My code follows the project's coding conventions and style guidelines.
[ ] All tests pass successfully.
[ ] I have added/updated relevant unit tests.

Additional Notes
At the moment of this pull request AnimeChan API isn't working.
I changed the broken Studio Ghibli API url to https://ghibliapi.vercel.app/ which satisfies the checklist requirements (it's free, doesn't require an API key or signup).

Thanks, have a nice day too.


Fix new man page links.

The rustc link checker found some problems:

The raw generated HTML files were being included when they shouldn't.
Fixed by moving them out of the mdbook directory.
The print.html file concatenates all the pages together, causing duplicate
id's.  Fix by giving each page a unique set of IDs.

@bors: r+

:pushpin: Commit 4338d34006449ad724e6a0c1cc9c781f6eebda25 has been approved by alexcrichton

:hourglass: Testing commit 4338d34006449ad724e6a0c1cc9c781f6eebda25 with merge 451f97ea0e98f8a3c9e5363e1ac94e4b0e09f38c...

:sunny: Test successful - status-appveyor, status-travis
Approved by: alexcrichton
Pushing 451f97ea0e98f8a3c9e5363e1ac94e4b0e09f38c to master...

Is the rustc link checker in a reusable state that we can check those things here?

Possibly.  It's not published anywhere, so we'd need to figure out some way to get it from the rustc repo.  It's fairly primitive, but quick.   We could maybe just copy it locally (it's around 300 lines long)?
I actually ran a (different) linkchecker locally which can handle outside links, but it only crawls reachable files and doesn't do unique ID checking.

should we git ignore some of those files? Or must they all be in the source repo?

Unfortunately they all need to be there.  I'd be reluctant to add additional build steps beyond cargo build.

something something post-build actions, huh? 😉


Not able to enable DASHBOARD_RBAC in helm chart ?

Bug description
Hello,
I have installed a latest superset in my AWS EKS with Helm chart and I want to enable DASHBOARD_RBAC because even after assigning Gamma role to users, they are not able to view the Dashboards.
I did following in my values.yaml
configOverrides:
my_override: |
FEATURE_FLAGS = {
"DASHBOARD_RBAC": True,
"DYNAMIC_PLUGINS": True
}
Not working as expected.
How to reproduce the bug
in values.yaml
configOverrides:
my_override: |
FEATURE_FLAGS = {
"DASHBOARD_RBAC": True,
"DYNAMIC_PLUGINS": True
}
Screenshots/recordings
In the Gamma role I have added these permissions still users are not able to view the dashboard.

Superset version
3.1.2
Python version
Not applicable
Node version
Not applicable
Browser
Chrome
Additional context
No response
Checklist

[X] I have searched Superset docs and Slack and didn't find a solution to my problem.
[X] I have searched the GitHub issue tracker and didn't find a similar bug report.
[X] I have checked Superset's logs for errors and if I found a relevant Python stacktrace, I included it here as text in the "additional context" section.

Can you try running helm template . to verify that your overrides are being placed inside of the superset-config secret correctly?

@abhishekindigg have you assigned roles to the dashboards you want your users to see, and assigned users to said roles? Unless they belong to the relevant roles, they won't see the dashboards (this is the whole point of Dashboard RBAC). Also, remember to publish the dashboards you want to share.

@villebro Thanks man!
I had to assign roles for each dashboard. It worked.

@abhishekindigg we always encourage updates to our documentation if you want to edit one of the pages and help others in the future :)


can't print all the pages of embedded Powerbi report

Prerequisites

[ yes] Can you reproduce the problem with Debug -> Reload Without Extensions?
[yes ] Did you perform a cursory search to see if your bug or enhancement is already reported?
[ yes] Did you read the [Troubleshooting guide]

Description
[Description of the bug or feature]
After following https://github.com/Microsoft/PowerBI-JavaScript/wiki/Embedding---Basic-interactions#print-a-report
to print my report i found that you can only print 1 page at a time if there are multiple pages in your Powerbi report then you have to change the page and then print it again.
Steps to Reproduce

Used App Owns data powerbi project to embed reports. It is available on git (https://github.com/Microsoft/PowerBI-Developer-Samples)
Add a button which on click does report.print()

Expected behavior:
I expected to see all the pages in report to be printed in one go;
Actual behavior:
Only one page the first one got printed
Versions
(Windows10)

Any updates on this? I have the same issue. Thanks, Ed.

I have the same issue! Please let me if there is any update regarding this! Thanks!


[WIP] New prow e2e Multi-cluster test for Split Horizon EDS

This is a new prow e2e integration test.
It is testing the cluster-aware multicluster feature (aka Split Horizon EDS) by setting up two clusters. One of them is the primary and the other one is remote and traffic from primary to remote is going through the remote ingress gateway.
After setting up the test environment on the two clusters the test is:

Deploying helloworld v1 and sleep on primary cluster
Deploying helloworld v2 on remote cluster
Executing from within the sleep container a call to the helloworld service multiple types
Verify that at least one response is coming back from v2 (remote cluster)

It's basically going through the steps described in the cluster-aware example.
Another PR in test-infra will add this test to the rest of prow tests.

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by: ymesika
To fully approve this pull request, please assign additional approvers.
We suggest the following additional approver: geeknoid
If they are not already assigned, you can assign the PR to them by writing /assign @geeknoid 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

@ymesika: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-pilot-multicluster-e2e.sh
a2bd1cb83a522d2b2c2149205169b065292176e1
link
/test istio-pilot-multicluster-e2e

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@ymesika: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-pilot-multicluster-e2e.sh
a2bd1cb83a522d2b2c2149205169b065292176e1
link
/test istio-pilot-multicluster-e2e

prow/istio-unit-tests.sh
a2bd1cb83a522d2b2c2149205169b065292176e1
link
/test istio-unit-tests

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@ymesika: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-pilot-multicluster-e2e.sh
a2bd1cb83a522d2b2c2149205169b065292176e1
link
/test istio-pilot-multicluster-e2e

prow/istio-unit-tests.sh
a2bd1cb83a522d2b2c2149205169b065292176e1
link
/test istio-unit-tests

prow/e2e-simpleTests-cni.sh
a2bd1cb83a522d2b2c2149205169b065292176e1
link
/test e2e-simpleTests-cni

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@ymesika: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-pilot-multicluster-e2e.sh
a2bd1cb83a522d2b2c2149205169b065292176e1
link
/test istio-pilot-multicluster-e2e

prow/istio-unit-tests.sh
a2bd1cb83a522d2b2c2149205169b065292176e1
link
/test istio-unit-tests

prow/e2e-simpleTests-cni.sh
a2bd1cb83a522d2b2c2149205169b065292176e1
link
/test e2e-simpleTests-cni

prow/istio-pilot-e2e-envoyv2-v1alpha3.sh
e7ad69d309a8a3f632cacbef198cf2fd62b5d883
link
/test istio-pilot-e2e-envoyv2-v1alpha3

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@ymesika: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/e2e-simpleTests-cni.sh
a2bd1cb83a522d2b2c2149205169b065292176e1
link
/test e2e-simpleTests-cni

prow/istio-pilot-e2e-envoyv2-v1alpha3.sh
e7ad69d309a8a3f632cacbef198cf2fd62b5d883
link
/test istio-pilot-e2e-envoyv2-v1alpha3

prow/e2e-dashboard.sh
e7ad69d309a8a3f632cacbef198cf2fd62b5d883
link
/test e2e-dashboard

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@ymesika: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-pilot-e2e-envoyv2-v1alpha3.sh
e7ad69d309a8a3f632cacbef198cf2fd62b5d883
link
/test istio-pilot-e2e-envoyv2-v1alpha3

prow/e2e-dashboard.sh
e7ad69d309a8a3f632cacbef198cf2fd62b5d883
link
/test e2e-dashboard

prow/e2e-simpleTests-cni.sh
e7ad69d309a8a3f632cacbef198cf2fd62b5d883
link
/test e2e-simpleTests-cni

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@ymesika: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-pilot-e2e-envoyv2-v1alpha3.sh
e7ad69d309a8a3f632cacbef198cf2fd62b5d883
link
/test istio-pilot-e2e-envoyv2-v1alpha3

prow/e2e-dashboard.sh
e7ad69d309a8a3f632cacbef198cf2fd62b5d883
link
/test e2e-dashboard

prow/e2e-simpleTests-cni.sh
e7ad69d309a8a3f632cacbef198cf2fd62b5d883
link
/test e2e-simpleTests-cni

prow/e2e_pilotv2_auth_sds.sh
e7ad69d309a8a3f632cacbef198cf2fd62b5d883
link
/test istio_auth_sds_e2e

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@ymesika: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-pilot-e2e-envoyv2-v1alpha3.sh
e7ad69d309a8a3f632cacbef198cf2fd62b5d883
link
/test istio-pilot-e2e-envoyv2-v1alpha3

prow/e2e-dashboard.sh
e7ad69d309a8a3f632cacbef198cf2fd62b5d883
link
/test e2e-dashboard

prow/e2e-simpleTests-cni.sh
e7ad69d309a8a3f632cacbef198cf2fd62b5d883
link
/test e2e-simpleTests-cni

prow/e2e_pilotv2_auth_sds.sh
e7ad69d309a8a3f632cacbef198cf2fd62b5d883
link
/test istio_auth_sds_e2e

prow/istio-integ-k8s-tests.sh
e7ad69d309a8a3f632cacbef198cf2fd62b5d883
link
/test istio-integ-k8s-tests

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.


Update 1.2.0 fails to compile/import

So today with Meteor's update to 1.2.1, your package also updated to 1.2.0 and this broke the Semantic-UI integration with error:
While processing files with flemay:less-autoprefixer (for target web.browser):
   client/lib/semantic-ui/theme.import.less:17: Unknown import: themes/default/globals/site.variables

I can't find any history/changelog for your update to try and figure out what's changed

Okay, it seems that after forcing it to re-generate the semantic files 2(just 1 re-generate didn't fix it) times has somehow fixed this error

I can confirm.   By forcing semantic:ui to regenerate files, it fixes this error:

Deleted /client/lib
Created /client/lib/custom.semantic.json
Restarted Meteor
Deleted .custom.semantic.json
Restarted Meteor

Seems okay now.

Jup, stop Meteor, delete .custom.semantic.json, restart again. Be happy about funny fix.

This fix isn't working for me. I can't compile semantic UI using version 1.2.0.

Thanks for this tip @Valentin-Seehausen. Fix worked!

@Valentin-Seehausen Cool, works on me. I just test it on a new created clean project.

Getting this error, have deleted whole client folder and rebuilt it several times, restarted meteor again and again after deleteing .custom.semantic.json with no luck.
Any updates on this?

+1 tried the rebuild multiple times; still getting the same errors

how to fix it ?   3 days on it !!!   no use to delete the file .custom.semantic.json


Translate Part 17 into Spanish

Please also make sure that the title of the lesson is also translated.


[WIP] Migrate Framework to use multi-window API

Description
This is a work-in-progress PR for trying out the multi-window API on the framework repo. The goal here is to convert from the window singleton to an API that has the concept of multiple windows. I'm not attempting to actually enable creating multiple windows here, just migrate to an API that has a concept of multiple windows/screens.
I haven't yet updated any docs yet. I wrote some, and copy/pasted a lot all over without making sure they're consistent.
The API design doc for this is here.
The associated engine change is https://github.com/flutter/engine/pull/18368.
Build is expected to fail, since it needs the corresponding engine change to succeed.
Related Issues

https://github.com/flutter/flutter/issues/30701
https://github.com/flutter/flutter/issues/48838

Tests

No tests yet, which is why this is still WIP.

Breaking Change

[X] No, this is not a breaking change. (which was no mean feat!)

Closing this for now, since it'll probably take a different form in the final version.  Still working on this, though.


Add license type property for managed integration runtime

This checklist is used to make sure that common issues in a pull request are addressed. This will expedite the process of getting your pull request merged and avoid extra work on your part to fix issues discovered during the review process.
PR information

[ ] The title of the PR is clear and informative.
[ ] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For information on cleaning up the commits in your pull request, see this page.
[ ] Except for special cases involving multiple contributors, the PR is started from a fork of the main repository, not a branch.
[ ] If applicable, the PR references the bug/issue that it fixes.
[ ] Swagger files are correctly named (e.g. the api-version in the path should match the api-version in the spec).

Quality of Swagger

[ ] I have read the contribution guidelines.
[ ] My spec meets the review criteria:

[ ] The spec conforms to the Swagger 2.0 specification.
[ ] The spec follows the guidelines described in the Swagger checklist document.
[ ] Validation tools were run on swagger spec(s) and have all been fixed in this PR.

http://sqlbuvsts01:8080/web/wi.aspx?pcguid=86a4a1ca-bfe6-4329-be8d-f5c4a2420c67&id=11177277

No modification for AutorestCI/azure-sdk-for-python

No modification for AutorestCI/azure-sdk-for-ruby

No modification for AutorestCI/azure-sdk-for-node


Stop automatically appending .git to git repository URLs

Fixes #2095
Fixes INS-367
Tested by creating a repo on Azure DevOps and successfully interacting with it, before this PR all operations against it fails.
I've added a migration so that existing repositories that didn't have .git at the end of the URL gets it appended, so that the new behaviour only applies to new repositories.
I tested this by setting up a new workspace with a GitHub repo and leaving out the .git part of the URL, then applying this PR and verifying that it could still sync.

Additionally, I think we need some UI prompts to make sure users don't see 404s if they don't suffix with .git manually.

I disagree. Let's not display assumptions about git systems, we know this is the case for this system, but not others and we might ultimately give the user bad advice while attempting to act in good faith.
If it's a requirement, the input should be sufficient enough, anything further and perhaps we add a link to some documentation about specific systems external to the application where we can maintain without updating the application itself.

Let's not display assumptions about git systems, we know this is the case for this system, but not others and we might ultimately give the user bad advice while attempting to act in good faith.
If it's a requirement, the input should be sufficient enough, anything further and perhaps in later iterations after we see instances of issue we can add a link to some documentation about specific systems external to the application where we can maintain without updating the application itself.

The input doesn't seem to check whether .git is provided, and we don't mention anywhere that .git needs to be provided as the suffix. From my testing and the isomorphic-git documentation, the .git suffix is a requirement for GitHub (and likely for GitLab). Omitting the .git suffix only seems to work for Azure DevOps. Previously it would automatically add the suffix if it was missing; now it needs to be manually added.
This means, that with GitHub for example, what worked before will seemingly stop working for new clones/repositories (a migration was added for existing repositories).
Given this behavior I think we need to say something, even if it is a tool-tip with a link to docs next to the label (like the auth token, for example, below)

don't mention anywhere that .git needs to be provided as the suffix

It's here on the input:

Really doesn't feel like a placeholder is sufficient, but I'll leave that up to you.

Hey not sure but i tought the issue with the .git suffix is solved.
I still can not checkout AzureDevops Repositories, because the suffix got apppended.
Did I miss something in this Issue?


first version of Dockerfile

First version of Dockerfile

@all-contributors please add @reinaldo-calderon-team  for code

@all-contributors please add @reinaldo-calderon-team  for code

@all-contributors please add @alejaacosta17 for code

@all-contributors please add @adandanielteamint for code


fix: shifting migrations to shared dsl package

Description
Shifting migration logic to @shared/dsl package
PR fixes following issue(s)
Fixes #26783
Media

A video or a GIF is preferred. when using Loom, don’t embed because it looks like it’s a GIF. instead, just link to the video

Type of change

Please delete options that are not relevant.

Bug fix (non-breaking change which fixes an issue)
New feature (non-breaking change which adds functionality)
Breaking change (fix or feature that would cause existing functionality to not work as expected)
Chore (housekeeping or task changes that don't impact user perception)
This change requires a documentation update

Testing

How Has This Been Tested?

Please describe the tests that you ran to verify your changes. Also list any relevant details for your test configuration.
Delete anything that is not relevant

[ ] Manual
[ ] JUnit
[ ] Jest
[ ] Cypress

Test Plan

Add Testsmith test cases links that relate to this PR

Issues raised during DP testing

Link issues raised during DP testing for better visiblity and tracking (copy link from comments dropped on this PR)

Checklist:
Dev activity

[ ] My code follows the style guidelines of this project
[ ] I have performed a self-review of my own code
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[ ] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] New and existing unit tests pass locally with my changes
[ ] PR is being merged under a feature flag

QA activity:

[ ] Speedbreak features have been covered
[ ] Test plan covers all impacted features and areas of interest
[ ] Test plan has been peer reviewed by project stakeholders and other QA members
[ ] Manually tested functionality on DP
[ ] We had an implementation alignment call with stakeholders post QA Round 2
[ ] Cypress test cases have been added and approved by SDET/manual QA
[ ] Added Test Plan Approved label after Cypress tests were reviewed
[ ] Added Test Plan Approved label after JUnit tests were reviewed

/ok-to-test sha=1b162e2

/ok-to-test sha=2cdad4c

/ok-to-test sha=dfb9efe

@sbalaji1192 can you please re-review and add your approval, I have added the changes

/build-deploy-preview

/ok-to-test sha=69a175b

Merged this PR with #28518

/build-deploy-preview


Installation Windows 10

Okay tananaev, did the installation in Windows 10 and managed to open on localhost: 8082 which would be the next step in this windows installation and need to install a database yes or no. Recalling that since I directed my public IP but I see the port 80 is closed.

Traccar comes with embedded database which should be enough for testing, but for any production use I would recommend a fully featured database engine. For example, MySQL.
Traccar uses port 8082 by default. If you want it to work on port 80, change number in the config.

tananavae thanks for the reply and the tip for the MySQL achieve, communication on port 80.


Extra padding at top of PdfViewer

Hi, thank you for this library 😃
I have an issue with additional padding at the top of the component. Using the following code:
const WebScreen = props => (
  <View style={styles.container}>
    <MyHeader name={props.navigation.getParam('name')} />
    <View style={{ flex: 1 }}>
      <PdfReader
        style={{ flex: 1, padding: 0, margin: 0 }}
        source={{ uri: props.navigation.getParam('uri') }}
      />
    </View>
    <BottomBar />
  </View>
);

const styles = StyleSheet.create({
  container: {
    flex: 1,
    backgroundColor: '#fff',
  },
});

export default WebScreen;

I get the following result, with an extra 24px padding at the top.

After some inspection, I found the extra padding to be due to this line. By changing paddingTop to 0, I was able to achieve the following:

Would it be possible for us to control paddingTop via a prop? I believe #22 is a related issue (have not tested on iOS)

Hi @xcarpentier.  Please help me know when are you going to fix the bug ?

Should be fixed now on v0.2.0


Feature/#1196 - Add download and upload api for file-based datanodes

Resolves #1196
In this PR, 2 new APIs are open for file-based DataNode:

_get_downloadable_path() that returns the path to the downloadable data file
_upload() that check the uploaded file and replace the current data file

Oh, great idea. Let me do that


rework Resource into Request and make GVK a builder for it

A bit of an experiment with what a better Resource (master name) would look like.

renamed Resource -> Request to make it more in line with what it is (although it still carries the state)
DynamicResource removed
GroupVersionKind takes parts of its builders
GroupVersionKind convertible from APIResource
fewer layers of namespace storing (you need to figure out what you want when making an Api, not store it in all builders).
renamed Meta::DynamicType again to Meta::Info as it's a lot nicer to work with in signatures

It is possible we could construct these by reference and remove clonability of Request so that it's just created once (by Api) for every request, that would make it very clean.
This is not done, it's intended as a discussion start. I do think the Request name is better, and that the GroupVersionKind serves as a better builder for Request than DynamicResource did, but this is more Clone heavy.
The associated type rename (after we just had a pr for it) is possibly unnecessary, but we are considering to rename the Meta trait anyway, wanted to see what things would look like. Having thought about it some more, I feel maybe the associated type name ought to be shorter.

Resource is now simply:
pub struct Request<'a, K: Meta> {
    info: &'a K::Info,
    namespace: Option<&'a str>,
}

and constructed when needed by Api (who owns the referenced params).

Along the same lines, IMO it would be nice to have ephemeral Api too.
Or maybe it would be viable to move the resource types into the methods instead..

Along the same lines, IMO it would be nice to have ephemeral Api too.
Or maybe it would be viable to move the resource types into the methods instead..

Yeah, that could possibly be done now. It just forces the ownership of the associated type and constant namespace management up to the user of it, which might be annoying. I don't know.
I can imagine it could potentially relax some requirements down in kube-runtime though.

Ok, more changes. It's getting closer to something usable. The url generation is now actually part of the core trait, taking the DynType and an optional namespace. It means Api has slightly more duplication, but Request is cleaner.
Propagated changes to subresources and examples. It was slightly hairy to get the dynamic examples with arbitrary serialization to work (causing several restarts), but crd_derive_schema, dynamic_api and dynamic_watcher now has something sensible we can work from.
I am thinking at this point, to rename Meta to Resource and start cleaning up exports.
Sorry that this is going in so many different directions, it's hard to see what is good without trying a few ways.

Ok, removed the associated type rename. We are probably happy enough with it.
I plan on merging this weekend so get your comments in if you have any. Help up the minor release for long enough.
Then, will rename Meta to Resource in short pr.


Migrate project directory structure for codeworld-server

Foundation for  #827

It is possible to get copy of production data\haskell\projects or data\codeworld\projects dir? It would be good to test migration locally.

Locally tested moving/creating/deleting of directories and projects, as well as sharing directories.

Anyway before deploying this need to have backup of all production content and be ready to revert / rollback files.

Okay, I can snapshot the production data for testing.  (No, I can't send it to you, since it contains user data.)  I'll do that, and merge if it looks good.

Also, I forgot to test "Sharing a folder, and accepting the shared folder."  yesterday. And looks I can not test it with local auth, because local auth disables on page reload, so I can not follow link being authorized.

Sorry for the delay; I've been overloaded with things to do. I plan to push this to a snapshot of the prod server today and do a bunch of manual testing. If that goes well, I'll merge tonight.

No worries, I working on #827 on another branch.


FIX: Memory leaks in unicorn + puma collectors

This cherry-picks an old commit that somehow got removed/overwritten. See related discussion at: https://github.com/discourse/prometheus_exporter/issues/275

MetricsCollector uses a default expiry of 60s, i think i forgot to include the usage of the puma metrics ttl constant in the PR, but i do have this addressed in the WIP PR #268

Thanks, good to know. I'll close this one then.


radio button value will always be string

Description
issue occurs when radio button have number input. so we convert number to string before passing it as value.
Fixes #12815
Type of change

Bug fix (non-breaking change which fixes an issue)

How Has This Been Tested?

tested by using number value in radio box and making sure it is being selected on click.

Checklist:

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[x] I have added tests that prove my fix is effective or that my feature works
[x] New and existing unit tests pass locally with my changes

Hi @ganganimaulik, thank you for putting in efforts to fix this issue.
The solution provided here doesn't completely solve the issue we are trying to fix here.

When JSONForm has Radio Group type with numerical values, the formData property does not reflect the appropriate value type. Eg. "1" instead of 1
With this change the RadioGroup widget stops working when there are numerical values in the option.
There is also an unmentioned issue that needs to be fixed in this PR i.e the validation of the Radio Group field in the JSON Form to align with the Radio Group widget.

As this is a High Priority issue for us, we would like to take this up internally.
Thanks for showing interest to contribute and if you like to do more, I'd suggest checking out the Good First Issues


[BUG]

Dear sir,
I failed to build my project due to the following error:
PS D:\coding\Rust\fltk-rs> cargo build
Blocking waiting for file lock on build directory
Compiling fltk-sys v1.0.17
Compiling fltk v1.0.18
error: could not find native static library cfltk, perhaps an -L flag is missing?
error: aborting due to previous error
error: could not compile fltk-sys
To learn more, run the command again with --verbose.
warning: build failed, waiting for other jobs to finish...
error: build failed
I'm using Windows 10 OS. Rust version is:
nightly-x86_64-pc-windows-msvc (default)
rustc 1.53.0-nightly (727d10156 2021-04-27)
Please help. Thanks in advance.

Can you try in your Cargo.toml:
[dependencies]
fltk = { version = "1", features = ["fltk-bundled"] }


[DSSD-50] - Rolling back the last feature (adding durable property).

Quartz.NET does not allow a job to be created without a trigger.

Coverage remained the same at 83.942% when pulling b6cfb2c64681e380f5f099327517cd3ea5f5cbb8 on DSSD-50-Rolling-back-feature into 17f4b3d49d1a76ee0fc48987fa92c82c7b888fec on master.


Add community engagement metric to homepage

My general feeling is a) how many people have been engaged b) how many events have taken place c) how many Signature events have taken place.

I think signature events is a different dataset. I have a slight preference for residents engaged as the most important headline metric...

Can we discuss this before we begin to implement this? I ask as I have a few questions I would like to explore related to which events and activities we are capturing 'residents engaged' at. (I badly explained some of it here, mostly as a note to myself: https://trello.com/c/0klSc0uf/192-add-additional-layers-to-community-engagement-dashboard)

Similar to issue #51, I could add the same 'residents engaged' metric to the homepage with a link to the community engagement dashboard?

Closing as completed

Could we change the colour of this box? The light green to me seems to merge into the background a little a) in comparison to the other brighter colours b) with the light green heading being used for the splash at the top of the page.

I have updated the colours on the homepage and added a cycler @gilesdring so that the tiles rotate through cyan, yellow and magenta. Hopefully that looks better and means it doesn't blend in with the rest of the page too much @ODILMichelle


Fix alternative command - for applying patches

The command noted as (Alternative if above does not work) in the modules_integration wiki page...
"patch -p1 path_to_patch_file/filename.patch"
Should be
patch -p1 --verbose < path_to_patch_file/filename.patch"
The verbose is optional, but the redirecting the file contents is necessary otherwise the patch command will just hang (waiting for input from stdin).  I believe there is are (-i | --input) options for "patch", but as printed it doesn't do anything.
UPDATE: better yet just update the readme, and point them to the aruba-ansible-modules repo for install instructions

I'm having the same issue, running now ansible 2.8 devel version on CentOS 7, everything goes fine with the command for arubaoscx but not for arubaoss.
[root@netbox site-packages]# patch -p1 --verbose < /etc/ansible/aruba-switch-ansible/module_integration/arubaoss.patch
Hmm...  Looks like a unified diff to me...
The text leading up to this was:
--------------------------
|diff --git a/ansible/config/base.yml b/ansible/config/base.yml
|index 1929d81..8031e92 100644
|--- a/ansible/config/base.yml
|+++ b/ansible/config/base.yml
--------------------------
patching file ansible/config/base.yml
Using Plan A...
Hunk #1 FAILED at 1413.
1 out of 1 hunk FAILED -- saving rejects to file ansible/config/base.yml.rej

I had to manually add the line into the NETWORK_GROUP_MODULES , hopefully that will fix it for now.
Still I have to test the module and playbooks, but this is an issue.

Thanks for trying. Please use https://github.com/aruba/aruba-ansible-modules to install ansible modules for now. We will be fixing wiki to point to that github instructions for Ansible module installation.