RaisedButton gives exception as StatelessElement.build

Hi all,
I'm trying to add a RaisedButton in the container, however I'm getting below exception.
[{"event":"app.progress","params":{"appId":"9d38bcd5-7d0a-4cfe-a121-20c0dff4c237","id":"10","progressId":"hot.reload","message":"Performing hot reload..."}}]Performing hot reload...

Syncing files to device Android SDK built for x86...
I/flutter ( 5093): ══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY ╞═══════════════════════════════════════════════════════════
I/flutter ( 5093): The following _CompileTimeError was thrown building MyApp(dirty):
I/flutter ( 5093): 'file:///D:/LearningMaterials/Flutter/udemy_learningapp/lib/main.dart': error: Unexpected tag 128
I/flutter ( 5093): (SpecializedVariableGet) in ?, expected a procedure, a constructor or a function node
I/flutter ( 5093): When the exception was thrown, this was the stack:
I/flutter ( 5093): #0      StatelessElement.build (package:flutter/src/widgets/framework.dart:3731:28)
I/flutter ( 5093): #1      ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3678:15)
I/flutter ( 5093): #2      Element.rebuild (package:flutter/src/widgets/framework.dart:3531:5)
I/flutter ( 5093): #3      BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2273:33)
I/flutter ( 5093): #4      _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&SemanticsBinding&RendererBinding&WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:673:20)
I/flutter ( 5093): #5      _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&SemanticsBinding&RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:208:5)
I/flutter ( 5093): #6      _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:990:15)
I/flutter ( 5093): #7      _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:930:9)
I/flutter ( 5093): #8      _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding.scheduleWarmUpFrame.<anonymous closure> (package:flutter/src/scheduler/binding.dart:751:7)
I/flutter ( 5093): #10     _Timer._runTimers (dart:isolate/runtime/libtimer_impl.dart:382:19)
I/flutter ( 5093): #11     _Timer._handleMessage (dart:isolate/runtime/libtimer_impl.dart:416:5)
I/flutter ( 5093): #12     _RawReceivePortImpl._handleMessage (dart:isolate/runtime/libisolate_patch.dart:171:12)
I/flutter ( 5093): (elided one frame from package dart:async)
I/flutter ( 5093): ════════════════════════════════════════════════════════════════════════════════════════════════════
Reloaded 1 of 412 libraries in 969ms.

Please add the output of flutter doctor -v
and the output of flutter analyze

flutter doctor -v output:
[ΓêÜ] Flutter (Channel beta, v0.9.4, on Microsoft Windows [Version 6.1.7601], lo
cale en-US)
ΓÇó Flutter version 0.9.4 at C:\flutter
ΓÇó Framework revision f37c235c32 (4 weeks ago), 2018-09-25 17:45:40 -0400
ΓÇó Engine revision 74625aed32
ΓÇó Dart version 2.1.0-dev.5.0.flutter-a2eb050044
[ΓêÜ] Android toolchain - develop for Android devices (Android SDK 28.0.2)
ΓÇó Android SDK at C:\Users\pawadube\AppData\Local\Android\sdk
ΓÇó Android NDK location not configured (optional; useful for native profili
ng support)
ΓÇó Platform android-28, build-tools 28.0.2
ΓÇó Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java
ΓÇó Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1136-b
06)
ΓÇó All Android licenses accepted.
[ΓêÜ] Android Studio (version 3.2)
ΓÇó Android Studio at C:\Program Files\Android\Android Studio
ΓÇó Flutter plugin version 29.1.1
ΓÇó Dart plugin version 181.5656
ΓÇó Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1136-b
06)
[ΓêÜ] Connected devices (1 available)
ΓÇó Android SDK built for x86 ΓÇó emulator-5554 ΓÇó android-x86 ΓÇó Android
6.0 (API 23) (emulator)
ΓÇó No issues found!
flutter analyze output is attached in the file.
analyze.txt

What directory did you run flutter analyze in?
It reports tons about unrelated code.
Can you please run it again in your project directory (the directory that contains pubspec.yaml)

Please also try flutter clean and then run again to see if the problem persists.

I tried flutter clean, but no luck.
flutter analyze output
Analyzing udemy_learningapp...
info - Unused import: 'package:udemy_learningapp/main.dart' - test\widget_tes
t.dart:10:8 - unused_import
error - The constructor returns type 'dynamic' that isn't of expected type 'Wi
dget' - test\widget_test.dart:15:29 - strong_mode_invalid_cast_new_expr
error - Undefined class 'MyApp' - test\widget_test.dart:15:33 - undefined_clas
s
3 issues found. (ran in 5.2s)
If I replace the RaisedButton by Text widget it works fine. Below is the code:
class _MyStateFulWidgetState extends State {
@override
Widget build(BuildContext context) {
return Container(
color: Colors.green,
child: new RaisedButton(
onPressed: null,
child: new Text(
"Click",
textDirection: TextDirection.ltr,
),
));
}
}

That's really weird.
I'd suggest in the Flutter installation directory:
git clean -xfd
git pull
flutter doctor

I ran the git commands, and then I tried flutter doctor now I'm getting below error:
C:\flutter\bin>flutter doctor
Checking Dart SDK version...
The term 'Unblock-File' is not recognized as the name of a cmdlet, function, sc
ript file, or operable program. Check the spelling of the name, or if a path wa
s included, verify that the path is correct and try again.
At line:1 char:13

Unblock-File <<<<  -Path 'C:\flutter/bin/internal/update_dart_sdk.ps1'; & 'C:
\flutter/bin/internal/update_dart_sdk.ps1'

CategoryInfo          : ObjectNotFound: (Unblock-File:String) [], Comman
dNotFoundException
FullyQualifiedErrorId : CommandNotFoundException

Downloading Dart SDK from Flutter engine 74625aed323d04f2add0410e84038d250f51b61
6...
Downloading the Dart SDK using the BITS service failed, retrying with WebRequest
...
The term 'Invoke-WebRequest' is not recognized as the name of a cmdlet, functio
n, script file, or operable program. Check the spelling of the name, or if a pa
th was included, verify that the path is correct and try again.
At C:\flutter\bin\internal\update_dart_sdk.ps1:53 char:22

Invoke-WebRequest <<<<  -Uri $dartSdkUrl -OutFile $dartSdkZip

CategoryInfo          : ObjectNotFound: (Invoke-WebRequest:String) [], P
arentContainsErrorRecordException
FullyQualifiedErrorId : CommandNotFoundException

Error: Unable to update Dart SDK. Retrying...
Waiting for 0 seconds, press CTRL+C to quit ...
Checking Dart SDK version...
The term 'Unblock-File' is not recognized as the name of a cmdlet, function, sc
ript file, or operable program. Check the spelling of the name, or if a path wa
s included, verify that the path is correct and try again.
At line:1 char:13

Unblock-File <<<<  -Path 'C:\flutter/bin/internal/update_dart_sdk.ps1'; & 'C:
\flutter/bin/internal/update_dart_sdk.ps1'

CategoryInfo          : ObjectNotFound: (Unblock-File:String) [], Comman
dNotFoundException
FullyQualifiedErrorId : CommandNotFoundException

Can you please check what went wrong?

Looks like you need to update PowerShell https://stackoverflow.com/questions/29933822/powershell-to-unblock-all-the-files-in-a-folder

@qurm you need to pass a value to Text(...) that is not null

Thanks, and I agree, after further investigation.  Was just coincidental with a Flutter upgrade, so was checking the issue list...

Duplicate of #17204


Relax the Clone bound on Message types

I've found that the Clone bound on Message types can be a hit to ergonomics, particularly when working with Commands.
Example: a typical fallible async function returns some form of Result<_, Error>. The standard approach to call such a function in iced seems to be:
Command::perform(async_method(), Message::VariantThatWrapsOutput)

