Key struct is fragile, possibly unsound

The Key struct is currently initialized in two phases. First it is created, like this:
https://github.com/maciejhirsz/json-rust/blob/0775592d339002ab148185264970c2a6e30b5d37/src/object.rs#L71-L78
And only later it is attached to its actual contents.
Before the key is attached, calling as_bytes results in undefined behavior:
https://github.com/maciejhirsz/json-rust/blob/0775592d339002ab148185264970c2a6e30b5d37/src/object.rs#L81-L85
because a null pointer is passed to slice::from_raw_parts, violating its safety invariant. Replacing a null pointer with NonNull::dangling() will not solve the problem because then the slice will non-zero length would to unclaimed memory, which is also UB.
If the two-phase initialization is truly necessary, a less fragile way to approach it is to explicitly encode the initialization state in the type system: have UnattachedKey struct without any accessor methods for the partly initialized state, and provide a method to turn it into a proper Key by calling attach().

Key also seems to contain a hand-rolled implementation of the small string optimization that, in addition to the usual dangers of custom unsafe code, leaves performance on the table. The current implementation always zero-initializes the underlying buffer. Using smallstr crate or something along those lines will (even though I'm not really a fan of the underlying smallvec crate).
Using slotmap to store the strings in a single allocation instead of using the small string optimization would probably work even better, since it would avoid inflating the struct, and also remove the need for pointer fixups on cloning and reallocation altogether. It would also remove the need for two-phase initialization, and Key would no longer have to be self-referential.

Miri doesn't like it either
error: Undefined Behavior: trying to retag from <3928> for SharedReadOnly permission at alloc1799[0x18], but that tag does not exist in the borrow stack for this location
   --> /home/user/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/slice/raw.rs:97:9
    |
97  |         &*ptr::slice_from_raw_parts(data, len)
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |         |
    |         trying to retag from <3928> for SharedReadOnly permission at alloc1799[0x18], but that tag does not exist in the borrow stack for this location
    |         this error occurs as part of retag at alloc1799[0x18..0x1c]
    |
    = help: this indicates a potential bug in the program: it performed an invalid operation, but the Stacked Borrows rules it violated are still experimental
    = help: see https://github.com/rust-lang/unsafe-code-guidelines/blob/master/wip/stacked-borrows.md for further information


How could I know about redis state store's state, I don't know my redis state store is or not good

Ask your question here
I kubectl apply -f this yaml and didn't know if it was successful. And my application can't persist state.
I wonder if my host value set error.Maybe in my Kubernetes, it's not redis-master:6379
apiVersion: dapr.io/v1alpha1
kind: Component
metadata:
  name: statestore
spec:
  type: state.redis
  metadata:
  - name: redisHost
    value: redis-master:6379
  - name: redisPassword
    value: 123456

@yhyddr Could you please try with latest version of Dapr and if this is still repro, please feel free to reopen.


Result on Cifar-100

Have you tested the WRN-28-10 on Cifar100 dataset? I tested it, but get 73.4% accuracy, far from the result in the original paper.

@guoyanming sorry for being late to come back to your topic (I got swamped by emails from various projects :-(, so didnt see your comment) - no I havent tested on CIFAR 100. But 73.4% really doesnt look particularly good indeed.
However I fear I cant really help you, I always wanted to continue with this but needed to focus attention on other stuff. Personally, I would probably look into implementations such as the original WRN built in torch (https://github.com/szagoruyko/wide-residual-networks) or Densenets (https://github.com/liuzhuang13/DenseNet), which also have got a caffe implementation. Other very interesting architectures seem to be: https://github.com/facebookresearch/ResNeXt, https://github.com/itijyou/ademxapp

@guoyanming , Could you share your solver and train-test prototxt files of WRN-28-10 on Cifar100 for the 73.4 accuarcy?
Thanks!

@revilokeb I have tested Densenet and ResNeXt using caffe, both of their results are much worse than the original paper. I wonder whether it is caused by the platform (Caffe v.s. Torch)? This is really embarrassing

@saiguruju I followed the same solver and train-test prototxt provided by @revilokeb


google login may now work on CentOS

user report this.

We have not tested linux app on CentOS. Would need more details to go forward with this issue. Will take another look if this issue comes up again.


about the calculation of confusion matrixes

Hi @JiaweiShiCV , Great job!
can you tell me how to calculate confusion matrixes, like dataset RAF-DB, whether you calculate the each category use the Weighted Accuracy 90.58 model? Thanks a lot.

I just updated the code and pretrained model.
Please download the latest pretrained model and then try to plot Confusion Matrix by running:
 python src/test_raf-db.py --checkpoint models/RAF-DB/epoch59_acc0.9205.pth --plot_cm

@JiaweiShiCV , get it! Thank you, but why are you improve the acc on raf-db so much? Especially on the expression of fear.

The batch size has been adjusted from 256 to 64.


Bug report: an error occurred while list files using the object storage interface

Describe the bug
Using ChubaoFS as storage backend on Apache Flink environment, an error occurred while Flink was performing the List Files operation.
Exception respond by Apache Flink:
Caused by: org.apache.flink.fs.s3base.shaded.com.amazonaws.services.s3.model.AmazonS3Exception: Invalid Argument (Service: Amazon S3; Status Code: 400; Error Code: InvalidArgument; Request ID: bbfe064947f5422e8ddbf57ef76a63d8; S3 Extended Request ID: null), S3 Extended Request ID: null
 at org.apache.flink.fs.s3base.shaded.com.amazonaws.http.AmazonHttpClient$RequestExecutor.handleErrorResponse(AmazonHttpClient.java:1639)
 at org.apache.flink.fs.s3base.shaded.com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeOneRequest(AmazonHttpClient.java:1304)
 at org.apache.flink.fs.s3base.shaded.com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeHelper(AmazonHttpClient.java:1056)

Environment
SDK version in http header traced by ObjectNode:
aws-sdk-java/1.11.271 Linux/3.10.0-693.5.2.el7.jd_3313.x86_64 Java_HotSpot(TM)_64-Bit_Server_VM/25.131-b11 java/1.8.0_131 scala/2.11.12, presto

To Reproduce
List files using object storage interface with multi-level directory as prefix.
Example:
The following file is stored on the ChubaoFS volume.
dir1 / dir1_1 / file_1_1_1.txt

Then invoke ListObjects interface with dir1/dir1 as prefix.
Expected behavior
None.
Additional context
None.

Issue resolved by PR #422.

A new problem was found when there was data that exactly matched the prefix, then the results were not consistent with the expected results.
This issue is not completely resolved, reopen this issue.


Add gumroad extension

Description
View your sales and products from Gumroad.
Screencast

Checklist

[x] I read the extension guidelines
[x] I read the documentation about publishing
[x] I ran npm run build and tested this distribution build in Raycast
[x] I checked that files in the assets folder are used by the extension itself
[x] I checked that assets used by the README are placed outside of the metadata folder

Hi @xmok,
Thank you so much for your feedback! Your suggestions make sense to me so I have decided to make the relevant changes 👍🏼

Works great!
We could make some changes especially in terms of native pagination and not having to manually "load more" but that can be handled in future updates.
For now, LGTM 🚀.

Oh great catch 😅 then!
LGTM 🚀

@pernielsentikaer Awesome, thank you! 🚀


Support search on almighty URL(external user facing UI URL)

Related to #330
Depends on #382
Example: http://demo.almighty.io/#/detail/71

Hi @aslak,
As @thomas mentioned in the mailing list, the full url of a workitem is not known to the ALM core and so the front end should be parsing out the ID from the URL and sending a search Ajax request to the alm-core webservice with the ID.
Let me know if this is how it's supposed to work.
If yes, then there needs to be no additional major effort for supporting search using URLs in the alm-core.

The backend would need to know this anyway. When a commit comes in we should be able to scan the message and link up the references to a WI, or when someone writes a comment on a WI, or a user write a link as part of the WI description, etc..

@aslakknutsen
Do you mean, that the backend needs to parse out the workitem ID from the URL using the external URL pattern?


Save As SDR jpg should ideally take in-app brightness slider level into account via a checkbox

And possibly current zoom via a checkbox option?

closing stale item


Locale for button labels

Hi,
Is there any way to change the label of the buttons based on locale?
Regards

@fabricio-simplicityist do you find ?


PowerRename: sort/rename by Date Taken

Description of the new feature / enhancement
Allow me to sort the files to be renamed by more than just their filename. Specifically, allow sort by Date/Time Taken. This way I can control how "Enumerate items" works - I can control the name ordering of resulting names.
-and/or-
Add patterns based on Date/Time Taken to the "Replace with" patterns. Currently, they only support creation date/time.
Scenario when this would be used?
Renaming related photos that aren't alphabetically sorted in the order I want them.
My specific scenario:
I'm renaming a mix of photos from my camera and from my phone, both taken during the same event (e.g. vacation). The two collections have different filename patterns, so PowerRename lists all my camera photos first, then all my phone photos. But I want the resulting file list to be merged - all photos of my vacation from both camera and phone, sorted by date and time taken.
Supporting information
No response

/dup #6151


Update README to mention that crossover is a default feature

yeah oops i forgot.

Oops I meant to put that in 0.5.4 but I forgot again


Mobile Notifications Don't work Reliably with Desktop App

Description
My typical working environment includes having RocketChat running on my Windows Computer, as well as on my phone.  When the Windows app is running, I do not get notifications on my phone.  I think I only get notifications when my screen has been locked for some time or possibly only when I close the Windows Application.  This may be working as designed, but it is extremely frustrating.  I work in a secure environment.  I don't always lock my screen.  Sometime I step away for a bit, and I don't get critical notifications on my phone.
Expected behavior:
I want to either always receive mobile notifications, or I want the application to track activity, regardless of screen lock status.  If I have not clicked within the application window within a reasonable amount of time (say three minutes from getting a message), I want a mobile alert.  If the current behavior is the "expected" behavior, then I would like an option where I can force that all notifications get pushed to all my devices regardless of status of any given rocket chat instance on any given device.
Devices and Versions
Your Rocket.Chat.Android version: 2.5.1 Build 2036
Your Rocket.Chat Server version: 0.68.3

Mobile device model and OS version: Nexus 6P Android Oreo (not that it matters)
Steps to reproduce
Log into Rocket Chat with the Windows Application.
Log into the same account on your Android Phone.
Minimize the windows app, and have someone send you multiple messages.  Wait several minutes and realize that you never got a notification on your phone.
Logs
Not Needed.

Admin/General/Notifications Always Notify Mobile
HOWEVER, this will apply to all users, and may not be what everyone else wants.
See this (and there may be others):
https://github.com/RocketChat/Rocket.Chat/issues/11747


Linkedlist.Java

Pls accept this code for hacktoberfest 2021

Please read the NOTE FOR CONTRIBUTORS.md file, create issues and get your code assigned. Then I'll accept the code :)


Disable on Twigmo (mobile site)

We are using http://twigmo.com as our mobile site. Pagespeed is causing issues with our forms of payments and I would like to disable PS there.
I assumed that adding the following .js into the mobile site would help:
twg.initSettings = twg.func.wrap(twg.initSettings, function(srcFunc) {
srcFunc();
settings.requestUrl += '&ModPagespeed=off';
});

But it did not and after some testing, adding the query ?ModPagespeed=off manually to any url does not work either.

What problems does it cause on your mobile payment site?
-Josh
On Mon, Aug 10, 2015 at 3:29 AM, Benji<EMAIL_ADDRESS>wrote:

We are using http://twigmo.com as our mobile site. Pagespeed is causing
issues with our forms of payments and I would like to disable PS there.
I assumed that adding the following .js into the mobile site would help:
twg.initSettings = twg.func.wrap(twg.initSettings, function(srcFunc) {
srcFunc();
settings.requestUrl += '&ModPagespeed=off';
});
But it did not and after some testing, adding the query ?ModPagespeed=off
manually to any url does not work either.
—
Reply to this email directly or view it on GitHub
https://github.com/pagespeed/ngx_pagespeed/issues/1003.

The issue seemed to be that the url ended up having CSS in it. Not sure exactly what was causing it in Pagespeed but it seems the .js posted above has started working. We disabled PS on the mobile version and everything works just fine.
When I have time to do some testing on our test server I will be sure to post more info. But for now I do not want to touch production if it's working as intended.


Update README.md

[ ] You've read the Contributor Guide and Code of Conduct.
[ ] You've included unit or integration tests for your change, where applicable.
[ ] You've included inline docs for your change, where applicable.
[ ] There's an open issue for the PR that you are making. If you'd like to propose a new feature or change, please open an issue to discuss the change or find an existing issue.

PR Title
Summary of the changes (Less than 80 chars)
PR Description
Detail 1
Detail 2
Fixes #bugnumber (in this specific format)

/benchmark kestrel

/benchmark kestrel

/benchmark kestrel

/benchmark kestrel

/benchmark kestrel

/benchmark kestrel

/benchmark kestrel

/benchmark kestrel

/benchmark kestrel

/benchmark kestrel

/benchmark kestrel

/benchmark kestrel

/benchmark kestrel

/benchmark kestrel

/benchmark kestrel

/benchmark kestrel

/benchmark kestrel

/benchmark kestrel

/benchmark kestrel

/benchmark kestrel

/benchmark kestrel

/benchmark kestrel

/benchmark kestrel

/benchmark kestrel2

/benchmark kestrel2

/benchmark kestrel2

/benchmark mvc

/benchmark mvc

/benchmark kestrel2

/benchmark kestrel2

/benchmark kestrel

/benchmark kestrel

Hi!

Hi!

application
base
head

CPU Usage (%)
98
97
-1.02%

Cores usage (%)
1,176
1,163
-1.11%

Working Set (MB)
147
148
+0.68%

Private Memory (MB)
624
624
0.00%

Build Time (ms)
3,827
3,717
-2.87%

Start Time (ms)
216
226
+4.63%

Published Size (KB)
111,240
111,240
0.00%

.NET Core SDK Version
7.0.100-alpha.1.22064.19
7.0.100-alpha.1.22064.19

load
base
head

CPU Usage (%)
31
31
0.00%

Cores usage (%)
377
369
-2.12%

Working Set (MB)
7
7
0.00%

Private Memory (MB)
358
358
0.00%

Start Time (ms)
0
0

First Request (ms)
105
108
+2.86%

Requests/sec
1,571,138
1,371,773
-12.69%

Requests
3,298,371
2,880,051
-12.68%

Mean latency (ms)
2.29
2.46
+7.42%

Max latency (ms)
54.18
49.58
-8.49%

Bad responses
0
0

Socket errors
0
0

Read throughput (MB/s)
197.78
172.69
-12.69%

Latency 50th (ms)
1.47
1.65
+12.24%

Latency 75th (ms)
2.41
2.57
+6.64%

Latency 90th (ms)
3.77
4.01
+6.37%

Latency 99th (ms)
18.86
19.23
+1.96%

application
base
head

CPU Usage (%)
98
97
-1.02%

Cores usage (%)
1,176
1,163
-1.11%

Working Set (MB)
147
148
+0.68%

Private Memory (MB)
624
624
0.00%

Build Time (ms)
3,827
3,717
-2.87%

Start Time (ms)
216
226
+4.63%

Published Size (KB)
111,240
111,240
0.00%

.NET Core SDK Version
7.0.100-alpha.1.22064.19
7.0.100-alpha.1.22064.19

load
base
head

CPU Usage (%)
31
31
0.00%

Cores usage (%)
377
369
-2.12%

Working Set (MB)
7
7
0.00%

Private Memory (MB)
358
358
0.00%

Start Time (ms)
0
0

First Request (ms)
105
108
+2.86%

Requests/sec
1,571,138
1,371,773
-12.69%

Requests
3,298,371
2,880,051
-12.68%

Mean latency (ms)
2.29
2.46
+7.42%

Max latency (ms)
54.18
49.58
-8.49%

Bad responses
0
0

Socket errors
0
0

Read throughput (MB/s)
197.78
172.69
-12.69%

Latency 50th (ms)
1.47
1.65
+12.24%

Latency 75th (ms)
2.41
2.57
+6.64%

Latency 90th (ms)
3.77
4.01
+6.37%

Latency 99th (ms)
18.86
19.23
+1.96%


Learn Kafka

Description
The goal with this issue is to set aside some time to learn a little bit more about Kafka.
Activities

[x] Knowledge sharing with the FDK team
[x] Knowledge sharing with the events and statistics team in FEL
[x] Programing pattern for consuming messages from Kafka. Controller(consumers) or client(producers)

Videoes

Apache Kafka Tutorials | Kafka 101 (Confluent)
How to handle message retries & failures in event driven-systems? Handling retires with Kafka?
Getting started with the Confluent Terraform Provider

Articles

Kafka Topic Naming Conventions: Best Practices
Kafka topic naming conventions - 5 recommendations with examples

This issue was intended to be an introduction to Kafka. Closing as completed


Add qt5 support

Added qt5 support and a CPU example that opens 2 windows. The Qt5 support opens the first window as a QMainWindow, all the remaining windows are opened as QDockWidgets in floating mode. This allows them to be docked if the user wished.

@caseymcc It is nice to have Qt5 as another backend. I believe std::make_unique is not available until C++14 which is causing compilation errors in src/backend/opengl/qt5/window.cpp. Can you please fix them. forge uses C++11 standard as of now.

Updated it, I'm using VS2015 so there could be all kinds of compile issues I am not seeing.

Also I am currently adding a Qt widget to the code that can be used inside other qt windows (and mainly inside the qt event loop). By default I am providing functionality to let it be drawn outside of the main Qt UI thread as most of the stuff I work on is already threaded in this manner (UI is separate from OpenGL rendering). So it may end up looking oddly coded but I will also allow the default to be drawn from the ui thread.
I am adding the widget to the API but only when a cmake option is on.

@caseymcc I was able to build the library and examples with latest changes, however the new example you added is crashing on linux with the following stack trace.
#12 0x00007ffff780dccb in forge::wtk::Widget::Widget(int, int, char const*, forge::wtk::Widget const*, bool) () from /home/pradeep/gitroot/forge/build_qt5/src/backend/opengl/libforge.so.0
#13 0x00007ffff780c3a4 in forge::opengl::window_impl::window_impl(int, int, char const*, std::weak_ptr<forge::opengl::window_impl>, bool) ()
   from /home/pradeep/gitroot/forge/build_qt5/src/backend/opengl/libforge.so.0
#14 0x00007ffff77cd29e in fg_create_window () from /home/pradeep/gitroot/forge/build_qt5/src/backend/opengl/libforge.so.0
#15 0x00007ffff77d840e in forge::Window::Window(int, int, char const*, forge::Window const*, bool) () from /home/pradeep/gitroot/forge/build_qt5/src/backend/opengl/libforge.so.0
#16 0x00000000004011e6 in main ()

Also, we maintain a few consistent features across windowing toolkits that we support such as close window on hitting esc key etc. You can look at the glfw/window.cpp and sdl2/glfw.cpp for reference.

What about the regular example (not including multiple windows)?
You going to end up making me bust out my Ubuntu VM and enter the bane of my existence GDB. :)

Other examples ran but they don't have the standard key stroke responses I explained earlier such as closing the window upon on hitting ESC.

build forge ci

build forge ci

build forge linux ci

build forge linux ci

build forge linux ci
build forge osx ci

build forge linux ci
build forge osx ci
build forge windows ci

build forge windows ci

Added key/mouse events, it should match up to the rest. I removed the multiWindow example as I don't have the time to debug it for the moment. (my Ubuntu VM does not have GPU support so will have to setup an Ubuntu machine before I debug it)

@caseymcc I think the code is broken now - it used to compile earlier though. Following is the error.
In file included from /home/pradeep/gitroot/forge/src/backend/opengl/window_impl.hpp:19:0,
                 from /home/pradeep/gitroot/forge/src/backend/window.hpp:13,
                 from /home/pradeep/gitroot/forge/src/backend/handle.hpp:14,
                 from /home/pradeep/gitroot/forge/src/api/c/font.cpp:12:
/home/pradeep/gitroot/forge/src/backend/opengl/qt5/window.hpp:51:25: error: extra qualification ‘forge::wtk::Widget::’ on member ‘findTransform’ [-fpermissive]
         const glm::mat4 Widget::findTransform(const MatrixHashMap& pMap, const float pX, const float pY);
                         ^
/home/pradeep/gitroot/forge/src/backend/opengl/qt5/window.hpp:53:14: error: extra qualification ‘forge::wtk::Widget::’ on member ‘setTransform’ [-fpermissive]
         void Widget::setTransform(MatrixHashMap& pMap, const float pX, const float pY, const glm::mat4 &pMat);
              ^

@caseymcc If you don't mind, can you please rebase from master after https://github.com/arrayfire/forge/pull/150 is merged and push your additions. Thank you.

@caseymcc Were you able to get back to this ?

@caseymcc Did you get a chance to look into again ?

Sorry, been busy. Will see if I can look at it this week.

@caseymcc Closing this for now due to inactivity and since you probably need to update your branch from latest master as well. Feel free to reopen the PR when the changes are ready and running successfully.


Class assignments/tests page

When a class is selected, a list of assignments/test should be available. Instructors should be able to add new assignments, make existing ones visible/hidden[nicety], and edit assignments. New and edit may lead to the same/similar views.
Students should get a list of completed and due assignments. Completed should have a grade associated with it(or grade pending) and maybe a review option(could also be toggled by the instructor).

A due to date/time would be nice.

Yeah, it should be listed definitely be listed on this view. Do we want to be able to change the date from this view or the edit view?


Issue 109

Question
Answer

Bug fix?
yes

New feature?
no

BC breaks?
no

Deprecations?
no

Tests pass?
yes

Fixed tickets
php-cache/issues/issues/109

License
MIT

Codecov Report

Merging #166 into master will increase coverage by 0.06%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master     #166      +/-   ##
==========================================
+ Coverage   76.42%   76.48%   +0.06%
==========================================
  Files          26       26
  Lines        1476     1480       +4
==========================================
+ Hits         1128     1132       +4
  Misses        348      348

Impacted Files
Coverage Δ

src/Adapter/PHPArray/ArrayCachePool.php
90.32% <100%> (+0.15%)
:arrow_up:

src/Adapter/Memcached/MemcachedCachePool.php
97.05% <100%> (+0.08%)
:arrow_up:

src/Adapter/Redis/RedisCachePool.php
100% <100%> (ø)
:arrow_up:

src/Adapter/Predis/PredisCachePool.php
97.14% <100%> (+0.08%)
:arrow_up:

Continue to review full report at Codecov.

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


Fix/Salvage More Flight Data

We have very few data sets that we can use to test our code, but we have older data sets that could be converted to work with our code
For these ones you will have to convert the csv headers to match what our sim uses, they're missing altitude and compensated acceleration

[ ] ARDUFlightData_Cato_PDF
[ ] ARDUFlightData_Cato_VDF
[ ] ARDUFlightData_subCato

After looking at the flight data, it is most likely unusable with the simulation. The IMU that was used for these flights had an acceleration cap at 5G's, rendering the acceleration in the motor burn phase unreliable. Because we rely on accurate velocity calculations pretty heavily, I don't think these datasets will be able to provide much, especially due to the lack of altitude data as well.


Controller options and patch

Added automatic handling of OPTIONS requests on ResourceController
And I also added a modify method to handle PATCH requests

@sarbogast thanks for continuing w/ some awesome contributions! I might be missing something, but it looks like the modify route might not be getting registered. Is it somewhere I can't see?

Yes, in Application+Route.swift:
self.patch(path, Resource.Item.self) { request, item in
return try controllerFactory().modify(request, item:item)
}

@sarbogast wow, don't know how I missed that, must need some more coffee or something! Thanks for pointing it out.

It's my understanding that PUT/PATCH can be used interchangeably, i.e. they are equivalent.

Not at all. Put updates an entire resource. It's like replacing one version of an entity by another one, and the resource in the request must have all the required fields. In a patch, you are only supposed to change the fields that are provided in the request, and leave the others alone. So a patch request can be partial. It allows for updates with lower bandwidth consumption. See the difference in implementation here: https://github.com/sarbogast/vapor-todobackend/blob/master/App/Controllers/TodoController.swift#L91
Also PUT is idempotent, but not PATCH. For more information: http://restcookbook.com/HTTP Methods/patch/

@tannernelson Nope, I've learned that according to the HTTP spec there's a difference between PATCH and PUT. The difference is:
The data sent by PUT completely replaces all the data for that resource. While the data sent by PATCH only replaces that part of the data for that resource.
Let me give you an example. Say I have a Post model which has a title field and a body field. When I send a json {"body": "This is my new body"} through a PATCH request then the body of that post will be updated to that new body, while the title will be left alone. If, however, I sent that json through a PUT request then the title will be set to nil.

Beautiful. Looks like Laravel gets those wrong:
PUT/PATCH	/photo/{photo}	update	photo.update

Let's make sure Vapor follows the HTTP spec!

Well, as a matter of fact, if your resource is a binary resource like an image, then effectivement PUT and UPDATE do the same thing.

@tannernelson @sarbogast @Evertt
After reading the conversation above, I am second guessing the name update. It's not clear whether that method should be treated like a replace or not. On one hand, it doesn't really matter because if it's a put and all fields are present, it will update all of the fields, on the other hand, I think it would be more clear if we renamed it to replace.
How do people feel about that, or is it way off base?

@LoganWright I was thinking the same thing. Even though it goes against the conventions of most frameworks, I vote for renaming it to replace and having another update or modify method for the PATCH request.

Or how about something like this:

replace for PUT requests
modify for PATCH requests
update for both of those, like is the convention in almost all other frameworks, for people who really don't want to think / care about the difference between PATCH and PUT

@Evertt I was thinking in a similar direction, but keep getting stuck on behavior a little bit. For example, if we receive a PUT request, should we route it to update and replace? and in what order. Maybe we just do that and don't worry about it, any thoughts on this?

@LoganWright as long as we document the difference between those methods very well and how they should be used, I don't think we need to have any defined behavior for when somebody uses both the update method AND one of the others. I think if we say in the documentation that you shouldn't use those method together then it's the responsibility of the developer to not do that.
But just as a thought experiment, just in the rare edge case someone does use update plus one or both of the others then I assume s/he has the following reason: to keep their code DRY and by putting code in update that they would otherwise have to copy in both replace and modify.
If that's the case then I would say, first route to update, and then to the other method. What do you think?

These commits are tagged on #346 as one PR.


Some application layers pushed to Docker and to remote registry are different

Make sure the target repository is empty. (On Docker Hub, you can delete each repository in the settings page.)
mvn jib:build.
mvn jib:dockerBuild.
docker push image. Then, I can see some layers are pushed as new. For example,

The push refers to repository [docker.io/francium25/test]
31fbf73b9b17: Pushed
a56689a3c89a: Layer already exists
4c6767988525: Pushed
89a70de9ef61: Layer already exists
6189abe095d5: Layer already exists
f47163e8de57: Layer already exists
0d1435bd79e4: Layer already exists
latest: digest: sha256:46e3002c30a8dc12c5bed51eae8ee211509fdfe8cd28da804a0084a35fa3f135 size: 1786

I examined the two layers 31fbf73b9b17 and 4c6767988525 with the dive tool:

31fbf73b9b17081ee4: classes layer
4c6767988525dcd8e0: dependencies layer

Interestingly, a56689a3c89a is a resources layer with a single text file, and it isn't pushed.
So I think there are some difference between the layers built to Docker and pushed to a registry.
I can also see that building to Docker first, running docker push, and running mvn jib:build does push some layers that don't exist in the registry.

Indeed, I can see on a registry that different blobs have been pushed. And the digests in the manifests are different.

layers entries in the manifest pushed directly with jib:build:

{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","digest":"sha256:9ff2acc3204b4093126adab3fed72de8f7bbfe332255b199c30b8b185fcf6923","size":655317},
{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","digest":"sha256:69e2f037cdb30c8d329b17dad42cd9d92a45d93c17e6699650b23c55eceacb5f","size":7333566},
{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","digest":"sha256:3e010093287c245d72a774033b4cddd6451a820bfbb1948c97798e1838858dd2","size":643663},
{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","digest":"sha256:2da0731fed5ed978622b602bfc9396352e3012c1f5228fa180bf2f105d226e1e","size":42567026},
{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","digest":"sha256:d780da2a8705b953adec7b8616c60a19e972ed3de7f93bcb113195ee437668d5","size":4576654},
{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","digest":"sha256:07ff609379c4cc1102bfcbc1287b937b415fec734dea0c677c81b5fa02080d09","size":164},
{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","digest":"sha256:6f212afac760ae70939c8c7c5615b9ad29a8789e9653eab51b4cb38e676bc177","size":1949}

Note the size of the last three layers: 4576654, 164, and 1949.

Pushed by docker push after jib:dockerBuild:

{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":655317,"digest":"sha256:9ff2acc3204b4093126adab3fed72de8f7bbfe332255b199c30b8b185fcf6923"},
{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":7333566,"digest":"sha256:69e2f037cdb30c8d329b17dad42cd9d92a45d93c17e6699650b23c55eceacb5f"},
{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":643663,"digest":"sha256:3e010093287c245d72a774033b4cddd6451a820bfbb1948c97798e1838858dd2"},
{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":42567026,"digest":"sha256:2da0731fed5ed978622b602bfc9396352e3012c1f5228fa180bf2f105d226e1e"},
{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":4581113,"digest":"sha256:a983054bcc8ea450b93031141a5793155c4bc88b6fc028bc12707bf729d7b2aa"},
{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":167,"digest":"sha256:ecb239a1b6fa652b85fc78bfd5a98aa9957a35d4fc2726bc78bd3917546ef8e6"},
{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":1943,"digest":"sha256:7764472c834cceb655238358eeaba71f786e9cbc774fd9e09d85eba4b78b5771"}

The size of the last three layers is 4581113, 167, and 1943. They have different sizes (and digests, of course).
I've directly downloaded the matching blobs of size 164, 167, 1949, and 1943.
$ ls -al
total 24
drwxr-x---  2 chanseok primarygroup 4096 Jan  8 15:20 ./
drwxr-x--- 24 chanseok eng          4096 Jan  8 15:11 ../
-rw-r--r--  1 chanseok primarygroup  164 Jan  8 15:11 sha256_07ff609379c4cc1102bfcbc1287b937b415fec734dea0c677c81b5fa02080d09.tar.gz
-rw-r--r--  1 chanseok primarygroup 1949 Jan  8 15:14 sha256_6f212afac760ae70939c8c7c5615b9ad29a8789e9653eab51b4cb38e676bc177.tar.gz
-rw-r--r--  1 chanseok primarygroup 1943 Jan  8 15:16 sha256_7764472c834cceb655238358eeaba71f786e9cbc774fd9e09d85eba4b78b5771.tar.gz
-rw-r--r--  1 chanseok primarygroup  167 Jan  8 15:10 sha256_ecb239a1b6fa652b85fc78bfd5a98aa9957a35d4fc2726bc78bd3917546ef8e6.tar.gz

But it turns out that if I unzip these different layers, they become identical tarballs.
$ gunzip *gz
$ ls -l
total 40
drwxr-x---  2 chanseok primarygroup 4096 Jan  8 15:20 ./
drwxr-x--- 24 chanseok eng          4096 Jan  8 15:11 ../
-rw-r--r--  1 chanseok primarygroup 3584 Jan  8 15:11 sha256_07ff609379c4cc1102bfcbc1287b937b415fec734dea0c677c81b5fa02080d09.tar
-rw-r--r--  1 chanseok primarygroup 8704 Jan  8 15:14 sha256_6f212afac760ae70939c8c7c5615b9ad29a8789e9653eab51b4cb38e676bc177.tar
-rw-r--r--  1 chanseok primarygroup 8704 Jan  8 15:16 sha256_7764472c834cceb655238358eeaba71f786e9cbc774fd9e09d85eba4b78b5771.tar
-rw-r--r--  1 chanseok primarygroup 3584 Jan  8 15:10 sha256_ecb239a1b6fa652b85fc78bfd5a98aa9957a35d4fc2726bc78bd3917546ef8e6.tar
$ diff sha256_07ff609379c4cc1102bfcbc1287b937b415fec734dea0c677c81b5fa02080d09.tar sha256_ecb239a1b6fa652b85fc78bfd5a98aa9957a35d4fc2726bc78bd3917546ef8e6.tar
$ diff sha256_7764472c834cceb655238358eeaba71f786e9cbc774fd9e09d85eba4b78b5771.tar sha256_6f212afac760ae70939c8c7c5615b9ad29a8789e9653eab51b4cb38e676bc177.tar

So it's only because the gzipped blobs we produce doesn't always match with the blobs gzipped by Docker. And I also observed that sometimes they produce the exact same gzipped resource layer blobs, but other times, they don't even if nothing really has changed with the layer.
We don't have control over this gzip differences, so unfortunately, there's nothing much we can do.


[BUG] - NgxMatTimepickerLocaleService break compatibility with Angular 13

Describe the bug
I recently integrated your package to one of our applications and got stuck by #34. I was using v13.0.0, and I updated to v13.2.2 to try fixing the problem. I noticed the publication has latest-ng13 tag, but build gives me this error:
./node_modules/ngx-mat-timepicker/fesm2015/ngx-mat-timepicker.mjs - Error: Module build failed (from ./node_modules/@angular-devkit/build-angular/src/babel/webpack-loader.js):
TypeError: Cannot create property 'message' on string 'x:\workspaces\trinity\esaportal-front\node_modules\ngx-mat-timepicker\fesm2015\ngx-mat-timepicker.mjs: This application depends upon a library published using Angular version 14.0.1, which requires Angular version 14.0.0 or newer to work correctly.
Consider upgrading your application to use a more recent version of Angular.
  412 | }
  413 | NgxMatTimepickerBaseDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: NgxMatTimepickerBaseDirective, deps: [{ token: NgxMatTimepickerService }, { token: NgxMatTimepickerEventService }, { token: NgxMatTimepickerLocaleService }, { token: NGX_MAT_TIMEPICKER_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
> 414 | NgxMatTimepickerBaseDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.0.1", type: NgxMatTimepickerBaseDirective, selector: "[ngxMatTimepickerBase]", inputs: { color: "color", defaultTime: "defaultTime" }, host: { listeners: { "keydown": "onKeydown($event)" } },39m ngImport: i0 });
      |                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^[39m^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^[39m^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  415 | i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: NgxMatTimepickerBaseDirective, decorators: [{
  416 |             type: Directive,
  417 |             args: [{'

To Reproduce

Make a new angular v13 application
Add ngx-mat-timepicker v13.2.2 and use it in a template
Build angular application

Expected behavior
Build run with success
Versions

ngx-mat-timepicker version 13.2.2
@angular/core version 13.3.0
@angular/material version 13.3.0
typescript version 4.5.4

Hi, @Elvynia thanks for reporting...
I may have forgot to run a dependencies install when fixing the 34.
I'll publish a patch immediately.
Thanks for reporting


FLUID-5628: Fixing Broken and Bad links

@jhung, could you also update this to master while you're in there?


Fix Win32 building errors

We need build openssl with SHA functions so we drop no-sha0
We need add SSL and BOOST libs for libnamecoinconsensus_la linking.
I got error without

#include <boost/thread.hpp>

at db.cpp
Error:
game/db.cpp: In member function ‘void CGameDB::flush(bool)’:
game/db.cpp:236:7: error: ‘interruption_point’ is not a member of ‘boost::this_thread’
       boost::this_thread::interruption_point();

Thanks a lot for figuring this out (I guess it helps if you see the errors :D), merging.


Release Google.Cloud.TextToSpeech.V1 version 3.1.0

Changes in this release:
New features

Add LRS API (commit a37c5f3)

Created release for Google.Cloud.TextToSpeech.V1-3.1.0


TimeSpan option failing to parse with "bad format"

If defined a TimeSpan? property in my options and passed it as "00:30" from the commandline but it failed with "bad format".
Is this not supported?

I'm having the same problem with a nullable enum.


Optimise number of queries for resolving package versions

During Build, a single Tooling API query is made for the first occurrence of each package dependency version,  to resolve the LATEST keyword. This could be further optimised by sending only a single query with all the Package2 Id's aggregated and then sorting the response by package and descending semantic version.
Pro's:

1 query, instead of 'n' unique package dependencies

Cons:

Limit of 50,000 records returned per SOQL query
Additional computation on client-side for sorting response by package and version number
Cannot specify MajorVersion, MinorVersion, PatchVersion or BuildNumber in SOQL query, causing more records to be returned and additional sorting computation

@rody  Can you weigh in your thoughts here

something like:
SELECT Package2.Name, MajorVersion, MinorVersion, max(BuildNumber)
FROM Package2Version
WHERE (Package2.Name = 'logging' AND MajorVersion=0 AND MinorVersion=1)
 OR (Package2.Name = 'async-framework' AND MajorVersion=0 AND MinorVersion=1)
GROUP BY Package2Id, Package2.Name, MajorVersion, MinorVersion

with a dynamic WHERE section (note that you are limited in the size of that section)
I'm assuming that we are trying to find the latest build of a declared dependency, not the absolute latest package version


Git viewlet not reacting on creation / deletion of git folder

Refs: #33267

Have two folders in your MR workspace
First folder should have a git folder, second not
Outside of vscode initialize a git repository in the second folder
VSCode is not picking this up. Deleting the .git folder is also not being picked up

#33153


docs: add more badges

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 16.13%. Comparing base (1210567) to head (3df9731).

Additional details and impacted files
@@           Coverage Diff           @@
##             main      #18   +/-   ##
=======================================
  Coverage   16.13%   16.13%
=======================================
  Files          23       23
  Lines        1054     1054
=======================================
  Hits          170      170
  Misses        852      852
  Partials       32       32

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


State Export, Issue Templates, Basic IGTV, StickerService, Login And State Update

This PR adds a lot. I've added a lot of things, but some are maybe not that useful or final as they should be.
Here's a list of everything I've added:

Issue Templates as some issues are hard to understand or just don't contain enough information, I've added these.
IGTV has the ability to upload but not really to view. this needs work and isn't done yet.
StickerService tries to simplify the use of stickers. Stickers can now be added by passing a stickerConfig to ig.publish.story. ~(Example needs to be updated)~
State Update to v117. Although it's not really major, it adds new headers and thus a new way of handling them.
Login Update: a new field was added.
State Export is controversial. But the current way of doing it is not ideal. Now you can use exportState(saveConstants = false) and importState() without having to manually set the device-data.
This yields, as you can see in the example, very concise code.

Note: I'm not sure if my current way of handling the headers is correct so this should be validated.

Thank you for working with the IGTV. Been waiting for the upload functionality as the regular Ig upload is limited to only 1 min. Thanks for working on that, hoping we get the IgTv completed very soon.
Best regards.


physic: Add flag.Value implementation for Distance

Continuation of #303
Add max/min Distance consts
Add Tests
Add Examples
Add Benchmarks for Distance and ElectricalCurrent Set() for comparison.
BenchmarkElectricCurrentSet-4      	10000000	       211 ns/op	       8 B/op	       2 allocs/op
BenchmarkDistanceSet-4				10000000	       176 ns/op	       6 B/op	       2 allocs/op

This looks like a bit more complicated, but its not its just unrolled a little with and extra step in the middle for mm and Mm etc, and one at the end for the conversions.

Codecov Report

Merging #337 into master will increase coverage by 0.28%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master     #337      +/-   ##
==========================================
+ Coverage   71.82%   72.11%   +0.28%
==========================================
  Files         100      100
  Lines        9034     9118      +84
==========================================
+ Hits         6489     6575      +86
+ Misses       2377     2375       -2
  Partials      168      168

Impacted Files
Coverage Δ

conn/physic/units.go
100% <100%> (ø)
:arrow_up:

devices/lepton/lepton.go
88.41% <0%> (+1.21%)
:arrow_up:

Continue to review full report at Codecov.

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

gohci


support custom score api url as function param (and removed unused provider param)

fixes: https://github.com/snapshot-labs/snapshot.js/issues/402
Needs adjustments in more places once snapshot.js version gets bumped up.

@mktcode This looks good to me, ready to merge this, but the build is failing in GitHub actions with the below error:
src/index.ts → dist/snapshot.min.js...
[!] (plugin rpt2) Error: /home/runner/work/snapshot.js/snapshot.js/src/validations/basic/index.ts(19,26): semantic error TS2554: Expected 6 arguments, but got 4.
src/validations/basic/index.ts
Error: /home/runner/work/snapshot.js/snapshot.js/src/validations/basic/index.ts(19,26): semantic error TS2554: Expected 6 arguments, but got 4.
    at error (/home/runner/work/snapshot.js/snapshot.js/node_modules/rollup/dist/shared/rollup.js:5265:30)
    at throwPluginError (/home/runner/work/snapshot.js/snapshot.js/node_modules/rollup/dist/shared/rollup.js:17956:12)
    at Object.error (/home/runner/work/snapshot.js/snapshot.js/node_modules/rollup/dist/shared/rollup.js:18563:24)
    at Object.error (/home/runner/work/snapshot.js/snapshot.js/node_modules/rollup/dist/shared/rollup.js:18125:38)
    at RollupContext.error (/home/runner/work/snapshot.js/snapshot.js/node_modules/rollup-plugin-typescript2/src/rollupcontext.ts:37:18)
    at lodash_3 (/home/runner/work/snapshot.js/snapshot.js/node_modules/rollup-plugin-typescript2/src/print-diagnostics.ts:41:11)
    at arrayEach (/home/runner/work/snapshot.js/snapshot.js/node_modules/rollup-plugin-typescript2/node_modules/lodash/lodash.js:516:11)
    at _.each (/home/runner/work/snapshot.js/snapshot.js/node_modules/rollup-plugin-typescript2/node_modules/lodash/lodash.js:9342:14)
    at printDiagnostics (/home/runner/work/snapshot.js/snapshot.js/node_modules/rollup-plugin-typescript2/src/print-diagnostics.ts:9:2)
    at Object.transform (/home/runner/work/snapshot.js/snapshot.js/node_modules/rollup-plugin-typescript2/src/index.ts:242:5)

Yeah I saw that... didn't take a closer look yet. Will do today.

@mktcode This looks good to me, ready to merge this, but the build is failing in GitHub actions with the below error:

Resolved. I'm not so familiar with TypeScript and the syntax for setting the function param's default values was wrong.


Using X-editable together with Fields with choices #BUG

SS from example app,

@tiliv Any update on this? I appreciate if you can fix that.

This issue has been fixed simply by replacing 'dispatch' method with 'get' in base.py, also is available in my fork.

That is odd! I wonder why I had it set up that way before...  Thanks!

Oh that's right... I broke this when I introduced the request_method option by allowing the user to configure which method it used.  I'll get it patched with something.


Touchpad isn't working (10.15.3 Installer)

My XPS 9360 is currtently still on 10.13 and the touchpad is working fine. (Bios 2.62). I've downloaded your clover configuration and replaced the folders on the usb efi partition and booted in to the installer. In the installer the trackpad is not working (moving the mouse / clicking). Has anyone else ever experieced that problem ?

During installation, you may experience the mouse problem.
It's because the VoodooHID.kext may not injected during installation.
To solve the problem, you need external mouse connection on your own.
When booting into the system after installation, trackpad would work as normal.

I've still had the problem after the installation. The 2C and HID .kext in your repo are not up to date. There is a newer release. (2.3) https://github.com/alexandred/VoodooI2C/releases
However my Dell now runs perfectly, thanks a lot for your work :)

Although the I2C and HID are not the newest version, it still works well on my fresh install last month on Catalina 10.15.2
Well, the kext will be updated in few days.


shouldNotBe and shouldNotReturn

Is there any interest in adding the following combinators?
shouldNotBe :: (Show a, Eq a) => a -> a -> Expectation
actual `shouldNotBe` expected =
    unless (actual /= expected) (expectationFailure msg)
  where
    msg = "Value was exactly what it shouldn't be: " ++ show expected

shouldNotReturn :: (Show a, Eq a) => IO a -> a -> Expectation
action `shouldNotReturn` unexpected = action >>= (`shouldNotBe` unexpected)

I found myself wanting shouldNotReturn for the following test:
      writeFile exampleFilePath exampleWrongContent
      doesFileExist exampleFilePath `shouldReturn` True
      readFile exampleFilePath `shouldReturn` exampleWrongContent

      myFuncHere -- expected to alter the exampleFilePath file
      doesFileExist exampleFilePath `shouldReturn` True
      readFile exampleFilePath `shouldNotReturn` exampleWrongContent

We already have them in Test.Hspec.Expectations.Contrib.  I think I would be fine by now to expose them from Test.Hspec.Expectation. PR anybody?


SEP-24 deposit in progress pulls transaction update for few seconds then ends with error of Failed to fetch

What version are you using?
I should be using the latest version, as I'm accessing the demo wallet from this URL (https://demo-wallet.stellar.org)
What did you do?
Testing (SEP-24) as an anchor https://anchorsb.paychant.com/.well-known/stellar.toml
What did you expect to see?
Once the transaction has been initiated, then the start button was clicked from the "SEP-24 Deposit" modal, the "SEP-24 deposit in progress" should still be active (checking the transaction by pulling for update), until the opened URL window closes or the transaction failed/completed.

What did you see instead?
Instead the "SEP-24 deposit in progress" display for a few seconds (checking the transaction by pulling for an update for a few seconds), then it stopped with the error of Failed to fetch while the opened URL window was still active.

@gabrieladeniji, thank you for reporting this. I couldn't reproduce this by doing a basic SEP-24 deposit (no custodial mode and no SEP-9 fields selected). Does it work for you with this account?
Any extra information you can provide will help us figure out what is wrong here. I'm not sure why the https://anchorsb.paychant.com/sep24/transaction would be blocked for you. It was still OK for me with an ad block in Chrome.

Yes, it works for me now account
I think the issue was with my Chrome browser calling for an update, as soon as I finished updating it, everything started working properly (no more pulling for an update for a few seconds again)
thanks @quietbits


Always self-deafen

This pull request...

[ ] Fixes a bug
[ ] Introduces a new feature
[x] Improves an existing feature
[ ] Boosts code quality or performance

Description
Self-deafen when joining voice channels.
Purpose
Saves bandwidth & makes people less paranoid over the bot listening to them.
Relevant Issue(s)
Resolves #519

NOOOOOOOOOOO T-T
I will still use 0.3.9 because I'm happy when my friends think of my bot as a human, not a bot lol

At least, make it a setting in the config file please (true by default, I suppose)
Auto-self-deafen is a nice feature, but it should not be forced


west.yml: stm32f4: Use Legacy Ethernet HAL

A new HAL API was delivered in latest STM32F4 package.
Default to legacy eth API until Zephyr STM32 ethernet
driver is updated to support this new API.
Fixes #44486
Signed-off-by: Erwan Gouriou<EMAIL_ADDRESS>

Fixes #44486

I would avoid closing #44486 until https://github.com/zephyrproject-rtos/hal_stm32/pull/138 merges and the anchor is corrected.

@stephanosio any idea why compliance is failing at the pip install phase with ERROR: No matching distribution found for astroid<=2.12.0-dev0,>=2.11.2 (from pylint)?

@mbolivar-nordic re-ran the failed job and it now succeeds; it was probably a faulty package that was pushed to the PyPI.

@erwango - what is the likelihood that this issue might exist in v2.7?


Support hot-reloading of code changes

I didn't spot any support in the samples for debuggable hot reloading so I'm submitting an additional sample as PR https://github.com/microsoft/mixed-reality-extension-sdk-samples/pull/49 in case its helpful to anyone else. Usage is detailed in the README.md for the new sample.

After talking with eanders-MS I've reworked the PR to integrate the debuggable hot reloading into the existing samples.


Cleanup circuit observability

Out of #224, claw back stats and log emitting code into the Circuit object from
ServiceProxy.
Slightly changes log messages which will require an update to analysis tooling.
May be marginally faster as it reduces the number of string concats on hot path.

+1

Think it broke tests becuase logger.whitelist()


Another problem with stop()

I am using the ToneExample on Arduino UNO which appears to have much smoother acceleration and deceleration over the BasicExample.
The circuit has a SPDT switch (ON-OFF-ON) which is being used to select, Left, Right or Stop.
If I only use stop(); in the else statement the stepper just continues to rotate. Only when I use spin(0); can I get the stepper to decelerate and stop. Do I have a coding issue or is there something else occurring?
ContinuousStepper_Left_Right_Stop.zip

Hi @Rocket-Rod,
You must call loop() for stop() to work.
Looking at your code, I can see that loop() it not always called; you should move it out of the if block.
Best regards,
Benoit

Hi Benoit,
Thank you for the feedback. I have moved stepper.loop() as you suggested. However, I am getting quite strange results as I will try my best to explain.
ContinuousStepper_BASIC accelerates much faster than is configured (almost immediately). With Spin(400) & setAcceleration(50) I would expect the time to reach the target speed to be approx. 8 seconds. This is not occurring in my project as can be seen in both the video & the printed timeline. Deceleration appears to be good except not as smooth as TONE.
ContinuousStepper_TONE also accelerates much faster (much the same as BASIC). Deceleration is very smooth and within the expected time except (approx. 8s) but as it comes to a complete stop there appears to be some jerking motion happening.
As I am somewhat inexperienced I am hoping you can point out what I may be doing wrong.
Kind Regards
ContinuousStepper_Basic.zip
ContinuousStepper_Tone.zip

https://github.com/bblanchon/ArduinoContinuousStepper/assets/105567951/41acb69c-d2a1-43f4-a708-091968dd4418
https://github.com/bblanchon/ArduinoContinuousStepper/assets/105567951/5658fb3c-a208-4d07-b76c-e717e3c1c704

Thank you very much for reporting this issue with clear details, code, and even videos 👍
I'll take more time to investigate and hopefully solve it, but here is what I can tell you after a quick glance.
I'm pretty sure the acceleration issue is caused by the fact that your program calls spin() continuously instead of just when it needs to change the speed.
I can probably work around this issue by measuring the elapsed time between calls to spin().
Meanwhile, please try to call spin() only when the buttons change state, and let me know if it fixes the issue.
I suspect the issue with the Tone library is due to the 31 Hz lower limit.
Can you confirm that you are using an AVR microcontroller?
I can probably work around this issue by setting a minimum speed of 31 steps/seconds.

Hi Benoit,
I can confirm that only calling spin() once allows acceleration to work much better. I also noted that as setAcceleration() values are increased a decline in jerky stops is observed. At setAcceleration(400) almost smooth stops occur.
I am using an Arduino UNO R3 & please correct me if I am wrong, but my limited research indicates these are in family of AVR microcontrollers.
Thank you once again for providing valuable guidance & understanding.
Kind Regards
ContinuousStepper_Tone_V2.zip

Thank you for the update, @Rocket-Rod.
Arduino UNO R3 uses an AVR microcontroller, which confirms the 31Hz theory.
I'll fix these issues in a new library version in a few days.

I just published version 3.0.2 of the library to address these issues.
It should be available in the Library Manager in a few hours.


Bug in LayerNormalization when assigning axis to other than -1 while using a keras.utils.Sequence data generator

when using a datagenerator (keras.utils.Sequence ) to fit your data. you cannot set the LayerNormalization axis to anything other that -1
I have tested this on BatchNormalization and it produces the same error
so first here is my simple demo data generator
class DataGenerator(keras.utils.Sequence):
    def __init__(self, X1,  y1, batch_size):
        self.X1 = X1
        self.y1 = y1
        self.batch_size = batch_size

    def __len__(self):

        return int(np.ceil(len(self.y1) / self.batch_size))

    def __getitem__(self, idx):
        batch_x1 = self.X1[idx * self.batch_size:(idx + 1) * self.batch_size]
        batch_y1 = self.y1[idx * self.batch_size:(idx + 1) * self.batch_size]

        return batch_x1 , batch_y1

and here is the demo model
shape = (30,90,30,1)
input_shape = (90,30,1)

input = keras.layers.Input((90,30,1),name='input_a')

output = keras.layers.LayerNormalization(epsilon=1.3456e-8,axis=-2')(input)

mod = keras.Model(input,output)
data = np.random.random(shape)
y = np.random.random(shape)

dataset = DataGenerator(data,y,10)

mod.compile(keras.optimizers.Adam(0.001),'mse')

Now this is all fine if you set axis to -1 with model.fit(dataset) or if you set axis to -2,-3 for model.fit(data,y) it will complete the training...
but if you set axis to -2 with model.fit(dataset) this is going to produce this error
    File "C:\Users\moh\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\keras\src\engine\training.py", line 1401, in train_function  *
        return step_function(self, iterator)
    File "C:\Users\moh\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\keras\src\engine\training.py", line 1384, in step_function  **
        outputs = model.distribute_strategy.run(run_step, args=(data,))
    File "C:\Users\moh\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\keras\src\engine\training.py", line 1373, in run_step  **
        outputs = model.train_step(data)
    File "C:\Users\moh\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\keras\src\engine\training.py", line 1150, in train_step
        y_pred = self(x, training=True)
    File "C:\Users\moh\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\keras\src\utils\traceback_utils.py", line 70, in error_handler
        raise e.with_traceback(filtered_tb) from None

    TypeError: Exception encountered when calling layer 'layer_normalization' (type LayerNormalization).

    Failed to convert elements of [1, 1, None, 1] to Tensor. Consider casting elements to a supported type. See https://www.tensorflow.org/api_docs/python/tf/dtypes for supported TF dtypes.

    Call arguments received by layer 'layer_normalization' (type LayerNormalization):
      • inputs=tf.Tensor(shape=(None, None, None, None), dtype=float32)

I found a work around this
Reshape the input with its original shape!
This is not Ideal and if anyone reads my code he will think I am crazy but it seems to do the job
shape = (30,90,30,1)
input_shape = (90,30,1)

input = keras.layers.Input((90,30,1),name='input_a')
reshape = keras.layers.Reshape(input_shape)(input)
output = keras.layers.LayerNormalization(epsilon=1.3456e-3,axis=-2)(input)

mod = keras.Model(input,output)

I was able to run the code successfully by setting axis=-2 and -3 without any errors using Keras 3.
Here is the attached Gist   and let me know if I'm missing something.

Yes! , it was a bit strange when I ran it on colab, then I realized we were working on different versions of keras. I ran the code on my local machine on keras==2.15.0 I think tensorflow requires that specific version-not sure- but you're welcome to correct me
anyway , I added one line to it and it produced the same error !pip install keras==2.15.0

It is suggested to use Keras 3, from Tensorflow 2.16 it also uses Keras 3 as a backend, TensorFlow 2.16 will be released in a week or so.
I think we can close this issue.

No ,
This is a valid bug and needs fixing, you said tensorflow 2.16 will be released in a week or so , it’s been two weeks now
This is not
Get Outlook for iOShttps://aka.ms/o0ukef

From: github-actions[bot] @.>
Sent: Friday, March 15, 2024 4:48:19 AM
To: keras-team/keras @.>
Cc: jrnjf @.>; Author @.>
Subject: Re: [keras-team/keras] Bug in LayerNormalization when assigning axis to other than -1 while using a keras.utils.Sequence data generator (Issue #19239)
This issue is stale because it has been open for 14 days with no activity. It will be closed if no further activity occurs. Thank you.
—
Reply to this email directly, view it on GitHubhttps://github.com/keras-team/keras/issues/19239#issuecomment-1998771040, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ASIVIPKE2OJYSF4MUXPVLE3YYJHOHAVCNFSM6AAAAABD6FYE2CVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSOJYG43TCMBUGA.
You are receiving this because you authored the thread.Message ID: @.***>

@jrnjf , TensorFlow 2.16.1 is out few days back, could you please test it using the specified version and let us know the outcome. Thanks!


ESP32-C6 / IDF5 (US-109)

Hi,
I am experimenting with the 2 worlds system with an esp32-S3 and IDF version 4.4.3. (For now, I am impressed by the possibilities that this system opens up).
However, I faced some issues when trying to use it on a esp32-c6. Is it planned to support the IDF version 5.x and newer versions of esp32 (for example, esp32-c6) ? If not, do you have suggestions in order to make it compatible ?
Concerning the performance impact of a VFS layer, Could you confirm that  that each read / write operation will behave as a system call (thus 127 CPU cycles ) ?
Thanks in advance
Jean-Christophe Bauduin

@jbd0101
Sorry that somehow I didn't get notification for this issue.

However, I faced some issues when trying to use it on a esp32-c6. Is it planned to support the IDF version 5.x and newer versions of esp32 (for example, esp32-c6) ?

About the newer version, following pointers can be helpful for ESP32-C3 support with v5.2 IDF:
https://github.com/mahavirj/esp-privilege-separation/tree/feature/esp_idf_v5.2
https://github.com/mahavirj/esp-idf/tree/feature/esp_privilege_separation_idf_5_2
Long term plan is to merge the patches in IDF tree itself, and then expose some config option.
Regarding ESP32-C6, we haven't yet planned for the support. But we can evaluate it further. Any specific requirements you have here?

Concerning the performance impact of a VFS layer, Could you confirm that that each read / write operation will behave as a system call (thus 127 CPU cycles ) ?

Yes, that is true.
Hope this helps!

Hi,
thanks for your reply :-)
I'm happy to see that PSF is still in (active) development, I used it for my master thesis and it is very promising .
Concerning the C6, I think that it doesn't include the 2 world controller, thus will it be possible to integrate it elegantly ?
The idea would be to use the C6 and PSF  for a research , however I can work with a S3/C3 too.
Have a nice day.


chore(ci): add Harden Runner when running the PR Action workflow

I don’t remember: did we intentionally not call the Harden Runner Action here?

I don’t remember: did we intentionally not call the Harden Runner Action here?

I think we removed it because we use commitizen Python package instead of the external GHA PR title linter.

So we trust cz to behave, and don’t need to monitor/harden that particular runner?
Close this issue, maybe leave a comment in the Action?

Closing this without merging as per above conversation.


chore(deps): upgrade dependencies

Upgrades project dependencies. See details in workflow run.

Automatically created by projen via the "upgrade-k8s-24-main" workflow

⚪ Backport skipped
The pull request was not backported as there were no branches to backport to. If this is a mistake, please apply the desired version labels or run the backport tool manually.
Manual backport
To create the backport manually run:
backport --pr 2143

Questions ?
Please refer to the Backport tool documentation


CMS Decryption fails randomly with BouncyCastle encrypted

We are using the Java BouncyCastle lib to create CMS and sign it. We use openssl to decrypt it. This is working pretty well but randomly a CMS cannot be decrypted using OpenSSL but works fine with BouncyCastle.
We tested with various version of BC and OpenSSL and the error is the same .
OpenSSL error is :
Error decrypting CMS structure
22472:error:06065064:digital envelope routines:EVP_DecryptFinal_ex:bad decrypt:crypto\evp\evp_enc.c:612:
We have the CMS and private key to replicate the issue but this cannot be communicated privately for security purpose.

What are the algorithms used in the CMS file? This sounds like some encryption key or plaintext padding discrepancy between BC and OpenSSL.

Also what openssl version is being used?

Test are conducted with OpenSSL 1.1.1q  5 Jul 2022
First few char of the first line of the expected file, also obtained with BC or .Net

Invalid one with Openssl:

Also, the invalid file has almost the same size than the good one

I've just found that setting the -recip in the command line solved the issue. What could cause this issue when not giving the -recip

Yes, you must add -recip if there are multiple recipients to be able to decrypt messages without such random errors. Due to API hardening the RSA decryption does not return error but actually decrypts to a random key, otherwise Bleichenbacher attacks are possible against the private key due to timing or other side channel leaks.


Integer/Float operations

Codecov Report

Merging #68 (d6412c2) into main (b25f770) will increase coverage by 0.13%.
The diff coverage is 99.36%.

@@            Coverage Diff             @@
##             main      #68      +/-   ##
==========================================
+ Coverage   97.53%   97.67%   +0.13%
==========================================
  Files          82       86       +4
  Lines        4667     4982     +315
==========================================
+ Hits         4552     4866     +314
- Misses        115      116       +1

Flag
Coverage Δ

pytest
97.67% <99.36%> (+0.13%)
:arrow_up:

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

Files Changed
Coverage Δ

pylegend/core/language/primitives/float.py
97.01% <98.11%> (+4.15%)
:arrow_up:

pylegend/core/language/primitives/integer.py
97.36% <98.36%> (+10.70%)
:arrow_up:

...ylegend/core/databse/sql_to_string/db_extension.py
98.50% <100.00%> (ø)

...language/operations/float_operation_expressions.py
100.00% <100.00%> (ø)

...nguage/operations/integer_operation_expressions.py
100.00% <100.00%> (ø)

pylegend/tests/core/database/test_sql_to_string.py
100.00% <100.00%> (ø)

...egend/tests/core/language/primitives/test_float.py
100.00% <100.00%> (ø)

...end/tests/core/language/primitives/test_integer.py
100.00% <100.00%> (ø)


feat: auto save sessions before next user input

Why
Currently we only save the session file when user exits the goose successfully.  When user exits goose unexpectedly, the session file is not saved.
What

Save the session file every time before prompting for user input.
Add the optional argument name for session start.  If the name is not specified, use an auto-generated name as session name

Note
Added the log level option to session resume, and session planned. This is not relevant to this feature. It is a followup of https://github.com/square/goose/pull/80

so is this a fix to #89?

could we merge #76 before we land this change (i don't have the ability to merge to main)? it'll add autocomplete to session selection :)

could we merge #76 before we land this change (i don't have the ability to merge to main)? it'll add autocomplete to session selection :)

Merged PR. Thanks for the heads-up!

so is this a fix to #89?

Yes, it is related to.  This PR contains 2 parts:

auto-save sessions

allow user to specify session name so that we can create/read the file with the session name at the beginning of the session. More info in the following comments soon

I was about to mention this issue in the PR, but forgot! Thanks for the reminder!

@lifeizhou-ap so if I specify the session name as an arg, and I "exit" the prompt, no more duplicate prompting after this change? or do we still have that.

@lifeizhou-ap so if I specify the session name as an arg, and I "exit" the prompt, no more duplicate prompting after this change? or do we still have that.

There will be no more prompting at the end of the session.  At the beginning of the session, we show a message about the session name and the location of the session file.


Wireguard Widget enhancement.

Important notices
Before you add a new report, we ask you kindly to acknowledge the following:

[x] I have read the contributing guide lines at https://github.com/opnsense/core/blob/master/CONTRIBUTING.md

A clear and concise description of what the problem is including your motivation for the request,
No issues with the widget at all but would love enhancements to the widget that consist of adding green dot when wireguard connection is connected and gray when disconnected.

You got it Mr opnsense-bot


test_lowest_point failing in 10.3 Jenkins test

http://vjenk01.esri.com:8080/job/Daily Build - solutions-geoprocessing-toolbox/234/console
test_lowest_point:
[exec] Starting Test: LowestPoint
[exec] Creating New Scratch Workspace (Workaround)
[exec] Valid Object: samplePolygonArea
[exec] Valid Object: Jbad_SRTM_USGS_EROS
[exec] Valid Object: Visibility And Range Tools.tbx
[exec] Running from: C:\Program Files (x86)\Jenkins\workspace\Daily Build - solutions-geoprocessing-toolbox\common\test\test_viz_and_range
[exec] Geodatabase path: C:\Program Files (x86)\Jenkins\workspace\Daily Build - solutions-geoprocessing-toolbox\common\data\geodatabases
[exec] Input FeatureClass: C:\Program Files (x86)\Jenkins\workspace\Daily Build - solutions-geoprocessing-toolbox\common\data\geodatabases\test_inputs.gdb\samplePolygonArea
[exec] Input Feature Count: 1
[exec] ERROR: Executing: GetCount "C:\Program Files (x86)\Jenkins\workspace\Daily Build - solutions-geoprocessing-toolbox\common\data\geodatabases\test_outputs.gdb\LowestPoint"
[exec] Start Time: Mon Aug 18 20:40:08 2014
[exec] Failed to execute. Parameters are not valid.
[exec] ERROR 000732: Input Rows: Dataset C:\Program Files (x86)\Jenkins\workspace\Daily Build - solutions-geoprocessing-toolbox\common\data\geodatabases\test_outputs.gdb\LowestPoint does not exist or is not supported
[exec] Failed to execute (GetCount).
[exec] Failed at Mon Aug 18 20:40:08 2014 (Elapsed Time: 0.00 seconds)

Added to Asana - https://app.asana.com/0/23179693844547/23186355169309

@ACueva This test seems to be running as of today.. on my local machine of course. Can we verify it is running in Jenkins tests?
test_lowest_point:
     [exec] Starting Test: LowestPoint
     [exec] Creating New Scratch Workspace (Workaround)
     [exec] Valid Object: samplePolygonArea
     [exec] Valid Object: Jbad_SRTM_USGS_EROS
     [exec] Valid Object: Visibility And Range Tools_10.3.tbx
     [exec] Running from: C:\Users\matt2542\Documents\GitHub\solutions-geoprocessing-toolbox\visibility\test\test_viz_and_range
     [exec] Geodatabase path: C:\Users\matt2542\Documents\GitHub\solutions-geoprocessing-toolbox\visibility\data\geodatabases
     [exec] Input FeatureClass: C:\Users\matt2542\Documents\GitHub\solutions-geoprocessing-toolbox\visibility\data\geodatabases\test_vis_and_range_inputs.gdb\samplePolygonArea
     [exec] Input Feature Count: 1
     [exec] <string>:1: SyntaxWarning: import * only allowed at module level
     [exec] Output FeatureClass: C:\Users\matt2542\Documents\GitHub\solutions-geoprocessing-toolbox\visibility\data\geodatabases\scratch.gdb\LowestPoint
     [exec] Output Feature Count: 35
     [exec] Deleting Scratch Workspace (Workaround)
     [exec] Test Successful

Closing this as unverified.


Expose tape's fail function

It would be nice to use fail in some cases for integration and functional tests.
Example:

without try/catch an error below would cause the node to crash resulting in none of the remaining tests to be ran.
Using try/catch without fail would require compromises like using let instead of const outside the try statement.

import { describe } from 'tape'
import { addEntity, getEntity } from './my-module'

describe('addEntity', async should => {
   const { assert, fail } = should()
  {
    const myEntity  = { id: 'baz', foo: 'bar' }
    try {
      const response = await addEntity(myEntity)
      const storedEntity = await getEntity(response.id)
      assert({
        given: 'an entity',
        should: 'read the same entity from the api',
        actual: storedEntity,
        expected: myEntity
      })
    } catch(error) {
      fail('failed to add and read entity', { myEntity, error })
    }
  }
})

Here is my original use case https://github.com/poetapp/node/pull/429, currently just letting it crash because the try/catch was odd without fail being available.

I started working on a PR for this on Friday, but I realized that exposing fail might go against RITEways philosophy, from the README:
RITEway forces you to write Readable, Isolated, and Explicit tests, because that's the only way you can use the API

Maybe if we need fail we should be using tape directly?


Feature Request: Adding in install buffer to estimation times

Problem:
Sometimes users look at the estimates for the download and go "well how come it says an estimated 2 minutes 20 seconds, but it took 15 minutes to complete?" Well, they aren't grasping that its download time and not install time being presented to them.
Solution:
Add in a buffer to the block of configuration variables that we can add in a set amount of seconds to apply to the estimates. Made it individual so to give full customizability if certain configurations take longer than others due to the packages being installed.
configurationInstallBuffer="480"     # Buffer time added to estimates to include installation time of packages, in seconds. Set to 0 to disable.

configurationOneInstallBuffer="480"     # Buffer time added to estimates to include installation time of packages, in seconds. Set to 0 to disable.

configurationTwoInstallBuffer="600"     # Buffer time added to estimates to include installation time of packages, in seconds. Set to 0 to disable.

configurationThreeInstallBuffer="720"     # Buffer time added to estimates to include installation time of packages, in seconds. Set to 0 to disable.

configurationOneEstimatedSeconds=$( echo "scale=2; ((((( $configurationOneSize / $mbps ) * 60 ) * 60 ) * $correctionCoefficient ) + $configurationOneInstallBuffer)" | bc | sed 's/\.[0-9]*//' )
configurationTwoEstimatedSeconds=$( echo "scale=2; ((((( $configurationTwoSize / $mbps ) * 60 ) * 60 ) * $correctionCoefficient ) + $configurationTwoInstallBuffer)" | bc | sed 's/\.[0-9]*//' )
configurationThreeEstimatedSeconds=$( echo "scale=2; ((((( $configurationThreeSize / $mbps ) * 60 ) * 60 ) * $correctionCoefficient ) + $configurationThreeInstallBuffer)" | bc | sed 's/\.[0-9]*//' )
configurationCatchAllEstimatedSeconds=$( echo "scale=2; ((((() $configurationCatchAllSize / $mbps ) * 60 ) * 60 ) * $correctionCoefficient ) + configurationInstallBuffer)" | bc | sed 's/\.[0-9]*//' )

Happy Thursday, @karatetrigger!
Thanks for the FR; please confirm that the already available correctionCoefficient  does NOT meet your use-case.

It does not as the different configurations would at least require different "fudge factors" in my case, as the factor would need to increase with more packages requiring to be installed. Modifying the correctionCoefficient didn't seem to give me the results and times I was looking for across the board, so it felt easier to just after a few times running through it on a machine, get a good estimate of time it takes to run through the configuration, add that in seconds to the estimate, and gave a much better result.

I did leave that in there in the math for the estimates in seconds, as even leaving it at 1.01 or slightly more, accounts for the smallest factors in kbps download speeds, but in total it did not answer the full problem it was trying to solve.

Thanks for the additional information.

Addressed in Setup Your Mac 1.12.0.


algorithm=round_trip does not work in GH Maps

The routing request is not triggered. Probably because there is just one point parameter

I'm trying to figure out how to use the round_trip algorithm. I haven't really found any documentation in the Routing API docs https://graphhopper.com/api/1/docs/routing/
I have received an error message saying:

"Round trips must have exactly 1 point"

It doesn't make much sense to me that the round_trip algorithm only works when 1 point is on the 'route'. It only makes sense to me when there are at least 2 points, so for example, I can calculate how to go from point A to point B, and then, without adding anything else than the round_trip algorithm, it will automatically calculate how to go back to point A.
Perhaps what this bug is saying is that the round_trip algorithm doesn't work at all at the moment?

No, it works (see the tests) but the demo UI currently is too restrictive and cannot show it.

It doesn't make much sense to me that the round_trip algorithm only works when 1 point is on the 'route'.

A round_trip is defined using one point, the distance and an optional heading. I do not see how 2 points could make sense for a round_trip.

I think carlos-mg89 thinks of a round trip as going from A to B and back to B again. The round_trip algorithm in GH uses some heuristic/parameters (described in api-doc.md) to automatically calculate a roundtrip of given length, heading etc. back to a given starting point.

Ohhh! Now I understand what you meant by round_trip. I was thinking it'll calculate the way back, given a set of waypoints (route stops).
Then it isn't what I was looking for. I'll simply add the same waypoints to the request to calculate the way back.
Thank you, and sorry for writing something that has nothing to do with this algorithm.
Yeah, that's what I thought for a round trip @ammagamma :)


Accent characters getting translated during Institution file upload(Bulk Offerings | Bulk Withdrawal)

Describe the task
During the effort #2504 we noticed a bug after updating the file reading with ASCII, the bug is that the accent characters like áéíó are being translated and saved to SIMS db.
NOTE: It is assumed that file integrations are not affected. But confirmation required on the same.
Acceptance Criteria

[ ] Find the root cause and fix this translation happening. Test with characters áéíó

@JasonCTang 7 beats or 8 beats?

As stated in the nodejs documentation when the encoding is set to ASCII the most significant bit will be unset causing the characters to be changed, as per the example below.

The same would not happen it latin1 is used as per stated by the documentation.

As per the meeting, @JasonCTang will schedule some time with IMB to try to settle the questions.

Considering integrations through file upload and STFP(institutions, ESDC, etc.) is it ok to use regular ASCII (7bits) or can we use ASCII Extended/ISO-8859-1 (8 bits)?

Files generated to the SFTP (Buffer.from)
While creating the files to be uploaded to the SFTP both ascii and latin1 resulted in the same bytes.

Char(áéí)
Encoding

UTF-8
195, 161, 195, 169, 195, 173

ASCII
225, 233, 237

Latin1(ISO8859-1)
225, 233, 237

Sample file generated with UTF8

Sample file generated with ASCII and Latin1(ISO8859-1) where the same result was produced

@JasonCTang FYI

@JasonCTang organized a meeting with IMB and there was some progress.
As per confirmed by Johnson, Harold:
"I’ve verified that I can load, store, display and extract those ASCII special characters (as 1 byte) with no problems, from an SFAS point of view, including doing merges/etc. with any SIMS data containing those characters."
@JasonCTang also checked with Finsatra and apparently, they would not support anything beyond ASCII 7bits (non-extended characters support at all).
We will have a new follow-up call to discuss the next actions.
Current assumptions

File uploaded through SFTP can be handled by the Ministry including extended characters but Fisnatra would not be able to process them.

Questions to possibly lead further discussions.

Should we somehow convert the bytes sent to the SFTP? One possible solution would be to remove the most significant bit following the same approach Nodejs buffer uses when defined for ASCII encoding.
Can we keep files uploaded to SIMS allowing the extended ASCII (ISO8859-1)?
How should we handle the files sent to the SFTP to the institution?

As per @JasonCTang conversation with Finastra, the direction from would be: "They want any accented letters to be converted into the non-accented version of the character.".
That triggers the question of what to do with other non-Finastra files, for instance, ESDC SIN validation. If we apply the same conversation, will the SIN validation continue to work as expected?

The last conversations with @JasonCTang led to the below conclusions.

Files generated by SIMS should follow ASCII (7-bit) only.
Files uploaded to SIMS by institutions may receive ASCII extended (8-bit/latin1/ISO8859-1 or other if the Ministry desires).
SIMS must be adapted to convert all data for files generated into ASCII (7-bit).

Conversation to  ASCII (7-bit)
1 - Set the most significant bit to 0 in the same way described in the nodejs documentation (source).
'ascii': For 7-bit ASCII data only. When encoding a string into a Buffer, this is equivalent to using 'latin1'. When decoding a Buffer into a string, using this encoding will additionally unset the highest bit of each byte before decoding as 'latin1'. Generally, there should be no reason to use this encoding, as 'utf8' (or, if the data is known to always be ASCII-only, 'latin1') will be a better choice when encoding or decoding ASCII-only text. It is only provided for legacy compatibility.
2 - Create a conversion table to translate the most common characters as much as possible, for instance, áâã would be translated to a.
3 - Convert any byte over 127 to unknown characters, for instance, "?" where a string like André would be converted to Andr?.
As per the conversation, the desired approach would be a combination of approaches 2 and 3.


Provide ARM64 builds

Some poor souls with 32-Bit machines exist, also ARM64 is on the rise, consider adding project configurations to support the mentioned architectures.

bump

Please refrain from nonsense like this, this isn't Reddit. All you do is spam.

I can make and test ARM64 binaries now, forget 32bit though, the future is now!

Would also greatly appreciate ARM64 builds. :)
The installer errors out currently for an error installing Visual C++, despite it already being installed.

The installer errors out currently for an error installing Visual C++, despite it already being installed.

That's the absolute least of our problem, neither the setup nor the driver are made with ARM64 in mind so anything can happen.


tici: no SIM ID but SIM shows up later

https://useradmin.comma.ai/?onebox=35c5508223abd40e

Is this fixed by https://github.com/commaai/openpilot/pull/31680?

potentially

Seems to be an issue with the SIMs


Add Git Stage action to editor title (#187893)

This PR closes #187893
For git users it adds a Stage button to the editor title of a file with unstaged changes.

To achieve this I first added to core a new context key scmActiveResourceGroupMemberships which is an array of string ids of the resource groups the active resource is present in. The built-in Git extension uses this to contribute its Stage command to the title of an editor with unstaged changes.
I had to work around a limitation of the where-clause's in operator, which can only search an array-type context key for a value that matches another context key, not a constant.
I also used fractionally-negative order suffixes on the added command git.stage and its already-existing cousin git.openChange so they are adjacent but don't precede any editor/title/run contribution (screenshot shows this coming from the vscode-mock-debug extension).
If any existing users are upset by this button appearing they can easily use its context menu to demote it to the ... menu.

/assign @lszomoru

Updated from main and ready for your consideration @lszomoru

@lszomoru any thoughts yet about this PR, which I submitted last August in response to you tagging the associated issue as "help wanted"?

I think that this requires ability to hide the actions from the More Actions menu too. Currently, hiding buttons on this toolbar puts them to the menu, that becomes an issue if custom Extension fills that menu with custom items.

Rebased to main then force-pushed to resolve complex conflict.
Also fixed Command Palette Git: Stage Changes not working for an untracked file if "git.untrackedChanges": "separate".

Sorry for not getting back to you on this until now.

To achieve this I first added to core a new context key scmActiveResourceGroupMemberships which is an array of string ids of the resource groups the active resource is present in. The built-in Git extension uses this to contribute its Stage command to the title of an editor with unstaged changes.

This is problematic from a performance perspective since you can have a large number of changed resources and we do not want push all this information from the git extension to core as a context key. We already have commands contributed by the git extension git.stageChanges and git.stageFile so we should find a way to surface these in the editor toolbar. We do have new API on core that "attaches" diff information to a TextEditor so maybe that is something that we could use. Let me think about it.

I'm not clear where you are seeing my PR causing the Git extension to push a lot of data into core as a context key. Its constructor sets context keys for when-clauses to use with the in operator. The other new context key is maintained core-side.

I wonder why this could not be implemented exclusively in the vscode.git extension:

listen to onDidChangeActiveTextEditor, and set a context key if the resource is part of the working tree group
use that context key to add the command to the editor title action bar


fix(line-clamp): fix line-clamp rely on break-all

before, we complete line-clamp-${num} rely on break-all

now.

i think  line-clamp-${num}  has a strong purpose and should carry break-all itself.

Tailwind's line clamp does not include it https://github.com/tailwindlabs/tailwindcss-line-clamp I guess we better align with it?


Fat arrow binding and the 'this' context

Diving into ohm today and had a brief question about the ES6 fat arrow and losing my this context within the call to grammar's addOperation method. Here's the gist:
In ES5-land...
// Using ES5 syntax, `this` is the object we expect (has the properties, etc.)
const sem = grammar.createSemantics().addOperation('toJS', {
  Number: function (arg) {
    return parseInt(this.sourceString, 10)
  }
})

Meanwhile in ES6-land...
// Using ES6 syntax, `this` is undefined; `arg` provides the expected context
const sem = grammar.createSemantics().addOperation('toJS', {
  Number: (arg) => {
    return parseInt(arg.sourceString, 10)
  }
})

As I understand it, the ES6 => binds the expected context to inner function. So the ES6 behavior above was unexpected (I could be missing something fundamental though...). Thanks in advance for any pointers here. Also thanks for the great work—been following this for a while and now digging in!

In ES6 arrow functions, the value of this inside the function is the same as its meaning outside the function. Basically, it's equivalent to the following:
Number: (function(arg) {
  ...
}).bind(this)

This means that arrow functions aren't really appropriate for defining methods inside an object literal (as is the case here) because methods need a dynamic this.
The two examples you've given above are doing different things. In Ohm, the arguments to a semantic action always represent the child nodes of this. So in your ES6 example, you are getting the sourceString property of the child of the Number node. Depending on your grammar, this might have the same value as the property of the Number node (this.sourceString in your first example) -- but it's a different object.
Long story short, when writing semantic actions in ES6, you probably want to use the new method shorthand rather than arrow functions:
const sem = grammar.createSemantics().addOperation('toJS', {
  Number(arg) {
    return parseInt(arg.sourceString, 10)
  }
})

@pdubroy: Thank you for the follow up! Much appreciated.


Update for soundness fix in the next Rust release

We had to do a breaking change to fix a soundness hole in the Rust language. Your crate is affected. This should fix it and does not appear to affect any callers.
See https://github.com/rust-lang/rust/issues/122230 for more information

Thanks for the heads up! We have a fix for this from nightly clippy in #857 that we'll be using


While migrating abgular 2 rc4 to angular 6 I am facing this error:- Cannot find module 'webpack/lib/removeAndDo' please help me out.

Please refer angular-fusioncharts which support angular2 and above, Upgrade process is simple, just replace angular4-fusioncharts with angular-fusioncharts and refer docs for additional details.
Please let me know if it workout for you.

Closing for now


Bump version of SourceKitten for Swift 5.1 compatibility

Breaking

The SourceKitten dependency now requires Swift 5.0 or higher to build, so in turn, so does SourceDocs

Bug Fixes

Actually generates documentation for Swift 5.1

Superseded by #28 and #32


Firezone container restarting indefinitely

Describe the bug
Firezone container restarting
To Reproduce
Install Firezone using the automatic script and follow the steps to complete the installation.
Expected behavior
Firezone should work as usual.
Screenshots / Logs

Platform used:

Firezone Version: latest
OS: Linux
Distro: Amazon Linux
Deployment method: Docker

I've been trying to get Firezone to work under an nginx reverse proxy and succeeded using resources such as https://discourse.firez.one/t/caddy-in-reverse-proxy-and-nginx-as-front-end/523/2 and https://github.com/jitsi/infra-configuration/blob/main/ansible/roles/firezone/templates/docker-compose.yml.j2 but I had to remove it and start over once again for some reason.
Now while retrying, I had the above mentioned issue and I thought it was something regarding the nginx and I had a different ec2 instance with a valid DNS record so I thought of trying out the automatic install script on that instance. I faced the same issue there as well.
Now as we're using the latest version of firezone in the docker-compose, I even tried using the last stable version docker [firezone/firezone:0.7.32] in the docker-compose to check if that would change anything. But that too resulted in the same error.

Looks like you reset your .env vars containing the DATABASE_ENCRYPTION_KEY but kept the DB, so the encrypted fields are not decryptable anymore. See this:
https://www.firezone.dev/docs/administer/regen-keys#regenerate-secrets
If you backed up the old DATABASE_ENCRYPTION_KEY, simply restore that to ~/.firezone/.env, otherwise, you'll most likely need to start with a fresh database.


Store timestamp & verified signature status in unchecked table

Additionally periodic unchecked_cleaning ()
This replaces #1459

--debug_profile_bootstrap shows 47% improvements for beta network with no significant changes on live network due to slow write/read for large tables


Extend FormOptions to receive global validateOnBlur value

It'd be useful to set a global validateOnBlur method, validating on every input makes code a little noisy.
By the way, the real problem is that I am having some perf issues on a big form and adding validateOnBlur is making the form much lighter.
I can try to reprocude in a code sandbox and open another issue but nevertheless a global validateOnBlur would make sense for the lib I think

This will be coming in 0.12.0! so sit tight until then! :D

This issue is now fixed in v0.12.0! 🎉


[website] Change roadmap link destination

[x] I have followed (at least) the PR section of the contributing guide.

Until we have a general place to document company-wide initiatives across all teams & products, linking to the MUI Core roadmap on the website's footer seems a bit more appropriate. I wonder if this page makes more sense than the GitHub project, though... curious to hear from others.

Bumping this one a bit — any thoughts?

@mnajdova bumping it again! It's a quick one 😃 Just so it doesn't stall.


normalize_doc_attributes sometimes comments out code

The simplest test case I've been able to come up with so far is this:
mod a {
    mod b {
        #[doc = "test"]fn foo() -> () { }
    }
}

with config
normalize_doc_attributes=true
max_width=10

This example gets reformatted to the following, although it does report an error because the line exceeds the maximum width.
mod a {
    mod b {
        ///testfn foo() -> (){
        }
    }
}

I'm still not sure exactly what triggers this bug, but have found a lot of variants for this example which don't trigger it. Here are a few that might be significant:
#[doc = "test"]fn foo() -> () { }

mod a {
    mod b {
        #[doc = "test"]fn foo() { }
    }
}

mod a {
    mod b {
        #[doc = "test"]
        fn foo() -> () { }
    }
}

mod a {
    mod b {
        /// test
        fn foo() -> () { }
    }
}

In these examples, removing max_width=10 fixes the issue, but I encountered this originally in a situation where rustfmt was inexplicably being run on autogenerated files in the target directory that were part of the wayland-protocol crate. I haven't figured out what was causing rustfmt to process those files in the first place, but in that case I did have max_width=80 instead.
I have no clue what's happening or how to fix it at this point, but I'm pretty sure it has to do with formatting lines that are longer than max_width combined with some unknown other requirement. I'll try to look into this more soon and see if I can figure out how to fix it.

An other example that triggers this:
This original generated code:
pub mod zwp_fullscreen_shell_v1 { impl ZwpFullscreenShellV1 { # [ doc = "present surface for display at a particular mode\n\nIf the value of wl_output.scale differs from wl_surface.buffer_scale,\nthen the compositor may choose a mode that matches either the buffer\nsize or the surface size.  In either case, the surface will fill the\noutput." ] pub fn present_surface_for_mode < F > () where F : FnOnce () -> super :: zwp_fullscreen_shell_mode_feedback_v1 :: ZwpFullscreenShellModeFeedbackV1 { } } }

gets formatted as
pub mod zwp_fullscreen_shell_v1 {
    impl ZwpFullscreenShellV1 {
        ///present surface for display at a particular mode
        ///
        ///If the value of wl_output.scale differs from
        /// wl_surface.buffer_scale, then the compositor may choose a
        /// mode that matches either the buffer size or the surface
        /// size.  In either case, the surface will fill the output.pub fn present_surface_for_mode < F > () where F : FnOnce () -> super :: zwp_fullscreen_shell_mode_feedback_v1 :: ZwpFullscreenShellModeFeedbackV1{
        }
    }
}

when run using these rustfmt options:
wrap_comments = true
normalize_doc_attributes = true

As seen, this comments part of the code.

Looks like this issue not in "normalize_doc_attributes" but in "max_width"
Because using max_width=10 only produces
mod a {
    mod b {
        #[doc = "test"]        fn foo() -> (){
        }
    }
}

In general when rustfmt fails because something is too long for the max_width it fails pretty badly. In the case @vberger highlighted above, apparently the doc attribute is not a problem, but the return type that doesn't fit the line at that indentation level is problematic (replacing it with something shorter fixes the issue).

https://github.com/rust-lang/rustfmt/issues/3697

Without attributes
Input:
mod a {
    fn foo() -> () { }
}

Output with `with max_width=10`:
```rust
mod a {
    fn foo(
    ) -> ()
    {
    }
}

Output with `with max_width=7`:
```rust
mod a {
    fn foo(
    ) -> (
    )
    {
    }
}

Output with with max_width=6 and less:
mod a {
    fn foo() -> (){
    }
}

6 can be calculated as 4 (result indent of first line) + 2

I hit this today as well:
input:
impl Client {
    #[doc = "comment"]    pub async fn key_changes_survey_response_education_organization_target_associations < 'a > (& 'a self , limit : Option < i64 > , max_change_version : Option < i64 > , min_change_version : Option < i64 > , offset : Option < i32 > , total_count : Option < bool > , snapshot_identifier : Option < & 'a str >) -> Result < ResponseValue < Vec < types :: TrackedChangesEdFiSurveyResponseEducationOrganizationTargetAssociationKeyChange > > , Error < () > , >{
        todo!()
    }
}

output:
impl Client {
    ///comment    pub async fn key_changes_survey_response_education_organization_target_associations < 'a > (& 'a self , limit : Option < i64 > , max_change_version : Option < i64 > , min_change_version : Option < i64 > , offset : Option < i32 > , total_count : Option < bool > , snapshot_identifier : Option < & 'a str >) -> Result < ResponseValue < Vec < types :: TrackedChangesEdFiSurveyResponseEducationOrganizationTargetAssociationKeyChange > > , Error < () > , >{
        todo!()
    }
}


[#2695] feat(doc): Add docs for fileset catalog

What changes were proposed in this pull request?
This PR proposes to add docs for fileset catalog.
Why are the changes needed?
Fix: #2695
Does this PR introduce any user-facing change?
No.
How was this patch tested?
No.

@coolderli @xloya would you please help to review? Thanks.

@jerryshao Do we need to introduce how to use the Fileset in the Spark engine? In addition, I have already tested the Tensorflow and submitted an MR: https://github.com/tensorflow/io/pull/1970. After https://github.com/datastrato/gravitino/pull/2779 is resolved, we can support tensorflow. I think we can add a doc like https://help.aliyun.com/zh/hdfs/using-tensorflow-on?spm=a2c4g.11186623.0.i6. What do you think?

@jerryshao Do we need to introduce how to use the Fileset in the Spark engine? In addition, I have already tested the Tensorflow and submitted an MR: tensorflow/io#1970. After #2779 is resolved, we can support tensorflow. I think we can add a doc like https://help.aliyun.com/zh/hdfs/using-tensorflow-on?spm=a2c4g.11186623.0.i6. What do you think?

I would suggest to have another doc about gvfs and add Spark, TF related things there.

@jerryshao Left some comments. Overall, it looks good to me.

@shaofengshi would you please also check the java client part? Thanks.