Arthur Juliani | Learning Policies For Learning Policies -- Meta Reinforcement Learning (RL²) in Tensorflow.

Arthur Juliani. Learning Policies For Learning Policies — Meta Reinforcement Learning (RL²) in Tensorflow.

Overview
Reinforcement Learning provides a framework for training agents to solve problems in the world. One of the limitations of these agents however is their inflexibility once trained. They are able to learn a policy to solve a specific problem (formalized as an MDP), but that learned policy is often useless in new problems, even relatively similar ones.
Imagine the simplest possible agent: one trained to solve a two-armed bandit task in which one arm always provides a positive reward, and the other arm always provides no reward. Using any RL algorithm such as Q-Learning or Policy Gradient, the agent can quickly learn to always choose the arm with the positive reward. At this point, we might be tempted to say we’ve built an agent that can solve two-arm bandit problems. But have we really? What happens if we take our trained agent and give it a nearly identical bandit problem, except with the values of the arms switched? In this new setting, the agent will perform at worse than chance, since it will simply pick whatever it believed to be the correct arm before. In the traditional RL paradigm, our only recourse would be to train a new agent on this new bandit, and another new agent on another new task, etc, etc.
What if this retraining wasn’t necessary though? What if we could have the agent learn a policy for learning new policies? Such an agent could be trained to solve not just a single bandit problem, but all similar bandits it may encounter in the future as well.

This approach to learning policies that learn policies is called Meta Reinforcement Learning (Meta-RL),

and it is one of the more exciting and promising recent developments in the field.

In Meta-RL, an RNN-based agent is trained to learn to exploit the structure of the problem dynamically. In doing so, it can learn to solve new problems without the need for retraining, simply by adjusting its hidden state. The original work describing Meta-RL was published by Jane Wang and her colleagues at DeepMind last year in their paper:

Learning to Reinforcement Learn.

I highly recommend checking out that original article for insight into the development of the algorithm. As it turns out this idea was also independently developed by the group at OpenAI and Berkeley and described in their recent paper

RL2: Fast Reinforcement Learning via Slow Reinforcement Learning.

Since I first became familiar with these concepts through the DeepMind paper, that is the one I followed in the design of my own implementation.
In this article I want to first describe how to augment the A3C algorithm with the capacity to perform Meta-RL learning. Next I will show how it can be used to solve certain problems for which a meta-policy can be applied to solving families of MDPs without the need for retraining. The code for a Tensorflow implementation of the model as well as each of the experiments is available at this GitHub Repo: Meta-RL.

Make a Meta Agent
The key ingredient in a Meta-RL system is a Recurrent Neural Network (RNN).

This recurrent nature of this architecture is what allows the agent to learn the meta-policy since it can adjust its output over time given new input.

If that last bit sounds familiar, it is exactly what the traditional back-propagation training process of neural networks makes possible. Here instead, we will be

training the RNN to learn to adjust itself by altering the hidden state, rather than needing backprop, or some other external adjustment intervention for every new task.

In order for this to happen, we need more than the standard $State \rightarrow Action$ set-up for the network. In addition to observations $x_{t}$, we will feed the RNN the previous reward $r_{t-1}$ and the previous action $a_{t-1}$.

With these three things, the network can associate previous state-action pairs with their rewards, and in doing so adjust its future actions accordingly.

As a side note, we don’t need to provide the RNN with the previous observation $x_{t-1}$, since it has already seen it at the previous time-step! Adding $r_{t-1}$ and $a_{t-1}$ allows the agent to always have the full picture of its actions and their success in the task.

The general Meta-RL framework when adapting from A3C.
Fortunately, the A3C algorithm is already halfway to being Meta-RL ready. Since it comes with an RNN, to begin with, we simply need to provide the additional $r_{t-1}$ and $a_{t-1}$ inputs to the network, and it will be able to learn to perform meta-policy learning!

Meta Experiments
Before describing the experiments I conducted, I want to talk about the kinds of scenarios in which Meta-RL works, and the scenarios that it doesn’t. Meta-RL isn’t magic, and we can’t train agents on Pong, and have them play Breakout without re-training (yet, at least).

The key to success here is that we are interested in learning a policy for learning a policy in a family of similar MDPs or bandits. Just like what TEM has done!

So in the case of bandits, it is possible to learn a meta-policy for learning a family of unseen two-armed bandit problems. The same can be applied to learning contextual bandits, grid worlds, 3D mazes, and more so long as the underlying logic of the problem remains the same.
Dependent Bandits
The simplest way to test our agent is with the two-armed bandit problem described at the beginning of this article. In this case, there are no observations $x$. Instead, the authors add a timestep input $t$ which allows the network to maintain a notion of the time in the task. I used this additional $t$ input for all of my experiments as well.
The nature of the bandit is as follows: a randomly chosen arm provides a reward of $+1$ with probability $p$, and otherwise provides a reward of $0$. The other arm provides $+1$ reward with probability $1-p$. In this way the two arms are inversely related to one another, and finding out something about one arm provides information about the other as well. For a human,

an ideal strategy would be to try each arm a few times, and figure out which provides the $+1$ reward more often.

This is essentially the Meta-Policy that we would like our agent to learn.
In the experiment each episode consisted of 100 trials. After 20,000 training episodes, the meta-agent is able to flexibly adjust its policy quickly in unseen test-set bandit environments. As you can see below (right),

after only a few trials the optimal arm is discovered and exploited.

This is in contrast to the agent without the additional meta-enabling inputs (left), which acts randomly throughout the episode and accumulates little reward.

Trained meta-A3C agent performance on random test-set bandits without (left) and with (right) additional $r_{t-1}$ and $a_{t-1}$ inputs. Top numbers indicate reward probability. Blue indicates agent action selection. Green bars indicate cumulative reward over the episode.

Rainbow Bandits

The next logical step when trying out meta-policy learning is to add in state inputs $x$, to allow for actions conditioned on observations.

For this situation, I created a bandit in which the observed state is a 2-pixel image consisting of two random colors. One of the colors is set as “correct” at the beginning of the episode, and the corresponding arm will always provide a reward of $+1$. The other color then always corresponds to a reward of $0$. For the duration of an episode (100 trials), the two colors are displayed in randomized order side-by-side each trial. Correspondingly, the arm that provides the reward changes with the color. This time,

an ideal policy involves not just trying both arms, but learning that the reward follows the color, and discovering which of the two colors provides the reward.

After 30,000 training episodes, the Meta-RL agent learns the correct policy for solving these problems.

Trained meta-A3C agent performance on random test-set rainbow bandits without (left) and with (right) additional $r_{t-1}$ and $a_{t-1}$ inputs. Top color indicated reward giving arm. Blue bar indicates agent action selection.
Interestingly, if we look at the performance curve during training for this task, we discover something unexpected (at least to me).

Unlike most curves, in which there is a smooth continuous overall trend towards improved performance, here there is a single discrete jump.

The agent goes from random performance to near-perfect performance within the span of 5000 episodes or so.

There seems to be a discrete jump in performance as the agent’s behavior changes from random action to employing a successful strategy.
Intuitively, this makes sense with the task since you either are applying the strategy, in which case near perfect performance is attained, or you aren’t, in which case performance over time is at chance level. That in and of itself isn’t so remarkable, but what seems compelling to me is that the agent had been training for hours beforehand, slowly adjusting its weights, with no perceptible behavioral changes. Then, all of a sudden things ‘clicked’ into place and an entirely new behavioral pattern emerged. This is similar to what psychologists find in the cognitive abilities of children as they develop. Certain cognitive skills such as object permanence appear to come as discrete changes in development, yet they are underlied by continuous changes in the wiring of the brain. These kinds of emergent behaviors are studied as part of a dynamic systems theory approach to cognition, and it is exciting to see similar phenomena come about within the context of RL agents!

Rainbow Gridworlds
For the final experiment, I wanted to

test a meta-agent in a full MDP environment, and what better one than the grid world utilized in the earlier tutorials?

In this environment, the agent is represented by a blue square in a small grid. The agent can move up, down, left, or right, to move through the square $5\times 5$ environment. In the environment, there are randomly placed squares of one color which provide $+1$ reward upon contact, and an equal number of randomly placed squares of another color that provide $0$ reward. As was the case in the rainbow bandit, the color here is ambiguous, because by randomizing the color each episode, what would be an MDP becomes a family of MDPs.

The optimal strategy is to check one of the squares, and discover if it provides the reward. If so, then squares of that color should be the goals for the given episode. If not, then the other color indicates the reward.

Each episode consisted of 100 steps, and after 30,000 training episodes, the meta-agent learns an approximation to this optimal policy.

Meta-A3C agent performance on random test-set grid worlds without (left) and with (right) additional $r_{t-1}$ and $a_{t-1}$ inputs. The colored bar below the grid indicates reward-giving goals and is important not part of network input.

Beyond
In their DeepMind paper, the authors discuss utilizing Meta-RL for 3D maze learning (discussed further in the paper), as well as another 3D task designed to emulate cognitive experiments conducted with primates. The entire paper is a great read, and I recommend it for those interested in the finer details of the algorithm, as well as the exact nature of the set of experiments they conducted. I hope to be able to see this technique applied in a variety of tasks in the future. A long-term goal of artificial intelligence is to train agents that can flexibly adapt to their environments and learn “on the go,” so to speak, in a safe and efficient way. Meta-RL/RL² is an exciting step toward that.


/api/categories appears to do a N+1 based on team count

