Crash if RichTextLabel line_separation constant is set below 0 in inspector

Godot version
v4.0.alpha13.official [59dcddc45]
System information
archlinux 5.18.9-zen1-1-zen x86_64 Advanced Micro Devices, Inc. [AMD/ATI] Ellesmere Micro-Star International Co., Ltd. [MSI] Radeon RX 580 Armor 4G OC amdgpu
Issue description
If you set RichTextLabel's line_separation constant to below 0, it will crash the editor, strangely the display may still work with that value if you drag it below 0, but once it gets permanently set in the inspect it will still crash.
Steps to reproduce

Create Project
Make a RichTextLabel scene
Go down to theme override constants
Tick line_separation
Click the down arrow once

Minimal reproduction project
The RichTextLabel is already prepared, just click the down arrow for the line_separation constant:
RichTextLabelCrash.zip

ERROR: Index p_index = 1 is out of bounds (count = 1).
   at: operator[] (./core/templates/local_vector.h:168)

Backtrace:
(gdb) bt
#0  0x000055556016bbf5 in LocalVector<RichTextLabel::Line, unsigned int, false, false>::operator[] (this=0x6100000beb88, p_index=1) at ./core/templates/local_vector.h:168
#1  0x0000555560113fc7 in RichTextLabel::_notification (this=0x61d002b57a90, p_what=30) at scene/gui/rich_text_label.cpp:1782
#2  0x0000555560168284 in RichTextLabel::_notificationv (this=0x61d002b57a90, p_notification=30, p_reversed=false) at scene/gui/rich_text_label.h:40
#3  0x00005555648170d8 in Object::notification (this=0x61d002b57a90, p_notification=30, p_reversed=false) at core/object/object.cpp:735
#4  0x000055555f95931d in CanvasItem::_update_callback (this=0x61d002b57a90) at scene/main/canvas_item.cpp:135
#5  0x0000555559d60f02 in call_with_variant_args_helper<__UnexistingClass>(__UnexistingClass*, void (__UnexistingClass::*)(), Variant const**, Callable::CallError&, IndexSequence<>) (p_instance=0x61d002b57a90,
    p_method=<error reading variable: Cannot access memory at address 0xffffffffffffffc0>, p_args=0x7fffffffd200, r_error=...) at ./core/variant/binder_common.h:262
#6  0x0000555559d5cfd5 in call_with_variant_args_dv<__UnexistingClass> (p_instance=0x61d002b57a90, p_method=(void (__UnexistingClass::*)(__UnexistingClass * const)) 0x55555f9591ce <CanvasItem::_update_callback()>, p_args=0x0,
    p_argcount=0, r_error=..., default_values=...) at ./core/variant/binder_common.h:409
#7  0x0000555559d548a4 in MethodBindT<>::call(Object*, Variant const**, int, Callable::CallError&) (this=0x60c000129650, p_object=0x61d002b57a90, p_args=0x0, p_arg_count=0, r_error=...) at ./core/object/method_bind.h:320
#8  0x0000555564816716 in Object::callp (this=0x61d002b57a90, p_method=..., p_args=0x0, p_argcount=0, r_error=...) at core/object/object.cpp:678
#9  0x00005555640a571b in Callable::callp (this=0x7fffed996870, p_arguments=0x0, p_argcount=0, r_return_value=..., r_call_error=...) at core/variant/callable.cpp:62
#10 0x0000555564806c56 in MessageQueue::_call_function (this=0x6070000d8930, p_callable=..., p_args=0x7fffed996888, p_argcount=0, p_show_error=false) at core/object/message_queue.cpp:229
#11 0x00005555648074c0 in MessageQueue::flush (this=0x6070000d8930) at core/object/message_queue.cpp:275
#12 0x000055555fad77a1 in SceneTree::physics_process (this=0x619000314790, p_time=0.016666666666666666) at scene/main/scene_tree.cpp:420
#13 0x0000555559072382 in Main::iteration () at main/main.cpp:2855
#14 0x0000555558fa768d in OS_LinuxBSD::run (this=0x7fffffffe0c0) at platform/linuxbsd/os_linuxbsd.cpp:540
#15 0x0000555558f9affe in main (argc=4, argv=0x7fffffffe6a8) at platform/linuxbsd/godot_linuxbsd.cpp:72

Doesn't seem to crash anymore. Can someone confirm?

Fixed by #65735.


fields available to export to swagger.json

hello!
as discussed in my prior issue, i am attempting to use swagger-codegen to auto-build an API client.  it works, but the api client shape is ugly.
i would like to be able to specify at my path level some string that would eventually translate to apiClient.somePathString, vs. what it does now, which is apiClient.myModelidApi (<== yuck!).
in order to achieve this, i'd like an additional path-level string exported to the swagger.json.  currently i observe:

route/path
description
notes
tags (with just the api tag)

exported to swagger.json.  is there a way i can get extra content exported?
ideally, i'd like to do:
...
tags: ['api', 'clientPath:myModel' ],
...

and have 'clientPath:myModel' present in the swagger.json output.
let me know if you think this is feasible!
thanks!

Hi I will have a look at this Monday, just want to write some tests to make sure passing through tag data will not break the grouping within swaggerui.
I was thinking of removing the api tag from the output

Closing due to inactivity.


Add Support for Merge Results

Please add support for
Projects -> General Settings -> Merge Options -> Merge Result pipelines and Merge Trains

Closing this issue as this is not currently supported by the GitLab API. Once (if) support is added in the future we can look at this one again...


Invalid when the list length is variable

I changed itemCount: 100 to itemCount: dataList.length,
Then get the list data through the network and change the dataList, this animation is invalid

Hello,
Could you be more precise, provide a sample code as well as a video of the problem you have ?

AnimationLimiter(
    child: ListView.builder(
                 padding: const EdgeInsets.all(8.0),
                 itemCount: data.length,
                 itemBuilder: (BuildContext context, int index) {
                     return AnimationConfiguration.staggeredList(
                     position: index,
                     duration: const Duration(milliseconds: 375,),
                     child: SlideAnimation(
                         verticalOffset: 44.0,
                         child: FadeInAnimation(
                             child: ShopItemView(
                                 item: data[index],
            ),
          ),
        ),
      );
    },
  ),
),

This data comes from the network.

Hi, this has happened to me as well. This is due to the AnimationLimiter class drawing the animation when it first loaded. If your list is dynamic but the content is still the same, the animation won't redraw itself because it was already done so the first time.
I think the goal here is to redraw items regardless if they have been drawn the first time. I think this can be achieved by wrapping the AnimationLimiter class in another class which you will recall setState on for each time your list is changing. Kind of a hack, but maybe try removing the AnimationLimiter class and use
ListView.builder(                  padding: const EdgeInsets.all(8.0),                  itemCount: data.length,                  itemBuilder: (BuildContext context, int index) {                      return AnimationConfiguration.staggeredList(                      position: index,                      duration: const Duration(milliseconds: 375,),                      child: SlideAnimation(                          verticalOffset: 44.0,                          child: FadeInAnimation(                              child: ShopItemView(                                  item: data[index],             ),           ),         ),       );     },   )
and see if you like the results. That is what I have done for my grid view.

@ q876625596您是否正在更新小部件的状态？

Yes i am updating dynamically

Hello there,
As @tpm5183 said, the AnimationLimiter prevents the list to animate again if your list is dynamic and your widget is rebuilt.
You can provide a new key to the AnimationLimiter widget each time you want the animation to be launched again.


Render different tabs based on condition (isLogged)

Version
Tell us which versions you are using:

react-native-router-flux v3.36.0
react-native v0.36.0

Can I render different tabs based on application state condition?
I have an application that has sections that are only visible to logged in users, I wish that some tabs appear only if the user is logged in. I tried to do this with the component Switch:
selectRouterTab(props) {
  console.log('select tab', props);
  return props.isLogged ? 'authenticated' : 'notAuthenticated';
}
render() {
  const ConnectedSwitch =
    connect(state => ({ isLogged: state.user.isLogged }))(Switch);
  return (
    <RouterWithRedux getSceneStyle={getSceneStyle}>
      <Scene
        key="root"
        hideNavBar
        hideTabBar
        >
        <Scene key="tabbar" tabs tabBarStyle={styles.tabBarStyle}
          component={ConnectedSwitch}
          unmountScenes={true}
          selector={this.selectRouterTab}
          >
          <Scene key="notAuthenticated" tabs>
            <Scene key="superHome" title="Home" icon={TabIcon}
                iconTitle="home"
                navigationBarStyle={styles.navigationBarStyle}
                leftButtonStyle={styles.backButton}
                titleStyle={styles.titleStyle}>
              <Scene
                key="home"
                component={Home}
                renderRightButton={this.renderIcon}
              />
              <Scene
                key="postDetail"
                component={Detail}
                title=""
                navigationBarStyle={styles.navigationBarStyleDetail}
                hideTabBar
              />
            </Scene>
            <Scene key="settings" title="" icon={TabIcon}
              iconTitle="user">
              <Scene
                key="tab1_1"
                component={Progress}
                title="Settings"
              />
            </Scene>
          </Scene>
          <Scene key="authenticated" tabs>
            <Scene key="bookmark" component={Spinner} title="" icon={TabIcon}
               iconTitle="bookmark">
            </Scene>
            <Scene key="notification" component={Examples} title="Notifiche" icon={TabIcon}
               iconTitle="notification"/>
            <Scene key="settings" title="" icon={TabIcon}
              iconTitle="user">
              <Scene
                key="tab1_1"
                component={Bar}
                title="Settings"
              />
            </Scene>
          </Scene>
        </Scene>
      </Scene>
    </RouterWithRedux>
  );
}

however, I encountered a problem with this approach:
I had to repeat a scene settings and tab1_1, and this causes me the error console Key settings is already defined!
Is there a way to solve only show the tabs you want depending on a condition?
Even a different approach to achieve the desired result!

@dragfire thanks for the quick answer.
But it seems not to be the same situation.
When the application is launched the initial route is already within the TabBar. Also launching Action.home({type: 'REMOVE_TWO_TABS'}) in componentDidMount they remain displayed.
Only when I press another tab, children are removed.
Another problem is that when I go to another tab, Do I login and back of the home tab, the tab children no longer appear. It seems that this will be permanently erased.

Update ..
By using the method of removal of children through reducer I think definitely is not the correct solution.
The situation is this:
const reducerCreate = (params) => {
  const defaultReducer = new Reducer(params);
  return (state, action) => {
    switch(action.type) {
      case 'REMOVE_TWO_TABS':
        const children = _.merge([], state.children);
        if(children[0].children.length > 2)
          children[0].children.splice(1, 2);

        return _.assign({}, state, { children });
      default:
        return defaultReducer(state, action);
    }
  };
};

class AppNavigator extends Component {
  render() {
    <RouterWithRedux createReducer={reducerCreate} getSceneStyle={getSceneStyle}
        navigationBarStyle={styles.navigationBarStyle}
        leftButtonStyle={styles.backButton}
        titleStyle={styles.titleStyle}>
        <Scene
          key="root"
          hideNavBar
          hideTabBar
          >
          <Scene key="tabbar" tabs tabBarStyle={styles.tabBarStyle} initial>
            <Scene key="superHome" title="Home" icon={TabIcon}
              iconTitle="home">
              <Scene
                key="home"
                component={Home}
                title="HOME"
                renderRightButton={this.renderIcon}
              />
              <Scene
                key="postDetail"
                component={Detail}
                title=""
                navigationBarStyle={styles.navigationBarStyleDetail}
                hideTabBar
              />
            </Scene>
            <Scene key="bookmark" component={Bookmark} title="" icon={TabIcon}
                  iconTitle="bookmark">
            </Scene>
            <Scene key="notification" component={Notification} title="" icon={TabIcon}
                  iconTitle="notification"/>
            <Scene key="settings" title="" icon={TabIcon}
              iconTitle="user">
              <Scene
                key="tab1_1"
                component={Settings}
                title="Settings"
              />
            </Scene>
          </Scene>
        </Scene>
      </RouterWithRedux>
  }
}

