notifications: Add stream email notifications.

This completes #7788.
@timabbott FYI.
I've fixed some minor and major merge conflicts so it's better to see a diff between original and these commits.

@shubhamdhama can you rebase this?  It's like 1000 commits behind master :)

@timabbott Resolved conflicts, though I'm not completely familiar with changes to how to test whether it does its job properly or not?

FYI @shubhamdhama and I chatted about how to test this, and he's going to work on that today and ask questions on chat if any come up.

@shubhamdhama do you have an update on the status of the work you and Steve discussed?  Maybe something for us to chat about in person at the retreat tomorrow.

I'm guessing this just kinda got lost in the shuffle.  My advice is for Tim to just look over the shoulder of @shubhamdhama as he manually tests this, just to make sure all the new email niceness we have in dev works as advertised and to give any handy tips for manual testing in general.

Sure we can discuss this tommorow!! BTW here is the link to the screenshots of the mails: https://chat.zulip.org/#narrow/stream/6-frontend/subject/testing.20emails/near/609440

@shubhamdhama and I did a rebase/split of this into a longer commit series, fixing a few bugs and several more things that were confusing about this PR.
Huge thanks to @sarahcstringer and @shubhamdhama for all their work on this!!!
Here are a couple follow-up projects we should probably do:

Fix messages[0].header.plain to be more readable; I think we can use the stream_name value that was passed alongside trigger.
Can we improve how test_end_to_end_missedmessage_hook does the database setup to use the do_foo function rather than hacking up the object?
@rishig I bet there's some documentation updates we need to make following this being merged; can you make sure those happen?


Only replace the first instance of a param replacement string

I encountered an issue where replacing route params doesn't work correctly if the route params share the same prefix.
Actual behavior:
routes('/podcasts/:topic/:topicId', { topic: 'sports', topicId: '123' }) // => '/podcasts/sports/sportsId'

Expected behavior:
routes('/podcasts/:topic/:topicId', { topic: 'sports', topicId: '123' }) // => '/podcasts/sports/123'

This PR refactors the route() function to address this issue and includes tests to ensure existing behavior is not broken.

@sandulat no problem, enjoy your vacation :)

@sandulat any update here?

@br0p0p This is now published under<EMAIL_ADDRESS>I sincerely apologise for this enormous delay! I was overwhelmed with a significant amount of work and completely lost track of this. I am very grateful for your efforts!


KDtree - incorrect inheritance

Needs to be subclassed from BinTreeElement, not BSTElement

Actually the inheritance is fine coming from BST, as the key is the partitioner.
I added  set/get for the partitioner and updated/tested the Java and C++ version. Could one of y ou (Alec or Mattthew)  update the python version. Run the basic test after you update..  This is very minor update, so dosnt need to be shipped now.


riemann/src/python/setup.py relies on a circular dependency

Right now, Riemann's setup.py relies on the Fortran source being symbolically linked in to:
riemann/src/python/src
It seems that if I slightly modify the setup.py file (to look up one directory instead of down into the symbolic link), we can avoid this nasty symbolic link.
Somebody should look into this.

This is was resolved by #96.


Follow es6 promise.all

This relates to issue #7 in that the expected / desirable result would be that the results of the promises would be passed to the then function.  I have not checked other parameters for compatibility as .then(data => {}) is really the most necessary use case.
Since based on issue #7 I didn't want to create a pull request unless you deemed it fit, but for anyone else that might be looking a way of doing this can be as follows:
'use strict';

const Es6PromisePool = require('es6-promise-pool');

/**
 * Promise Pool
 *
 * Extends the es6-promise-pool class to enable it to function much
 * like Promise.all() functions by returning the array of results.
 */
class PromisePool extends Es6PromisePool {
  /**
   * Constructor
   *
   * @param {Function} source - function to generate data
   * @param {Number} concurrency - amount of concurrency
   * @param {Object} options - key value pairs of options
   */
  constructor(source, concurrency, options) {
    super(source, concurrency, options);
    this.resolves = [];
  }

  /**
   * Start
   *
   * @return {Promise}
   */
  start() {
    this.addEventListener('fulfilled', (event) => {
      this.resolves.push(event.data.result);
    });

    return super.start().then(() => {
      return Promise.resolve(this.resolves);
    });
  }
}

module.exports = PromisePool;

I considered making this behavior opt-in, or possibly opt-out. I don't like the idea of always having it enabled. One of the goals here was to have something scalable; allocating an ever-growing array would not only increase the memory footprint with the array itself, but also prevent garbage collection.
Thanks for the example code though. I might at the very least add a section to the readme about it.

Oh, and by the way, a small code review:

You don't need the Promise.resolve() wrapper. You can just return super.start().then(() => this.resolves).
It's cleaner if you remove the event listener (upon both success and failure).
The spec uses "values" as the name rather than "resolves".


The requirements.txt file is missing

The requirements.txt file is missing

The requirements.txt file is missing

Sorry for the missing file, the requirements.txt has been added.


python312Packages.zope-testrunner: 5.6 -> 6.4

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.
meta.description for python312Packages.zope-testrunner is: A flexible test runner with layer support
meta.homepage for python312Packages.zope-testrunner is: https://pypi.python.org/pypi/zope.testrunner
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes
Impact
Checks done

built on NixOS
The tests defined in passthru.tests, if any, passed
found 6.4 with grep in /nix/store/rihqswakyykwff1abr2vzjmjybg2g9yd-python3.12-zope.testrunner-6.4
found 6.4 in filename of file in /nix/store/rihqswakyykwff1abr2vzjmjybg2g9yd-python3.12-zope.testrunner-6.4

Rebuild report (if merged into master) (click to expand)

69 total rebuild path(s)

69 package rebuild(s)

First fifty rebuilds by attrpath
buildbot
buildbot-full
buildbot-ui
buildbotPackages.buildbot
buildbotPackages.buildbot-full
buildbotPackages.buildbot-ui
devpi-client
devpi-server
mailman
mailman-hyperkitty
python311Packages.aiohttp-apispec
python311Packages.btrees
python311Packages.cornice
python311Packages.cypherpunkpay
python311Packages.deform
python311Packages.ghdiff
python311Packages.pyipv8
python311Packages.pypugjs
python311Packages.pyramid
python311Packages.pyramid-beaker
python311Packages.pyramid-chameleon
python311Packages.pyramid-exclog
python311Packages.pyramid-jinja2
python311Packages.pyramid-mako
python311Packages.pyramid-multiauth
python311Packages.repoze-sphinx-autointerface
python311Packages.slack-bolt
python311Packages.splinter
python311Packages.webargs
python311Packages.z3c-checkversions
python311Packages.zconfig
python311Packages.zdaemon
python311Packages.zodb
python311Packages.zope-component
python311Packages.zope-configuration
python311Packages.zope-contenttype
python311Packages.zope-i18nmessageid
python311Packages.zope-size
python311Packages.zope-testbrowser
python311Packages.zope-testrunner
python312Packages.aiohttp-apispec
python312Packages.btrees
python312Packages.cornice
python312Packages.cypherpunkpay
python312Packages.ghdiff
python312Packages.pyipv8
python312Packages.pyramid
python312Packages.pyramid-chameleon
python312Packages.pyramid-exclog
python312Packages.pyramid-jinja2

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/rihqswakyykwff1abr2vzjmjybg2g9yd-python3.12-zope.testrunner-6.4 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A python312Packages.zope-testrunner https://github.com/r-ryantm/nixpkgs/archive/537c46531e6e02b3a51edf4d9bc630a4e5f88fbf.tar.gz

Or:
nix build github:r-ryantm/nixpkgs/537c46531e6e02b3a51edf4d9bc630a4e5f88fbf#python312Packages.zope-testrunner

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/rihqswakyykwff1abr2vzjmjybg2g9yd-python3.12-zope.testrunner-6.4
ls -la /nix/store/rihqswakyykwff1abr2vzjmjybg2g9yd-python3.12-zope.testrunner-6.4/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review --extra-nixpkgs-config '{ allowInsecurePredicate = x: true; }' run on x86_64-linux 1

4 packages marked as broken and skipped:

python311Packages.repoze-sphinx-autointerface
python311Packages.repoze-sphinx-autointerface.dist
python312Packages.repoze-sphinx-autointerface
python312Packages.repoze-sphinx-autointerface.dist

22 packages failed to build:

python311Packages.cornice
python311Packages.cornice.dist
python311Packages.cypherpunkpay
python311Packages.cypherpunkpay.dist
python311Packages.pyramid-beaker
python311Packages.pyramid-beaker.dist
python311Packages.slack-bolt
python311Packages.slack-bolt.dist
python312Packages.cornice
python312Packages.cornice.dist
python312Packages.cypherpunkpay
python312Packages.cypherpunkpay.dist
python312Packages.slack-bolt
python312Packages.slack-bolt.dist
python312Packages.z3c-checkversions
python312Packages.z3c-checkversions.dist
python312Packages.zconfig
python312Packages.zconfig.dist
python312Packages.zdaemon
python312Packages.zdaemon.dist
python312Packages.zodb
python312Packages.zodb.dist

105 packages built:

buildbot
buildbot-full
buildbot-ui
buildbot.dist
devpi-client
devpi-client.dist
devpi-server
devpi-server.dist
mailman
mailman-hyperkitty
mailman-hyperkitty.dist
mailman.dist
python311Packages.aiohttp-apispec
python311Packages.aiohttp-apispec.dist
python311Packages.btrees
python311Packages.btrees.dist
python311Packages.deform
python311Packages.deform.dist
python311Packages.ghdiff
python311Packages.ghdiff.dist
python311Packages.pyipv8
python311Packages.pyipv8.dist
python311Packages.pypugjs
python311Packages.pypugjs.dist
python311Packages.pyramid
python311Packages.pyramid-chameleon
python311Packages.pyramid-chameleon.dist
python311Packages.pyramid-exclog
python311Packages.pyramid-exclog.dist
python311Packages.pyramid-jinja2
python311Packages.pyramid-jinja2.dist
python311Packages.pyramid-mako
python311Packages.pyramid-mako.dist
python311Packages.pyramid-multiauth
python311Packages.pyramid-multiauth.dist
python311Packages.pyramid.dist
python311Packages.splinter
python311Packages.splinter.dist
python311Packages.webargs
python311Packages.webargs.dist
python311Packages.z3c-checkversions
python311Packages.z3c-checkversions.dist
python311Packages.zconfig
python311Packages.zconfig.dist
python311Packages.zdaemon
python311Packages.zdaemon.dist
python311Packages.zodb
python311Packages.zodb.dist
python311Packages.zope-component
python311Packages.zope-component.dist
python311Packages.zope-configuration
python311Packages.zope-configuration.dist
python311Packages.zope-contenttype
python311Packages.zope-contenttype.dist
python311Packages.zope-i18nmessageid
python311Packages.zope-i18nmessageid.dist
python311Packages.zope-size
python311Packages.zope-size.dist
python311Packages.zope-testbrowser
python311Packages.zope-testbrowser.dist
python311Packages.zope-testrunner
python311Packages.zope-testrunner.dist
python312Packages.aiohttp-apispec
python312Packages.aiohttp-apispec.dist
python312Packages.btrees
python312Packages.btrees.dist
python312Packages.ghdiff
python312Packages.ghdiff.dist
python312Packages.pyipv8
python312Packages.pyipv8.dist
python312Packages.pyramid
python312Packages.pyramid-chameleon
python312Packages.pyramid-chameleon.dist
python312Packages.pyramid-exclog
python312Packages.pyramid-exclog.dist
python312Packages.pyramid-jinja2
python312Packages.pyramid-jinja2.dist
python312Packages.pyramid-mako
python312Packages.pyramid-mako.dist
python312Packages.pyramid-multiauth
python312Packages.pyramid-multiauth.dist
python312Packages.pyramid.dist
python312Packages.splinter
python312Packages.splinter.dist
python312Packages.webargs
python312Packages.webargs.dist
python312Packages.zope-component
python312Packages.zope-component.dist
python312Packages.zope-configuration
python312Packages.zope-configuration.dist
python312Packages.zope-contenttype
python312Packages.zope-contenttype.dist
python312Packages.zope-i18nmessageid
python312Packages.zope-i18nmessageid.dist
python312Packages.zope-size
python312Packages.zope-size.dist
python312Packages.zope-testbrowser
python312Packages.zope-testbrowser.dist
python312Packages.zope-testrunner
python312Packages.zope-testrunner.dist
tribler
vulnix
vulnix.dist
vulnix.doc
vulnix.man