Debug statements:
2016-06-09 09:10:59,794 INFO sqlalchemy.engine.base.Engine SELECT count(*) AS count_1
FROM (SELECT answer.challenge_cid AS answer_challenge_cid, answer.team_tid AS answer_team_tid, answer.timestamp AS answer_timestamp, answer.answer_hash AS answer_answer_hash, answer.submit_ip AS answer_submit_ip, answer.first_blood AS answer_first_blood
FROM answer
WHERE ? = answer.challenge_cid AND ? = answer.team_tid) AS anon_1
2016-06-09 09:10:59,794 INFO sqlalchemy.engine.base.Engine<PHONE_NUMBER>13876, 4)
2016-06-09 09:10:59,797 INFO sqlalchemy.engine.base.Engine SELECT count(*) AS count_1
FROM (SELECT answer.challenge_cid AS answer_challenge_cid, answer.team_tid AS answer_team_tid, answer.timestamp AS answer_timestamp, answer.answer_hash AS answer_answer_hash, answer.submit_ip AS answer_submit_ip, answer.first_blood AS answer_first_blood
FROM answer
WHERE ? = answer.challenge_cid AND ? = answer.team_tid) AS anon_1
2016-06-09 09:10:59,797 INFO sqlalchemy.engine.base.Engine<PHONE_NUMBER>24167, 4)
2016-06-09 09:10:59,800 INFO sqlalchemy.engine.base.Engine SELECT count(*) AS count_1
FROM (SELECT answer.challenge_cid AS answer_challenge_cid, answer.team_tid AS answer_team_tid, answer.timestamp AS answer_timestamp, answer.answer_hash AS answer_answer_hash, answer.submit_ip AS answer_submit_ip, answer.first_blood AS answer_first_blood
FROM answer
WHERE ? = answer.challenge_cid AND ? = answer.team_tid) AS anon_1
2016-06-09 09:10:59,800 INFO sqlalchemy.engine.base.Engine<PHONE_NUMBER>24167, 4)
2016-06-09 09:10:59,804 INFO sqlalchemy.engine.base.Engine SELECT count(*) AS count_1
FROM (SELECT answer.challenge_cid AS answer_challenge_cid, answer.team_tid AS answer_team_tid, answer.timestamp AS answer_timestamp, answer.answer_hash AS answer_answer_hash, answer.submit_ip AS answer_submit_ip, answer.first_blood AS answer_first_blood
FROM answer
WHERE ? = answer.challenge_cid AND ? = answer.team_tid) AS anon_1
2016-06-09 09:10:59,804 INFO sqlalchemy.engine.base.Engine<PHONE_NUMBER>24167, 4)
2016-06-09 09:10:59,809 INFO sqlalchemy.engine.base.Engine SELECT count(*) AS count_1
FROM (SELECT answer.challenge_cid AS answer_challenge_cid, answer.team_tid AS answer_team_tid, answer.timestamp AS answer_timestamp, answer.answer_hash AS answer_answer_hash, answer.submit_ip AS answer_submit_ip, answer.first_blood AS answer_first_blood
FROM answer
WHERE ? = answer.challenge_cid AND ? = answer.team_tid) AS anon_1
2016-06-09 09:10:59,809 INFO sqlalchemy.engine.base.Engine<PHONE_NUMBER>31412, 4)
2016-06-09 09:10:59,812 INFO sqlalchemy.engine.base.Engine SELECT count(*) AS count_1
FROM (SELECT answer.challenge_cid AS answer_challenge_cid, answer.team_tid AS answer_team_tid, answer.timestamp AS answer_timestamp, answer.answer_hash AS answer_answer_hash, answer.submit_ip AS answer_submit_ip, answer.first_blood AS answer_first_blood
FROM answer
WHERE ? = answer.challenge_cid AND ? = answer.team_tid) AS anon_1
2016-06-09 09:10:59,812 INFO sqlalchemy.engine.base.Engine<PHONE_NUMBER>31412, 4)
2016-06-09 09:10:59,817 INFO sqlalchemy.engine.base.Engine SELECT count(*) AS count_1
FROM (SELECT answer.challenge_cid AS answer_challenge_cid, answer.team_tid AS answer_team_tid, answer.timestamp AS answer_timestamp, answer.answer_hash AS answer_answer_hash, answer.submit_ip AS answer_submit_ip, answer.first_blood AS answer_first_blood
FROM answer
WHERE ? = answer.challenge_cid AND ? = answer.team_tid) AS anon_1
2016-06-09 09:10:59,817 INFO sqlalchemy.engine.base.Engine<PHONE_NUMBER>31412, 4)
2016-06-09 09:10:59,819 INFO sqlalchemy.engine.base.Engine SELECT team.tid AS team_tid, team.name AS team_name, team.score AS team_score, team.last_solve AS team_last_solve
FROM team
WHERE team.tid = ?
2016-06-09 09:10:59,819 INFO sqlalchemy.engine.base.Engine (2,)
2016-06-09 09:10:59,821 INFO sqlalchemy.engine.base.Engine SELECT team.tid AS team_tid, team.name AS team_name, team.score AS team_score, team.last_solve AS team_last_solve
FROM team
WHERE team.tid = ?
2016-06-09 09:10:59,821 INFO sqlalchemy.engine.base.Engine (7,)
2016-06-09 09:10:59,822 INFO sqlalchemy.engine.base.Engine SELECT team.tid AS team_tid, team.name AS team_name, team.score AS team_score, team.last_solve AS team_last_solve
FROM team
WHERE team.tid = ?

INFO in context [.../ctfscoreboard/scoreboard/context.py:121]:
Request issued 22 queries.

This seems new.  I'm pretty sure it's due to 58d9b4f, specifically because /api/categories reuses the fields from the Challenge entity here: https://github.com/google/ctfscoreboard/commit/58d9b4f969db85a6a11be8d894843eff0da499f3?diff=split#diff-dca05d1a74f56abe283172cf3ccf470dL553


New file name parameters

First of all, thanks for the pipeline! Great work!
Now, to the issue.
I love to have different naming for my generated images. It looks like this:
YMD_seed_20 first characters of the main prompt
Your code reads very well so I found where I can add the needed code so I can have the needed names. I'm not a professional programmer, so I'm not sure if everything is fine (I mean, it works great for me but I'm not sure if there are some edge cases or possible problems).
I edited stage_image_saving.py by adding several strings after that: generated_image_name = generated_image_name.replace("%seed%", str(seed)):
generated_image_name = generated_image_name.replace("%date%", datetime.now().strftime("%Y%m%d"))
generated_image_name = generated_image_name.replace("%date-time%", datetime.now().strftime("%Y%m%d_%H%M%S"))
generated_image_name = generated_image_name.replace("%num%", str(num).zfill(5))
generated_image_name = generated_image_name.replace("%prompt%", str(access.get_active_setting(UI.S_PROMPTS, UI.F_MAIN_PROMPT, ""))[0:20])

Also, I changed this
filename = f"{generated_image_name}"
Additionally, I added this
.replace("|", "_")
because in my prompts I sometimes use "|"
Finally, I changed the name of the param file:
filename = f"{datetime.now().strftime('%Y%m%d')}_{seed}-param.txt"
The problem is that after updating to the new version of your pipeline, I would lose these changes. If you see they fit, it would be great if you implemented them to your code or wrote this logic in your style.
Also, it might be not consistent if I change the format of the saved images, but the param file is hardcoded. So I will have to manually change its name in the code. It would be useful if the param file had the same name as the image name with "param" at the end (or even without it). Or at least, it would be nice if I put the naming format of the param file in the widget as I do for the image file name.
Thanks again!
PS It would be great if I could specify the name of the directory inside the Output folder. So, for example, I generate robots, I could specify the directory name like "Robots" or "%date%_Robots".

I'll consider it for a future update, thanks for the suggestion


Using convert with vanilla JS doesn't work

I tried the unpkg link for this repo and it did not work. I hacked the script to extract the convert, convertMany, and ms functions out (if you're looking to do this just set e to an external variable where e.convert is being set.)
Maybe I did something wrong but I had to hack it to extract the convert function at all. It doesn't set on the window.

Thanks for reporting this, the issue was a misconfiguration of Babel during the build process, which was causing the global variable used to be unknown instead of convert.

:tada: This issue has been resolved in version 4.7.1 :tada:
The release is available on:

GitHub release
npm package (@latest dist-tag)

Your semantic-release bot :package::rocket:

This issue still persists as of v4.13.2. It shows "Uncaught TypeError: convert is not a function" error

Here are further details,
convert looks like an object, not a method

I can use like this

Please see #612


Add resilency for transient failures when using the FTP task

Troubleshooting
Allow the FTP deployment to reconnect and continue deployment after a disconnect.
Environment

Server: VSTS
Agent: Private, Windows 10 x64
Release Task: FTP task

Issue Description
Our external partner sometimes has an unstable network connection. So we experience a lot of ECONNRESET errors when deploying via FTP task.
Would it be possible to configure a reconnection when the FTP connection is lots? Otherwise we have to redeploy and will be left in the meantime with an incomplete / partial deployment.
Error logs
2018-08-19T15:55:12.7421596Z files uploaded: 131, files skipped: 0, directories processed: 32, total: 163, remaining: 3761, successfully uploaded: C:\VstsAgent\_work\r1\a\test\DK.png to: /test/DK.png
2018-08-19T15:55:14.2647712Z FTP upload failed: "Error: read ECONNRESET". FTP log: "[parser] < '227 Entering Passive Mode (178,250,10,177,71,19).\r\n',[parser] Response: code=227, buffer='Entering Passive Mode (178,250,10,177,71,19).',[connection] PASV socket connected,[connection] > 'STOR /test/DM.png'".
2018-08-19T15:55:14.2648778Z host: test.xxxxxxxx.de
2018-08-19T15:55:14.2649175Z path: /testfolder
2018-08-19T15:55:14.2649523Z files uploaded: 131
2018-08-19T15:55:14.2649894Z files skipped: 0
2018-08-19T15:55:14.2650260Z directories processed: 32
2018-08-19T15:55:14.2650603Z unprocessed files & directories: 3761
2018-08-19T15:55:14.2704028Z ##[error]Error: read ECONNRESET
2018-08-19T15:55:14.2727938Z disconnected

@yacaovsnc did your fix address this?

This issue is stale because it has been open for a year with no activity. Remove the stale label or comment on the issue otherwise this will be closed in 5 days


Cannot install plugin on Apple Silicon (darwin/ARM64)

Description
Installing the plugin on any mac with an M1 / Apple Silicon processor errors:
kubectl krew install gadget
Updated the local copy of plugin index.
Updated the local copy of plugin index "kvaps".
Installing plugin: gadget
W0829 13:46:24.860152   11172 install.go:164] failed to install plugin "gadget": plugin "gadget" does not offer installation for this platform
F0829 13:46:24.860211   11172 root.go:79] failed to install some plugins: [gadget]: plugin "gadget" does not offer installation for this platform

Impact
I can't use the plugin, but it's not the end of the world or impacting any systems.
Environment and steps to reproduce

Set-up: Any Apple M1 based hardware (or cloud instance)
Task: install krew, try to install this plugin
Action(s): as above
Error:  as above

Expected behaviour
The plugin to install
Additional information
I'm assuming it's probably something as simple as adding an extra build target somewhere?