class Home extends Component {
  componentWillMount() {
    if(!this.props.isLogged) {
      setTimeout(() => {
        Actions.tabbar({ type: 'REMOVE_TWO_TABS' });
      }, 0);
    }
  }
  // ...
}

Even calling the action that removes type in componentDidMount nothing happens, unless use a setTimeout to delay the call to action REMOVE_TWO_TABS.
But this means that for a moment I see all tabs.
The second issue is that if the user logs in, I have to show all tabs, which means that when I remove the tabs I have to save them somewhere and when the user logs I have to put them ..
This does not seem a good behavior ..
So, there is a right way to hide / show tab depending on a condition?
I tried using the "switch" component and with this solution but I can not find answer.
I think what I want to achieve is not a strange thing!
Could you please tell me the solution to the problem?

Looking for a solution for this too.

You don't have to dispatch your action REMOVE_TWO_TABS  in a component.
You can dispatch it before your LOGIN_SUCCESS_ACTION for instance, so you can remove the tab before to navigate to home scene.
When the user logout, you can re-initialise the scenes to restore all the tabs that you've previously deleted.


Support graceful restart & zero downtime

ref: https://github.com/facebookgo/grace

this is coming built-in to the Go standard library in 1.8 which should be released in a just a couple of weeks. I'm open to switching to the beta to use it:
https://beta.golang.org/doc/go1.8#http_shutdown

1.8 support graceful shutdown but facebookgo/grace support graceful restart.

Does this PR implement graceful restarts or just shutdowns? Are we interested in both?


Feature: feedback within the application

Description
As a user, when I want to give feedback, I shouldn't need to leave the application
Acceptance Criteria

[ ] Allow users to give feedback within the application without needing to e-mail us.

Will not be doing this at this time. E-mail works very well.


🐛 fix: perms plugin - edit webhook

Overriden directly. Thanks yui, implemented your idea with a few modifications


Error: VM Exception while processing transaction

hey guys
i try to write the test for the raffle but  at the  "does not allow entrance when raffle is calculating" in the EnterRaffle descrie
get the following error :

Error: VM Exception while processing transaction: reverted with custom error 'InvalidConsumer()'
at VRFCoordinatorV2Mock.onlyValidConsumer (@chainlink/contracts/src/v0.8/mocks/VRFCoordinatorV2Mock.sol:72)
at VRFCoordinatorV2Mock.requestRandomWords (@chainlink/contracts/src/v0.8/mocks/VRFCoordinatorV2Mock.sol:147)
at Raffle.performUpkeep (contracts/Raffle.sol:142)

when i run the perforUpkeep() method i get this error i don't know how to fix it because i don't understand why InvalidConsumer() get reverted . i would appreciate it if anyone can help ?

Have a look at this https://github.com/PatrickAlphaC/hardhat-smartcontract-lottery-fcc/issues/46#issuecomment-1215100931
Let us know if it works, I've had this error myself in the past too ...

All sorted now?

just found out there's a solution out there for it after submitting (my first) pull request, I guess installing an older version of chainlink contracts works as well?

Hey, can we close this now?

Closing, thanks!


packaging kivy with briefcase on windows

Hi guys,
I think it's directly a bug from kivy bug, investigating this bug is tricky so  I'm here for some help, to resolve it.
What is briefcase and what it does ?
it builds a package where your app is run from an embeded python interpreter. nothing is compiled ala pysintaller, just embedpython -m myapp.
Dependecies are specified in a pyproject.toml require section.
Command briefcase dev -d : install your dependecies un your virtualenv and run the app from your source.
Command briefacase run: creates a windows sub the directory of the packaged app and run the app from the package :
MyRepo
| ___ mymapp
| ___ windows
              |_MyApp
                  | __ src
                       |_ python
                       |_ app_packages
                           \_ kivy
                           |_ requests
                       |_ app
                         |_ myapp

in python there is an embed python with a python._pth fie to limit path to those 3 directories.
in app a copy of your app
in app_packages : the dependecies (the same from pyproject.toml in requiere) installed via the following  :
https://github.com/beeware/briefcase/blob/c09dffcfea53e0e4546abd4d52058313b6473fc3/src/briefcase/commands/create.py#L380
What the matter ?
Every thing is ok with briefcase dev.
But in briefcase run -d, I have the following error :
[INFO   ] [Logger      ] Record log in C:\Users\jim\.kivy\logs\kivy_20-07-15_9.txt
[INFO   ] [Kivy        ] v1.11.0
[INFO   ] [Kivy        ] Installed at "C:\Users\jim\rien\kivybrief\helloworld\windows\Hello World\src\\app_packages\kivy\__init__.py"
[INFO   ] [Python      ] v3.7.6 (tags/v3.7.6:43364a7ae0, Dec 19 2019, 00:42:30) [MSC v.1916 64 bit (AMD64)]
[INFO   ] [Python      ] Interpreter at "C:\Users\jim\rien\kivybrief\helloworld\windows\Hello World\src\python\python.exe"
[INFO   ] [deps        ] Successfully imported "kivy_deps.angle" 0.1.9
[INFO   ] [deps        ] Successfully imported "kivy_deps.sdl2" 0.1.22
[INFO   ] [Factory     ] 184 symbols loaded
[INFO   ] [Image       ] Providers: img_tex, img_dds, img_gif (img_sdl2, img_pil, img_ffpyplayer ignored)
[CRITICAL] [Window      ] Unable to find any valuable Window provider. Please enable debug logging (e.g. add -d if running from the command line, or change the log level in the config) and re-run your app to identify potential causes
sdl2 - ImportError: DLL load failed: Le module spécifié est introuvable.
  File "C:\Users\jim\rien\kivybrief\helloworld\windows\Hello World\src\\app_packages\kivy\core\__init__.py", line 63, in core_select_lib
    fromlist=[modulename], level=0)
  File "C:\Users\jim\rien\kivybrief\helloworld\windows\Hello World\src\\app_packages\kivy\core\window\window_sdl2.py", line 27, in <module>
    from kivy.core.window._window_sdl2 import _WindowSDL2Storage

[CRITICAL] [App         ] Unable to get a Window, abort.
Unable to start application 'helloworld'

I know it's an error related to dependencies installation process. both for dev and run the dependecies are ["kivy==1.11.0","docutils", "pygments" ,"pypiwin32" ,"kivy_deps.sdl2==0.1.22","kivy_deps.angle==0.1.9"]
Dependencies are although installed  app_packages
I have It both for kivy stable and 2.0.0rc3.
I create an issue there https://github.com/beeware/briefcase/issues/452 with all few steps to reproduce it.
I'm looking here some advice to help me debugging it, just where to start search. It's only on wnidows, it's doing great on linux.
Thanks

I'm not sure how briefcase works, but kivy_deps work by installing the required dll binaries to share/dep_name. Very likely briefcase doesn't copy these required dlls when it's created.
You can find the exact directory that contain the dlls by printing from kivy_deps import sdl2; print(sdl2.dep_bins) and see if the printed path exists in briefcase. If it doesn't you'll somehow have to copy these dlls and make sure they are on the path.

that was it, thank for your help


Load Balancer

unable to find  rancher/load-balancer-service  from repository . However I am able to download docker server agents etc ...Can you please help me to download load balancer image
[root@XXXX ~]# docker pull rancher/load-balancer-service
Using default tag: latest
Pulling repository docker.io/rancher/load-balancer-service
Error: image rancher/load-balancer-service:latest not found
[root@XXXX-a ~]# docker search load-balancer-service
NAME                              DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
lmancilla/load-balancer-service   custom agent instance                           0
meltwater/proxymatic              Dynamic service discovery TCP/UDP proxy an...   0                    [OK]
qnib/es-lb                        Nginx loadbalancer over all passing elasti...   0                    [OK]
gambol99/embassy                  Docker Service Proxy / Loadbalancer             0                    [OK]
stackhub/nginx-lb                 Dynamic service using Nginx as a load bala...   0                    [OK]
inercia/docker-nginx-dns          Dynamic reverse proxy/load balancer for mi...   0                    [OK]
paulczar/lolbalancer              A very small IPVS load balancer that uses ...   0                    [OK]
jfautley/ssws                     Super Simple Web Service, using Python. De...   0                    [OK]
texthtml/consul-loadbalancer      nginx loadbalancer for consul services          0                    [OK]

Useful
Info

Versions
Rancher v0.59.1 Cattle: v0.148.1 UI: v0.90.0

Access
Disabled}

Route
null

rancher/load-balancer-service is just a placeholder.  The actual image for balancers, the network agent, etc is rancher/agent-instance, which is just Ubuntu with a few packages installed.


Compose file should not use notarymysql which has hardcoded passwords

The default suggested deployment shouldn't have the dockercon demo hardcoded stuff, the database should be created by the user then the schema can be initialized by the server itself if it knows it's empty

ok my bad it says for development but I do think the password information should rather then be set via env variable in the compose file itself for better visibility

Agreed on both points.  Ansible will inject the config paths and passwords from environment variables.  For devel, we could do with a more sensible default than 'dockercondemo' though.

Going to close. We've fixed up the user and database names to not be dockercondemo any more. @RichardScothern the current docker deployment of notary uses a templating system to read the variables ansible puts in the ENV into a templated configuration file.  We discussed adding that templating in here, I even had a PR for it at one point, but we ultimately decided we didn't want to force that dependency on users.
As we get more and more configuration options, it's impractical to read everything from the ENV because it makes it a pain to tell what is/isn't set and what is required/optional. I don't want to set the precedent that it's OK to cram everything in the ENV. It really doesn't make sense for a server application where the configuration changes very rarely.


anonymous functions?

The title mentions anonymous functions, but all examples shown appear to use named methods.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 495dca2a-dcd9-892f-21f0-e970589b543d
Version Independent ID: 159fb3e3-66b4-6cdc-f921-4406447b98ca
Content: Delegates with Named vs. Anonymous Methods - C# Programming Guide
Content Source: docs/csharp/programming-guide/delegates/delegates-with-named-vs-anonymous-methods.md
Product: dotnet-csharp
Technology: csharp-fundamentals
GitHub Login: @BillWagner
Microsoft Alias: wiwagn

Thanks for reporting this @tcrabtree
I've added it to our backlog for us to address.


Oxford Dataset RGB Image Process

Hi, thanks for your great work.
I have one question.
The stereo/center camera data downloaded from the official website is single-channel, but I haven't seen any code in your implementation for handling single-channel data. Did I overlook something?
Thanks in advance.

Hi, probably you've downloaded the wrong data. Images from the stereo-center camera are 3-channel RGB images. Take a look at  this screenshot showing exemplary images from the Bumblebee XB3 stereo camera. It shows three images: left, center and right - and all are three channel RGGB images

Hi, probably you've downloaded the wrong data. Images from the stereo-center camera are 3-channel RGB images. Take a look at this screenshot showing exemplary images from the Bumblebee XB3 stereo camera. It shows three images: left, center and right - and all are three channel RGGB images

Yes, I download the data here. And it's mode is L not RGB. Is it right?