Maintainer pings
cc @cillianderoiste for testing.

#300112


Admin Portal - Achievements Page

To Myself,
Create the Achievements Page in the new Blazor Admin Portal.

[x] Create a Table
[x] Create Achievement
[x] Delete Achievement
[ ] Edit Achievement
[ ] Be able to assign an achievement to a user

cc: @wicksipedia @william-liebenberg
Remaining item for the Admin Portal


Markdown cells not rendering LaTeX in latest update

Issue Type: Bug
Extension version: 2021.3.619093157
VS Code version: Code 1.54.2 (fd6f3bce6709b121a895d042d343d71f317d74e7, 2021-03-11T00:56:19.848Z)
OS version: Windows_NT x64 10.0.19042
Actual Behaviour:

Expected behaviour:
Older build:
Extension version: 2021.2.576440691
VS Code version: Code 1.54.2 (fd6f3bce6709b121a895d042d343d71f317d74e7, 2021-03-11T00:56:19.848Z)
OS version: Windows_NT x64 10.0.19042

System Info

Item
Value

CPUs
AMD Ryzen 7 4800HS with Radeon Graphics          (16 x 2895)

GPU Status
2d_canvas: enabledgpu_compositing: enabledmultiple_raster_threads: enabled_onoop_rasterization: enabledopengl: enabled_onprotected_video_decode: unavailable_offrasterization: enabledskia_renderer: enabled_onvideo_decode: enabledvulkan: disabled_offwebgl: enabledwebgl2: enabled

Load (avg)
undefined

Memory (System)
15.42GB (7.40GB free)

Process Argv
--crash-reporter-id 6bdba1e9-9fc1-4296-a856-a1e30b6f8dac

Screen Reader
no

VM
0%

A/B Experiments
vsliv368cf:30146710
vsreu685:30147344
python383cf:30185419
pythonvspyt678:30270856
vspor879:30202332
vspor708:30202333
vspor363:30204092
pythonvsdeb440:30248342
pythonvsded773:30248341
pythonvspyt875:30259475
dockersubset:30270708
pythontb:30265425
vspre833cf:30267465
vsfjg287:30275553

Hi @AvyayIrde, could you please try adding the following to your JSON settings and let me know if the issue persists?
"notebook.experimental.useMarkdownRenderer": true,

it fixed few of the lines,

the whole block before rendering:

Hi @AvyayIrde, based on the screenshots I am a bit confused. The first screenshots and info provided indicate the issue was with VSC Stable and the second screenshots are from VSC Insiders. Could you clarify which build you are seeing issues with?

Same issue here.

Visual Studio
Version: 1.54.3 (system setup)
Commit: 2b9aebd5354a3629c3aba0a5f5df49f43d6689f8
Date: 2021-03-15T10:55:45.459Z
Electron: 11.3.0
Chrome: 87.0.4280.141
Node.js: 12.18.3
V8: <IP_ADDRESS>-electron.0
OS: Windows_NT x64 10.0.19042
Jupyter
Version: v2021.3.619093157

Downgrading the Jupyter extension to v2020.12.414227025 and open my ipython notebook in "Notebook Editor" (rather than "Preview Notebook Editor") works (successfully displays latex).

Hi @AvyayIrde, based on the screenshots I am a bit confused. The first screenshots and info provided indicate the issue was with VSC Stable and the second screenshots are from VSC Insiders. Could you clarify which build you are seeing issues with?

I'm facing issues in build 2021.3.619093157 which I believe is the latest stable version.
In the latter screenshot, I downgraded the extension to build 2021.2.576440691 which solved the issue.
This is what happened when I added "notebook.experimental.useMarkdownRenderer": true, to my JSON settings which partially fixed the issue:

`

@AvyayIrde and @hui2000ji, thanks for the additional info. Based on the extra info provided, you have been placed into the Native Notebooks experience in VS Code. Rendering latex is not yet supported fully for native notebooks, but will be soon.
If this is currently a complete blocker for you, you can opt out of the experiment by following these instructions:

Open the command palette (Windows: Ctrl + Shift + P, iOS: Command + Shift + P) and select "Preferences: Open Settings (JSON)"

Add the following code to your JSON settings: "jupyter.experiments.optOutFrom": ["NativeNotebookEditor"]


⚠ T:Riza Docs has degraded performance

In ce64829, T:Riza Docs (https://docs.triza.dev) experienced degraded performance:

HTTP code: 500
Response time: 1161 ms

Resolved: T:Riza Docs performance has improved in b2760ef.


Allow setting full margin from _variables.scss

Currently, setting $logo-margin will only adjust the logo's bottom margin, but in each project I've used slate I found I needed to adjust the left and right margin on the logo. This modification means you can now do $logo-margin: 0px 2px 3px 2px 0px; instead of touching screen.css.scss directly to add each margin direction.
I do realize, however, this could be a breaking change for projects where $logo-margin is set to, say 3px expecting to have a 3 pixel bottom margin added but with this update would make that become a top margin.
Any suggestions on a better way to handle this are more than welcome.

@jaythomas thanks for the contribution! I think I'd rather not create those breaking changes for projects — do you think editing the margin in screen.css.scss directly is significantly  harder to, say, upgrade with a rebase or explain to a beginner how to change?
That said, my original intention for the logo was that people would match the width of their logo image to the width of the sidebar, but perhaps that's not what happens in practice?

I should have clarified the practical use case in my original pull request comment, apologies.  This is only an issue when using SVG logos.
I don't think you should accept this or a similar pull request unless:

Others start to complain it is a nuisance for them as well; Perhaps more people want to use SVG as higher DPI devices become more common, or people just don't like having to adjust the cropping on their image.
You plan on bumping the major version number to introduce another breaking change. (2 breaking changes for the price of one!) I don't think it's worth introducing a breaking change just for this one feature.

..Also I forgot the logo filename is not currently in a scss variable. It is hard-coded in the erb so that would need to be extracted out into a logo class to even make my use case 100% resolved.

I mean, we don't follow semver particularly anyway (since where is the line between our API implementation and our API interface?) but this does seem like pretty unexpected behavior. And yea, I think if you're making a change to layout anyway for the filename, seems like you can change margin. Well, thanks for the suggestion! Glad we could merge in your other PR at least! :)


Problem with connecting to IoT hub via MqttWs

We are facing an issue with one of our clients VM. Unfortunately we don’t have direct access to VM to troubleshoot but we managed to receive some logs from them. So edgeAgent/Hub and all other modules are working flawlessly. Upstream protocol has been set to MqttWs and we receive data from modules. Twins also get updated regularly. However, adu module can’t communicate with IoT hub and update twin. See attached the logs. Also see below the screenshot of firewall logs we got from client. We can clearly see that the edge (particularly adu) tries to communicate with IoT hub via Mqtt 8883 port, which is strange. I also checked the adu settings and it states “MqttWs” for upstream protocol. So the first question is why adu can’t communicate with hub via MqttWs 443 when edgeAgent and edgeHub can. Also, seems like there is a fallback strategy in adu that switches to 8883 when for any reason it can’t go though 443. Would appreciate if you can shed some lights.
deviceupdate.txt

Device Information

Host OS Ubuntu 20.04
Architecture amd64
Provisioning Method: DPS symmetry key
DU Agent Version latest

In /etc/adu/du-config.json, what is the value of "iotHubProtocol" property at top-level?  For mqtt over websockets, it should be "mqtt/ws" (NOTE: the forward-slash character between mqtt and ws).
See this doc for more details:
https://github.com/Azure/iot-hub-device-update/blob/main/docs/agent-reference/how-to-build-agent-code.md#build-options-for-mqtt-and-mqtt-over-websockets-iothub-transport-providers

Closing. Let us know if the above does not resolve the issue.


Fix missing context for object selection in survey projects

Is it safer to use this.listenToOnce(rc, 'sync', function () {...});? I think there's probably no memory leak with the way you proposed, but I'd have to think about it a little. This way, the context is provided automatically, and the listener is removed as soon as we're done with it.

Good thinking. I'll make that change.

Ok, done & tested


Fixing ARM64 return registers in CallConvSummary.rst

Experimentation shows that Swift only returns up to 4 return values in ARM64 registers before using the "indirect result location register".  Updating the calling convention documentation to reflect this.
I noticed this while adding Swift support to Ghidra.  I created simple test binaries using Xcode 15.0.

Thanks for taking a look at this!
cc: @rjmccall


Development/trace buffers

https://jenkins.code.rdkcentral.com/job/github-triggered/737/ started

https://jenkins.code.rdkcentral.com/job/github-triggered/738/ started


[BUG] Can't Type as Client in Firefox

Describe the bug
Perhaps there is something I'm missing, but I'm unable to type anything into the browser through the client running inside of Firefox. Client works fine in Chrome.
To Reproduce
Steps to reproduce the behavior:

Start docker container (nurdism/neko:firefox)
Open the web client within Firefox
Take control of the remote
Attempt to type anything

Expected behavior
Can type into the remote browser when control is obtained
Screenshots
N/A
Desktop (please complete the following information):

OS: Windows, Manjaro
Browser: Firefox
Version: 72.0.2 for both OS's

Additional context
I tried using Chrome on Windows and it worked as expected. Still using Firefox within the container
Client Log:
I see this a bunch:
TypeError: "navigator.clipboard.readText is not a function"

Server Log:
N/A

had a similar issue through a nginx reverse proxy only. It went away randomly though

That might be the issue then. I'm also using nginx as a reverse proxy.

This might be due to firefox and needing https for clipboard access, I need to do some testing on firefox with https.

Do you think that if I use Chrome in the container and Firefox for the client that my setup would work?

well navigator.clipboard.readText is a client side issue, the server should be working.

so can confirm, does not work on ff, chrome works just fine. going to look into alternative for  clipboard api on ff

I've updated the docker container with a potential fix for this, please update and check it out. Reopen if this still an issue for you

Thanks, that works!


Unique(), operation function

Proposed changes
Implemented the unique() function that removes duplicate elements from the list. This is accomplished by hashing each element in the list, and if the hash exists in the hash table the element is removed.
Types of changes
What types of changes does your code introduce?
Put an x in the boxes that apply

[ ] Bugfix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)

Checklist
Put an x in the boxes that apply. You can also fill these out after creating the PR. If you're unsure about any of them, don't hesitate to ask. We're here to help! This is simply a reminder of what we are going to look for before merging your code.

[x] I have read the CONTRIBUTING doc
[x] Unit tests pass locally with my changes
[x] I have added tests that prove my fix is effective or that my feature works
[x] I have added necessary documentation (if appropriate)

Codecov Report

Merging #44 into master will not change coverage.
The diff coverage is 100%.

@@          Coverage Diff          @@
##           master    #44   +/-   ##
=====================================
  Coverage     100%   100%
=====================================
  Files           5      5
  Lines         408    495   +87
=====================================
+ Hits          408    495   +87

Impacted Files
Coverage Δ

src/linkedList.cpp
100% <100%> (ø)
:arrow_up:

tests/linkedListTest.cpp
100% <100%> (ø)
:arrow_up:

Continue to review full report at Codecov.

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


New board support process rcxvup

After RCXVUP bring up we have a stable code.
Missing :

User/factory mechanism (reset, user address and switching to be fixed)
second Bank & QDR are not available

Signed-off-by: Alexandre Castellane<EMAIL_ADDRESS>

@boekholt . This should be ok, if i didn't missed anything this time. Thx


Add WebTestClient

It should be helpful to assert a response to a test request fluently.
@RegisterExtension
static ServerExtension server = ...;

@Test
void testRestApi() {
    WebTestClient client = server.webTestClient();
    client.get("/api/v1/carts")
          .execute()
          .assertStatus().isEqualTo(HttpStatus.OK) // or `isOk()` as an alias
          .assertHeaders().contain(HttpHeaderNames.CONTENT_TYPE, MediaType.JSON)
          .assertBody().contain(...)
          .assertTrailers().isEqualTo(Map.of(...));
}

Could also integrate with AssertJ and Kotlin/Scala assertions.

In addition to assertion, it would be useful to support mocking for isolated unit tests.
Related work:
https://sttp.softwaremill.com/en/latest/testing.html
val testingBackend = SttpBackendStub.synchronous
  .whenRequestMatches(_.uri.path.startsWith(List("a", "b")))
  .thenRespond("Hello there!")
  .whenRequestMatches(_.method == Method.POST)
  .thenRespondServerError()

val response1 = basicRequest.get(uri"http://example.org/a/b/c").send(testingBackend)
// response1.body will be Right("Hello there")

Hi @ikhoon 😄 May I work on this issue?

For sure, Go ahead.

I have a question about implementation direction. For example, if the result type of client.get(...).execute() is defined as TestHttpResponse, I have considered two possible ways to implement this class (or interface)
The first approach is a implementation that does not depend on AssertJ:
class TestHttpResponse {

	AssertStatus assertStatus() {
		return new AssertStatus(this.status, status())
	}
}

class AssertStatus {

	HttpStatus actual;
	TestHttpResponse back;

	…constructor

	TestHttpResponse isEqualTo(HttpStatus expected) {
		checkState(actual == expected, "Some message");
		return back;
	}
}

@Test
void test() {
	assertThatCode(() -> {
		client.get(…).execute()
                	.assertStatus().isEqualTo(HttpStatus.OK);
	}).doesNotThrowAnyException();
}

The second approach is an implementation that depends on AssertJ.
class TestHttpResponse {
	AssertEntity<AbstractComparableAssert<?, HttpStatus>> assertStatus(HttpStatus status) {
		return new AssertEntity<AbstractComparableAssert<?, HttpStatus>>(assertThat(status), this);
	}
}

class AssertEntity<T> {

	T entity;
	TestHttpResponse back;

	…constructor

	TestHttpResponse that(Consumer<T> consumer) {
		consumer.accept(entity);
		return back;
	}
}

@Test
void test() {
	client.get(…).execute()
			.assertStatus().that(a -> a.isEqualTo(HttpStatus.OK))
}

Would you please share your thoughts on which approach you believe is better, or if neither of them is the expected approach?

If a test client depends on AssertJ, I propose to design the code like:
public final class AssertableHttpResponse {

    private final AggregatedHttpResposne response;

    public AbstractComparableAssert<...> assertStatus() {
       return asserThat(resposne.status());
    }

}

We can use this assertion by wrapping a test client with com.linecorp.armeria.testing.assertj.WebTestClient.
@RegisterExtension
ServerExtension server = new ServerExtension(...) { ... }

@Test
void shouldReturn200OK() {
    // Need a better name. 🤔
    AssertableWebClient client = AssertableWebClient.of(server.webClient());
    client.get(...)
          .execute()
          .assertStatus().isEqualTo(HttpStatus.OK)
          .assertHeaders().contains(entry(HttpHeaderNames.XXX, val))
          .assertHeaders(HttpHeaderNames.YYY).isEqualTo("...")
          .assertContent().isEqualTo("Resposne body");
}

As armeria-junit5 does not rely on AssertJ, we may need to create armeria-assertj module and implement the AssertJ-based test client there.

The first approach is a implementation that does not depend on AssertJ:

It is also a good approach because a test client is can be created from ServerExtension.
The design sounds good to me.

In addition to fluent assertions, we may provide a way to set mock responses to the WebtestClient.
WebTestClient client = WebTestClient.mock();
client.expect("/foo", HttpResponse.of(OK));
assert client.get("/foo").status() == HttpStatus.OK;
assert client.get("/bar").status() == HttpStatus.NOT_FOUND;

This API will be useful when the server is unavailable in test env or difficult to make idempotent responses.
Related work: https://github.com/fabric8io/kubernetes-client/blob/main/kubernetes-client-api/src/test/java/io/fabric8/kubernetes/client/http/TestStandardHttpClient.java#L104-L108


add dummy tone function in case no network connection for waston

…g workshop

@duglin @linsun

I think we do something similar for our redis stuff... meaning, if we don't see the REDIS env vars then we assume we're using the in-memory one - so in principle I'm ok with this.
However, rather than faulting on the POST which could be due to the Watson service not behaving correctly - or waiting for the POST to time-out, should we do something else?  I was thinking that we should change the "findRedisURL" func into something more generic (like prep()) and in there check for the analyzer service once - then set a flag and just check that flag each time we call getPrimaryTone().  WDYT?
@irisdingbj in these situations, what will be missing? Will the analyzer service/image be deployed?  Based on this info we can decide what the check should be.... look for service env var (like we do with redis) or check for a network issue connecting to the service....

@duglin sounds good to put the check for waston tone analyzer before hand and use the flag to switch between the waston one and dummmy one. After that, what do you think we should use for dummy one? As I replied in your review comments, the current version is just for 'play'

@irisdingbj have you addressed all comments?  is this ready to be merged?


Microsoft Entra ID - Playbook template fix

Required items, please complete
Change(s):

Updated Playbook template and removed unnecessary action

Reason for Change(s):

IcM

Version Updated:

Yes 3.0.11

Testing Completed:

Yes

/package


⚠ Bofrost.lu has degraded performance

In 5562f74, Bofrost.lu (https://www.bofrost.lu) experienced degraded performance:

HTTP code: 200
Response time: 1519 ms

Resolved: Bofrost.lu performance has improved in f733250 after 26 minutes.


@sweir27 => Conditionally remove HZ line in Artwork auctions

Fixes https://github.com/artsy/auctions/issues/360. (Screenshots contained inside)

@acjay - going to close this PR to reduce noise and assign ticket over to you.

This looks good @acjay - thanks for giving this a spin and the explanation; css-only solution was indeed the right way to go.


Make PyTreeDef pickleable for Multiprocessing

To enable Jax Multiprocessing, it's necessary to pickle the treedefs (ex: Haiku params) That's supported by pybind (link below), but not implemented on the PyTreeDef class.
Can you take a look? It's the first C++ I've written in my life
Does traversal_ fully encode the tree, or is there other state?
2 new public methods on PyTreeDef to get/set traversal_ (not sure about type casts)
        py::tuple GetTraversal() {return py::make_tuple(traversal_); } \\ <-- do we need to convert each Node?
        void SetTraversal(py::tuple t) { traversal_ = t.cast<std::vector<Node>>(); }

Then at the bottom in PYBIND11_MODULE, add pickling functions __getstate__ and __setstate__
            // make PyTreeDef pickleable to enable use with multiprocessing
            // https://pybind11.readthedocs.io/en/stable/advanced/classes.html#pickling-support
            // function 1: __getstate__ - return a tuple which fully encodes the state of the object
            // for PyTreeDef, the traversal_ vector of node structs fully encodes the tree (I think?)
            // function 2: __setstate__ - build a new PyTreeDef from a tuple with a traversal_
            .def(py::pickle(
                     [](const PyTreeDef &p) { return p.GetTraversal(); },
                     [](py::tuple t) {
                         PyTreeDef p;
                         p.SetTraversal(t);
                         return p;
                     }););

import pickle

  @parameterized.parameters(*TREES)
  def test_pickles(self, inputs):
    xs, tree = tree_util.tree_flatten(inputs)
    pickled_tree = pickle.dumps(tree)
    unpickled_tree = pickle.loads(pickled_tree)
    result = tree_util.tree_unflatten(unpickled_tree, xs)
    self.assertEqual(result, inputs)

Looks like this was fixed a while back. Test: https://github.com/google/jax/blob/31eeaed913a778525a51117a36be8daba4bacf47/tests/tree_util_test.py#L410
Thanks for the PR!


Debugging 'flet build' generated Windows and Android executables can't be debuged using print() type messaging

Following communication with @TheEthicalBoy and @Feodor, I am filing this issue:

I developed a Flet app to control my smart home controller (ESP32 based). All works fine in developer mode (flet main.py). For tracing the execution, I am using print() to display status messages on the terminal.
Problems start when I generate executables for Windows and Android.
When I generate the Windows executable and run it, print() messages are lost (not seen) and I can’t debug the app.
@TheEthicalBoy suggested that I re-route stdout to a log file. I did that and it worked in developer mode but did not work when run as a Windows executable. No log file is being generated.
I then tried another approach in which I developed a remote terminal (the app listens on a predefined TCP socket and prints all received data to the terminal) and added code in the app to send all print() messages to the remote terminal for display (to that TCP socket). In developer mode (flet main.py) all works great. The Flet app runs and I see the print() messages on the remote PC terminal. However, when I create the Windows executable and run it, nothing works! No messages are received by the remote terminal.
I guess that something is wrong in either what I am doing or the executable build process somehow prevents print() messages to be seen and also prevents socket programming out of the executable.

The code I use for the socket communication on the app side is:
`# Code to handle sending print() messages over a socket to the remote terminal
terminal_server_ip = '<IP_ADDRESS>'
terminal_server_port = 12345
send_msg_via_socket = True
socket_initialized = False
client_socket = None
import socket
def showStatusMsg(msg):
global send_msg_via_socket, socket_initialized, client_socket, terminal_server_ip, terminal_server_port
if send_msg_via_socket == False:
print(msg)
return
# Send via socket
if socket_initialized == False:
    # Create a socket object
    client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

    # Connect to the server
    client_socket.connect((terminal_server_ip, terminal_server_port))
    print(f"Connected to server at {terminal_server_ip}:{terminal_server_port}")

    socket_initialized = True