@sammcj Thanks for the report! I prepared a fix (https://github.com/kinvolk/inspektor-gadget/pull/255) but I don't have the hardware to test it. Would you be able to test it?

@alban thank you! Yes I have an M1 machine I can test in on if there's a way I can install it without it being released?

@sammcj I made a fake release on my personal fork. You could download the tarball for your machine and try it:
https://github.com/alban/inspektor-gadget/releases/tag/v0.3.0-rc3
Alternativaly, you could checkout the branch and compile it yourself (see Building the code), but you would need to build both kubectl-gadget and the container image, and push it to your own container registry to be able to test it.

Sorry was AFK for a few days, thank you so much for this!


"Could not fetch remote environment" on WSL2 Ubuntu 20.04 LTS

VSCode Version: 1.50.1
OS Version: Windows 10 2004 19041.572

While trying to use VSCode on WSL Ubuntu, i am getting the error from the title, i searched through all same issues and still didn't found the solution to this problem.
Have anyone found the solution to the similar/same problem?

Hmm, we actually just changed the code around this dramatically so I'd say wait for 1.51.0 to see if it's fixed (or try insiders) and let us know if it's not.
FYI @roblourens

Hmm, we actually just changed the code around this dramatically so I'd say wait for 1.51.0 to see if it's fixed (or try insiders) and let us know if it's not.
FYI @roblourens
Thank you for the explanation, will be waiting for an update!


Crash on certain unsupported facade paint

Issue Description:
Crash on certain unsupported facade paint
In this case I painted an Item Buffer with an ExU2 TNT Generator
What happens:
It crashes. Here is the log from MultiMC
https://paste.ee/p/zLob1
What you expected to happen:
Either render properly, or fail at rendering and just render nothing
Steps to reproduce:

Paint Item Buffer with ExU2 TNT Generator.
Attempt to view inventory containing result
https://paste.ee/p/zLob1

Affected Versions (Do not use "latest"):

EnderIO: 1.10.2-3.1.169
EnderCore: 1.10.2-<IP_ADDRESS>-beta
Minecraft: 1.10.2
Forge: <IP_ADDRESS>4

Your most recent log file where the issue was present:
https://paste.ee/p/zLob1

Did you update ExU2 between painting the item and the crash?

(Tagging for "vanilla bug but we need a workaround")

nope. it crashed as soon as I opened the Iron Chest that my Painting Machine auto-outputs to

To be honest, I was half expecting this to not work, by not rendering. I was just hoping it would.
One way to fix it might be to catch the exception and return either air or the invisible block as the source block, if it has issues like this

One more note, the server didn't care that this happened. It just kept going

@Alex-hawks that is because the server does not render anything.

@bookerthegeek I'm well aware of that, I just felt I should mention that because this code can be called on the server

BTW: I'm still looking into the reason for the blockState property rejecting one of its values. That should not happen in the first place.

Might be time to get input from @RWTema
Also, the version of Extra Utilities 2 used for this was 1.3.0

I contacted RW on IRC, I just cannot see if there's an answer from work. ;)


Hide privacy unfriendly setting toggles?

Certain settings toggles are displayed which could harm privacy if turned on by mistake. It might be better if they are patched out. Thoughts?

It's fine if someone wants to patch it out for aesthetics, but they won't do anything if switched on.

It should be enough to add the hidden attribute to the entries that should be removed. You can submit a PR if you want.


Rule request: Avoid surrounding strings with smart quotes

Summary of the new feature
Quoted strings are sometimes unintendedly replaced when passed by word processors as Microsoft Office applications as MSWord and Outlook. It is recommended to surround strings with unambiguous single quoted or double quoted string as smart quotes require a BOM (Byte Order Mark) and therefore it is advised to avoid these characters.
Proposed technical implementation details (optional)
See (PowerShell based) prototype AvoidSmartQuotedString at: https://github.com/iRon7/PSRules
What is the latest version of PSScriptAnalyzer at the point of writing
1.21.0

Thanks @iRon7 I am going to open this up as a discussion and see if other folks have scenarios that would need this, PowerShell manages smart quotes quite well today

@SydneyhSmith,
Thanks for picking this up as a discussion

PowerShell manages smart quotes quite well today

Agree but just like e.g. the AvoidTrailingWhitespace rule, you better avoid them.

For clarity, maybe add a definition of "smart quotes" to your issue description. Initially I didn't know what you meant. Looking at your test code I guess it's the curly quote styles, like these:

‘Test’ -> 'Test'
“Test” -> "Test"

And I agree these shouldn't be used for defining strings. Actually, Powershell itself should fail hard on these quote types and not "handle them".

For clarity, maybe add a definition of "smart quotes"

Done.

Powershell itself should fail hard on these quote types and not "handle them" to your issue description

I am not sure whether it should "fail hard" but my recommendation would be to avoid them in anyway (which I think should actually apply for using any non-ASCII character in a PowerShell statement, see also: #1999)


XCUITests

This is not really a bug but a question. I understand that this is not the right platform for this discussion but I tried my luck in stack overflow and react-native chatroom and didn't get any response. Apologies for posting this query here.
I recently started learning react-native and have a quick question - Can we write XCUItests for UI test automation using react-native ? It would be great if someone can point me to some examples or github repos.
Thanks,
Kapil.

@qakapil The default react-native generator has an example XCTestCase here

Unfortunately we have too many issues in this repo, so we are being very strict when it comes to closing questions and non-issues. You can also try asking in Reactiflux.


Added a new Shell Game

🛠 Fixes Issue (#323)

👨💻 Changes proposed
Adding a whole new game so no such changes in any existing project.

✅ Check List (Check all the applicable boxes)

[x] My code doesn't break any part of the project (Zero Octave-Javascript-Projects).
[x] This PR does not contain plagiarized content.
[x] My Addition/Changes works properly and matches the overall repo pattern.
[x] The title of my pull request is a short description of the requested changes.

📄 Note to reviewers
The game works perfectly fine and many interesting features like dynamic trace paths and game level difficulty is added and so it took a long time to open the PR.

📷 Screenshots

Add your project on the website too

Add your project on the website too

Can you please guide me on how to proceed with that?

Add your project on the website too

Can you please guide me on how to proceed with that? I tried but could not proceed.

You have to update your fork and open index.html & go through the file, there is a comment for each project you will have to put similar lines of code with comments with your project and relevant details.

Add your project on the website too

Can you please guide me on how to proceed with that? I tried but could not proceed.

You have to update your fork and open index.html & go through the file, there is a comment for each project you will have to put similar lines of code with comments with your project and relevant details.
Also delete DS store file from your commit.

Done all the required changes. Please review the PR once.


WBC-436 change player type to html5 revert

Coverage remained the same at 100.0% when pulling 1b2cf31be7f5805fd87e919b3634d285135c28af on krimovish:WBC-436-revert into d006235fbce17b29427eacea7e3675c96dd7d681 on MovingImage24:master.

Coverage remained the same at 100.0% when pulling 1b2cf31be7f5805fd87e919b3634d285135c28af on krimovish:WBC-436-revert into d006235fbce17b29427eacea7e3675c96dd7d681 on MovingImage24:master.

Coverage remained the same at 100.0% when pulling 1b2cf31be7f5805fd87e919b3634d285135c28af on krimovish:WBC-436-revert into d006235fbce17b29427eacea7e3675c96dd7d681 on MovingImage24:master.

Coverage remained the same at 100.0% when pulling 1b2cf31be7f5805fd87e919b3634d285135c28af on krimovish:WBC-436-revert into d006235fbce17b29427eacea7e3675c96dd7d681 on MovingImage24:master.


Inferred return of a callback differs based on inline object literal vs variable assignment

Bug Report
🔎 Search Terms
multiple inline callbacks inferred type narrowing returns object literals
🕗 Version & Regression Information

This is the behavior in every version I tried, and I reviewed the FAQ for entries about callback return type narrowing and subtype reduction

⏯ Playground Link
Workbench Repro
💻 Code
// @strict

const single = {
    _type: 'single',
    singleId: 'uuid',
} as const

function f1(count: number) {
//       ^?
    if(count === 1) {
        return single
    }

    return {
        _type: 'multiple',
        multipleId: 'uuid',
    } as const
}

function f2(count: number) {
//       ^?
    if(count === 1) {
        const spread = {...single} as const
        return spread
    }

    return {
        _type: 'multiple',
        multipleId: 'uuid',
    } as const
}

function f3(count: number) {
//       ^?
    if(count === 1) {
        return {
            ...single
           // Gains readonly multipleId?: undefined
        } as const
    }

    return {
        _type: 'multiple',
        multipleId: 'uuid',
    } as const
}

function f4(count: number) {
//       ^?
    if(count === 1) {
        return {
            ...{
                _type: 'single',
                singleId: 'uuid',
            } as const
           // Gains readonly multipleId?: undefined
        } as const
    }

    return {
        _type: 'multiple',
        multipleId: 'uuid',
    } as const
}

function f5(count: number) {
//       ^?
    if(count === 1) {
        return {
            _type: 'single',
            singleId: 'uuid',
           // Gains readonly multipleId?: undefined
        } as const
    }

    return {
        _type: 'multiple',
        multipleId: 'uuid',
        // Gains readonly singleId?: undefined
    } as const
}

export type {f1,f2,f3,f4,f5}

🙁 Actual behavior
I was noticing some of my logic expecting to infer the return type of a callback was failing, looking into it further I was seeing a difference around the behaviour of the inferred callback returns.
When they conditionally return different object literals, conditionally returning a new object inline when the final return is inline adds an additional optional property to the type.
In the above example, the f1 & f2 callbacks have the minimal return type of a distinct union as they return a variable holding an object reference, whereas f3 & f4 add a property of readonly multipleId?: undefined to the first return type, and f5 adds such a property to both return types, with multipleId and singleId respectively.
Setting exactOptionalPropertyTypes changes the type of undefined for the additional property to never, but otherwise persists the behaviour.
I guess I'm after clarification on whether this is intended behaviour or not, specifically when using a const assertion.
I would also expect at least the return types of f4 and f5 to match as I read them as both being essentially inline declarations.
🙂 Expected behavior
Like the comment below

Conversely, if the last return is a variable, all return types are consistant whatever the first return type setup is.
// @strict

const single = {
    _type: 'single',
    singleId: 'uuid',
} as const

const multiple = {
    _type: 'multiple',
    multipleId: 'uuid',
} as const

function f1(count: number) {
//       ^?
    if(count === 1) {
        return single
    }

    return multiple
}

function f2(count: number) {
//       ^?
    if(count === 1) {
        const spread = {...single} as const
        return spread
    }

    return multiple
}

function f3(count: number) {
//       ^?
    if(count === 1) {
        return {
            ...single
           // Gains readonly multipleId?: undefined
        } as const
    }

    return multiple
}

function f4(count: number) {
//       ^?
    if(count === 1) {
        return {
            ...{
                _type: 'single',
                singleId: 'uuid',
            } as const
           // Gains readonly multipleId?: undefined
        } as const
    }

    return multiple
}

function f5(count: number) {
//       ^?
    if(count === 1) {
        return {
            _type: 'single',
            singleId: 'uuid',
           // Gains readonly multipleId?: undefined
        } as const
    }

    return multiple
}

export type {f1,f2,f3,f4,f5}

Workbench Repro

Conversely, if the last return is a variable holding an object reference, all the return types are now identical whatever the setup of the condition return.
// @strict

const single = {
    _type: 'single',
    singleId: 'uuid',
} as const

const multiple = {
    _type: 'multiple',
    multipleId: 'uuid',
} as const

function f1(count: number) {
//       ^?
    if(count === 1) {
        return single
    }

    return multiple
}

function f2(count: number) {
//       ^?
    if(count === 1) {
        const spread = {...single} as const
        return spread
    }

    return multiple
}

function f3(count: number) {
//       ^?
    if(count === 1) {
        return {
            ...single
        } as const
    }

    return multiple
}

function f4(count: number) {
//       ^?
    if(count === 1) {
        return {
            ...{
                _type: 'single',
                singleId: 'uuid',
            } as const
        } as const
    }

    return multiple
}

function f5(count: number) {
//       ^?
    if(count === 1) {
        return {
            _type: 'single',
            singleId: 'uuid',
        } as const
    }

    return multiple
}

export type {f1,f2,f3,f4,f5}

Workbench Repro

This is the intended behavior; see #19513 for motivation

Thanks for coming back to me @RyanCavanaugh
Would you also be able to point me to an explainer about how an object literal is affected by containing a spread?


extend mirror for supporting private registry

extend mirror for supporting private registry
Signed-off-by: Ling FaKe<EMAIL_ADDRESS>

To add support for this, we need to make it so that image names are scoped by their registry if they are not from the official registry. We also need content trust to be enabled by default, since this defers naming to a possibly untrusted registry. Such a PR really needs a proper proposal outlining the approach to these concerns before proceeding.
I believe my most recent description of this issue is in this post.

@stevvooe I know your concers, but I don't understand completely, the image names, images trust and provenance you mentioned docker/docker#16974

@thaJeztah @stevvooe though there is naming scope issue, but I think this PR has no direct relationship with your concerns, and there is strong and much desire for mirroring private registry, how about your opinion?

@TrumanLing If registry A and registry B disagree on what the value of image foo is, how should docker behave? Should docker just take the new value? Should it reject the differing value? Without assigning a single source of naming, these problems become endless. They need to be clearly understood before proceeding.
Also, this needs a description of the actual proposal. This PR changes the format and behavior of an existing option and doesn't even demonstrate why or how. Let's see a design and proposal covering these concerns and move from there.

@stevvooe thanks for your reponse. If you do desgin, proposal and discussion, would you please involve me if convinient, I am very interesting these conerns.

@TrumanLing I think @stevvooe meant to say; if you want this feature, please create a design and proposal

We already have a proposal: https://github.com/docker/docker/issues/18818
@TrumanLing Maybe you can ping related maintainers in that issue.

@hqhq Could you expand the proposal to cover the concerns above? Specifically, what is the planned behavior in the daemon upon disagreement in naming. These questions need to be answered before we can proceed.

@thaJeztah @stevvooe you mentioned " If registry A and registry B disagree on what the value of image foo is, how should docker behave? ", in fact there is no disagreement even if registry A and registry B have the same value of image foo, because there are two different images registry A/foo and registry B/foo.

@TrumanLing The proposal is insufficient. Please expand it to cover these cases and analyze other cases that may arise. We cannot accept a change here without proper due diligence.

Let's continue discussion on the related issue #18818: I'm closing this for now as it doesn't seem ready to be merged.
Thanks


Fix avatar test and size

Let's set the avatar width and height attributes only if they are not empty
Fix the avatar test

Thanks – I actually reverted the previous commit and addressed the sizing in a different way. Probably best to not hard code the width/height in the avatar and instead just let CSS take care of it.


[Workspace] Validate edited packages

This will allow to fallback on original checkout in case the edited
package has been removed from disk by user.

@swift-ci please test

@swift-ci please test

@swift-ci please test

@swift-ci please test linux


HIVE-27560: [2.3] Enhancing compatibility with Guava

What changes were proposed in this pull request?
This PR made the following changes to allow Hive 2.3 to use the more compatible Guava API:

Copied com.google.common.base.Objects from Guava 14.0.1 version to org.apache.hive.common.guava.Objects and changed Hive to use org.apache.hive.common.guava.Objects. This change is to accommodate versions of Guava after 21, as Objects was renamed to MoreObjects after Guava 21.

Copied com.google.common.base.Stopwatch from Guava 14.0.1 version to org.apache.hive.common.guava.Stopwatch, and changed Hive to use org.apache.hive.common.guava.Stopwatch. This change was made to accommodate versions of Guava after 17, where Stopwatch underwent significant changes. Maintaining the use of a fixed API is simpler than using reflection for compatibility.

Copied org.spark_project.guava.util.concurrent.MoreExecutors.SameThreadExecutorService and its corresponding utility method from Guava 14.0.1 version to org.apache.hive.common.guava.SameThreadExecutorUtil, and changed Hive to use SameThreadExecutorUtil#sameThreadExecutor. This change was made to accommodate versions of Guava after 26, which no longer contains this API.

Used reflection in the TephraHBaseConnection#connect method to start the TransactionManager. This is to accommodate versions of Guava after 17. Prior to Guava 16, startAndWait was called via reflection, while from Guava 17 onwards startAsync and awaitRunning are called through reflection.

In order to ensure compatibility with Guava 21+, a test method was added for each implementation of the com.google.common.base.Predicate.

In order to ensure compatibility with Guava 26+, the Futures.addCallback method with an Executor parameter is uniformly used in Hive 2.3. The SameThreadExecutorUtil.sameThreadExecutor()is passed in according to the implementation of Guava 14.0.1.

In order to ensure compatibility with Guava 20+, Collections.emptyIterator() was used instead of Iterators.emptyIterator().

In order to ensure compatibility with Guava 16+, the Hasher#putString method with a Charset parameter is uniformly used.

The relocation behavior of Guava in the hive-exec module has been removed, this operation should no longer be necessary.

After this PR, Hive 2.3 uses APIs that exist from Guava 14.0.1 to 32.1.2-jre, which also makes it possible for downstream projects that depend on Hive to upgrade their own Guava dependencies.
Why are the changes needed?
Make downstream projects that rely on Hive to possibly upgrade the Guava version they depend on.
Does this PR introduce any user-facing change?
No
Is the change a dependency upgrade?
No
Need to add additional error_prone_annotations 2.0.12 dependency.
How was this patch tested?

Compatibility tests were carried out on Hive 2.3 with multiple versions of Guava in the local environment. All the following tests build successfully.

mvn clean install -DskipTests -Pitests -Dguava.version=14.0.1
mvn clean install -DskipTests -Pitests -Dguava.version=15.0
mvn clean install -DskipTests -Pitests -Dguava.version=16.0.1
mvn clean install -DskipTests -Pitests -Dguava.version=17.0
mvn clean install -DskipTests -Pitests -Dguava.version=18.0
mvn clean install -DskipTests -Pitests -Dguava.version=19.0
mvn clean install -DskipTests -Pitests -Dguava.version=20.0 (Need to add additional error_prone_annotations 2.0.12 dependency to project)
mvn clean install -DskipTests -Pitests -Dguava.version=21.0 (Need to add additional error_prone_annotations 2.0.15 dependency to project)
mvn clean install -DskipTests -Pitests -Dguava.version=22.0
mvn clean install -DskipTests -Pitests -Dguava.version=23.6.1-jre
mvn clean install -DskipTests -Pitests -Dguava.version=24.1.1-jre
mvn clean install -DskipTests -Pitests -Dguava.version=25.1-jre
mvn clean install -DskipTests -Pitests -Dguava.version=26.0-jre
mvn clean install -DskipTests -Pitests -Dguava.version=27.1-jre
mvn clean install -DskipTests -Pitests -Dguava.version=28.2-jre
mvn clean install -DskipTests -Pitests -Dguava.version=29.0-jre
mvn clean install -DskipTests -Pitests -Dguava.version=30.1.1-jre
mvn clean install -DskipTests -Pitests -Dguava.version=31.1-jre
mvn clean install -DskipTests -Pitests -Dguava.version=32.1.2-jre

cc @sunchao @pan3793 @wangyum

cc @viirya

Merged to branch-2.3, thanks @LuciferYang @pan3793 !

Thanks @sunchao @pan3793


Sets

| A set acts almost completely like a list except that values are unique
$[int] mySet = $[1, 2, 3];

mySet.append(1); | does nothing
mySet.append(4); | appends new value

This would syntax sugar over:
{str, void} set = {
    "hello": void,
    "world": void,
};


Move homepage to new HomeController

The app homepage currently lives in the PagesController, which made
sense originally when it was just a totally static page. Now that it
has a fair bit of logic behind it and no longer depends on HighVoltage,
it deserves a place of its own (not to mention that pages/home exists
but is broken).

Create HomeController and move homepage logic there
Adjust translations to live under correct keys for partials
Reuse ApplicationController#not_found in PagesController when page
isn't found (instead of redirecting to /404)
Remove header setting for root path and long gone pages from
PagesController
Simplify robots header setting

Review app deployed to https://teaching-vacancies-review-pr-2533.london.cloudapps.digital


[RSTMGR|PWRMGR|TOP|PINMUX|RST_SYS] Reorganizing reset domains

This draft PR is to resolve items in #15317
LC reset domain and SYS reset domains are re-organized
rst_sys is connected to rv_dm and pinmux while rst_lc is connected to all the other logics
rst_sys_ni is newly added and connected to pinmux/pinmux_strap_sampling logic
This PR includes RTL/DV/DIF updates to be reviewed further
This PR needs to be verified by multiple tests such as chip_rv_dm_ndm_reset_req

Signed-off-by: Joshua Park<EMAIL_ADDRESS>

i think this looks pretty good. The strap sampling and rv_dm capture i think we could address as a separate PR.
Main thing now would probably be to get all the CI checks passing :)

In order to fix
E   HIER_BRANCH_NOT_READ:   pinmux.sv:22                    Net 'rst_sys_ni' in module 'pinmux' (TargetCfg=573'h4c000000460000004e0000004a000000480000003c00000036000000320000003400000000000000020000007003690000000092400000092000000012480000002480000) is not read from,                                                                                New

E   HIER_BRANCH_NOT_READ:   pinmux.sv:22                    Connected net 'rst_sys_ni' at pinmux_strap_sampling.sv:16 is not read from in module 'pinmux_strap_sampling' (TargetCfg=573'h4c000000460000004e0000004a000000480000003c00000036000000320000003400000000000000020000007003690000000092400000092000000012480000002480000)                       pinmux_strap_sampling.sv:16      New

E   INPUT_NOT_READ:   pinmux_strap_sampling.sv:16      Input port 'rst_sys_ni' is not read from in module 'pinmux_strap_sampling'                                                                                New

I suggest to just connect rst_sys_ni to the rst_ni port of the strap sampling block instead of adding a new port to that submodule.

@msfschaffner, does pinmux have two reset domains as shown in https://docs.google.com/presentation/d/1kDKSQTSYhP-Q9GoQLcmapb00ovSeLP6lZ4l0lBfxW18/edit#slide=id.g15c4e211182_0_36? Or only one reset (rst_sys_ni) is used for all pinmux logics and pinmux_strap_sample?

In order to fix
E   HIER_BRANCH_NOT_READ:   pinmux.sv:22                    Net 'rst_sys_ni' in module 'pinmux' (TargetCfg=573'h4c000000460000004e0000004a000000480000003c00000036000000320000003400000000000000020000007003690000000092400000092000000012480000002480000) is not read from,                                                                                New

E   HIER_BRANCH_NOT_READ:   pinmux.sv:22                    Connected net 'rst_sys_ni' at pinmux_strap_sampling.sv:16 is not read from in module 'pinmux_strap_sampling' (TargetCfg=573'h4c000000460000004e0000004a000000480000003c00000036000000320000003400000000000000020000007003690000000092400000092000000012480000002480000)                       pinmux_strap_sampling.sv:16      New

E   INPUT_NOT_READ:   pinmux_strap_sampling.sv:16      Input port 'rst_sys_ni' is not read from in module 'pinmux_strap_sampling'                                                                                New

I suggest to just connect rst_sys_ni to the rst_ni port of the strap sampling block instead of adding a new port to that submodule.

@msfschaffner, does pinmux have two reset domains as shown in https://docs.google.com/presentation/d/1kDKSQTSYhP-Q9GoQLcmapb00ovSeLP6lZ4l0lBfxW18/edit#slide=id.g15c4e211182_0_36? Or only one reset (rst_sys_ni) is used for all pinmux logics and pinmux_strap_sample?

I think you got it right - it has two domains, but only the strap sampling module is connected to rst_sys_ni.
I suggested the change above since the strap sampling module is entirely in the rst_sys_ni domain.

In order to fix
E   HIER_BRANCH_NOT_READ:   pinmux.sv:22                    Net 'rst_sys_ni' in module 'pinmux' (TargetCfg=573'h4c000000460000004e0000004a000000480000003c00000036000000320000003400000000000000020000007003690000000092400000092000000012480000002480000) is not read from,                                                                                New

E   HIER_BRANCH_NOT_READ:   pinmux.sv:22                    Connected net 'rst_sys_ni' at pinmux_strap_sampling.sv:16 is not read from in module 'pinmux_strap_sampling' (TargetCfg=573'h4c000000460000004e0000004a000000480000003c00000036000000320000003400000000000000020000007003690000000092400000092000000012480000002480000)                       pinmux_strap_sampling.sv:16      New

E   INPUT_NOT_READ:   pinmux_strap_sampling.sv:16      Input port 'rst_sys_ni' is not read from in module 'pinmux_strap_sampling'                                                                                New

I suggest to just connect rst_sys_ni to the rst_ni port of the strap sampling block instead of adding a new port to that submodule.

@msfschaffner, does pinmux have two reset domains as shown in https://docs.google.com/presentation/d/1kDKSQTSYhP-Q9GoQLcmapb00ovSeLP6lZ4l0lBfxW18/edit#slide=id.g15c4e211182_0_36? Or only one reset (rst_sys_ni) is used for all pinmux logics and pinmux_strap_sample?

I think you got it right - it has two domains, but only the strap sampling module is connected to rst_sys_ni. I suggested the change above since the strap sampling module is entirely in the rst_sys_ni domain.

Ah. Got it. Let me fix it.

I am debugging a CI failure in chip_prim_tl_access test with following errors.

UVM_ERROR @ * us: (cip_base_vseq.sv:250) [chip_prim_tl_access_vseq] Check failed rsp.d_error == exp_err_rsp (* [*] vs * [*]) unexpected error response for addr: * has 1 failures:

Test chip_prim_tl_access has 1 failures.

0.chip_prim_tl_access.1
Line 221, in log /workspaces/repo/scratch/pr_15317/chip_earlgrey_asic-sim-vcs/0.chip_prim_tl_access/latest/run.log
  UVM_ERROR @ 1910.790454 us: (cip_base_vseq.sv:250) [uvm_test_top.env.virtual_sequencer.chip_prim_tl_access_vseq] Check failed rsp.d_error == exp_err_rsp (1 [0x1] vs 0 [0x0]) unexpected error response for addr: 0x4013201c

To generate a reference waveform, I ran this test in master and found a UVM_FATAL as follows.

UVM_FATAL @ * us: (chip_stub_cpu_base_vseq.sv:44) [chip_prim_tl_access_vseq] timeout occurred! has 1 failures:
    * Test chip_prim_tl_access has 1 failures.
        * 0.chip_prim_tl_access.1
          Line 215, in log /workspaces/repo/scratch/master/chip_earlgrey_asic-sim-vcs/0.chip_prim_tl_access/latest/run.log

UVM_FATAL @ 10011.065782 us: (chip_stub_cpu_base_vseq.sv:44) [uvm_test_top.env.virtual_sequencer.chip_prim_tl_access_vseq] timeout occurred!
Once this issue is fixed, this run can reach the same point where a mismatch occurred.
I wonder how other PRs are passing without CI failure..

@jeoongp i can help have a look tomorrow at the xcelium failures. If i can't get anywhere I'll ping Michael / Cindy who i think are more familiar.

i think i've managed to reproduce the chip_prim_tl_access error, i'll have a look.

i think i've managed to reproduce the chip_prim_tl_access error, i'll have a look.

Thanks! FYI, this is the run cmd : ./util/dvsim/dvsim.py hw/top_earlgrey/dv/chip_sim_cfg.hjson -i chip_sw_pwrmgr_random_sleep_power_glitch_reset

i think i've managed to reproduce the chip_prim_tl_access error, i'll have a look.

This issue was resolved by https://github.com/lowRISC/opentitan/pull/15794.
Thanks @tjaychen!

chip_prim_tl_access error was fixed by #15794.
But when I run the same command in the master, the timeout error still occurs as reported above.
Failure Buckets

UVM_FATAL @ * us: (chip_stub_cpu_base_vseq.sv:52) [chip_prim_tl_access_vseq] timeout occurred! has 1 failures:

Test chip_prim_tl_access has 1 failures.

0.chip_prim_tl_access.1
Line 203, in log /workspaces/repo/scratch/master/chip_earlgrey_asic-sim-vcs/0.chip_prim_tl_access/latest/run.log
  UVM_FATAL @ 10011.065782 us: (chip_stub_cpu_base_vseq.sv:52) [uvm_test_top.env.virtual_sequencer.chip_prim_tl_access_vseq] timeout occurred!
  UVM_INFO @ 10011.065782 us: (uvm_report_catcher.svh:705) [UVM/REPORT/CATCHER]
  --- UVM Report catcher Summary ---

This FAULT seems to be somehow not found in the master and night regression. I still wonder why it shows up in my local branch. Since I ran it several times across multiple rebases, I will move forward. This timeout FAULT is not related to this PR. If the same error occurs in other case again, we can come back and investigate it.

Grepping the FPGA log reveals that the following tests are timing out at the moment.
The last printout of each test before timeout is listed below:
2022-10-28T17:48:49.3717013Z I00002 irq_asm_functest.c:57] Calling exception handler to reset device.
2022-10-28T17:48:49.3744455Z I00002 irq_asm_functest.c:57] Calling exception handler to reset device.
2022-10-28T17:50:49.4400273Z I00010 alert_functest.c:72] Generate alert via test regs
2022-10-28T17:50:49.4433257Z I00010 alert_functest.c:72] Generate alert via test regs
2022-10-28T17:52:51.2673087Z I00001 keymgr_functest.c:244] Powered up for the first time, program flash
2022-10-28T17:52:51.2696910Z I00002 keymgr_functest.c:172] OTP partition locked. Digest: e88787c2-8c628bf6
2022-10-28T17:54:54.9599364Z I00001 rstmgr_functest.c:31] Reset reason: 0x00000001
2022-10-28T17:54:54.9617006Z I00001 rstmgr_functest.c:31] Reset reason: 0x00000001
2022-10-28T17:56:56.7646548Z I00009 watchdog_functest.c:59] threshold = 1250
2022-10-28T17:56:56.7667500Z I00009 watchdog_functest.c:59] threshold = 1250
2022-10-28T17:59:45.1639861Z I00001 keymgr_testutils.c:81] Powered up for the first time, program flash
2022-10-28T17:59:45.1673077Z I00001 keymgr_testutils.c:81] Powered up for the first time, program flash
2022-10-28T18:09:47.2572208Z I00000 ottf_main.c:126] Running sw/device/tests/alert_handler_lpg_clkoff_test.c
2022-10-28T18:09:47.2586415Z I00000 ottf_main.c:126] Running sw/device/tests/alert_handler_lpg_clkoff_test.c
2022-10-28T18:12:19.0815250Z I00002 aon_timer_wdog_bite_reset_test.c:37] Wdog will bark after 200 us and bite after 400 us
2022-10-28T18:12:19.0852229Z I00002 aon_timer_wdog_bite_reset_test.c:37] Wdog will bark after 200 us and bite after 400 us
2022-10-28T18:14:19.1534289Z I00002 aon_timer_wdog_lc_escalate_test.c:207] Wdog will bark after 300/75 us/cycles and bite after 400/100 us/cycles
2022-10-28T18:14:19.1555777Z I00002 aon_timer_wdog_lc_escalate_test.c:207] Wdog will bark after 300/75 us/cycles and bite after 400/100 us/cycles
2022-10-28T18:16:21.0201771Z I00001 clkmgr_off_trans_impl.c:101] Setting bite reset for 400 us (100 cycles)
2022-10-28T18:16:21.0223682Z I00001 clkmgr_off_trans_impl.c:101] Setting bite reset for 400 us (100 cycles)
2022-10-28T18:18:21.0904489Z I00001 clkmgr_off_trans_impl.c:101] Setting bite reset for 400 us (100 cycles)
2022-10-28T18:18:21.0940034Z I00001 clkmgr_off_trans_impl.c:101] Setting bite reset for 400 us (100 cycles)
2022-10-28T18:20:21.1649191Z I00001 clkmgr_off_trans_impl.c:101] Setting bite reset for 400 us (100 cycles)
2022-10-28T18:20:21.1682874Z I00001 clkmgr_off_trans_impl.c:101] Setting bite reset for 400 us (100 cycles)
2022-10-28T18:22:21.2360509Z I00001 clkmgr_off_trans_impl.c:101] Setting bite reset for 400 us (100 cycles)
2022-10-28T18:22:21.2383840Z I00001 clkmgr_off_trans_impl.c:101] Setting bite reset for 400 us (100 cycles)
2022-10-28T18:24:21.3077506Z I00005 clkmgr_off_peri_test.c:61] The expected hung address for clock 0 is 0x40000004 at 0x7b000
2022-10-28T18:24:21.3116816Z I00005 clkmgr_off_peri_test.c:61] The expected hung address for clock 0 is 0x40000004 at 0x7b000

