Buggy networking example with laminar (issues/unoptimized)

Hallo
I have tried to incorporate the laminar  networking lib into a very basic template dotrix scene. Although the basics are working (you can send a basic String as a vec of u8 bytes (using .into_bytes() method). However the current results are quite poor, due to my lack of understanding of how to properly integrate it .
For example , the client successfully sends the given string to the server, and the server receievs it. However, there seems to be unpredictable delay between certain packets sent and received. I do not fully undertand the issue; is it because I am spawining a new thread each frame on the server (let _thread = thread::spawn(move || socket.manual_poll(Instant::now())))? . I have attached both client and server (maybe you can see what the issue i am doing wrong is). You can run the server first (currently on address <IP_ADDRESS>) by using cargo run --release on the server folder. Then run the client
Here is my repo for the test project: laminar-integrations
Thanks

Hi!
First think you can do, is to move this into a startup system
let mut socket = Socket::bind(addr).unwrap();

and store the result into some your custom service (structure), so you wont need to make an additional expensive system call (2 in fact, becase closing of the socket also happens when client` function returns) on each frames. UDP communication (I believe it is UDP) that you use, should be fast enough for testing purposes.
Then if you use a single thread and communicate in systems, it is worth to consider a non-blocking sockets. I haven't check if laminar offers something like this. Or alternatively you can move all the communication into a separate thread and synchronize it using non-blocking mutexes (I mean try lock concept).
Cheers

Hi, Thanks very much for info. I have created a struct to hold the Socket, but had issues with mutability references. However it now works well. I can send packets of data from client to server and vice versa. Cheers for replies ! :)
I think I will now try to make multiplayer game with my car set up!

I will close now


Allow to invoke a schedule

Describe the Change
Being able to run the code inside a schedule outside of the scheduled time.
For example, having a schedule that collects some data from an external source which only runs once an hour but having the ability to request for the schedule to run, maybe through a rest API so the user could ask for the data to be updated in the background outside of the normal schedule

Ooo, yes, can probably do this for timers as well and have something like:
Invoke-PodeSchedule -Name '<name>'
Invoke-PodeTimer -Name '<name>'

Each of which will invoke that schedule/timer's logic adhoc.


Plugin won't load

I am trying to get this installed since I see it's not a dead repository (like so many others) and am getting this error:
I have reviewed the installation steps which seems to be authentication related. I am running this as a docker but did get to bash and verified that the required library pyfujitseu is the correct version. I'm still getting my legs under me with Home Assistant, so any nudges in the correct direction would be appreciated.
Logger: homeassistant.components.climate
Source: custom_components/fglair_heatpump_controller/climate.py:88
Integration: Climate (documentation, issues)
First occurred: 10:10:43 AM (1 occurrences)
Last logged: 10:10:43 AM
Error while setting up fglair_heatpump_controller platform for climate
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 289, in _async_setup_platform
await asyncio.shield(task)
File "/usr/local/lib/python3.10/concurrent/futures/thread.py", line 58, in run
result = self.fn(*self.args, **self.kwargs)
File "/config/custom_components/fglair_heatpump_controller/climate.py", line 88, in setup_platform
if not fglairapi._authenticate():
File "/usr/local/lib/python3.10/site-packages/pyfujitseu/api.py", line 118, in _authenticate
f = open(self._ACCESS_TOKEN_FILE, "w")
TypeError: expected str, bytes or os.PathLike object, not NoneType
Here is the configuration section:
climate:
   - platform: fglair_heatpump_controller
     username: !secret FGLAIR_USER
     password: !secret FGLAIR_PASS
     region: 'us'

and the secrets.

FGLAIR_USER: "<email address>"
FGLAIR_PASS: "<password containing lower, upper case, numbers and special characters>"```

@GonzoTG have you tried to declare tokenpath param?

@GonzoTG as described by @bigmoby as a first step I recommend to add tokenpath to your configuration.
climate
  - platform: fglair_heatpump_controller
    username: !secret FGLAIR_USER
    password: !secret FGLAIR_PASS
    region: 'us'
    tokenpath: 'token.txt'

Thanks! Yup. that eliminated the error, but now I don't see the device and don't have anything in the logs to indicate that there's a problem.
2023-01-26 18:37:04.461 WARNING (SyncWorker_4) [homeassistant.loader] We found a custom integration fglair_heatpump_controller which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant

Which I know is standard, but does indicate to me that it's being loaded. I didn't mean for this to become a support thread. If there's a better place to get assistance, happy to move this to there.

Ok, here's what I got. I've reviewed the logs and don't see any glaring errors. It did seem that line 21 is odd.
home-assistant-fglair-debug.log

Hi @GonzoTG it appears to me ok. What's the problem? Have you found a climate device in developer-tools/state section?

Hi @GonzoTG it appears to me ok. What's the problem? Have you found a climate device in developer-tools/state section?

No, I haven't found any reference to the integration in developer tools...

Digging a bit further and trying to think more broadly. I did come across this:

(I tried removing the ' just in case that could be a cause of the issue.).
Shouldn't there be a card in the "Integrations" tab for the device? I was able to add a card on the dashboard, so perhaps I've just wasted a bunch of your time. Really sorry about that.

No, no Integrations stuff because it's already added in configuration.yaml step. Please follow the guide next time: https://github.com/bigmoby/fglair_for_homeassistant#usage 😉
Enjoy!


DO NOT MERGE!!! All changes from last release for Nina

Description
DO NOT MERGE!!! This is all the changes for the new release.

Top and bottom events
matching views in view cache with lowercase
Includes bug fixes PRs #1040 and #1041

Related Issue

Motivation and Context

Screenshots (if appropriate):
Types of changes

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

Checklist:

[ ] I have signed the Adobe Open Source CLA or I'm an Adobe employee.
[ ] I have made any necessary test changes and all tests pass.
[ ] I have run the Sandbox successfully.

Display notifications have been interact calls for a while now. I think we found collect calls have some problems and should only be used when the page is potentially unloading.


Add calendar grid

Summary of changes
Asana Ticket: Add event listings to the grid
There are a few noticeable issues which I plan to address in the 'Add toggle between views to navigation' ticket, including:

rename URL parameter from calendar to cal
keep all months in the left nav, not just the current one
hide the calendar on mobile (presumably showing the list in its place)
adding the working toggle

Oh gosh!  Sorry, I didn't notice your request to re-review.  I only saw it was approved and just kept looking past 😓  I thought the url to access the calendar was {host}/events?calendar, and looking at the code, that seems right to me...  did anything change that could impact my being able to access it there?


Could not resolve "./vuepress-theme"

I'm on NodeJS 16.18.1 with the latest master branch of this repo.
I did an npm install then npm run docs:dev but then I got the following error:
npm run docs:dev

> docs:dev
> vuepress dev docs

✘ [ERROR] Could not resolve "./vuepress-theme"

    docs/.vuepress/config.js:2:27:
      2 │ import { emiylTheme } from "./vuepress-theme";
        ╵                            ~~~~~~~~~~~~~~~~~~

Error: Build failed with 1 error:
docs/.vuepress/config.js:2:27: ERROR: Could not resolve "./vuepress-theme"
    at failureErrorWithLog (/home/user/Desktop/dsi.cfw.guide/node_modules/esbuild/lib/main.js:1651:15)
    at /home/user/Desktop/dsi.cfw.guide/node_modules/esbuild/lib/main.js:1059:25
    at runOnEndCallbacks (/home/user/Desktop/dsi.cfw.guide/node_modules/esbuild/lib/main.js:1486:45)
    at buildResponseToResult (/home/user/Desktop/dsi.cfw.guide/node_modules/esbuild/lib/main.js:1057:7)
    at /home/user/Desktop/dsi.cfw.guide/node_modules/esbuild/lib/main.js:1086:16
    at responseCallbacks.<computed> (/home/user/Desktop/dsi.cfw.guide/node_modules/esbuild/lib/main.js:704:9)
    at handleIncomingPacket (/home/user/Desktop/dsi.cfw.guide/node_modules/esbuild/lib/main.js:764:9)
    at Socket.readFromStdout (/home/user/Desktop/dsi.cfw.guide/node_modules/esbuild/lib/main.js:680:7)
    at Socket.emit (node:events:513:28)
    at addChunk (node:internal/streams/readable:315:12)

Any ideas of what might be going wrong?

you must clone the repo recursively

Yep, that was it. Thanks!

@emiyl I just realized, I wonder if it might be worth mentioning in the README that the repo must be cloned recursively?


Reflection with MIOC is broken

mioc.createClassInstance tries to call mr_getClass defined in maestro-roku-bsc-plugin/src/lib/framework/Reflection.brs by importing source/roku_modules/maestro/reflection/Reflection.brs and this does not exist, and it silently fails.
Function is not defined in component's namespace (runtime error &h91) in pkg:/source/roku_modules/maestro/core/MIOC.brs(206)
Backtrace:
#3  Function mioc_createclassinstance(classtype As Dynamic, args As Dynamic) As Dynamic
   file/line: pkg:/source/roku_modules/maestro/core/MIOC.brs(206)
#2  Function mioc_getclassinstance(clazz As Dynamic) As Dynamic
   file/line: pkg:/source/roku_modules/maestro/core/MIOC.brs(192)
#1  Function $anon_362() As Dynamic
   file/line: pkg:/source/main/view/screens/SearchScreen.brs(30)
#0  Function init() As Dynamic
   file/line: pkg:/components/maestro/generated/SearchScreen.brs(13)
[…]
 1*   ...modules/maestro/core/MIOC.brs(206)      clazz = mr_getClass(classType)

Slack adventure
I'm still not sure about this, because I just found out there is a node_modules/maestro/dist/source/roku_modules/maestro/reflection/Reflection.brs and I'm more confused now considering bsc thinks it is already defined. (even though the runtime disagrees)

@ckiee , are you still having issues with this?

closing this issue as it seems irrelevant.


Publish

Hello, I can't seem to find this in cargo. Is this published to crates.io? If not, would it be possible to do so?

Done. Thanks for the poke!


Potential use-after-free issue at src/color.c

src/color.c#L718
Our code scanner has reported a use-after-free issue, I was wondering is there a chance that we could construct a configuration file to meet the following two points:

match = list_find (pair_list, find_pair_in_list, pair) returns NULL (can't find a pair in pair_list) and
list_find (color_list, find_color_in_list, color) returns a valid color (found a valid color in color_list),

so the execution from step 1 to step 2 can be actually happened, step 2 would use the freed color at step 1.
Finally, even we could construct a configuration file to trigger this execution path, I believe the use-after-free problem can only bring misbehavior in multi-threaded environment, though I still would suggest we could reorder the code to avoid it.
could anyone have a look on this?
  if (pair_list == NULL) {
    pair_list = list_create (pair);
  } else if ((match = list_find (pair_list, find_pair_in_list, pair))) {
    free (pair);
    pair = (GColorPair *) match->data;
  } else {
    pair->idx += list_count (pair_list);
    pair_list = list_insert_prepend (pair_list, pair);
  }
  color->pair = pair;

  if (color_list == NULL)
    color_list = list_create (color);
  else if (list_find (color_list, find_color_in_list, color))
    free (color);                                                 // Step 1: freeing color
  else
    color_list = list_insert_prepend (color_list, color);

  if (!match) {
    init_pair (color->pair->idx, color->pair->fg, color->pair->bg);           // Step 2: use color
  }

Regards,
Alex, SourceBrella Inc.

Thanks for the heads up on this. I'm looking into refactoring the code mentioned above.

I've pushed a commit that should address this. Please feel free to build from development to test this out. Otherwise it  will be shipped in the upcoming release. Thanks again!

@allinurl I just have tried to scan the development version, the issue has disappeared.
Thanks for your concern too,  allow me to close this issue.


Disable app when not connect to external monitor

Checklist

[x] I have searched for existing issues

Is your feature request related to a problem? Please describe.
Yes. When no monitors are connected, MonitorControl causes issues with the built-in brightness controls. This problem is described in more detail in #366.
Describe the solution you'd like
A simple solution would be to disable the app when no monitors are connected. This would allow the default system brightness controls to operate, and the app could re-enable itself when I connect to my external monitor. This could potentially be added as an option in the Preferences, but it might also make sense as a default behavior.
Describe alternatives you've considered
Right now I quit the app every time I unplug from my monitor and I restart it when I plug back in. This workflow isn't great.
Additional context
Nope.

Hi, I made a change in the upcoming version - if there are no external displays connected, the app will disengage from listening to brightness/volume keys, handing back control to the OS. Hope this is what you requested!

Nice!! Much appreciated

Awesome! That's exactly what I wanted. Thank you!

@waydabber Just to clarify, does this also include the automatic brightness adjustments? One of the big issues I run into with MonitorControl on my MacBook is it aggressively makes the screen too bright when I'm not connected to an external monitor.

I think MonitorControl should not interfere with automatic brightness adjustments in any way as there is nothing implemented in the code that would do such a thing.

Hi, we have relased the 3.0.0 version. Could you please test if this issue is resolved and report back? Thank you!

Sure thing! I've downloaded the update and I'll report back soon.

This update works perfectly. Thank you!

Amazing, thanks for the feedback!


shift parameter to capture remaining arguments (compatible with sh)

nice work on the tooling, i was faced with building this stuff myself when i stumbled upon it trying to sort out how to configure gitlab + k8s.
so in /bin/sh, which is the shell defined on get-gitlab-settings, the parameter which is being used to gather kubectl_options is actually returning all the parameters after the 2nd character. for example.
/bin # get-gitlab-settings deploy --namespace=spc-prod
+ '[' -z deploy ]
+ DEPLOY_USER=deploy
+ kubectl_options='ploy --namespace=spc-prod'
.. SNIP ..
+ _kubectl get serviceaccount deploy -o 'jsonpath={.secrets[0].name}'
+ kubectl get serviceaccount deploy -o 'jsonpath={.secrets[0].name}' ploy '--namespace=spc-prod'
Error from server (NotFound): serviceaccounts "ploy" not found

https://stackoverflow.com/a/9057699
I've applied a fix which should work in both bash and sh. it works, but i've run into another issue where the openssl dependencies aren't available in the image.

Thanks for providing this fix! Glad to hear this image helped you deploy your projects easier :-)


Add Alexandra Bucur and Cezar Sirbu to maintainers

Signed-off-by: Bogdan Sava<EMAIL_ADDRESS>

Hi Nigel,
Alexandra was successfully added to Egeria Maintainers list.

Hi Nigel,
Alexandra was successfully added to Egeria Maintainers list.

Thanks. can merge now


What are the EMS codes for  'NO2/NO3', 'NO2+NO3'?

I found NO2 + NO3 in the dict-num.xls file available in the EMS metadata record in the BC Data Catalogue. Parameter Code: 0110

Isn't 0110 just = Nitrogen NO3 Total
I can get N02 and N03 separately - I just don't know what both together are or divided by each other

Sorry, that should have been 0109: Nitrogen NO2 + NO3. I am still working on finding NO2/NO3.

There is also Nitrate(NO3) + Nitrite(NO2) Dissolved, which is parameter code 1109

Currently I have
Nitrate Dissolved,EMS_1110,mg/L,mean
Nitrate Soluble,EMS_NO3_,mg/L,mean
Nitrate Total,EMS_0110,mg/L,mean
Nitrate Nitrite,EMS_0109,mg/L,mean
Nitrite Dissolved,EMS_0111,mg/L,mean
Nitrogen Dissolved,EMS_1114,mg/L,mean
Nitrogen Total,EMS_0114,mg/L,mean

I'm thinking I should rename Nitrate Nitrate as Nitrate Nitrite Total and add
Nitrate Nitrite Dissolved,EMS_1109,mg/L,mean

To get the full suite of possible parameters with codes, can you just use rems and pull out all unique combinations of PARAMETER and PARAMETER_CODE?
Why do you need to rename them?

For interpreting the report with parameter recommendations per station: NO2/NO3 == NO2 + NO3

@ateucher I've done that and have included it in wqbc. However the EMS naming scheme is inconsistent. To make the names easier to guess and easier to interpret and process by a computer we introduced a new naming scheme in wqbc. The names do of course link to the EMS codes so are unambiguous in that sense (and can therefore be linked to the EMS PARAMETER names). The real problem is people using names without linking them to EMS codes.

@stephhazlitt After a peruse of the report I concur with your conclusion that NO2/NO3 == NO2 + NO3 (does this mean that NO2 and N03 are both 0.5 ;)). I'm closing the thread as the question has been answered.

Actually I'm reopening as I need to resolve Nitrate Nitrite and
Nitrate Nitrite Dissolved,EMS_1109,mg/L,mean


Popen causes

Popen call without wait() or commuciate() causes <defunct> processes after terminal quit.
BTW: gnome-terminal does not show anyway when configured as terminal.

Opened a pull request. Migrated to subprocess.call() instead of popen

Thanks for the bug report. As @silentmoose noted, we are attempting to address this in #78.


Try to json load mistral task result/input/output

Mistral API stores task result, input, and output as text. Modify the
mistral query module for results tracker to try converting the text to
json.

I will raise this with the mistral team again.  But it's not the first time and they've been exploring options with OpenStack contributors on this issue.  They have not find a solution yet.  I don't intend to sit and wait.

I don't intend to sit and wait.

Fair enough.  Asking questions to improve my understanding.


What is $CATALINA_HOME ?

https://github.com/sebastian-meier/mapfish-print-tsb/blob/94e1475a05f36ddb60ef1d48b845a88e213829c0/Dockerfile#L3

@sebastian-meier what is CATALINA_HOME?

Something tomcat related.


Add support for repr(packed) and repr(align(n))

Add support for repr(packed) and repr(align(n)) rust struct in c, c# and python bindings generators.
This update should not affect existing bindings without the packed or align attribute or alter their behavior.

Sorry, I saw the notification when traveling but then forgot about this.

FYI, I had to revert alignment support, backend generation was pretty broken at least in C# and Python, and I recommend you stop using it. If you (or anyone else) wants to re-introduce it, this would need some extensive unit testing from these backends.


when do you plan to upload your code?

+1

I will be traveling in the next two weeks. But I will upload as soon as I clean up the code.

I will be traveling in the next two weeks. But I will upload as soon as I clean up the code.

Thanks for your reply,very special looking forward to your code!

Hi, it is already April.
May I know when do you have the plan to release the code?

Hi @os-hxfan. Very sory for the delay. We are working cleaning the codes. I will upload it very soon.

Thanks for your interests and apologize for the delay. We just released our code. Please feel free to try it out. @longmalongma @dojunjie @os-hxfan


readme is broken

this is broken

Emailed GitHub support as their directions say: https://github.com/github/markup/blob/master/CONTRIBUTING.md#contributing


feat(hardware): Load pipette model from pipette serial

On the OT-2, we store the literal serial number of a pipette on its EEPROM. When we detect whether it's connected, we read that serial number and parse it out in python.
We could do that here, but we have access to a lot more smarts on the pipette now, so instead let's parse the serial at flash time and store a binary-packed value for the name and model. The datecode part is still stored literally.
Locally, we can parse it pretty easily, and use it as the model for the rest of the system (which we more or less already do - not many changes on the read side).
The write side is very different. Let's add a script for writing pipette serials but actually make it part of the system this time.
Testing

Write and read some serial numbers! You'll need https://github.com/Opentrons/ot3-firmware/pull/437 on the pipette

TODO

[ ] This needs proper integration tests

Closes RET-1168
Closes RET-1167

no, that's the todo


Emmet : CSS !important Lost again.

a {
width :100% !(ctrl+space)
}

Thanks for reporting!
The fix will be out in the next Insiders on Monday


Updated regex to tilehosting.com

Partial revert of #367 because it was replacing {key} glyphs regardless of what source they were from

AppVeyor looks like it's failing to start (no logs)

@orangemug have you tried to Open General tab of project settings and increment build number?

I'm not sure I understand what you mean @loicgasser


prepare 1.6.0 release

Codecov Report

:exclamation: No coverage uploaded for pull request base (1.6@9d089fa). Click here to learn what that means.
The diff coverage is n/a.

@@          Coverage Diff           @@
##             1.6     #466   +/-   ##
======================================
  Coverage       ?   34.05%
======================================
  Files          ?       20
  Lines          ?     1953
  Branches       ?      233
======================================
  Hits           ?      665
  Misses         ?     1238
  Partials       ?       50

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 9d089fa...6d54fcc. Read the comment docs.


Add reentrancy flags to TERM_CourseOff_TDTM

It seems unlikely this would experience reentrancy problems since the Term updating the related Course Offerings won't circle back to update the Term again...but this would be a good safeguard in case a customer would put any Triggers on Course Offerings that update the Term (and kick off unnecessary code cycles)

Included in beta release 1.80 (Beta 1)

Included in production release 1.80


Add Spring Boot Redis Sample Application

Pull Request Template
Description
This pull request introduces a Spring Boot application that demonstrates the use of Redis for storing and managing product data. It includes a RESTful API for creating, reading, and deleting products. This implementation addresses the need for a simple example of integrating Redis with Spring Boot.
Fixes # (if applicable)
Type of change

[ ] 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 not work as expected)
[ ] This change requires a documentation update