client_socket.send(msg.encode())`

Using:
Python 3.11.6
Flet 0.18.0
Flutter 3.16.5, Dart 3.2.3, DevTools 2.28.4
Windows 11

The additional Python packaes that I am using (pip install ...) are:

paho-mqtt
sseclient
Both are Python code and as far as I understand, are OK to use.

I am also importing the Requests HTTP library, Json library
And, as I wrote, all works fine in developer mode and the issue happens only in executables generated by 'flet build'

Try building app with the latest Flet 0.19.0. It has error reporting now if the app could not be started.


Should default to HTTPS for your site URL

Edit _config.yaml to use https rather than http in the URL. Otherwise, when accessing https://drjekyllthemes.github.io/ Firefox and Chrome will block loading the stylesheets, making the gallery look fairly plain:

Thanks. Will see what I can do. Maybe use a relative path for the style sheet.

Use //: http://stackoverflow.com/questions/4659345/is-there-any-downside-for-using-a-leading-double-slash-to-inherit-the-protocol-in

Good point. Thanks for the link and the //: option. Cheers.

FYI: I've removed the site.url references and using the absolute path (w/o host). Looks it's working now for both http and https w/o any "tricks". Cheers.


Repeat Button

We have a radio/play/shuffle button, but the one thing that is missing is a repeat button.
Do you have plans to implement one or is that a design decision? (or am I missing it somewhere?)

"Repeat one song"
"Repeat all"
would be nice to have!

That's coming in a future version


Issue when using matmul

Hello,
I am trying to convert a pytorch model to coreml. It converts to onnx properly but when exporting to coreml I have the following error
Missing initializer error in op of type MatMul, with input name = <layer no>, output name = <layer no>. Error message: Second input to Matmul layer must be a constant
my forward function looks like so
def forward(self, x, y):
    ...
    y_hat = torch.squeeze(torch.bmm(y_hat, y), 2)
    ...

The networks works properly with pytorch. I checked the code of _operators.py and it looks like y should be initialized as a Variable to be treated as a constant. However, that would hardcode the tensor input. Is there anyway to treat the y as an input from coreml? Or am I doing something wrong?

Yes the other input must be a constant, thats the only mode supported by CoreML.
You can look to use CoreML custom layers for any layer type that is not supported.

I believe CoreML 3 supports this through the BatchedMatMulLayer. Is there an estimate of when onnx-coreml will support CoreML 3?
Also, custom layers to replace MatMul with this functionality currently don't work for me unless I rename the MatMul node to something else, this isn't a huge issue though.

@SumatP support for matmul is added
Could you please give a try to latest beta? https://github.com/onnx/onnx-coreml#new-beta-onnx-coreml-converter-with-core-ml-3
Feel free to re-open if you still face issues


Selectors: SharePoint Type

Require a way to indicate that a restore / backup is affiliated with SharePoint data

Already handled as part of https://github.com/alcionai/corso/pull/1465


Quake 4 doesn't update sound position fast enough?

Hello,
I Drink Lava mentions this issue in the description of the video demonstrating 3D sound in Quake 4: "The one problem with Quake 4 with OpenAL Soft seems to be that it doesn't update sound position fast enough. This is a problem I've had with a couple games, but none that sounded as great as Quake 4. Reducing the period size helps somewhat, but you can still hear it if you do a 180 turn fast enough."
You worked on the occlusion fix, so maybe this is something that could be potentially fixed as well?
Regards

How fast it should be?
The game is updated at a fixed 60 Hz tick.
There is no cvar to change the tick rate, it's hardcoded constant.
Without source code it's hard to accomplish.
I can only suggest to tweak com_asyncAudio cvar.

Maybe this could help?

It won't.
This file is a part of client-side code (public SDK).
You need the engine code to make changes.


Combine journey specs

Context
This change is an attempt to remove duplication from the features. We currently have features split in the following ways:

JS/non-JS
happy/sad
feature flag enabled/disabled

The majority of these features overlap so it would make sense for us to remove duplication by adding a little logic to the specs themselves. We can also lean on RSpec's tags to run them in batches.
Changes proposed in this pull request

Move basic reg journey to generic journeys dir
Make the generic journey specs pass

I don't have the capacity to finish this off. @Lockyy @shjohnson - if you think it's worth pursuing please try and factor it in, I think it'll make every subsequent journey change miles faster. If not, I'll close it down.


[Bugfix] Druid filters

This PR fixes some bugs with Druid filters as described in #3689

Coverage increased (+0.6%) to 71.36% when pulling 63d5eeaf0bd92916c8db9412845098808faf497b on Mogball:mogball/bugfix/empty_filters_none into e121a8585e753e0e659f52da2bec6b5bc7f79444 on apache:master.

Coverage increased (+0.6%) to 71.36% when pulling 63d5eeaf0bd92916c8db9412845098808faf497b on Mogball:mogball/bugfix/empty_filters_none into e121a8585e753e0e659f52da2bec6b5bc7f79444 on apache:master.


Crash when setting DB size to 1KB

Hey Chris! I'm currently working ord with Casey and we ran into this crash when setting the database size to 1KiB:
---- index::foo stdout ----
0.0: 0396bc915f141f7de025f72ae9b6bb8dcdb5f444fc245d8fac486ba67a38eef9
thread 'index::foo' panicked at 'Test failed: exit status: 101
thread 'main' panicked at 'assertion failed: largest_order_in_pages > 0', /Users/liam/.cargo/registry/src/github.com-1ecc6299db9ec823/redb-0.0.4/src/tree_store/page_store/page_manager.rs:434:9
stack backtrace:
   0: rust_begin_unwind
             at /rustc/2885c474823637ae69c5967327327a337aebedb2/library/std/src/panicking.rs:498:5
   1: core::panicking::panic_fmt
             at /rustc/2885c474823637ae69c5967327327a337aebedb2/library/core/src/panicking.rs:107:14
   2: core::panicking::panic
             at /rustc/2885c474823637ae69c5967327327a337aebedb2/library/core/src/panicking.rs:48:5
   3: redb::tree_store::page_store::page_manager::TransactionalMemory::new
   4: redb::tree_store::storage::Storage::new
   5: redb::db::Database::open
   6: ord::index::Index::new
   7: ord::command::find::Find::run
   8: ord::command::Arguments::run
   9: ord::main
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
', tests/integration.rs:124:7
stack backtrace:
   0: rust_begin_unwind
             at /rustc/2885c474823637ae69c5967327327a337aebedb2/library/std/src/panicking.rs:498:5
   1: core::panicking::panic_fmt
             at /rustc/2885c474823637ae69c5967327327a337aebedb2/library/core/src/panicking.rs:107:14
   2: integration::Test::output
   3: integration::index::foo
   4: core::ops::function::FnOnce::call_once
   5: core::ops::function::FnOnce::call_once
             at /rustc/2885c474823637ae69c5967327327a337aebedb2/library/core/src/ops/function.rs:227:5
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

More specifically, when we set the database size to anything less than 40KiB we get this crash, otherwise we get a useful error message.

Thanks! Ya, I should make a better error message for that. There's a lower bound on supported db size, but it just asserts it, as you can see :)


Javascript (nodejs) SDK implementation changes for GenerateToken with fga permissions

https://github.com/momentohq/client-sdk-javascript/pull/598

Js sdk 1.27.2 released


Game speed isn't time independent

The game loop doesn't use a deltaTime parameter based on the current frametime, or a fixed FPS, either of which are necessary in order for the game's performance to be consistent.
On a high-end system the game loop is so fast it is completely unplayable.

Thanks for the report. Nice catch. This is indeed a problem to solve. Any implementation suggestions you have in mind?

Hey I want to help. Can u please discuss in details about the problem.

There primary solution that is accepted in industry is you have a single float deltaTime which is the amount of time in seconds as a double-precision number since the last frame.  Then, everywhere you do physics or movement calculations (such as position+=velocity) you instead do position+=velocity*deltaTime;

That's a good suggestion. I think this should fix the problem.


[Hosts] Handle maximum of 9 hosts per entry

Summary of the Pull Request
Windows support a maximum of 9 hosts per entry in the hosts file: exceeding hosts are ignored.
This PR aim to handle this limitation in the hosts file editor.

Detect if there are entries with more than 9 hosts on startup: split the line into multiple entries
Improved the add/edit dialog for entries with long hosts/comment
Validation of maximum of 9 hosts in the dialog

Don't mark entries with 9 hosts as duplicate
Added tests

PR Checklist

[x] Closes: #25188 #24729
[ ] Communication: I've discussed this with core contributors already. If work hasn't been agreed, this work might be rejected
[x] Tests: Added/updated and all pass
[x] Localization: All end user facing strings can be localized
[ ] Dev docs: Added/updated
[ ] New binaries: Added on the required places

[ ] JSON for signing for new binaries
[ ] WXS for installer for new binaries and localization folder
[ ] YML for CI pipeline for new test projects
[ ] YML for signed pipeline

[ ] Documentation updated: If checked, please file a pull request on our docs repo and link it here: #xxx

Detailed Description of the Pull Request / Additional comments

Validation Steps Performed

Tested startup and the logic that split the line into multiple entries if contains more than 9 hosts
Tested add/edit dialog validation
Tested duplicate detection

Not sure if it is a good idea to move the 10+ hosts to the comments.

Considering that Windows ignores the hosts from the 10th position I think we have the following choices:

Completely ignore the line: bad
Move the hosts
Don't move the hosts but user won't be able to update the entry

Considering that Windows ignores the hosts from the 10th position I think we have the following choices:

Ignore the line: bad
Move the hosts
Don't move the hosts but user won't be able to update the entry

I prefer the last one with adding a error message in the edit window. Or we can show the asterisk with a tool tip why.
I don't think it's a god idea do change the content (move to comment) of the file only because there are to many hosts.

@htcfreek I have made changes to the PR.
I don't like the idea to mix valid/invalid entries in the list so I ended up to create multiple entries if a line contain more than 9 hosts.
The pros of this solution are:

Exceeding hosts aren't moved into comment section
Creating multiple entries for the line make all the hosts working
Validation doesn't fail when the user try to edit the entry

@davidegiacometti I tested the changes:

Please add the info toast again. We should inform that we spitted the entry.

I Agree. Will update the PR.
Any suggestion for the tooltip?
Title: Entries with too many hosts found
Content: Since only the first 9 hosts will work, some lines have been splitted into multiple entries

The spitted entry is shown in the UI but not saved until I change an entry.
The UI shows the spitted entry even if you not have confirmed the start warning messing yet. This can be confusing. What do you think?

The warning message is just a dialog and the underlying view model with the entries is always loaded on startup.
I prefer to not automatically save the file. The splitted entries will be saved only if user is going to make a change to the hosts file.

Does a setting make sense? (Only an idea where I am not sure about.)

I prefer to not make entry validation based on a setting.
It's pointless since after the 9th hosts the system is ignoring them.

@davidegiacometti I tested the changes:

Please add the info toast again. We should inform that we spitted the entry.

I Agree. Will update the PR.
Any suggestion for the tooltip?
Title: Entries with too many hosts found
Content: Since only the first 9 hosts will work, some lines have been splitted into multiple entries

Sounds good. But I think we should ajust the content like this: ... the affected entries have been splitted.

The spitted entry is shown in the UI but not saved until I change an entry.
The UI shows the spitted entry even if you not have confirmed the start warning messing yet. This can be confusing. What do you think?

The warning message is just a dialog and the underlying view model with the entries is always loaded on startup.
I prefer to not automatically save the file. The splitted entries will be saved only if user is going to make a change to the hosts file.

Okay. But should we inform the user that the changes not take effect until the next saving? Or do you like to wait for feedback.

Does a setting make sense? (Only an idea where I am not sure about.)

I prefer to not make entry validation based on a setting.
It's pointless since after the 9th hosts the system is ignoring them.

Okay.

Updated to This will take effect on next change. and removed the term entry since changing unparsed lines also triggers a save.


url_for and route_reverse aware not aware of their locations for mounted apps

Discussed in https://github.com/starlite-api/starlite/discussions/774
When calling, e.g. url_for for a route in a mounted application via the request object, the resulting URL is missing the mount prefix. This is also the case for the relative paths returned by route_reverse calls.

Yes, we are only passing the mount path into the mount. This is done by design because the assumption is that the mounted app might have internal routing logic.
You can use the asgi decorator without mounting. Will that work for your use case?

I'm not really sure. I don't think I know what that means entirely. I am doing something like this:
v1_app = Starlite( ....

v1_asgi = asgi(path="/v1", is_mount=True)(v1_app)

app = Starlite(
    route_handlers=[v1_asgi],
)

If I set is_mount to False everything just kind of breaks. I am not sure where my routes are at that point -- the openapi.json schema is empty of servers and paths and none of my routes defined in v1_app appear to be available.

hmm, you are using is_mount to mount Starlite applications inside Starlite... 😉 , thats not what this was designed for to be honest. Whats the use case there? Why not simply use a router for this instead of mounting?
from starlite import Router, Starlite

v1_router = Router(path="v/1", route_handlers=[...])

app = Starlite(route_handlers=[v1_router])

Right, the router approach seems simpler, but the docs don't really turn out right for this:

The various routes from the different routers are interleaved with no conceptual separation. So for a versioning scheme like this I end up with 2 of every route with the same name in the docs with the only distinction being apparent if you inspect the path for the route.
The schemas are disambiguated to a single instance for each name, making it unclear how I would implement a versioning scheme for schemas other than to give them distinct names.

Ideally, I think I would have 2 separate sets of documentation, but I am not really sure how that would be achieved with a routing scheme vs mounting.

This has come up before: https://github.com/starlite-api/starlite/issues/241#issuecomment-1191976760.
With Starlite being a subclass of Router it feels like it should be possible to have an openapi config set at the router level that serves the /schema path under that route prefix, but I haven't looked into it at any great level of detail.
Perhaps a solution could be tied in with #768, however the want for separating docs at the router level isn't necessarily unique to versioning.

Ok, I am closing this for now - you can open a different issue regarding mounting Starlite apps inside Starlite etc.


Touch panel

hi there
can you provide touch panel picture?

this is for driver issues not general requests


Update Readme.md

add format example

The strings are whatever the database sends back, which can be more than just those. Just add a link to the MySQL server documentation, if this is even necessary, rather than trying to enumeriate all possible values.

I think at least we should provide some hints. a hour ago I intend to open this option. In order to get its format, I go into the source code.

I don't disagree, but the docs here are very misleading and makes it seem like dates come in one format and date time in another. You forgot to add what only time looks like, what those vales will look like when the column definitions have numbers on them, how they vary by MySQL version, etc. Basically the only thing to add to the docs is "they come though as sent by your MySQL server" and that's it. Thu module assumes users know how to use MySQL and would know how their column definitions are setup.


Best practise of handling normalised Entities?

In my first App with Redux, I am trying to keep my collections normalised as recommended. This way you only have to change the Entities in one place. (this feels right to me)
At first i successfully normalised my Array of data to an Array-like-Object of Entities with the id's as key's
Then i wanted to list the entities in a View, so i had to parse it back to an Array. Also if i want to filter my Entities, i need the real Array. Is this really the right approach?
Example with re-select:
    // As "id" for my images i use "uri"

    imageEntities = {
     uri1: {image...},
     uri2: {image...},
    ....
    }

    // Selectors:
    const imagesSelector = state => state.images;

    // parse the Array-like-Object to an Array
    const imagesArySelector = createSelector(
      [imagesSelector],
          images => {
            let ary = [];
            for (var key in images) {
              if (images.hasOwnProperty(key)) {
                ary.push(images[key]);
              }
             }
            return ary;
          }
     );

    // filter the Array to get only the new images
    export const newImagesSelector = createSelector(
      [imagesArySelector],
        images => images.filter(image => image.isNew)
     );

Is this really the right approach?  (it is working fine, from what i see until now)

I think it can be done more elegantly.
How I do it:
import { createSelector } from 'reselect';

const providersSelector = state => state.entities.providers;
const subscribersSelector = state => state.entities.subscribers;

export const providersArraySelector = createSelector(
    [providersSelector],
    providers => Object.keys(providers).map(id => providers[id])
);

export const subscribersArraySelector = createSelector(
    [subscribersSelector],
    subscribers => Object.keys(subscribers).map(id => subscribers[id])
);

@itsmepetrov looks a'lot better... thx.
So in principle I am on the right track. Anybody else?

Then i wanted to list the entities in a View, so i had to parse it back to an Array.

You can keep an array of IDs when arrays are more convenient to work with. You'll need to do this for things like pagination. The real-world example in examples folder does that.


Data is not synced across 2 PC's

Hello,
I use 2 different PC's to login and my flipping data is unfortunately not synced between devices. This would help a lot as I flip on both PC's.
Thank you.

This is a planned feature for our premium offerings, but we haven't had time to work on it :(


Query about update

Hi,
I find PyTorch-Lightning has updated to 1.0.2 and change the log metric. Could you please tell me if you'll update Pytorch-Ada? Many thanks!

Hi XianyuanLiu,
Before migrating to pytorch 1.0.2 (or 1.0.3), we have to check first that the 2 issues that made us keep version 0.7.3 are now fixed.

Got it. Many thanks!


D3FC fixes

This commit enabled D3FC integration tests in Travis and the default test runner, and fixes a few minor issues that the test caught -

Fixes NaN sizing bug, from this commit which had modified the signature of domain() in mainAxis.js, but not for the size property of scatter charts.
Applies withOutOpacity() modification to line charts, which had become hard to see with the introduction of chart opacity.

@DevAndyLee Thanks for the review!


[HOV-4] | Adds List Component (V1)

Description

Adds List component and Documentation for the same, we have decided to keep is plain and native instead of making it opnionated, consumers can add things like dividers and styles.
adds 2 components
<List>
and
<ListItem>
which extend ul and li respectively
Motivation and Context

Native list requires a lot of css boilerplate to setup, eg making it horizontal or making the bullets a specific way, instead we provide an extremely easy to use api to modify these and make changes to list on the go while being fully extensible
How Has This Been Tested?

Tested in Docusaurus and tested all possible variants.
Screenshots (if appropriate):

Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

[x] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[x] I have updated the documentation accordingly.

LGTM


rename indexes

Generated this by deleting the schema file, recreating tables and applying the migrations

Could be wrong but without a migration I don't think this will actually change the index names of prod database, so would lead to the schema potentially not matching what's actually there.
Might be better as @jamesrose suggested to write a migration that removes the old index and adds this one to achieve this result.

@baarkerlounger This is actually done by (this migration)[https://github.com/communitiesuk/submit-social-housing-lettings-and-sales-data/blob/main/db/migrate/20220823083657_change_case_log_to_lettings_log.rb] but in the process of rebasing it slipped the case logs bit slipped through. You could see this by dropping the databases, creating them and then running the migrations and you'll end up with the same diff as this PR

@dushan-madetech that migration renames the table but unless I'm missing something it doesn't rename the indexes on it?

@dushan-madetech that migration renames the table but unless I'm missing something it doesn't rename the indexes on it?

@baarkerlounger it did for me, try rolling back and migrating


[mtl] fix Bc1Rrgba support and the alpha swizzle

Fixes the early RPC3/Uncharted failures
PR checklist:

[ ] make succeeds (on *nix)
[ ] make reftests succeeds
[ ] tested examples with the following backends:
[ ] rustfmt run on changed code

I think this is straightforward. Gotta merge to update portability and make a new build.
bors r+

bors r- hold on... some issues with Dota2

Strangely enough, Dota2 relies on us mapping Bc1Rgb -> Bc1Rgba, which doesn't sound right at all. Leaving this unaffected by the PR.
bors r+

@Thomspoon they are somewhat non-obvious. TL;DR: Metal "packed" is the opposite of Vulkan "packed"


support GeoJSON 0.7

The new GeoJSON from https://github.com/JuliaGeo/GeoJSON.jl/pull/63 is quite breaking, but for this package it seems quite limited, so both can be supported. The main different is that coordinates are no longer given as Vector of size 2 but as an NTuple{2, Float32}.
The geo2basic code needs to go at some point since both GeometryBasics and GeoJSON support the GeoInterface.
I noticed that CompatHelper has created one new branch per hour since the GeoJSON release, so now there are over 1000 branches. And I don't see a CompatHelper PR. Example: https://github.com/MakieOrg/GeoMakie.jl/commit/75db288ca2556c59acc51f77c520416e2defdb29

The two test failures were already there, I made sure this didn't add new failures, and the example from the readme works with either GeoJSON version.

Thanks!


remove Just as a dependency for adding chains

In our chain onboarding sessions so far, partner teams typically don't have just installed, and sometimes have trouble installing it.
We should see if we can remove just as a dependency, at least for adding chains so that partner teams don't need to install a new dependency, if not for all our workflows.
One option could be to add a Makefile that handles only the tasks that partner teams might need to run.

We're now actively migrating from Makefiles to just, so closing as won't do.


Document shareIdle and idleByNode allocation API parameters

This PR adds API documentation and an API example for the shareIdle and idleByNode parameters.
This PR is related to https://github.com/opencost/opencost/pull/2835, which adds the shareIdle parameter to the allocations API.

Thank you @patrick-vonsteht , I will bring this up on next community meeting.

Accidentally merged this, resubmitted the patch in https://github.com/opencost/opencost-website/pull/277


docs: Introduce OpenFPGALoader programming tool

This PR introduces a new FPGA programming tool - OpenFPGALoader
It is addressing issue https://github.com/SymbiFlow/symbiflow-arch-defs/issues/2237
We are adding a note in the docs with a plan to add a full support for this tool in the future.
Signed-off-by: Paweł Czarnecki<EMAIL_ADDRESS>

Hi @mithro!
I prepared some notes about the OpenFPGALoader (introduction, installation and usage guide) to the getting-started section of the docs. Please, have a look at this

Can you provide some feedback @umarcor ?

@acomodi - Any thoughts?

@kgugala - Any thoughts on if we can have programming tested using GitHub self hosted runners in the future?

Overall, I think that writing some docs about OpenFPGALoader is a good proposal. However, I'm unsure about writing that content in this repo/place. It took me some effort to find that it's going to be served in https://symbiflow.readthedocs.io/projects/arch-defs/en/latest/getting-started.html. The "About" in the sidebar points to https://symbiflow.github.io/, the first paragraph in the readme points to https://github.com/SymbiFlow/symbiflow-examples. It's only the shield/badge the one pointing to the arch-defs docs. Furthermore, this is no exclusive about "developers who want to contribute to architecture definitions" but for "any user or developer of symbiflow who needs to program/configure a board/device". Therefore, I recommend to have this content written in https://github.com/SymbiFlow/symbiflow-examples instead. It's ok to then cross-reference from here.

I would say from a SymbiFlow perspective the two programming tools we want to support are;
(a) OpenOCD
(b) OpenFPGALoader
I think all the other tools can be ignored and features added to (a) and (b) to cover anything missing.

LGTM.
It make sense to refer to official doc for details and target here general usage and/or specificities.
Thanks

@kgugla - Can you check this and merge if you also think it looks good?


NuGet Package?

Are there plans to publish this to NuGet soon-ish?

The package is out! https://nuget.optimizely.com/package/?id=Geta.Optimizely.Tags


sdl2lib bug fix

Description:

fix da shit!

Source / References:

https://discord.com/channels/796062236174975028/823675597330579466/829243675241349133

Looks decent


Fix build with Windows/libc++

This change fixes the below build error when using libc++ on Windows.
src/cpp/src/util/size.h(45,12):  error: no member named 'size' in namespace 'std'
using std::size;

This is a followup to [1] which fixed the build in some cases, but not all.
As that CL points out:
We cannot solely rely on the value of _MSC_VER when determining
whether the standard library provides a definition of std::size;
we also need to make sure that the standard library is not libc++.

This is true, but the old logic would assume that the standard library would
provide std::size when __cpp_lib_nonmember_container_access >= 201411.
The new logic requires !defined(_LIBCPP_STD_VER) for that check too.
[1] https://github.com/googlei18n/libaddressinput/commit/d955c63ec7048d59dffd20af25eeec23da878d27

Full open source update: https://github.com/googlei18n/libaddressinput/pull/174

Reopening

Would you prefer to merge this patch?

Going to merge this after travis-ci completes.


[FEATURE] Teleporting Teams Support / Feature

My feature request:
I suggest adding a command such as /teama teleport [Name] X Y Z [YAW] [PITCH] which would enable admins to teleport an entire team to a direction and direction facing.
Alternatives
Adding support with the vanilla way which is /tp @a[team=Red] X Y Z [YAW] [PITCH]
Additional context
I was creating a hunger games game on my server for a mini tournament and was trying to create starting pods however I found it wasn't possible with the vanilla way as the plugin over rides it therefore I had to use player usernames to certain coordinates instead

You should be able to use the team classifiers to some degree, it may be a bit buggy but if it is let me know.
If you have useTeams set to true in the config.yml each betterTeams team will have a scoreboard team. It will be called something a little strange like in the example of 'Red' it will be Red01 or something,
use `/minecraft:team list' or something like that to view a list of all scoreboard teams, you can go from there.
the teleport idea seems like a good idea though.