@jeoongp were you able to reproduce this issue?

some of these FPGA tests can actually be run in DV, and the failures can be reproduced there:
util/dvsim/dvsim.py hw/top_earlgrey/dv/chip_sim_cfg.hjson -i chip_sw_alert_handler_lpg_clkoff chip_sw_aon_timer_wdog_bite_reset chip_sw_aon_timer_wdog_lc_escalate chip_sw_clkmgr_off_otbn_trans chip_sw_clkmgr_off_peri --fixed-seed 1

I would recommend to use that to make progress, instead of debugging on the FPGA.

@jeoongp were you able to reproduce this issue?

Yes, I fixed a timeout error at chip_sw_clkmgr_off_hmac_trans. But, another timeout error occurred at irq_asm_functest_sim_verilator. It seems to be rerunning while I wrote this message.

some of these FPGA tests can actually be run in DV, and the failures can be reproduced there:
util/dvsim/dvsim.py hw/top_earlgrey/dv/chip_sim_cfg.hjson -i chip_sw_alert_handler_lpg_clkoff chip_sw_aon_timer_wdog_bite_reset chip_sw_aon_timer_wdog_lc_escalate chip_sw_clkmgr_off_otbn_trans chip_sw_clkmgr_off_peri --fixed-seed 1

I would recommend to use that to make progress, instead of debugging on the FPGA. I can also take a closer look a bit later if necessary.

