Update README.md

Add installation of Gulp.js

Gulp exists in devDependencies, so better just move gulp to 'dependencies' object

Thank you @G07cha. Should I move all the gulp-* thing or just "gulp": "3.9.0", ?

@G07cha I'm not sure what's the point of moving it into dependencies. Could you elaborate, please?

Yep, I've just noticed that for production build we don't need gulp at all, so this pull request useless for regular users, but anyway, need to make sure that gulp tasks don't creates files nessesary for electron-package.

That's true, but I think the initial issue was that building the terminal is invoked by the gulp command, which is not necessarily in the path. As an idea, we can create an npm script to start gulp. This way it will surely appear in the path.

Hence I think we can close this request and for feature need to create .app build for production and guide in README mark as build for development

@zedtux, now you can start the build with npm start instead of gulp.
@G07cha, I'll create an issue about the build.

Thank you @shockone for this. I'll give it a try.


Poor screen resolution RocketChat Electron Client

Search before asking

[X] I had searched in the issues and found no similar issues.

Operating System

[X] macOS
[X] Windows
[X] Linux

Operating System Version
Windows 11, macOS 14.2.1, Debian 12
It happens on the web browser too?
No, it just happens on the Desktop app
Rocket.Chat Desktop App Version
3.9.11
Rocket.Chat Server Version
6.5.2
Describe the bug
When using the Application Window for a video chat the resolution is very poor.
 You can’t read anything.
How to Reproduce
Open a call (in Jitsi Meet). The application window opens. The resolution is very bad.
It came up with updating the RocketChat server to version 6.5.2.
Describe your Expected behavior
I would expect that the resolution is as good when I use the browser (Google Chrome).
Anything else
No response
Are you willing to submit a code contribution?

[ ] Yes, I am willing to submit a Pull Request!

I just tested this in our test environment. Same problem.
No one else ?

It looks like this is more or less the same problem: https://github.com/RocketChat/Rocket.Chat.Electron/issues/2785

The problem is not solved in 3.9.12.
Can someone from Rocket.Chat comment on this case please.

Do you are using the https://meet.jit.si/ server or is a jitsi server hosted by you?
This only happens when there are more than 2 persons on the meet?

It's an internal Server and happens mostly if more than 2 people are in meet

https://github.com/jitsi/jitsi-meet/issues/14396#issuecomment-2058518021


Provide on OpenVSX

I'm using an open source build of VSCode called code-oss. This and most other OSS versions of VSCode use the OpenVSX plugin marketplace. It would be great if it was available there: https://open-vsx.org

:+1: , though for the time being, we can just download it from the proprietary one as a .vsix and install it manually

Dear extension author,
Please publish this extension to the Open VSX marketplace.
Context
Unfortunately, as Microsoft prohibits usages of the Microsoft marketplace by any other products or redistribution of .vsix files from it, in order to use VS Code extensions in non-Microsoft products, we kindly ask that you take ownership of the VS Code extension namespace in Open VSX and publish this extension on Open VSX.
What is Open VSX? Why does it exist?
Open VSX is a vendor neutral alternative to the MS marketplace used by most other derivatives of VS Code like VSCodium, Gitpod, OpenVSCode, Theia-based IDEs, and so on.
You can read on about Open VSX at the Eclipse Foundation's Open VSX FAQ.
How can you publish to Open VSX?
The docs to publish an extension can be found here. This process is straightforward and shouldn't take too long. Essentially, you need an authentication token and to execute the ovsx publish command to publish your extension. There's also a doc explaining the whole process with an example GitHub Action workflow.


Add Mariner TSG for AKS

Hi Sudhanva, can a note be added to say Basic troubleshooting: Most commands such as 'ps' in Mariner OS are similar to those used in Ubuntu. However, package management is done using 'tdnf', for instance, 'tdnf -y install tcpdump' can be used to install the tcpdump package.


add trio match game

Description
add a new game trio match
Fixes:  #2336

Type of change

[X] New feature (non-breaking change which adds functionality)

Checklist:

[X] I have made this from my own
[X] I have taken help from some online resourses
[X] My code follows the style guidelines of this project
[X] I have performed a self-review of my own code
[X] I have commented my code, particularly in hard-to-understand areas
[X] I have made corresponding changes to the documentation
[X] My changes generate no new warnings

ATTACH SCREEN-SHOTS / DEPLOYMENT LINK

Please check this, not able to merge this @ANKeshri

@Sulagna-Dutta-Roy done


Optimize avatar rotation

This issue is a following of the issue #49 Character face walking direction
The closing message on issues 49:
As shown in the image below, the input catching logic is duplicated between the PlayerLocal.update and AvatarController.rotateFaceDirection.

Ideally, to optimize the update loop, we would:

Catch the user input only in the PlayerLocal.
Execute the logic to find the new rotation inside PlayerLocal.update
Adjust the capsules rotation using the attribute THREE.Object3D.quaternion from its parent.
Pass the quaternion to the AvatarController as an argument of AvatarController.update
Then the AvatarController would only copy the capsules facing rotations using AvatarController.applyQuaternion, inherited from its THREE.Object3D parent.

Hi @Liquid-Blocks,
I still don't know how to use "applyQuaternion" as your suggestion. Did try, but the model still not rotate.
Please help to take a look on my branch, and give any further advise. It would be much appreciate.

@codeeMadness No problem, I will open the branch and take a look, thank you

Hi @codeeMadness , I have solved the payer rotation in a new branch that I merged into develop in PR #70,
The final solution uses the horizontal velocity to find the facing rotation.


Buy build datatable

Automating table generation from site data.

Neat idea! Im approving because it works (so 'good enough'), but haven't thoroughly reviewed the content yet. Will do this morning and add any thoughts
Thought could be merged as is, given it's WIP any who

Content doesn't change much and is still in alpha version. Most content revision will be dealt with in PR 1083.
The table generation is using Datatables which renders the tables with JS. Will need additional testing for accessibility in tables.


Make header configurable

Fixes #570
Fixes #100
Fixes #53
I think it's best to name it header (previously, it used to be a nested option getter).
Unfortunately, that means we have to get rid of invariants that we left back in the day to help people migrate from nested to flat options. To me, it makes sense to get rid of that since we are still in beta and breaking changes can happen. Since we are landing all breaking changes into one release and we will be explaining them in a release notes, it might be worth the better API.

LGTM

@satya164 tests are passing now

I'll let @ericvicenti  review and merge

@grabbou I'm unsure how this fixed #53

You can now set header: null on any component regardless headerMode and it will work. When float, it will have a weird animation, but this is out of scope for this PR.

It looks like you've kept the floatingHeader too though?

Yes
if (headerMode === 'float') {
    floatingHeader = this._renderHeader(this.props.scene, headerMode);
 }

in this context, this.props.scene corresponds to the active scene that is currently displayed on screen (coming from Transitioner).

Sorry I was comparing to the last beta not master.
Ideally we need a way for the header to transition between the following without the need for nesting:

iOS-style navbar aka float
cover with/without navbar
modal (push a new stack if you wish to show a nav bar)

This needs knowledge of the previous component within the CardStack so that it can deal with the various scenarios or a rethink on how the header is treated - I'm happy to work on it but I don't want to spend lots of time on one direction if you're looking to go another...

@lprhodes all these use-cases should be satisfied with this PR - previously the float mode was problematic. Now, you can hide/show header on per screen basis.
The only thing that could be improved is the way it animates (e.g. should it fade out / slide to top?). That requires more thinking, so I believe it's better to start with this implementation and discuss possible improvements later.

How will we port existing code using customised left/title/right invariants to this new approach? Currently I am getting Objects are not valid as a React child (found: object with keys {title, right}) with the following code:
  static navigationOptions = {
    header: ({ state, navigate }) => ({
      title: <Text>{getScreenTitle(state)}</Text>,
      right: (
          <TouchableOpacity
            onPress={() => navigate("Map")}
            style={{ flex: 1, justifyContent: "center", alignItems: "center" }}
          >
      )
    })
  };

Use headerTitle and headerRight. header is now a React Element that
can be displayed in place of a header.
PS. You shouldn't be probably running into this unless you are using master

we are wrapping up changelog and list of braking changes.

On Wed, 26 Apr 2017 at 11:07 Aranda Morrison<EMAIL_ADDRESS>wrote:

How will we port existing code using customised left/title/right
invariants to this new approach? Currently I am getting Objects are not
valid as a React child (found: object with keys {title, right}) with the
following code:
static navigationOptions = {
header: ({ state, navigate }) => ({
title: {getScreenTitle(state)},
right: (
<TouchableOpacity
onPress={() => navigate("Map")}
style={{ flex: 1, justifyContent: "center", alignItems: "center" }}
>
)
})
};
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/react-community/react-navigation/pull/1220#issuecomment-297308127,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ACWcxhDXbwH4FMu68CRAHP1ZCi2lT3VJks5rzwk3gaJpZM4NHEK-
.

Yep thanks, I was trying to upgrade react-native to 0.43.4 but that seems to have an incompatibility with react-navigation beta.7. Also I figured I might as well match the new API here sooner rather than later.

Hmm so it looks like headerTitle can be a String or React Element. If I want it to be a function (so I can alter it based on the navigation state), I need to replace the whole Header with a custom function returning a React Element?

@aranda-adapptor to make it based on navigation state, you can define your entire navigationOptions as a function, that is:
static navigationOptions = ({ navigation }) => ({
   title: `...`,
});

@grabbou thanks, that works nicely!

How would I go about hiding a header in a StackNavigator for a specific screen now?
Docs say:

Setting to null hides header

I have tried:
static navigationOptions = () => ({
    header: null
})

-> Cannot convert undefined or null to object
and
static navigationOptions = () => ({
    header: () => null
})

-> 'header' cannot be defined as a function in navigation options for 'WhateverScreen' screen.
Am I reading the docs completely wrong?

cc @grabbou

@Jacse I've been using the first option you set without any issues on iOS. Perhaps it's platform related - what are you trying it on? Are you definitely using code from the master branch?

@lprhodes You're right. Upgrading from 1.0.0-beta.8 to 1.0.0-beta.9 resolved the issue - thanks.

Should this fix the animation bug (when transitioning from a header: float scene to a scene with header: null, the header visibly moves)?
The bug was referenced in comments of #53 but in my testing of ^1.0.0-beta.9 it still seems present. Not sure if I'm using the API incorrectly, or if that bug remains open.

No it doesn't fix the animation bug - I've been working on a fix for that with https://github.com/react-community/react-navigation/pull/1308

I've spotted an issue with #1308 however in that on occasion, for a brief moment you see a flash of the next screen already animated in. I'll be spending some time figuring it out tomorrow.