This feature has been implemented and will be included in the next update. Thank you for the suggestion.


Need to update the documentation on config file

The configure file has been added a lot of stuff.
Could someone update the documentation?
The logging option is really great, thanks!

It is being done

Thank you.

close this issue if your problem solved.
note1 : btw you can see the configuration for config in /[pokemon_bot_folder]/docs/configuration_files.md

https://github.com/PokemonGoF/PokemonGo-Bot/blob/dev/docs/configuration_files.md


syscontext: delete unused files

Signed-off-by: William Roberts<EMAIL_ADDRESS>

see: https://github.com/01org/tpm2.0-tools/pull/266


cudaErrorInvalidDeviceFunction: invalid device function

hello， I tested the experiment by following the install guide,and I come across the problem about cuda

using 8 Tesla K80s [8,9,10,11,12,13,14,15,16]
`[08/18 09:54:47 main-logger]: #Model parameters: 32311715
[08/18 09:54:47 main-logger]: class_weight: tensor([ 3.1557,  8.7029,  7.8281,  6.1354,  6.3161,  7.9937,  8.9704, 10.1922,
1.6155,  4.2187,  1.9385,  5.5455,  2.0198,  2.6261,  1.3212,  5.1102,
2.5492,  5.8585,  7.3929], device='cuda:0')
[08/18 09:54:47 main-logger]: loss_name: ce_loss
[08/18 09:54:47 main-logger]: train_data samples: '19130'
[08/18 09:54:47 main-logger]: val_data samples: '4071'
[08/18 09:54:47 main-logger]: scheduler: Poly. scheduler_update: step
[08/18 09:54:47 main-logger]: lr: [0.006, 0.0006000000000000001]
[Exception|implicit_gemm_pair]indices=torch.Size([78654, 4]),bs=1,ss=[1977, 1756, 128],algo=ConvAlgo.MaskImplicitGemm,ksize=[3, 3, 3],stride=[1, 1, 1],padding=[1, 1, 1],dilation=[1, 1, 1],subm=True,transpose=False
SPCONV_DEBUG_SAVE_PATH not found, you can specify SPCONV_DEBUG_SAVE_PATH as debug data save path to save debug data which can be attached in a issue.
[Exception|implicit_gemm_pair]indices=torch.Size([80831, 4]),bs=1,ss=[1624, 2049, 128],algo=ConvAlgo.MaskImplicitGemm,ksize=[3, 3, 3],stride=[1, 1, 1],padding=[1, 1, 1],dilation=[1, 1, 1],subm=True,transpose=False
SPCONV_DEBUG_SAVE_PATH not found, you can specify SPCONV_DEBUG_SAVE_PATH as debug data save path to save debug data which can be attached in a issue.
[Exception|implicit_gemm_pair]indices=torch.Size([92342, 4]),bs=1,ss=[2048, 1388, 128],algo=ConvAlgo.MaskImplicitGemm,ksize=[3, 3, 3],stride=[1, 1, 1],padding=[1, 1, 1],dilation=[1, 1, 1],subm=True,transpose=False
SPCONV_DEBUG_SAVE_PATH not found, you can specify SPCONV_DEBUG_SAVE_PATH as debug data save path to save debug data which can be attached in a issue.
[Exception|implicit_gemm_pair]indices=torch.Size([82930, 4]),bs=1,ss=[2049, 2049, 129],algo=ConvAlgo.MaskImplicitGemm,ksize=[3, 3, 3],stride=[1, 1, 1],padding=[1, 1, 1],dilation=[1, 1, 1],subm=True,transpose=False
SPCONV_DEBUG_SAVE_PATH not found, you can specify SPCONV_DEBUG_SAVE_PATH as debug data save path to save debug data which can be attached in a issue.
[Exception|implicit_gemm_pair]indices=torch.Size([73867, 4]),bs=1,ss=[2049, 1523, 128],algo=ConvAlgo.MaskImplicitGemm,ksize=[3, 3, 3],stride=[1, 1, 1],padding=[1, 1, 1],dilation=[1, 1, 1],subm=True,transpose=False
SPCONV_DEBUG_SAVE_PATH not found, you can specify SPCONV_DEBUG_SAVE_PATH as debug data save path to save debug data which can be attached in a issue.
[Exception|implicit_gemm_pair]indices=torch.Size([93205, 4]),bs=1,ss=[1718, 2048, 128],algo=ConvAlgo.MaskImplicitGemm,ksize=[3, 3, 3],stride=[1, 1, 1],padding=[1, 1, 1],dilation=[1, 1, 1],subm=True,transpose=False
SPCONV_DEBUG_SAVE_PATH not found, you can specify SPCONV_DEBUG_SAVE_PATH as debug data save path to save debug data which can be attached in a issue.
[Exception|implicit_gemm_pair]indices=torch.Size([88331, 4]),bs=1,ss=[2049, 2049, 128],algo=ConvAlgo.MaskImplicitGemm,ksize=[3, 3, 3],stride=[1, 1, 1],padding=[1, 1, 1],dilation=[1, 1, 1],subm=True,transpose=False
SPCONV_DEBUG_SAVE_PATH not found, you can specify SPCONV_DEBUG_SAVE_PATH as debug data save path to save debug data which can be attached in a issue.
[Exception|implicit_gemm_pair]indices=torch.Size([84985, 4]),bs=1,ss=[1975, 1676, 128],algo=ConvAlgo.MaskImplicitGemm,ksize=[3, 3, 3],stride=[1, 1, 1],padding=[1, 1, 1],dilation=[1, 1, 1],subm=True,transpose=False
SPCONV_DEBUG_SAVE_PATH not found, you can specify SPCONV_DEBUG_SAVE_PATH as debug data save path to save debug data which can be attached in a issue.
Traceback (most recent call last):
File "train.py", line 902, in
main()
File "train.py", line 90, in main
mp.spawn(main_worker, nprocs=args.ngpus_per_node, args=(args.ngpus_per_node, args))
File "/home/fyy/anaconda3/envs/sphereformer/lib/python3.7/site-packages/torch/multiprocessing/spawn.py", line 230, in spawn
return start_processes(fn, args, nprocs, join, daemon, start_method='spawn')
File "/home/fyy/anaconda3/envs/sphereformer/lib/python3.7/site-packages/torch/multiprocessing/spawn.py", line 188, in start_processes
while not context.join():
File "/home/fyy/anaconda3/envs/sphereformer/lib/python3.7/site-packages/torch/multiprocessing/spawn.py", line 150, in join
raise ProcessRaisedException(msg, error_index, failed_process.pid)
torch.multiprocessing.spawn.ProcessRaisedException:

-- Process 1 terminated with the following error:
Traceback (most recent call last):
File "/home/fyy/anaconda3/envs/sphereformer/lib/python3.7/site-packages/torch/multiprocessing/spawn.py", line 59, in _wrap
fn(i, *args)
File "/home/fyy/SphereFormer-master/train.py", line 410, in main_worker
loss_train, mIoU_train, mAcc_train, allAcc_train = train(train_loader, model, criterion, optimizer, epoch, scaler, scheduler, gpu)
File "/home/fyy/SphereFormer-master/train.py", line 498, in train
output = model(sinput, xyz, batch)
File "/home/fyy/anaconda3/envs/sphereformer/lib/python3.7/site-packages/torch/nn/modules/module.py", line 889, in _call_impl
result = self.forward(*input, **kwargs)
File "/home/fyy/anaconda3/envs/sphereformer/lib/python3.7/site-packages/torch/nn/parallel/distributed.py", line 705, in forward
output = self.module(*inputs[0], **kwargs[0])
File "/home/fyy/anaconda3/envs/sphereformer/lib/python3.7/site-packages/torch/nn/modules/module.py", line 889, in _call_impl
result = self.forward(*input, **kwargs)
File "/home/fyy/SphereFormer-master/model/unet_spherical_transformer.py", line 284, in forward
output = self.input_conv(input)
File "/home/fyy/anaconda3/envs/sphereformer/lib/python3.7/site-packages/torch/nn/modules/module.py", line 889, in _call_impl
result = self.forward(*input, **kwargs)
File "/home/fyy/anaconda3/envs/sphereformer/lib/python3.7/site-packages/spconv/pytorch/modules.py", line 137, in forward
input = module(input)
File "/home/fyy/anaconda3/envs/sphereformer/lib/python3.7/site-packages/torch/nn/modules/module.py", line 889, in _call_impl
result = self.forward(*input, **kwargs)
File "/home/fyy/anaconda3/envs/sphereformer/lib/python3.7/site-packages/spconv/pytorch/conv.py", line 404, in forward
raise e
File "/home/fyy/anaconda3/envs/sphereformer/lib/python3.7/site-packages/spconv/pytorch/conv.py", line 395, in forward
timer=input._timer)
File "/home/fyy/anaconda3/envs/sphereformer/lib/python3.7/site-packages/spconv/pytorch/ops.py", line 359, in get_indice_pairs_implicit_gemm
mask_argsort_tv[j], stream)
RuntimeError: radix_sort: failed on 1st step: cudaErrorInvalidDeviceFunction: invalid device function`