How Has This Been Tested?
The application has been tested locally using curl to verify the following endpoints:

Create Product: POST /products
Get Product by ID: GET /products/{id}
Get All Products: GET /products
Delete Product: DELETE /products/{id}

Please ensure that Redis is running locally on the default port (6379) before testing.
Additional Context (Please include any Screenshots/gifs if relevant)
N/A
Checklist:

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[x] I have added tests that prove my fix is effective or that my feature works
[x] New and existing unit tests pass locally with my changes
[ ] Any dependent changes have been merged and published in downstream modules
[ ] I have checked my code and corrected any misspellings
[x] I have tagged the reviewers in a comment below in case my pull request is ready for a review
[x] I have signed the commit message to agree to Developer Certificate of Origin (DCO) by adding "--signoff" to my git commit command.

Umm, can any reviewers review this and lemme know what changes are to be made ?


Two different versions of @mui/x-tree-view being resolved

Duplicates

[X] I have searched the existing issues

Latest version

[X] I have tested the latest version

Steps to reproduce 🕹
Install @mui/lab and @mui/x-tree-view at the same time
Current behavior 😯
Two different versions of @mui/x-tree-view being resolved
One is migrated and placed in package.json, other one from @mui/lab package
Expected behavior 🤔
One version of @mui/x-tree-view
Context 🔦
MUI: The TreeItem component was moved from @mui/lab to @mui/x-tree-view.', 'The component will no longer be exported from @mui/lab in the first release of October 2023.
Already the end of October 2023
Your environment 🌎
No response