Hi, I forgot, but it turns out that the images are stored in a special format and must be converted to RGB. See this link: https://robotcar-dataset.robots.ox.ac.uk/documentation/ in the section "Images":
All images are stored as lossless-compressed PNG files in unrectified 8-bit raw Bayer format.
The top left 4 pixel Bayer pattern for the Bumblebee XB3 images is GBRG, and for Grasshopper2 images is RGGB. The raw Bayer images can be converted to RGB using the MATLAB demosaic function, the OpenCV cvtColor function or similar methods.
OxfordRobotCar SDK contains functions to load and decode images into RGB format. See this gitbub repo: https://github.com/ori-mrg/robotcar-dataset-sdk
The function load_image in python/image.py file loads and converts the image to RGB format.
My script generate_rgb_for_lidar.py, used to prepare downsampled RGB images for MinkLocMultimodal training, takes care of this and uses load_image function from RobotCar SDK to read and convert images into RGB format.

I've also fixed the link in README to the file with preprocessed and downsampled images from OxfordRobotCar dataset. You can use these images to train and evaluate MinkLocMultimodal method.
https://drive.google.com/file/d/1g6nWvJ-T-M41MyZTa0oRHIwP7G-cxer6/view?usp=sharing

Okay, I understand now. Thank you very much for your help！


dhcpcd -x or -k has no effect

version: dhcpcd current master (commit 6788608)
configured with:
./configure --prefix=/usr                \
            --sysconfdir=/etc            \
            --libexecdir=/usr/lib/dhcpcd \
            --dbdir=/var/lib/dhcpcd      \
            --runstatedir=/run           \
            --disable-privsep

then make and make install (using default dhcpcd.conf)
dhcpcd started with dhcpcd -b -q -4 eth0
then ps aux | grep dhcp shows:
root       563  0.0  0.0   8740  2704  ?           S    15:27    0:00 dhcpcd: eth0 [ip4]
pierre     624  0.0  0.0  29492  2304  tty1        S+   15:27    0:00 grep dhcp

Observed behavior:
when running sudo dhcpcd -x eth0 or sudo dhcpcd -k eth0, there is message:
dhcpcd is not running

and ps aux | grep dhcp shows:
root       563  0.0  0.0   8740  2704  ?           S    15:27    0:00 dhcpcd: eth0 [ip4]
pierre     629  0.0  0.0  29492  2304  tty1        S+   15:30    0:00 grep dhcp

Expected behavior:
after running either of the command , there should be no error message, and ps aux | grep dhcp should only show the "grep" line

Note that I haven't tested with 10.0.5, since it is broken with --disable-privsep, and dhcpcd is unable to background itself

It turns out that the pid file when passing -4 is created as /run/dhcpcd/eth0-4.pid, but dhcpcd -k eth0 wants to get the pid from /run/dhcpcd/eth0.pid, which does not exist.
Running dhcpcd -k -4 eth0 works as expected.
But it was not clear to me that -4 needed to be passed for stopping dhcpcd when it was started with -4. At least I cannot see anything in the documentation telling this.

These definitely need to be documented.

Does this clear it up?

Does this clear it up?

Yeah thanks. Just bump the year in date :)


operator API v1alpha2: revise Status

We should align with https://github.com/kubernetes/enhancements/pull/1624.

@avalluri please describe what you intend to do regarding the status field in the CRD.

@pohly, here is the draft of the new status type roughly look:
// DeploymentConditionType type for representing a deployment status condition
type DeploymentConditionType string

const (
	// CertsVerified means the provided deployment secrets are verified and valid for usage
	CertsVerified DeploymentConditionType = "CertsVerified"
	// CertsReady means secrests/certificates required for running the PMEM-CSI driver
	// are ready and the deployment could progress further
	CertsReady DeploymentConditionType = "CertsReady"
	// DriverDeployed means that the node driver deamonset got created
	DriverDeployed DeploymentConditionType = "DriverDeployed"
)

// +k8s:deepcopy-gen=true
type DeploymentCondition struct {
	// Type of condition.
	Type DeploymentConditionType `json:"type"`
	// Status of the condition, one of True, False, Unknown.
	Status corev1.ConditionStatus `json:"status"`
	// Message human readable text that explain why this condition is in this state
	// +optional
	Message string `json:"reason,omitempty"`
	// Last time the condition was probed.
	// +optional
	LastUpdateTime metav1.Time `json:"lastUpdateTime,omitempty"`
}

type DriverType string

const (
	ControllerDriver DriverType = "ControllerDriver"
	NodeDriver       DriverType = "NodeDriver"
)

// +k8s:deepcopy-gen=true
type DriverStatus struct {
	// Type represents type of the driver: controller or node
	Type DriverType `json:"type"`
	// Status represents the driver status : Ready, NotReady
	Status string `json:"status"`
	// Reason represents the human readable text that explains why the
	// driver is in this state.
	Reason string `json:"message"`
}

// +k8s:deepcopy-gen=true
// DeploymentStatus defines the observed state of Deployment
type DeploymentStatus struct {
	// INSERT ADDITIONAL STATUS FIELD - define observed state of cluster
	// Important: Run "make operator-generate-k8s" to regenerate code after modifying this file

	// Phase indicates the state of the deployment
	Phase DeploymentPhase `json:"phase,omitempty"`
	// Conditions
	Conditions []DeploymentCondition `json:"conditions,omitempty"`
	Components []DriverStatus        `json:"components,omitempty"`
	// LastUpdated time of the deployment status
	LastUpdated metav1.Time `json:"lastUpdated,omitempty"`
}

I initially thout of including all sub-resources(roles, rolbebidnings, services, etc.) created for the deployment, but I am kind of decided to limit that to just keep node & controller driver status.

// Type represents type of the driver: controller or node
Type DriverType json:"type"

Is the plan to have more than one entry with type "node"?
If yes, how does the user know which node the status belongs to? If no, does it make sense to have Components []DriverStatus (an array) when there are always just two entries?
How does the operator determine whether the "controller" or "node" is "ready"? You need to explain the semantic in your API, not just list the values.

// Type represents type of the driver: controller or node
Type DriverType json:"type"

Is the plan to have more than one entry with type "node"?

No, It is combined state of all the node(s)/daemonset. The 'Reason' field supposed to hold the details of how many nodes are in running state out of total of nodes.

If no, does it make sense to have Components []DriverStatus (an array) when there are always just two entries?

The array was result fo the initial design to hold all sub-resources state. Left like that, assuming that could be extendable to the original idea if needed. Otherwise we can split into two entries - ControllerDriver and NodeDriver.

How does the operator determine whether the "controller" or "node" is "ready"?

'Ready' here meaning that the Pods underneath the node DaemonSet, and StatefulSet are in 'Running' state.

Didn't make it into 0.8. Let's move it to 0.9.


Type check all files when emitting a file under -out

Since it is necessary to type check a source file before you emit it, it is necessary to type check all files before emitting -out.
Thanks @vladima for your help on this fix. It fixes #2061.

:+1:

Ok.  So the managed side already distinguishes the idea between asking to get the emit output whne you have --out or not.  So i think a better solution would be to make it an error to ask for emit output for a single file when you have --out.  Instead, if you have --out, you just call getEmitResult with no source file specified.  If you want the emit output for a single file, and you don't have --out, then you cna ask for it, and it should work.
Of course, this would be a breaking change.  So we'd need to do this through some sort of getEmitOutput2 API .

@CyrusNajmabadi Looking at the logic in emitFiles that decides which files to emit, the choice of whether or not a file is specified does not correspond one-to-one with whether the compiler options include -out. The most salient example is -out with external modules. You can have -out, but call getEmitOutput on an external module, and it will only emit that module. That seems like a meaningful behavior, and the most obvious way to signify it is by passing a source file. Another example (less interesting) is if you getEmitOutput for a declaration file when -out is specified, which actually does not emit anything. This one doesn't matter as much because callers can just not call getEmitOutput for a declaration file. In fact, I could see making it an error to call getEmitOutput on a declaration file. But I think for the external module case, passing a source file to getEmitOutput is the best way to emit it.

Ah true.  So your approach makes a ton of sense, and is a very nice, lightweight way to get non-broken behavior.  :+1:

Note: this shoudl be something we should be able to make a fourslash test for.  Just a simple case with two files, with appropriate options set, and we ask for getEmitOutput for one file and get the wrong result.

It does have a fourslash test. It's part of the review.

Yes.  I am blind.


[BUG] OAPH nullability as a result of 2762

Describe the bug

With Nullable References enabled in your .net  5.0 wpf project.
In version14.1.1, while not a biggy, just a nuisance, I now have to modify everywhere I have an oaph because I am assigning a nullable oaph.Value to a non-nullable public property e.g. public string MapName => _mapName.Value; //Value is not nullable giving me compiler warning.  I suppose the answer is to change to .Value!
Steps To Reproduce

Expected behavior
.Value nullability should match the type parameter.

Yeah we'll address this one in the next version. Thanks for the issue.


the larger batch, the  longger latency cost，seems like a linear increase

I run bloomz-2b6 on 8 X V100 GPU, i found the larger batch, the  longger latency cost,  batch and latncy seems a linear relationship，did't i  have wrong usage ?  or V100 did't support batch feature well

It highly depends on the problem size (batch size, input length, output length), your runtime setting (TP size), etc.
You can try running the nsight systems profiles to analyze it.


Backports for 5.2.5

Bugfixes from 6.0.0 that can be backported to 5.2.5 without breaking backwards-compatibility.
Backported PRs

#452 (Don't add a file:// prefix to URI that already have a scheme)

Skipped PRs
There are no skipped PRs.

LGTM

https://github.com/justinrainbow/json-schema/releases/tag/5.2.5


Retrieve changes js-meta file extensions

Summary
Sometime when retrieving from an org, the js-meta.xml files are changed to css-meta.xml This only happens with LWC that has a CSS file, but does not always occur with all files. However, once it occurs with one file, it always occurs with that file. The component then cannot be deployed to an org unless the file is manually renamed to js-meta.xml again.
Steps To Reproduce:

Retrieve LWC
Check their extensions.

Expected result
Retrieve all files as normal.
Actual result
Some components jss-metal.xml files are changed to css-meta.xmls
SFDX CLI Version(to find the version of the CLI engine run sfdx --version):
sfdx-cli/7.85.1-2fb9e41053 linux-x64 node-v12.18.3
SFDX plugin Version(to find the version of the CLI plugin run sfdx plugins --core)
@oclif/plugin-autocomplete 0.1.5 (core)
@oclif/plugin-commands 1.3.0 (core)
@oclif/plugin-help 3.2.1 (core)
@oclif/plugin-not-found 1.2.4 (core)
@oclif/plugin-plugins 1.9.5 (core)
@oclif/plugin-update 1.3.10 (core)
@oclif/plugin-warn-if-update-available 1.7.0 (core)
@oclif/plugin-which 1.0.3 (core)
@salesforce/sfdx-diff 0.0.6
@salesforce/sfdx-trust 3.6.0 (core)
alias 1.1.5 (core)
analytics 1.12.1 (core)
auth 1.4.6 (core)
config 1.2.3 (core)
generator 1.1.3 (core)
salesforcedx 50.15.0 (core)
├─ limits 1.0.3 (core)
├─ user 1.0.9 (core)
├─ schema 1.0.3 (core)
├─ templates 50.4.0 (core)
├─ apex 0.1.4 (core)
├─ @salesforce/sfdx-plugin-lwc-test 0.1.7 (core)
├─ custom-metadata 1.0.11 (core)
└─ salesforce-alm 50.15.0 (core)
sfdx-cli 7.85.1 (core)
OS and version:
Ubuntu 20.04