Thanks! Let me run this cmd to check if any error occurs.

some of these FPGA tests can actually be run in DV, and the failures can be reproduced there:
util/dvsim/dvsim.py hw/top_earlgrey/dv/chip_sim_cfg.hjson -i chip_sw_alert_handler_lpg_clkoff chip_sw_aon_timer_wdog_bite_reset chip_sw_aon_timer_wdog_lc_escalate chip_sw_clkmgr_off_otbn_trans chip_sw_clkmgr_off_peri --fixed-seed 1

I would recommend to use that to make progress, instead of debugging on the FPGA. I can also take a closer look a bit later if necessary.

Thanks! Let me run this cmd to check if any error occurs.

All passing

For two sim errors (chip_sw_rstmgr_sw_req and chip_sw_sram_ctrl_main_scrambled_access), both come from assertion failure in rom_ctrl
xmsim: *E,ASRTST (/workspaces/repo/scratch/pr_15317/chip_earlgrey_asic-sim-xcelium/default/src/lowrisc_ip_rom_ctrl_0.1/rtl/rom_ctrl.sv,527): (time<PHONE_NUMBER> PS) Assertion tb.dut.top_earlgrey.u_rom_ctrl.PwrmgrDataChk_A has failed (34748 cycles, starting<PHONE_NUMBER> PS)
state goes from Done to ReadingLow because of LC reset
Previously, rom_ctrl was reset by SYS reset
If ROM_CTRL needs to be reset by LC reset, is this assertion supposed to be disabled?
unclear thing is.. when sim was run without xcelium, they are passing even though this assertion is violated..

The violation is occurring during LC reset. So we can tweak it to avoid this racing issue. I generated the SHM waveform but it's somehow frozen in the middle. When I opened it, simvision is also freezing..
@cindychip and @weicaiyang, can you take a look?

joshua, we just found an issue in the i2c testbench that was causing sims
to hang.
it was just rolled back.  Can you check if you have
https://github.com/lowRISC/opentitan/pull/15867 in your current log?
if you do, you probably need to rebase again.
On Wed, Nov 2, 2022 at 3:29 PM jeoongp @.***> wrote:

The violation is occurring during LC reset. So we can tweak it to avoid
this racing issue. I generated the SHM waveform but it's somehow frozen in
the middle. When I opened it, simvision is also freezing..
@cindychip https://github.com/cindychip and @weicaiyang
https://github.com/weicaiyang, can you take a look?
—
Reply to this email directly, view it on GitHub
https://github.com/lowRISC/opentitan/pull/15602#issuecomment-1301431117,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAH2RSRHQLMYMJ3IYNEWEULWGLTLRANCNFSM6AAAAAARJTZA34
.
You are receiving this because you were mentioned.Message ID:
@.***>