https://github.com/mui/mui-x/releases/tag/v6.17.0

The Tree View package is now officially stable!

сс @flaviendelangle Any plans for near releases?


[Formatting bug]: Missing space after Tailwind keywords

Problem
Following the tutorial in this article i have formatted a Blade template which looks roughly like:
<!DOCTYPE html>
<html>
    <head>
        <script src="https://cdn.tailwindcss.com"></script>
        <style type="text/tailwindcss">
            @layer components {
                .btn {
                    @apply rounded-full leading-4;
                    color: white;
                }
            }
        </style>
    </head>
    <body>
        Hello
    </body>
</html>

and the spaces after @layer and @apply were stripped and the file looks as follows post-formatting:
<!DOCTYPE html>
<html>
    <head>
        <script src="https://cdn.tailwindcss.com"></script>
        <style type="text/tailwindcss">
            @layercomponents {
                .btn {
                    @applyrounded-full leading-4;
                    color: white;
                }
            }
        </style>
    </head>
    <body>
        Hello
    </body>
</html>

This completely breaks the Tailwind styling.
Expectation
Expected behaviour would be that those spaces are not stripped.
Software Versions
Laravel: 11
prettier: 3.2.5
prettier-plugin-blade: 2.1.11
prettier-plugin-tailwindcss: 0.5.13

Thanks for the detailed information! This has been corrected, and the fix is available in version 2.1.12


Update to webpack v5

Is there anything major holding this back to be updated to webpack v5?

Not at all. It would be great to update and should not be that difficult. I just did not have the time yet.

This is actually done since version 0.3.x!


read server certificate B: certificate verify failed

@metadave is having an issue where the following breaks on a fresh ChefDK install:
require 'net/http'
Net::HTTP.get(URI('https://www.chef.io/chef/install.sh'))

This is the same issue reported in https://github.com/chef/chef-provisioning/issues/343.  It also looks similar to https://github.com/rubygems/rubygems/issues/1050 but that fix was packaged in Rubygems 2.4.4, the version we're already including in the latest ChefDK (0.6.0).
Running gem update --system causes a different error but then gem update --system 2.4.4 seems to resolve everything.  Fetching https://www.chef.io/chef/install.sh no longer fails.
I'm not seeing the same thing on my machine with a fresh ChefDK install.  I used the instructions at https://rvm.io/support/fixing-broken-ssl-certificates to fix when I was having similar issues.

running an OSX Yosemite update via App Store resolved this issue.


"Cluster agent is not ready error" with newly provisioned nodes, and error never goes away, cluster never starts

What kind of request is this (question/bug/enhancement/feature request):
Bug: Clusters Never Start, CoreDNS can't resolve cluster hostname, so healthchecks fail. Rancher is working properly, nodes working properly, but for whaterver reason CoreDNS is a fail on lookups.
Note:  After seeing this issue surface here in a few different configurations, and frankly never getting resolution, I'm starting a new ticket as this blocks me from creating BareMetal clusters on CentOS 7.8.
Thanks in advance for looking into this! This probably has a simple resolution (dnsPolicy???) but I wasn't able to figure it out after a few days of trying.
Steps to reproduce (least amount of steps as possible):
Rancher installed on a node, v2.5.2, then I create a new cluster, (tried multiple CNI configs), three brand-new never used VSphere VM's on CentOS 7.8 with SELinux enabled. All hosts have both A and CNAMES, and the CNAMES resolve for our FQDN which has a valid certificate.
Result:
"Cluster health check failed: cluster agent is not ready"
/etc/resolve.conf has our local DNS
/etc/docker/daemon.js has our local DNS
dig returns all records properly on host nodes
the rancher cluster resolves properly using kubectl:
kubectl run -it --rm --restart=Never busybox --image=busybox:1.28 -- nslookup our.fqdn.com
Clusters never get past the health check, and can't resolve the primary rancher domain url.
Other details that may be helpful:
I tried to modify the CoreDNS config in the cluster YAML:
dns:
    upstreamnameservers:
      - dns1ip
      - dns2ip

I can perhaps try some additional things, but as the cluster never starts, I can't use kubectl to play around with it.
Environment information

Rancher version (rancher/rancher/rancher/server image tag or shown bottom left in the UI):
2.5.2
Installation option (single install/HA):
Single install

Cluster information

Cluster type (Hosted/Infrastructure Provider/Custom/Imported):
BareMetal VSphere VMs on CentOS 7.8 with SELinux
Machine type (cloud/VM/metal) and specifications (CPU/memory):
4 CPU 16 GIG RAM 4 nodes (Rancher + 3 Cluster)
Kubernetes version (use kubectl version):

Client Version: version.Info{Major:"1", Minor:"18", GitVersion:"v1.18.2", GitCommit:"52c56ce7a8272c798dbc29846288d7cd9fbae032", GitTreeState:"clean", BuildDate:"2020-04-16T11:56:40Z", GoVersion:"go1.13.9", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"18", GitVersion:"v1.18.8+k3s1", GitCommit:"6b595318666804506c19cfc3d3d228423d38fab1", GitTreeState:"clean", BuildDate:"2020-08-14T20:42:29Z", GoVersion:"go1.13.15", Compiler:"gc", Platform:"linux/amd64"}

Docker version (use docker version):

Client: Docker Engine - Community
 Version:           19.03.13
 API version:       1.40
 Go version:        go1.13.15
 Git commit:        4484c46d9d
 Built:             Wed Sep 16 17:03:45 2020
 OS/Arch:           linux/amd64
 Experimental:      false

Server: Docker Engine - Community
 Engine:
  Version:          19.03.13
  API version:      1.40 (minimum version 1.12)
  Go version:       go1.13.15
  Git commit:       4484c46d9d
  Built:            Wed Sep 16 17:02:21 2020
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.3.7
  GitCommit:        8fba4e9a7d01810a393d5d25a3621dc101981175
 runc:
  Version:          1.0.0-rc10
  GitCommit:        dc9208a3303feef5b3839f4323d9beb36df0a9dd
 docker-init:
  Version:          0.18.0
  GitCommit:        fec3683

Please supply how many nodes with what roles you are adding. Also please supply the same info as requested in https://github.com/rancher/rancher/issues/29715

Yes, I hope I'm covering what you need with the following, let me know if this isn't the case:
###Background

We have an internal DNS, it's running our entire infrastructure, so I'm sure it's working. (500+ Employees use it for 6+ years)
We have a FQDN, and a Cert, so I don't think it's our DNS/Host setup, and the Rancher UI works great.
All nodes are "wiped" before installation, and we remove the following directories (if they exist, which they won't)
/var/lib/etcd /etc/kubernetes /etc/cni /opt/cni /var/lib/cni /var/run/calico /opt/rke /var/lib/docker /var/lib/rancher

I can resolve in the Rancher local node, but not in the cluster containers, despite all of the cluster nodes resolving properly.
###Node Configs
Can you explain the use-case that you have for just provisioning etcd + controlplane?
Are you not running workers at all? Can you confirm it works when you add a worker?
I've tried a number of configs:

One etc/cp/worker
Three etc/cp/worker
One etc/cp and one worker
Three etc/cp and three workers

In all cases where workers are separate, I provision the etc/cp nodes first, then add worker nodes.
Thank you! Happy to provide any additional details, or do any debugging that might seem to help.

Please supply the outputs of the requested commands:

https://github.com/rancher/rancher/issues/29715#issuecomment-716640246
https://github.com/rancher/rancher/issues/29715#issuecomment-717141811

Here's the control plane docker list:
controlplane.txt
And likewise the worker docker list:
worker.txt
It's 100% DNS resolution, here's the error:
INFO: Environment: CATTLE_ADDRESS=<IP_ADDRESS> CATTLE_CA_CHECKSUM=863d7afb904d2aed3b00577e256dc63a2c0d46f5d55ca7e5c08f892582e6ca08 CATTLE_CLUSTER=true CATTLE_FEATURES= CATTLE_INTERNAL_ADDRESS= CATTLE_IS_RKE=true CATTLE_K8S_MANAGED=true CATTLE_NODE_NAME=cattle-cluster-agent-669dc8f987-njjhn CATTLE_SERVER=https://rancher-k8s.mydomain.org
INFO: Using resolv.conf: nameserver <IP_ADDRESS> search cattle-system.svc.cluster.local svc.cluster.local cluster.local mydomain.org options ndots:5
ERROR: https://rancher-k8s.mydomain.org/ping is not accessible (Could not resolve host: rancher-k8s.mydomain.org)

I can't do manual DNS resolution, as the cluster agent keeps dying and restarting, I can't exec in to use dig:
224a4cdc7c36        444dfdf0ae3c                           "run.sh"                 About a minute ago   Exited (1) About a minute ago                       k8s_cluster-register_cattle-cluster-agent-669dc8f987-njjhn_cattle-system_d415545d-c8fc-4d48-b779-76899036bf71_7

The hosts themselves resolve just fine:
;; ANSWER SECTION:
rancher-k8s.mydomain.org. 604800 IN    CNAME   rancher.k8s.mydomain.org.
rancher.k8s.mydomain.org. 604800 IN    A       <IP_ADDRESS>

Our error from CoreDNS is this:
E1129 15:49:12.363010       1 reflector.go:178] pkg/mod/k8s.io/client-go@v0.18.3/tools/cache/reflector.go:125: Failed to list *v1.Service: Get "https://<IP_ADDRESS>:443/api/v1/services?limit=500&resourceVersion=0": dial tcp <IP_ADDRESS>:443: connect: no route to host

Again, this works with the prior version of Rancher, (even an upgrade), this only happens when I deploy a new 2.5.2 cluster. So our sad CoreDNS seems to be the culprit, and not sure why we're blocked on that endpoint. All host nodes have 443 open.
Sorry this took so long to do, had to create new VM's, deploy a fresh 2.5.2 cluster.  Thanks for looking into it!

Running k8s 1.19 is recommended to disable firewalld, can you confirm this is disabled? 1.19 is also only available in 2.5.x, I guess we can also confirm its not 2.5.x related if you can successfully provision a 1.18 cluster in 2.5.x.

@superseb Yes I foolishly thought that since firewalld worked with 1.18 we'd be ok, apologies. For anyone following, I used this Docker article to configure iptables (note there's a typo in the systemd service path):
https://docs.docker.com/network/iptables/
But running the following command we're still getting errors:

INFO: Environment: CATTLE_ADDRESS=<IP_ADDRESS> CATTLE_CA_CHECKSUM=863d7afb904d2aed3b00577e256dc63a2c0d46f5d55ca7e5c08f892582e6ca08 CATTLE_CLUSTER=true CATTLE_FEATURES= CATTLE_INTERNAL_ADDRESS= CATTLE_IS_RKE=true CATTLE_K8S_MANAGED=true CATTLE_NODE_NAME=cattle-cluster-agent-58547fbdbc-lk7c2 CATTLE_SERVER=https://rancher.somedomain.org
INFO: Using resolv.conf: nameserver <IP_ADDRESS> search cattle-system.svc.cluster.local svc.cluster.local cluster.local somedomain.org options ndots:5
ERROR: https://rancher.somedomain.org/ping is not accessible (Could not resolve host: rancher.somedomain.org)```