I have searched for resolution but let me change the Pytorch version to 1.9.x,but it came into a new problem.


pylint errors will now break the build

added continuous integration for breaking the build if pylint outputs any error. Note
fixed all current pylint errors

lots going on here, but generally LGTM

it's mostly just linting severe errors and configuring the process...


Admin/Regular User differentiation

Having an admin view that shows all orders
Having a normal user to filter this view so that it allows the user to view only her orders

On admin users page -- choose one bullet point from each category to work


armv8m: add README.md, fix #1705

[Detail]
Add README.md
[Verified Cases]
Build Pass: <py_engine_demo>
Test Pass:  <py_engine_demo>

Security Check : 353d88c470f5a287b4d1514be6e9c2ab435cef10

auto build success,number:157


Error when running simple.ino

I downloaded the the repository, installed OpcServer from Arduino Library Manager and then hit Upload. It gave me the following error:

src/OpcServer.h:31:8: error:   initializing argument 1 of 'void OpcServer::setMsgReceivedCallback(OpcMsgReceivedCallback)' [-fpermissive]

   void setMsgReceivedCallback(OpcMsgReceivedCallback opcMsgReceivedCallback);

        ^

exit status 1
invalid conversion from 'void (*)(uint8_t, uint8_t, uint16_t, uint8_t*) {aka void (*)(unsigned char, unsigned char, short unsigned int, unsigned char*)}' to 'OpcMsgReceivedCallback {aka void (*)(unsigned char, unsigned char, unsigned char, unsigned char*)}' [-fpermissive]