and then handle the message in the view's update().
However, most error types are not Clone (e.g., std::io::Error), so that future's output can't be wrapped in a Message directly and some mapping of the error to a clonable type is needed.
I've been going through the code in iced_native and from what I can see the Clone bound is only required by TextInput and Button, for code such as:
Event::Keyboard(keyboard::Event::Input {/* (...) */})
if self.state.is_focused => match key_code {
    keyboard::KeyCode::Enter => {
        if let Some(on_submit) = self.on_submit.clone() {
            messages.push(on_submit);
        }
    }

From what I understand the aim of this is to produce a new message on each key press. This PR proposes changing these fields from:
    on_submit: Option<Message>,

to
    on_submit: Option<Box<dyn Fn() -> Message>>,

i.e., lazily producing the Message variant. This allows us to get rid of the Clone bound.
I've opened this as a draft to hear your thoughts first. I haven't adjusted documentation nor the web versions of TextInput/Button. What do you think?

Related: https://github.com/hecrj/iced/pull/191 https://github.com/hecrj/iced/pull/155

Ah crap, didn't see those. Thanks.

@hecrj
I see that your opinion on this is that the user should nest cloneable messages in their own types, so I'll close the PR.
Still, I'd like this to be one more indication that perhaps the Clone bound is not user-friendly, and that nesting is not an obvious solution.

@abreis

I've been going through the code in iced_native and from what I can see the Clone bound is only required by TextInput and Button

I believe the implementation details and needs of a particular part of the codebase shouldn't get to decide what a shared concept of the architecture is or isn't.
In particular, it seems you are proposing a Message type should never (even in the future) have a Clone bound because we can currently avoid it with a closure in TextInput and Button.
The main issue here is that the statement "a message should never be cloneable" is completely against the event sourcing paradigm of The Elm Architecture, which iced is heavily inspired by.
In event sourcing, all messages (or events) are made of pure immutable data. As a consequence, they can be freely reused, copied, stored, serialized, and deserialized. Moreover, the current state of an Application can be deterministically derived from a log of events (the source of truth) by simply initializing its state and running update for each one of the events.
Thanks to this, Elm has an awesome time-travelling debugger with import/export features.

However, most error types are not Clone (e.g., std::io::Error), so that future's output can't be wrapped in a Message directly

If a type isn't Clone, then it means it's not made of pure immutable data, therefore it shouldn't be wrapped in a message.

some mapping of the error to a clonable type is needed

I believe this is a case where the architecture of the library forces you to improve the boundaries between the different parts of your codebase.
It is much better to deal with any library errors right where they happen (the async call) and map them to meaningful application errors, instead of polluting your update logic with a lot of different libraries and domain-specific logic.
If we want to perform a login request with reqwest, do not put a reqwest::Error in update and check the status code there. Instead, it is much better to deal with error mapping inside the Command and return your own LoginError type.

I see that your opinion on this is that the user should nest cloneable messages in their own types, so I'll close the PR.

My opinion is that all messages should be able to implement Clone if necessary. The Clone boundary will be required by an  Application trait if we end up implementing such a debugger.

@hecrj
Understood, and thank you for the detailed explanation.
I feel that the disconnect, and part of the reason why you've been seeing a few people complain about the Clone bound in specific, is that (at least for me personally) in Rust something that is Clone often carries an implicit meaning that it would make logical sense for multiple copies of that particular object to exist.
The reverse is also true, then: when I create a Message in iced, I don't expect the message to arrive twice, for example. In my mental model that message is unique and should pop up at an update() sometime in the future, and should also show up there as owned, not borrowed. So when the framework asks for the message to be Clone, I begin to wonder: why is this message going to be duplicated? Hence the reaction.
(to be clear, I'm not trying to advocate for a !Clone bound any more, your explanation made perfect sense)

If we want to perform a login request with reqwest, do not put a reqwest::Error in update and check the status code there. Instead, it is much better to deal with error mapping inside the Future and return your own LoginError type.

These are important insights for newcomers, along with the patterns of splitting the Message type, and the whole concept of composability in general in iced. I hope one day the project can gain some book-style documentation that points new users to the right way of structuring their apps.
That said, I've been really enjoying working with iced. Thanks!

in Rust something that is Clone often carries an implicit meaning that it would make logical sense for multiple copies of that particular object to exist

Yes, but this is completely applicable to messages. For instance, a bunch of ButtonPressed messages can exist at the same time. I fail to see where the disconnect is.

So when the framework asks for the message to be Clone, I begin to wonder: why is this message going to be duplicated?

Wouldn't you ask the same question if the API asked for a closure with no arguments? It'd personally strike me as even more odd.
The Clone is there because the Message may be indeed duplicated. Depending on the runtime implementation, there is a chance you may press a Button twice between view calls.

In my mental model that message is unique

I guess that's the issue. There is nothing unique about a message. When you press the same button twice, the same message is produced twice, just as if it were cloned.
In fact, there should be no way for you to know where the message is even coming from.

These are important insights for newcomers, along with the patterns of splitting the Message type, and the whole concept of composability in general in iced. I hope one day the project can gain some book-style documentation that points new users to the right way of structuring their apps.

I have plans to start building an open-source application with iced soon. It will be complex and big enough to serve as a real example of how to use the library and showcase many different patterns I use.

I was referring to individual instances of a type, not e.g. an enum variant in general. Meaning: if I press a button twice, two messages are created, each are unique (though they are of the same type/variant), and two messages arrive. If that type isn't Clone, I can trust that the framework won't turn those two messages into four, for whatever reason.
You're right about the closure with no arguments producing the same message over and over, though note that the closure could move other objects inside it. In a fictional scenario a closure could return a different message every time it was called.
But again, this is besides the point. I understood the Elm approach and how it maps to Rust here.

I have plans to start building an open-source application with iced soon. It will be complex and big enough to serve as a real example of how to use the library and showcase many different patterns that work well with it.

Look forward to seeing it!

if I press a button twice, two messages are created, each are unique

How are they unique if they are not different? You could say they are different instances in memory, but that distinction is hardly useful when dealing with messages.

If that type isn't Clone, I can trust that the framework won't turn those two messages into four, for whatever reason.

The closure approach doesn't guarantee it will produce only two messages either.

In a fictional scenario a closure could return a different message every time it was called

Only an FnMut would be able to do that, and using one would break the purity of view in The Elm Architecture.

Only an FnMut would be able to do that, and using one would break the purity of view in The Elm Architecture.

No need for FnMut 🙂 for example:
#[derive(Debug)]
enum Message {
        TypeOne,
        TypeTwo,
}

fn some_framework_method<F: Fn() -> Message>(closure: F) {
    println!("{:?}", (closure)() );
}

fn main() {
    some_framework_method(|| {
       let now = std::time::SystemTime::now();

       if now.elapsed().unwrap().as_secs().is_power_of_two() {
           Message::TypeOne
       } else {
           Message::TypeTwo
       }
    });
}

This is obviously contrived, and certainly not in the spirit of Elm.
You are correct that I have to trust the framework to do the right thing and not call the closure multiple times. And I already trust the framework to not send me more messages than the times I press a button (nor fewer).
Not being Clone is simply a contract, enforced by Rust itself, that what I pass you won't be duplicated (not in safe Rust anyway). Hence the mental model thing.

@abreis Sure, Rust isn't pure. You could also use a RefCell if you wanted to. There is no way for the library to completely protect you from shooting yourself in the foot.
The whole point of the library is to guide you towards better practices.

Not being Clone is simply a contract, enforced by Rust itself, that what I give you won't be duplicated (not in safe Rust anyway). Hence the mental model thing.

I understand. But I still fail to see why would you ever care that a Message won't be duplicated, unless it contains impure data. Clone is a very common trait and it should be implemented whenever possible.

I am guessing part of the issue is that the reason of the Clone bound for a Button is not apparent, so it may lead users to think the runtime may send multiple messages on press.
However, I believe you are the first person to bring this up. Most of the discussions around Clone have been centered around impure data. This also seems to be what prompted you to open this PR:

However, most error types are not Clone (e.g., std::io::Error), so that future's output can't be wrapped in a Message directly and some mapping of the error to a clonable type is needed.

@hecrj I'm new to Iced and just ran into this exact issue, went to check the type of iced::Application::Message, and saw that it was Debug + Send so, yeah, I was pretty confused at first.
The reason I haven't used Clone on my Message enum is indeed because of Results.


admin/support role [idea]

I think that it will be good to have some super role (admin/support) to takever task from someone else.
Example:
Task is assigned to person on vacation but it has to be done immediately.
So if I am admin I can take this help task and do it.
what do you think?

you can always do it if you acknowledge the request, right?

no if someone else already acknowledge it.
there is only mark as resolved option.

I agree with you on this one. This kind of feature would be very beneficial


Update pom.xml

Updating to include google client api libraries.

@dpebot merge when green

Ah, circle isn't going to run :(


sched_pool: auto switch between the single queue and  priority queue

What is changed and how it works?

Issue Number: Ref https://github.com/tikv/tikv/issues/14353 Ref https://github.com/tikv/tikv/issues/14375
What's Changed:

Addresses performance regression in the priority queue caused by design. The scheduler worker will now automatically switch between the `single-queue pool` and `priority-queue pool` based on the resource group settings.
-  Once the group is reserved, use the `single-queue pool`
-  Once the group is customized, use the `priority-queue pool`

Related changes

PR to update pingcap/docs/pingcap/docs-cn:
Need to cherry-pick to the release branch

Check List
Tests

Unit test
Integration test
Manual test (add detailed scripts or steps below)

Release note
None

/release

/test

ptal @Connor1996

/merge

@Connor1996  help :)

/merge


De-noise/generalize shapefile (remove outliers) vector features

using DBSCAN as discussed in past

Pushed a new branch denoising https://github.com/usc-isi-i2/linked-maps/tree/denoising


[BUG] relapse , Deprecate hass.helpers usage (stop working in Home Assistant 2024.11) #14

name: elapse , Deprecate hass.helpers usage (stop working in Home Assistant 2024.11) #14
description: It looks like pull request #14 is the latest and hasn't been incorporated yet.
title: "[BUG] relapse , Deprecate hass.helpers usage (stop working in Home Assistant 2024.11) #14"
labels: ["bug"]
assignees: []

Thanks for taking the time to fill out this bug report! Please provide as much detail as possible to help us diagnose and fix the issue.
Device

SCOOPER PRO

What happened?
The change that was supposed to have been made in pull request #14 has been reverted to its original state in the latest version.
Happed commit id

Occurred between 6db1d52d72ca83c7126d8ab364532db78582c385 and d2c73545c81616b327e60cf5a98b968de9e0dfe7

Relevant Log Output
Please copy and paste any relevant log output from Home Assistant.
2024-09-04 22:13:12.717 WARNING (MainThread) [homeassistant.helpers.frame] Detected that custom integration 'catlink' accesses hass.helpers.discovery. This is deprecated and will stop working in Home Assistant 2024.11, it should be updated to import functions used from discovery directly at custom_components/catlink/__init__.py, line 44: hass.helpers.discovery.async_load_platform(platform, DOMAIN, {}, config), please create a bug report at https://github.com/hasscc/catlink/issues

Checklist

[x] I have updated to the latest version of the integration.
[x] I have checked the Home Assistant logs for errors related to this issue.
[x] I have searched the issues and found no duplicates.

By submitting this issue, you agree to follow our Code of Conduct.

try this
https://gofile.io/d/yMHabA
select the desired compiler in the installer

Wow. Looks like the catlink extension has been hijacked by some malware creator. HAHAHA…
I don't recommend anything past 6db1d52d72ca83c7126d8ab364532db78582c385...


Issue 14972: Include std.windows modules in navbar.

This is a first stab at fixing: https://issues.dlang.org/show_bug.cgi?id=14972
This is probably a rather crude way of doing things, and I probably overlooked some issues this may cause, but it's just to get the ball rolling on making Windows-specific docs show up on dlang.org.
Note: Please also see the corresponding Phobos PR (https://github.com/D-Programming-Language/phobos/pull/3593) to actually generate docs for std.windows.*, otherwise this PR won't do very much.

Rebased to fix merge conflict.

@quickfur rebase again pls

Rebased.

@quickfur Is there something blocking your progress on the dependent PR, https://github.com/D-Programming-Language/phobos/pull/3593?
@andralex It can be wasteful to ask people to rebase blocked PRs, as another merge conflict may appear by the time the PR is no longer blocked.

@CyberShadow Not much, just been busy, and the proposed solution is less than ideal. But it will have to do for now, since dmd simply doesn't have the capability of generating docs for non-host platforms at the moment.

ping @andralex @CyberShadow
Now that the Phobos PR has merged, shouldn't this one be, too?

Yep, thanks for reminding me. LGTM!

thx


Issue with single optional field with attributes.

Add test. Multiple fields works fine.
See: https://github.com/rescript-lang/syntax/issues/627

Probably something around this change: https://github.com/rescript-lang/syntax/pull/588/files#diff-ae497450e5424068bdb6808050ebf751eccbc481ca82c61c2d0067ba1636e0b0R4291
The flow is not so simple for single-field records as they are recognised quite late in the parsing process (great potential for ambiguity).

@IwanKaramazow can you take a look? Can this be done in a simpler way?


Update README.md

@jakub-g Thanks!  I really appreciate your contribution, but this repo isn't ready to receive PRs yet.  I'm trying to move it somewhere more official and I'll ping you when it has a new home.

@jakub-g PRs are now welcome on the official repo.  Thanks for your patience!


Reorder mods tweets

What
feat: reorders mods tweets so the more desired Ada-1 tweet is last on Android notifications

:tada: This PR is included in version 1.69.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Correct erroneous rejects test example

Summary
as rejects will receive the rejected promise payload, not a function,
resulting in the following error message when the test was run:
Received value must be a function, but instead "object" was found
Test plan
Run the examples in Jest:
test('rejects to octopus', () => {
 return expect(Promise.reject(new Error('octopus'))).rejects.toHaveProperty(
   'message',
   'octopus'
  );
});

 test('rejects to octopus', async () => {
  await expect(Promise.reject(new Error('octopus'))).rejects.toHaveProperty(
    'message',
    'octopus'
  );
 });

Expected output:
Ran all test suites.

Codecov Report

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

@@            Coverage Diff            @@
##             master    #6421   +/-   ##
=========================================
  Coverage          ?   63.48%
=========================================
  Files             ?      227
  Lines             ?     8697
  Branches          ?        3
=========================================
  Hits              ?     5521
  Misses            ?     3175
  Partials          ?        1

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 397d7c1...7c9d6d1. Read the comment docs.

I think you're on an old version of Jest - this was fixed in #4884.
Can you verify with Jest 22 or Jest 23?

Indeed, you're right! Sorry, was so sure we were on latest :flushed:


MissingMethodException in RaidReview_0.1.1_NEXT SPT 3.9.0

Noticed that a mod was keeping the mask breathing sounds from Realism mod from stopping even after removing the mask and putting in in the backpack. Narrowed it down to RaidReview_0.1.1_NEXT after removing all mods but it and Realism. When I run RaidReview by itself and move the mask from face slot to backpack it gets the following error message:
2024-07-15 01:17:22.701 -04:00|<IP_ADDRESS>.30626|Error|Default|IOnItemRemoved: PlayerSuperior(Clone) (EFT.LocalPlayer), can't process SafeOnItemRemovedInvoke:System.MissingMethodException: string GClass752.ToJson<!0>(!!0,Newtonsoft.Json.JsonConverter[])
  at (wrapper dynamic-method) EFT.Player.DMD<EFT.Player::OnItemAddedOrRemoved>(EFT.Player,EFT.InventoryLogic.Item,EFT.InventoryLogic.ItemAddress,bool)
  at EFT.Player.OnItemRemoved (GEventArgs3 eventArgs) [0x00009] in <a5b6eaefee6842aba73e4a77ea14a564>:0
  at GClass1499.SafeOnItemRemovedInvoke (IOnItemRemoved handler, GEventArgs3 obj) [0x00000] in <a5b6eaefee6842aba73e4a77ea14a564>:0
2024-07-15 01:17:22.701 -04:00|<IP_ADDRESS>.30626|Error|Default|IOnItemAdded: PlayerSuperior(Clone) (EFT.LocalPlayer), can't process SafeOnItemAddedInvoke:System.MissingMethodException: string GClass752.ToJson<!0>(!!0,Newtonsoft.Json.JsonConverter[])
  at (wrapper dynamic-method) EFT.Player.DMD<EFT.Player::OnItemAddedOrRemoved>(EFT.Player,EFT.InventoryLogic.Item,EFT.InventoryLogic.ItemAddress,bool)
  at EFT.Player.OnItemAdded (GEventArgs2 eventArgs) [0x00009] in <a5b6eaefee6842aba73e4a77ea14a564>:0
  at GClass1499.SafeOnItemAddedInvoke (IOnItemAdded handler, GEventArgs2 obj) [0x00000] in <a5b6eaefee6842aba73e4a77ea14a564>:0

I tried again on a completely fresh install of SPT 3.9.0 and still the same message with any type of item moved in my inventory while in raid.
I did try taking a look in the Newtonsoft.Json.DLL provided in my Tarkov install and it does include the method. Maybe when it was built the Newtonsoft.Json.d11 dependency was not from the SPT\EscapeFromTarkov_Data\Managed\Newtonsoft.Json.d11 or maybe an older assembly?

Thanks @Melvin-Molder
It's likely related to this: https://github.com/ekky-llc/spt-raid-review/blob/99f82205110b954747204d7fe6dee944abecf81e/Client/patches/player_onItemAddedOrRemovedPatch.cs#L42
Some left over debugging code, I'll remove it for the next patch!

Do you mind if I share the plugin dll with the if statement commented out?
Only change I made was this:
`        private static void PatchPostFix(ref Player __instance, Item item, ItemAddress location, bool added)
{
if (__instance.Location == "hideout") return;
        try
        {
            bool isPackingMagazine = location.Container.ID == "cartridges";
            if (RAID_REVIEW.LootTracking.Value && !isPackingMagazine)
            {
                TrackingLootItem newLootItem = new TrackingLootItem
                {
                    sessionId = RAID_REVIEW.sessionId,
                    profileId = __instance.ProfileId,
                    time = RAID_REVIEW.stopwatch.ElapsedMilliseconds,
                    itemId = item.Id,
                    itemName = item.ShortName,
                    qty = item.StackObjectsCount,
                    type = item.QuestItem ? "QUEST_ITEM" : "LOOT",
                    added = added
                };

              if (!added)

              {

                 // bool isMagazine = location.Item.Name.ToLower().Contains("mag");

                  Console.WriteLine(location.Item.ToJson());

              }

              Telemetry.Send("LOOT", JsonConvert.SerializeObject(newLootItem));
          }
      }

`

Do you mind if I share my build of the plugin dll? I just commented out that whole if(!added) block.
https://github.com/Melvin-Molder/spt-raid-review/blob/799f816c44b22776fcad51e9a19cd77a1affc0a6/Client/patches/player_onItemAddedOrRemovedPatch.cs#L39-L43

@Melvin-Molder
https://github.com/ekky-llc/spt-raid-review/blob/ballistics-tracking/Client/patches/player_onItemAddedOrRemovedPatch.cs
All good - I've removed the problematic code, will merge this in soon.


Another fix for using zhmcclient 1.9.0

coverage: 26.143%. remained the same when pulling 6ba538b2bb070904c55af3c5ac6535328a4dc35a on andy/fix-zhmcclient-190 into cc39e4a3db45789555ed39f697e445dcd8ea9c3e on master.


fix: update installation instructions

macOS Catalina now uses Zsh instead of Bash

It took me a while to figure this out when I was installing RN on a fresh OS. 🙂 You can find more information here: https://thenextweb.com/dd/2019/06/04/why-does-macos-catalina-use-zsh-instead-of-bash-licensing/

hi @developer239, thank you for pointing this out.
Since zsh can also be used on the earlier versions of macOS and on the Linux too it would be nice if you can switch the content in the brackets to something more general like: "if you are using zsh then...".
Also please include the include both zsh profile files: ~/.zprofile and ~/.zshrc

@Simek ✅

@developer239 Thank you so much! 😄


Describe steps to make an existing formula 'brew services' aware

Please provide instructions on how to make an existing formula working together with brew services. I have some formulas which register a plist file in /Library/LaunchDaemons, but these are not listed when I execute brew services list. What do I need to do?

Are they listed if you run sudo brew services list?

No, it is not. What are the requirements for a daemon to be manageable by brew services?

What are the filenames of the plists there?

The one that is not working is /Library/LaunchDaemons/com.crashplan.engine.plist

brew services only manages those named homebrew.mxcl.*.plist

Can I contribute to the crashplan brew formula so that it works with brew services? If yes, are there instructions anywhere on how to achieve that?

@MichaelRueegg That doesn't seem to be a Homebrew formula that's in the core repository. This is our general pull request guide: https://github.com/Homebrew/homebrew/blob/master/share/doc/homebrew/How-To-Open-a-Homebrew-Pull-Request-(and-get-it-merged).md#how-to-open-a-homebrew-pull-request-and-get-it-merged
Thanks!

@mikemcquaid Thanks for the info. Coming from Linux I would highly appreciate to be able to easily handle services with brew. But if only some of the formulas are supported, it is hard to really use it in practice. What I don't understand is why this has to be restricted to the formulas that explicitly provide homebrew.mxcl.*.plist files. Can brew services not just support all plist files in /Library/LaunchDaemons? I mean wouldn't it just have to launchctl load and launchctl unload them? Please excuse my ignorance, I'm quite new to Mac OS X and brew :-)

But then I guess it will only work with formulas where the author provides
such a file explicitly. That seriously restricts its usefulness imho. Do
you know why this has been done like this? Would you accept a pull request
where all plist files in /library/launchdaemons are considered?
Am 18.03.2016 18:54 schrieb "Mike McQuaid"<EMAIL_ADDRESS>
brew services only manages those named homebrew.mxcl.*.plist
—
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub
https://github.com/Homebrew/homebrew-services/issues/37#issuecomment-198256583

brew services requires Homebrew and is a tool designed to manage services installed by Homebrew so we wouldn't accept a PR that handles all plist files. There's other tools available that manage all OS X plists and I think you may be better suited with one of them.

I installed Crashplan with brew cask (see https://github.com/caskroom/homebrew-cask/blob/master/Casks/crashplan.rb). Are casks not supported by brew services then? Or do I need to adapt the cask formula to provide a  homebrew.mxcl.*.plist file?

@MichaelRueegg Normally these things are autoinstalled and enabled/disabled by the applications themselves. Additionally, Cask plists are not supported by brew services due to the aforementioned reason.


Migrate/report action item task preview

Details

Fixed Issues

$ https://github.com/Expensify/App/issues/31791
PROPOSAL:
Tests

Login to the app
Open any report

[x] Verify that TaskPreview report actions are displayed correctly (as they was before)

Offline tests

QA Steps

Login to the app
Open any report
-[x] Verify that TaskPreview report actions are displayed correctly (as they was before)

PR Author Checklist

[x] I linked the correct issue in the ### Fixed Issues section above
[x] I wrote clear testing steps that cover the changes made in this PR

[x] I added steps for local testing in the Tests section
[x] I added steps for the expected offline behavior in the Offline steps section
[x] I added steps for Staging and/or Production testing in the QA steps section
[x] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[x] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[x] I included screenshots or videos for tests on all platforms
[x] I ran the tests on all platforms & verified they passed on:

[x] Android: Native
[x] Android: mWeb Chrome
[x] iOS: Native
[x] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[x] MacOS: Desktop

[x] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[x] I followed proper code patterns (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[x] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I followed the guidelines as stated in the Review Guidelines
[x] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] I verified that if a function's arguments changed that all usages have also been updated correctly
[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[x] If the PR modifies the form input styles:

[x] I verified that all the inputs inside a form are aligned with each other.
[x] I added Design label so the design team can review the changes.

[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.

Screenshots/Videos

Android: Native

Android: mWeb Chrome

https://github.com/Expensify/App/assets/75538817/ba5b71b6-65d4-44bd-8b55-bc6937faae34

iOS: Native

https://github.com/Expensify/App/assets/75538817/1f284857-cfaf-4a5f-a8d7-9a965e8bad2a

iOS: mWeb Safari

https://github.com/Expensify/App/assets/75538817/8985564d-6e8d-47ec-8963-75023471e5c4

MacOS: Chrome / Safari

desktop-web.webm

MacOS: Desktop

screen-capture (6).webm

Sure, I think that should do it.

Kind request, change PR title so it reflects issue title: [TS migration] Migrate 'X.js' component to TypeScript

Looks like this has conflicts. Do those just need to be cleaned up and then this can be merged? I don't think I was officially included on the original reviewer list.

I have read the CLA Document and I hereby sign the CLA

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.

🚀 Deployed to staging by https://github.com/tgolen in version: 1.4.25-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
failure ❌

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/mountiny in version: 1.4.25-10 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
failure ❌

🕸 web 🕸
success ✅


Persistent authentication problem notice on Gmail

Describe the bug
I am having an authentication problem notice on top of Gmail. It cannot be removed and stay persistent.
To Reproduce
I just added a new service Gmail, logged in, and I have this message. Trying to delete the service and adding it again does not solve the issue (is a cache stay in Ferdi after deleting a service ?)
For information i am using google double authentication with my smartphone ... Maybe this is the problem (at the connection the double auth was successful, no problem on this side).
Screenshots

Desktop (please complete the following information):

OS: Windows 10

Hi,
I got the same problem, unable to log in gmail.com
Thanks for your help,
Best regards,
julien

@julienfortinfr The bug you are experiencing is actually a different one and should be fixed by updating to the newest beta version of Ferdi.

I get the same thing, don't have this happen in Franz

@vantezzen Thank you, I'll try the beta.

@julienfortinfr The bug you are experiencing is actually a different one and should be fixed by updating to the newest beta version of Ferdi.

I've try with the last beta releas of Ferdi, but the login problem and "unsafe Browser" still persist...
Best regards

@julienfortinfr The bug you are experiencing is actually a different one and should be fixed by updating to the newest beta version of Ferdi.

I've try with the last beta releas of Ferdi, but the login problem and "unsafe Browser" still persist...
Best regards

I can confirm that this is occuring with Ferdi 5.4.4-beta.2. I am unable to log-into my YouTube service at the moment (I get the same error as @bzsimon )

I was able to fix this by updating the gmail recipe index.js to the following:
module.exports = Franz =>   class Gmail extends Franz {     overrideUserAgent() {       return "Chrome/70.0.3538.77";     }   };
Some other solutions updated this to the firefox user agent, but that still caused the issue for me.  Once I updated this to Chrome only, the error went away.

I'm on the latest beta (Version 5.4.4-beta.3 (5.4.4-beta.3.1426)) - and I am unable to find the ~/.config/Ferdi folder - so, can't change it. Any help please?

If you're on a mac: ~/Library/Application Support/Ferdi/recipes/gmail

Thanks @Brotater - this is working now! Now I just need to write up a script that I can use if/when this occurs again. (since I use homebrew to upgrade to beta versions of ferdi as soon as one's released!)

I don't think this is happening anymore in newer versions (at least since 5.5.0-gm). Closing for now 🙏


Fix panic in wayland without XWayland

When I try to run ttysvr on my machine it panics with
thread 'main' panicked at /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/bevy_winit-0.14.1/src/lib.rs:132:14:
Failed to build event loop: Os(OsError { line: 760, file: "/home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/winit-0.30.5/src/platform_impl/linux/mod.rs", error: Misc("DISPLAY is not set; note: enable the `winit/wayland` feature to support Wayland") })
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

That's because I disabled XWayland. So I enabled bevy/wayland and winit/wayland to make it works.

In the latest release (0.3.1) I have added what I've added in other projects, which is just the bevy/wayland feature, not the winit/wayland feature, and it seems to have worked fine in those other projects. Is there a reason that both should be enabled?

The error says

DISPLAY is not set; note: enable the winit/wayland feature to support Wayland

so I added winit/wayland and it works. That's all I know.

Closing, as now that WinitPlugin is removed, wayland should not be engaged at all.


Need to eliminate incorrect SDP

There is a device that, after restarting, the SDP of the stream is incorrect, and the stream can be pulled normally, but there is no picture playing
Correct SDP

Abnormal SDP

SDP incorrect, streamed successfully, no screen played。
Can we discard this SDP and return a failure for the client to pull the stream again

Hello,
You're perfectly right about checking the consistency of incoming tracks, the problem is that there are a lot of metadata tracks that are advertised in a way very similar to the one of the invalid video track you posted, and these tracks are valid.
I'll add a consistency check on non-metadata tracks, but if it causes troubles i'll be forced to perform a roll-back.


500 error creating pull request

Gitea version (or commit ref): Gitea 1.9.3
Git version: <IP_ADDRESS>
Operating system: Cent OS 7
Database (use [x]):

[ ] PostgreSQL
[ ] MySQL
[X] MariaDB
[ ] MSSQL
[ ] SQLite

Can you reproduce the bug at https://try.gitea.io:

[ ] Yes (provide example URL)
[X] No
[ ] Not relevant

Log gist:
Not sure what to put here. Log contains only SQL command history.

Description
500 error obtained when trying to merge a pull request through the web interface.  It is possible to merge the pull requests using the command line on a different computer, for example following

http://www.bartread.com/2014/02/12/git-basics-how-to-merge-changes-from-a-different-fork-into-your-own-branch/
https://stackoverflow.com/questions/6022302/how-to-apply-unmerged-upstream-pull-requests-from-other-forks-into-my-fork

and then pushing the changes.
Specifically, within the main repository one is working in, one can:
git remote add somefork https://my.gitea.ip:3000/cool/fork
git fetch somefork
git checkout master
git merge somefork/master
git push

Old related issues include #5253 #1434 #6460 #7636
...
Screenshots

There are some important incompatibilities in git versions prior to 1.9.0. Check Gitea's README. Please consider upgrading git.

Thanks, upgrading git resolved the issue.


Feat: Add a yarn command to remove or comment repeated terms

I saw that there are many repeated terms with different definitions.
We can add a yarn command to remove or comment the repeated terms in terms.json file

Please assign this to me


Handle NotLoaded structs when manipulating unsaved data

Coverage remained the same at 100.0% when pulling e30d9241f13769fc62463bacfa364b846f461776 on handle-notloaded-on-insert into b7d6b3e65a1e0689ecb52017c5b46cfc6595dd58 on main.


ICompositionGraphicsDevice::CreateDrawingSurface seems to work only once

I am currently investigating using Microsoft::UI::Composition::CompositionDrawingSurface in a WinUI3/ContentIsland application.
My test code is based on the ContentIsland 'Squares' example:
https://github.com/microsoft/WindowsAppSDK-Samples/pull/232
Instead of adding sprite visuals using the CompositionColorBrush objects from the example, I'm adding sprite visuals using a CompositionBrush created from a CompositionSurfaceBrush.
To do this, I have extended the 'Squares' example with the following steps:

Create a Direct3D11 device
Get the IDXGIDevice from the D3D device
Create a ID2D1Device from the IDXGIDevice
Create a winrt::com_ptrwinrt::Microsoft::UI::Composition::ICompositorInterop from the winrt::Microsoft::UI::Composition::Compositor
Create a winrt::Microsoft::UI::Composition::ICompositionGraphicsDevice from ICompositorInterop

My code to create the CompositionBrush is this:
winrt::Microsoft::UI::Composition::CompositionBrush Squares::DrawingIsland::CreateCompositionBrush(const D2D1_COLOR_F &color) {

    winrt::Windows::Foundation::Size surfaceSize { 100, 100 };

    //winrt::Microsoft::UI::Composition::CompositionDrawingSurface neverUseCompositionDrawingSurface =
    //    m_compositionGraphicsDevice.CreateDrawingSurface(
    //        surfaceSize,
    //        winrt::Microsoft::Graphics::DirectX::DirectXPixelFormat::B8G8R8A8UIntNormalized,
    //        winrt::Microsoft::Graphics::DirectX::DirectXAlphaMode::Premultiplied);

    winrt::Microsoft::UI::Composition::CompositionDrawingSurface compositionDrawingSurface =
        m_compositionGraphicsDevice.CreateDrawingSurface(
            surfaceSize,
            winrt::Microsoft::Graphics::DirectX::DirectXPixelFormat::B8G8R8A8UIntNormalized,
            winrt::Microsoft::Graphics::DirectX::DirectXAlphaMode::Premultiplied);

    {   winrt::com_ptr<winrt::Microsoft::UI::Composition::ICompositionDrawingSurfaceInterop> cpCompositionDrawingSurfaceInterop
            { compositionDrawingSurface.as<winrt::Microsoft::UI::Composition::ICompositionDrawingSurfaceInterop>() };

        winrt::com_ptr<::ID2D1DeviceContext> cpDirect2dDeviceContext;
        POINT offset;
        HRESULT hr = cpCompositionDrawingSurfaceInterop->BeginDraw(
            nullptr,
            __uuidof(ID2D1DeviceContext),
            cpDirect2dDeviceContext.put_void(),
            &offset);
        winrt::check_hresult(hr);

        cpDirect2dDeviceContext->Clear(D2D1::ColorF(D2D1::ColorF::Black, 0.0f));

        winrt::com_ptr<::ID2D1SolidColorBrush> brush;
        hr = cpDirect2dDeviceContext->CreateSolidColorBrush(color, brush.put());
        winrt::check_hresult(hr);

        cpDirect2dDeviceContext->FillRectangle(D2D1::RectF(0.0f, 0.0f, 100.0f, 100.0f), brush.get());

        hr = cpCompositionDrawingSurfaceInterop->EndDraw();
        winrt::check_hresult(hr);
        }

    winrt::Microsoft::UI::Composition::ICompositionSurface compositionSurface =
        compositionDrawingSurface.as<winrt::Microsoft::UI::Composition::ICompositionSurface>();

    winrt::Microsoft::UI::Composition::CompositionSurfaceBrush compositionSurfaceBrush =
        m_compositor.CreateSurfaceBrush(compositionSurface);

    return compositionSurfaceBrush.as<winrt::Microsoft::UI::Composition::CompositionBrush>();
    }

(sorry for all those long namespace qualifiers, but when learning a new technology, I avoid 'using namespace' to better understand where stuff that I am using is coming from).
This code is actually working.
However, what is strange is, that I can not use the same CompositionGraphicsDevice to create a second surface.
It is sufficient to uncomment the top part in the function above, that creates just another surface which is never used, and the example stops working (No visible surface is drawn).
It works again as soon as re-creating the ICompositionGraphicsDevice between the two CreateDrawingSurface calls.
So it seems as if ICompositionGraphicsDevice::CreateDrawingSurface can only be called once for the lifetime of the ICompositionGraphicsDevice.
Can someone please confirm this? Is this intended/expected behavior?
Is there actually a bug in my code or in Microsoft.UI.Composition?

I'm having a similar issue. I created Windows.UI.Composition.CompositionGraphicsDevice, created a drawing surface and added it to DesktopWindowTarget's RootVisual, and the surface wasn't visible. Either using ColorBrush or HostBackdropBrush is visible. I also found that if I linked the surface brush created from the drawing surface to the effect brush, the effect brush was also not visible.

Sorry, my question is that I call ID2D11DeviceContext.EndDraw(), which is invalid for ICompositionDrawingSurfaceInterop.
It should be called ICompositionDrawingSurfaceInterop.EndDraw().
I think the problem you encountered may be about ICompositionDrawingSurfaceInterop.BeginDraw() method 'updateoffset' parameters, which should be set to the Transform of ID2D11DeviceContext.
microsoft/Win2D/winrt/lib/composition/CanvasComposition.cpp#L190
I used Google Translation. There may be statements that are not smooth, please understand.


Highlight search term matches in result cards

I'll be working on that today :)

This was implemented by @meis in an early version (https://github.com/codeforscience/sciencefair/pull/28), but has been lost as the app was almost completely rewritten. Would be nice to merge that stuff back in - it was a useful feature.

Hi @blahah, I started working on a new version of this:

What do you think?
However there are some articles that the search terms only appear on the detail. Should the words be highlighted there too?
I will continue working, refactoring some code and implementing the highlight for the authors as well. Hope to have a version to submit a pull request soon.

💯 👍  thank you! Looks just right.
I do think highlighting the search term in the detail view would be nice, but it's not crucial. It would work to have the title and author highlights in one PR, and add the detail highlighting later. Or all together is cool too :)

Great! Hope to have a PR ready with the author and title later today.


US 11 (perso MD) - Stock a map with description from the operator interface

This US allows for the operator to store images with additional information. The image will be stored in an S3 bucket, and the supplementary information (name, date, location, URL) will be stored in a Cloud Firestore, providing a comprehensive solution for data management. This feature facilitates the later retrieval of saved cards, thereby addressing various operational needs.

Commit de
Chamgement du chemin du dossier keys car problème pour aller dan les dossier parents.
Modification du test upload_tab car le messages d'erreur dois être le même attention fr et en
Installation des dépendances

pip install tkcalendar
pip install google-cloud-firestore
pip install boto3
pip install python-dotenv
pip install firebase_admin

It's good after resolve conflits


cmd/go: automatic toolchain upgrades make the combination of go version and go install <package>@<version> confusing

Go version
that's a good question!
Output of go env in your module/workspace:
GO111MODULE=''
GOARCH='amd64'
GOBIN=''
GOCACHE='/home/dominikh/.cache/go-build'
GOENV='/home/dominikh/.config/go/env'
GOEXE=''
GOEXPERIMENT=''
GOFLAGS=''
GOHOSTARCH='amd64'
GOHOSTOS='linux'
GOINSECURE=''
GOMODCACHE='/home/dominikh/prj/pkg/mod'
GONOPROXY=''
GONOSUMDB=''
GOOS='linux'
GOPATH='/home/dominikh/prj'
GOPRIVATE=''
GOPROXY='https://proxy.golang.org,direct'
<EMAIL_ADDRESS>GOSUMDB='sum.golang.org'
GOTMPDIR=''
GOTOOLCHAIN='auto'
<EMAIL_ADDRESS>GOVCS=''
GOVERSION='go1.22.1'
GCCGO='gccgo'
GOAMD64='v1'
AR='ar'
CC='gcc'
CXX='g++'
CGO_ENABLED='1'
GOMOD='/home/dominikh/bla/go.mod'
GOWORK=''
CGO_CFLAGS='-O2 -g'
CGO_CPPFLAGS=''
CGO_CXXFLAGS='-O2 -g'
CGO_FFLAGS='-O2 -g'
CGO_LDFLAGS='-O2 -g'
PKG_CONFIG='pkg-config'
GOGCCFLAGS='-fPIC -m64 -pthread -Wl,--no-gc-sections -fmessage-length=0 -ffile-prefix-map=/tmp/go-build3151298505=/tmp/go-build -gno-record-gcc-switches'

What did you do?
As the author of Staticcheck, I tell my users that to support Go 1.22 code, they have to build Staticcheck with Go 1.22. To assure me that they did, they show me this:
$ go version
go version go1.22.1 linux/amd64

$ go install honnef.co/go/tools/cmd/staticcheck@latest

The problem is that the user's local toolchain is Go 1.21.8, but the module they're currently in is specifying go 1.22.1 in its go.mod. Running go version downloads and runs the newer toolchain, as does go install ., but go install honnef.co/[...] does not.
This is problematic in a multitude of ways.

I don't know of any straightforward way to get the local toolchain's version without having to change the current working directory
Users wouldn't even know to use it if they aren't aware of this footgun
This interaction is just a symptom; the actual problem is that users have no good intuition for which version of Go they're actually using.  Most of them misdiagnosed the problem as the build cache not being invalidated correctly, because they thought they were building Staticcheck with 1.22 when they were in fact using their older, local toolchain.

That go install behaves this way is documented in go help install as
If the arguments have version suffixes (like @latest or @v1.0.0), "go install"
builds packages in module-aware mode, ignoring the go.mod file in the current
directory or any parent directory, if there is one. This is useful for
installing executables without affecting the dependencies of the main module.

This, however, predates the automatic upgrades. In my experience, users who are aware of automatic upgrades think of it as "First, go downloads the specified toolchain, then it runs the subcommand", which is true in most, but not all cases.
The issue I am filing is really a mix of two user reports, one from the perspective of a tool maintainer, and one from the perspective of a user. What they have in common is confusion over the effective Go version.

To me, that would make it even more confusing. Please don't try to fix the opaque toolchain by bolting on more complexity.

I would expect go install package@version to use the toolchain in the go.mod file of the module version being installed. In this case it looks like the latest released version of go-tools is 0.4.7 whose go.mod declares 1.19. Since it's older that 1.21 there's no switching and it uses the local toolchain.
I see that your latest go.mod declares 1.22. When that's released users who build @latest will use go1.22, even if they were running 1.21 (and, let's say their current directory was in a 1.23 module).  Is that not what you'd expect to happen with toolchain switching?
To put this another way, I think what makes this the most confusing is that we're crossing the 1.21 toolchain switching version boundary here with a 1.19 module, and a local 1.21 toolchain. This should be less confusing once we're on the other side of that boundary.

But if we assume that tools support the last two versions of Go, then the latest release of my module will have a go directive specifying an older version of Go than the latest. Users who are using a newer version of Go would still need to build with that newer version, which brings us back to this issue.
The behavior you describe is generally fine for most software written in Go, but not tools that operate on other Go code.

Hm I think I still need to understand something. Now that 1.21 and 1.22 are the last two versions of Go, can we assume that everyone (that we support) has a version of Go that's capable of switching to a newer toolchain and build the tool using that newest toolchain? Will your tool work with 1.21 code if it's built with 1.22?

Will your tool work with 1.21 code if it's built with 1.22?

Yes, but not vice versa.
Is your point that with automatic tool switching, there is no reason to support older versions of Go, and that go-tools should always specify the latest version of Go in its go.mod? Because I think that's problematic.

Updating the Go version can change the semantics of the code (cf. the for range loop variable scope change.)
It forces everyone who doesn't use automatic upgrades (such as Linux distributions packaging my tools) to support the newer version of Go.
If a new version of Go releases and I don't update my go.mod and make a new release in time, we're back to this very issue.

I don't want to be forced to depend on a newer version of Go for users to have an easier time go installing it.

Can't you just set toolchain go1.22.2, and avoid the change to language semantics?

The toolchain directive is ignored when using go install ...@master.
$ cat $(GOTOOLCHAIN=auto ~/prj/go1.22/bin/go mod download -json github.com/dominikh/tmp@1eedde66af6d2824093a5d094a73cd0a954fb719 | jq -r .GoMod)
module github.com/dominikh/tmp

go 1.22

toolchain go1.23rc1

$ GOTOOLCHAIN=auto ~/prj/go1.22/bin/go version
go version go1.22.4 linux/amd64

$ GOTOOLCHAIN=auto ~/prj/go1.22/bin/go install github.com/dominikh/tmp@1eedde66af6d2824093a5d094a73cd0a954fb719

$ GOTOOLCHAIN=auto ~/prj/go1.22/bin/go version $GOPATH/bin/tmp
/home/dominikh/prj/bin/tmp: go1.22.4

Discussed this with @matloob, and here is my updated perspective :)

While I agree it is generally confusing that the output of go version depends on the module you are working in, @matloob points out that it is also confusing and inconsistent for go install to behave differently depending on where you are in the file system. After all, one of the points of having go install replace go get was to not depend on the working directory.
The new world of versioning we live in is complicated. I hope that we get used to using GOTOOLCHAIN= and go version $(which myprogram) the same way we got used to module versioning.

So I'm not sure there's anything we can do for this issue. I'm going to make sure gopls complains loudly and clearly when it is operating on code that it can't understand, including an instruction to reinstall @latest with GOTOOLCHAIN= ....

The solution here if you need Go 1.22 code is to set something like 'go 1.22.0' in your go.mod.

Updating the Go version can change the semantics of the code (cf. the for range loop variable scope change.)

This is a one-time event, and almost certainly staticcheck doesn't have any such bugs.

It forces everyone who doesn't use automatic upgrades (such as Linux distributions packaging my tools) to support the newer version of Go.

You could set go 1.21.0 in your go.mod. That's not the newest version of Go, but Go 1.21 is the oldest supported version, so it seems reasonable for you to require that.

If a new version of Go releases and I don't update my go.mod and make a new release in time, we're back to this very issue.

We work hard to ensure transition periods for new functionality like this. For example for the new AST alias node we added the node one release before we started using it (actually two but the plan was one). Our goal is that setting the go line to the oldest supported Go version is reasonable.
I also agree that 'go version' could potentially print more information, but that will take some extra thought.

Russ, this issue isn't about which version of Go Staticcheck needs per se, but about which version it gets built with when someone does go install. The version of go/types that Staticcheck (or any other code analysis tool) uses must be at least that of the module under analysis.
The problem is that the user might have some old version of Go installed, which gets automatically upgraded to a newer version when they work in a module that requires said newer version, except when they go install 3rd party tooling they need to work in the module.
As an extreme hypothetical, the user might have a local Go 1.21 and be working in a module that uses Go 1.40. Staticcheck, because it has great backwards compatibility, still can be built with Go 1.21.   The user doesn't have to care about their local toolchain when building the module, thanks to automatic upgrading. But the moment the user go install's 3rd party tools, their local toolchain very much matters, and what they install may not work for their module.
To me, this contradicts the point of automatic upgrading.

Below are individual responses to parts of your comment; I wrote them before I wrote the above text, so they're fairly redundant. Kept here for completeness sake.

The solution here if you need Go 1.22 code is to set something like 'go 1.22.0' in your go.mod.

I don't need Go 1.22 code, unless I am to analyze Go 1.22 code, to get the latest go/types.

You could set go 1.21.0 in your go.mod. That's not the newest version of Go, but Go 1.21 is the oldest supported version, so it seems reasonable for you to require that.

I'm afraid we're going in circles. The suggestion was that I depend on the latest version of Go so that a user running an older version of Go, but working in a module requiring a newer version of Go, who uses go install gets Staticcheck built with the version required to work on their module.

We work hard to ensure transition periods for new functionality like this. For example for the new AST alias node we added the node one release before we started using it (actually two but the plan was one).

Yes, I can depend on Go 1.21 and already prepare for changes coming in Go 1.22. That's not what the problem is about, though.

Our goal is that setting the go line to the oldest supported Go version is reasonable.

That is very reasonable for the majority of Go code. For tools that work on Go code, it leads to the problem outlined above.

VS Code Go project encountered the same problem https://github.com/golang/vscode-go/issues/3168. The issue mentions staticcheck, but the problem applies to all tools VS Code Go depends on.
Currently there are two different paths for users to influence on go's toolchain switch behavior during development.
(other than adjusting PATH or using 3rd party version managers).

specify the desired "go" or "toolchain" version in go.mod or go.work of the user's project module.
specify the desired go version using GOTOOLCHAIN.

Option 1) is the easiest and probably a better option between the two.
With the option 1), users expect they are using the chosen go version when they run 'go' inside the module directory.

However, go install <pkg>@<version> does not meet users' expectation, which is surprising.
As @dominikh explained, this does not work nicely if the tool's module cannot set its go.mod to use the latest go version. I can think of various reasons the module that includes the tool cannot update their go.mod more aggressively.
I understand that go install <pkg>@<version> installs outside the project module`  to avoid the project's dependencies influencing the tool's dependencies. I think that makes sense for the third party dependencies of the tool. Many tool authors indeed want to pin their 3rd party dependencies. But do they also want to pin the go version to a specific version as well? I guess the answer is most likely no.
Then, I think this is a bug. The fix can be, I think, something similar to how go test and go generate handles - adjusting the PATH or GOROOT ... The tool continues to be built outside the module (modload.NoRoot) but uses the same toolchain the user sees when they run go version.

Is this a niche problem that only tools like staticcheck will encounter?
Originally, I thought so, but I was wrong.
It can happen to any binaries that choose to build differently based on the "go" version. (e.g. go version build tag)

Hi, after discussing with @hyangah and with @rsc and @samthanawalla, we've decided to change the toolchain switching behavior for go install package@version and go run package@version:
Currently it essentially runs in a new empty module and adds a dependency to package@version to that module.
We'd change the behavior so that the command essentially runs in a new empty module with the Go version set to the Go version of the module containing the current directory before adding the dependency to package@version to the module. (The process of adding the dependency would increase the go version of the module to the version of the module being installed if it's lower.)
This would ensure that the go version used to install the toolchain is at least the version reported by running go version in the directory go install is run in.


Timer event documentation link leads to "Page not found" for a brief period

Describe the Bug
On clicking the documentation link in the timer event, for a short period "page not found" message is displayed until it is redirected to the actual documentation page.
Steps to Reproduce

In the Modeler, open a new BPMN diagram for cloud and add a timer event.
Open the properties panel and click on the field Timer event.
Now click open the link "documentation: Timer events"
We could see that for a very short period "page not found" is displayed until the actual documentation page is displayed.

Expected Behavior

On clicking the link it should directly lead to the documentation page without any error page popping up.
Environment

OS: [Windows 10]
Camunda Modeler Version: [4.10.0]
Execution Platform: [Camunda Cloud]

https://user-images.githubusercontent.com/85225325/132754700-73896a19-6cef-4c3f-848a-0a69e44abd67.mp4

The problem is that there is a / before the #.... reference

Could I give this one a try?

Could I give this one a try?

The issue needs to be in bpmn-io/bpmn-properties-panel => please see issue https://github.com/bpmn-io/bpmn-properties-panel/issues/123.
According to the comment in that issue, there is someone already working on this... But if there is no outcome, of course feel free to go ahead :-)

Fixed upstream via https://github.com/bpmn-io/bpmn-properties-panel/pull/124


Fix incorrect json sigs

We are trying to update to json 2.3 (from 1.8). We use tapioca. After updating json and re-running tapioca we got these 3 errors from srb tc:
sorbet/rbi/gems/json@2.3.1.rbi:31: Method JSON.dump redefined without matching argument count. Expected: 2, got: 3 https://srb.help/4010
    31 |  def self.dump(obj, anIO = _, limit = _); end
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    https://github.com/sorbet/sorbet/tree/576e1fe628309d57783b13d7d7c7e7c546060b49/rbi/stdlib/json.rbi#L137: Previous definition
     137 |  def self.dump(obj, *args); end
            ^^^^^^^^^^^^^^^^^^^^^^^^^

sorbet/rbi/gems/json@2.3.1.rbi:36: Method JSON.generate redefined with argument opts as a non-splat argument https://srb.help/4010
    36 |  def self.generate(obj, opts = _); end
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    https://github.com/sorbet/sorbet/tree/576e1fe628309d57783b13d7d7c7e7c546060b49/rbi/stdlib/json.rbi#L193: The corresponding argument args in the previous definition was a splat argument
     193 |  def self.generate(obj, *args); end
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

sorbet/rbi/gems/json@2.3.1.rbi:47: Method JSON.pretty_generate redefined with argument opts as a non-splat argument https://srb.help/4010
    47 |  def self.pretty_generate(obj, opts = _); end
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    https://github.com/sorbet/sorbet/tree/576e1fe628309d57783b13d7d7c7e7c546060b49/rbi/stdlib/json.rbi#L312: The corresponding argument args in the previous definition was a splat argument
     312 |  def self.pretty_generate(obj, *args); end
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

As far as I can tell, in every case tapioca's sig is correct, and matches the method sig in the json gem in versions 2.3.1 and 1.8.6. Therefore I am updating the rbis to match.

We have a policy of testing changes to Sorbet against Stripe's codebase before
merging them. I've kicked off a test run for the current PR.  When the build
finishes, I'll share with you whether or how it failed. Thanks!
Stripe employees can see the build result here:
→ https://go/builds/bui_HfL8Ilv4kCsYzz

Thanks! This raised a few errors on Stripe's codebase, I'll have a look at addressing them on Monday.

We have a policy of testing changes to Sorbet against Stripe's codebase before
merging them. I've kicked off a test run for the current PR.  When the build
finishes, I'll share with you whether or how it failed. Thanks!
Stripe employees can see the build result here:
→ https://go/builds/bui_HmqfHZmFZuELVx


Added stripe payments dependency, modified npm extension loader #729

@Igloczek @filrak I've done this with #878
Because of the web pack nature (doesn't support dynamic import / require) I had to modify the extension loader - moving enabled extensions from config/local.json to /extensions/index.js
Otherwise, it wouldn't have been possible to load extensions installed via npm like - https://github.com/develodesign/vue-storefront-stripe
By the way - I've added dependency to vue-storefront-stripe by default @MikeSheward - good job :)

Now, the extensions can be installed by:

creating the extension folder inside src/extensions
installing the ext via npm install <extensionpackage>

In both cases, the newly installed extension should be adedd to the src/extensions/index.js:
https://github.com/DivanteLtd/vue-storefront/blob/develop/src/extensions/index.js
Please notice: I's been merged to the develop branch


Create exploits for sb-curated reentrancy vulnerabilities

Inspiration: https://coinsbench.com/the-correct-way-to-write-tests-for-your-smart-contracts-using-hardhat-and-ethers-js-reentrancy-5438006e90a0

Total reentrancy contracts 31
Non exploitable 5
List of non exploitable contracts:

name
(reason)

0x627fa62ccbb1c1b04ffaecd72a53e37fc0e17839.sol
(has a OnlyOwner tag that can not be modified)

etherbank.sol
(pragma version)

reentrancy_cross_function.sol
(missing deposit function)

reentrancy_insecure.sol
(missing deposit function)

spank_chain_payment.sol
(exceeded time box for exploits)


recursion: parse arguments from file

shameless duplicate of https://github.com/matejak/argbash/issues/158
tldr: replace the argument @my-args.txt with the contents of the my-args.txt file, allow recursion
challenge: string parsing without eval

It is outside the scope of this project. You can read the arguments from the file yourself. And you can implement such a feature.
example
while read -r arg_name arg_value; do
  sest -- "#@" "$arg_name" "$arg_value"
done < "$args_file"

This library is for parsing arguments. And does not support any means of reading arguments (from a file, etc.).


Cannot install 3.1 - missing 'nan'

I can't seem to install memcached (which requires hashring) on two different systems. I've tried installing nan globally but that doesn't seem to matter.
><EMAIL_ADDRESS>install /Users/jasongabriele/Documents/involute/sucker/node_modules/memcached/node_modules/hashring
> node-gyp rebuild

module.js:340
    throw err;
          ^
Error: Cannot find module 'nan'
    at Function.Module._resolveFilename (module.js:338:15)
    at Function.Module._load (module.js:280:25)
    at Module.require (module.js:364:17)
    at require (module.js:380:17)
    at [eval]:1:1
    at Object.<anonymous> ([eval]-wrapper:6:22)
    at Module._compile (module.js:456:26)
    at evalScript (node.js:559:25)
    at startup (node.js:80:7)
    at node.js:929:3
gyp: Call to 'node -e "require('nan')"' returned exit status 8. while trying to load binding.gyp
gyp ERR! configure error
gyp ERR! stack Error: `gyp` failed with exit code: 1
gyp ERR! stack     at ChildProcess.onCpExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/configure.js:343:16)
gyp ERR! stack     at ChildProcess.emit (events.js:98:17)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (child_process.js:820:12)
gyp ERR! System Darwin 14.0.0
gyp ERR! command "node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /Users/jasongabriele/Documents/involute/sucker/node_modules/memcached/node_modules/hashring
gyp ERR! node -v v0.10.35
gyp ERR! node-gyp -v v1.0.2
gyp ERR! not ok
npm ERR! Darwin 14.0.0
npm ERR! argv "node" "/usr/local/bin/npm" "install"
npm ERR! node v0.10.35
npm ERR! npm  v2.1.18
npm ERR! code ELIFECYCLE

npm ERR<EMAIL_ADDRESS>install: `node-gyp rebuild`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>install script 'node-gyp rebuild'.
npm ERR! This is most likely a problem with the hashring package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node-gyp rebuild
npm ERR! You can get their info via:
npm ERR!     npm owner ls hashring
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!     /Users/jasongabriele/Documents/involute/sucker/npm-debug.log

Here's the line from my package.json: "memcached": ">= 2.1". Let me know if you want me to post that debug.log - it's pretty long

I have no idea why it's failing because it's defined in the package.json as required: https://github.com/3rd-Eden/node-hashring/blob/master/package.json#L28 so this sounds more like an npm bug than something that is related to this library.

I tried upgrading to npm 2.3.0 and it seems to work now. I guess the solution is to upgrade then!

Awesome, I'm glad that you solved it.


Major update to Hal Components

Summary of changes

Updated libraries:

@dxc-technology/halstack-react updated to 8.0.0.
@dxc-technology/halstack-react-client updated to 1.3.3.

Clean up the library's package.json.
Updated specs for the HalTable to match the current implementation and design of the DxcResultsetTable.

Updated the error font colour to match the DS error patterns and colour standards.

New Typescript implementation.

Now the Hal Components export types, which make them more secure when programming (type-checking, suggestions, comments, etc).
Updated build and configuration files to correctly export the typing.
/app example project has also been updated to use Typescript.

Updated README to match the new types and some typo fixes.
Majors:

HalAutocomplete prop url has been renamed to collectionUrl to match the rest of the hal components.

The colors or the error fonts are different for the Table and the autocomplete. is there any reason for that?

The colors or the error fonts are different for the Table and the autocomplete. is there any reason for that?

I decided to go for the error font colour because the HalTable had that text in a red colour previously, so to change the design as less as possible, I only updated that red colour to the new value in the CDK. In the case of the Text Input, that was a design decision made by Alex.


DRILL-8465: Check Input Data for Iceberg Plugin

Description
https://issues.apache.org/jira/browse/DRILL-8465
I'm not happy with the class check here. I don't know to what extent that we need to support subclasses that a user might make of Iceberg classes. If we need to support subclasses of Iceberg classes, it might be better to support a config option that allows users to extend the allow list for classes in this deserialization code.
In this PR, the allow list is:

java primitives
java/javax classes
org.apache.iceberg classes
org.apache.drill classes
arrays of the types listed above
messiest bit is the support for any subclass of iceberg ScanTask class

@cgivre I'm not that familiar with how Drill plugin configurations work. If I was to extend IcebergFormatPluginConfig to add a configurable allowPackageList (String[] or List<String> -- whichever works best) -- how would I go about accessing this from the IcebergWork class. It is IcebergWork where I need to apply the allow list.

@cgivre I'm not that familiar with how Drill plugin configurations work. If I was to extend IcebergFormatPluginConfig to add a configurable allowPackageList (String[] or List<String> -- whichever works best) -- how would I go about accessing this from the IcebergWork class. It is IcebergWork where I need to apply the allow list?

It think the thing to do would be to add an argument to the IcebergWork constructor.  Then once that's done, it looks like the IcebergWork is instantiated in the IcebergGroupScan.
https://github.com/apache/drill/blob/fe57fd11bf61a0835e4295f6822c4e1b0a045bfa/contrib/format-iceberg/src/main/java/org/apache/drill/exec/store/iceberg/IcebergGroupScan.java#L236-Ll44
The GroupScan has access to the IcebergPlugin and from there you can access the IcebergConfig.  Does that make sense?

@vvysotskyi you appear to have written most of the Iceberg code. Would you have any idea if this issue is one that we need to worry about? If it is, it looks like it will be hard to get the config values injected into IcebergWork because the class seems to only be instantiated by a custom Jackson Deserializer that itself only created only Java reflection.

@cgivre unfortunately, IcebergWork is also created by IcebergWorkDeserializer but this class is constructed using reflection based on @JsonDeserialize(using = IcebergWork.IcebergWorkDeserializer.class).
There is no point in changing IcebergWork unless we can find a way to inject the config value into IcebergWorkDeserializer too.

@jnturton Do you have any thoughts here?  This seems like this would be a good PR to get into the bug fix release.

The short background to this in this link -  https://lists.apache.org/thread/vpjz467rg8449m63v1n9nl3o56twwyzt (a private thread requiring ASF login).
I'm no expert on Iceberg or the Drill Iceberg Plugin but I was hoping to maybe engage with someone who knows more about how they work and to get an understanding of if we need some constraints. Due to the security aspect of this, I'm not too comfortable going into more detail here.

Got it @pjfanning. Let's discuss further in the right forum.


rosrust_msg does not automatically discover all msg files in package

I have a catkin-based ROS1 project with a package my_msgs. The package contains msg and action definitions in a hierarchy like:
my_msgs
    action
        package_1
            MyAction.action
    msg
        package_1
            package_1.msg
        package_2
            package_2.msg

With CMakeLists.txt declaring them like so:
add_message_files(
  DIRECTORY
    msg/package_1
  FILES
    package_1.msg
)

add_message_files(
  DIRECTORY
    msg/package_2
  FILES
    package_2.msg
)

# Actions
add_action_files(
  DIRECTORY
    action/package_1
  FILES
    MyAction.action
)

After building, I try to execute cargo build on my rosrust binary crate that uses rosrust_msg. It does generate some messages, but not all that I'm expecting so I looked into the build.rs to do some debugging.
It looks like the expected location for local package msg definitions is under ${CATKIN_WS}/devel/share/<package-name>/msg and it's there that I find the generated msg files for MyAction.action. These have types generated for them under the rosrust_msg package. However, there are no message files copied here for the other msg definitions. It seems like the discovery mechanism is incomplete here. I'd note that rosmsg show can find the message file definitions as it searches the src directory as well. It may be necessary to include that in order to do complete discovery.

I've been trying to parse the cmake macro definitions for add_message_files and add_action_files to see if there's some way to invoke the prior to make it copy those definitions into devel, but it doesn't appear so. It may be possible to create a new macro that does the intended behavior to make discovery work as written though.

[add_message_files](https://github.com/ros/genmsg/blob/7d8b6ce6f43b6e39ea8261125d270f2d3062356f/cmake/genmsg-extras.cmake.em#L79)
[add_action_files](https://github.com/ros/common_msgs/blob/noetic-devel/actionlib_msgs/cmake/actionlib_msgs-extras.cmake.em#L14)


Update manifests/o/Oxen/Session/1.6.11/Oxen.Session.locale.it-IT.yaml

Fixes an issue where this package has multiple different monikers
Microsoft Reviewers: Open in CodeFlow

[Policy] Reset Labels

Close with reason: Same changes merged in #182189;


Needs a JavaScript framework

Try React or Vue

To enable Javascript framework generation support, run the following on nocode shell:

Okay, I did but I got this error:

On Sep 2, 2018, at 7:55 PM, Thiago F Pappacena<EMAIL_ADDRESS>wrote:
To enable Javascript framework generation support, run the following on nocode shell:
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or mute the thread.

Ah, I saw this error before. According to the answer in this  link  , you should do the following using yarn:

Make sure to run yarn from the node file and put through a webpack + Babel combo

On Sep 2, 2018, at 8:02 PM, Thiago F Pappacena<EMAIL_ADDRESS>wrote:
Ah, I saw this error before. According to the answer in this link , you should do the following using yarn:
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or mute the thread.

It seems that Javascript is fully compatible with nocode, but package.json is not...


Simplify use of layouts and markdown

This PR will remove unnecessary layouts and use markdown instead of building all pages in front matter (this approach was only intended for the homepage).

ok thanks. now if i want to make full page color to grey (#f7f7f7) how can i do it? if i am adding color in markdown file. its only adding color in content area


Investigate deoptimization diagnostics tooling

We've been diving deep into perf. One place we find tooling lacking is in identifying deoptimizations in the VM. @rbuckton has had some neat experiments which we might be able to leverage to identify polymorphic/megamorphic usage sites. Work closely with @amcasey here to get a sense of what is and isn't useful.
Also, identify some baselines within the tooling to help drive meaningful goals for users. For example, a use-site might have 500 different object shapes passing through it - is it meaningfully faster to reduce that to 200?
Ideally, this would be usable by the broader team and partner teams who also write CPU-bound Node.js code.

May I request that be investigation public (Or already public but in somewhere)?
Very interested in this stuff.


[Snyk] Upgrade axios from 0.21.4 to 0.27.2

This PR was automatically created by Snyk using the credentials of a real user.Snyk has created this PR to upgrade axios from 0.21.4 to 0.27.2.
As this is a private repository, Snyk-bot does not have access. Therefore, this PR has been created automatically, but appears to have been created by a real user.
:sparkles: Snyk has automatically assigned this pull request, set who gets assigned.
:information_source: Keep your dependencies up-to-date. This makes it easier to fix existing vulnerabilities and to more quickly identify and fix newly disclosed vulnerabilities when they affect your project.

The recommended version is 9 versions ahead of your current version.
The recommended version was released 8 months ago, on 2022-04-27.

Release notes

Package name: axios

0.27.2 - 2022-04-27Fixes and Functionality:

Fixed FormData posting in browser environment by reverting #3785 (#4640)
Enhanced protocol parsing implementation (#4639)
Fixed bundle size

0.27.1 - 2022-04-26Fixes and Functionality:

Removed import of url module in browser build due to huge size overhead and builds being broken (#4594)
Bumped follow-redirects to ^1.14.9 (#4615)

0.27.0 - 2022-04-25Breaking changes:

New toFormData helper function that allows the implementor to pass an object and allow axios to convert it to FormData (#3757)
Removed functionality that removed the the Content-Type request header when passing FormData (#3785)
(*) Refactored error handling implementing AxiosError as a constructor, this is a large change to error handling on the whole (#3645)
Separated responsibility for FormData instantiation between transformRequest and toFormData (#4470)
(*) Improved and fixed multiple issues with FormData support (#4448)

QOL and DevX improvements:

Added a multipart/form-data testing playground allowing contributors to debug changes easily (#4465)

Fixes and Functionality:

Refactored project file structure to avoid circular imports (#4515) & (#4516)
Bumped follow-redirects to ^1.14.9 (#4562)

Internal and Tests:

Updated dev dependencies to latest version

Documentation:

Fixing incorrect link in changelog (#4551)

Notes:

(*) Please read these pull requests before updating, these changes are very impactful and far reaching.

0.26.1 - 2022-03-09Fixes and Functionality:

Refactored project file structure to avoid circular imports (#4220)

0.26.0 - 2022-02-13Fixes and Functionality:

Fixed The timeoutErrorMessage property in config not work with Node.js (#3581)
Added errors to be displayed when the query parsing process itself fails (#3961)
Fix/remove url required (#4426)
Update follow-redirects dependency due to Vulnerability (#4462)
Bump karma from 6.3.11 to 6.3.14 (#4461)
Bump follow-redirects from 1.14.7 to 1.14.8 (#4473)

0.25.0 - 2022-01-18Breaking changes:

Fixing maxBodyLength enforcement (#3786)
Don't rely on strict mode behaviour for arguments (#3470)
Adding error handling when missing url (#3791)
Update isAbsoluteURL.js removing escaping of non-special characters (#3809)
Use native Array.isArray() in utils.js (#3836)
Adding error handling inside stream end callback (#3967)

Fixes and Functionality:

Added aborted even handler (#3916)
Header types expanded allowing boolean and number types (#4144)
Fix cancel signature allowing cancel message to be undefined (#3153)
Updated type checks to be formulated better (#3342)
Avoid unnecessary buffer allocations (#3321)
Adding a socket handler to keep TCP connection live when processing long living requests (#3422)
Added toFormData helper function (#3757)
Adding responseEncoding prop type in AxiosRequestConfig (#3918)

Internal and Tests:

Adding axios-test-instance to ecosystem (#3786)
Optimize the logic of isAxiosError (#3546)
Add tests and documentation to display how multiple inceptors work (#3564)
Updating follow-redirects to version 1.14.7 (#4379)

Documentation:

Fixing changelog to show corrext pull request (#4219)
Update upgrade guide for https proxy setting (#3604)

Huge thanks to everyone who contributed to this release via code (authors listed below) or via reviews and triaging on GitHub:

Jay
Rijk van Zanten
Kohta Ito
Brandon Faulkner
Stefano Magni
enofan
Andrey Pechkurov
Doowonee
Emil Broman
Remco Haszing
Black-Hole
Wolfram Kriesing
Andrew Ovens
Paulo Renato
Ben Carp
Hirotaka Tagawa
狼族小狈
C. Lewis
Felipe Carvalho
Daniel
Gustavo Sales

0.24.0 - 2021-10-25Breaking changes:

Revert: change type of AxiosResponse to any, please read lengthy discussion here: (#4141) pull request: (#4186)

Huge thanks to everyone who contributed to this release via code (authors listed below) or via reviews and triaging on GitHub:

Jay
Rodry
Remco Haszing
Isaiah Thomason

0.23.0 - 2021-10-12Breaking changes:

Distinguish request and response data types (#4116)
Change never type to unknown (#4142)
Fixed TransitionalOptions typings (#4147)

Fixes and Functionality:

Adding globalObject: 'this' to webpack config (#3176)
Adding insecureHTTPParser type to AxiosRequestConfig (#4066)
Fix missing semicolon in typings (#4115)
Fix response headers types (#4136)

Internal and Tests:

Improve timeout error when timeout is browser default (#3209)
Fix node version on CI (#4069)
Added testing to TypeScript portion of project (#4140)

Documentation:

Rename Angular to AngularJS (#4114)

Huge thanks to everyone who contributed to this release via code (authors listed below) or via reviews and triaging on GitHub:

Jay
Evan-Finkelstein
Paweł Szymański
Dobes Vandermeer
Claas Augner
Remco Haszing
Evgeniy
Dmitriy Mozgovoy

0.22.0 - 2021-10-01Fixes and Functionality:

Caseless header comparing in HTTP adapter (#2880)
Avoid package.json import fixing issues and warnings related to this (#4041), (#4065)
Fixed cancelToken leakage and added AbortController support (#3305)
Updating CI to run on release branches
Bump follow redirects version
Fixed default transitional config for custom Axios instance; (#4052)

Huge thanks to everyone who contributed to this release via code (authors listed below) or via reviews and triaging on GitHub:

Jay
Matt R. Wilson
Xianming Zhong
Dmitriy Mozgovoy

0.21.4 - 2021-09-06Fixes and Functionality:

Fixing JSON transform when data is stringified. Providing backward compatibility and complying to the JSON RFC standard (#4020)

Huge thanks to everyone who contributed to this release via code (authors listed below) or via reviews and triaging on GitHub:

Guillaume Fortaine
Yusuke Kawasaki
Dmitriy Mozgovoy

    from axios GitHub release notes

Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open upgrade PRs.
For more information:
🧐 View latest project report
👩💻 Set who automatically gets assigned
🛠 Adjust upgrade PR settings
🔕 Ignore this dependency or unsubscribe from future upgrade PRs

Surpassed by https://github.com/uc-cdis/BMH-admin-portal/pull/105


Move progressbar and log to end-of form.

Closes #338.
Simply switch the position of the initially hidden elements to be at the
bottom.

I am +1 on this, though at some point I think we'll need to revisit your point about screens being too small for this to fit on there! Shouldn't block on this PR though IMO.
Will wait to get confirmation from @ellisonbg and @willingc since they weighed in on the original issue IIRC

Looks good!

Thanks @Carreau. :shipit:


UX Research Plan - Reporting

Title of ticket: UX Research Plan - Reporting
Description
Planning Phase for Multiple Rounds of Research in IAO and Ministry Users Currently Practice for Reporting
Dependencies

[x] Receiving folder of ALL currently reports (To who and Why)

DOD

[x] Initial Discovery into Currently Reporting Practices
[x] Discover List of Personas who Receive Reports
[x] How will we discover each Persona ideal report
[x] Draft Research Plan
[x] Share Draft Research Plan with SME for Feedback
[ ] Share Draft Research Plan with PO for Feedback

@m-prodan @arielleandrews
Wanted to share out the link to this for feedback when you have time. The research for this will include the analyzing of the report samples we are provided by personas and the sessions afterwards to confirm we have the right defaults for each personas needs for reporting.
https://bcgov.sharepoint.com/:w:/t/03521/EWtHd6FQRyBNqFsJPXm9HtIBQMS3SRsykMVAF1Yr2mc9Pg?e=iPWtJJ
As a question, when do you think it is realistic for us to ask for these reports from IAO Managers and the Governance Committee? Assuming we send them emails today. Ideally I am thinking Wednesday, which would give me Thursday and Friday to review them and prep and we could book in short sessions to review the proposed defaults next week. Let me know if you think we need to give them a week, which is fine just means we might not be able to fit in sessions before I leave for the holidays.

I'm going to manager's meeting today, and can ask them to have me copies of their reports early this week, by Wednesday if possible. They should all have custom reports handy that they can push out.

I'll send a note around to the Team Leads today as well and see if I can get a few responses back from that group

That's what I was thinking, this shouldn't be a time consuming task for everyone. Would you be able to email the governance committee today as well just to get some from the Ministries. Ideally were looking for minimum 4 from each user group. The more the better

Yep no problem - I'll send a note to the working group as many of them immediately supervise Ministry coordinators

Plan has been reviewed and collecting of sample reports has begun


HTML style support

HTML style is so like to Markdown style for parse_mode
I think we need an enumeration instead if boolean in
https://github.com/MrRoundRobin/telegram.bot/blob/master/src/Telegram.Bot/Types/InlineQueryResult.cs#L49
like
public enum ParseMode{ None, Markdown, HTML }

wait 5 minutes ;)

5f93d42443109d3c9d0eef0e8e8e74b4e5e13b91


Window fake monitor

Enforce monitor layout requirements for windowed mode and fullscreen mode before checking the layouts meet multimonitor requirements.

This way we always send a valid monitor layout in single monitor / windowed mode (start at 0/0 and primary=TRUE)

@hardening there is a reason for that, once settings are  fully opaque getters/setters can add range checks for each value. (so you can´t set an out of range value anymore)


Fix GESTURE_DRAG and GESTURE_SWIPE_* issues (mostly) for web

Adds a different check to detect GESTURE_DRAG for PLATFORM_WEB.
Adds a DRAG_TIMEOUT define for the previous check.
Adds GESTURE_HOLD to the check to update the GESTURES.Touch.upPosition.
Changes the default value of FORCE_TO_SWIPE to make it less twitchy for high sensitivity web browsers like Chrome for Android.
Fix https://github.com/raysan5/raylib/issues/3182.

@ubkp Thank you very much for all the amazing work put into improving the gestures module! Actually the review was int the list of future improvements for the library and you mostly did it all by yourself! Thanks!
One detail, trying the example on Windows (with mouse), I notice that HOLD is always issued after just a TAP, shouldn't it take some time to be detected?