We can dig the rancher node from the VM just fine:

$ dig rancher.somedomain.org
;; ANSWER SECTION:
rancher.somedomain.org. 604800 IN    CNAME   rancher.somedomain.org.
rancher.root.somedomain.org. 604800 IN    A       <IP_ADDRESS>

I would note some mTLA issue is happening with our very awesome and not strange DigiCert, which works in the Rancher UI, and is in use in a number of public settings, but from the master node:

```wget https://rancher.somedomain.org/ping
--2020-12-04 18:20:53--  https://rancher.somedomain.org/ping
Resolving rancher.somedomain.org (rancher.somedomain.org)... <IP_ADDRESS>
Connecting to rancher.somedomain.org (rancher.somedomain.org)|<IP_ADDRESS>|:443... connected.
ERROR: cannot verify rancher.somedomain.org's certificate, issued by ‘/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=Thawte RSA CA 2018’:
  Unable to locally verify the issuer's authority.
To connect to rancher.somedomain.org insecurely, use `--no-check-certificate'.

So in the interest of getting on with it, I'll just deploy using 1.18 and then upgrade, which seems to work fine, even using firewalld.

The error is the same, I would still need the outputs of the commands listed above to help. Certificate is not an issue (yet) if it can't resolve where to go.

Hey! I had some additional iptables related issues, so on a lark ran iptables -F and now it's working :+1:
I'm gonna blame firewalld and call this one closed. For posterity, anyone using CentOS 7.x.x, here's exactly what I did, might be a bit of psuedo-code in here so use at your own risk:
echo "*filter
:INPUT ACCEPT [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
:FILTERS - [0:0]
:DOCKER-USER - [0:0]

-F INPUT
-F DOCKER-USER
-F FILTERS

-A INPUT -i lo -j ACCEPT
-A INPUT -p icmp --icmp-type any -j ACCEPT
-A INPUT -j FILTERS

-A DOCKER-USER -i ens33 -j FILTERS

-A FILTERS -m state --state ESTABLISHED,RELATED -j ACCEPT
-A FILTERS -m state --state NEW -s <IP_ADDRESS>/32 -j ACCEPT
-A FILTERS -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A FILTERS -m state --state NEW -m tcp -p tcp --dport 23 -j ACCEPT
-A FILTERS -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
-A FILTERS -m state --state NEW -m udp -p udp --dport 500 -j ACCEPT
-A FILTERS -m state --state NEW -m udp -p udp --dport 4500 -j ACCEPT
-A FILTERS -m state --state NEW -m tcp -p tcp --dport 4505:4506 -j ACCEPT
-A FILTERS -m state --state NEW -m tcp -p tcp --dport 5666 -j ACCEPT
-A FILTERS -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A FILTERS -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT
-A FILTERS -m state --state NEW -m tcp -p tcp --dport 2376 -j ACCEPT
-A FILTERS -m state --state NEW -m tcp -p tcp --dport 2379 -j ACCEPT
-A FILTERS -m state --state NEW -m tcp -p tcp --dport 2380 -j ACCEPT
-A FILTERS -m state --state NEW -m tcp -p tcp --dport 6443 -j ACCEPT
-A FILTERS -m state --state NEW -m udp -p udp --dport 8472 -j ACCEPT
-A FILTERS -m state --state NEW -m udp -p udp --dport 10254 -j ACCEPT
-A FILTERS -m state --state NEW -m tcp -p tcp --dport 9099 -j ACCEPT
-A FILTERS -m state --state NEW -m tcp -p tcp --dport 10250 -j ACCEPT
-A FILTERS -m state --state NEW -m tcp -p tcp --dport 10254 -j ACCEPT
-A FILTERS -m state --state NEW -m tcp -p tcp --dport 30000:32767 -j ACCEPT
-A FILTERS -m state --state NEW -m udp -p udp --dport 30000:32767 -j ACCEPT
-A FILTERS -j REJECT --reject-with icmp-host-prohibited

COMMIT" > /etc/iptables.conf

iptables-restore -n /etc/iptables.conf

echo "[Unit]
Description=Restore iptables firewall rules
Before=network-pre.target

[Service]
Type=oneshot
ExecStart=/sbin/iptables-restore -n /etc/iptables.conf

[Install]
WantedBy=multi-user.target" > /etc/systemd/system/iptables.service

systemctl disable firewalld
systemctl stop firewalld

systemctl enable iptables
systemctl start iptables
iptables -F

systemctl stop docker

rm -rf /var/lib/docker/*
rm -rf /var/lib/rancher/*
cleanupdirs="/var/lib/etcd /etc/kubernetes /etc/cni /opt/cni /var/lib/cni /var/run/calico /opt/rke"
for dir in $cleanupdirs; do
  echo "Removing $dir"
  rm -rf $dir
done

systemctl start docker

I then registered etc/cp nodes, and separate worker nodes, after about five minutes we were all set.
Seb, you have the patience of a wizard and thank you!!


Build fails with Typescript 2.0

I'm submitting a ...
[X] bug report
[ ] feature request
[ ] question about the decisions made in the repository

Do you want to request a feature or report a bug?
This is a bug generated by webpack when typescript version is upgraded to 2.0.0.  Assuming that all future versions of typescript will have the same behaviour.

What is the current behavior?
On application build with webpack this is the error outputted :

ERROR in ./~/ng2-toasty/ng2-toasty.ts
Module build failed: Error: Typescript emitted no output for /Users/jp/workspace/admin_angular2/node_modules/ng2-toasty/ng2-toasty.ts
    at Object.loader (/Users/jp/workspace/admin_angular2/node_modules/ts-loader/index.js:456:15)

Please tell us about your environment:

Angular version: 2.0.0-rc.4
Webpack 1.13.1
ts-loader 0.8.2
ng2-toasty: 1.8.0

Hi @jppellerin
Is that issue still exists?

@jppellerin
It exists for me
ERROR in ./~/ng2-toasty/ng2-toasty.ts
Module build failed: Error: Typescript emitted no output for /Users/costisp/projects/domains/node_modules/ng2-toasty/ng2-toasty.ts
    at Object.loader (/Users/costisp/projects/domains/node_modules/ts-loader/index.js:456:15)
 @ ./app/main.ts 6:19-51

tsc --version
Version 2.0.0

I get the same thing as @costis.
Also does not play well with Codelyzer (but that's a Codelyzer issue).  I had to deactivate to get the proper ng2-toasty error message.

ERROR in /redacted/ui/src/tsconfig.json
error TS6059: File '/redacted/ui/node_modules/ng2-toasty/ng2-toasty.ts' is not under 'rootDir' '/redacted/ui/src'. 'rootDir' is expected to contain all source files.

ERROR in /redacted/ui/src/tsconfig.json
error TS6059: File '/redacted/ui/node_modules/ng2-toasty/src/toasty.component.ts' is not under 'rootDir' '/redacted/ui/src'. 'rootDir' is expected to contain all source files.

ERROR in /redacted/ui/src/tsconfig.json
error TS6059: File '/redacted/ui/node_modules/ng2-toasty/src/toasty.config.ts' is not under 'rootDir' '/redacted/ui/src'. 'rootDir' is expected to contain all source files.

ERROR in /redacted/ui/src/tsconfig.json
error TS6059: File '/redacted/ui/node_modules/ng2-toasty/src/toasty.container.ts' is not under 'rootDir' '/redacted/ui/src'. 'rootDir' is expected to contain all source files.

ERROR in /redacted/ui/src/tsconfig.json
error TS6059: File '/redacted/ui/node_modules/ng2-toasty/src/toasty.service.ts' is not under 'rootDir' '/redacted/ui/src'. 'rootDir' is expected to contain all source files.

ERROR in /redacted/ui/src/tsconfig.json
error TS6059: File '/redacted/ui/node_modules/ng2-toasty/src/toasty.utils.ts' is not under 'rootDir' '/redacted/ui/src'. 'rootDir' is expected to contain all source files.

Not sure if this is related to @jppellerin and @costis problem, but this is known problem of typescript described better here - basically having d.ts files in same directory as .ts files causes typescript to get confused and crash. I'm using Typescript 1.9.0.

I made changes in another library (https://github.com/akserg/ng2-slim-loading-bar), so now it's time to update this. one. I will let you know when you can test it.

Please use 2.0.0 release to confirm that issue is gone.

Finally circling back to this.  Confirmed working.


Revert "Only fail downstream deploy if action required"

https://trello.com/b/kmruvfMm/govuk-developer-tools
Reverts alphagov/govuk-puppet#10588
Unfortunately Jenkins continues executing later job stages
when an earlier stage returns an exit status of "0", so this is
not a valid strategy for gracefully aborting a job. We need to
rethink how we can maintain the integrity checks of the CD
pipeline, while also only alerting if action is required.

You could consider using the unstable status as a means to have alerts on failures and not on purposeful aborts. We use an approach for this on deploy jobs:
https://github.com/alphagov/govuk-puppet/blob/6c1c9cab61645ebacacf2725d52c62a50143856b/modules/govuk_jenkins/templates/jobs/deploy_app.yaml.erb#L75-L78
These do end up confusing people but do offer a middle ground between failure and success states.

Ah that's interesting. Thanks for pointing it out. Unfortunately, I don't think we can use it, because the "shell" builders we have echo all the commands they run, which would trip the finder.
Happily, when checking to see if we could turn of the builder echoing commands, I found something that looks like it does what we want directly: https://github.com/alphagov/govuk-puppet/pull/10601


Training Time

Thanks for your wonderful work!
I use a 40G A100 to train ScanNet with a batch size of 8, but the training time is about 2 days. Is this right?
Besides, when I increase the batch size to 16 (the learning rate is also doubled), I only get 41.9 (46.0 in paper) mIoU on ScanNet. Have you tried with the batch size of 16?

Hi @star9988rr,

Thanks for your wonderful work! I use a 40G A100 to train ScanNet with a batch size of 8, but the training time is about 2 days. Is this right?

I believe that is correct if you try to train for 100 epochs. However, we noticed that after 50-60 epochs one can already obtain the best performance.

Besides, when I increase the batch size to 16 (the learning rate is also doubled), I only get 41.9 (46.0 in paper) mIoU on ScanNet. Have you tried with the batch size of 16?

I have not tried that, but probably you should not double your learning rate. You can try again with a batch size of 16 with the same learning rate.


Allow to disable backrest container

Q
A

Bug fix?
[]

New feature?
[x]

API breaks?
[]

Deprecations?
[]

Related tickets
fixes #X, partially #Y, mentioned in #Z

License
Apache 2.0

What's in this PR?
Add enabled field for BackRestSidecar spec.
By default enabled is true (original behaviour).
Setting to false will drop back-rest container deployment.
Why?
If out of box backup/restore tool is used - deploy of back-rest container is not necessary.
Checklist

[x] Implementation tested
[ ] Logging code meets the guideline
[ ] User guide and development docs updated (if needed)
[ ] Append changelog

@cscetbon Could you take a look?


fix off-by-one error

buf.length = 65536, len = 65535, n = 65535, beg = 0
buf[65535 + 1] = '\0' -> RangeError
buf[65535] = '\0' -> correct

Auto-merge toggled on

So is it a memry-corruption bug in C which turned into RangeError in D and has no corresponding issue filled?

The most classic of C bugs.

I mean this bug does deserve an issue number.

Why, just so we can brag about D catching it?

Fixed issues have to be listed.
This time e.g. for one to be able to see them and fix by hands in C++ version if he needs.


Improve tag counting

I found two (minor) issues with counting tags:

Duplicates could be used to skew the tag count. For example, a page with a duplicate tag would be counted twice for that tag.
The list of all tags can be configured for the plugin, but tag counting did not consider this configuration option.

@blochberger (I don't use this package myself, but) your fixes look good to me.  Thank you.
I think I've just fixed all the bitrot in the master branch that was causing the test failures here.  Please try rebasing your work onto the current master to see if that gets the tests to pass.

Please try rebasing your work onto the current master to see if that gets the tests to pass.

Did that and at least the tests passed locally. I saw test failures before, but just ran the tagweights tests, which worked fine.

@blochberger Looks good.  Thank you!

Released just now in lektor-tags==0.5.1.


New Salt&Hash algorithm for passwords

The new algorithm is PBKDF2 with HMAC-SHA256, 128-bit salt, 256-bit subkey, 10000 iterations.
The reason this PR is so big, is that I refactored the password generation / validation code to separate classes (CredentialBuilder, CredentialValidator).
@maartenba , @xavierdecoster , @scottbommarito @ryuyu @shishirx34 @qianjun22 @blowdart

I think we could make the relationship between the credential building and the credential verification clearer if we changed the structure around a bit. The current implementation is fine, but I think it would be really nice if we could couple the building of a type of credential with its decoding.
We could do this by making ICredentialBuilder have a single method: buildCredential().
Then, for each credential type, we could make a class that implements both ICredentialBuilder and ICredentialValidator. Thus, we would have classes that would very easily show the relationship between building and validating a credential.
V3Hasher is a class that is set up in a way very similar to this, and it is very easy to see the relationship between encoding and decoding; however, none of the other credentials are set up in such a way, and we have to dig through the implementation to find out the different ways that they are built and validated. For example, look how the creation of a Pbkdf2 password is here, and the validation of a Pbkdf2 password is here.
Finally, then we could make a factory class, similar the current implementation of CredentialValidator, that gives the ICredentialBuilder and ICredentialValidator for a given credential type.
Any thoughts?

Currently all credential types are stored in a single class: Credential. This class is also an Entity stored in the DB.  What you suggest, with ICredentialBuilder and ICredentialValidator can be achieved by introducing a credential class hierarchy. IMO, it's a bit complex for the ways we use credentials.
Regarding the implementation in the PR: what I tried to achieve is that only one class will know how to create credentials (always the latest version of an algorithm), and this is CredentialBuilder, and only one class will know how to parse credentials - CredentailValidator.
The specific algorithm implementations are also separated - LegacyHasher and V3Hasher, and those contain both hashing and validation logic, like you suggested.
The link to creation of Pbkdf2 password you added links to test code. There is no src code to create old credentials (since we never need to :smile:).
Regarding using a factory, this pattern is not needed here. Factory is used when the creation logic of a class is not trivial (determined by configuration, etc).

Can we add one more test? Ideally we want to ensure that validating an existing user vs. validating a non-existing user invokes the hash validation and takes a similar amount of time.
Reason is "enumeration". You don't want someone trying out usernames and passwords, and then looking at response times to verify if the username exists or not.

Created the test, and configured it not to run in CI. Results look great

In reply to: 242000277 [](ancestors = 242000277)

:shipit:

Looks good.


Brand property "dark-page" was added in types

The “QuasarFrameworkInnerConfiguration” interface doesn't specify the “dark-page” property in the “brand” object. The property is specified in the official documentation and defines background color of pages:

Missing of this property leads to typescript's error in a code editor:

I've added this property to src/types.ts and set it in the playground.

Thanks!


IViewResolver.GetView(): support for anonymous intializers

Introduce a convention to allow anonymous initializers on ViewModel(s) when retrieving the View:
GetView(new { CompanyId = xxx, CreationDate = yyy } )
viewModel.Initialize(String companyId=null, String creationDate = "Today");
--

It should work as MVC Model Binding works for actions on controllers

It is not as easy as it seems in the first place, I woud say:

GetView will have an overload that accepts an interview object as initialization parameter
if there is no initialize method on the ViewModel -> throw
if the initialize method has one single parameter and there is a valid convertion between the incoming object and the initialize single argument type, convert and pass as is
last, if the incoming object has the same number of properties as the number of arguments of the initialize method match properties to arguments by name, case sensitive, and type conversion, pass each property as the correct argument
if arguments on the initialize method have default values they are allowed to not match any incoming property

Comments?

This issue was moved to RadicalFx/Radical.Windows.Presentation#5


add bounded_randn func.

Many issues with this PR, starting with "bounded_randn" isn't a real API call in any other framework.


Send Gifts

Looks like the library don't have the option to send gifts, but if i want implement this feature, how i could do that ? where i should look to find the endpoints and payloads ?

Library does not and will not supported authenticated endpoints.


Update manage-resource-accounts.md

Added example to dissociate direct routing number at lines 193-197

@nenonix @JohanFreelancer9 Copy editing is needed for this PR. Thanks.

@jambirk PR has been copyedited and is ready for final review, could you please check and merge? Thanks!


NPM: Remove recently introduced cyclic dependency

Don't make a case distinctions based the own class
type in order to keep things simple.
Signed-off-by: Frank Viernau<EMAIL_ADDRESS>

This change is

That is, we could use the check this::class.java == NPM::class.java, which is indeed better than the current approach.


Fix to render images inline

After this pull request is merged, I will submit a test tag to deploy the docs.

Issue is now resolved:


Python 3.13

This is also waiting for the libraries to move to Python 3.13. Then we can remove the 3.8.
This is expected to fail until 3.13 is fully out and the asyncpg and so on update.

we have to wait until the deps moved on (e.g. greenlets of sqlalchemy fail)

Yes and some other ones as well

python 3.13 is out. There were some arbitary changes from wherever, I resetted the PR to a clean state which hopefully succeeds.


Broken link need to fix

This is a Bug Report
Problem:
visit this page pull-requests
when we click on this Kubernetes Enhancement Proposal process it returns 404 not found page,so this needs to be fix.
Proposed Solution:
correct link of md file require to provide.
Page to Update:
https://www.kubernetes.dev/docs/guide/pull-requests/
/language en
/assign

Hey @amolmote Can I work on this issue, If you are not already.


Use a less generic user-defined literal

Due to issues with using user-defined literals without exposing the whole namespace and interfaces generally being defined in a header, it's pretty much required to release dyno::literals into your own namespace. The problem here is that _s is far too generic, could the user-defined literal be _dyno?

I acknowledge that this problem is a pain. You can also use DYNO_STRING(foo) instead of "foo"_s. Does that solve your problem, or are you set on using the UDLs but just want a less generic one?

I'd definitely prefer the UDL over the macro. The macro feels like a significant step backwards (especially considering how cutting edge this library is).
Seeing as the macro actually has similar namespacing issues (worse, of course, due to the global namespace pollution not being opt-in) which are solved with a C-style DYNO_ prefix, I think it would make sense for the UDL's to follow the same approach, at least until the language is fixed in this respect.

Would you suggest the dyno::literals namespace be dropped in that case?
I've made the change of _s to _dyno on a branch locally and it's a trivial change for me to make. The only thing keeping me from pushing it is that it's uglier to write "some_method"_dyno than "some_method"_s.


2V>>Scalar representation is all zero?

import jax
import jax.numpy as jnp
from emlp.reps import V,Scalar
from emlp.groups import SO
import numpy as np
W =V(SO(3))
rep = 2*W
P = (rep>>Scalar).equivariant_projector()
applyP = lambda v: P@v
P.to_dense()
DeviceArray([[0., 0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0., 0.]], dtype=float32)
I am running a toy example, two vector as input, a scalar as output
if I rotate the vector, the output scalar should not change.
But I get P matrix is all zero!

Hi  @topoliu,
This is as expected since there are no rotation equivariant linear maps directly from a vector (or a pair of them) to a scalar. You can think of maps from vectors to scalars as mere vectors, and there are no rotation invariant vectors in 3D (except for the 0 vector).
However don't despair, there are many nonlinear equivariant maps and EMLP will find them by mapping to feature tensors of higher order as well and equivariant nonlinearities.
For example let's say our target function is f: 2V->Scalar,   f(u,v) = u^Tv-||v||^3, EMLP can fit this function without trouble.
import emlp
from emlp.reps import V,T,Scalar
from emlp.groups import SO
import objax

W = V(SO(3))
repin = 2*W
repout = Scalar

model = emlp.nn.EMLP(repin,repout,SO(3))

import numpy as np
import jax.numpy as jnp
from jax import device_put

u,v = np.random.randn(2,100,3)
X = np.concatenate([u,v],-1)
Y = ((u*v).sum(-1) - jnp.linalg.norm(v,axis=1)**3)[:,None]
Y /= Y.std()
Y = device_put(Y)
X = device_put(X)

opt = objax.optimizer.Adam(model.vars())

@objax.Jit
@objax.Function.with_vars(model.vars()+opt.vars())
def loss(x, y):
    yhat = model(x)
    return ((yhat-y)**2).mean()

grad_and_val = objax.GradValues(loss, model.vars())

@objax.Jit
@objax.Function.with_vars(model.vars()+opt.vars())
def train_op(x, y, lr):
    g, v = grad_and_val(x, y)
    opt(lr=lr, grads=g)
    return v

import matplotlib.pyplot as plt
losses = [train_op(X,Y,3e-3) for _ in range(200)]
plt.plot(losses)
plt.yscale('log')
plt.ylabel("MSE")

Hi @topoliu,
As you mention, angles and distance between two vectors are invariants under SO(3). EMLP can fit these functions just fine, to see for yourself just rerun the above example with the targets Y = jnp.linalg.norm(u-v) or Y = (u*v).sum(-1)/np.sqrt((u*u).sum(-1)*(v*v).sum(-1)).
Again, (nV>>Scalar) is zero, but EMLP(nV,Scalar) is not, since it heavily leverages the bilinear layer to compute inner products (which for O(3) and scalar outputs is essentially all you need, see Scalars are universal: Gauge-equivariant machine
learning, structured like classical physics). You can form these maps with EMLP, although if you also want permutation equivariance between the vectors then E(n)-GNN is the practical way to go (even if it can be replicated with some effort via EMLP).
I hope this clears up the confusion. The key point is that there is a difference between the equivariant linear maps (found with (nV>>Scalar).equivariant_basis()) and the nonlinear equivariant MLPs that you get with EMLP(nV,Scalar,SO(3)) even though EMLP makes use of the linear maps within its layers.


new_nuttx_px_config.sh fixup.

Forgot to add cmake/configs/uavcan_board_ident/NAME.cmake
Cannot git mv when file name didn't change.
Also note that when you use px4cannode-v1 as prototype,
nuttx-configs/px4cannode-v1/nsh/defconfig.nonsh
and nuttx-configs/px4cannode-v1/nsh/defconfig.nsh
are copied, but not editted (these files only exist in px4cannode-v1).

Reopen

Guess I can't reopen it. Leave it closed, I'll do another PR.


FAQ: don't link to @aturon's style guides

https://www.rust-lang.org/en-US/faq.html#design-patterns
https://aturon.github.io/ownership/builders.html should link to https://doc.rust-lang.org/stable/book/first-edition/method-syntax.html#builder-pattern instead

Duplicate of #871
(this is a test sorry)

(sorry about the timeline note i was using this to demo to github that the mark duplicate feature has some issues)

Since  #1022 was merged , I believe this can be closed, no?
ping @steveklabnik ?

Yup!


Interpret negative allocation sampling rate as request for deterministic sampling

What does this PR do?
A brief description of the change being made with this pull request.
Motivation
What inspired you to submit this pull request?  In order to motivate your point, it may be valuable to explain why this change is useful or what problem is being solved.
Additional Notes
This is the section to put technical guidance/constraints, call out potential regressions, cite sources, and in general offer some exposition on the how of the PR.  This section doesn't need to be incredibly detailed, but it makes life easier for reviewers!
How to test the change?
Describe here in detail how the change can be validated.  This is a great section to call out specific tests you've added or improved, or to acknowledge code sections which are particularly difficult to test.

Current dependencies on/for this PR:

main

PR #141

PR #142

PR #143

PR #144

PR #145

PR #146

PR #147

PR #148   👈


New RemoteBlendTransform2D Node.

Same as existing RemoteTransform2D except:

It has a blend factor that can be animated to blend the transform between the original remote object transform (recorded at Assign time) and the current RemoteBlendTransform2D node transform, which can also be animated.
Remote node is immediately affected once assigned, you don't have to move the RemoteBlendTransform2D in order for the remote node to catch RemoteBlendTransform2D transform.
When remote node is cleared from RemoteBlendTransform2D "Remote Path" property, or when the RemoteBlendTransform2D is deleted, the original remote node transform is restored.
If you want the blend be done with another remote transform, you just have to Clear it from RemoteBlendTransform2D "Remote Path" property, move/rotate/scale it, then re-"Assign" it to the RemoteBlendTransform2D node.

I'm not familiar with RemoteTransform2D myself, but due to the lack of activity on this feature proposal after 1.5 years, I wonder if that would really be a useful addition? Also I'm not sure about adding it as a module, if there's a real need to add a new node type to the engine, it should be added to the core directly. Otherwise it could stay outside the engine in another repo, and be linked as a possible additional module for whoever needs it.

Closing as old, and for the reasons mentioned above.


Correction for raw affiliation Laboratory of Environmental Biotechnology , CICATA-QRO-IPN

Correction needed for raw affiliation Laboratory of Environmental Biotechnology , CICATA-QRO-IPN
raw_affiliation_name: Laboratory of Environmental Biotechnology , CICATA-QRO-IPN
new_rors:
previous_rors: 022m8c549
works_examples: W4310375973
contact: 74aeabadc4258c3028fcecc0edfe0fa1:c705e786215edf39eb28180fbbd0ff3d4b17 @ inrae.fr

This issue was accepted and ingested by the OpenAlex team on 2024-10-10. The new affiliations should be visible within the next 7 days.


Change directories to the project root in each script

@maddox This isn't foolproof, but a lot of code assumes things are executed from the project root.

Should it be at the end of each script instead, to clean things up after each execution?
Or, at least, after the execution of the other script calls (at the top), to ensure they didn't leave us in another directory. (the first option would always ensure this though.)

@maddox Subscripts execute in subprocesses, so they won't change the parent process's working directory.

@maddox CLA was smooth :zap:

Subscripts execute in subprocesses, so they won't change the parent process's working directory.

lol :blush:

:bow: @maddox I'll push you up another PR with some extra quote safety for the cd.


Update 3_extract_audio_features.ipynb

According to the librosa change log for .7.0 >> (Root mean square error (rmse) has been renamed to rms)

Hi @KahLiang,
Thanks for the PR! Could you also update the README to reflect on this librosa change? Also, if you could confirm that you have a valid output after this change, that'd be great.
Thanks,
Gaurav.

Yes, it can run smoothly and generate the "audio_features.csv" after changing it.  I test the code with the latest version of the IEMOCAP dataset.

Hi @KahLiang,
I meant updating the Requirements section, which currently says librosa==0.6.3 to librosa==0.7.0. You don't need to make any changes to the instructions. Also, it'd be great if you could do the change in this PR and close #29.
Thanks a bunch!
Gaurav.

Hi @Demfier,
I updated the Requirements section and closed PR #29. Thank you.


runtime/cgo: do not change directory during runtime/cgo init

In CL 8784, runtime/cgo on ios was given special-case code to change the current working directory to the app root.
That high-level behavior seems awfully presumptuous and out-of-place in a low-level package like runtime/cgo, and it causes runtime/cgo to depend on the CoreFoundation framework on ios when it does not need that framework on other darwin platforms.
If the init_working_dir behavior belongs in the standard library at all, arguably an init function in the os package would be much more appropriate than an ad-hoc side effect in runtime/cgo.
(attn @golang/ios; CC @golang/runtime)

Concretely, this special case complicates things like misc/cgo/testcarchive, which then needs its own special-case code to deal with the inappropriate dependency.
Moreover, it causes a Go library linked into a larger ios program to change the current working directory, which is not at all an appropriate library behavior!


Bug: unable to collect coverage from an extensionless JS file

I have an executable JS file, with a node shebang. I want to collect coverage from it.
However, adding the explicit path to it to collectCoverageFrom does not cause it to show up in the coverage report (even as having zero coverage). How can I target this file? I also tried bin/** (which should match any file of any kind in the directory, according to how globs work), but maybe there's some kind of auto-extension logic that I can't find in the docs.

hm.. that really depends on your configuration.
The function that defines whether the file should be instrumented or not is defined here https://github.com/facebook/jest/blob/master/packages/jest-runtime/src/shouldInstrument.js
i tried it locally (you can look at this commit https://github.com/dmitriiabramov/jest/commit/7fd98e6cab6e1054dbfe95cb93f4f8a699ac87e9) and it collected coverage

@dmitriiabramov in that case you're requiring an extensionless file - in my case it's the entry point. Nothing requires it.

Please note this issue tracker is not a help forum. We recommend using StackOverflow or our discord channel for questions. Thank you :)

Since there's nothing in your documentation that seems to cover this case, it's at best a bug in the documentation, and at worst a bug in jest's coverage.

@ljharb how are you testing it if it's not required?

@dmitriiabramov I'm not. But I still want it to show up as having zero coverage, and to count towards coverage percentages.

@ljharb ah.. i see. Yeah, that might be a bug.
we get the list of all files in the project from the haste map instance, and haste map only looks for file extensions specified in moduleFileExtensions config option. So for extensionless files it will not work out of the box.
The only thing i can think of is renaming the file to .sh and adding sh to the list of module file extensions in Jest config

Thanks for confirming. Adding an extension to what is an executable file would potentially break, and also certainly violates conventions. How can we fix this so that jest can address extensionless files?
Can I somehow override moduleFileExtensions to include "" (empty string), and also only for the ./bin directory?

@cpojer considering this is an actual bug in jest, can this be reopened?

yeah, adding "moduleFileExtensions": ["js", ""] to the config doesn't seem to work.
@cpojer you have more context on how hastmap and watchman works. is there any other way to index extensionless files?

I don't really know if this is currently fixable tbh. Is it possible to include the full filename as an extension name? We can't collect every file as it would be too slow.

Maybe a config variant within collectCoverageFrom? like, instead of a string, I could also pass { extensionless: 'the normal string matcher' }, or { exact: 'path from root dir' } or something?

Any movement we can make on this? Otherwise, I'm inclined to add docs that say extension-less files are not supported for coverage.

@ljharb can you update the issue title to be formed as a bug submission instead of a help question?

bump; extensionless files are used by almost every package that has an executable, and it’d be great to cover these.

I think adding extensionless files to the hastemap should be fine - we already crawl everything, we just skip them if there's no extension.
https://github.com/facebook/jest/blob/f3c48b52ffd9086e9848d742009068c8f6d5881c/packages/jest-haste-map/src/crawlers/node.ts#L108-L110
So in theory if you add '' to moduleFileExtensions and have it work.
Not sure how that would work with watchman, but still.
Would you be willing to try implementing this?

bump

bump


I915305: Skip updating images without digest

https://internal.almoctane.com/ui/entity-navigation?p=131002/6001&entityType=work_item&id=915305

A developer build has not yet been created for this branch. Click here to go ahead and create the build...

CI Build Link:
https://sou-jenkins2.swinfra.net/job/CAFapi/job/CAFapi~docker-versions-maven-plugin~I915305~CI


StackExchange.Redis library upgrade to 1.2.5

There has been an important fix in the newest version (released today) of StackExchange.Redis (and .StrongName). See https://github.com/StackExchange/StackExchange.Redis/issues/650
This issue is to suggest an update in the CacheManager.StackExchange.Redis package to use version 1.2.5  of StackExchange.Redis.StrongName. It is currently on 1.2.1, so this will be a backwards-compatible patch. See their release notes.

you can always explicitly reference a newer version of the redis client if you want to, you don't have to use the version CacheManager is expecting, that's just the minimal version it requires...
I'll do some testing but usually I do not reference the latest stuff as that forces consumers to have to use those, too...

No problem - I expected as much.


Update adam dependency version to 0.34.0

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/mango-prb/1012/

Closing in favor of https://github.com/bigdatagenomics/mango/pull/584


MCS-217 Return Structural Object Metadata

Structural objects like walls are now assigned the SimObjPhysics script, so we can use the AI2-THOR code to determine if structural objects are visible (we mark them as kinematic so physics and gravity doesn't affect them).
Dynamically assign visibility points to walls, so bigger walls automatically have more visibility points.
Dynamically adjust the size of room walls so the output metadata makes more sense.
Adjusted properties of room walls in MCS scene, adding the SimObjPhysics script and other required components.
Return structural object metadata to the Python API.

Nothing jumped out at me.

@rartiss55 Yeah, and thanks for reminding me that I need to add a ticket to fix that.  I had wanted to avoid applying the SimObjPhysics script to them at all, but I couldn't without rewriting a bunch of code (like the method to determine whether each object is currently visible in the camera).  When I had tried simply changing their tags, I got some really weird behavior, so I think it will require some investigation.


Performance with large design systems

The performance becomes a bottle neck currently with large design systems. This will be addressed in the next major release (2.2.0).

Part of https://github.com/viljamis/vue-design-system/pull/82

Released in https://github.com/viljamis/vue-design-system/releases/tag/3.0.0


HCM: save 8 or 16 bytes for each http filter

Description:
Use bit field and adjust member order.
was
source/common/http/conn_manager_impl.cc:118:88: note: in instantiation of template class 'Envoy::Http::check_size<0, 80>' requested here
        check_size<0, sizeof(struct ConnectionManagerImpl::ActiveStreamDecoderFilter)> dummy1_;
source/common/http/conn_manager_impl.cc:119:88: note: in instantiation of template class 'Envoy::Http::check_size<0, 72>' requested here
        check_size<0, sizeof(struct ConnectionManagerImpl::ActiveStreamEncoderFilter)> dummy2_;

With this PR
source/common/http/conn_manager_impl.cc:118:88: note: in instantiation of template class 'Envoy::Http::check_size<0, 72>' requested here
        check_size<0, sizeof(struct ConnectionManagerImpl::ActiveStreamDecoderFilter)> dummy1_;
source/common/http/conn_manager_impl.cc:119:88: note: in instantiation of template class 'Envoy::Http::check_size<0, 64>' requested here
        check_size<0, sizeof(struct ConnectionManagerImpl::ActiveStreamEncoderFilter)> dummy2_;

Below is is the calculator that I run with but reverted. See
https://stackoverflow.com/questions/11526526/how-to-combine-static-assert-with-sizeof-and-stringify
+template <int s, int t> struct check_size { static_assert(s == t, "wrong size"); };
+
 ConnectionManagerImpl::ConnectionManagerImpl(ConnectionManagerConfig& config,
                                              const Network::DrainDecision& drain_close,
                                              Runtime::RandomGenerator& random_generator,
@@ -110,7 +112,10 @@ ConnectionManagerImpl::ConnectionManagerImpl(ConnectionManagerConfig& config,
           overload_manager ? overload_manager->getThreadLocalOverloadState().getState(
                                  Server::OverloadActionNames::get().DisableHttpKeepAlive)
                            : Server::OverloadManager::getInactiveState()),
-      time_source_(time_source) {}
+      time_source_(time_source) {
+  check_size<0, sizeof(struct ConnectionManagerImpl::ActiveStreamDecoderFilter)> dummy1_;
+  check_size<0, sizeof(struct ConnectionManagerImpl::ActiveStreamEncoderFilter)> dummy2_;
+}

Signed-off-by: Yuchen Dai<EMAIL_ADDRESS>Risk Level:
LOW
Testing:
Existing test

Thanks for this. Happy to just merge this but @jmarantz any thoughts on tracking the size of important structures like this in CI similar to how we are tracking stats sizes now?

IDK what the system-memory consumption implications of this are. How long-lived are the filters (this is actually an area I need to learn more about). If there are few (hundreds) of them and they have a lifetime of a particular request it might not be worth having a test for their size. If they are allocated en masse and kept around for the lifetime of a server (like stats :) then something like a memory-test would be good.
Maybe a good model for a test is https://github.com/envoyproxy/envoy/blob/7816d5e4baa1dee7558572393c83fa1d96a5052a/test/common/stats/thread_local_store_test.cc#L864
That one is fairly stable -- it's affected only by the stats structures themselves and shouldn't change much across compilers, though of course it would be different in 32-bit land if we ever go there.
@silentdai what do you think?

This 8 byte save is per filter per http request during the life of the request.
It could be something if $(concurrent http requests) x $(http filters created by each request)
My hunch is that the filter base is stable and less possible to break. I prefer not to expand this PR to include the memory test...

This PR is a low hanging fruit. No runtime calculate is needed. I am considering maintain a list of critical structures and track the sizeof.
Memory test is more about runtime behavior that heuristically catch the potential glitch. For now I haven't figured out what memory test is reasonable at filter/request. Will look back in the future.

I don't think a memory test is essential for every memory improvement; this is probably not material to overall footprint of the proxy anyway.


runtime: mysterious bit set of a high order bit causes segfaults and bounds check failures

#!watchflakes
post <- goarch == "ppc64" && ((log ~ `SIGSEGV` && log ~ `0x0x8000`) || (log ~ `runtime error: index out of range`))

New segfault found in the gopls tests.
2023-11-20 18:35 linux-ppc64-sid-buildlet tools@8966034e go@ddb38c3f x/tools/gopls/internal/regtest/marker (log)
SIGSEGV: segmentation violation
PC=0x28e6c m=9 sigcode=3 addr=0x800000000b53940

goroutine 0 gp=0xc00070fa00 m=9 mp=0xc000744008 [idle]:
runtime.(*mspan).typePointersOfUnchecked(0xc00b8b0000?, 0xc00b959d70?)
	/workdir/go/src/runtime/mbitmap_allocheaders.go:202 +0x4c fp=0xc000fade38 sp=0xc000faddf8 pc=0x28e6c
runtime.scanobject(0xc00b8b0000, 0xc00004fc48)
	/workdir/go/src/runtime/mgcmark.go:1446 +0xcc fp=0xc000faded0 sp=0xc000fade38 pc=0x360fc
runtime.gcDrainN(0xc00004fc48, 0x10000)
	/workdir/go/src/runtime/mgcmark.go:1331 +0x1f0 fp=0xc000fadf10 sp=0xc000faded0 pc=0x35e30
...
r18  0xc00004ea08	r19  0xc000050a30
r20  0xa8	r21  0xc000744008
r22  0xc000faa3a0	r23  0xc000fadeb8
r24  0x5a	r25  0xf0
r26  0xc0129eaa1b	r27  0xc0129eaa17
r28  0x0	r29  0xc000050a28
r30  0xc00070fa00	r31  0x360fc
pc   0x28e6c	ctr  0x7fff9bdf04d0
link 0x360fc	xer  0x20000000
ccr  0x44428084	trap 0x380

— watchflakes
Originally posted by @gopherbot in https://github.com/golang/go/issues/63736#issuecomment-1819714566

CC @mknyszek

Interesting, it's segfaulting on the type pointer. That pointer also doesn't look like it's nil, either, which makes this very odd.
So far it looks like this has only failed on linux-ppc64? Is that right?

@mknyszek that's the only failure I've observed, but it might be worth checking with greplogs.

Hey @golang/ppc64, is there something special about where the type metadata (from the binary) is placed in the address space? i.e. does 0x800000000b53940 look like it could plausibly be a type pointer, or does it look completely bogus?

@findleyr Thanks. greplogs shows nothing else as well.

I'd err on the side of bogus. I think mapped memory usually falls below 0x8000000000000000 on PPC64 in most cases. ppc64/linux doesn't support PIC, so all static data/text should occupy fairly low addresses starting at 0x10000.

There was another failure, this time unrelated to typePointersOfUnchecked, with a similar segfault on a similar address. This makes me think it's more general memory corruption.
https://build.golang.org/log/cbb742b677c36b578951d0a9b5589c1dc223a1c1

Here's another: https://build.golang.org/log/2e1a99a1002b4c9ff4b2eda9186e89a362194211

The high bit that seems to be set is the 60th bit? Why does that sound familiar...

It looks like #64294 is related. There's a weird integer found in a slice that also seems to have some high bit set. (134217730 is 0x8000002 in hex.)
After letting this soak for a bit, I'm starting to become convinced this is a ppc64-specific issue with high bits being set. Maybe a subtle miscompilation somewhere?

All the newly attached failures seem to have a random bit set. Two of them are more obvious than others, but even the one that looks most like "oh maybe that's just garbage" does end up at the upper end of a valid index by flipping the top bit. Perhaps that's just confirmation bias, but it doesn't not fit the pattern. :P

You are definitely not incorrect.

@pmur Your comment makes me realize this has only appeared on linux-ppc64-buildlet. Perhaps a long-shot, but how hard would it be to determine if the failures were only happening on one particular machine? IIRC there are only 5 such machines. What's the chance of faulty hardware?
(This would be easy to check and rule out on LUCI, but we haven't set up the ppc64 machines there yet, only the ppc64le machines.)

That is easy, fortunately. All 5 instances are running on a resource restricted container within the same VM.

It's possible this problem could be related to the BE memcombine issue that was fixed here https://go.dev/cl/546355.

It looks like there haven't been more of these failures since? I think it's reasonable this is related to the big endian memcombine issue. I'm gonna close this optimistically. Please comment if you disagree.

I agree this was the likely culprit, since the time frame for when it started seemed consistent with the initial memcombine change, only happened on BE and has not happened since the memcombine fix went int.

When I instrumented the memcombine fix, I only observed one code different in some darwin debug code. I did not see any in the failing tests.

The recent two failures are not related. The luci container seems to collect zombie processes, I thought I had updated it to start the container with --init, but I must have missed the ppc64 builder.

@pmur Am I understanding right that there's nothing else to do here then? Closing optimistically, thanks.


feat: expose servers

Summary

expose a method getServers
setupJestServer should not be exported

see https://github.com/smooth-code/jest-puppeteer/issues/135

hi, @neoziro
Thanks for your code review, I have fixed this.


TEEC_InvokeCommand(forward) failed when running fl_tee_layerwise.sh on HiKey 960

Hello @mofanv,
I attempted to run fl_tee_layerwise.sh on an HiKey 960, the same board used in the original PPFL paper PPFL: Privacy-preserving Federated Learning with Trusted Execution Environments. However, I'm getting TEEC_InvokeCommand(forward) failed 0xffff3024 origin 0x3 when running fl_tee_layerwise.sh, the same error in mofanv/darknetz#14 and mofanv/darknetz#29. Other scripts like fl_tee_standard_noss.sh and fl_tee_standard_ss.sh can run correctly.
Since under tz_datasets/cfg folder there don't exist greedy-cnn-aux.cfg, greedy-cnn-layer1.cfg, greedy-cnn-layer2.cfg, greedy-cnn-layer3.cfg and mnist_greedy-cnn.cfg files that are required by fl_tee_layerwise.sh, I manually copy-pasted them from PPFL/server_side_sgx/cfg.
Error log:
  ============= initialization =============
  ============= layer 1 =============
  ============= round 1 =============
  ============= copy weights server -> client 1 =============
  Warning: Permanently added '[<IP_ADDRESS>]:8888' (ECDSA) to the list of known hosts.

  real    0m1.711s
  user    0m0.008s
  sys     0m0.000s
  tee weights: 82356 Bytes
  ============= ssh to the client and local training =============
  layer     filters    size              input                output
      0 conv_TA    2  3 x 3 / 1    32 x  32 x   3   ->    32 x  32 x   2  0.000 BFLOPs
      1 conv_TA    2  3 x 3 / 1    32 x  32 x   2   ->    32 x  32 x   2  0.000 BFLOPs
      2 connected_TA                         2048  ->    10
  Prepare session with the TA
  Begin darknet
  mnist_greedy-cnn
  1
  workspace_size=110592
      3 softmax_TA                                       10
      4 cost_TA                                          10
  Loading weights from /root/models/mnist/mnist_greedy-cnn_global.weights...Done!
  Learning Rate: 0.01, Momentum: 0.9, Decay: 5e-05
  3000
  32 28
  output file: /media/results/train_mnist_greedy-cnn_pps0_ppe4.txt
  current_batch=10
  Loaded: 0.003913 seconds
  darknetp: TEEC_InvokeCommand(forward) failed 0xffff3024 origin 0x3

  real    0m1.594s
  user    0m0.003s
  sys     0m0.005s

I checked mofanv/darknetz#14 and mofanv/darknetz#29 and attempted to increase TA_STACK_SIZE and TA_DATA_SIZE in ta/include/user_ta_header_defines.h I have the following values, but am still getting the error. I cannot increase them further because that would cause a TEEC_Opensession failed with code 0xffff000c origin 0x3 error as from mofanv/darknetz#32.
/* Provisioned stack size */
#define TA_STACK_SIZE			(1 * 1024 * 1024)

/* Provisioned heap size for TEE_Malloc() and friends */
#define TA_DATA_SIZE			(12 * 1024 * 1024)

I isolated the command darknetp classifier train -pp_start_f 0 -pp_end 4 -ss 2 "cfg/mnist.dataset" "cfg/mnist_greedy-cnn.cfg" "/root/models/mnist/mnist_greedy-cnn_global.weights" that failed and tried to run it manually on the client. -pp_start_f 0 -pp_end 4 fails but -pp_start_f 0 -pp_end 3 can run. It seems that layer 4 is the one that cannot fit into TEE memory.
Do you know what the original configuration used in PPFL: Privacy-preserving Federated Learning with Trusted Execution Environments was? Thank you!

Hi @HenryHu2000 , the TEEC_InvokeCommand(forward) failed 0xffff3024 origin 0x3 error is typically caused by the secure memory limits. When one layer's weight matrix is created during the forward pass, out-of-memory happens. But I found in your test, the layer is quite small, and seems not large enough to trigger this problem?

The cfg files you mentioned are not in tz_datasets/cfg, but server_side_sgx/cfg. You may try run again with these cfg files inside

Hi @HenryHu2000 , the TEEC_InvokeCommand(forward) failed 0xffff3024 origin 0x3 error is typically caused by the secure memory limits. When one layer's weight matrix is created during the forward pass, out-of-memory happens. But I found in your test, the layer is quite small, and seems not large enough to trigger this problem?

I followed the same configuration as in the paper. I tried the following 3 configurations on fl_tee_layerwise.sh but none of them worked:

Device=HiKey 960, TA_STACK_SIZE=1 * 1024 * 1024, TA_DATA_SIZE=10 * 1024 * 1024 (default settings from the repo)
Device=HiKey 960, TA_STACK_SIZE=1 * 1024 * 1024, TA_DATA_SIZE=12 * 1024 * 1024
Device=Rapberry Pi 3, TA_STACK_SIZE=1 * 1024 * 1024, TA_DATA_SIZE=5 * 1024 * 1024
However, other scripts like fl_tee_standard_noss.sh and fl_tee_standard_ss.sh do run correctly. It seems that changing the flag -ss 2 to -ss 1 also avoids the error, but I guess it breaks the intended purpose.


adds tests, including a condition to test_intersection_issue_44 which is failing

see issue #44

I can't figure this one out.
enabling "toml" breaks the build because:
impl PartialOrd<String> for Pointer {
    fn partial_cmp(&self, other: &String) -> Option<Ordering> {
        self.0.partial_cmp(other)
    }
}

error[E0277]: can't compare `str` with `std::string::String`
   --> src/pointer.rs:539:28
    |
539 |         self.0.partial_cmp(other)
    |                ----------- ^^^^^ no implementation for `str < std::string::String` and `str > std::string::String`
    |                |
    |                required by a bound introduced by this call
    |
    = help: the trait `PartialOrd<std::string::String>` is not implemented for `str`
    = help: the following other types implement trait `PartialOrd<Rhs>`:
              <&'a str as PartialOrd<winnow::stream::BStr>>
              <&'a str as PartialOrd<winnow::stream::Bytes>>
              <str as PartialOrd<winnow::stream::BStr>>
              <str as PartialOrd<winnow::stream::Bytes>>
              <str as PartialOrd>

@asmello I added toml support but the only way I could get it to compile is commenting out impl PartialOrd<String> for Pointer. I cannot figure out why its causing the build to break.

Looking into the PartialOrd thing, but I noticed a lot of clippy errors due to #[deny(clippy::pedantic)]. Worth fixing them before merging.

Awesome, thanks!
Hmm, I wonder why rust analyzer isn't picking up the pedantic lints.
Re: ci, will do. I'm not very experienced with rust ci yet but I needed to update it anyway to handle feature flags and ideally add caching.

Hmm, I wonder why rust analyzer isn't picking up the pedantic lints.

I think you need to enable it with: "rust-analyzer.checkOnSave.command": "clippy"

Yea, that was it. Thanks!
On Wed, Jun 26, 2024 at 3:48 PM André Mello @.***>
wrote:

Hmm, I wonder why rust analyzer isn't picking up the pedantic lints.
I think you need to enable it with: "rust-analyzer.checkOnSave.command":
"clippy"
—
Reply to this email directly, view it on GitHub
https://github.com/chanced/jsonptr/pull/48#issuecomment-2192507946, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AAIGFZCTFJE4JOAD4CWXPD3ZJMLIBAVCNFSM6AAAAABJ4NIKKKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCOJSGUYDOOJUGY
.
You are receiving this because you authored the thread.Message ID:
@.***>

@asmello can i get you to review the usage of insta in assign when you have time, please?
Is there a better approach to handling it? I'm not crazy about the formatting of data but I can live with it.

I think the assign::toml thing is entirely a red herring, the error doesn't go away if I comment it out. But the fix is simple:

I bet that was because when I was testing it, I only had assign done. Once resolve and delete were written, which I believe both were by the time you had a chance to review, the error remained even if assign::toml was commented out.
I tried various approaches to get it to deref but didn't think to use as_str. That was a weird one.

I'm not crazy about the formatting of data but I can live with it.

I guess that's because it becomes part of the metadata written to the snapshot header, which is YAML. That's unfortunately not configurable.
As for the body/expression, you can use a different serialiser to get a more pretty-printed output, so there's at least more options.

@asmello i had to remove the tables for it to work. Code has been updated to reflect it.

Well.. I thought it was fixed. CI is showing failures. Hmmm..

@asmello i had to remove the tables for it to work. Tests in assign have been updated.

That's... unexpected. It should work fine with the table tests. I've done it like that before.

Well.. I thought it was fixed. CI is showing failures. Hmmm..

I think the snapshots are just out of date, you need to regenerate them.

It's still hitting weird inconsistencies, for example:

The discrepancy between new and old is weird. The old snapshot is the result from comparing the replaced result while the new is comparing data.
I've run it a few times. I'll delete the snapshots and try again.

Oh interesting, I wonder if it's having trouble assigning the outputs to a number deterministically. I think you were calling the tests in a loop right? I recall there was a fix for that.

I was, which I assumed was the problem. I've since changed it so that they aren't called from a loop. However, the calls to assert_snapshot(data) and assert_debug_snapshot(result) are happening in a fn now:
        #[derive(Serialize, Debug)]
        struct Test {
            data: Value,
            ptr: &'static str,
            assign: Value,
        }

        fn test(data: impl Into<Value>, ptr: &'static str, assign: impl Into<Value>) {
            let mut data = data.into();
            let assign = assign.into();

            let test = Test {
                ptr,
                data: data.clone(),
                assign: assign.clone(),
            };
            let ptr = Pointer::from_static(test.ptr);
            let replaced = ptr.assign(&mut data, assign);
            insta::with_settings!({
                info => &test,
                description => "asserting that the JSON data is as expected after assignment",
                omit_expression => true // do not include the default expression
            }, {
                assert_snapshot!(&data);
            });
            insta::with_settings!({
                info => &test,
                description => "asserting that the replaced JSON data returned from the assignment is as expected",
                omit_expression => true // do not include the default expression
            }, {
                assert_debug_snapshot!(&replaced);
            });
        }

where tests are executed serially:
            test(json!({}), "/foo", json!("bar"));
            test(json!({"foo": "bar"}), "", json!("baz"));
            test(json!({"foo": "bar"}), "/foo", json!("baz"));
            test(json!({"foo": "bar"}), "/foo/bar", json!("baz"));

Yeah, it's weird that still fails. Maybe it's clashing with the old outputs somehow? I'd expect deleting and starting over to fix in that case.
The way to make it work with loops is similar to their recipe for rtest: it's using set_snapshot_suffix.

Using simple indexes didn't fly.
It's definitely because they are being called from a fn rather than inline. I guess it'd need a unique name for the test set + an index. The "Snapshot File" suggests to me they are colliding:

BTW, I'm sorry this is causing you trouble. 😓 I've never had a hard time with insta... Do feel free to drop it if you get frustrated.

Oh, it's no worries! New tools in this industry often come with a bit of frustration :). Also, this is very much seems to be caused by me not using it properly.
Here is the updated test fn:
        fn test(idx: usize, data: impl Into<Value>, ptr: &'static str, assign: impl Into<Value>) {
            let mut data = data.into();
            let assign = assign.into();

            let test = Test {
                ptr,
                data: data.clone(),
                assign: assign.clone(),
            };
            let ptr = Pointer::from_static(test.ptr);
            let replaced = ptr.assign(&mut data, assign);
            insta::with_settings!({
                snapshot_suffix => format!("{idx}-data"),
                info => &test,
                description => format!("case #{idx}: asserting that the JSON data is as expected after assignment"),
                omit_expression => true // do not include the default expression
            }, {
                assert_snapshot!(&data);
            });
            insta::with_settings!({
                info => &test,
                snapshot_suffix => format!("{idx}-result"),
                description => format!("case #{idx}: asserting that the replaced JSON data returned from the assignment is as expected"),
                omit_expression => true // do not include the default expression
            }, {
                assert_debug_snapshot!(&replaced);
            });
        }

@asmello I was able to get it to work with a macro_rules but its just not really my cup of tea.
I removed insta, rewrote a number of the tests to conform to a single approach, and refactored the mod structure of assign, delete, resolve a bit.
Hopefully this makes it a bit less cluttered and distracting.

That's alright, thanks for giving it a try and I'm sorry it didn't pan out.
I'll give it another look, but feel free to merge when you feel ready.


What is the best way to use this repo in conjunction of AllenNLP?

Hi,
So AllenNLP has already wrapped many transformer classes from the original transformers library, which uses many same names as adapter-transformers (since the latter was forked from the former).

Hi @arkgithubforyou,
I must say that I'm not particularly familiar with AllenNLP. In general, you should be able to use adapter-transformers as a drop-in replacement for HuggingFace transformers as we kept the same namespace and model classes. I assume there isn't any dedicated adapter integration for AllenNLP, but if you face any issues when using this library together with it, we can try to improve that as far as it's possible from our side.


[JS] dotprompt .generate and .render methods don't allow custom config options

Describe the bug
this code does not compile:
    const resp = await dotpromptPrompt.render({
      model: 'vertexai/gemini-1.5-flash',
      input: {
        foo: 'bar',
      },
      config: {
        location: 'us-central1',
      },
    });

Error:
Object literal may only specify known properties, and 'customOption' does not exist in type '{ version?: string | undefined; temperature?: number | undefined; maxOutputTokens?: number | undefined; topK?: number | undefined; topP?: number | undefined; stopSequences?: string[] | undefined; }'.ts(2353)

generate.d.ts(261, 5): The expected type comes from property 'config' which is declared here on type 'PromptGenerateOptions<any>'

Most Vertex AI models have support passing location as a config option.
Known workaround
    const req = await dotpromptPrompt.render({
      model: 'vertexai/gemini-1.5-flash',
      input: {
        foo: 'bar',
      },
    });
    req.config = {
      location:  'us-central1',
    };
    const resp = await generate(req);

I looked into this a bit. It's not possible to identify the correct custom options type if we accept string model arguments, so it should be any in that case. But we can make it check the custom options type strictly if a fully qualified model is also passed in to render or generate.