The error is on this line:
87: opcServer.setMsgReceivedCallback(cbOpcMessage);
Seems like a type incompatibility issue. I'm not sure what the resolution is. Anyone know what the solution might be?

I figured it out. I had to change the function signature to the following:
void cbOpcMessage(uint8_t channel, uint8_t command, uint8_t length, uint8_t* data)


evothings-viewer vs evothings-client and key based joining

I've checked out the evothings2 branch and tried building it and it failed and I had to work around the build errors to get it to work (issues with not finding evothings-viewer, so I simply symlinked evothings-client as evothings-viewer; and also issues with copying evothings-examples/resources/ui to the final destination where it was already a symlink to the same directory, so it fails).
Once the build was successful and I was able to run it, I noticed it now does things differently than v1 by allowing you to fetch a session key from some server which you're supposed to enter on the client to let you join instead of hardcoding the IP like before (that is great!).
My question is how do I go about doing that on my own Cordova app?
I also couldn't find a new version of the evothings-client to be able to enter such key. When I tried running the one the build process checked out, all I got was an error on the mobile device screen (ERROR: Start page at 'www/index.html' was not found).
Looking forward to trying out the new stuff.

I found the following link on the site that talks about the viewer app, but couldn't find source code for it anywhere?

@robertoandrade
Hi Roberto, we are planning to open-soruce the Viewer app, but it is still a bit early. Sorry for the misleading link, and the build problems this is causing.
To answer your question, you can make your own Cordova app, with the plugins you want to use, and use it with Evothings Studio Alpha 3.
The most simple solution is this:

Get a connect key in the Workbench

Enter this code in the index.html file in the Cordova app:

(replace CONNECTCODE with the actual code from the Workbench)

Build and run the app, it should connect automatically.

The catch with this method is that the code times out in 5 minutes, so the app must be built and run within 5 minutes.
As an alternative to the above, if it takes longer than 5 min to build, or if you want a UI for the connect code, a text field can be used to enter the code. They you only have to rebuild when updating the native code, and when releasing (replace index.html with the text field with the production version).
Let me know if you want me to make an example of an index.html with a text field and a connect button, and a script. Planning to do this as a tutorial.
Best regards, Mikael

Ok, Followed that, but when I click Run on the Workbench, it refreshes the view on the app with an error reading File Not Found: /<guid>/index.html. Any ideas?

I noticed it created a www/evothings.json in my project with that uuid but every time I Run, it gives me the File Not Found error.

Also the window.location.assign code in Android opens up a separate browser window (ie: Chrome) than the Cordova's webview. Any way around that?

@robertoandrade Hi sorry for slow response. Can you try to connect in a web browser? Get a connect key in the Workbench, the enter the connect URL in the browser, for example:
http://staging.evothings.com:8081/connect/nsgf7369

The Evothings Viewer repo is now public: https://github.com/evothings/evothings-viewer


Start both CAI data and GCP resource API inventory (e.g. GSuite) as soon as inventory process starts.

When the inventory process starts we should start both the collection of data from CAI and any GCP Resources APIs (e.g. GSuite). We should not wait for CAI exports to complete before we start the collection of GSuite data.

@joecheuk @hshin-g Do you know if this has been completed as part of the Inventory optimization efforts?

@hshin-g Please update ticket with reasoning for why this should not be implemented and close out.

The CAI export does not take a significant amount of time to be downloaded, and calling the GCP APIs happens around the same time as parsing through the CAI resources. There would not be that much of a difference in time by kicking off these processes at the same time, since they happen pretty close together currently. Calling the GCP API is also limited by the number of queries per second that the API can be called, so increasing the number of threads would not be effective, as they are rate limited.


Add support for specifying --access, aligning better with default publish behavior

Closes #80
Changes:

Update the --dry-run flag so it is passed to pnpm publish to get more useful feedback.
Remove the hardcoded --access=public argument and instead allow users to pass the --access flag with public or restricted set.

Previously, running pnpm release-plan publish would force any package to publish as public, even if the access was set to restricted in the package.json.
This change better matches the default behavior of pnpm publish and allows scoped packages to avoid being switched to public accidentally.
With this change, the expected behaviors are:

Running publish without an --access flag will respect the publishConfig access set in package.json
Running publish with an --access flag will override the publishConfig access set in package.json
Running publish without an --access flag and no publishConfig access set in package.json

if your package is scoped, it will publish with restricted access
"By default, scoped packages are published with private visibility." [source]
otherwise, it will use the default publish
"By default npm will publish to the public registry. This can be overridden by specifying a different default registry or using a scope in the name, combined with a scope-configured registry (see package.json)." [source]

[!IMPORTANT]
Item 3 here could use extra consideration because I think it could cause a breaking change for folks who do not set the access in their package.json or publish command.

I think it makes sense for release-plan to have the same behavior as normal npm/pnpm here. That means that scoped packages that publish using release-plan would use publishConfig.access to specify that they should be published using --access publish.
This has a few upsides:

This communicates the package's access to other tools that might rely on default npm behavior.
By relying on the default behavior of pnpm, we also pick up other ways that you might have configured the access setting.
It is also forward-compatible with potential future changes in either npm or pnpm that further adjust how the access is configured.

The TL;DR is that this PR removes the hardcoded --access public entirely, which buys us compatibility with the standard ways of configuring the access.

However, this would be a breaking change, because many existing release-plan packages do not currently configure their access.
I personally think that release-plan apps should explicitly configure publishConfig.access, which would make their public access visible to other tools.
But the vast majority of existing release-plan packages are Open Source packages without an explicitly configured access, and this would break their builds. How should we deal with the breaking change? A couple of options:

Cut an 0.10 release, document the breaking change and migration (i.e. set "publishConfig.access": "public" in package.json or in .npmrc).
Attempt to determine whether the user has configured access (by reading package.json and calling pnpm config get access). If the didn't configure access, stick to the current default behavior, and instruct the user to update their package.json.

However, this would be a breaking change, because many existing release-plan packages do not currently configure their access.

as it turns out, it's only a breaking change for packages that haven't yet published any version at all, because once you publish a public scoped package, npm knows that it's public, and keeps going with that

Can I just say, this is a great PR 😍
It's also fantastic to take a weekend off and come back to a whole loop being closed! Great work everyone! 🎉


k8s status cell issued by k status doesn't show repeating pulse effect in browser

The status cell should be blinking and changing from Pending to Ready. However, the pending cell is static and never changes to Ready. As shown in the following screenshot, the namespace aloha was successfully created (confirmed by k get ns), but the status is pending in the namespace creation repl output.

Update: The watcher table is good. (e.g. k get ns -w)
k create ns issues k status to get the status of the namespace,  and the watch function doesn't work in browser.


Some Issues/Suggestions

● The "Clear Bag" button doesn't clear artifacts, weapons, and some 5* mats The in-game command clears everything no problem
● In the Artifact tab, some artifacts only give 4* options, also there is no option to set the level of the artifact instead of editing it in the command. (List of Artifacts Below)

Echoes of an Offering
Tenacity of the Millelith
Wanderer's Troupe

Suggestions:
● Is it possible that you can make the "Level-up All" button the same way as the "Clear Bag" button? Being able to choose would be nice.
● Can you make the weather command look less complicated? Like have it set for current location or anything else.
I am currently in the process of translating everything to English and fixing any grammar errors. I am only doing translations, as I am still taking my time learning how to code.

i will fix it these day.
after finish the artifact generate, i didn' test all items, i will fix to right id, thank you.
a good idea, i will edit it as soon as possible.
about weather, use location name to replace the id seem a nice idea, but it will cost me too many time to name and do i18n, so the priority is low.

@NekosakiSR "Clear Bag" button is same to the clear command, are you sure clear command can clear all items include 5* artifacts/weapons/mats?

Closing this issue, if that problem is still not solved please open a separate issue.
About translation, i refactor i18n folder, If you are still willing to contribute, you can go there to translate the artifact detail, monster list probably also need to be beautified, is generated with a script.
Thanks for the previous help.