Looks like its possible now to pass in a component as a header? Just wondering how to do it exactly? I've got:
const LandingHeader = () => {   return (     <View style={styles.header}>       Derp     </View>   ) }
then:
export const MainNavigator = StackNavigator({   Index: {     screen: Landing,     header: <LandingHeader />   }})
Is that the idea? (that doesn't work but am I on the right track?)

@gregblass header should be nested under navigationOptions and it should be a function. Something like this should work:
export const MainNavigator = StackNavigator({
  Index: {
    screen: Landing,
    navigationOptions: {
      header: props => <LandingHeader {...props} />
    }
  }
})

The above syntax doesn't work. Does anyone have a working example of the syntax you'd use?

Sorry I'm new to ES6 and just can't get this working for the life of me. Anyone? Beuler? :(

That works @koenpunt, thanks!


Fix appimage creation in container when host has appimagelauncher enabled

I ran into a problem that building the very same project in the very same container worked on one machine but not on the other (same host OS, roughly same version). The error was ./linuxdeploy-x86_64.AppImage: No such file or directory. As I looked into the problem I found this:
If Appimagelauncher is enabled on the host, it modifies binfmt to inject itself as a launcher for appimages. This also applies to appimages in containers although the appimagelauncher binary is most likely not available there. So the "No such file" does not mean the appimage itself but the launcher it tries to execute.
The easiest way to fix this is to modify the appimage ELF header so that binfmt no longer identifies it as an appimage and lets the binary run itself. This is my PR.
What kind of change does this PR introduce?

[x] Bugfix
[ ] Feature
[ ] Docs
[ ] New Binding issue #___
[ ] Code style update
[ ] Refactor
[ ] Build-related changes
[ ] Other, please describe:

Does this PR introduce a breaking change?

[ ] Yes, and the changes were approved in issue #___
[x] No

Checklist

[ ] When resolving issues, they are referenced in the PR's title (e.g fix: remove a typo, closes #___, #___)
[ ] A change file is added if any packages will require a version bump due to this PR per the instructions in the readme.
[ ] I have added a convincing reason for adding this feature, if necessary

Other information

I tried running appimagelauncherd and the logs shows ERROR: not an AppImage, skipping on the dev branch. In your branch, the launcher exits with Segmentation fault (core dumped). Can you double check @FabianLars ?

@lucasfernog For me it behaves as described by the OP. Without the change appimagelauncher thinks it's an appimage, and with their branch it doesn't, without any side-effects for me (= the build succeeds).
That said i only tested it on my host machine (fedora36) without any container stuff. The latter needs to wait until tomorrow, but as i see no change for "normal" users i'd tend to give my okay for this change :thinking:

A weird side effect is that I had to reboot after uninstalling appimagelauncher, it was giving me the same ./linuxdeploy-x86_64.AppImage: No such file or directory error somehow. Just posting here in case someone sees it.


not possible to create shapely object from wkt

Environment: Win10 64 bit
Version:
>>> shapely.__version__
'1.6a1'

Creating shapely object from wkt is working in case of point and linestring
from shapely.geometry import asShape
>>> asShape({'type': 'Point', 'coordinates': (0.0, 0.0)}).buffer(1.0).area
3.1365484905459384
>>> asShape({'type': "LineString", "coordinates": [(-1,0),(0,0)]}).buffer(1.0).area
5.13654849054594

but in case of polygon it fails. The object is seemingly created,
>>> asShape({'type': "Polygon", "coordinates": [(0,0), (0,1), (1,1),(1,0),(0,0)]})
<shapely.geometry.polygon.PolygonAdapter object at 0x00000251C2CA7710>

however calling any methods throwing exceptions
>>> asShape({'type': "Polygon", "coordinates": [(0,0), (0,1), (1,1),(1,0),(0,0)]}).area
Traceback (most recent call last):
  File "C:\Anaconda3\lib\site-packages\shapely\geometry\polygon.py", line 407, in geos_linearring_from_py
    array = ob.__array_interface__
AttributeError: 'tuple' object has no attribute '__array_interface__'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<pyshell#66>", line 1, in <module>
    asShape({'type': "Polygon", "coordinates": [(0,0), (0,1), (1,1),(1,0),(0,0)]}).area()
  File "C:\Anaconda3\lib\site-packages\shapely\geometry\base.py", line 431, in area
    return self.impl['area'](self)
  File "C:\Anaconda3\lib\site-packages\shapely\topology.py", line 55, in __call__
    self._validate(this)
  File "C:\Anaconda3\lib\site-packages\shapely\topology.py", line 17, in _validate
    if ob is None or ob._geom is None:
  File "C:\Anaconda3\lib\site-packages\shapely\geometry\proxy.py", line 49, in _geom
    self.__geom__, n = self.factory(self.context[0], self.context[1])
  File "C:\Anaconda3\lib\site-packages\shapely\geometry\polygon.py", line 526, in geos_polygon_from_py
    ret = geos_linearring_from_py(shell)
  File "C:\Anaconda3\lib\site-packages\shapely\geometry\polygon.py", line 468, in geos_linearring_from_py
    n = len(ob[0])
TypeError: object of type 'int' has no len()

These examples are not using WKT. http://toblerity.org/shapely/manual.html#well-known-formats
They are using the geo_interface representation of the geometry, which is fine.
The reason your polygon is failing is because it's not valid. Polygon coordinate sequences should be a list of lists of coordinates, not a list of coordinates as you have. This is because a polygon is composed of multiple linear rings - an exterior ring, and optional multiple interior rings.
The following code works. Note the additional brackets in the coordinates.
>>> polygon = asShape({'type': "Polygon", "coordinates": [[(0,0), (0,1), (1,1),(1,0),(0,0)]]})
>>> polygon.is_valid

Also note that if you're not using numpy arrays for the coordinates you could just as well use shape() instead of asShape(). In this case the error is raised immediately, rather than when you try to access the data. http://toblerity.org/shapely/shapely.geometry.html#shapely.geometry.asShape

Okey, I misspelled the list, but either the correct form does not work:
polygon = asShape({'type': "Polygon", "coordinates": [(0,0), (0,1), (1,1),(1,0),(0,0)]})
>>> polygon.area
Traceback (most recent call last):
  File "C:\Anaconda3\lib\site-packages\shapely\geometry\polygon.py", line 407, in geos_linearring_from_py
    array = ob.__array_interface__
AttributeError: 'tuple' object has no attribute '__array_interface__'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<pyshell#8>", line 1, in <module>
    polygon.area
  File "C:\Anaconda3\lib\site-packages\shapely\geometry\base.py", line 431, in area
    return self.impl['area'](self)
  File "C:\Anaconda3\lib\site-packages\shapely\topology.py", line 55, in __call__
    self._validate(this)
  File "C:\Anaconda3\lib\site-packages\shapely\topology.py", line 17, in _validate
    if ob is None or ob._geom is None:
  File "C:\Anaconda3\lib\site-packages\shapely\geometry\proxy.py", line 49, in _geom
    self.__geom__, n = self.factory(self.context[0], self.context[1])
  File "C:\Anaconda3\lib\site-packages\shapely\geometry\polygon.py", line 526, in geos_polygon_from_py
    ret = geos_linearring_from_py(shell)
  File "C:\Anaconda3\lib\site-packages\shapely\geometry\polygon.py", line 468, in geos_linearring_from_py
    n = len(ob[0])
TypeError: object of type 'int' has no len()

even if I use numpy array:
arr = numpy.array([(0,0), (0,1), (1,1),(1,0),(0,0)])
>>> ss.area
Traceback (most recent call last):
  File "<pyshell#16>", line 1, in <module>
    ss.area
  File "C:\Anaconda3\lib\site-packages\shapely\geometry\base.py", line 431, in area
    return self.impl['area'](self)
  File "C:\Anaconda3\lib\site-packages\shapely\topology.py", line 55, in __call__
    self._validate(this)
  File "C:\Anaconda3\lib\site-packages\shapely\topology.py", line 17, in _validate
    if ob is None or ob._geom is None:
  File "C:\Anaconda3\lib\site-packages\shapely\geometry\proxy.py", line 49, in _geom
    self.__geom__, n = self.factory(self.context[0], self.context[1])
  File "C:\Anaconda3\lib\site-packages\shapely\geometry\polygon.py", line 526, in geos_polygon_from_py
    ret = geos_linearring_from_py(shell)
  File "C:\Anaconda3\lib\site-packages\shapely\geometry\polygon.py", line 408, in geos_linearring_from_py
    assert len(array['shape']) == 2
AssertionError

If you read carefully my later comment, I wrote that it is not a nested list, I misspelled it!
So, once again I tried to crate polygon from wkt this way:
polygon = asShape({'type': "Polygon", "coordinates": [(0,0), (0,1), (1,1),(1,0),(0,0)]})
I don't want to create any nested polygon object!
Please, paste a real working code example, if you can have it!
Thanks!

If you read carefully my later comment, I wrote that it is not a nested list, I misspelled it!
So, once again I tried to crate polygon from wkt this way:
polygon = asShape({'type': "Polygon", "coordinates": [(0,0), (0,1), (1,1),(1,0),(0,0)]})
it does not work with square brackets
polygon =  asShape({'type':'Polygon', 'coordinates':[[0,0],[0,1],[1,1],[1,0]]})
I don't want to create any nested polygon object!
Please, paste a real working code example, if you can have it!
Thanks!

@pythonfun0 You're not seeing what we're trying to point out.
You're typing this:
polygon = asShape({'type': "Polygon", "coordinates": [(0,0), (0,1), (1,1), (1,0), (0,0)]})

You should be typing this:
polygon = asShape({'type': "Polygon", "coordinates": [[(0,0), (0,1), (1,1), (1,0), (0,0)]]})

Even if your polygon only has an exterior ring and no interior rings, you still need to pass a nested list.

I've already get it, sorry I read absently your answers. A list of list of coordinates works perfectly.
Thank you!


CHECK_THROWS_AS of non-default constructor wants to call default constructor

Description
Steps to reproduce
#include <doctest.h>
#include <exception>

struct foo {
    foo() = delete;
    foo(int);
    int bar();
};

TEST_CASE("foo") {
    int i = 0;
    SUBCASE("empty") {
        CHECK_THROWS_AS(foo(i), std::exception); // error: use of deleted function 'foo::foo()'
    }
    SUBCASE("bar") {
        CHECK_THROWS_AS(foo(i).bar(), std::exception); // works
    }
    SUBCASE("empty") {
        CHECK_THROWS_AS(foo(int(i)), std::exception); // works
    }
}

See https://godbolt.org/z/7t32D-
Extra information

doctest version: v2.3.4

Did that help?
Btw even without doctest you would get an error if you just wrote foo(i); in function scope, but if you cast it to void like this: (void)foo(i); it works. I'm thinking of closing this issue...

Sorry, I forgot about this. I rolled back the conversion from catch2 to doctest because of the missung GENERATE feature, so I didn't get around to testing this...
But the suggested fix works, thanks. Maybe this should be the default?


Don't run tutorials on aarch64

This should fix the errors we've seen in #296 and #297, as suggested by Dilum on Slack (https://julialang.slack.com/archives/G014WQ6M22J/p1651072677154029?thread_ts=1651072029.846309&cid=G014WQ6M22J).

@staticfloat could you rerun cryptic/bin/sign_treehashes and add them to the PR? I think I can't do this on my own?


Improve handling of missing vocab_file attribute in HFTokenizerConverter

This commit updates HFTokenizerConverter to handle cases where the hf_tokenizer object might not have a vocab_file attribute.
Changes:

Uses getattr to retrieve the vocab_file attribute for flexibility
Stores the retrieved value in a separate variable vocab_file for clarity
Checks if vocab_file is None before checking its existence

This ensures the converter works correctly even with tokenizers that don't define a vocab_file attribute.

I'm not sure but it looks like GPT2Tokenizer/-Fast lacks the vocab_file attribute.

/azp run onnxruntime-extensions.CI


Update Windows and OSX CI images.

macOS-10.14 and vs2017-win2016 are being deprecated by Azure CI.
This patch updates the images used to the oldest image that is
still supported.

Implemented in https://github.com/numba/numba/pull/7650 and https://github.com/numba/numba/pull/7628, closing.


RuntimeError when training on multiple GPUs

Hey! I'm trying to train on multiple GPUs and consistently getting the following RuntimeError. Here's the modified line in tutorial_train.py:
trainer = pl.Trainer(gpus=8, precision=32, callbacks=[logger])

As soon as I change gpus to 1, training works fine. Anyone have ideas?
The error when training on >1 GPU
GPU available: True, used: True
TPU available: False, using: 0 TPU cores
IPU available: False, using: 0 IPUs
/home/ubuntu/anaconda3/envs/control/lib/python3.8/site-packages/pytorch_lightning/trainer/configuration_validator.py:118: UserWarning: You defined a `validation_step` but have no `val_dataloader`. Skipping val loop.
  rank_zero_warn("You defined a `validation_step` but have no `val_dataloader`. Skipping val loop.")
/home/ubuntu/anaconda3/envs/control/lib/python3.8/site-packages/pytorch_lightning/trainer/configuration_validator.py:280: LightningDeprecationWarning: Base `LightningModule.on_train_batch_start` hook signature has changed in v1.5. The `dataloader_idx` argument will be removed in v1.7.
  rank_zero_deprecation(
/home/ubuntu/anaconda3/envs/control/lib/python3.8/site-packages/pytorch_lightning/trainer/configuration_validator.py:287: LightningDeprecationWarning: Base `Callback.on_train_batch_end` hook signature has changed in v1.5. The `dataloader_idx` argument will be removed in v1.7.
  rank_zero_deprecation(
LOCAL_RANK: 0 - CUDA_VISIBLE_DEVICES: [0,1,2,3,4,5,6,7]
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/home/ubuntu/anaconda3/envs/control/lib/python3.8/multiprocessing/spawn.py", line 116, in spawn_main
    exitcode = _main(fd, parent_sentinel)
  File "/home/ubuntu/anaconda3/envs/control/lib/python3.8/multiprocessing/spawn.py", line 125, in _main
    prepare(preparation_data)
  File "/home/ubuntu/anaconda3/envs/control/lib/python3.8/multiprocessing/spawn.py", line 236, in prepare
    _fixup_main_from_path(data['init_main_from_path'])
  File "/home/ubuntu/anaconda3/envs/control/lib/python3.8/multiprocessing/spawn.py", line 287, in _fixup_main_from_path
    main_content = runpy.run_path(main_path,
  File "/home/ubuntu/anaconda3/envs/control/lib/python3.8/runpy.py", line 265, in run_path
    return _run_module_code(code, init_globals, run_name,
  File "/home/ubuntu/anaconda3/envs/control/lib/python3.8/runpy.py", line 97, in _run_module_code
    _run_code(code, mod_globals, init_globals,
  File "/home/ubuntu/anaconda3/envs/control/lib/python3.8/runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "/home/ubuntu/ControlNet/tutorial_train.py", line 35, in <module>
    trainer.fit(model, dataloader)
  File "/home/ubuntu/anaconda3/envs/control/lib/python3.8/site-packages/pytorch_lightning/trainer/trainer.py", line 735, in fit
    self._call_and_handle_interrupt(
  File "/home/ubuntu/anaconda3/envs/control/lib/python3.8/site-packages/pytorch_lightning/trainer/trainer.py", line 682, in _call_and_handle_interrupt
    return trainer_fn(*args, **kwargs)
  File "/home/ubuntu/anaconda3/envs/control/lib/python3.8/site-packages/pytorch_lightning/trainer/trainer.py", line 770, in _fit_impl
    self._run(model, ckpt_path=ckpt_path)
  File "/home/ubuntu/anaconda3/envs/control/lib/python3.8/site-packages/pytorch_lightning/trainer/trainer.py", line 1193, in _run
    self._dispatch()
  File "/home/ubuntu/anaconda3/envs/control/lib/python3.8/site-packages/pytorch_lightning/trainer/trainer.py", line 1272, in _dispatch
    self.training_type_plugin.start_training(self)
  File "/home/ubuntu/anaconda3/envs/control/lib/python3.8/site-packages/pytorch_lightning/plugins/training_type/ddp_spawn.py", line 173, in start_training
    self.spawn(self.new_process, trainer, self.mp_queue, return_result=False)
  File "/home/ubuntu/anaconda3/envs/control/lib/python3.8/site-packages/pytorch_lightning/plugins/training_type/ddp_spawn.py", line 201, in spawn
    mp.spawn(self._wrapped_function, args=(function, args, kwargs, return_queue), nprocs=self.num_processes)
  File "/home/ubuntu/.local/lib/python3.8/site-packages/torch/multiprocessing/spawn.py", line 240, in spawn
    return start_processes(fn, args, nprocs, join, daemon, start_method='spawn')
  File "/home/ubuntu/.local/lib/python3.8/site-packages/torch/multiprocessing/spawn.py", line 189, in start_processes
    process.start()
  File "/home/ubuntu/anaconda3/envs/control/lib/python3.8/multiprocessing/process.py", line 121, in start
    self._popen = self._Popen(self)
  File "/home/ubuntu/anaconda3/envs/control/lib/python3.8/multiprocessing/context.py", line 284, in _Popen
    return Popen(process_obj)
  File "/home/ubuntu/anaconda3/envs/control/lib/python3.8/multiprocessing/popen_spawn_posix.py", line 32, in __init__
    super().__init__(process_obj)
  File "/home/ubuntu/anaconda3/envs/control/lib/python3.8/multiprocessing/popen_fork.py", line 19, in __init__
    self._launch(process_obj)
  File "/home/ubuntu/anaconda3/envs/control/lib/python3.8/multiprocessing/popen_spawn_posix.py", line 42, in _launch
    prep_data = spawn.get_preparation_data(process_obj._name)
  File "/home/ubuntu/anaconda3/envs/control/lib/python3.8/multiprocessing/spawn.py", line 154, in get_preparation_data
    _check_not_importing_main()
  File "/home/ubuntu/anaconda3/envs/control/lib/python3.8/multiprocessing/spawn.py", line 134, in _check_not_importing_main
    raise RuntimeError('''
RuntimeError:
        An attempt has been made to start a new process before the
        current process has finished its bootstrapping phase.

        This probably means that you are not using fork to start your
        child processes and you have forgotten to use the proper idiom
        in the main module:

            if __name__ == '__main__':
                freeze_support()
                ...

        The "freeze_support()" line can be omitted if the program
        is not going to be frozen to produce an executable.

What I've tried

clean-install conda environment
with/without triton, xformers

Me too. After it print LOCAL_RANK: 0 - CUDA_VISIBLE_DEVICES: [0,1,2,3], cuda just cored dump

Wrap lines 20-35 in if __name__ == '__main__': and run training CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 python tutorial_train.py

lines 20-35 of what file?

lines 20-35 of what file?

The file you originally wrote about. tutorial_train.py

lines 20-35 of what file?

The file you originally wrote about. tutorial_train.py

Still have the same problem

Had the same issue, and this fixed it.

Wrap lines 20-35 in if __name__ == '__main__': and run training CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 python tutorial_train.py

accelerator_connector.py:287: LightningDeprecationWarning: Passing Trainer(accelerator='ddp')has been deprecated in v1.5 and will be removed in v1.7. UseTrainer(strategy='ddp') instead.
I think we shoulde use strategy='ddp'

Hi
@JunnYu
This is how I do it.
trainer = pl.Trainer(strategy="ddp", accelerator="gpu", devices=[0,1], precision=32, callbacks=[logger],max_epochs=max_epochs)
I am running it on 2X3090s.

I think the final answer is a combination of 3 answers above: by @tg-bomze, @SuroshAhmadZobair and @JunnYu . You need to apply the following modifications to the original tutorial_train.py script:

Wrap the lines 20-35 of tutorial_train.py with if __name__ == "__main__":.
Make sure the GPU-s that you want to use are visible in the terminal by running export CUDA_VISIBLE_DEVICES=0,1. If you have more GPU-s, or wish to use specific GPU-s, feel free to use your own ID-s, for example export CUDA_VISIBLE_DEVICES=0,3,6,7. If you only have 2 GPU-s, then use the first command.
Modify the training script to use the specified number of GPU-s by modifying the initialization of the pl.Trainer object, i.e. trainer = pl.Trainer(gpus=2, precision=32, callbacks=[logger]).
It also turns out you need to set the strategy when initializing the pl.Trainer object, so you need to modify that line of code again to get trainer = pl.Trainer(strategy='ddp', gpus=2, precision=32, callbacks=[logger]).

Eventually, your entire training script should look like this:
from share import *

import pytorch_lightning as pl
from torch.utils.data import DataLoader
from tutorial_dataset import MyDataset
from cldm.logger import ImageLogger
from cldm.model import create_model, load_state_dict

# Configs
resume_path = './models/control_sd15_ini.ckpt'
batch_size = 2
logger_freq = 300
learning_rate = 1e-5
sd_locked = True
only_mid_control = False

if __name__ == "__main__":
    # First use cpu to load models. Pytorch Lightning will automatically move it to GPUs.
    model = create_model('./models/cldm_v15.yaml').cpu()
    model.load_state_dict(load_state_dict(resume_path, location='cpu'))
    model.learning_rate = learning_rate
    model.sd_locked = sd_locked
    model.only_mid_control = only_mid_control

    # Misc
    dataset = MyDataset()
    dataloader = DataLoader(dataset, num_workers=0, batch_size=batch_size, shuffle=True)
    logger = ImageLogger(batch_frequency=logger_freq)
    trainer = pl.Trainer(strategy='ddp', gpus=2, precision=32, callbacks=[logger])

    # Train!
    trainer.fit(model, dataloader)

As you can see, the modified script does not differ much from the original script. Once you have everything setup, simply run the training command:
python tutorial_train.py

It worked for me on 2xQuadro RTX 6000s.
P.S. I had to reduce the batch size from 4 to 2 to make sure I don't get an out-of memory error. If you have enough memory, you can stick to batch size 4.
P.P.S. As I said earlier, I had to combine several previous responses to make things work. I thought it would be easier for others if these answers were merged into one. It is also possible that different people have different problems when running things, so I cannot guarantee that this solution is 100% correct. In any case I hope it helps.

So I did what @MikaYeghi - total copy paste , yet my code is still not running properly on 2xRTX 3090
If I run it on 2 GPUs it outputs this and hangs in there:
No module 'xformers'. Proceeding without it.
ControlLDM: Running in eps-prediction mode
DiffusionWrapper has 859.52 M params.
making attention of type 'vanilla' with 512 in_channels
Working with z of shape (1, 4, 32, 32) = 4096 dimensions.
making attention of type 'vanilla' with 512 in_channels
Loaded model config from [./models/cldm_v15.yaml]
Loaded state_dict from [./models/control_sd15_ini.ckpt]
initializing distributed: GLOBAL_RANK: 1, MEMBER: 2/2
distributed_backend=nccl
All distributed processes registered. Starting with 2 processes
If I run it with only 1 GPU - like default tutorial, it runs well and output is like this:
No module 'xformers'. Proceeding without it.
ControlLDM: Running in eps-prediction mode
DiffusionWrapper has 859.52 M params.
making attention of type 'vanilla' with 512 in_channels
Working with z of shape (1, 4, 32, 32) = 4096 dimensions.
making attention of type 'vanilla' with 512 in_channels
Loaded model config from [./models/cldm_v15.yaml]
Loaded state_dict from [./models/control_sd15_ini.ckpt]
GPU available: True, used: True
TPU available: False, using: 0 TPU cores
IPU available: False, using: 0 IPUs
/home/sd4/anaconda3/envs/control/lib/python3.8/site-packages/pytorch_lightning/trainer/configuration_validator.py:118: UserWarning: You defined a validation_step but have no val_dataloader. Skipping val loop.
rank_zero_warn("You defined a validation_step but have no val_dataloader. Skipping val loop.")
/home/sd4/anaconda3/envs/control/lib/python3.8/site-packages/pytorch_lightning/trainer/configuration_validator.py:280: LightningDeprecationWarning: Base LightningModule.on_train_batch_start hook signature has changed in v1.5. The dataloader_idx argument will be removed in v1.7.
rank_zero_deprecation(
/home/sd4/anaconda3/envs/control/lib/python3.8/site-packages/pytorch_lightning/trainer/configuration_validator.py:287: LightningDeprecationWarning: Base Callback.on_train_batch_end hook signature has changed in v1.5. The dataloader_idx argument will be removed in v1.7.
rank_zero_deprecation(
initializing distributed: GLOBAL_RANK: 0, MEMBER: 1/1
distributed_backend=nccl
All distributed processes registered. Starting with 1 processes
LOCAL_RANK: 0 - CUDA_VISIBLE_DEVICES: [0,1]
| Name              | Type               | Params
0 | model             | DiffusionWrapper   | 859 M
1 | first_stage_model | AutoencoderKL      | 83.7 M
2 | cond_stage_model  | FrozenCLIPEmbedder | 123 M
3 | control_model     | ControlNet         | 361 M
1.2 B     Trainable params
206 M     Non-trainable params
1.4 B     Total params
5,710.058 Total estimated model params size (MB)
/home/sd4/anaconda3/envs/control/lib/python3.8/site-packages/pytorch_lightning/trainer/data_loading.py:110: UserWarning: The dataloader, train_dataloader, does not have many workers which may be a bottleneck. Consider increasing the value of the num_workers argument(try 12 which is the number of cpus on this machine) in theDataLoaderinit to improve performance.   rank_zero_warn( Epoch 0:   0%|                                        | 0/25000 [00:00<?, ?it/s]/home/sd4/anaconda3/envs/control/lib/python3.8/site-packages/pytorch_lightning/utilities/data.py:56: UserWarning: Trying to infer thebatch_sizefrom an ambiguous collection. The batch size we found is 2. To avoid any miscalculations, useself.log(..., batch_size=batch_size)`.
warning_cache.warn(
Data shape for DDIM sampling is (2, 4, 64, 64), eta 0.0
Running DDIM Sampling with 50 timesteps
DDIM Sampler: 100%|█████████████████████████████| 50/50 [00:35<00:00,  1.39it/s]
Epoch 0:   0%| | 7/25000 [00:49<48:54:16,  7.04s/it, loss=0.0126, v_num=26, trai

any ideas?

What I also noticed is with 2 GPU setup, my cards somehow run to 100% GPU, but actually only around 170W out of 350 or 420 (one has 350 and second 420 W). Also VRAM usage goes only to 6-7 GB instead of 22 when running only on 1 GPU properly. Any ideas what can be wrong? Tried many things yesterday..

So I did what @MikaYeghi - total copy paste , yet my code is still not running properly on 2xRTX 3090
If I run it on 2 GPUs it outputs this and hangs in there:

No module 'xformers'. Proceeding without it.
ControlLDM: Running in eps-prediction mode
DiffusionWrapper has 859.52 M params.
making attention of type 'vanilla' with 512 in_channels
Working with z of shape (1, 4, 32, 32) = 4096 dimensions.
making attention of type 'vanilla' with 512 in_channels
Loaded model config from [./models/cldm_v15.yaml]
Loaded state_dict from [./models/control_sd15_ini.ckpt]
initializing distributed: GLOBAL_RANK: 1, MEMBER: 2/2
----------------------------------------------------------------------------------------------------
distributed_backend=nccl
All distributed processes registered. Starting with 2 processes
----------------------------------------------------------------------------------------------------

If I run it with only 1 GPU - like default tutorial, it runs well and output is like this:
No module 'xformers'. Proceeding without it.
ControlLDM: Running in eps-prediction mode
DiffusionWrapper has 859.52 M params.
making attention of type 'vanilla' with 512 in_channels
Working with z of shape (1, 4, 32, 32) = 4096 dimensions.
making attention of type 'vanilla' with 512 in_channels
Loaded model config from [./models/cldm_v15.yaml]
Loaded state_dict from [./models/control_sd15_ini.ckpt]
GPU available: True, used: True
TPU available: False, using: 0 TPU cores
IPU available: False, using: 0 IPUs
/home/sd4/anaconda3/envs/control/lib/python3.8/site-packages/pytorch_lightning/trainer/configuration_validator.py:118: UserWarning: You defined a `validation_step` but have no `val_dataloader`. Skipping val loop.
  rank_zero_warn("You defined a `validation_step` but have no `val_dataloader`. Skipping val loop.")
/home/sd4/anaconda3/envs/control/lib/python3.8/site-packages/pytorch_lightning/trainer/configuration_validator.py:280: LightningDeprecationWarning: Base `LightningModule.on_train_batch_start` hook signature has changed in v1.5. The `dataloader_idx` argument will be removed in v1.7.
  rank_zero_deprecation(
/home/sd4/anaconda3/envs/control/lib/python3.8/site-packages/pytorch_lightning/trainer/configuration_validator.py:287: LightningDeprecationWarning: Base `Callback.on_train_batch_end` hook signature has changed in v1.5. The `dataloader_idx` argument will be removed in v1.7.
  rank_zero_deprecation(
initializing distributed: GLOBAL_RANK: 0, MEMBER: 1/1
----------------------------------------------------------------------------------------------------
distributed_backend=nccl
All distributed processes registered. Starting with 1 processes
----------------------------------------------------------------------------------------------------

LOCAL_RANK: 0 - CUDA_VISIBLE_DEVICES: [0,1]

  | Name              | Type               | Params
---------------------------------------------------------
0 | model             | DiffusionWrapper   | 859 M
1 | first_stage_model | AutoencoderKL      | 83.7 M
2 | cond_stage_model  | FrozenCLIPEmbedder | 123 M
3 | control_model     | ControlNet         | 361 M
---------------------------------------------------------
1.2 B     Trainable params
206 M     Non-trainable params
1.4 B     Total params
5,710.058 Total estimated model params size (MB)
/home/sd4/anaconda3/envs/control/lib/python3.8/site-packages/pytorch_lightning/trainer/data_loading.py:110: UserWarning: The dataloader, train_dataloader, does not have many workers which may be a bottleneck. Consider increasing the value of the `num_workers` argument` (try 12 which is the number of cpus on this machine) in the `DataLoader` init to improve performance.
  rank_zero_warn(
Epoch 0:   0%|                                        | 0/25000 [00:00<?, ?it/s]/home/sd4/anaconda3/envs/control/lib/python3.8/site-packages/pytorch_lightning/utilities/data.py:56: UserWarning: Trying to infer the `batch_size` from an ambiguous collection. The batch size we found is 2. To avoid any miscalculations, use `self.log(..., batch_size=batch_size)`.
  warning_cache.warn(
Data shape for DDIM sampling is (2, 4, 64, 64), eta 0.0
Running DDIM Sampling with 50 timesteps
DDIM Sampler: 100%|█████████████████████████████| 50/50 [00:35<00:00,  1.39it/s]
Epoch 0:   0%| | 7/25000 [00:49<48:54:16,  7.04s/it, loss=0.0126, v_num=26, trai

any ideas?

What I also noticed is with 2 GPU setup, my cards somehow run to 100% GPU, but actually only around 170W out of 350 or 420 (one has 350 and second 420 W). Also VRAM usage goes only to 6-7 GB instead of 22 when running only on 1 GPU properly. Any ideas what can be wrong? Tried many things yesterday..
update:

just got idea if Conda could be problem? Should I stick with pip venv ? Or CUDA? I have I believe 12.3 with PyTorch compiled for 12.1.

I think I also had a similar issue at some point, but I resolved it easily... Can you check if you have all the GPUs available and visible? Maybe try running the export CUDA_VISIBLE_DEVICES=0,1 command? You problem rings a bell, but I can't recall how I resolved it.

I think GPUs are available properly.. did not tried this export command though as I managed to run successfully simillar tutorial but from Diffusers, which uses accelerate where in accelerate I set 2 gpus and via that it works fine on this machine.. yet I still would like to run this vanilla pytorch tutorial as I dont like diffusers much.. Will try tomorrow when training is done. Thanks for help anyways :)

I think GPUs are available properly.. did not tried this export command though as I managed to run successfully simillar tutorial but from Diffusers, which uses accelerate where in accelerate I set 2 gpus and via that it works fine on this machine.. yet I still would like to run this vanilla pytorch tutorial as I dont like diffusers much.. Will try tomorrow when training is done. Thanks for help anyways :)

HI @blacklig , were you able to run the vanilla pytorch tutorial on multi-GPU setup? I'm facing similar issues.

I think GPUs are available properly.. did not tried this export command though as I managed to run successfully simillar tutorial but from Diffusers, which uses accelerate where in accelerate I set 2 gpus and via that it works fine on this machine.. yet I still would like to run this vanilla pytorch tutorial as I dont like diffusers much.. Will try tomorrow when training is done. Thanks for help anyways :)

HI @blacklig , were you able to run the vanilla pytorch tutorial on multi-GPU setup? I'm facing similar issues.

same issues for me, were you fixed it ?


[WFCORE-769] : Boot errors should hide the failure description if the failing operation is not accessible

Checking the operation that failed to hide or show failure description.
Jira: https://issues.jboss.org/browse/WFCORE-769

Linux Build 2007 is now running using a merge of f2d47cf6915fbfb74feb83adc4427c6f7ba1b77c

Core - Full Integration Build 1147 is now running using a merge of f2d47cf6915fbfb74feb83adc4427c6f7ba1b77c

Windows Build 1554 is now running using a merge of f2d47cf6915fbfb74feb83adc4427c6f7ba1b77c

Windows Build 1554 outcome was SUCCESS using a merge of f2d47cf6915fbfb74feb83adc4427c6f7ba1b77c
Summary: Tests passed: 3210, ignored: 71 Build time: 0:22:29

Linux Build 2007 outcome was SUCCESS using a merge of f2d47cf6915fbfb74feb83adc4427c6f7ba1b77c
Summary: Tests passed: 3210, ignored: 71 Build time: 0:25:17

Core - Full Integration Build 1147 outcome was SUCCESS using a merge of f2d47cf6915fbfb74feb83adc4427c6f7ba1b77c
Summary: Tests passed: 2879, ignored: 377 Build time: 0:46:51

Other than that bit of cruft, looks good.

Windows Build 1555 is now running using a merge of 0f98cb200c2e5636943e0643e83aaa1fa9bff403

Linux Build 2008 is now running using a merge of 0f98cb200c2e5636943e0643e83aaa1fa9bff403

Core - Full Integration Build 1148 is now running using a merge of 0f98cb200c2e5636943e0643e83aaa1fa9bff403

Windows Build 1555 outcome was SUCCESS using a merge of 0f98cb200c2e5636943e0643e83aaa1fa9bff403
Summary: Tests passed: 3210, ignored: 71 Build time: 0:22:25

Linux Build 2008 outcome was SUCCESS using a merge of 0f98cb200c2e5636943e0643e83aaa1fa9bff403
Summary: Tests passed: 3210, ignored: 71 Build time: 0:25:30

Core - Full Integration Build 1148 outcome was FAILURE using a merge of 0f98cb200c2e5636943e0643e83aaa1fa9bff403
Summary: Tests passed: 2687, ignored: 381, muted: 1; exit code 1 (new) Build time: 0:37:19
Build problems:
Process exited with code 1

https://github.com/wildfly/wildfly/pull/7624 is a fix for the full integration test; failure is unrelated to this PR.

retest this please

Core - Full Integration Build 1149 is now running using a merge of 0f98cb200c2e5636943e0643e83aaa1fa9bff403

Linux Build 2009 is now running using a merge of 0f98cb200c2e5636943e0643e83aaa1fa9bff403

Windows Build 1556 is now running using a merge of 0f98cb200c2e5636943e0643e83aaa1fa9bff403

Windows Build 1556 outcome was SUCCESS using a merge of 0f98cb200c2e5636943e0643e83aaa1fa9bff403
Summary: Tests passed: 3210, ignored: 71 Build time: 0:22:31

Linux Build 2009 outcome was SUCCESS using a merge of 0f98cb200c2e5636943e0643e83aaa1fa9bff403
Summary: Tests passed: 3210, ignored: 71 Build time: 0:25:11

Core - Full Integration Build 1149 outcome was SUCCESS using a merge of 0f98cb200c2e5636943e0643e83aaa1fa9bff403
Summary: Tests passed: 2879, ignored: 395, muted: 1 Build time: 0:47:26


Azkaban nested flow fix

Fix for Azkaban flow status for the case of nested flow.

LGTM. Will commit it

Closing after merge


Change to operate git via Libgit2

Libgit2Sharp is not suitable because Libgit2Sharp does not have some API to be used in this repositry like add -N.

Unity crashed when loading LibGit2Sharp native dll probably because Libgit2Sharp is under development and it is unstable.
Revalidate and merge this changes after LibGit2Sharp becomes stable.


Add IIIF manifest as parameter to url

Discussed in https://github.com/jbaiter/pdiiif/discussions/14

Originally posted by andybuki January  6, 2023
Hi Johannes, I want to ask you about the following scenario:
I add to my application page a button that I call PDF generation.

I know the URL of the IIIF manifest, which I want to add at the next step to pdfiiif application.
Can you recommend how to integrate it into Manifest URL?

This is now implemented and live at https://pdiiif.jbaiter.de, thanks for the suggestion @andybuki!


Level-four Markdown headings (####) are visualy indistinguishable from regular paragraphs in Markdown preview

Does this issue occur when all extensions are disabled?: Yes

VS Code Version: 1.66.1
OS Version: Linux x64 5.10.0-8-amd64 (Debian)

Steps to Reproduce:
The following Markdown text:
# foo
Text on level one
## foo
Text on level two
### foo
Text on level three
#### foo
Text on level four
##### foo
Text on level five
###### foo
Text on level six

...is rendered quite inadequately with VS Codes "default" theme (Dark+). Particularly the "level four" heading is really bad since it's basically impossible in the preview to distinguish level-four headings from regular paragraphs of text.

With the One Dark Pro theme (which applies custom CSS to the Markdown preview), it looks much better:

Similar to #148100
These are likely just the default usage agent styles. I'll mark as a feature request if someone has suggestions on making headers more obvious (the font-weight is already different)

:slightly_smiling_face: This feature request received a sufficient number of community upvotes and we moved it to our backlog. To learn more about how we handle feature requests, please see our documentation.
Happy Coding!

This has been an annoyance for the longest of time and I always thought it was a bug, being that small. I think even h3 is too small. One Dark Pro looks a lot better.
As Dark+ is the default, which I assume a lot of users just stick to, it feels like an important feature request.

We try to keep VS Code lean and we think the functionality you're asking for is great for a VS Code extension. Maybe you can already find one that suits you in the VS Code Marketplace. Just in case, in a few simple steps you can get started writing your own extension. See also our issue reporting guidelines.
Happy Coding!

Closing as this can be customized by extensions or by a user markdown style

Agree. This is the wrong decision IMO, please reconsider.

@mjbvz I also agree that this is a wrong decision. This issue comes up again and again. The default experience should be rendering as it is expected, with headings bigger than text. Like the rest of the world does it. Pushing that to an extension seems to be the wrong way. Imho if the user wants the currently not obvious solution, an extension can implement that.


chore: switch to lerna

switch project to lerna
uses a _ version of create-contentful-app to allow publishing under two names
releases automatically upon merging to master (when test passes)
changelogs will be recreated in the individual folders

I might need to make it a fix version (rather than a chore) to test the automatic deployment upon merging to master

Having _create-contentful-app publish create-contentful-app and create-contentful-app publishing @contentful/create-contentful-app confuses me. Can we somehow improve this.
Maybe have folders names create-contentful-app and @contentful-create-contentful-app? 🤔

Having _create-contentful-app publish create-contentful-app and create-contentful-app publishing @contentful/create-contentful-app confuses me. Can we somehow improve this.
Maybe have folders names create-contentful-app and @contentful-create-contentful-app? 🤔

I thought the same initially, but in reality the outlier is the unprefixed package. Are we okay with prefixing everything but one folder? Looks too noisy to me

Having _create-contentful-app publish create-contentful-app and create-contentful-app publishing @contentful/create-contentful-app confuses me. Can we somehow improve this.
Maybe have folders names create-contentful-app and @contentful-create-contentful-app? 🤔

I thought the same initially, but in reality the outlier is the unprefixed package. Are we okay with prefixing everything but one folder? Looks too noisy to me

Probably fine to keep it as we only have three folders. But it initially confused me...
The template package shouldn't bet the _ prefix.

@andipaetzold

Probably fine to keep it as we only have three folders. But it initially confused me...

Sounds good to me, not super opinionated

The template package shouldn't bet the _ prefix.

What do you mean?

Good start but I'm now wondering if there's a way to avoid duplicating a package folder just for avoiding the name parking? i.e: is there  a way to publish packages/contentful--create-contentful-app as both create-contentful-app and @contentful/create-contentful-app

Good start but I'm now wondering if there's a way to avoid duplicating a package folder just for avoiding the name parking? i.e: is there a way to publish packages/contentful--create-contentful-app as both create-contentful-app and @contentful/create-contentful-app

@kdamball I have been looking at that, but I haven't been able to find any OOTB solution. Also, I think re-exporting the same package as the other one is easier to reason about: we won't need to introduce custom publishing logic (as we did before) and we're using standard publishing flow


finetuning sparsified LLaMa

hello. First of all, thank you for sharing your great research.
I am trying to fine-tune the LLaMa-7B model for a specific task after sparsifications.
Is it possible to simply use the saved path via --save option?
Thank you.

Hi, --save saves a HuggingFace checkpoint of the sparse model where sparse weights are exactly 0. In principle, you should be able to use this with an appropriate finetuning script, however if you want to keep the model sparse, you have to make sure that the exactly 0 weights remain 0. A simple way to accomplish this is to store the mask at the beginning (e.g. via p == 0 for each parameter in the saved checkpoint) and then zero out the corresponding weights directly after each gradient update (i.e., optimizer.step()).

Thanks for your reply!
Let me ask you one more question.
Below is the code that outputs the number of parameters for the dense and pruned models.

If their number of parameters are exactly same, is there no advantage of model size?

When I set the sparsity to 0.5, 50% of all parameters are set to zero, but it seems that the 50% of parameters that are set to zero are still involved in the multiplication and addition operations during the forward pass. So is there a computational cost benefit to the pruned model?

Thank you.

Sparsity is one kind of unstructured prune method and it would not change the size of models.
As for the second question, I am interested too. It seems that computational cost benefit is not optimal but the model can be speedup by CUTLASS.
Maybe not correct, looking forward to author's reply

Maybe can use some optimized storage methods to save the sparsity model?  Otherwise, saving the large model will become a problem such as the 175B model.

Now, speedup with CUTLASS is available with Pytorch 2.1. but storage issue is unlikely to be resolved until something else comes along.
Closing this issue.


Error installing gem on Linux Xenial Ruby 3.0/1 AMD64

when Running the tests on travis-ci using Linux Xenial Ruby 3.0/1 AMD64 I get
Could not find gems matching 'tiktoken_ruby' valid for all resolution platforms
(aarch64-linux, arm-linux, arm64-darwin, x86_64-darwin, x86_64-linux-musl) in
rubygems repository

Job logs are here https://app.travis-ci.com/github/MarioRuiz/slack-smart-bot/jobs/620128833

I've mentioned elsewhere that this project is something I don't have the bandwidth to do a ton with, mostly I'm just trying to review PRs when other people fix things and deploy them. Because the original error was about version 0.0.7 which has been out for a bit I'm inclined to guess the issue is pretty specific to your case rather than being something wrong with version 0.0.8 which I just released, but please let me know if you find a root cause?

different issue with 0.0.8 https://app.travis-ci.com/github/MarioRuiz/slack-smart-bot/jobs/620178528


Prl 1304 applicant respondent poc

JIRA link (if applicable)
https://tools.hmcts.net/jira/browse/PRL-1304
Change description
Does this PR introduce a breaking change? (check one with "x")
[ ] Yes
[x] No

Closing as confirmed. not required


Unable to download models

Hi, when running python -m distar.bin.download_model --name rl_model i am getting Operation timed out error. Can you please check if your servers are up?

Web server is out of service, we will recover it soon.
You can download models here, unzip them into distar/bin/
https://drive.google.com/file/d/18y4OuM4ObGydMBLrpzT5po0IJkavlNle/view?usp=sharing


Publish a gitstats for Bazel rules

Possibly a component of #2 - @gregmagolan created https://gregmagolan.github.io/bazel_git_stats/ which is just the gitstats tool run over the bazelbuild org. It has useful data about the code and the contributors, but nothing is keeping it up-to-date.

Pitch: Use a GitHub Bot to collect data
A GitHub Bot to collect release information and activity metrics using Probot, a framework for building GitHub Apps.

Users can install the GitHub Bot from GitHub Marketplace into their repository or organization.
GitHub Apps can listen to GitHub webhook events sent by a repository

GitHub release event
Example
module.exports = (app) => {
  app.on("release", async (context) => {
    // A Bazel rules release was made in the repo, what should we do with it?
    app.log.info(context);
  });
};

GitHub commit event
Example
module.exports = (app) => {
  app.on("push", async (context) => {
    // Code was pushed to a Bazel rules repository, what should we do with it?
    app.log.info(context);
  });
};

As a data endpoint, a Cloud Function could be used, that would take an incoming HTTP request and store the data in Firestore.
To prevent abuse and spam, a repository approval process could be established to verify new installations first, before collecting data.
The GitHub Bot should be seen as the primary building block to collect data using  GitHub webhook events instead of polling the GitHub API from a script.

Yes @kormide has written approximately that same thing already in https://github.com/bazel-contrib/publish-to-bcr


Lazy Listener Error: NoneType

I'm attempting to use the Slack Bolt Python Lazy Listener function to handle the initial ack() and then run a longer process to interact with secondary systems. I've had success without using the Lazy Listener function in just acknlowedging the response and writing back to the initial user, but whenever I introduce the Lazy Listener function in a testing manner I'm routinely encountering the same error
I was using this article as a template for configuring my application.
Reproducible in:
pip freeze | grep slack
python --version
sw_vers && uname -v # or `ver`

The slack_bolt version
slack-bolt==1.18.1
Python runtime version
Python 3.11.6
OS info
ProductName:		macOS
ProductVersion:		14.7.1
BuildVersion:		23H222
zsh: command not found: ver
Steps to reproduce:
(Share the commands to run, source code, and project settings (e.g., setup.py))
import boto3
import json
import time
import os
from slack_bolt import App
from slack_bolt.adapter.aws_lambda import SlackRequestHandler

def get_secret(secret_name):
    # Create a Secrets Manager client
    client = boto3.client("secretsmanager")
    try:
        # Retrieve the secret
        response = client.get_secret_value(SecretId=secret_name)
        # Check if the secret is stored as plain text or JSON
        if "SecretString" in response:
            secret = response["SecretString"]
            return json.loads(secret)  # If the secret is JSON
        else:
            # If it's binary data
            return json.loads(response["SecretBinary"])
    except Exception as e:
        print(f"Failed to retrieve secret: {e}")
        raise e

slack_signing_secret = get_secret('SLACK_SIGNING_SECRET')
slack_bot_token = get_secret('SLACK_BOT_TOKEN')

app = App(
    # process_before_response=True,
    token = slack_bot_token,
    signing_secret = slack_signing_secret)

def acknowledge(ack):
    ack()

def default_message_handler():
    print("Default message handler hit")

## Lazy listener function
@app.action("first_response")(ack=acknowledge, lazy=[default_message_handler])

def lambda_handler(event, context):
    slack_handler = SlackRequestHandler(app=app)
    return slack_handler.handle(event, context)

Expected result:
I expect the ack of the response, and my logging to print the lazy function. However the original message is left unacknowledged with the ability to repeat button responses over and over as the response hasn't been ack'd and the following error is produced rather than my logging showing the printing of the lazy function.
I've verified secrets are returned as expected and that the button id is correct.
Actual result:
[ERROR] TypeError: 'NoneType' object is not callable Traceback (most recent call last):   File "/var/lang/lib/python3.13/importlib/__init__.py", line 88, in import_module     return _bootstrap._gcd_import(name[level:], package, level)   File "<frozen importlib._bootstrap>", line 1387, in _gcd_import   File "<frozen importlib._bootstrap>", line 1360, in _find_and_load   File "<frozen importlib._bootstrap>", line 1331, in _find_and_load_unlocked   File "<frozen importlib._bootstrap>", line 935, in _load_unlocked   File "<frozen importlib._bootstrap_external>", line 1022, in exec_module   File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed   File "/var/task/lambda_function.py", line 50, in <module>     @app.action("first_response")(ack=acknowledge, lazy=[default_message_handler])
Link
[ERROR] TypeError: 'NoneType' object is not callable
Traceback (most recent call last):
  File "/var/lang/lib/python3.13/importlib/__init__.py", line 88, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1387, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1360, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1331, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 935, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 1022, in exec_module
  File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed
  File "/var/task/lambda_function.py", line 50, in <module>
    @app.action("first_response")(ack=acknowledge, lazy=[default_message_handler])

Requirements
Please read the Contributing guidelines and Code of Conduct before creating this issue or pull request. By submitting, you are agreeing to those rules.

Hi, @freyguy!  Looks like you commented out process_before_response=True for your app config, but this is needed for lazy listeners, as seen here.
Let me know if this is causing the issue - if not, we can troubleshoot further!

@freyguy In this case, you don't use the method decorator provided by App. So, your @app.action in your code must be app.action instead.

@hello-ashleyintech thanks for catching that!
@seratch that seems to drive it to the correct function now and am getting expected results printing in my logs, but I'm still not seeing the message acknowledged in the Slack UI. I'm still able to submit the same response as it seemingly hasn't ack'd the message but I'm not getting a timeout error next to the button.

If your lamdba execution takes more than 3 seconds (please check AWS's Cloudwatch logs), the runtime performance needs to be adjusted to complete within 3 seconds. A common cause is a cold-start issue with boto3 SDK like this one: https://github.com/slackapi/bolt-python/issues/950#issuecomment-1692568334 If that's the case, unfortunately there is no workaround on the bolt-python side as boto3 is the bottleneck here. Switching to another solution to load secrets is the only approach I can suggest.

@seratch That should be easy enough to handle with environment variables. Does the lazy function need to also complete within 3 seconds or can that continue to function beyond the 3 second time out for acknowledgement? I'm a bit confused on that portion having read a number of issues folks have had with Bolt/Lambda

Lazy listeners do not need to complete within 3 seconds. I mean the ack argument function must complete in 3 seconds to avoid the timeout error on the Slack UI.


Managing request Failures and Reasons why I would lower capacity

[Enter feedback here]
In the case of high availability,  you state that if all the gateways are at max the request can fail, some link to a guide on how to spot these occurrence for gateway managers would be of help here.
Regarding the processor /mem max limits,   So I can set this to 80 and then the gateway stops receiving requests and it goes to another if available.   Why would I set this ?  All Ive done is reduce the max capacity of this server making it more likely it goes elsewhere or fails,   can you provide details of WHY I would want to do this and risk request failures ?

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

ID: 3609538e-bb86-1026-ddd5-dabe93fddc7e
Version Independent ID: 9dbd2442-7d03-5e24-0882-7a10cb2f71d7
Content: Manage on-premises data gateway high-availability clusters and load balancing
Content Source: data-integration/gateway/service-gateway-high-availability-clusters.md
Product: on-premises-data-gateway
Technology: ****
GitHub Login: @arthiriyer
Microsoft Alias: arthii

Thanks @binaryjam for your dedication to our documentation. Unfortunately, at this time we have been unable to review your issue in a timely manner and we sincerely apologize for the delayed response. The requested updates have not been made since the creation of this issue, and the timeline for resolution may vary based on resourcing, so we've created an internal work item to incorporate your suggestions. We are closing this issue for now, but feel free to comment here as necessary. #please-close


Add syllabics font stack

Syllabics support is weird on a number of devices. Hence, it is best to explicitly specify which fonts work for syllabics. The exact pre-installed font differs on across platforms :( so I've tried to add a font-stack that works for as many platforms as possible.
On devices that do not have any syllabics font pre-installed, I've bundled a CSS @import for Noto Sans Canadian Aboriginal. This font will be downloaded ONLY if the other fonts are unavailable on the system.

Codecov Report

Merging #394 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #394   +/-   ##
=======================================
  Coverage   85.65%   85.65%
=======================================
  Files          68       68
  Lines        2524     2524
=======================================
  Hits         2162     2162
  Misses        362      362

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 cb118ac...616f794. Read the comment docs.


Adds Decorative Image to support non-informative images

Summary

To provide a way to create non-informative images a new sub component DecorativeImage has been added into terra-image.

closes #3396
Partially closes #3079
Deployment Link

https://terra-core-image-accesi-9rbweh.herokuapp.com/components/cerner-terra-core-docs/image/decorative-image
Testing

Tested with Jest Snapshot to ensure alt is empty and aria attributes are ignored for decorative image.
Additional Details

Thank you for contributing to Terra.
@cerner/terra

Since this is an active change that will be a Major Version Bump, can you create a new PR to merge this into the A11y-MVB branch? (https://github.com/cerner/terra-core/tree/A11y-MVB). Our teams stance is that main should be releasable after every commit and right now we are not ready to do a major version release.

Since this is an active change that will be a Major Version Bump, can you create a new PR to merge this into the A11y-MVB branch? (https://github.com/cerner/terra-core/tree/A11y-MVB). Our teams stance is that main should be releasable after every commit and right now we are not ready to do a major version release.

We should be able to just use the Edit button at the upper right of this PR to select A11y-MVB as the base branch and not need to create a new PR.

After discussion, we will create a single feature branch https://github.com/cerner/terra-core/tree/A11y-MVB and merge accessibility stories with breaking changes into this branch and release when we are ready.

I have two comments that need addressing but otherwise it looks good to me


lib.sourceSubdirs: init

Description of changes

Things done
This is really useful for using Nix in monorepo layouts, where you
might have a component build that needs access to multiple
subdirectories of the repository.  Compared to settings "srcs", it's
more convenient, because it preserves the relative
structure (including parent directories), and it avoids unnecessary
rebuilds compared to not filtering for subdirectories.

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
23.05 Release Notes (or backporting 22.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Could you take a look at the file set combinators in #222981? That functionality is very widely applicable and composable. In particular it would be equivalent to
with lib.fileset;
unions [
  ./one/directory
  ./another/directory
]

Or if you want to also import it into the store:
with lib.fileset;
importToStore {
  entryPoint = ./.;
  fileset = unions [
    ./one/directory
    ./another/directory
  ];
}

It would be great to get feedback if this works for your use case. Or if you're seeing a problem with this interface.

It would be great to get feedback if this works for your use case.

I was hoping you'd chime in with a better way! I tried it, but it doesn't look like it works:
error: the string 'gqwi6j6d4l9zs8svwhzwbxnglv3zwzl3-source' is not allowed to refer to a store path (such as '')

       … while evaluating anonymous lambda

       at /nix/store/2pplzbz7d5jmi4mnqmfi7lds5bz2z5hx-source/lib/filesystem.nix:40:6:

           39|     # Nix <2.14 compatibility shim
           40|     (path:
             |      ^
           41|       if ! pathExists path

       … from call site

       at /nix/store/2pplzbz7d5jmi4mnqmfi7lds5bz2z5hx-source/lib/fileset.nix:494:8:

          493|     in
          494|     if pathType entryPoint != "directory" then
             |        ^
          495|       # This would also be caught by the `may be influenced` condition further down, because of how files always set their containing directories as the base

       … while evaluating 'importToStore'

       at /nix/store/2pplzbz7d5jmi4mnqmfi7lds5bz2z5hx-source/lib/fileset.nix:453:19:

          452|   */
          453|   importToStore = { name ? "source", base ? entryPoint, entryPoint, fileset }:
             |                   ^
          454|     let

       … from call site

My entryPoint is the result of lib.cleanSource, so it's itself a store path.  It seems like unlike cleanSource, the filesystem stuff doesn't compose — it should just merge the filters like cleanSource does, because otherwise even if you can fix the reference problem there'll be a redundant intermediate copy.

@alyssais Thanks for the feedback!
On one hand, the lib.fileset functions should be able to fully replace lib.sources, but safer and with better composition! So the idea would be to instead write a lib.fileset.clean, and use that instead of lib.sources.cleanSource. I haven't pushed such a function to the PR yet, limiting it to just the core functionality for now, but it can very much be implemented and I should do that at some point.
However you also made be realize that it is very much possible to convert lib.sources-produced values to be used in lib.fileset (not the other way around though!), which I now implemented, including better error messages when you use lib.sources-produced values with lib.fileset when necessary.
Could you give the same code another try with the updated PR?

lib.fileset.unions is now merged, so this is now supported:
lib.fileset.toSource {
  root = ./.
  fileset = lib.fileset.unions [
    ./host/rootfs
    ./scripts
  ];
}

@infinisil sorry I never got round to retesting, but I still don't think it works for what I want to do — unless I'm mistaken there's still no way to use filesets with the result of lib.cleanSource is there?

@alyssais Good point, indeed that's not yet possible. In the WIP PR https://github.com/NixOS/nixpkgs/pull/222981 there's a lib.fileset.fromSource which allows that. I'll add this to my TODO list.
Though note that for the future it would be great to have a fileset-based lib.cleanSource instead though.

Now opened https://github.com/NixOS/nixpkgs/pull/261732 for this, I should be able to polish that soon


⚠ Spryr has degraded performance

In 70440ac, Spryr (https://spryr.com) experienced degraded performance:

HTTP code: 200
Response time: 7425 ms

Resolved: Spryr performance has improved in 102f92e after 9 minutes.


Allow manual triggering of benchmark and nessie CI workflows

These are not hermetic, re-triggering makes sense.

Not sure what you're aiming for. You can rerun a workflow today (Actions -> Nessie -> Picking a run -> "Re-run jobs".
IIUC this workflow_dispatch will allow you to trigger them for master branch, but you can still get that by re-triggering that job.

Not sure what you're aiming for. You can rerun a workflow today (Actions -> Nessie -> Picking a run -> "Re-run jobs".
IIUC this workflow_dispatch will allow you to trigger them for master branch, but you can still get that by re-triggering that job.

Insufficient traction to do this.  Will try again when we have more CD.


[Doc] update dev cheatsheet

Description
Pushed to the wrong branch.
Test Plan
CI

If your changes are not user-facing and not a breaking change, you can skip the following section. Otherwise, please indicate what changed, and then add to the Release Notes section as highlighted during the release process.
Type of Change (Check all that apply)

[ ] protocol change
[ ] user-visible impact
[ ] breaking change for a client SDKs
[ ] breaking change for FNs (FN binary must upgrade)
[ ] breaking change for validators or node operators (must upgrade binaries)
[ ] breaking change for on-chain data layout
[ ] necessitate either a data wipe or data migration

Release notes

Btw why do we need to push doc changes to docs-mainnet?


fix: FluentDataGrid column resize doesn't work if grid contained in a relatively-positioned container

🐛 Bug Report
If a <FluentDataGrid/> is placed inside a relatively-positioned element (for example), then column resizing doesn't work properly. This is because the pointer position is relative to the viewport, but the calculation of the left edge of the column is relative to the positioned element.
There are other minor issues with resizing. In particular, the resize cursor flickers as you're dragging it.
💻 Repro or Code Sample
It should be very easy to create a repro. In fact, you can just go to the component demo page and change one of the container elements to be position: relative.
🤔 Expected Behavior
When you click-and-drag a column resize handle, the right-hand edge of the column should track the horizontal position of the pointer (e.g. mouse cursor).
😯 Current Behavior
In the scenario described, when you initially press down on a column resize handle, the column becomes very wide, and it continues to be offset from the horizontal position of the pointer.
💁 Possible Solution
Here is some code that fixes the issue (including other minor issues, such as the resize cursor flickering):
function enableColumnResizing(gridElement: GridElement) {
    const min = 50;
    const columns: {header: HTMLElement, size?: string }[] = [];
    let headerBeingResized: HTMLElement | undefined;
    let resizeHandle: HTMLElement | undefined;

    if (gridElement === null) {
        return;
    };

    gridElement.querySelectorAll('.column-header').forEach(header => {
        columns.push({
            header: <HTMLElement>header
        });

        const onPointerMove = (e: { clientX: number }) => requestAnimationFrame(() => {
            console.log(`onPointerMove${headerBeingResized ? '' : ' [not resizing]'}`);

            if (!headerBeingResized) {
                return;
            }

            const gridLeft = gridElement.getBoundingClientRect().left;
            const headerLocalLeft = headerBeingResized.getBoundingClientRect().left - gridLeft;
            const pointerLocalLeft = e.clientX - gridLeft;

            const width = pointerLocalLeft - headerLocalLeft;

            const column = columns.find(({ header }) => header === headerBeingResized)!;
            column.size = Math.max(min, width) + 'px';

            // Set initial sizes
            columns.forEach((column) => {
                if (column.size === undefined ) {
                    column.size = column.header.clientWidth + 'px';
                }
            });

            gridElement.gridTemplateColumns = columns
                .map(({ size }) => size)
                .join(' ');
        });

        const onPointerUp = () => {
            console.log('onPointerUp');

            headerBeingResized = undefined;
            resizeHandle = undefined;
        };

        const initResize = ({ target, pointerId }: { target: EventTarget | null, pointerId: number }) => {
            console.log('initResize');

            resizeHandle = <HTMLElement>target;
            headerBeingResized = <HTMLElement>resizeHandle.parentNode;

            resizeHandle.setPointerCapture(pointerId);
        };

        const dragHandle = <HTMLElement>header.querySelector('.col-width-draghandle');
        if (dragHandle) {
            dragHandle.addEventListener('pointerdown', initResize);
            dragHandle.addEventListener('pointermove', onPointerMove);
            dragHandle.addEventListener('pointerup', onPointerUp);
        }
    });
}

Thank you! Unfortunately, I'm not getting a good resizing experience with this script. Probably because I had to convert it from TypeScript to JavaScript. Can you post a ready-to-paste js version of this code?

Wow, that's fast. Thanks!

Thank you! ~Unfortunately, I'm not getting a good resizing experience with this script. Probably because I had to convert it from TypeScript to JavaScript. Can you post a ready-to-paste js version of this code?~
This will be implemented in v2.4.3 and v3

Do you have a timeline for full v3 release?

Somewhere in the next few weeks, I hope


[RFC][DNM] Porting LoRaMAC-node project  to zephyr

Recently, I'm try to use Semtech SX1278 radio chip to do something. But zephyr didn't support LoRaWAN so far.
So, I'm trying to porting the LoRaMac-node project (https://github.com/Lora-net/LoRaMac-node) to zephyr just for my self use ONLY, but no plan to contribute this work to zephyr community.
Here are some previous conversations https://github.com/zephyrproject-rtos/zephyr/issues/4569 . I took
suggestions from @tbursztyka , try to make this patch easy to somebody else to finish this work.
And LoRaWAN may will be zephyr's major components in the future, see https://github.com/zephyrproject-rtos/zephyr/issues/5436
I decide to open this PR so every body can see it, may helpful for zephyr feature development on LoRaWAN support.

sorry, I'm confused - will this ever be merged? I'm starting to work with it and add RN2483... and it would be great if I knew how to prepare to contribute it later

@derchrismakaio : Unfortunately the author of this PR did not update it and closed it. Nothing prevents you to take over the work already done, apply the requested changes above, and create a new PR from it. Would be nice to get that into zephyr.

Hi @derchrismakaio , I'm no longer contribute LoRaWan to zephyr any more, due to some reasons. I'm sorry to confirm that this PR will never be merged. But you can create a new PR from this or write it from scratch to contribute to zephyr as @carlescufi mentioned, that would be very nice.

Alright, I‘ll give it a try.
What should happen to the LoRaWan-node repo?
Should I fork it with our company account to be used with zephyr? How to link our repo then?

Brilliant!

What should happen to the LoRaWan-node repo?

I believe that the repo is 3-clause BSD, and so it can only live in Zephyr's ext/ folder. Typically we maintain unchanged external repos there, so if you need a "fork" with changes you either submit them upstream to the loramac-node repo or we create one under Zephyr's GitHub account.

I tried to put it in ext/ but problem is that I have to override the CMakeLists.txt.
I thought I could do it from within subsys/lorawan/CMakeLists.txt via
add_subdirectory_ifdef(CONFIG_LORAWAN ${PROJECT_SOURCE_DIR}/ext/lorawan)
but that would require a binary_dir
Alternative - if good practice: I could restructure the directories like this...
ext/lorawan/

(our) CMakeLists.txt

ext/lorawan/LoRaMac-node

the untouched LoRaMac-node repo

@SebastianBoe would you mind replying to this comment

@derchrismakaio I would probably go with the alternative you mention, seems cleaner to me.

@derchrismakaio Don't know if it is of any help but cmake has support to import external projects and it is already used in zephyr (e.g. zephyr/subsys/net/lib/openthread/CMakeLists.txt)

I tried to put it in ext/ but problem is that I have to override the CMakeLists.txt.

See ext/lib/ipc/open-amp for how this has been done before.
Seems that it the second alternative that has worked well before.

Don't know if it is of any help but cmake has support to import external projects and it is already used in zephyr (e.g. zephyr/subsys/net/lib/openthread/CMakeLists.txt)

ExternalProject (recursively invoking build systems) should only be done when it is infeasible to integrate/port the build system. I'm not familiar with LoRaMac so I can't speak to what should be done with it.

@SebastianBoe this is actually what I did when I started to work yesterday ;)
I'm not sure what should go to subsys though.
What's the best way to post code excerpts here?
I've constructed (well, copied it from the lib) some sort of an interface which defines the Radio functions (RadioInit, RadioGetStatus, etc)
I guess the LoRa radio drivers will be separate from ext and subsys but included in drivers/lora eg
And these drivers could "implement" the Radio interface. And AFAIK that's what the subsys is for (telling from having a short glance at the bluetooth stuff, but I'm not sure).
Please also note that I'm still new to C/CPP (1yr experience only) and natively I'm rather the C# guy, so I will need a lot of review and guidance - apologies for that!

urgh, okay, I've built the skeleton but it lacks implementation, of course.
We (as company) won't need the actual LoRaMac-node repo because we're using Microchip's RN2483 which already has the MAC implementation. But I think it would be great to keep both in mind: LoRa devices and LoRaWAN devices (I don't like the MAC as it doesn't really distinguish between both device classes, what do you think?).
So here's my concept:
Interfaces
subsys/lora/lora_radio.h (which can then bridge to LoRaMac-node repo which is prepared)
subsys/lora/lorawan_radio.h (which implements the LoRaWAN stuff)
I recommend moving from lorawan dir to lora (because that was what was really confusing me).
As most LoRaWAN devices (like the RN2483) bring both layers, I'd try to implement both but with focus on LoRaWAN.
Drivers
drivers/lora/rn2483.h for the actual modem implementation of RN2483
Shell
As there are things to setup before one can start working with the modem (like device keys, etc), I'd create a lora_shell.c in drivers/lora/ and take @mike-scott modem_shell.c as a starting point
Setup
I'm still wondering how the device setup should happen. For example, for me the relation between board and (peripheral) device is flexible. @mike-scott did put the modem device fixed on a bus for the pca10056 which I understand and which works. But it gave me a hard time when just starting.
The RN2483 has some GPIO pins which are not specific to LoRa, so I would add them in drivers -> lora -> RN2483 to be filled out. But what I really liked was the possibility to select a bus. The RN2483 is an UART device and our board (based on nRF52840) exposes two UART drivers. Is there a way to make menuconfig let me choose between the activated UART drivers? Maybe even independent from the board? So if a board with only one UART is selected, I can only choose UART0? With independent I mean here, that I don't want to put a lot ifs in the Kconfig a la "select UART_MCUX_2 if BOARD_FRDM_K64F"
Shouldn't all boards just simply expose UART0, UARTE0, UART1, UARTE1 if available? I can see that the DTS of PCA10056 does it with
#define CONFIG_UART_0_NAME		NORDIC_NRF_UARTE_40002000_LABEL

Is there a way to make menuconfig let me choose between the activated UART drivers?

If the activation is done through Kconfig, and not DT, then yes. It sounds like you would need a choice statement. If the activation is not available in Kconfig you would need to duplicate the information in Kconfig, this is a workaround to https://github.com/zephyrproject-rtos/zephyr/issues/7302
See https://github.com/zephyrproject-rtos/zephyr/pull/9499#issuecomment-413843552 for how to have a selection of options with the default selection being affected by the board choice.

What's the best way to post code excerpts here?

This is an old PR. What I would suggest is that you create a new PR with a basic proof-of-concept and then people will be able to comment inline.

@derchrismakaio Would you mind loop me in when you create an new PR of this?

@miyatsu of course I'll do, but keep in mind that I won't focus on the MAC layer (which I think you need)

@chris-makaio Did you get time to create a new PR out of this? I'm also working on LoRa node for one of our 96Boards and might get along with you. Please let me know!

@Mani-Sadhasivam I didn't create a new PR on this yet because I'm working on different drivers currently, but will need LoRa modem drivers in future. I'm happy to discuss things


Aqara Magic Cube - Inverted behavior

Blueprint filename
zigbee2mqtt_aqara_magic_cube.yaml
The problem
Hello.
I was using your Z2M blueprint for Aqara magic cube for a very long time, the old one with just "_action" entity required.
Thank you for that it's simple and easy, exactly what i need in my use case.
Anyway I was forced to make some changes on Z2M which included channel switch and repairing all devices.
Unfortunatelly I think because of change in MQTT naming convention inside HomeAssistant after repairing the Aqara cube the old blueprint no longer works. I tried of course move to new blueprint with also "side" entity required but the actions defined seems at least from my point of view inverted.
What I mean i have defined simple flip actions which is basically all I need for simple light controlling.
For example flip cube to side 0 has defined action to turn off all lights in one room.
Flip cube to side 1 has action to turn on specific light.
Now what is actually happening. When I flip the cube from side 0 to side 1 nothing happens.
Then if I flip back from side 1 to 0 the light defined in action for flip to side 1 is turned on.
Step three if I again flip from side 0 to 1 the light is turned off.
What I think is that there is some problem with handling or reading states from variables correctly.
In other words the automation actually reacts when you are flipping "from side" not "to side".
Also I tried other action like rotate with side 1 up and that worked as expected so I am guessing only flip actions are affected.
I tried to figure this out by myself but I am not a template master so I would really appreciate your help.
What version of Home Assistant Core has the issue?
2024.5.5
Home Assistant log
No response
Additional information
No response

Okay update.
I deep dived into that once again and found that "_side" entity is not updated fast enough
and when the automation starts declaring variables it still takes the old value for "side variable".
So I tried to move the variables declaration right before the flip choose action as shown below to get some more miliseconds of time for the entity to update but it didn't worked for me so I suggest it still was't fast enough.

conditions: '{{ event == "flip180" or event == "flip90" }}'
sequence:

variables:
side_entity: !input side
side: '{{ states(side_entity) }}'
choose:

conditions: '{{ side == 0 }}'
sequence: !input flip_side_0
conditions: '{{ side == 1 }}'
sequence: !input flip_side_1
conditions: '{{ side == 2 }}'
sequence: !input flip_side_2
conditions: '{{ side == 3 }}'
sequence: !input flip_side_3
conditions: '{{ side == 4 }}'
sequence: !input flip_side_4
conditions: '{{ side == 5 }}'
sequence: !input flip_side_5

Finally what I found as working so far and hope it will still work in future was to add before variables declaration a simple wait for trigger like this:

wait_for_trigger:

platform: state
entity_id: !input side
continue_on_timeout: false

Now everything is working again exactly as expected.

Hi, thanks for raising this issue and proposing a potential fix!
I'm only using 1 of my 2 cubes and have it defined here: https://github.com/golles/Home-Assistant-Config/blob/main/automations/logeerkamer/cube.yaml
I'll need to double-check it that still works, as I'm not using that very often

No problem and thanks for zour response
.
As I mentioned I have reworked whole Z2M network so the new pairing of the cube is probably a bit different than before
which could lead to some additional miliseconds for changing the side entity value.


#3973: Persist scroll position when tab notebooks

Fixed the issue of loosing scroll position when we tab away from notebook. Please see below screenshot. I guess we can push it for March release if approved since it will improve user experience.

A few notes since I've worked on scroll position saving for query results before:

Tabbing between two of the same type of editor tabs (notebooks) is handled differently than tabbing between two different editor tabs (e.g. notebooks and query editor) so make sure to try out both
This stuff tends to break frequently especially during VS Code merges. Your code looks cleaner than query editor's but it's worth testing it and thinking about how to test it in a way that is as resilient to VS Code changes as possible

Code looks good to me but I haven't been working on notebooks

A few notes since I've worked on scroll position saving for query results before:
Tabbing between two of the same type of editor tabs (notebooks) is handled differently than tabbing between two different editor tabs (e.g. notebooks and query editor) so make sure to try out both
This stuff tends to break frequently especially during VS Code merges. Your code looks cleaner than query editor's but it's worth testing it and thinking about how to test it in a way that is as resilient to VS Code changes as possible
Code looks good to me but I haven't been working on notebooks

Thanks Matt for your comments. I have tested toggling b/w notebooks and query editors , I don't see any issues. Moreover, since this fix is handled in notebook.component ther may not be any issue with vscode merge as well.


Unit Test Minor Code Cleanup

Description of changes:
Removing unnecessary lines of code from unit test code. We should also see code coverage increase to a more correct measurement once https://github.com/aws-robotics/travis-scripts/pull/61 is merged.
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

@mm318 Nice! with https://github.com/aws-robotics/travis-scripts/pull/61 we're at 58%: https://codecov.io/gh/aws-robotics/tts-ros2


Update Kiali

Kiali currently run with version 0.14 which is 6 months old, which apparently lack Jaeger opentracing.
Any plan to update Kiali version?

Thanks, before we were running into a problem upgrading kiali versio. Will look into it.

Use this issue to track the work to update all system components to latest version in rio.

v0.5.0 has been shipped with latest kiali corresponding to 1.2.5 istio release.


TypeError: murlock_1.MurLockService.unlock is not a function

When using the service in NestJS:
import { MurLockService } from 'murlock';
...
await MurLockService.lock('function1');

I get this:
TypeError: murlock_1.MurLockService.unlock is not a function
version 1.2.1

@ahtinurme Hi, directly usage of MurLockService and documentation for that not clear I agree. I'll make a improvement for that, fyi.


Mattermost does not load

Hi.
I've got an issue when enabling the plugin (version 0.3.0, Mattermost Server 5.3.1).
If the plugin is enabled and my last open frame was a direct conversation (direct message) Mattermost does not load and return either an endless reload-logo or a white screen with the following error message in serverlog.
{"level":"error","ts":1538031098.2145174,"caller":"web/context.go:60","msg":"msg: Uncaught TypeError: Cannot read property 'teammate_id' of undefined row: 36 col: 80813 stack: TypeError: Cannot read property 'teammate_id' of undefined url: https://<mydomain>/static/main.b6fa9dc5068008e05ea5.js","path":"/api/v4/logs","request_id":"kiiwngti3bfixrmqcr1eipbiwy","ip_addr":"<my IP>","user_id":"h4asn9zdk389i8gr9sefaeyzoc","method":"POST","err_where":"client","http_code":0,"err_details":""}
If i disable the plugin everything works/reloads fine. This does only occur if your last active frame was in DMs. A restart of the app or restart browser does not solve the problem.
Regards
Steve

Hi @sraupach ,
can you share a bit more about your setup? I was unfortunately not able to reproduce your issue. I did the following steps:

open Mattermost 5.3.1
navigate to a private message
close mattermost window
reopen mattermost by going to its general url (say mattermost.domain.com)

For me Mattermost loads as expected.
There is one known issue though, that when you go into the system console and then back to your team there is a javascript error thrown (and you only see a grey page). This can be resolved by simply reloading Mattermost (ctrl + r). We knew if this error but rather wanted to have something compatible with 5.2+, than wait for a fix of this case.

hi @fbartels ,
ok, what you can try is communicate in a direct message and CRTL+R. I use the Mattermost App (Version 4.1.2 (<IP_ADDRESS>)). I will check if there is a newer client and try to reproduce again. Maybe i can make a small video or something like that(if it helps you).
Our Setup is pretty simple. NGINX -> Mattermost Cluster (2 nodes) -> DB-Server. In my testing i disabled one node to make sure that its not a cluster issue or something like that. NGINX only redirects to active/open mattermost server.

Hi @sraupach,

what you can try is communicate in a direct message and CRTL+R.

yes, this is exactly what I tried, but at least in Chrome 69 this does not trigger an error.

I use the Mattermost App (Version 4.1.2 (<IP_ADDRESS>))

is that the Mattermost Desktop app?

Hi @fbartels
Ok, i am using the Mattermost Desktop App & Firefox 63.
Its a Mattermost Enterprise Cluster.
Regards
Steve

Hi @sraupach,
hmm maybe that then really is connected to the cluster setup. I've asked in https://pre-release.mattermost.com/core/pl/wjbpxs5i73d73nnoecrwbpywty if someone else with a cluster gets the same error and if there is an easy way to deploy such a cluster for dev purposes.

Hi @sraupach,
I have looked into the required steps to setup a cluster in Mattermost, and sadly it does not seem like this is something you can setup within a few minutes of time. I've checked with our current customers and none of them are planning to use our plugin with the HA functionality of Mattermost, which makes it hard for me to justify the work needed to further investigate this.
Seeing that you use the Mattermost Enterprise I guess you are planning to use this plugin in a corporate environment? If that is the case I would suggest to get in contact with us at<EMAIL_ADDRESS>to see if we can work out an agreement to further look into this issue on your behalf.
Until then I'm labeling this issue as "help wanted" to signal that even though this is not a priority for us, we will gladly review any outside pull requests that aim to fix this issue.

Hi @fbartels
Actually the setup of a cluster is easy and doable in a few minutes for sure. Anyway..i am testing with one node disabled so the behavior of Mattermost is like a standalone installation. I am pretty sure that issue is not Cluster related.
The "cannot read property of teammate_id" error does occur if the plugin is disabled. I did not watch what you have changed to be compatible with Mattermost >5.2 but you are sure that there is no referenz to teammate_id?
thanks

Same to me: TypeError: Cannot read property 'teammate_id' of undefined
Mattermost Desktop on Windows10

This plugin is now discontinued. We recommend to use Kopano Meet instead (which currently has no integration with Mattermost, though).