Has happened to me as well. I'm using Ubuntu 20.10 atm.


Can't run more than n trials with trialConcurrency=n > 1

Describe the issue:
When I set trialConcurrency > 1, NNI fails out with
[2023-09-30 12:57:40] ERROR (nni.runtime.msg_dispatcher_base/Thread-1 (command_queue_worker)) 7
Traceback (most recent call last):
  File "/home/wolf/miniconda3/envs/mausspaun/lib/python3.10/site-packages/nni/runtime/msg_dispatcher_base.py", line 108, in command_queue_worker
    self.process_command(command, data)
  File "/home/wolf/miniconda3/envs/mausspaun/lib/python3.10/site-packages/nni/runtime/msg_dispatcher_base.py", line 154, in process_command
    command_handlers[command](data)
  File "/home/wolf/miniconda3/envs/mausspaun/lib/python3.10/site-packages/nni/runtime/msg_dispatcher.py", line 148, in handle_report_metric_data
    self._handle_final_metric_data(data)
  File "/home/wolf/miniconda3/envs/mausspaun/lib/python3.10/site-packages/nni/runtime/msg_dispatcher.py", line 201, in _handle_final_metric_data
    self.tuner.receive_trial_result(id_, _trial_params[id_], value, customized=customized,
  File "/home/wolf/miniconda3/envs/mausspaun/lib/python3.10/site-packages/nni/algorithms/hpo/tpe_tuner.py", line 197, in receive_trial_result
    params = self._running_params.pop(parameter_id)
KeyError: 7
[2023-09-30 12:57:41] INFO (nni.runtime.msg_dispatcher_base/MainThread) Dispatcher exiting...
[2023-09-30 12:57:44] INFO (nni.runtime.msg_dispatcher_base/MainThread) Dispatcher terminiated

When the trialConcurrency = n > 1, then NNI runs n trials and fails out with this error. This happens for all the different n values i've tried (2, 5, 10, 100). When trialConcurrency=1, no problems.
Environment:

NNI version: 3.0
Training service (local|remote|pai|aml|etc): local
Client OS: ubuntu
Server OS (for remote mode only):
Python version: 3.10.8
PyTorch/TensorFlow version: N/A
Is conda/virtualenv/venv used?: conda
Is running in Docker?: no

Configuration:

Experiment config (remember to remove secrets!):

{
 "params": {
   "experimentType": "hpo",
   "searchSpaceFile": "/home/wolf/Dropbox/code/mouse-arm/examples/nni_arm_parameters/search_space.json",
   "trialCommand": "python nni_sweep.py",
   "trialCodeDirectory": "/home/wolf/Dropbox/code/mouse-arm/examples/nni_arm_parameters",
   "trialConcurrency": 5,
   "useAnnotation": false,
   "debug": false,
   "logLevel": "info",
   "experimentWorkingDirectory": "/home/wolf/nni-experiments",
   "tuner": {
     "name": "TPE",
     "classArgs": {
       "optimize_mode": "minimize"
     }
   },
   "trainingService": {
     "platform": "local",
     "trialCommand": "python nni_sweep.py",
     "trialCodeDirectory": "/home/wolf/Dropbox/code/mouse-arm/examples/nni_arm_parameters",
     "debug": false,
     "maxTrialNumberPerGpu": 1,
     "reuseMode": false
   }
 },
 "execDuration": "13m 8s",
 "nextSequenceId": 14,
 "revision": 95
}

I haven't created a minimal reproducible example yet, I'm hoping someone might recognize this problem, as it seems pretty basic and maybe is just a version issue somewhere?

I encountered the same problem, sometimes it stopped after about ten trials ,and sometimes it stopped after more than 100 trials. I haven't found what caused the problem.

I also have similar problems.

same issue.
[2023-11-29 21:52:30] ERROR (nni.runtime.msg_dispatcher_base/Thread-1) 1 Traceback (most recent call last):   File "/home/xxx/anaconda3/envs/myrsn1/lib/python3.8/site-packages/nni/runtime/msg_dispatcher_base.py", line 108, in command_queue_worker     self.process_command(command, data)   File "/home/xxx/anaconda3/envs/myrsn1/lib/python3.8/site-packages/nni/runtime/msg_dispatcher_base.py", line 154, in process_command     command_handlers[command](data)   File "/home/xxx/anaconda3/envs/myrsn1/lib/python3.8/site-packages/nni/runtime/msg_dispatcher.py", line 148, in handle_report_metric_data     self._handle_final_metric_data(data)   File "/home/xxx/anaconda3/envs/myrsn1/lib/python3.8/site-packages/nni/runtime/msg_dispatcher.py", line 201, in _handle_final_metric_data     self.tuner.receive_trial_result(id_, _trial_params[id_], value, customized=customized,   File "/home/xxx/anaconda3/envs/myrsn1/lib/python3.8/site-packages/nni/algorithms/hpo/tpe_tuner.py", line 197, in receive_trial_result     params = self._running_params.pop(parameter_id) KeyError: 1 [2023-11-29 21:52:31] DEBUG (websockets.client/NNI-WebSocketEventLoop) < TEXT '{"type":"EN","content":"{\\"trial_job_id\\":\\"..._index\\\\\\": 0}\\"}"}' [402 bytes] [2023-11-29 21:52:31] DEBUG (websockets.client/NNI-WebSocketEventLoop) < TEXT '{"type":"GE","content":"1"}' [27 bytes] [2023-11-29 21:52:31] INFO (nni.runtime.msg_dispatcher_base/MainThread) Dispatcher exiting... [2023-11-29 21:52:33] DEBUG (websockets.client/NNI-WebSocketEventLoop) < PING '' [0 bytes] [2023-11-29 21:52:33] DEBUG (websockets.client/NNI-WebSocketEventLoop) > PONG '' [0 bytes] [2023-11-29 21:52:33] DEBUG (websockets.client/NNI-WebSocketEventLoop) % sending keepalive ping [2023-11-29 21:52:33] DEBUG (websockets.client/NNI-WebSocketEventLoop) > PING c8 af a3 c2 [binary, 4 bytes] [2023-11-29 21:52:33] DEBUG (websockets.client/NNI-WebSocketEventLoop) < PONG c8 af a3 c2 [binary, 4 bytes] [2023-11-29 21:52:33] DEBUG (websockets.client/NNI-WebSocketEventLoop) % received keepalive pong [2023-11-29 21:52:34] DEBUG (websockets.client/NNI-WebSocketEventLoop) > TEXT '{"type": "_bye_"}' [17 bytes] [2023-11-29 21:52:34] DEBUG (websockets.client/NNI-WebSocketEventLoop) = connection is CLOSING [2023-11-29 21:52:34] DEBUG (websockets.client/NNI-WebSocketEventLoop) > CLOSE 4000 (private use) client intentionally close [28 bytes] [2023-11-29 21:52:34] DEBUG (websockets.client/NNI-WebSocketEventLoop) < CLOSE 4000 (private use) client intentionally close [28 bytes] [2023-11-29 21:52:34] DEBUG (websockets.client/NNI-WebSocketEventLoop) = connection is CLOSED [2023-11-29 21:52:34] INFO (nni.runtime.msg_dispatcher_base/MainThread) Dispatcher terminiated
I set trial_concurrency==8 and it always stopped at 10~14 trials.

Same issue, I set trial_concurrency=16 and stopped at ~20 trials, the dispatcher is terminated

Same issue here on the latest version of NNI. It seems random how many trials along it gets each time. Always
    params = self._running_params.pop(parameter_id)
KeyError: ...

in dispatcher.log.

I faced the same problem, and in my case, a stopgap solution is to use "Anneal" tuner instead of "TPE" tuner.
Hope it help!

I found anything above 2.6 gives me the problem, been okay up to the hard coded memory limit with version 2.5 (roughly 45k trials)


OSError: [WinError 193] %1 is not a valid Win32 application

This issue surfaced when I switched from Python 3.7 to Python 3.8.
The error can be reproduced by running the following cmd commands:
python
rem Now in Python Shell
import numpy

Error

OSError: [WinError 193] %1 is not a valid Win32 application

Found out that the issue is in trying to resolve it within the Native Tool Command Prompt for VS 2019.
The Visual Studio Command Prompt is in 32 bit and therefore causes the python to try look for 32bit packages.
[ 🙌 Solution 🙌 ]

Open up the normal Command Prompt.
Uninstall numpy

pip uninstall numpy

Install numpy

pip install numpy

That should now fix this issue.
Verify That It Works
python
rem Now in Python Shell
import numpy


SBF driver

https://github.com/PX4/PX4-GPSDrivers/blob/ddb1825fe33f517853ca8a3ef75ac6f2df76f613/src/sbf.cpp#L393
If the length bytes are corrupt(_buf.Len is meaningless), the length arg to the crc16 call could overrun and cause hardfault. You can check it for %4 == 0 for sanity, and use _rxReadBytes instead of _buf.len to ensure you don’t go beyond sizeof(_buf)
fyi @skimslozo

@devbharat I don't quite understand it. When or how is _buf.length corrupt, or wrong? And how could that be caught?

From the SBF reference manual

The length bytes are the 7th and 8th bytes of the header. It’s similar to how the old sdlog2 used to work, you start parsing at the two sync bytes „$@„ then get 2 crc bytes, two packet type bytes followed by two length bytes and then the rest of the payload. All this goes into a fixed size buffer _buf (union) (allocated in the header if I remember) one by one from the serial stream. While copying the bytes from the stream, we are careful to not exceed the allocated size even if _buf.length tells us to (on this line https://github.com/PX4/PX4-GPSDrivers/blob/ddb1825fe33f517853ca8a3ef75ac6f2df76f613/src/sbf.cpp#L358) as one of the two or both bytes could be corrupted in transmission, but you can only know for sure after verifying the CRC. So until now it’s all good. The problem is, to tell CRC how many bytes to run through, we don’t use the variable representing how many bytes we read, which is ‚safe‘ against the size of _buf, but directly use the ‚interpreted value‘ of _buf.length formed out of the 7th and 8th bytes of the transmitted packet (starting from the stream). Imagine if they were FF FF.
A change like this below is safer
if (_buf.length <= 4
|| _buf.crc16 != crc16(reinterpret_cast<uint8_t *>(&_buf) + 4,
(_rx_payload_index > sizeof(_buf) ? sizeof(_buf) : _rx_payload_index) - 4)) {
failure_cntr.crc_fail++;
PX4_DEBUG("[SBF PARSER] crc_fail_cnt: %d", failure_cntr.crc_fail);
return 1;
}

@devbharat I gave this a try in #107, slightly different from your suggestion. I think it's simple enough and correct...


docs: add example(s) for testing components

This have been done in the official starter template 🎉


Bump Phpstan and rector

:warning: Please install the  to ensure uploads and comments are reliably processed by Codecov.
Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 99.91%. Comparing base (f81af33) to head (bdca817).

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@            Coverage Diff            @@
##               main     #343   +/-   ##
=========================================
  Coverage     99.91%   99.91%
  Complexity      785      785
=========================================
  Files            68       68
  Lines          2427     2427
=========================================
  Hits           2425     2425
  Misses            2        2

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


[ServiceBus] Scheduled message being active in the ServiceBusExplorer

The scheduled enqueue time of Message set by the sdk doesn't behave as expected.

In the tool ServiceBusExplorer, when use the receiveMessage function, the scheduled message are received and active.
The ScheduledEnqueueTimeUTC aren't consistent with the one set by SDK.
Scheduling by days works, but minutes and seconds doesn't work.

This is no longer being an issue in azure-servicebus v7 as all the time related variables/parameters in the sdk have been aligned to using UTC time.


Elysia 1.0 Breaking Changes / Migration

Breaking change
It's sad but the upcoming Elysia 1.0 RC will contain breaking changes for all users, especially library authors :aris_crying:
Lifecycle event register with "on" will now only apply to the current and descendant instances.
Migration
Migration should take no longer than 10-15 minutes.
But for production apps, it heavily depends on library authors.
Starting from Elysia 1.0 RC, all lifecycle events including derive, and resolve will accept additional parameters { as: 'global' | 'local' } to specify if hook should be local or global which default to local
To migrate, add { as: 'global' } to any even register using .on to specify it as global.
// From Elysia 0.8
new Elysia()
    .onBeforeHandle(() => "A")
    .derive(() => {})

// Into Elysia 1.0
new Elysia()
    .onBeforeHandle({ as: 'global' }, () => "A")
    .derive({ as: 'global' }, () => {})

Behavior
If { as: 'global' } is not added, a parent instance that uses the current instance will not inherits a hook as the following:
const plugin = new Elysia()
    .onBeforeHandle(() => {
        console.log('Hi')
    })
    // log Hi
    .get('/hi', () => 'h')

const app = new Elysia()
    .use(plugin)
    // no log
    .get('/no-hi', () => 'h')

If is a behavior change from 0.8.

0.8: Both /hi and /no-hi will log
1.0: Only /hi will log

As the plugin hook now only defaults to itself and its descendant, it will not be applied to the parent (main).
To make it apply to the parent, explicit annotation is needed.
const plugin = new Elysia()
    .onBeforeHandle({ as: 'global' }, () => {
        console.log('Hi')
    })
    // log Hi
    .get('/hi', () => 'h')

const app = new Elysia()
    .use(plugin)
    // no log
    .get('/no-hi', () => 'h')

This will mark a hook as global, which is a default behavior of 0.8.
API Affected
To help with this, you can usually find a global hook by using find all with .on.
For derive, mapDerive, resolve, mapResolve will show a type warning as missing if use outside of the scope.
The following API or need to be migrate:

parse
transform
beforeHandle
afterHandle
mapResponse
onError
onResponse
trace
derive
mapDerive
resolve
mapResolve

API that does NOT need to be migrated:

request

Why
We know we don't like migration as well, but we think this is an important breaking change that will happen sooner or later to fix current problems:

We found that many developers have a lot of nested guard even on the new instance. Guard is now almost used as a way to start a new instance that will not affect the main one. To fix this, we default the hook to local by default, removing the boilerplate need.
We believe that every hook global by default can cause unpredictable behavior if not careful, especially in a team with inexperienced developers. We asked many developers and found that many expected the hook to be local at first without reading the documentation.
Following the previous point, we found that making hook global by default can easily cause accidental bugs if not reviewed carefully, and hard to debug as of observability is hard to distinguish by eyes especially in large PR and codebase. We want to reduce the said user-error as much as possible.

Once migrated, your API should have an easier mental model, be more predictable, and be easier to maintain.
For example, see the below picture which does the same thing.

For additional information, please see
https://x.com/saltyAom/status/1763554701130514944?s=20

Hi! Is there any place I can contribute to updating the docs for v1?

How is this supposed to work with Plugins?
Consider this example:
import { Elysia } from "elysia";

const myPlugin = () => (a: Elysia) =>
  a.derive(() => ({ myPluginProp: 1 }));

const app = new Elysia()
  .use(myPlugin())
  .get("/my-plugin", ({ myPluginProp }) => {
//                      ^ Property 'myPluginProp' does not exist on type '{ body: unknown; ...
    return myPluginProp
  });

It seems the app actually gets myPluginProp on runtime (expected), just TS types say otherwise.

Returning an object in v1.0.3 is not converting to response to application/json type. Rather, it sends it out as a text/plain. How do I fix this?

@SaltyAom any thoughts on this. Seems like this completely prevents usage of plugins using derive in v1.

@dodas update to elysia 1.0.6

Returning an object in v1.0.3 is not converting to response to application/json type. Rather, it sends it out as a text/plain. How do I fix this?

A quick workaround I found is to spread the object into another object.
e.g.
return { ...someObject }

@PureDizzi Thank you!
This seems to be working but it's ugly.
We need a fix on this!

Returning an object in v1.0.3 is not converting to response to application/json type. Rather, it sends it out as a text/plain. How do I fix this?

@kabir-asani A quick workaround I found is to spread the object into another object.
e.g. return { ...someObject }

For correct typing in the client, return { new Example() } as Example seems to work (this bug is so weird... has anyone made an issue for it yet?)

Returning an object in v1.0.3 is not converting to response to application/json type. Rather, it sends it out as a text/plain. How do I fix this?

@kabir-asani A quick workaround I found is to spread the object into another object.

e.g. return { ...someObject }

For correct typing in the Eden client, return { ...new Example() } as Example seems to work (this bug is so weird... has anyone made an issue for it yet?)

I want to get this fix.
Can you provide some example that cause this problem?

import { Elysia } from "elysia";

class Data {
    message: String;

    constructor(message: String) {
        this.message = message;
    }
}

const app = new Elysia()
    .get("/ping", ({ set }) => {
        const data = new Data("pong");

        set.status = 200;

        return data;
    })
    .listen(3000);

@SaltyAom
This snippet is enough to replicate the issue -- please check.
NOTE: What I've noticed is that the issue arises only when I try to access the set object.

import { Elysia } from "elysia";

class Data {
    message: String;

    constructor(message: String) {
        this.message = message;
    }
}

const app = new Elysia()
    .get("/ping", ({ set }) => {
        const data = new Data("pong");

        set.status = 200;

        return data;
    })
    .listen(3000);

@SaltyAom This snippet is enough to replicate the issue -- please check.
NOTE: What I've noticed is that the issue arises only when I try to access the set object.

Hi, sorry for the slow response.
Unfortunately, this is an expected behavior and the case without using set is a bug.
Web Standard on different runtime has a slight implementation for mapping value to Response.
Some classes may expected to pass to Response directly while some classes are not on different implementation, instead of serializing all the unknown case, we leave this gray area for users to handle themself using either mapResponse or defining a serialization method using toString
In this case, if you are using a custom class, you may use toString method like this instead.
class Data {
	message: String

	constructor(message: String) {
		this.message = message
	}

	toString() {
		return JSON.stringify(this)
	}
}

But is it really a fool-proof solution?
Because then I'd have to set Content-Type explicitly as well.

I propose this:

have users define toJSON() method on their data classes, which returns the plain, json-serializable representation of the object
have Elysia call toJSON() method if it's available and if so, respond with that along with Content-Type: application/json

@SaltyAom I understand that you don't want to introduce breaking changes after v1. Have you seen https://github.com/elysiajs/elysia/issues/99#issuecomment-1824954127? I am biased, but that seems like an easy thing to slip in with other breaking changes.

@april83c, @kabir-asani, you can do something like this as a workaround:
const Data = class Object {
  message: String;

  constructor(message: String) {
    this.message = message;
  }
};

return new Data("yay") // inside handler

The problem is this switch on constructor name:
https://github.com/elysiajs/elysia/blob/da63011c213158853e129d9668c1bb95f908c7d1/src/handler.ts#L159

or implement toJSON like this:
class Data {
  message: String;

  constructor(message: String) {
    this.message = message;
  }

  toJSON() {
    return structuredClone(this);
  }
}

That way you dont have to set Content-Type:
new Elysia()
  .get("/", () => {
    return new Data("yay").toJSON();
  })
  .listen(8080);

Its the same behaviour as return { "message": "yay" }

I am really not a fan of the { as: 'global' }. It makes the code so cluttered and unfamiliar...
Also, I think mention the { as: type } in the At A First Glance section would be helpful! It's buried all the way the bottom in the Scope section.

I am really not a fan of the { as: 'global' }. It makes the code so cluttered and unfamiliar...
Also, I think mention the { as: type } in the At A First Glance section would be helpful! It's buried all the way the bottom in the Scope section.

Since 1.1 you can use .as("global") on elysia instance


Set uchiwa behind apache

created httpd/proxy role
modified kibrana/proxy to use the new httpd/proxy role
created uchiwa/proxy using the new httpd/proxy role
added prereqs/libsemanage-python to enable httpd_can_network_connect
otherwise apache is not going to work as a proxy
added prereqs/prerequisite role to avoid duplicate code

kibana and uchiwa can not set on the same apache/proxy.

@jbadiapa it is better if you use git rebase to update your branch with new changes from master, rather than git merge.  Your PR should contain only your commits, rather than merged commits from other people.

  Sorry for the noise...

Close this PR, the #66 is a better approach.


ffms: 2.23 -> 2.40

Motivation for this change
https://github.com/FFMS/ffms2/releases/tag/2.40
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

I did not test whether this actually works.

Result of nixpkgs-review pr 120846 at e670d0d3 run on x86_64-linux 1

1 package marked as broken and skipped:

avxsynth

1 package failed to build:

aegisub

2 packages built successfully:

ffms
siril

1 suggestion:

warning: maintainers-missing
Package does not have a maintainer. Consider adding yourself?
Near pkgs/development/libraries/ffms/default.nix:50:5:
   |
50 |     maintainers = with maintainers; [ ];
   |     ^

Note that build failures may predate this PR, and could be nondeterministic or hardware dependent.
Please exercise your independent judgement.

@tadeokondrak Would you like to become a maintainer of ffms?

Would you like to become a maintainer of ffms?

Sure, since it has no maintainers. Feel free to add me in this PR.

Sure, since it has no maintainers. Feel free to add me in this PR.

That's what I did. Thanks a lot!


proposal: x/crypto: freeze and deprecate a few more packages

Over the years we did some significant cleanups of x/crypto packages (#30141, #31044, #36646, #44226).
I propose we do one last round, marking as Deprecated

golang.org/x/crypto/salsa20/salsa: should have been an internal package, exposes low-level components of Salsa20, it has 662 importers, but that number is deceptive: all the ones I sampled are golang.org/x/crypto forks, or a shadowsocks implementation that should have used salsa20.XORKeyStream instead

golang.org/x/crypto/ssh/test: should also have been internal, or really a _test.go file, it exposes some test keys, zero importers

and marking as Frozen

golang.org/x/crypto/curve25519 and golang.org/x/crypto/ed25519: wrappers for crypto/ecdh and crypto/ed25519 respectively

golang.org/x/crypto/nacl/auth and golang.org/x/crypto/nacl/sign: mostly unused NaCl APIs (21 and 73 importers), they are essentially wrappers around crypto/hmac and crypto/ed25519 respectively

golang.org/x/crypto/otr: implements a deprecated version of OTR, basically unused (15 importers)

golang.org/x/crypto/xts: implements a mode that should be only used for disk encryption and under duress, increasingly replaced by filesystem-level encryption, basically unused (10 importers)

This leaves a pretty healthy list of non-Deprecated non-Frozen packages, which would be suitable for moving into the stdlib (ignoring x509roots for a moment since it's a special snowflake).

golang.org/x/crypto/acme
golang.org/x/crypto/acme/autocert
golang.org/x/crypto/argon2
golang.org/x/crypto/bcrypt
golang.org/x/crypto/blake2b
golang.org/x/crypto/blake2s
golang.org/x/crypto/chacha20
golang.org/x/crypto/chacha20poly1305
golang.org/x/crypto/cryptobyte
golang.org/x/crypto/cryptobyte/asn1
golang.org/x/crypto/hkdf
golang.org/x/crypto/internal/wycheproof
golang.org/x/crypto/nacl/box
golang.org/x/crypto/nacl/secretbox
golang.org/x/crypto/ocsp
golang.org/x/crypto/pbkdf2
golang.org/x/crypto/salsa20
golang.org/x/crypto/scrypt
golang.org/x/crypto/sha3
golang.org/x/crypto/ssh
golang.org/x/crypto/ssh/agent
golang.org/x/crypto/ssh/knownhosts

/cc @golang/security
Packages summary

Package
Imported by
Current state
Proposed state

acme
496

acme/autocert
2161

argon2
1037

bcrypt
15602

blake2b
2500

blake2s
255

blowfish
881
Deprecated
Deprecated

bn256
20
Deprecated
Deprecated

cast5
501
Deprecated
Deprecated

chacha20
258

chacha20poly1305
2399

cryptobyte
647

cryptobyte/asn1
377

curve25519
1916
Wrapper
Frozen

ed25519
2142
Wrapper
Frozen

hkdf
2208

internal/wycheproof
-
Internal
Internal

md4
764
Deprecated
Deprecated

nacl/auth
21

Frozen

nacl/box
1041

nacl/secretbox
1934

nacl/sign
73

Frozen

ocsp
926

openpgp/...
1897
Deprecated
Deprecated

otr
15
Notice
Frozen

pbkdf2
5239

pkcs12
832
Frozen
Frozen

poly1305
504
Deprecated
Deprecated

ripemd160
3531
Deprecated
Deprecated

salsa20
283

salsa20/salsa
662

Deprecated

scrypt
2381

sha3
10791

ssh
14420

ssh/agent
2236

ssh/knownhosts
590

ssh/terminal
8278
Deprecated
Deprecated

ssh/test
0

Deprecated

tea
188
Deprecated
Deprecated

twofish
266
Deprecated
Deprecated

x509roots/nss
0

x509roots/fallback
11
Submodule
Submodule

xtea
219
Deprecated
Deprecated

xts
10
Notice
Frozen

Have all remaining concerns about this proposal been addressed?
Mark as Deprecated:

golang.org/x/crypto/salsa20/salsa: should have been an internal package, exposes low-level components of Salsa20, it has 662 importers, but that number is deceptive: all the ones I sampled are golang.org/x/crypto forks, or a shadowsocks implementation that should have used salsa20.XORKeyStream instead

golang.org/x/crypto/ssh/test: should also have been internal, or really a _test.go file, it exposes some test keys, zero importers

Mark as Frozen:

golang.org/x/crypto/curve25519 and golang.org/x/crypto/ed25519: wrappers for crypto/ecdh and crypto/ed25519 respectively

golang.org/x/crypto/nacl/auth and golang.org/x/crypto/nacl/sign: mostly unused NaCl APIs (21 and 73 importers), they are essentially wrappers around crypto/hmac and crypto/ed25519 respectively

golang.org/x/crypto/otr: implements a deprecated version of OTR, basically unused (15 importers)

golang.org/x/crypto/xts: implements a mode that should be only used for disk encryption and under duress, increasingly replaced by filesystem-level encryption, basically unused (10 importers)

Based on the discussion above, this proposal seems like a likely accept.
— rsc for the proposal review group
Mark as Deprecated:

golang.org/x/crypto/salsa20/salsa: should have been an internal package, exposes low-level components of Salsa20, it has 662 importers, but that number is deceptive: all the ones I sampled are golang.org/x/crypto forks, or a shadowsocks implementation that should have used salsa20.XORKeyStream instead

golang.org/x/crypto/ssh/test: should also have been internal, or really a _test.go file, it exposes some test keys, zero importers

Mark as Frozen:

golang.org/x/crypto/curve25519 and golang.org/x/crypto/ed25519: wrappers for crypto/ecdh and crypto/ed25519 respectively

golang.org/x/crypto/nacl/auth and golang.org/x/crypto/nacl/sign: mostly unused NaCl APIs (21 and 73 importers), they are essentially wrappers around crypto/hmac and crypto/ed25519 respectively

golang.org/x/crypto/otr: implements a deprecated version of OTR, basically unused (15 importers)

golang.org/x/crypto/xts: implements a mode that should be only used for disk encryption and under duress, increasingly replaced by filesystem-level encryption, basically unused (10 importers)

No change in consensus, so accepted. 🎉
This issue now tracks the work of implementing the proposal.
— rsc for the proposal review group
Mark as Deprecated:

golang.org/x/crypto/salsa20/salsa: should have been an internal package, exposes low-level components of Salsa20, it has 662 importers, but that number is deceptive: all the ones I sampled are golang.org/x/crypto forks, or a shadowsocks implementation that should have used salsa20.XORKeyStream instead

golang.org/x/crypto/ssh/test: should also have been internal, or really a _test.go file, it exposes some test keys, zero importers

Mark as Frozen:

golang.org/x/crypto/curve25519 and golang.org/x/crypto/ed25519: wrappers for crypto/ecdh and crypto/ed25519 respectively

golang.org/x/crypto/nacl/auth and golang.org/x/crypto/nacl/sign: mostly unused NaCl APIs (21 and 73 importers), they are essentially wrappers around crypto/hmac and crypto/ed25519 respectively

golang.org/x/crypto/otr: implements a deprecated version of OTR, basically unused (15 importers)

golang.org/x/crypto/xts: implements a mode that should be only used for disk encryption and under duress, increasingly replaced by filesystem-level encryption, basically unused (10 importers)


Step 2 fails in the guidelines for contributing.

I attempted to follow the  guidelines for contributing. The second step: "2. Configure and install the dependencies: script/bootstrap" from the script directory in the cloned repo (pwd shows ~/Development/tmp/git-lfs/script) fails, details shown below.
I executed this command:
./bootstrap

but received this response:
./bootstrap: line 3: script/fmt: No such file or directory
stat script/*.go: no such file or directory

I am at commit 87264d01411046716bdf178da516e77cb958ed06 on the default branch (master).
I successfully followed the first step: "1. Fork and clone the repository"
git clone https://github.com/aln787/git-lfs.git

@aln787 The wording on that is a little unclear, but the script is intended to be run from the root of the project.  E.g.:
cd ~/Development/tmp/git-lfs
script/bootstrap

@ssgelm thanks for the clarification, trying that now!

@ssgelm that worked thanks again!


Question on use of Friendly Names for locks and also on auto clock parameters?

Sorry not really a bug or feature request but just some general questions

I set up several locks such as 'front_door' and 'garage_door'. When getting notifications they dont look the nicest. Any way to set up some sort of 'Friendly Name' so it would instead say 'Front Door'?

I saw there is auto close feature and I can set the time outs, great stuff. I didnt see anywhere in documentation two things
a. What are the default values for the daytime and night time ones? (ie what time of the day does it switch)
b. Is there a way to modify this?

Thanks again!
Environment (please complete the following information):
OS: Windows for me, HA for keymaster
Type of system that HA is running on: QNAP VM
Home Assistant version: 2024.3.2
Hassio/Docker/Core? VM
Component version: 0.0.88
Z-Wave integration name: zwave_js
Lock make and model: Schlage BE469ZP (zwave plus)

Any way to set up some sort of 'Friendly Name' so it would instead say 'Front Door'?

Notification script is 100% your doing, modify the example as you see fit.
As for 2, I don't use the autolock feature myself, but there's a ongoing thread that covers many of the features:
https://community.home-assistant.io/t/keymaster-z-wave-lock-manager-and-scheduler/166419/1932

Thank you, I posted over there as well!


Verifier for types mapped in EntityViews

It would be nice to have some verification functionality that checks if the mapped type of a property in a entity view corresponds to the JPA mapped type of this property. Currently the query process just crashes during proxy constructor invocation.

Fixed as of https://github.com/Blazebit/blaze-persistence/issues/83


Wrong button name

Data written instead of Donate
I would like to fix that, kindly assign under hacktoberfest

Can I get assigned to this??


Sections aren't generated

Hi! Trying to getting started, but something seems broken.
Here it test file I use – https://gist.github.com/H1D/1e35e4e461cd612f9103
and a command: styleguide --kss-source styles.css --style-source styles.css --output styleguide --watch --server
I expecting simple style guide with one section, but resulting style guide has no sections:

P.S. Console output seems OK:

I've been working to leverage this project recently, and found the use of the 'Styleguide' to be explicitly limited, but believe it's due to kss itself.  In the style file you've linked, try using 'Styleguide 1.x.x' without a colon, that should do the trick I believe.

@homertherefore yep thx!

@H1D please close the issue


chore: Add maintainer: berendsliedrecht

@berendsliedrecht Welcome! :)

I'll merge it after the invitation process is complete.

fixed here


plugin-react: maintainance

What I did to continue the work on https://github.com/vitejs/vite/pull/3588

merge latest main branch (not sure if there is a better way, but now we have lots of noisy commits from main branch)
update React related examples in the playground
fix some build/plugin issues and make sure they can work in the playground

I think you can skip the majority of the commits and just review the last few commits

My next step is to setup a new test suite in ./packages/playground

Thanks for this. I'll rebase my PR to get rid of the commit noise.
Why was it necessary to stop using Vite to build the plugin?

Why was it necessary to stop using Vite to build the plugin?

When this plugin is built with vite, there is an issue that it will generate the following line in the output.
var preloadHelper = require('vite/preload-helper');
// or
import { __vitePreload } from 'vite/preload-helper';

This preloadHelper is added by Vite's buildImportAnalysisPlugin when the source code has dynamic import, which are import('@babel/plugin-transform-react-jsx-self'), import('@babel/plugin-transform-react-jsx-source') etc.
However, this vite/preload-helper is not an actual module but something that is handled by buildImportAnalysisPlugin.load; also, it's implementation depends on DOM API.
Based on the above, I feel like maybe Vite is not a good build tool for this plugin yet, so I switched back to plain tsc instead.

Btw, you'll need to do git reset --hard since I rebased your PR.

@aleclarson hi, if you believe this is ready, you can merge it and I will continue work on the remaining task.

@pengx17 Tests are not passing. Can you check it out?

@aleclarson I check the workflow and started actions inside of my fork here: https://github.com/pengx17/vite/pull/1. Looks like the tests run successfully now :)

Here's why the vite:react-jsx plugin is needed. 👇
The dist/assets/index.[hash].js file without it: (notice the jsxRuntime.exports. spam)
import { _ as _Switch, j as jsxRuntime, r as react, c as css, R as ReactDOM, a as React } from "./vendor.9e0ab00b.js";
const Switch = _Switch.default;
function Counter() {...}
function FragmentTest() {...}
function App() {
  return /* @__PURE__ */ jsxRuntime.exports.jsx("div", {
    className: "App",
    children: /* @__PURE__ */ jsxRuntime.exports.jsxs("header", {
      className: "App-header",
      children: [/* @__PURE__ */ jsxRuntime.exports.jsx("h1", {
        children: "Hello Vite + React + @emotion/react"
      }), /* @__PURE__ */ jsxRuntime.exports.jsx(FragmentTest, {}), /* @__PURE__ */ jsxRuntime.exports.jsxs("p", {
        children: ["Edit ", /* @__PURE__ */ jsxRuntime.exports.jsx("code", {
          children: "App.jsx"
        }), " and save to test HMR updates."]
      }), /* @__PURE__ */ jsxRuntime.exports.jsx("a", {
        className: "App-link",
        href: "https://reactjs.org",
        target: "_blank",
        rel: "noopener noreferrer",
        children: "Learn React"
      })]
    })
  });
}
ReactDOM.render(React.createElement(App), document.getElementById("app"));

Then with the plugin you thought was unnecessary:
import { _ as _Switch, j as jsx, a as jsxs, r as react, F as Fragment, c as css, R as ReactDOM, b as React } from "./vendor.85adad55.js";
const Switch = _Switch.default;
function Counter() {...}
function FragmentTest() {...}
function App() {
  return /* @__PURE__ */ jsx("div", {
    className: "App",
    children: /* @__PURE__ */ jsxs("header", {
      className: "App-header",
      children: [/* @__PURE__ */ jsx("h1", {
        children: "Hello Vite + React + @emotion/react"
      }), /* @__PURE__ */ jsx(FragmentTest, {}), /* @__PURE__ */ jsxs("p", {
        children: ["Edit ", /* @__PURE__ */ jsx("code", {
          children: "App.jsx"
        }), " and save to test HMR updates."]
      }), /* @__PURE__ */ jsx("a", {
        className: "App-link",
        href: "https://reactjs.org",
        target: "_blank",
        rel: "noopener noreferrer",
        children: "Learn React"
      })]
    })
  });
}
ReactDOM.render(React.createElement(App), document.getElementById("app"));

One caveat: This issue does not appear when using Emotion.
jsxImportSource: '@emotion/react',
babel: {
  plugins: ['@emotion/babel-plugin']
}

Can you make sure this plugin works with ESM Vite project?

Here's why the vite:react-jsx plugin is needed. 👇

Cool! Now I understand why it is being added.


[zh-cn] resync: docs/tasks/manage-kubernetes-objects/imperative-config.md

Signed-off-by: Hu Shuai<EMAIL_ADDRESS>

For small sync like this, it's better to update 2 - 5 files with similar changes in the same PR.

#35694
#35696

Please also update the commented English text.

@Sea-n Done. PTAL.

For small sync like this, it's better to update 2 - 5 files with similar changes in the same PR.

Thanks for the reminder, I will pay attention to it later.

/approve

/lgtm


UI Slider Widget

Objective
Added a premade UI slider widget. Fixes #6196.
Solution

Added a RelativeCursorPosition component that updates alongside Interaction, which stores the cursor position relative to the node.
Added a Slider component that stores values specific to sliders
Added a SliderBundle and a SliderHandleBundle
Added update_slider_value and update_slider_handle systems
Made a slider example in the ui directory

Changelog

There is an easy way to create UI sliders now
If applicable, organize changes under "Added", "Changed", or "Fixed" sub-headings
Added:

RelativeCursorPosition component
Slider component
SliderBundle
SliderHandleBundle
update_slider_value and update_slider_handle systems
slider example

how the example looks like:
https://user-images.githubusercontent.com/8672791/195031790-b3a0c314-32f1-4c58-bb6b-c2c868a2a2ed.mp4

Based on this approach, I've started working on #6517. Does it make sense that both the slider widget and the progress-widget shares the same representation of "progress"?
Something like this?
struct Progress
{
    /// Max value
    pub max: f32;
    /// Min value
    pub min: f32;
    /// Current value of the widget. Somewhere between min and max.
    pub value: f32;
}

Then SliderWidget could look like
struct Slider
{
    pub progress: Progress;
    pub step: f32;
}

And the ProgressBarWidget could look like
struct ProgressBar
{
    pub progress: Progress;
    pub direction: Direction;
}

Note that for the Progress struct, you can't have public fields: you must use getters and setters to ensure invariants. I do generally think you could share those components though.

@Weibye Are you going to open a PR with the Progress struct? If so, please mention it in this thread.

@Weibye Are you going to open a PR with the Progress struct? If so, please mention it in this thread.

Yes! Will try to have it up by end of day.

I tried fixing the merge conflicts, but I think I just broke it even more. Closing in favor of #7116 .


Color of secondary buttons changed in light mode after merge

before:

after:

Dark mode still has the same colors before and after:

nevermind, I had switched to the new Light+ theme. Colors are still the same the Light Azure Data Studio (default light) theme.


About postgre database

I am using this project now, and I want to link to the database directly, to find the data I need but not shown in the web, so what should I do to access to it?

@synsis
Here you can see how to connect to DB directly #640.
I will close this issue. Don't hesitate reopen it if you aren't satisfied with the answer.


App Bundle Signing

Hello there, can we sign and android app bundle with this ?

@sanjay3290 Thanks for your question. It looks like you're asking about the capabilities of the product itself, rather than an issue with the documentation. Please consider these resources:

Azure DevOps Services
Azure DevOps Support Bot
Azure DevOps on Stack Overflow


Move custom_page_url from test.pages.urls to pages.urls

@duker33 I am going to merge it right now, to continue working with fidals/shopelectro#343. Please, feel free to comment this PR if you will find an issue


Automatically import projects from directory

Opening this PR for discussion, as current implementation may be a bit too feature rich.
Motivation:
This PR adds support for opening unimported Bazel projects directly from a directory without a need to go over import wizard steps. We need this feature to be able to open Bazel projects using remote Intellij.
Implementation:
Adds ProjectOpenProcessor to import project by opening it directly from directory
Project view can be created from (in order of existence):

ENV var: INTELLIJ_BAZEL_PROJECT_VIEW_TEMPLATE=/home/user/some.bazelproject
from workspace: tools/intellij/.managed.bazelproject
if above don't exist, creates minimal project view file manually

In case someone wants to try this out - I made a sample project which uses this functionality and runs on Jetbrains Space: https://github.com/liucijus/bazel-java-simple

Hi, it looks like this PR hardcodes both the tools/intellij path and the .ijwb project folder for the search? Since other editors like CLion have project folders like .clwb, I think this means this change wouldn't work for IDEs other than intellij?

@mai93 @liucijus @jastice Hi, could you please pay attention to the comment above ?


Instructions to connect NetBeans repository with Emilian's conversion

I've just tried to fix a failing test and found I don't have enough history. Thus I wanted to include @emilianbold's one. However finding the right commit IDs, especially for:
$ git replace 6daa72c98 32042637

isn't particularly easy. Thus I decided to put the How-To into README.md, so I can find it next time I need it.

Great, makes sense.


Personal details - "common.zipCodeExampleFormat" appears under Zip / Postcode field

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Version Number: 1.4.55-0
Reproducible in staging?: Y
Reproducible in production?: N
Logs: https://stackoverflow.com/c/expensify/questions/4856
Issue reported by: Applause-Internal team
Action Performed:
Precondition:

Address is not filled in Private section.

Go to staging.new.expensify.com.
Go to Profile
Click Address.

Expected Result:
There will be no strings under Zip / Postcode field since the address is not filled.
Actual Result:
"common.zipCodeExampleFormat" appears under Zip / Postcode field.
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

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

Screenshots/Videos

View all open jobs on GitHub

@sakluger I haven't added the External label as I wasn't 100% sure about this issue. Please take a look and add the label if you agree it's a bug and can be handled by external contributors.
We think this issue might be related to the #vip-vsb.

Production

Regression from this one: https://github.com/Expensify/App/pull/37200
cc @hurali97

@hungvu193 are you sure that Regression is from #37200?

I believe so 😄

@hungvu193 I tried it on main which has all of the latest code and this issue is not regressed by https://github.com/Expensify/App/pull/37200. I commented out the cache mechanism which was introduced in the PR and the issue still persists.
After applying @Krishna2323 's suggestion here, the issue seems to be resolved.
https://github.com/Expensify/App/assets/47336142/16e3511e-1813-47b0-a117-37cb89547ad7

@hungvu193 This issue is not regressed by #37200. I commented out the cache mechanism which was introduced in the PR and the issue still persists.
After applying @Krishna2323 's suggestion here, the issue seems to be resolved.
VEED.CREATE.Edit.mp4

I apologize if I was wrong, but can you try to revert your PR and test it? Or you can checkout this commit f042015061 (this is the commit before your PR got merged), the issue will disappear.

@hungvu193  I checked out to the commit and below is what I get now:

Is it correct as we don't have the placeholder US number?

I think @izarutskaya mentioned it here as expected result here but I'm sure.

@hungvu193 Okay I am working on to find the cause in my PR 👍

@hungvu193 Okay I am working on to find the cause in my PR 👍

AFAIK, common.zipCodeExampleFormat doesn't seem to exist in cacheForLocale. I hope this will help.

@hungvu193 I have tried commenting out the cache mechanism but things are still the same. It's probably due to the fact that getTranslatedPhrase is a recursive function, so there's something fishy going on.

@hungvu193 I have tried commenting out the cache mechanism but things are still the same. It's probably due to the fact that getTranslatedPhrase is a recursive function, so there's something fishy going on.

I don't have context about how cache work, but any reason other phrases exist in cacheForLocale except common. zipCodeExampleFormat?

Hey @hungvu193,
So I have found the issue. Basically, common. zipCodeExampleFormat doesn't work because we have a condition which checks whether translatedPhrase is a truthy value and common.zipCodeExampleFormat returns an empty string, which is a falsy value and the code returns the key as is. And the other phrases works because they return something other than an empty string.
Below is how I think we should change the condition:

@hungvu193 I have tried commenting out the cache mechanism but things are still the same. It's probably due to the fact that getTranslatedPhrase is a recursive function, so there's something fishy going on.

I don't have context about how cache work, but any reason other phrases exist in cacheForLocale except common. zipCodeExampleFormat?

@hurali97 Cool. This is only the concern I have now 🤔

@hungvu193 I have tried commenting out the cache mechanism but things are still the same. It's probably due to the fact that getTranslatedPhrase is a recursive function, so there's something fishy going on.

I don't have context about how cache work, but any reason other phrases exist in cacheForLocale except common. zipCodeExampleFormat?

@hurali97 Cool. This is only the concern I have now 🤔

Oh yes. The thing is in cache we don't store any phrases which are bound to a variable as it kills the purpose of cache.

@dragnoir Oh yeah, agreed 👍
@hungvu193 How do you want this issue to be addressed? Should I create a PR fixing this issue or you've someone else to do it?

@dragnoir Oh yeah, agreed 👍
@hungvu193 How do you want this issue to be addressed? Should I create a PR fixing this issue or you've someone else to do it?

I think you should create a PR to fix it if you're available

I requested some changes on the PR, but since @hurali97 appears to be out for the day @hayata-suenaga has volunteered to do it. Thanks @hayata-suenaga!

Closing this as it is fixed, and no additional payments are due since this was a regression


samples: bluetooth: peripheral_dis: add dst store

This will fix the error given while saving trying to save the
mac address to the store:
 bt_settings: Failed to save ID (err -2)
Signed-off-by: Radu Alexe<EMAIL_ADDRESS>

Im fine with this change Im just not so sure we want to keep this code in a sample like, at least I don't see the point of registering a settings backend.

Can we then agree to keep this change now and later, if/when someone has the bandwidth to change this sample and remove the use of a backend?

@joerchan and @jhedberg can you take a look?

Seems strange. Shouldn't it be possible to configure these as not writable? Which MAC addresses is being written to store?

@alexeRadu Can you please provide some details to the issue,

Sure,
the settings API works with backends that access different media (like Flash and filesystems) to save/load settings. There are several backends provided by the library but you can bypass it and create your own backend (which is exactly what was happening here in the peripheral_dis samples). The problem is that the sample only registers a src backend and not a dst backend so when the MAC is save it reports an error.
The patch creates a dummy dst backend so that the would be no error.

Im fine with this change Im just not so sure we want to keep this code in a sample like, at least I don't see the point of registering a settings backend.

Yeah, I agree, there is no reason to have a settings backend here.

Fixed by @joerchan.


context: add context to fetches

Codecov Report

Merging #4 into master will decrease coverage by 1.06%.
The diff coverage is 91.89%.

@@            Coverage Diff            @@
##           master      #4      +/-   ##
=========================================
- Coverage   98.57%   97.5%   -1.07%
=========================================
  Files           9       9
  Lines         351     361      +10
=========================================
+ Hits          346     352       +6
- Misses          3       6       +3
- Partials        2       3       +1

Impacted Files
Coverage Δ

commandline.go
80% <100%> (ø)
:arrow_up:

mem.go
100% <100%> (ø)
:arrow_up:

environment.go
100% <100%> (ø)
:arrow_up:

distconf.go
96.17% <90.62%> (-2.1%)
:arrow_down:

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 0c80d9b...105a8f7. Read the comment docs.


Search widget hardcodes path, which is incorect in multilingual websites

https://github.com/plone/volto/blob/30c3e3ea762ce4dca7c9d1dcf49d7b3612f59b88/src/components/theme/SearchWidget/SearchWidget.jsx#L94

We can address this kind of things with a @navroot endpoint (shameless advertisement of https://github.com/plone/plone.restapi/pull/1465) to know which is the current navigation root, and then fix all this kind of URLs with that. Because the problem is the same not only for mulitlingual sites, but also for INavigationRoot enabled sections (collective.lineage for instance).


[8.x] Added Validation Rule for Base64

For Fileuploads, e.g. Image Files, it is necessary to upload them in base64. This Rule can be applied to those Fields.

Thanks for your pull request to Laravel!
Unfortunately, I'm going to delay merging this code for now. To preserve our ability to adequately maintain the framework, we need to be very careful regarding the amount of code we include.
If possible, please consider releasing your code as a package so that the community can still take advantage of your contributions!
If you feel absolutely certain that this code corrects a bug in the framework, please "@" mention me in a follow-up comment with further explanation so that GitHub will send me a notification of your response.

Released as Package :-)
https://github.com/mennen-online/laravel-validation-rules


[BUG] Performance downgrade using OPTIMIZE (compaction) with Trino

Bug
Describe the problem
We were happy to see that OSS delta lake supported compaction, so we upgraded and tried to optimize our current tables. However, we observed the performance downgrade after compaction.
We use Starburst Enterprise (Trino) to query the delta lake on the top of S3, and here's our performance test using TPC-DS, and the chart below shows the size and object numbers of each table.

After compaction, each table's files were merged into one file, one example below.

Then we did the benchmark test and the comparsion, the below is the result of the query elapsed time, the left (blue) is before the compaction, and the right (red) is after.

The samiliar downgraded performance was also observed on our data (we have large partitioned tables, and test the benchmarks on select with different filters and complex join queries)
Environment information

Delta Lake version: 1.2.1
Spark version: 3.2.1
Scala version: 2.12
Starburst/Trino version: 370-e.3

Willingness to contribute
The Delta Lake Community encourages bug fix contributions. Would you or another member of your organization be willing to contribute a fix for this bug to the Delta Lake code base?

[ ] Yes. I can contribute a fix for this bug independently.
[ ] Yes. I would be willing to contribute a fix for this bug with guidance from the Delta Lake community.
[x] No. I cannot contribute a bug fix at this time.

@Dearkano Thanks for reporting the issue. Is it possible to share the Trino query execution profile before optimize and after optimize for one of the TPCDS queries (preferably Q21 which seems to have the worst degradation)?

@vkorukanti  sure, I will do the test and upload them later

@vkorukanti  @scottsand-db
Hi, after we dive into the queries, we found that the root cause is that:
After the compaction, the parallelism of Trino is significantly reduced, this is expected since Trino has only one file (in the TPC-DS case) to deal with in each table after compaction. So CPU time after compaction is only 1/2 or even 1/10 compared to before.
But in the end, the queries take a longer elapsed time, with consuming fewer resources.
Below is the comparison of the elapsed time, it should be similar to my original post, but this time, we ingested two copies of TPC-DS and then optimized one of them.

And this one is the comparison of the CPU time, we can see that the compaction saves the CPU significantly.

Take one query as an example, the query text is:
select count(*)
from ((select distinct c_last_name, c_first_name, d_date
       from store_sales, date_dim, customer
       where store_sales.ss_sold_date_sk = date_dim.d_date_sk
         and store_sales.ss_customer_sk = customer.c_customer_sk
         and d_month_seq between 1197 and 1197+11)
       except
      (select distinct c_last_name, c_first_name, d_date
       from catalog_sales, date_dim, customer
       where catalog_sales.cs_sold_date_sk = date_dim.d_date_sk
         and catalog_sales.cs_bill_customer_sk = customer.c_customer_sk
         and d_month_seq between 1197 and 1197+11)
       except
      (select distinct c_last_name, c_first_name, d_date
       from web_sales, date_dim, customer
       where web_sales.ws_sold_date_sk = date_dim.d_date_sk
         and web_sales.ws_bill_customer_sk = customer.c_customer_sk
         and d_month_seq between 1197 and 1197+11)
) cool_cust

This is the execution details of the query before compaction.

This is the execution details of the query after compaction.

Since we do not have cases where in each partition, there are tens of GBs of data (so there will be tens of files after compaction), we do not have benchmarks on cases like this.
In conclusion, the compaction will help Trino save resources while this may sacrifice the parallelism of Trino and make queries slower if the query resource is sufficient.

@Dearkano From the screenshots you posted, it looks like the number of stages is different? Is the query plan different when running on a compacted data?

@vkorukanti Thank you for the reply!
I have not tried max-split-size, do you mean that we can use this config to increase the parallelism?
I attach the query plans here. From my side, the plan is indeed different just like the stage shows. There are 10 fragments in the plan with compaction, and 16 fragments in the plan without compaction. I'm not very familiar with the query plan so I'm not sure if there is any join optimization you mentioned.
Query Plan - Before Compaction.txt
Query Plan - After Compaction.txt

Closing the stale issue. Feel free to reopen it if the above suggestion doesn't work

@Dearkano  is this fixed for you . I am also facing same issue , that on compacted files queries performance is slow or same vs querying uncompacted data .


A memoized steps hit, the following nodes not displayed in the UI

Summary
When a memoized step with steps template is hit by a ConfigMap record, the nodes following this step are not displayed in the UI (despite they run expectedly). The behavior might result from that the memoized step has no children.
Diagnostics
The smallest workflow that reproduces the bug looks like
apiVersion: argoproj.io/v1alpha1
kind: Workflow
metadata:
  generateName: memoized-bug-
spec:
  entrypoint: main
  templates:
  - name: main
    steps:
    - - name: hello-steps
        template: memoized
    - - name: whatever
        template: hello

  - name: memoized
    outputs:
      parameters:
      - name: msg
        valueFrom:
          parameter: "{{steps.hello-step.outputs.result}}"
    steps:
    - - name: hello-step
        template: hello
    memoize:
      key: "memoized-bug-steps-0"
      cache:
        configMap:
          name: my-config

  - name: hello
    container:
      image: alpine:latest
      command: [sh, -c]
      args: ["echo Hello"]

When the workflow is submitted for the first time, the step hello-steps is stored in the ConfigMap. And in the UI, the workflow looks like

Everything is OK. But when the workflow is submitted for the second time, the step hello-steps is loaded from the ConfigMap, the following step whatever is not displayed in the UI

In the detail of the second workflow
$ argo get memoized-bug-nmvgq -n argo -o yaml
...
    memoized-bug-nmvgq-667942788:
      boundaryID: memoized-bug-nmvgq
      displayName: hello-steps
      finishedAt: "2022-02-13T05:32:52Z"
      id: memoized-bug-nmvgq-667942788
      memoizationStatus:
        cacheName: my-config
        hit: true
        key: memoized-bug-steps-0
      name: memoized-bug-nmvgq[0].hello-steps
      outputs:
        parameters:
        - name: msg
          value: Hello
      phase: Succeeded
      startedAt: "2022-02-13T05:32:52Z"
      templateName: memoized
      templateScope: local/memoized-bug-nmvgq
      type: Steps
...
    memoized-bug-nmvgq-2677016171:
      boundaryID: memoized-bug-nmvgq
      displayName: whatever
      finishedAt: "2022-02-13T05:33:05Z"
      hostNodeName: minikube
      id: memoized-bug-nmvgq-2677016171
      name: memoized-bug-nmvgq[1].whatever
      outputs:
        artifacts:
        - name: main-logs
          s3:
            key: memoized-bug-nmvgq/memoized-bug-nmvgq-2677016171/main.log
        exitCode: "0"
      phase: Succeeded
      progress: 1/1
      resourcesDuration:
        cpu: 4
        memory: 2
      startedAt: "2022-02-13T05:32:52Z"
      templateName: hello
      templateScope: local/memoized-bug-nmvgq
      type: Pod

The step hello-steps does not have children which may cause the step whatever not displayed in the UI, despite the step whatever succeeded.

Impacted by this bug? Give it a 👍. We prioritise the issues with the most 👍.

@zjgemi memoization is only storing the node status of a particular step/task, not an original template.  I don't think we can get memoization templates.
one workaround:  instead of configuring memoization on  definition templates  like steps/dag, you can configure memoization on execution templates  like container, script, etc. It will give the same output.

@zjgemi memoization is only storing the node status of a particular step/task, not an original template. I don't think we can get memoization templates.
one workaround: instead of configuring memoization on definition templates like steps/dag, you can configure memoization on execution templates  like container, script, etc. It will give the same output.

I understand the workaround. Thanks a lot.


Added error handling for no chapters being found

When you select a manga on Batoto, if there are no chapters available on the page, you get a no attribute error from BeautifulSoup. I added an exception called NoChaptersFound, and added handling for Batoto.

Great - appreciate the change! 😄


Update to new linting functionality

This project uses semver, please check the scope of this pr:

[X] #patch# - backwards-compatible bug fix
[ ] #minor# - adding functionality in a backwards-compatible manner
[ ] #major# - incompatible API change

Closes: https://github.com/ciena-frost/ember-frost-modal/issues/82
CHANGELOG

Updated Travis to only publish when git tags are added in preparation for non-version bump pull requests.
Updated linting to use linting tools from ember-test-utils.

This change is

Visual Acceptance tests:
No changes

:+1:


feat(pie): optimize spider

[x] code
[x] test
[ ] example

Before
After

export function mockPieSpider(): G2Spec {
  return {
    type: 'interval',
    data: [
      { type: '微博', value: 93.33 },
      { type: '其他', value: 6.67 },
      { type: '论坛', value: 4.77 },
      { type: '网站', value: 1.44 },
      { type: '微信', value: 1.12 },
      { type: '客户端', value: 1.05 },
      { type: '新闻', value: 0.81 },
      { type: '视频', value: 0.39 },
      { type: '博客', value: 0.37 },
      { type: '报刊', value: 0.17 },
    ],
    encode: {
      y: 'value',
      color: 'type',
    },
    labels: [
      {
        position: 'spider',
        text: (obj) => `${obj.type} (${obj.value})`,
      },
    ],
    transform: [{ type: 'stackY' }],
    coordinate: { type: 'theta' },
  };
}

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

32 of 32 (100.0%)  changed or added relevant lines in 3 files are covered.
5 unchanged lines in 1 file lost coverage.
Overall coverage decreased (-0.02%) to 86.564%

Files with Coverage Reduction
New Missed Lines
%

src/shape/text/advance.ts
5
90.0%

Totals

Change from base Build<PHONE_NUMBER>:
-0.02%

Covered Lines:
10467

Relevant Lines:
11712

💛  - Coveralls