Enable/disable cloud optical properties computation

for each layer of a column, based on state of cloud mask.

bors try

bors r+


Add request body media type update checker

Add two checker ids: request-body-media-type-added (INFO) and request-body-media-type-removed (ERR)
Please double-check it's OK to make request-body-media-type-removed - seems like a breaking change to us

Codecov Report

Merging #320 (e043dc9) into main (37acfd1) will increase coverage by 0.10%.
The diff coverage is 100.00%.

:exclamation: Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the Github App Integration for your organization. Read more.
@@            Coverage Diff             @@
##             main     #320      +/-   ##
==========================================
+ Coverage   77.73%   77.83%   +0.10%
==========================================
  Files         178      179       +1
  Lines        8993     9034      +41
==========================================
+ Hits         6991     7032      +41
  Misses       1719     1719
  Partials      283      283

Flag
Coverage Δ

unittests
77.83% <100.00%> (+0.10%)
:arrow_up:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

checker/check-request-body-mediatype-updated.go
100.00% <100.00%> (ø)

checker/default_checks.go
90.65% <100.00%> (+0.08%)
:arrow_up:

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


Use Quiet to derive Show instances

ouroboros-network-framework: use Quiet for deriving Show instances
network-mux: use Quiet for deriving Show instances

bors merge

bors merge

bors r-

bors merge


Add piwik tracker to themes

moved from GmbH Jira:
The piwik tracker needs to be properly added to all online themes.
Offline Themes need to register the tracker with the full URL (including the domain)
I don't know if this is still needed, maybe @DanielSiepmann has more info?

This ticket should be obsolete. It was created at a time when the tracker code was - erroneously - added to offline manuals as well. This isn't the case any more.


Protobuf 3.22.0 - fixup merge with CCI mainline

Very simple patch to get the PR rolling ...

Well, it looks complex, but it was really just because the mainline added a version, and you added a version.


Add support of setting non-ASCll metadata for blob client

Only ASCII chars are supported when setting blob metadata. But we can set non-ASCII in the Azure portal directly.

Library or service name.
Azure.Storage.Blobs 12.4.0
Is your feature request related to a problem? Please describe.
Write metadata to a blob containing a non-ASCII character (such as "ñ").
        var client = new BlobContainerClient(connectionString, "test");
        var blobClient = client.GetBlobClient("test.jpg");

        var metadata = new Dictionary<string, string>();
        metadata.Add("Test", "ñ"); // The notorious ñ.

        blobClient.SetMetadata(metadata);

Error occurs when setting metadata by calling SetMetadata for BlobClient
RequestFailedException: Request headers must contain only ASCII characters.

This is related to #10629.

@XuGuang-Yao Please see the answer in https://github.com/Azure/azure-sdk-for-net/issues/10629 .


resolve vertical branch conflicts

Conflicts against Horizontal manifest baseline of WW06 release
Tracked-On: OAM-105873

Reviewers: @basilchew @bnkoppad kindly review


Helping demean() Fail Gracefully - Make 'maxiter' Accessible from feols()

I've encountered instances when demean_.demean() runs endlessly - probably because I passed it a poorly structured data shape. I would like to be able to call a service that uses PyFixest, so calling the package on problematic data is a distinct possibility.
To this end, it would be great if there were ways to help the demean() method fail gracefully. Having some sort of mechanism for timing out could be handy, but the simplest approach that I can think of off hand is to make the 'maxiter' argument accessible from the feols() method in a manner similar to how the 'fixef_tol' argument is accessible to the user.

Yes, I agree - it would be great to add a fixef_iter function argument to pyfixest.estimation.feols and pyfixest.estimation.fepois that would allow users to set the maximum number of iterations for the demeaning algo.
Overall, this should be straightforward enough:

We'd have to add a function argument fixef_iter to both functions & add docstrings.
We'd then have to propagate the argument to the FixestMulti class (just as fixef_tol) and assign it as an attribute.
For objects of class Feols and Feiv, from FixestMulti, we'd directly pass it to demean_model, where we finally can pass it to demean.
For objects of class Feiv, we'd pass the argument to Fepois, from which we can pass it to the internal calls to demean.


fine-tuned

In the fine-tuned code, covariates were mentioned, but they were not actually used in the training. Why is this the case? Additionally, various time features were processed during data handling, but they were not utilized when actually feeding data into the training process.

Could you please provide some guidance or examples on how to include covariates in the fine-tuning phase?


[Doc Improvement][SEO description update 6][3867322]

Acrolinx Scorecards
We currently enforce a minimum score of 80.
Click the scorecard links for each article to review the Acrolinx feedback on grammar, spelling, punctuation, writing style, and terminology:

Article
Score
Issues
Scorecard
Processed

msteams-platform/apps-in-teams-meetings/app-icon-badging-for-your-app.md
86
7
link
:white_check_mark:

msteams-platform/apps-in-teams-meetings/build-tabs-for-meeting.md
87
27
link
:white_check_mark:

msteams-platform/apps-in-teams-meetings/design/designing-apps-in-meetings.md
93
21
link
:white_check_mark:

msteams-platform/apps-in-teams-meetings/in-meeting-notification-for-meeting.md
92
7
link
:white_check_mark:

msteams-platform/apps-in-teams-meetings/teams-live-share-capabilities.md
92
20
link
:white_check_mark:

msteams-platform/apps-in-teams-meetings/teams-live-share-faq.md
88
16
link
:white_check_mark:

msteams-platform/apps-in-teams-meetings/teams-live-share-how-to/how-to-custom-azure-fluid-relay.md
91
9
link
:white_check_mark:

msteams-platform/apps-in-teams-meetings/teams-live-share-overview.md
88
32
link
:white_check_mark:

msteams-platform/apps-in-teams-meetings/teams-live-share-quick-start.md
89
8
link
:white_check_mark:

msteams-platform/apps-in-teams-meetings/teams-live-share-tutorial.md
83
38
link
:white_check_mark:

More info about Acrolinx
Use the Acrolinx extension, or sidebar, in Visual Studio Code to check spelling, grammar, style, tone, clarity, and key terminology when you're creating or updating content. For more information, see Use the Visual Studio Code extension to run Acrolinx locally.

Acrolinx Scorecards
We currently enforce a minimum score of 80.
Click the scorecard links for each article to review the Acrolinx feedback on grammar, spelling, punctuation, writing style, and terminology:

Article
Score
Issues
Scorecard
Processed

msteams-platform/apps-in-teams-meetings/app-icon-badging-for-your-app.md
86
7
link
:white_check_mark:

msteams-platform/apps-in-teams-meetings/build-tabs-for-meeting.md
87
27
link
:white_check_mark:

msteams-platform/apps-in-teams-meetings/design/designing-apps-in-meetings.md
93
21
link
:white_check_mark:

msteams-platform/apps-in-teams-meetings/in-meeting-notification-for-meeting.md
92
7
link
:white_check_mark:

msteams-platform/apps-in-teams-meetings/teams-live-share-capabilities.md
92
20
link
:white_check_mark:

msteams-platform/apps-in-teams-meetings/teams-live-share-faq.md
88
16
link
:white_check_mark:

msteams-platform/apps-in-teams-meetings/teams-live-share-how-to/how-to-custom-azure-fluid-relay.md
91
9
link
:white_check_mark:

msteams-platform/apps-in-teams-meetings/teams-live-share-overview.md
88
33
link
:white_check_mark:

msteams-platform/apps-in-teams-meetings/teams-live-share-quick-start.md
88
8
link
:white_check_mark:

msteams-platform/apps-in-teams-meetings/teams-live-share-tutorial.md
83
38
link
:white_check_mark:

More info about Acrolinx
Use the Acrolinx extension, or sidebar, in Visual Studio Code to check spelling, grammar, style, tone, clarity, and key terminology when you're creating or updating content. For more information, see Use the Visual Studio Code extension to run Acrolinx locally.

Acrolinx Scorecards
We currently enforce a minimum score of 80.
Click the scorecard links for each article to review the Acrolinx feedback on grammar, spelling, punctuation, writing style, and terminology:

Article
Score
Issues
Scorecard
Processed

msteams-platform/apps-in-teams-meetings/app-icon-badging-for-your-app.md
86
7
link
:white_check_mark:

msteams-platform/apps-in-teams-meetings/build-tabs-for-meeting.md
87
27
link
:white_check_mark:

msteams-platform/apps-in-teams-meetings/design/designing-apps-in-meetings.md
93
21
link
:white_check_mark:

msteams-platform/apps-in-teams-meetings/in-meeting-notification-for-meeting.md
92
7
link
:white_check_mark:

msteams-platform/apps-in-teams-meetings/teams-live-share-capabilities.md
92
20
link
:white_check_mark:

msteams-platform/apps-in-teams-meetings/teams-live-share-faq.md
87
19
link
:white_check_mark:

msteams-platform/apps-in-teams-meetings/teams-live-share-how-to/how-to-custom-azure-fluid-relay.md
91
9
link
:white_check_mark:

msteams-platform/apps-in-teams-meetings/teams-live-share-overview.md
88
33
link
:white_check_mark:

msteams-platform/apps-in-teams-meetings/teams-live-share-quick-start.md
88
8
link
:white_check_mark:

msteams-platform/apps-in-teams-meetings/teams-live-share-tutorial.md
83
38
link
:white_check_mark:

More info about Acrolinx
Use the Acrolinx extension, or sidebar, in Visual Studio Code to check spelling, grammar, style, tone, clarity, and key terminology when you're creating or updating content. For more information, see Use the Visual Studio Code extension to run Acrolinx locally.


Support using mail without core_extensions

We try to avoid monkeypatching the Ruby standard library to reduce the interface surface new engineers need to reason about. The mail gem's core_extensions are the largest contributor of standard library monkeypatches in our codebase today. We regularly run into bugs where code runs properly in a context where mail has been required and breaks in another context where the monkeypatches are not available.
Would you be amenable to removing core_extensions? For backwards compatibility, I imagine the first step would be to remove any dependency on core_extensions, continue to load them by default and support a require 'mail/base' that doesn't load any patches.

The extensions are for mail internals, so we needn't maintain back-compat in new mail releases.
Best approach here is to do separate PRs for each extension removal. As a starting point, check out https://github.com/mikel/mail/pull/937 for @darrencauthon's extensive String#blank? → Mail::Utilities#blank? migration.


[Doc]23.02 doc updates[skip ci]

Add 23.02 release notes

We need to update the https://github.com/NVIDIA/spark-rapids/blob/branch-23.02/docs/get-started/getting-started-databricks.md to indicate users should set spark.databricks.optimizer.dynamicFilePruning false per https://github.com/NVIDIA/spark-rapids/issues/7648#issuecomment-1422725423

there are some links targeted to 22.12, could you help update to 23.02?

We need to update the https://github.com/NVIDIA/spark-rapids/blob/branch-23.02/docs/get-started/getting-started-databricks.md to indicate users should set spark.databricks.optimizer.dynamicFilePruning false per #7648 (comment)

@sameerz added this config in 2302 doc

there are some links targeted to 22.12, could you help update to 23.02?

Modified.thx

LGTM,thanks

build