joshua, we just found an issue in the i2c testbench that was causing sims to hang. it was just rolled back. Can you check if you have #15867 in your current log? if you do, you probably need to rebase again.
…
On Wed, Nov 2, 2022 at 3:29 PM jeoongp @.> wrote: The violation is occurring during LC reset. So we can tweak it to avoid this racing issue. I generated the SHM waveform but it's somehow frozen in the middle. When I opened it, simvision is also freezing.. @cindychip https://github.com/cindychip and @weicaiyang https://github.com/weicaiyang, can you take a look? — Reply to this email directly, view it on GitHub <#15602 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAH2RSRHQLMYMJ3IYNEWEULWGLTLRANCNFSM6AAAAAARJTZA34 . You are receiving this because you were mentioned.Message ID: @.>

Yes, it includes #15867. Let me also rebase and rerun it.. Thanks!

This should be able to fix the assertion error: https://github.com/lowRISC/opentitan/pull/15953

This should be able to fix the assertion error: #15953

Thanks @cindychip. Yes, they are passing. ^_^


Add Fetch API demos

reviewers: @gauntface @jeffposnick

LGTM. Think samples are solid - are you still struggling with the POST request or is your one working?

Mega nit pick - any chance of a index.html to make it easier to navigate these demos or will gh-pages do this?

@gauntface I thought about that, but added in a README index that we'll be pointing to which lists up to all the samples instead. See: https://github.com/GoogleChrome/samples/blob/823dd3edc6816c6a1bd5b1bfba1a69568ec64f28/fetch-api/README.md. We can easily turn that into an index if needed though.

Looks good.

@jeffposnick Addressed your feedback. I've also refactored the POST example to use the GitHub Gist API to create a new gist based on user input. It was one of the few open-APIs that supported unauthenticated POST requests :)

:+1:


Add summarization functionality

Users should be able to automatically abridge / summarize transcripts. Hour long podcast conversations can be all over the place so ideally the summarization should output both a high level summary (5-10 sentences) and low level summary for each part.
Possible Approaches:

Basic Seq2Seq Model (spacy etc.)
BERT (Nice for local inference)
ChatGPT (interface with API)

Currently we have the outlines for all of the summarization approaches mentioned above, by far the best quality (meaningful semantics) of summarization is obtained by using ChatGPT. The openai api is of course a paid service.
This needs to be wrapped up in a class, currently we have a lot of repeated statements:
def spacy_summary(file: Dict, per=0.5) -> Dict:
This should also be possible without paid apis by loading opensource models into memory/gpu.

https://python.langchain.com/en/latest/modules/chains/index_examples/summarize.html
investigate this


New warnings fix Solidity

Resolves #692
Originally done at #704
Original requirements by @rndquu

Right now we have some compiler warnings
What should be done:

Fix compiler warnings

This PR fixes all compiler warnings!
https://github.com/ubiquity/ubiquity-dollar/assets/41552663/d78fde4d-0caa-477f-93d8-a4b5cdb0cec9

Make sure build and test workflow fails on any new warning introduced

This PR Indeed! makes the workflow 'Build and Test' fail when any new warning introduced
there is a CI build here that shows how the builds fails https://github.com/molecula451/ubiquity-dollar/actions/runs/5355653683/jobs/9714193621
But there is more. This PR comes with an update to foundry on the CI flow necessary to match the EVM version for the new update impossible without updating the builds

@rndquu merge

@pavlovcik pls check this PR again
This is basically this PR (approved by all reviewers) but with the latest changes from the development branch
We better merge it because every new update in the development branch requires refactor in this PR
The "Compare Test Coverage" workflow fails but there are only slight refactors so we can skip this check

had to clean the PR due to other branches conflcits when new commits happened today, good to push @pavlovcik

Why not delete the commented out identifiers?

these are not commented out, in Solidity, the variables that uses /* var */ means that it preserves the pattern of the inherit contract, to use whenever is able to do it. You cannot just remove it, at this is part of a pattern that its uses in child contracts

Seems to check out. Waiting on @zgorizzo69's approval then.

this is the same #704 that you guys already checked out, should be merge, new commits often break things

@zgorizzo69

Seems to check out. Waiting on @zgorizzo69's approval then.

this is the same #704 that you guys already checked out, should be merge, new commits often break things, had to close #704 for that reason

For various reasons I think it's best to fully review every pull request before its merged, regardless of how similar it is to another pull request.

We better merge it because every new update in the development branch requires refactor in this PR

I agree but please consider rndquu words

Seems to check out. Waiting on @zgorizzo69's approval then.

this is the same #704 that you guys already checked out, should be merge, new commits often break things, had to close #704 for that reason

For various reasons I think it's best to fully review every pull request before its merged, regardless of how similar it is to another pull request.

as this is a PR that tackles compiler warnings, people introducing new code to contracts may trigger more warnings, from now after the PR people introducing code to contracts, should care about compiling warnings

We can consider relying on a retroactive review from @zgorizzo69
That can be handled after this is merged in.

We can consider relying on a retroactive review from @zgorizzo69
That can be handled after this is merged in.

💯,

To sum up:

this PR is basically a copy of https://github.com/ubiquity/ubiquity-dollar/pull/704 which is already approved by 3 reviewers
this PR introduces only minor changes
there are no compiler warnings anymore (otherwise the "build and test" workflow would fail)

There are 2 failing workflows:

Slither Analysis (this is introduced in the latest development branch, we'll fix it)
coverage/coveralls (coverage dropped by 0.02% which is negligible)

I think this PR is good to merge keeping in mind that every new update in the development branch requires refactor in this PR

Thanks for the eye opener to the team @rndquu


Backport fix for CVE-2022-41715

Issue #, if available:
#502
Description of changes:
Backport fix for CVE-2022-41715 from 1.18
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

/retest

/retest

/retest

/test eks-distro-base-tooling-presubmits-python-3.9-2022

/test golang-1.15-tooling-presubmit

given we're deprecating EKS-D 1.20, the last remaning major project using Go 1.15, we're going to close this PR.


Horizon: Review and adjust monitoring / alerting for Soroban data

Review scope of changes from Soroban and impact to Horizon eg:

ingestion and processing on new TX Meta events
Deriving account balances w/ Soroban data
Anticipated impacts to ingestion time, query performance that we want to monitor

Alerts / monitoring - tasks:

[ ] Identify changes to alerting / monitoring to capture any new data or update existing metrics (grafana / prometheus)

[ ] Adjust alerts to take into changes for ie:
Ingestion duration / delay
request duration for impacted endpoints
state correctness
DB health
Disk warning levels etc
Memory
Anything else we deem to be risks

[ ] Create Ops ticket with changes to Prometheus / grafana settings
[ ] Apply changes to Staging environment

cc @mollykarcher


Multisite setup

I will wrap up #2 in a day or two. It looks very promising (those Let's Encrypt people have revolutionised SSL) so I thought I would open an issue to discuss one other change needed for this to be really valuable (and I like this more and more when I think about it):
I need to support many static sites from one instance/config.
I figure we could add a mapping between domain and "bucket root:
site1.com => firstbucket/site1
site2.com => firstbucket/site2
site3.com => secondbucket

In the above "firstbucket" is the bucket name and "site1" is the root folder for "site1.com". That way we put many sites into one S3 bucket if needed (simpler management; and it also avoids hitting the upper limit of buckets).
Having one secret etc. for all buckets sounds fine for me.
Also, note that I'm happy to implement the above if we can agree on how it should look.

Perhaps in config.json
"HostBucketMap": {
      "site1.com": { "S3Bucket": "firstbucket", "Path": "site1", "S3AccessKey": "", "S3SecretKey": "" },
      "site2.com": { "S3Bucket": "firstbucket", "Path": "site1", "S3AccessKey": "", "S3SecretKey": "" },
      "site3.com": { "S3Bucket": "secondbucket", "Path": "", "S3AccessKey": "", "S3SecretKey": "" }
}

For Let's Encrypt to work, the host has to be specified so this could be the needed setup for #2. Thus a config file would need at least one mapping. Perhaps have S3 keys default to global if empty?
For the implementation, Cache would need to prefix its paths with S3Bucket/Path/ so that cache dir and db could be shared. handler.go would use the config to prefix this to all paths before calling Cache.
Each mapping would need its own StorageProvider. I think this is interesting in case we support different providers in the future. Cache calls StorageProvider.Read(path string, w *CacheWriter), thus StorageProvider can simply strip the S3Bucket bucket from the prefix before calling S3.
StorageProvider would need to be injected into Cache for handler.go calls.
Putting it altogether, something like:
handler.go:
storageProvider := use r.Host to select the correct StorageProvider
prefixedPath := storageProvider.PrefixPath(path)
cacheError := cache.Read(prefixedPath, lastModifiedAtTime, cacheClient, storageProvider)

s3.go:
func (c S3Client) PrefixPath(path string) string {
     return c.bucket + "/" + c.path + "/" + path
}

func (c S3Client) buildS3Url(path string) string {
    return path stripped of PrefixPath
}

Thus a config file would need at least one mapping. Perhaps have S3 keys default to global if empty?

I assume this project is in a "pre 1.0" state, so breaking changes would be OK. I would say that a config schema should be clear and without ambiguity. Having "two ways" to do the same is what you see in legacy software.
I like your suggestion, it seems to be future proof. I suggest naming it Hosts instead of HostBucketMap, but that is just a detail. I try to work this into my SSL Pull Request.

Definitely pre1. 0. Though I have been using the initial commit version for quite some time without issue, I released to the public only a few days ago. We're definitely free to make breaking changes.
I agree with Hosts rather than HostBucketMap.
I forgot to mention that Cache.DeleteAll will need to be changed to Cache.DeleteWithPrefix to avoid purging the entire cache if only a single site changes.

I'm not sure how per host AWS credentials will work with ENV configuration. Seems like it might become a bit messy.
Do you think we should keep only global credentials? Should they only come from the ENV? Your comment on a single way to do things made me question this design decision.

My use case would be to set up one S3 policy for all and set the keys in OS env. So, yes, I think that should be

A global setting with OS env support
But it should probably also be possible to set it per host.

The logic is a little bit the other way around right now, but I would suggest that:
Only use the OS env vars if not set on the host.

I agree. That seems like the way to do it.
We might run into trouble when different storage providers are implemented
and the S3 Host keys (Bucket, S3Secret) no longer make sense.
On Aug 19, 2017 5:32 PM, "Bjørn Erik Pedersen"<EMAIL_ADDRESS>wrote:
My use case would be to set up one S3 policy for all and set the keys in OS
env. So, yes, I think that should be

A global setting with OS env support
But it should probably also be possible to set it per host.

The logic is a little bit the other way around right now, but I would
suggest that:
Only use the OS env vars if not set on the host.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/alexandres/poormanscdn/issues/7#issuecomment-323546211,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAI1a7QUHdamBPHX0lcfL8eP-JRSEH2uks5sZ0ZRgaJpZM4O8Y2G
.

@alexandres let's see how it works and then adjust. On a side note: What is the "best buy" on cheapish hosts for this with enough geographic spread?

I've been using http://oneprovider.com/ for a couple of years and can recommend them.

I'm closing this as the implementation is complete.

@bep
I found a bug in the implementation: https://github.com/alexandres/poormanscdn/commit/49d67769c223b24ece0ba0b908ae19b1b66db964#diff-56ffa6659747ba7a23d2b5597a4cda5dL220
The DB calls need to received prefixed paths so as not to conflate cached files from different hosts.
Also made another change: I think it makes more sense to use the hostname as the cache prefix rather than bucket + path.
Both fixed in https://github.com/alexandres/poormanscdn/commit/49d67769c223b24ece0ba0b908ae19b1b66db964
Let me know what you think.

@alexandres yes, I scratched my head myself when I started testing this this afternoon. Now it seems to work much better.


Want to add a function that converts angle in degree to radians

Want to add a function that converts an angle (in degrees) to angle in radians
For example, the angle 180 degree will be 3.14 radians, this is important in scientific computation.
I want to get assigned

it would be great if u could convert radians to degrees as well

@helplessThor @0tist can you assign this issue to me? I can create two functions to convert degrees to radians and radians to degrees. Thanks

I'll create the two functions as required

@lukew3 please assign me so that i can add the two functions


kraft ps reports 0M when not using the -M flag for kraft run

Describe the bug
kraft ps reports 0M when not using the -M flag for kraft run
Steps to reproduce
run kraft run w/o the -M flag
when finished do kraft ps, look at MEM field, should say 0MiB
Expected behavior
kraft ps should display whatever the default M value set by kraft is.
Which architectures were you using or does this bug affect?
x86_64
Which operating system were you using or does this bug affect?
macOS
Relevant log output
➜  http-rust1.75-actix-web4 git:(main) ✗ kraft ps
NAME              KERNEL                          ARGS     CREATED         STATUS   MEM   PORTS                   PLAT
admiring_ndakasi  oci://unikraft.org/base:latest  /server  22 minutes ago  running  0MiB  <IP_ADDRESS>:8080->8080/tcp  qemu/x86_64

This actually happens regardless of the -M flag, investigating


Add and remove property pages guid is not working in VS2019

I was not able to Add a new property page to my project by following the below guide.
https://docs.microsoft.com/en-us/visualstudio/extensibility/adding-and-removing-property-pages?view=vs-2019
Can anyone please provide samples or let me know if they can implement it?
Thank you

@jacquesbrits1 -- Thanks for your question. It looks like you're having an issue with the product itself, rather than an issue with the documentation. Here are a few options where you might consider asking your question:

https://social.msdn.microsoft.com/Forums/vstudio
https://www.stackoverflow.com
https://www.reddit.com/r/VisualStudio/

As well, you might also consider using the Report a Problem tool to report the issue.


do not reinstall flask on every tox run

Currently flask is reinstalled on every run of tox. This makes testing really slow (and therefore less fun). I did not see a reason for this, so I changed it. If there  is a reason, please understand this as a request for documentation.

Didn't notice this pull request, will update tox config


Remove tchannel support

Coverage increased (+1.5%) to 79.124% when pulling 32b0fd7710f89940d1a02dfab7cbd25145840dff on remove-tchannel into ede24fab90f47cce2bed9df28025197daa364111 on master.

Coverage increased (+1.5%) to 79.124% when pulling 32b0fd7710f89940d1a02dfab7cbd25145840dff on remove-tchannel into ede24fab90f47cce2bed9df28025197daa364111 on master.

Coverage increased (+6.1%) to 83.686% when pulling dd80c8ae3331566b2b8973c719c60f689fc2d8e9 on remove-tchannel into ede24fab90f47cce2bed9df28025197daa364111 on master.


add work and personal profiles to firebase

This issue is related to adding or updating work and personal profiles to Firebase under users collection and also makes the details form look appealing.

Update: it now allows users to create work and personal profiles and update their user details.


Bump minimatch version

Motivation

Solution

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

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

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
351

Relevant Lines:
351

💛  - Coveralls


feat: release please with publish

Release-As: 2.0.1
Adding release-please workflow to release a new version SDK and publish workflow to publish SDK to the pub.dev.
Because of:

info Note: Pub.dev only allows automated publishing from GitHub Actions when the workflow is triggered by pushing a git tag to GitHub. Pub.dev rejects publishing from GitHub Actions triggered without a tag. This ensures that new versions cannot be published by events that should never trigger publishing.

see https://dart.dev/tools/pub/automated-publishing#publishing-packages-using-github-actions
I had to set trigger for publish workflow on new tags not on master like it's done in other SDKs.

[ ] ⚠ Before merge: we need to setup automatic publish in pub.dev - https://dart.dev/tools/pub/automated-publishing#configuring-automated-publishing-from-github-actions-on-pubdev

Release test PR: https://github.com/vlnevyhosteny/buttercms-dart/pull/3

@ViolanteCodes Although the release works as it should, I ran into a problem with publish. When I try to publish package I got some validation errors/warnings:
dart pub publish --dry-run                                                                                [git:master] ✖
Resolving dependencies...
  _fe_analyzer_shared 63.0.0 (65.0.0 available)
  analyzer 6.1.0 (6.3.0 available)
  coverage 1.6.3 (1.6.4 available)
  http 0.13.6 (1.1.0 available)
  meta 1.9.1 (1.11.0 available)
  test 1.24.6 (1.24.7 available)
  test_core 0.5.6 (0.5.7 available)
  vm_service 11.9.0 (12.0.0 available)
  webkit_inspection_protocol 1.2.0 (1.2.1 available)
Got dependencies!
Publishing buttercms_dart 1.0.0 to https://pub.dev:
├── CHANGELOG.md (<1 KB)
├── LICENSE (1 KB)
├── README.md (1 KB)
├── example
│   └── lib
│       └── main.dart (1 KB)
├── lib
│   ├── buttercms_dart.dart (<1 KB)
│   └── src
│       ├── butter.dart (<1 KB)
│       └── files
│           ├── authors.dart (<1 KB)
│           ├── butter_constants.dart (<1 KB)
│           ├── categories.dart (<1 KB)
│           ├── content.dart (<1 KB)
│           ├── pages.dart (1 KB)
│           ├── posts.dart (1 KB)
│           └── tags.dart (<1 KB)
├── pubspec.yaml (1 KB)
└── test
    └── buttercms_dart_test.dart (<1 KB)
Validating package... (1.0s)
Package validation found the following potential issues:
* `dart analyze` found the following issue(s):
  Analyzing lib, test, pubspec.yaml...

  warning - lib/src/files/content.dart:21:14 - The operand can't be null, so the condition is always 'true'. Remove the condition. - unnecessary_null_comparison
  warning - pubspec.yaml:4:1 - The 'authors' field is no longer used and can be removed. Try removing the field. - deprecated_field
  warning - test/buttercms_dart_test.dart:1:8 - Unused import: 'package:buttercms_dart/buttercms_dart.dart'. Try removing the import directive. - unused_import
  warning - test/buttercms_dart_test.dart:2:8 - Unused import: 'package:test/test.dart'. Try removing the import directive. - unused_import

  4 issues found.
* Your pubspec.yaml includes an "authors" section which is no longer used and may be removed.
Package validation found the following hint:
* You're about to publish a package that opts into null safety.
  The previous version (0.1.1) isn't opted in.
  See https://dart.dev/null-safety/migration-guide for best practices.

There is flag -f to ignore those errors which I tried and then whole publish works. However, I wouldn't recommend to ignore those errors 😅 . How do you manually publish dart SDK? Do you have the same issue?

@vlnevyhosteny I think @prokopsimek actually published our last dart update - Prokop, is that right?

@vlnevyhosteny @ViolanteCodes Hi, I published the v1.0.0 25 days ago https://pub.dev/packages/buttercms_dart
It's specified in pubspec.yaml too https://github.com/ButterCMS/buttercms-dart/blob/master/pubspec.yaml#L3
I have also fixed all the mentioned warnings.

@vlnevyhosteny this is my cli output when trying to publish a new version.
➜  buttercms-dart git:(master) dart pub publish --dry-run
Resolving dependencies...
  _fe_analyzer_shared 63.0.0 (65.0.0 available)
  analyzer 6.1.0 (6.3.0 available)
  coverage 1.6.3 (1.6.4 available)
  http 0.13.6 (1.1.0 available)
  meta 1.9.1 (1.11.0 available)
  test 1.24.6 (1.24.8 available)
  test_core 0.5.6 (0.5.8 available)
  vm_service 11.9.0 (12.0.0 available)
  webkit_inspection_protocol 1.2.0 (1.2.1 available)
Got dependencies!
Publishing buttercms_dart 1.0.0 to https://pub.dev:
├── CHANGELOG.md (<1 KB)
├── LICENSE (1 KB)
├── README.md (1 KB)
├── example
│   └── lib
│       └── main.dart (1 KB)
├── lib
│   ├── buttercms_dart.dart (<1 KB)
│   └── src
│       ├── butter.dart (<1 KB)
│       └── files
│           ├── authors.dart (<1 KB)
│           ├── butter_constants.dart (<1 KB)
│           ├── categories.dart (<1 KB)
│           ├── content.dart (<1 KB)
│           ├── pages.dart (1 KB)
│           ├── posts.dart (1 KB)
│           └── tags.dart (<1 KB)
├── pubspec.yaml (1 KB)
└── test
    └── buttercms_dart_test.dart (<1 KB)
Validating package... (2.0s)
Package validation found the following hint:
* You're about to publish a package that opts into null safety.
  The previous version (0.1.1) isn't opted in.
  See https://dart.dev/null-safety/migration-guide for best practices.

Package has 0 warnings and 1 hint.
The server may enforce additional checks.

@vlnevyhosteny this is my cli output when trying to publish a new version.
➜  buttercms-dart git:(master) dart pub publish --dry-run
Resolving dependencies...
  _fe_analyzer_shared 63.0.0 (65.0.0 available)
  analyzer 6.1.0 (6.3.0 available)
  coverage 1.6.3 (1.6.4 available)
  http 0.13.6 (1.1.0 available)
  meta 1.9.1 (1.11.0 available)
  test 1.24.6 (1.24.8 available)
  test_core 0.5.6 (0.5.8 available)
  vm_service 11.9.0 (12.0.0 available)
  webkit_inspection_protocol 1.2.0 (1.2.1 available)
Got dependencies!
Publishing buttercms_dart 1.0.0 to https://pub.dev:
├── CHANGELOG.md (<1 KB)
├── LICENSE (1 KB)
├── README.md (1 KB)
├── example
│   └── lib
│       └── main.dart (1 KB)
├── lib
│   ├── buttercms_dart.dart (<1 KB)
│   └── src
│       ├── butter.dart (<1 KB)
│       └── files
│           ├── authors.dart (<1 KB)
│           ├── butter_constants.dart (<1 KB)
│           ├── categories.dart (<1 KB)
│           ├── content.dart (<1 KB)
│           ├── pages.dart (1 KB)
│           ├── posts.dart (1 KB)
│           └── tags.dart (<1 KB)
├── pubspec.yaml (1 KB)
└── test
    └── buttercms_dart_test.dart (<1 KB)
Validating package... (2.0s)
Package validation found the following hint:
* You're about to publish a package that opts into null safety.
  The previous version (0.1.1) isn't opted in.
  See https://dart.dev/null-safety/migration-guide for best practices.

Package has 0 warnings and 1 hint.
The server may enforce additional checks.

@prokopsimek What version of dart you have?

I have also fixed all the mentioned warnings.

Sorry - do you mean the ones mentioned above by @vlnevyhosteny ?

related to #10

@vlnevyhosteny I have just setup the GitHub Action release for pub.dev

@ViolanteCodes the PR is rdy to be reviewed.

@vlnevyhosteny does this need a secret set somewhere in the github repo? Or is that taken care of by the configuration in pub.dev?

@ViolanteCodes No, no secret needed. pub.dev will take care of authorization using that config and Github Action.


Chat buffer isn't cleared between logins

When logging in multiple times without closing the client the server MOTD and global chat rules appear to duplicate for each login

Edit: Looks like chat messages persist as well

This is a known issue I've had for a while, I guess I never got around to actually filing an issue for it. I implemented a pattern for this via IResettable - the chat repository should be cleared after each login, but it isn't because of a bug in AutomaticTypeMapper (really in Unity's handling of binding the types that I couldn't get them to fix). When the interface and implementation exist across assemblies, it isn't treating them as the same singleton instance in the dependency container, so IResettable gets called but doesn't hit the same instance as is used for displaying chat like it should.


PHP Component Zend Guard Loader is required but missing from you PHP installation.

Hello.
I try install the System Administration module, but, i can't because the webpage say:

PHP Component Zend Guard Loader is required but missing from you PHP installation.

Some modules need the System Administrador module.
Can you support us?
Best regards.
Rene

Hi Rene,
I haven't had much luck with the Commercial Modules running under Debian. 5 years back it was easier to get the commercial modules into an Open Source installation but has become harder. If you are able to find a guide on the internet, I'd be glad to integrate it for you.


Dashboard example generated with 2 pub declarations

The example The Unstable Book/Language Features/trait_alias/14.rs fails to check because there are two pub declarations before the main function. Find what the root cause is and fix it.

Closing since #656 was merged and all examples are being run without adding pub declarations into their main function.


[Backport] Don't use HistoricalXxxPrototypes in PooledTopNAlgorithm when Cursor's offset is FilteredOffset

Backport of #5133 to 0.11.0.

Fixes a regression #5132 with a low risk change (skip an optimized path for one additional case).

I think this is the last thing that should squeak into 0.11.0, I'll do the release immediately after it's merged.

👍


Possibility to remove z-index

Discussed in https://github.com/nolimits4web/swiper/discussions/5697

Originally posted by osj2507 May  5, 2022
If I load your example here
https://swiperjs.com/demos/020-navigation/core
The navigation elements are loaded after the the wrapper element

But loading it via React
https://codesandbox.io/s/v8xmc3?file=/src/App.jsx:367-408
the elements are loaded reversed

In the first example that actually means that the z-index can be unset and the arrows will still be shown on top of the images and not interfere with other elements.
Could they be moved below in the react implementation, so it is possible to style your way out of getting z-indexes, because then they will just follow proper HTML indexing behavior and there is no need to set it specifically.
I am suggesting this, because on my site it will interferer with other elements on the page when setting z-index.

fixed in https://github.com/nolimits4web/swiper/commit/2d3255fe3fdc12344fbac6b6979473258f9c66a8

That was a quick fix, thank you, can't wait to check if it is working as intended


SP role mapping not honored with code grant

Hi Team,
Observed that SP role mapping is not honored when using the code grant type, whereas the same approach works fine with the password grant type.
Upon further analysis, it was found that due to the existence of cache [1], when obtaining a token with the code grant type, the getOIDCClaimMapFromUserAttributes() method [2] is invoked to retrieve claims from cache instead of retrieveClaimsForLocalUser() [3], which retrieves claims from the user store. However, with the password grant type, it correctly retrieves claims from the user store using retrieveClaimsForLocalUser().
The response from retrieveClaimsForLocalUser() includes the group claim after honoring the SP role mapping. In contrast, the response from getOIDCClaimMapFromUserAttributes() method does not honor the SP role mapping for the group claim, as per the implementation [4].
Due to this scenario, tokens obtained using the code grant type do not honor the SP role mapping for the group claim. This behavior appears incorrect and requires fix.
[1]. https://github.com/wso2-extensions/identity-inbound-auth-oauth/blob/f256fde3c79404704dc829ccc8a134174898641f/components/org.wso2.carbon.identity.oauth/src/main/java/org/wso2/carbon/identity/openidconnect/DefaultOIDCClaimsCallbackHandler.java#L142
[2]. https://github.com/wso2-extensions/identity-inbound-auth-oauth/blob/f256fde3c79404704dc829ccc8a134174898641f/components/org.wso2.carbon.identity.oauth/src/main/java/org/wso2/carbon/identity/openidconnect/DefaultOIDCClaimsCallbackHandler.java#L152
[3]. https://github.com/wso2-extensions/identity-inbound-auth-oauth/blob/f256fde3c79404704dc829ccc8a134174898641f/components/org.wso2.carbon.identity.oauth/src/main/java/org/wso2/carbon/identity/openidconnect/DefaultOIDCClaimsCallbackHandler.java#L149
[4]. https://github.com/wso2-extensions/identity-inbound-auth-oauth/blob/f256fde3c79404704dc829ccc8a134174898641f/components/org.wso2.carbon.identity.oauth/src/main/java/org/wso2/carbon/identity/openidconnect/DefaultOIDCClaimsCallbackHandler.java#L429
Product : wso2is-5.11.0
Best Regards,
Sachith.

@Manchiz ,
From which the customer is facing issue by not honouring the sp role mapping ?

access token ?
id token ?

What is the access token type considered in this issue (customer used) ?

JWT ?
opaque ?

@indeewari As discussed offline, the behavior observed for JWT access tokens.

When "group" claim is added as an OIDC scopes, or added to any exiting scope groups, the sp role mapping is listed only for the password grant access token/ id token while code grant response with local role names.

Password grant:
"groups": [
    "external_dev",
    "Internal/system_primary_dev",
    "Internal/everyone"
  ],

Code grant:
"groups": [
    "Internal/system_primary_dev",
    "dev",
    "Internal/everyone"
  ],


Lanelet2 global planner: LLH goal points

Must be merged after https://github.com/Autoware-AI/core_planning/pull/31
Adds a subscriber to the global planner for LLH goal points.
See original MR for more details: https://gitlab.com/astuff/autoware.ai/core_planning/-/merge_requests/72

@icolwell-as Conflicts.

I'll update once #30 is merged.

Ready for rebase.


Dynamic Routes not working when deployed via npm run generate

Environment
Deployed to GCP
Reproduction
Hi I have a pages/user.vue and a pages/user/[Id].Vue..when I try in local everything works fine and it is available and goes to /user/1 page. After I npm run generate and deploy it in server I open this page and it gives 404..how to solve this? I can't keep generating the file all time as an user gets created from backend. I am using nuxt3
Describe the bug
Hi I have a pages/user.vue and a pages/user/[Id].Vue..when I try in local everything works fine and it is available and goes to /user/1 page. After I npm run generate and deploy it in server I open this page and it gives 404..how to solve this? I can't keep generating the file all time as an user gets created from backend. I am using nuxt3
Additional context
No response
Logs
No response

You need to point GCP to return /200.html or /404.html when someone requests a route that doesn't exist. Different providers have different ways of doing this.

Can you please share me a example I really need help in this

+1

@debayan-ghosh This is to do with how static hosts work. If you get a request for a page that isn't rendered, you need to return a 'fallback' page that will render the page on the client instead (using dynamic routing).
The page might not be prerendered for a lot of reasons.

How do we do that?

Sorry, but this is still unclear.
E.g. /page/[username]
When using pnpm dev on localhost, my dynamic page is rendered perfectly fine.
When using pnpm build on a vps, I get 404.
How can I achieve that it's shown after deployment.

@Iterator98  You can e.g. set the ErrorDocument or your NGINX/APACHE to the 404.html or 200.html of the generated output

Sorry, but this is still unclear.
E.g. /page/[username]
When using pnpm dev on localhost, my dynamic page is rendered perfectly fine.
When using pnpm build on a vps, I get 404.
How can I achieve that it's shown after deployment.

Any solution? Same problem here!


consider adding a CODEOWNERS file to this repository

A common challenge on pull requests is to know who needs to approve, and have them receive notifications to the pull request moves forward.
Adding a codeowners file and updating the branch policies would help resolve this.
I'll need a bit more input from the team here, but here are the notes from the meeting:
2 TSC members should approve anything for the "versions" directory.
2 people with the contrib permission should approve anything anywhere else.
Do we have github teams for those two populations today?
Any other rule I might be missing here?
Thanks for the input @earth2marsh @lornajane @darrelmiller @handrews

We have "@OAI/tsc" and "@OAI/triage" teams that I think fit those two groups.

We might want to rename the not-TSC team since "triage" describes the GitHub role that these people have. Alternatively: Introduce a "maintainers" team for the people who have that level of access, which I think we discussed giving to more people - and this allows us to keep the triage team as a starter role for people who want to help but might not be ready for merge commit rights yet.

Agreed. I tried creating a maintainers team but the Teams mechanism in GitHub seems to be a hierarchy.  Seems like we need to think about how we want to organize the structure to make it manageable.

@darrelmiller meaning you're not able to create @OAI/maintainers ?

Fixed by #3489


Possible reasons for crashing at "slot not available"?

Hello, may I know what are the possible reasons for crashes at "slot not available"?
Call stack is something like:
destroy(e1)
entity e2 = to_integral(create entity)
add/replace_component(e2, component) (crash)
Would appreciate any and all advice! Thanks in advance!!

Callstack isn't that one, definitely. You get this error when you try to assign a component to an entity that has it already.

Even when using emplace_or_replace though?

No, emplace_or_replace doesn't incurr in this error because it performs the check for you under the hood.

Hmmm, is there any other possible reasons for crashing at emplace_or_replace? 😅

If you've a small, reproducible example, I can look into it to help.
Otherwise 🤷♂ the reason for the error is the one above. It can be a mistake on a single threaded application or a concurrent access but I can't tell since I don't know what the real code does. I'm sorry.


Add relevant texts to odigos cli help

When running $odigos --help, the following output is generated:
A longer description that spans multiple lines and likely contains
examples and usage of using your application. For example:

Cobra is a CLI library for Go that empowers applications.
This application is a tool to generate the needed files
to quickly create a Cobra application.

Usage:
  odigos [command]

Available Commands:
  add         A brief description of your command
  completion  Generate the autocompletion script for the specified shell
  help        Help about any command
  install     Install Odigos
  ui          Start the Odigos UI
  uninstall   A brief description of your command
  version     A brief description of your command

Flags:
  -h, --help                help for odigos
      --kubeconfig string   (optional) absolute path to the kubeconfig file (default "/Users/amirblum/.kube/config")

Use "odigos [command] --help" for more information about a command.

Odigos should replace all the default texts such as "A brief description of your command" with meaningful information

Hey I think I can help with this. Can you assign this issue to me?

Can you just tell me one thing i have to update and add more information about specific commands and arguments in the help itself right.

You are right.
You will need to review the cli commands here and for each command, make sure the text is meaningful. If not, it should be replaced to meaningful text.
Notice that since the PR was opened few changes were made. I think the places left to fix are here and here


Integration tests using a virtualized version of the OpenWeatherMap service.

Please also squash all the commits before I merge this.
Thanks again! :rocket:

I've now merged this into the master branch :100:


Change the php and node ssl server credentials API so that a server can have multiple key/cert pairs.

I think this is covered by #730 and number #921

Thanks for making this change with respect to add_sercure_port vs. server
but I'm not sure that this issue is actually fixed (but I may be wrong).
The issue here is that a server may have multiple key/cert pairs for (now)
the same port in order to support SNI (see
http://en.wikipedia.org/wiki/Server_Name_Indication)
The change should be done on the server credentials to accept multiple key
pairs and I don't see that here:
https://github.com/ctiller/grpc/pull/2/files
Am I missing something?
On Wed, Mar 4, 2015 at 5:35 PM, Michael Lumish<EMAIL_ADDRESS>wrote:

Closed #161 https://github.com/grpc/grpc/issues/161.
—
Reply to this email directly or view it on GitHub
https://github.com/grpc/grpc/issues/161#event-246471737.

No, I just misunderstood.

Should this be beta?

@jboeuf, @nathanielmanistaatgoogle - should this be Beta?

I should probably fix #2527 before (assigned for beta).
On Sun, Jul 19, 2015 at 3:26 PM, Craig Tiller<EMAIL_ADDRESS>wrote:

@jboeuf https://github.com/jboeuf, @nathanielmanistaatgoogle
https://github.com/nathanielmanistaatgoogle - should this be Beta?
—
Reply to this email directly or view it on GitHub
https://github.com/grpc/grpc/issues/161#issuecomment-122711463.

Now Split into two issues #1121 and #1122
Closing this since those two cover all things covered in this issue.