Solve Spaceship Shuffle

Appreciate your contributions, those were hard questions!

Appreciate your contributions, those were hard questions!

 This repo helped me a lot with solving AIO problems as well :)


error while using decontX on seurat data (count object)

Hello,
when I try to run the decontX funtion on my seurat data I raise an error:
> library(celda)
> te=decontX(m0.05[["RNA"]]@counts)
--------------------------------------------------
Start DecontX. Decontamination
--------------------------------------------------
Error in storage.mode(counts) <- "integer" :
  no method for coercing this S4 class to a vector

do you have any clue where the error comes from ?
Is it due to my environment ? or is it it an issue with decontX ?
my R version 3.6.3
and the package have been install from BioConductor with error
Thank you
Mathieu

This is likely to be the unmatched data-type in the assay from the sce object.
you can try to convert the matrix as basic "matrix" class.
Can you try this before you run DecontX
SummarizedExperiment::assay(sce, "counts") <- as.matrix(assay(sce, "counts") )

Hi @mbourgey, I think if you upgrade to the newer version of decontX in R 4.0, it will fix this automatically. For the older version in R 3.6, if you are trying to use the counts from a Seurat object, you can try the following:
counts <- as.matrix(m0.05[["RNA"]]@counts)
storage.mode(counts) <- "integer"
result <- decontX(counts)

Thank you Joshua,
it have worked but not for very large counts matrix.
I'm currently updating my R to switch to version 4 and I will try the latest version on the celda package.
I also have trouble to interpret and analyze the results of DecontX I generate with this verison as the documention and vignette does not seems to match to the older version.
As a last question if I want to bring back the decontaminated result to Seurat what are you suggesting ?
Thank you
Mathieu

Hi @mbourgey, you can use decontaminated count matrix from DecontX to run Seurat as exactly how you used it on the original count matrix. As DecontX only removes contaminated transcripts, and doesn’t do any normalization or transformation, the decontaminated count matrix is then the cleaner version of original counts.
In terms of code (before) using Seurat, if there is specific integer data type required by Seurat, you will need to round the decontaminated count matrix first:
decontaminated_counts <- round(decontaminated_counts)

Thank you very much


Automated cherry pick of #1550: fix purge aliyun account error by lbbg

Cherry pick of #1550 on release/2.9.0.
#1550: fix purge aliyun account error by lbbg

Codecov Report

:exclamation: No coverage uploaded for pull request base (release/2.9.0@5f91f89). Click here to learn what that means.
The diff coverage is 0%.

@@               Coverage Diff               @@
##             release/2.9.0   #1557   +/-   ##
===============================================
  Coverage                 ?   7.69%
===============================================
  Files                    ?     336
  Lines                    ?   53937
  Branches                 ?       0
===============================================
  Hits                     ?    4149
  Misses                   ?   49401
  Partials                 ?     387

Flag
Coverage Δ

#aFlag
7.69% <0%> (?)

Impacted Files
Coverage Δ

pkg/compute/models/regiondrivers.go
20% <ø> (ø)

pkg/compute/models/cloudproviders.go
1.22% <ø> (ø)

pkg/compute/models/purge.go
0% <0%> (ø)

pkg/compute/models/loadbalancerbackends.go
2.28% <0%> (ø)

pkg/compute/models/loadbalancers.go
1.75% <0%> (ø)

pkg/compute/models/loadbalancerlisteners.go
1.4% <0%> (ø)

pkg/compute/models/loadbalancerbackendgroups.go
2.27% <0%> (ø)

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 5f91f89...9963392. Read the comment docs.

/lgtm
/approve


ProjectGuid is obsolete and cannot guarantee a unique project instance

MS drops support of the ProjectGuid in their projects files.
Means that some project files may not provide this at all. And as a result, it cannot guarantee a uniqueness on this basis anymore.
https://github.com/3F/DllExport/issues/36#issuecomment-320794498
https://github.com/3F/vsSolutionBuildEvent/issues/40
MvsSln still can provide a unique ProjectGuid because it uses data from .sln file and its project files.
However, it still will not guarantee a normal work with project instances through MBE.
Alternative is
Full path to project file is a unique identifier for today. Therefore, we need to review some parts of our code that was based on ProjectGuid when working with projects (some filters, collections, and so on).

Any citation for the removal by Microsoft....  In the general sense, absolute path does not identify a unique project (i.e. the same project could be cloned into multiple repositories).

Any citation for the removal by Microsoft....

Ask Claire Novotny (Microsoft employee; .NET Foundation Executive Director, and PM on the .NET Team)
with whom I had a discussion in mentioned issue above.

In the general sense, absolute path does not identify a unique project (i.e. the same project could be cloned into multiple repositories).

What do you mean for "cloned into multiple repositories"? Please some example.

Thanks. I will reach out to Claire (whom I already know) to see if the information has been published and available so I can easily refer people to authorized source...I know of much tooling that depends on these Guids...
As for Repos and Clones....
I could....
a) go to my C:\foo\A directory and do a "git clone https://github.com/3F/MvsSln" resulting in C:\foo\A\MvsSln...
b) go to my C:\foo\B directory and do a "git clone https://github.com/3F/MvsSln" resulting in C:\foo\B\MvsSln...
Now there are two clones of the repository (this is the simplest, but there are many more realistic yet complex examples -- perhaps a .csproj file that is published as part of two different repositories - perhaps one on GitHub and also on Azure Devops)..
In any case, "C:\foo" will now contain 2 of every unique .csproj.... but they "couples" will not have the same full path...

I see. But in fact your case represents exactly a unique project instances that we really need as a feature.

In any case, "C:\foo" will now contain 2 of every unique .csproj.... but they "couples" will not have the same full path...

This case, however, is slightly different (as I see it) from initial ProjectGuid feature (I will keep naming an original property as a feature) and completely identical to DllExport problem in the past. And this is how it was resolved https://github.com/3F/DllExport/blob/e9b20af53dc84814f1bb94d4ef52c9605b94122e/Wizard/Project.cs#L83
(this is your case too)
ProjectGuid (again in my opinion) just adds unnecessary complexity leading to possible errors (copy-paste etc.).
But of course VS and MSBuild worlds are too different, here's example https://github.com/3F/MvsSln/issues/25#issuecomment-617956253


[thci] fix THCI issue on Thread Dev Harness 1.1

Fixes #6738.

@JaneFromSilabs Please take a look.


Expression node for visual shaders

Fix #22243
This is Expression node proposal - with this power you can create almost anything in Visual Shaders.

You can add any number of input and output ports. You can also resize this node by dragging right bottom corner, if your expression is huge - otherwise it also have a scrollbar.
Remarks

The expression node(VisualShaderNodeExpression) is derived from new VisualShaderNodeGroupBase - the base class for this and the Groups/Comments (in future).

Of course I checked the saving/deleting/removing/duplication for new type of node and its ports(this takes a ton of time). It may still contains some implicit bugs but overall it's stable.

Currently, this node does not have an ability to rename - I think this ability should be added to GraphNode first. I prefered to not modify core components in this PR - only the parts for visual shader.

Created output ports are initially setted to its default value(0.0 for scalar, vec3(0.0,0.0,0.0) or identity matrix for transform).

We talked in Discord.

There's problems with margins in the node.
Remove the build button and remove it with a count down timer.

08:41:08reduzjust make a timer
08:41:41reduzevery time the expression changes, start the time (so you dont let it timeout while user is typing) make it like 0.5 second
08:41:46reduzthen it timeouts, it applies it
08:41:53reduzI mean a Timer node
08:42:15reduzthis way it wont rebuild while typing

Nice!

@iFire

There's problems with margins in the node.

Yeah, currently it's impossible, this requires to modify the GraphNode.. will work on this tomorrow, maybe it's required additional PR

Remove the build button and remove it with a count down timer.

Fixed

Typing enter on the port input and port output does not confirm the creation of the port.

Typing enter on the port input and port output does not confirm the creation of the port.

Done, also setted default size for created expression node to (200, 150)

Added syntax highlighting

@iFire I've added some kind of margin to it by modify the size of adjanced label(I didnt found the other way to do it sorry)

@iFire I've added some kind of margin to it by modify the size of adjanced label(I didnt found the other way to do it sorry)

Get rid of update_graph which emitted every time the extension is changed(while still update the shader itself) - this should increase performance + removed some bugs..

Awesome!!!...Is there any way to key shader- input in animation graph

@gamergamesz Its a subject for another issue, I think you can only apply these key to uniforms due to the nature of shaders.

I can't see any part of visual shader getting keyed, Spatial shader can get keyed so i thought there  might be a way to key visual shader too.

I can't see any part of visual shader getting keyed, Spatial shader can get keyed so i thought there might be a way to key visual shader too.

Ah, then its not implemented yet, I suggest to search for similar issue or create a new one - because this issue is not related to this - its an Expression node feature proposal

Replaced backet button with new popup - where you can modify type and name of the port

I wonder how:
[Vector] [cx]
[Change Port] [Delete Port]
Looks.
What do you think?

Like so ?

Even better, yes. Now remove the button and change the port name label into a button that can be clicked to bring it up instead.

The expression code editor should use the monospace/"source" font, like the script and shader editors.

@Calinou Like so ?

@Chaosus Yes :slightly_frowning_face:
I'm not sure if we should use the font size defined in the editor settings, or derive  a font resource with a slightly smaller size (like size - 1, which would make it 13 by default).

Need to take a break, @Megalomaniak About your idea with button - Is there is any example of how it can be looks like ?

Ideally a LineEdit would be the best according to my own preference: Click on the port name and you can just change it's name, hit enter to apply name change. After clicking on the name as the LineEdit is editable/visible the floating panel with the port type selector and delete button would also appear, note that this way no field for name change would be needed in floating panel.
Not sure that the change port button should be needed either.
And that is what I was going to originally recommend, however I realized that making it a button might just be more inviting for a new user to press it and find out what can be done there.

Also I think the plus buttons on either side could be renamed respectively add input and add output.

Though honestly perhaps the inputs and outputs should simply be defined by the expression/snippet? As it is you are going to be introducing odd/new UI/UX designs here that are used nowhere else in godot AFAIK.

I think, the Change button could be safely removed and any change in that LineEdit will rename the port accordingly, same for type. I dont think that clicking on label is worth enough to be implemented - it's not a frequent operation anyways.

Also I think the plus buttons on either side could be renamed respectively add input and add output.

I prefer to leave them as plus buttons for compactibility + they are already have a tooltips

Though honestly perhaps the inputs and outputs should simply be defined by the expression/snippet? As it is you are going to be introducing odd/new UI/UX designs here that are used nowhere else in godot AFAIK.

Well maybe I dont using other programms which using expressions..
The purpose is to simplify the code. If I do it in your way - the new users will need to write a list of input and output nodes inside expression(probably with "in" and "out" prefix keywords). Also by doing so I need to rewrite major part of the code which took a long time. I can do it only if @reduz will say yes.

Yeah, I don't actually mind seeing some extra/new UI/UX conventions added and I think this case is fairly good, but if it is added it also creates a precedent to consider doing similar things elsewhere throughout the editor. Thus it's worth considering if it's really worth doing and how to best go about it. :)

So the cons are

More confusion to newcomers
More text need to be written even for simple tasks
Additional (and big) parser step

and pros are

Can be copy-pasted to other expressions to immediatly create input and output ports
Less clumpy UI by removing ports settings buttons
Conformity with other programs where expressions are exist

I don't know if it is possible but I agree with @Megalomaniak too.

Click add port and it'll add a left or right port with a placeholder.
Click on the port name and it is converted you can change it's name, hit enter to apply name change.
The delete button is always available in the ui, note that this way no field for name change would be needed in floating panel.

In my next post will be a mockup.
See my original design.

Here's a mockup.

@Chaosus Sounds about right, yeah.
The first two cons would be just cons for newcomers who have never written shaders by code, though for those already familiar with shader languages - I don't think they would even register as cons.
Additional pro(with it's own caveats) could be if the inputs are produced by shader uniforms so that you could just load someone elses shader as an expression. Could be context sensitive so when loaded into an expression node in fragment section/editor it would read/load the fragment part of that shader only? Cons would be that users unfamiliar might end up loading extremely large shaders, and overall the parser would likely have to be more complex too(so way more work I guess). I'm even inclined to consider it more of a con, but the positive would be that there would (almost?) automatically be a whole library of them to chose from for those who can't write their own.
But yeah, I'm entirely fine with not following that path at all. @fire 's mockups are also looking pretty good to me.

@fire How about you switch the places of trash-bin/delete button and the plus buttons in the second mock-up though? :)
I'm guessing the idea is that you could add new inputs in the middle of others, but it might be better to have a little widget per each for grabbing and rearranging them, so a new port can always be added just to the end then. Currently it seems like the delete button would only remove the last port in stack.

Due to feedback from iamchuthulu.

Nice timing!

Cthulhu is giving feedback on the position of the + button. We'll be moving that and the trash can.

Ok, then I need a several days to rethink and make the requested things correctly

Could be context sensitive so when loaded into an expression node in fragment section/editor it would read/load the fragment part of that shader only?

Well, maybe could, but I dont want to do that in this PR, probably later in another (its worked without it perfectly now)

Yeah, no. That thought was only in the context of inputs and outputs being generated from the code. I don't expect you or anyone else to actually follow that one though. I find fire's most recent mock-up to be the easiest and likely the most optimal path to follow here.

@fire so, if I do the stuff on your picture(lastest) you accept this PR as finished ?

Button for add output and input is expanded for easibility
It has label text.
It is in the bottom for being in the same place all the time.

This is my final mockup, please comment and confirm by checkmark.

Button for add output and input is expanded for easibility
It has label text.
It is in the bottom for being in the same place all the time.
Trash nodes are not aligned by the add nodes.

@Megalomaniak there could be an intermediate variant where this node will get a button to generate the ports from the code, while keeping the option to add ports manually

@fire seems ok, it's just a matter of taste - but if you wish I make it so, without a problem

@fire seems ok, it's just a matter of taste - but if you wish I make it so, without a problem

Myself and @TheDuriel wish it so also.

If possible, an interesting idea could be to make it so modifier key(for example, alt) + left mouse button click-drag on any given node's port allows to drag and rearrange the respective ports order, this way no additional element is needed for initiating the dragging/rearrangement function. Nor any buttons for moving one up or down a stack.

@IAmActuallyCthulhu of course, sorry. These changes are not hard to make, I think I can finish today..

@IAmActuallyCthulhu, @fire

Ok, this can be a final view ?

I think maximum amount of characters in the port name should be limited for example to 12.. What do you think ?

You can remove the dialog box by generating the input / output name automatically.
Not sure how to align the output and the view texture button, so I'll leave that as it is.
The other stuff looks good. Thanks.

I would make text box larger so when you click on the show texture button it can expand into the text area and have 2-5 lines of text shown without resizing the entire node.

This is probably a new pull request, but there is no margins for the texture preview.

I removed the add port popup, now ports will be created with default name "input"(index) or "output"(index), also added margins for preview, and fixed some bugs

I caused a crash while clicking on add outputs:
ERROR: remove: Condition ' p_elem->_root != this ' is true.
   At: ./core/self_list.h:83.
handle_crash: Program crashed with signal 11
Dumping the backtrace. Please include this when reporting the bug on https://github.com/godotengine/godot/issues
[1] 1   libsystem_platform.dylib            0x00007fff594a5b5d _sigtramp + 29
[2] 2   ???                                 0x00007f7fc5a1e80c 0x0 +<PHONE_NUMBER>96396

Not sure the exact steps to recreate.

Yeah, I probably need to spend a few days more to fix these bugs.

From irc:
Created a new resource of visual shader. Added an expression node, clicked add output + 5 times and it crashes.
You can type the same variable name on the other side.
It's weird typing the name of the input, it compiles too quickly and stutters. Use the timer method?

@fire sorry, my internet was broken for today, check it again for bugs - to avoid them I've added new rename popup - yes it's less ellegant than before but I think it's required

The new rename popup is less elegant, but it still achieves the goal of adding the ports before  naming them.
I was able to crash the visual shader expression by clicking on add outputs. Do you need better error reproduction steps?

Dumping the backtrace. Please include this when reporting the bug on https://github.com/godotengine/godot/issues
[1] 1   libsystem_platform.dylib            0x00007fff7442bb5d _sigtramp + 29
[2] 2   ???                                 0x0000002b00000000 0x0 +<PHONE_NUMBER>28
[3] HashMap<StringName, Color, HashMapHasherDefault, HashMapComparatorDefault<StringName>, (unsigned char)3, (unsigned char)8>::getptr(StringName const&) const (in godot.osx.tools.64) (hash_map.h:333)
[4] Control::get_color(StringName const&, StringName const&) const (in godot.osx.tools.64) (control.cpp:962)
[5] GraphNode::_notification(int) (in godot.osx.tools.64) (graph_node.cpp:214)
[6] GraphNode::_notificationv(int, bool) (in godot.osx.tools.64) (graph_node.h:38)
[7] Object::notification(int, bool) (in godot.osx.tools.64) (object.cpp:954)
[8] CanvasItem::_update_callback() (in godot.osx.tools.64) (canvas_item.cpp:455)
[9] MethodBind0::call(Object*, Variant const**, int, Variant::CallError&) (in godot.osx.tools.64) (method_bind.gen.inc:61)
[10] Object::call(StringName const&, Variant const**, int, Variant::CallError&) (in godot.osx.tools.64) (object.cpp:942)
[11] MessageQueue::_call_function(Object*, StringName const&, Variant const*, int, bool) (in godot.osx.tools.64) (message_queue.cpp:256)
[12] MessageQueue::flush() (in godot.osx.tools.64) (message_queue.cpp:305)

Thats, probably a platform-specific bug, since I dont have any crash on Windows, and I see you are on OSX.. hmm.. I need to think. You get a crash simply by creating node and clicking few times on Add input or Add output port ?

It has to be a bare resource not attached to a scene.

@fire try again

You don't seem to be able to reproduce the bug and it still occurs so here's a project.
VS Examples.zip
Add a expression node to new_visualshader_crash.tres. Open it in the file system view. Clicking on add input / add output enough times and it'll crash.

Here's a stack trace.

Here's a stack trace.

Crashes here.

VisualShader::Type type = VisualShader::Type(edit_type->get_selected());
	graph->clear_connections();
	//erase all nodes
	for (int i = 0; i < graph->get_child_count(); i++) {

		if (Object::cast_to<GraphNode>(graph->get_child(i))) {
            graph->get_child(i)->queue_delete();
		}
	}

Trying this:
	//erase all nodes
	for (int i = 0; i < graph->get_child_count(); i++) {

		if (Object::cast_to<GraphNode>(graph->get_child(i))) {
            Node *node = graph->get_child(i);
            graph->remove_child(node);
            memdelete(node);
            i--;
		}
	}

@fire I think I fixed it now - try again

The ui portion looks good, I can't type into the textbox though :(

Reasoning behind removing custom name.
In other systems we use commenting to give context to nodes.
In your implementation we have a custom labels for expressions, if we want to do it, it should be done for all nodes, but that doesn't make sense. Why special case expression nodes then?
It needs further thought and I want the expression node merged :D

Ok, I've removed it

We're trying one more fix to make the output and input ports directly editable as a textfield.

Done

We're trying 1.2s for the expression textbox, but it looks good.

Noticed this bug.

Fixed

Dragging the  resize handle to the leftmost also breaks.

Fixed

Mentioned in irc. Dragging the resize handle to the topmost also breaks.

Fixed

Want to rewrite a rename procedure a bit..

@fire can you check it again for crashes please - I've changed the rename port procedure - now it will apply the changes only when focus is gone.

No problems seen with rename
Dragging the resizer is buggy. Same as before. May be lower priority since it only affects the top to bottom resize?

Thats strange, I dont see any visual bugs on resize...

Drag the resizer from the right to the other corner. There's two ways you
can do this.
On Mon, May 20, 2019 at 7:54 AM Yuri Roubinsky<EMAIL_ADDRESS>wrote:

Thats strange, I dont see any visual bugs on resize...
[image: vss]
https://user-images.githubusercontent.com/3036176/58030970-2d464900-7b28-11e9-8856-3f6b0402c20f.gif
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/godotengine/godot/pull/28838?email_source=notifications&email_token=AAAH4QPHWP7KCDRALCZL5ALPWK3STA5CNFSM4HMKJ3C2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODVZCYAA#issuecomment-494021632,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAAH4QPKYEKM65K5HWJTQ33PWK3STANCNFSM4HMKJ3CQ
.

Screen Recording 2019-05-20 at 11.42.33 AM.zip
Here's a video.

@fire I cannot reproduce it.. maybe you can do it yourself by creating a new PR(its non-critical) ? Otherwise its good to merge for now..

Sounds good to me.

Thanks a lot!

Finally, thank you and @fire !

Hi! Thanks for your work. I noticed that there are problems with the input nodes. Could you check if is this normal or I'm doing something wrong (in order to open an issue or not)? Apparently doesn't make any sense. There is the video:

The thing is that I have two scalar inputs, but I can't use them together in the same vec3(input1,input2,0.0) for example unless I kinda "convert them" to floats.  As there's no code warnings I don't know what's happening.
Cheers!

@Robocop Could you please post more high-quality gif ?

@Rabocop Could you please post more high-quality gif ?

Yeah, and if you open the output there should be an error - "Expected expression, found: SEMICOLON" ?

Hi, sorry for the delay, this is the video.
vsbug.zip
Output says :  :72 - Unknown identifier in expression: yy
Cheers!

Thanks ! Will do a bugfix soon

@Rabocop ok, I fixed it - check it up ! ) and next time, please, create a separate issue

@Rabocop ok, I fixed it - check it up ! ) and next time, please, create a separate issue

Nice!! Next time I will open a separate issue. Thank you very much!


[rdom] Uncaught (in promise) TypeError: can't access property "forEach", this.items is undefined

after replace layout (page) with $list
Uncaught (in promise) TypeError: can't access property "forEach", this.items is undefined

debugger
 async unmount() {

>>  this.items.forEach(e => e.unmount()),

    this.$remove(),
    this.el = void 0,
    this.items = void 0,
    this.prev = void 0
  }

@bit-app-3000 could you please post a more complete (but minimal) example of your code? The only thing I can gather from the above is that unmount() seems to be called a second time, but that shouldn't happen at all... So without any more context, it's impossible to say what's going wrong here... thanks!

ctx
spa application with router

// Layout map Components collections

const toAttr = (t, a) => a || {}
const toTag = x => Components[x] || x
const Children = x => Array.isArray(x) ? Layout(x) : x
const Layout = ([t, a, ...b]) => [toTag(t), toAttr(t, a), ...b.map(Children)]

// App flow

const seed = {  layout: ['PreLoader'] }

const app$ = defAtom(seed)
const layout$ = fromView(app$, { path: 'layout', tx: Layout })

onload = () => $replace(layout$).mount(root)

// change Route  =  app$.resetIn('layout', ...pageLayout)

// components

const Menu = () => {

 let { data$, id } = x

return $list(
    syncRAF(data$),
    'menu',
    {
      id,
      onanimationstart: start(x),
      onanimationcancel: cancel(x),
      onanimationend: end(x)
    },
    Item,
    (a, b) => a.label === b.label
  )
}

const slot = x => {

  const { value, id, status, data$, label } = x

  return [
    'drop-down',
    {
      onpointerdown: toggle(x),
    },
   label ,
    status === 'hidden'
      ? null
      : Menu(x)
  ]
}

const DropDown = seed => ['control', {}, $replace(useSlot(seed, slot))]

// Example Page Layout

export const Dashboard = () =>
  [
    'main', {},
    [
      'header', {},
      ['h1', {}, 'Dashboard'],
      [
        'nav', {},
        ['a', { href: '/profile' }, 'Profile']
      ]
    ],
    [
      'section', {},
      DropDown({
        id: 'x1',
        status: 'hidden',
        data$
      })
    ]
  ]

I hope it helps

thank you
the problem was on my side
wrongly processed state with subscription
[rdom]  is awesome!


Check for unsigned_short support for gles2 depth buffer allocation

Should fix: https://github.com/godotengine/godot/issues/26570
Note to reduz: it was as simple as nesting the second check inside the first. The "else" block only gets engaged on mobile when the OES_DEPTH_TEXTURE extension isn't present, so the behaviour can stay the same. On Desktop, we only need to check UNSIGNED_SHORT when UNSIGNED_INT has failed. Then if that fails as well, turn on rgba shadows and set support_depth to false. Internal format is depth16 to match the behaviour on mobile when depth is unsupported.

Might also fix quite a few other duplicates of #26570, see referenced issues there.

Thanks! I took a look through them and the only open one related was https://github.com/godotengine/godot/issues/28894 which should also be closed by this PR.

Thanks!

Shouldn't we close #27572, too?

The error on OSX was not actually related to UNSIGNED_INT vs UNSIGNED_SHORT. The problem is that GLES2 AMD drivers (any maybe some other) do not support framebuffers without color buffers attached. So, for those drivers support_depth_texture should be true and for shadow framebuffers a color buffer should be attached.

@endragor I am aware that UNSIGNED_INT vs UNSIGNED_SHORT doesn't matter for OSX. That was the reason for this PR. This PR provides a third branch so that OSX (and others) can fall back on RGBA shadows instead of breaking.
I am concerned about adding a full color buffer to a framebuffer just to access the depth buffer. However, if you think the memory/performance impact would be minor then feel free to make a PR. It would be great to have depth buffer shadows on more devices! :)

What I was trying say in my comment is that support_depth_texture on those devices shouldn't be set to false, while with this change it will be. That flag is used for configuring the main framebuffers later, rather than shadow buffers.
use_rgba_3d_shadows, which is the fallback used here, still makes a framebuffer with both depth and color buffers attached, it's just that the depth is drawn into a renderbuffer rather than a texture. So performance-wise I don't think it will be worse if both buffers are textures. It seems we should have 3 options for shadows instead of two:

Framebuffer with only depth texture
Framebuffer with depth texture and color texture (currently does not exist)
Framebuffer with depth renderbuffer and color texture (use_rgba_3d_shadows = true)

@endragor Ah, I see. Thank you for clarifying. It seems that is an oversight then.
I don't have an OSX device to test changes on. Do you mind fixing that section up sometime before 3.2? I really would like to have better OSX support for stuff like that. I don't trust myself to get it right just shooting in the dark.

@endragor @clayjohn If that concern is still valid, it would be good to open a new issue so that we can make sure to fix it for the 3.2 release.


Classic snap

Issue
We want to switch to using the classically confined snap by default, but continue to have strict as an option. This is because the strictly confined snap has problems getting everything it needs from the system.
fixes #52
fixes #23
Solution
Added a new "classic_snap" config option.
Testing Instructions
Fiddle with the "classic_snap" variable. You can use snap info --verbose grafana-agent | grep confinement to check the confinement of the currently installed snap.
Upgrade Notes
Now uses the classically confined grafana-agent snap.

I think this line was also strict confinement specific and it doesn't work with the classic confinement unless the value gets unset.
https://github.com/canonical/grafana-agent-operator/blob/64cb7ee7f6ef895df8985d4a4d15e0bafb616338/src/charm.py#L405
(I cannot leave an inline comment since the line is not in the context of the proposed change)

You're right, Nobuto. @dstathis can you have a look at this before we merge?

I think this line was also strict confinement specific and it doesn't work with the classic confinement unless the value gets unset.
https://github.com/canonical/grafana-agent-operator/blob/64cb7ee7f6ef895df8985d4a4d15e0bafb616338/src/charm.py#L405
(I cannot leave an inline comment since the line is not in the context of the proposed change)

Great catch! Fixed.


Move  all the symbols to one scrollable line

Suggested by Tony Turetsky in a play store review

If implemented I think this should be a toggle-able feature. I think for many people the advantage of using this keyboard is having a screen full of symbols to choose from, instead of searching for one in a scroll-able row.


typo in readme

Found typo in readme so corrected it but accidentally created a branch so need to merge to main - please could you review and approve? Thank you!

Hi Katie, any change automatically creates a new branch, even changing a typo. The security settings are such that any change has to have a approved review before it can be merged to main, thus "protecting" the main branch. Can be annoying, but safer.


Perform network tasks for schedule notifications

Once scheduleLocalNotification() is set, the data can't be updated until the user opens the app and sets it again.
Performing a javascript task for scheduledNotification() would be extremely useful for updating a news feed and notifying the user of the latest.
Is this something in the works?
For example something like this would be extremely useful:
FCM.scheduleLocalNotification({
        fire_date: new Date().getTime(),
        repeat_interval: "day",
        id: "randomId",
        schedule_task: this.fetchLatestFeed(),  <---- like this
    });

   async fetchLatestFeed() {
       var url = 'someUrl...';
       var data = await fetch(url).then((result)=> result);
       var newContent = {title: data[0].title, body: data[0].body, big_text: etc etc.... };
       return newContent;
  }

The schedule_task could listen for the title and body objects and the update it accordingly?
I'm sure there's a better way than this, but just throwing an idea/request out there. it would be awesome to have something like this.
I know there's headlessJS, but the documentation is extremely poor for coders with no java skills.

headlessJS is Android only as far as I know.
have you tried making fetching on notification callback?


Unsupported image mime type exr

Unsupported image mime type exr - is it possible to allow extracting of exr files from a glb?

exr is not supported by gltf/glb. Is this from a glTF extension?

Closing for now. Please reopen if you want to discuss futher.


read-config task (fix issue where dotenv files were not loaded in time for deploy tasks)

More holistic fix for #317

@tim-evans please try this branch and confirm that it fixes your issue.

Works for me! :tada:

:+1:


2534 display card failure qty

This is my attempt at fixing issue #2534. If the placing of the information is not appropriate please let me know.

Closing since this has to be restarted from scratch.


Make linspace loop interface more reliable

This should prevent poorly rounded values to be emitted by the interface which can crash some instruments.

Current coverage is 98.29% (diff: 100%)

Merging #76 into master will increase coverage by <.01%

@@             master        #76   diff @@
==========================================
  Files           155        155
  Lines         12307      12313     +6
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
+ Hits          12097      12103     +6
  Misses          210        210
  Partials          0          0

Powered by Codecov. Last update 64beb3c...2912cdc

Everything is fine from my point of view.
Using fromiter may be a bit overkill (we don't use such huge tables) but it is clean.


Prune pages are all null in ParquetExec by row_counts and fix NOT NULL prune

and fix NOT NULL prune
Which issue does this PR close?

Closes #9961 and #10049.
Rationale for this change

What changes are included in this PR?

Are these changes tested?

Are there any user-facing changes?

@alamb  @jychen7  PTAL

Thanks again @Ted-Jiang  -- I took another look through this PR and it is very nice 👌


Pr tailsitter fix

fw position control module did not update the vehicle type parameter and the transition airspeed parameter

remove fixed thrust handling during transition, let mc pos controller handle thrust (will iterate when we start doing flight tests)

@dagar Can you have a look?

Looks good. I thought this had been fixed, but it seems it went into one of those large VTOL cleanup PRs that was never merged.


Push to prod Zenodo sometimes, fix pypi release flow, update docs

Overview
Closes #3175:

Tries to upload draft to Zenodo prod
Doesn't run PyPI release unless test PyPI release goes through
added docs

Side-note:
It really doesn't seem like it would be that hard to grab the outputs from GCS & just upload to Zenodo that way:

use git tag --points-at {{ github.ref_name }} to figure out which nightly build to access on builds.catalyst.coop
auth into GCP - we could add another WIF identity, or just use the one we use in build-deploy-pudl.yml
sync the directory down to some location on the runner
check out repo + install deps
run zenodo_data_release.py

Some clean-up we'd have to do:

stop running build-deploy-pudl on tag
run release.yml on pushes to nightly as well as vYYYY.MM.DD, with the appropriate conditionals (e.g., never running prod PyPI release for nightly, always pushing to sandbox for nightly)
rip out the zenodo publication logic in gcp_pudl_etl.sh 🎉

So maybe it's worth doing that here? Would make testing this go a bit more smoothly I think.
Testing
How did you make sure this worked? How can a reviewer verify this?
Here's the testing plan:

push v2024.01.25.test tag
release.yml goes:

[x] short-circuits everything, except slack notif
[x] We should be able to click through the workflow and see the deps work correctly - e.g., pypi depending on test-pypi.

build-deploy-pudl.yml gets kicked off:

[ ] run_pudl_etl gets short-circuited
[ ] we don't publish stable to distribution buckets
[ ] we do publish v20204.01.25.test in private/public buckets
[ ] there's a draft record in Zenodo with some bogus files - log, test file, and success marker

This doesn't test that the PyPI publishing actually works. I guess I should have not short-circuited the test-pypi publishing.
# To-do list
- [ ] update with prod Zenodo token - not a publish token! 😅
- [ ] Review the PR yourself and call out any questions or issues you have

If we put the Zenodo publication logic in the release workflow, we can comment out the prod PyPI stuff and just push some vYYYY.MM.DD_rcX tags, avoiding the whole "short-circuit gcp_pudl_etl.sh" step - but, let's first try to get this working for now.

Oops, v2024.01.25.test didn't conform to PEP 440 and thus setuptools_scm got angry. Going to:

un-short-circuit the Test PyPI deployment
try pushing v2024.01.25.a1 tag instead.

Found out that our version regex in pyproject.toml was rejecting the a1 suffix - and then, if I modified the regex to include that suffix, found that setuptools_scm was doing something funky with the tag v2024.01.25a1:
> python -m setuptools_scm
2024.1.25a2.dev0+g287a85d6c.d20240125

So I just used v2024.01.25 instead since we're likely not doing an actual release today. I'll clean up the distribution outputs.

Ok, @zaneselvans - I went through all that short-circuiting above, found some bugs, and this now creates a handy dandy draft in production Zenodo for human approval! And also pushes stuff out to the distribution buckets. I already went and deleted all the artifacts from the tests, to avoid people getting confused about weird empty v2024.01.25 data.


To determine which model is used during testing

During testing, how can we determine the best model to be used ?
For example, to repeat the results on the KITTI leading board, how can you determine the model to be used ? Do you just use the last model when 120,000 iterations are finished ?

As with many other methods on the leaderboards, the network is trained on a private custom split of only the provided KITTI training data for better generalization. Our training procedure and hyperparameter selection is outlined in the paper, and the plot_ap.py script is provided to make it easier to select a good checkpoint, so feel free to experiment and see what works best for you.

But in order to repeat the results reported in the paper:
During testing (not validation), there is no way to use plot_ap.py
Do you just use the last model when 120,000 iterations are finished ?
Or do you pick up the same iteration which is the best on validation set ?


Frontend: project registration page should be reworked

At least it should contain proper checks and validations

Add hints under this issue:


Add https certificate expiry sensor

Description:
Simple certificate expiry check (in days)
Note: I've re-created the pull request due to some rebase issues . Successor of #7207
Example entry for configuration.yaml (if applicable):

sensor:
  - platform: cert_expiry
    host: home-assistant.io
    port: 443

Checklist:
If user exposed functionality or configuration variables are added/changed:

[x] Documentation added/updated in home-assistant.github.io

If the code communicates with devices, web services, or third-party tools:

[ ] Local tests with tox run successfully. Your PR cannot be merged unless tests pass
[ ] New dependencies have been added to the REQUIREMENTS variable (example).
[ ] New dependencies are only imported inside functions that use them (example).
[ ] New dependencies have been added to requirements_all.txt by running script/gen_requirements_all.py.
[x] New files were added to .coveragerc.

If the code does not interact with devices:

[ ] Local tests with tox run successfully. Your PR cannot be merged unless tests pass
[ ] Tests have been added to verify that the new code works.

Added documentation with PR: https://github.com/home-assistant/home-assistant.github.io/pull/2497

@pvizeli should be ok now

⚡


AGE&OrioleDB-Project Planning and Requirements Gathering

OrioleDB is a new storage engine for PostgreSQL, bringing a modern approach to database capacity, capabilities and performance to the world's most-loved database platform.
OrioleDB consists of an extension, building on the innovative table access method framework and other standard Postgres extension interfaces. By extending and enhancing the current table access methods.
Apache AGE is also a Graph extension to PostgreSQL.
By combining both these extensions we can achieve graph database functionality while avoiding legacy CPU bottlenecks on modern servers.

Integration of a plug-gable storage engine such as Oriole Db to Apache AGE will be beneficial in that
1.Oriole DB as our desired storage engine  will allow in-place update and enable the reuse of space to help control database bloat
2.Secondly Oriole as the desired storage engine will allow developers be able to choose storage methods that is optimized for specific needs .One can configure the storage engine for high transactional loads while  others for analytics workloads and still others for archiving


Add compatibility for neovim pr 17462

see https://github.com/neovim/neovim/pull/17462

Done

done

I'm getting since pulling the latest, have gone back one commit:

same!

I'm getting since pulling the latest, have gone back one commit:

same. :/


[FLINK-26738]Mark StateDescriptor#defaultValue as deprecated and add doc

What is the purpose of the change
Mark StateDescriptor#defaultValue as deprecated and add doc/javadoc.
Verifying this change
This change is a trivial rework / code cleanup without any test coverage.
Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): (no)
The public API, i.e., is any changed class annotated with @Public(Evolving): (no)
The serializers: (no)
The runtime per-record code paths (performance sensitive): (no)
Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Kubernetes/Yarn, ZooKeeper: (no)
The S3 file system connector: (no)

Documentation

Does this pull request introduce a new feature? (no)
If yes, how is the feature documented? (docs / JavaDocs )

Before another turn of review. Please:

Fill up the description of this PR.

Before another round of review. Please:

Fill up the description of this PR.
Resolve the broken CI due to checkstyle.

Thanks, done.

This is the first time I push a pr to the Flink and I do not know how to re-run the CI, could you give me some help, thanks.

This is the first time I push a pr to the Flink and I do not know how to re-run the CI, could you give me some help, thanks.

In general, once you udapted the branch, the CI would pend to trigger. And you can also manually trigger it via "Bot commands".

@flinkbot run azure


Close diff editor on commit

From @roblourens

Would be great if the diff editor would close automatically after committing, as it does with git when I set git.closeDiffOnOperation.
I usually click through diffs to double check before committing, then have a stale diff editor open that I have to close manually.

Cool, thanks!

Verification:

In insiders.vscode.dev/github/microsoft/vscode enable git.closeDiffOnOperation (if you had this on desktop and enabled settings sync in vscode.dev the setting should already be there)
Make some changes
Open diffs for those changes
Stage or commit those changes
If you staged or unstaged a specific file, the diff editor for that file should close. If you committed multiple changes, all diff editors for the changed files should close
Verify any behavior that doesn't work as expected

Verified when only one file is changed, but not when multiple changed: https://github.com/microsoft/vscode-remote-repositories-github/issues/279


Removing backgroundcolor will also affect other formats

How to reproduce the bug?
Align the the centered and change the Backgroundcolor.
Remove the background color again. The Alignment will be removed too.

Will be fixed in v3 (See #875 for more details).
I can't fix that before since it will be tricky.


Fix for #990

#990

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

Comparison is base (40c6ede) 84.27% compared to head (0108c35) 84.27%.

Additional details and impacted files
@@              Coverage Diff              @@
##           series/0.6.x     #991   +/-   ##
=============================================
  Coverage         84.27%   84.27%
=============================================
  Files               126      126
  Lines              1736     1736
  Branches            160      160
=============================================
  Hits               1463     1463
  Misses              273      273

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


Using srcset on zoomImage does not work

I would like to be able to define srcset and sizes on the zoomImage prop, but adding either of these fields has no effect.
I think that any extra fields defined on zoomImage should be passed down to the img tag, and additionally fetchZoomImage would pass these fields into the Image element so that the onload function can respond to the proper image source. If this sounds reasonable I'm happy to put up a PR

Indeed, zoomImage is not populating additional props it receives. If you want to take a stab at it, great!
Here is where the props get passed to zoomImage:
https://github.com/rpearce/react-medium-image-zoom/blob/master/src/react-medium-image-zoom.js#L143
And here is where it's getting rendered:
https://github.com/rpearce/react-medium-image-zoom/blob/master/src/react-medium-image-zoom.js#L275-L280
My initial thinking is that instead of spreading { ...this.props.zoomImage } like this, these props should be set as a prop on their own that is passed to the zoom component, and then either a spread or something similar to it (there's some src stateful hackery going on in there) happens in the zoom component. <-- Not my best written sentences, let me know if they don't make any sense.
If you decide you'd rather not put in the leg-work, I'm glad to help.

Yea, that makes sense to me - the same way ImageZoom has both image and zoomImage props. I'll be able to look into it today and let you know how things go.

Closed by https://github.com/rpearce/react-medium-image-zoom/pull/43


test(react-router): reducing the React.act warnings during unit tests

Part of #1976

I'm done for tonight. Will pick this up tomorrow in a separate PR.


Adding Package Support for Private NGC Model Registries

Earth2Studio Pull Request
Description

Adds support for private NGC model registry packages, as well as improves the public NGC registry to use authenticated APIs if the user has a valid NGC API key. Should improve download times. Also bit of refactoring of auto model stuff since this had become more complicated now. Placed into folder and split out the files.
TODO:

Add unit testing for private registry

Closes: https://github.com/NVIDIA/earth2studio/issues/123
Checklist

[x] I am familiar with the Contributing Guidelines.
[x] New or existing tests cover these changes.
[x] The documentation is up to date with these changes.
[x] The CHANGELOG.md is up to date with these changes.
[x] An issue is linked to this pull request.

Dependencies

/blossom-ci

/blossom-ci

/blossom-ci

/blossom-ci

/blossom-ci

/blossom-ci

/blossom-ci

/blossom-ci

/blossom-ci

/blossom-ci

/blossom-ci


OSCORE support in Leshan

This issue aims to centralize all about OSCORE integration in Leshan 2.0.0(LWM2M 1.1).
Currently work is in progress leading by @rikard-sics, he also works on OSCORE integration in Californium.
See specification for more details :

draft-ietf-core-object-security / oscore
oscore in LWM2M 1.1
end-to-end-security-for-the-internet-of-things page

The code will be available in a oscore branch, waiting we have a minimal viable feature which could be integrated in a 2.0.0 branch.
A minimal viable feature could be :

OSCORE over coap at client side  (see #726)
OSCORE over coap at server side (see #727)

(Demo are not mandatory for a minimal viable feature but integration test should be there)

Tentative plan for next steps:

Update code to use Californium 2.0.0-M17

Implement an Identity and related things in SecurityChecker for OSCORE

Work on the server side issues according to discussion in #727

Add possibility of entering OSCORE context information as command line parameters for client

I just created PR https://github.com/eclipse/leshan/pull/749 to update the code to use Californium 2.0.0-M17 instead. I will create a new PR to change the OSCORE context database to not be a singleton in Leshan anymore.

I have now made a PR that adds support for setting OSCORE related security parameters in command line arguments to the client here https://github.com/eclipse/leshan/pull/755

I add this link : https://omaspecworks.org/end-to-end-security-for-the-internet-of-things/ about this topic.

I add this link : https://omaspecworks.org/end-to-end-security-for-the-internet-of-things/ about this topic.

Thanks for providing a link to that document. Nice to see it also brings up ACE and EDHOC. I am following the work in the IETF LAKE working group (for creating a lightweight authenticated key exchange for OSCORE). ACE is also something we are using in various use cases.

Continuing the discussion from the last PR.
On a very high level the initial goal for me would be support for communicating with OSCORE between Client & Device Manager, communicating with OSCORE between Client & Bootstrap Server, and a Client being able receive bootstrapping information with OSCORE security material from the Bootstrap Server. Currently the first two points functionally work (but needs adjustments).
As a bit more detailed plans these are points I can think of:

Rebase the current code on master
Remove the ID Context input on client, Device Manager and Bootstrap Server
Design and implement an OSCORE Store
Implement bootstrapping to receive OSCORE security material

In the end I think it's better to rebase the code now, otherwise it would be even more potential conflicts in the future. As you mentioned in the last PR we should also discuss considerations related to the OSCORE store. I could create a separate issue about that.

In the end I think it's better to rebase the code now, otherwise it would be even more potential conflicts in the future.

About rebasing, maybe in practice it would be easier to cherry pick only needed commits (probably avoiding all which is not about OSCORE like SenML and californium integration?).
Even with this, I bet this will be a complicated task because a lot of code changed and some classes was moved.
Finally this is maybe even easier to just "rewrite"(copy/paste) the code.
As this will be really painful and as I feel myself a bit responsible for that. I would try to work on this.
(unless you already find a magic way to do that ?)

As you mentioned in the last PR we should also discuss considerations related to the OSCORE store. I could create a separate issue about that.

:+1:

@rikard-sics I started to work on rebasing, I create a dedicated issue to discuss about that :  #866

I have now created a PR to remove the ID context inputs as we discussed. See https://github.com/eclipse/leshan/pull/867

Some further comments now after the rebase. One thought I had was that it may be good to add some JUnit tests for OSCORE functionality?
Then I also realized an inconsistency. The way that Sender ID and Recipient ID are entered on the web UI for the Bootstrap Server and Management Server are opposite. Probably since the UI is for adding and configuring a new client it is better if the Sender ID and Recipient ID are from the client's point of view. I can make a change like that in the future.
So some further steps can be:

Fix TODOs in the code
Add JUnit tests
Have consistent way in web UIs for adding Sender/Recipient ID

Also I will be fairly inactive now during August since I will be going on vacation.

So some further steps can be:

Fix TODOs in the code
Add JUnit tests
Have consistent way in web UIs for adding Sender/Recipient ID

It sounds good to me.

Also I will be fairly inactive now during August since I will be going on vacation.

Me too at least the first 2 weeks of August :)

I have now created a PR https://github.com/eclipse/leshan/pull/919 to enable the following point from the lists of next steps above:

Implement bootstrapping to receive OSCORE security material

Just to summarize the lists of next steps above with the points taken care of removed:

Rebase the current code on master
Remove the ID Context input on client, Device Manager and Bootstrap Server
Design and implement an OSCORE Store
Implement bootstrapping to receive OSCORE security material (pending)
Fix TODOs in the code
Add JUnit tests
Have consistent way in web UIs for adding Sender/Recipient ID

As you mentioned in the last PR we should also discuss considerations related to the OSCORE store. I could create a separate issue about that.

I have now created an issue for further discussion about an OSCORE store at https://github.com/eclipse/leshan/issues/920.

Hello Leshan Community.
Could anyone kindly help me to understand why I have faced the following fails when using server-client connections in OSCORE mode after the client is registered on the server.

None of the Objects (/1,/3,/6,/21,/3301) can be read via web interface. The 'Internal Server Error (unknown server)'
message occurs above the Read button. No error messages in the server/client terminal.  CoAP messages log for /6 Read: CON-POST + ACK-2.04
Detailed run and configuration steps/logs are attached -
leshan_oscore_run_configuration_steps.txt

All OSCORE object resources can be executed only (/21/12345/0...5)
leshan_object_21_resources

After the client registration, the client account on the server's 'Security' tab contains 'Client Endpoint' field only. 'Security Mode' and 'Security Information' fields are disappeared.
leshan_security_tab

Could anyone kindly help me to understand why I have faced the following fails when using server-client connections in OSCORE mode after the client is registered on the server.

Hello. I have been working on adding OSCORE support to Leshan. Thank you for the feedback regarding this functionality. Let me try to reply to the points you list.

Yes unfortunately I am experiencing this also. Thanks for bringing this to my attention. It could be a regression introduced by some of the latest changes in the code or the rebasing on the master branch. I will look into this and try to solve it ASAP.

My understanding is that the OSCORE object on a client should not be readable from the LWM2M server. In fact it should probably not be in that list at all, even for Execute.

That should be because functionality to persist and present the OSCORE configuration for a client in the server web UI is currently missing. That is a TODO I have noted locally and aim to fix in a future update.

None of the Objects (/1,/3,/6,/21,/3301) can be read via web interface. The 'Internal Server Error (unknown server)'
message occurs above the Read button. No error messages in the server/client terminal.  CoAP messages log for /6 Read: CON-POST + ACK-2.04
Detailed run and configuration steps/logs are attached -
leshan_oscore_run_configuration_steps.txt

I have now submitted a pull request that should also solve this issue.

Rikard,
thank you for the timely response and the fix! I checked it and confirm that Read/Write/Observe/Cancellation/Create/Delete operations work properly.
During the '*demo.jar' making process I faced the error on '[INFO] leshan - integration tests ......................... FAILURE [ 11.396 s]' step. But I succeed the making with '-fn' option. The log for debugging purpose with '-e -X' is here.
mvn_install.zip
You mentioned that the OSCORE mode was added for DM account on the Bootstrap server and actually I could add it but NO_SEC mode is shown (due to it is not implemented yet). Is there a way to perform the Bootstrapping on the current stage from command line?
bootstrap_web_interface_dm_oscore

Please ignore my question concerning the ability of the Bootstrap procedure. The client was successfully bootstrapped and reachable on DM server. The only issue is this 'Failed to retrieve OSCORE object linked from BS security object' line. Is it acceptable?
BS:     java -jar leshan-bsserver-demo/target/leshan-bsserver-demo--SNAPSHOT-jar-with-dependencies.jar -lp 5693 -slp 5694
DM:    java -jar leshan-server-demo/target/leshan-server-demo--SNAPSHOT-jar-with-dependencies.jar -wp 8081
Client: java -jar leshan-client-demo/target/leshan-client-demo-*-SNAPSHOT-jar-with-dependencies.jar -n oscore_client -b -u localhost:5693
2020-12-22 15:52:03,896 INFO LeshanClient - Starting Leshan client ...
2020-12-22 15:52:03,899 ERROR ServersInfoExtractor - Failed to retrieve OSCORE object linked from BS security object
2020-12-22 15:52:03,900 ERROR ServersInfoExtractor - Failed to retrieve OSCORE object linked from BS security object
2020-12-22 15:52:03,901 ERROR ServersInfoExtractor - Failed to retrieve OSCORE object linked from BS security object
2020-12-22 15:52:03,901 INFO LeshanClient - Leshan client[endpoint:oscore_client] started.
2020-12-22 15:52:03,901 INFO DefaultRegistrationEngine - Trying to start bootstrap session to coap://localhost:5693 ...
2020-12-22 15:52:03,958 INFO CaliforniumEndpointsManager - New endpoint created for server coap://localhost:5693 at coap://<IP_ADDRESS>:39767
2020-12-22 15:52:03,990 INFO DefaultRegistrationEngine - Bootstrap started
2020-12-22 15:52:04,004 DEBUG Security - Write on Security resource /0/0/0
....
2020-12-22 15:52:04,006 DEBUG Security - Write on Security resource /0/0/12
2020-12-22 15:52:04,017 DEBUG Security - Write on Security resource /0/1/0
....
2020-12-22 15:52:04,019 DEBUG Security - Write on Security resource /0/1/12
2020-12-22 15:52:04,019 DEBUG Security - Write on Security resource /0/1/17
2020-12-22 15:52:04,024 DEBUG Server - Write on Server resource /1/0/0
2020-12-22 15:52:04,025 DEBUG Server - Write on Server resource /1/0/1
2020-12-22 15:52:04,025 DEBUG Server - Write on Server resource /1/0/2
2020-12-22 15:52:04,025 DEBUG Server - Write on Server resource /1/0/6
2020-12-22 15:52:04,026 DEBUG Server - Write on Server resource /1/0/7
2020-12-22 15:52:04,029 DEBUG Security - Write on resource 0: LwM2mSingleResource [id=0, value=0102030405060708090a0b0c0d0e0f10, type=STRING]
2020-12-22 15:52:04,030 DEBUG Security - Write on resource 1: LwM2mSingleResource [id=1, value=01, type=STRING]
2020-12-22 15:52:04,030 DEBUG Security - Write on resource 2: LwM2mSingleResource [id=2, value=02, type=STRING]
2020-12-22 15:52:04,030 DEBUG Security - Write on resource 3: LwM2mSingleResource [id=3, value=10, type=INTEGER]
2020-12-22 15:52:04,030 DEBUG Security - Write on resource 4: LwM2mSingleResource [id=4, value=-10, type=INTEGER]
2020-12-22 15:52:04,031 DEBUG Security - Write on resource 5: LwM2mSingleResource [id=5, value=9e7ca92223786340, type=STRING]
2020-12-22 15:52:04,042 INFO DefaultRegistrationEngine - Bootstrap finished coap://localhost:5693.
2020-12-22 15:52:04,043 DEBUG Security - Read on resource 0
...
2020-12-22 15:52:04,043 DEBUG Security - Read on resource 5
2020-12-22 15:52:04,044 ERROR ServersInfoExtractor - Failed to retrieve OSCORE object linked from BS security object
2020-12-22 15:52:04,045 INFO CaliforniumEndpointsManager - Adding OSCORE context for coap://localhost:5683
2020-12-22 15:52:04,119 INFO CaliforniumEndpointsManager - New endpoint created for server coap://localhost:5683 at coap://<IP_ADDRESS>:54988
2020-12-22 15:52:04,119 DEBUG Security - Read on resource 0
...
2020-12-22 15:52:04,120 DEBUG Security - Read on resource 5
2020-12-22 15:52:04,120 ERROR ServersInfoExtractor - Failed to retrieve OSCORE object linked from BS security object
2020-12-22 15:52:04,120 INFO DefaultRegistrationEngine - Trying to register to coap://localhost:5683 ...
2020-12-22 15:52:04,147 INFO DefaultRegistrationEngine - Registered with location '/rd/h8JjIHYw3m'.
2020-12-22 15:52:04,148 INFO DefaultRegistrationEngine - Next registration update to coap://localhost:5683 in 53s...
2020-12-22 15:52:23,215 DEBUG Server - Read on Server resource /1/0/0
....
2020-12-22 15:52:23,217 DEBUG Server - Read on Server resource /1/0/23

2020-12-22 15:52:03,899 ERROR ServersInfoExtractor - Failed to retrieve OSCORE object linked from BS security object
2020-12-22 15:52:03,900 ERROR ServersInfoExtractor - Failed to retrieve OSCORE object linked from BS security object
2020-12-22 15:52:03,901 ERROR ServersInfoExtractor - Failed to retrieve OSCORE object linked from BS security object

I guess it could be an issue relative to https://github.com/eclipse/leshan/pull/950#discussion_r545759146.
I also face the tests failure I this this is because of : https://github.com/eclipse/leshan/pull/950#discussion_r551228991

2020-12-22 15:52:03,899 ERROR ServersInfoExtractor - Failed to retrieve OSCORE object linked from BS security object
2020-12-22 15:52:03,900 ERROR ServersInfoExtractor - Failed to retrieve OSCORE object linked from BS security object
2020-12-22 15:52:03,901 ERROR ServersInfoExtractor - Failed to retrieve OSCORE object linked from BS security object

I guess it could be an issue relative to https://github.com/eclipse/leshan/pull/950#discussion_r545759146.
I also face the tests failure I this this is because of : https://github.com/eclipse/leshan/pull/950#discussion_r551228991

The client was successfully bootstrapped and reachable on DM server. The only issue is this 'Failed to retrieve OSCORE object linked from BS security object' line. Is it acceptable?

Thanks for the feedback. I have now updated the PR and code in my branch to fix this.

The client was successfully bootstrapped and reachable on DM server. The only issue is this 'Failed to retrieve OSCORE object linked from BS security object' line. Is it acceptable?

Thanks for the feedback. I have now updated the PR and code in my branch to fix this.

@rikard-sics We didn't get news from you since a long time.
Hoping all is doing fine for you :slightly_smiling_face:
Are you still working on OSCORE ?

@rikard-sics We didn't get news from you since a long time.
Hoping all is doing fine for you
Are you still working on OSCORE ?

Hello. Yes I am indeed working on OSCORE. Currently I am working on implementing usage of the OSCORE Appendix B.2 procedure when OSCORE is used in Leshan. It is specified in the LWM2M 1.1 Transport Bindings document section 5.5.3 that Appendix B.2 of OSCORE should be used.
Basically Appendix B.2 derives a new OSCORE Security Context (with new Sender and Recipient keys). The benefit this has is that if a LWM2M client reboots and starts using the same Security Context that it was originally configured with, it will not be using the same Sender Key while starting over from sequence number 0 (thus having nonce and key reuse). But rather it will first run Appendix B.2 to generate a new Context (Sender and Recipient keys) with the LWM2M Server or LWM2M Bootstrap server. So essentially every time the client connects the first time using OSCORE to a LWM2M Server or LWM2M Bootstrap server, Appendix B.2 will be run. See https://tools.ietf.org/html/rfc8613#appendix-B.2
However, the core functionality for Appendix B.2 is implemented in Californium. While trying to make use of this in Leshan I realized there was an issue in the Californium code, in the specific case the client takes initiative to run Appendix B.2 but the server is then the first to actually send a request afterwards (as will happen when bootstrapping or registering). So basically I am now working on the Californium code to fix this issue (and some other things about Appendix B.2). My aim is to have a PR created for Californium in the coming week. Then I will move over to implement this in Leshan (perhaps I can have an intermediate solution until Californium releases a new version).
One nice benefit of having this Appendix B.2 functionality-wise is also that currently if the client is restarted but the server is not, the server will complain about replayed messages. But since Appendix B.2 refreshes the security contexts this problem will no longer exist.

@rikard-sics Good to hear. :-)

@rikard-sics @sbernard31 I am currently trying to implement OSCORE for wakaama. I would like to test my implementation in the near future against the leshan implementation. But I am absolutely not familiar with Java. There is currently no possibility to set OSCORE Credentials and Keying material over the webinterface. Or was I just not seeing it?
Is there / or could you provide some (hopefully easy) explanation how I could add OSCORE security context to Leshan?

@rikard-sics @sbernard31 I am currently trying to implement OSCORE for wakaama. I would like to test my implementation in the near future against the leshan implementation. But I am absolutely not familiar with Java. There is currently no possibility to set OSCORE Credentials and Keying material over the webinterface. Or was I just not seeing it?
Is there / or could you provide some (hopefully easy) explanation how I could add OSCORE security context to Leshan?

If you use the code from the "oscore"-branch there is a way to configure OSCORE security contexts both in the web interface of the bootstrap server and the server. For the client you can provide it using command line parameters.
Check the "oscore"-branch and we can discuss more if you have any further questions. I could for instance provide instructions on how to configure a basic test scenario using OSCORE with a client, bootstrap server and server.

As explained above : https://github.com/eclipse/leshan/issues/725#issuecomment-811974435, there is still some limitation and probably some remaining bug so please do not hesitate to share any issue you face.

Once you get the oscore branch, you will need to compile & run it. see README for more details.

As explained above : #725 (comment), there is still some limitation and probably some remaining bug so please do not hesitate to share any issue you face.

@LukasKarel Yes please feel free to share any issues you encounter. And as you can see in that comment above, for instance Appendix B.2 support is not yet added to Leshan (whereas the LWM2M 1.1 spec states that it shall be used). So if you have Appendix B.2 support in your underlying OSCORE implementation it is better to not use it towards the bootstrap server and server for now. (I am working on adding this support to Leshan.)

Thank you both for your fast replies. I was now able to add a OSCORE Context to Leshan. Thank you! I am not sure why it did not work the first time.

@rikard-sics
I encountered two issues. Please download LeshanOscore.zip for traces.
In leshan_leshanclient.pcapng I used Leshan Demo Client to verify OSCORE functionality (because of the next issue). The OSCORE object (Id 21) is reported in the registration payload. Which should be not the case according to LWM2M Spec 1.1 6.2.1 Register. But requests are encrypted with OSCORE as expected.
The second issue occurs if I try to use my implementation based on wakaama (leshan_oscore.pcapng). Registration and registration updates are working like expected. But if I want to read a resource, leshan sends an unencrypted CoAP request. How does the server decide if OSCORE or CoAP should be used for requests?

@rikard-sics
I encountered two issues. Please download [LeshanOscore.zip]
Thanks for the captures and information about credentials. I will take a look at the captures, review some relevant parts of the code and get back to you regarding the questions.

In leshan_leshanclient.pcapng I used Leshan Demo Client to verify OSCORE functionality (because of the next issue). The OSCORE object (Id 21) is reported in the registration payload. Which should be not the case according to LWM2M Spec 1.1 6.2.1 Register. But requests are encrypted with OSCORE as expected.

Right, yes I see in your captures, and also when testing locally, that the registration POST from the client includes the following data:
</21/12345>
Tracking what happens in the code:
https://github.com/eclipse/leshan/blob/8b77ac276d1429fb314526c825e9f42d01be8b10/leshan-client-core/src/main/java/org/eclipse/leshan/client/engine/DefaultRegistrationEngine.java#L313-L315
In the registration engine, the object links used as input to create the registration request are taken from:
LinkFormatHelper.getClientDescription(objectEnablers.values(), null)
And in the LinkFormatHelper class I see:
https://github.com/eclipse/leshan/blob/8b77ac276d1429fb314526c825e9f42d01be8b10/leshan-client-core/src/main/java/org/eclipse/leshan/client/util/LinkFormatHelper.java#L65-L67
So there the Security object is correctly excluded while the OSCORE object is not. So doing the same for the OSCORE object there should solve this.
Thanks for the feedback regarding this, I will fix it in a future pull request.

The second issue occurs if I try to use my implementation based on wakaama (leshan_oscore.pcapng). Registration and registration updates are working like expected. But if I want to read a resource, the server sends an plain CoAP request. How does the server decide if OSCORE or CoAP should be used for requests?

This is a multi-stage process. Firstly the server should create an OSCORE security context for the client to use here:
https://github.com/eclipse/leshan/blob/8b77ac276d1429fb314526c825e9f42d01be8b10/leshan-server-demo/src/main/java/org/eclipse/leshan/server/demo/servlet/json/SecurityDeserializer.java#L165-L166
Then it adds it to the context database:
https://github.com/eclipse/leshan/blob/8b77ac276d1429fb314526c825e9f42d01be8b10/leshan-server-core/src/main/java/org/eclipse/leshan/server/security/SecurityInfo.java#L120-L122
At this point the client can communicate using OSCORE to the server, which works fine for you.
Next, upon registration the server must re-add the context to the context database associating it with the hostname/IP of the client (which the server does not know until now):
https://github.com/eclipse/leshan/blob/8b77ac276d1429fb314526c825e9f42d01be8b10/leshan-server-cf/src/main/java/org/eclipse/leshan/server/californium/registration/RegisterResource.java#L133-L140
And finally when the server sends requests to the client it must include the OSCORE option. Including the OSCORE option, and having a context associated to the hostname to where the request is sent, should mean OSCORE protection is applied to the request.
https://github.com/eclipse/leshan/blob/8b77ac276d1429fb314526c825e9f42d01be8b10/leshan-server-cf/src/main/java/org/eclipse/leshan/server/californium/request/RequestSender.java#L142-L147
https://github.com/eclipse/leshan/blob/8b77ac276d1429fb314526c825e9f42d01be8b10/leshan-server-cf/src/main/java/org/eclipse/leshan/server/californium/request/RequestSender.java#L230-L236
However as you can see that is only done if a context is found for this client.
So I would suspect that in your case the step that fails is the re-addition of the security context to the database, now associating it with the hostname/IP of the client which takes place in RegisterResource.
Could you perhaps check what is the value of the following in RegisterResource?
exchange.advanced().getCryptographicContextID()
This should be the SID of the client.
request.getScheme() + "://" + request.getSourceContext().getPeerAddress().getHostString().toString()
This should be coap:// followed by the IP/hostname of the client.
Next can you check also in RequestSender:
coapRequest.getURI()
This string should match what you are getting above when adding the context in the RegisterResource. If these are different, the context will be added associated to one hostname/IP and then retrieved using another hostname/IP (and thus not be found).
Probably something here in the code is not working properly in all cases.

Sorry for my late reply. Thank you for you comprehensive explanation.
I tested it again and realized I used a IPv6 socket. Which lead to the problem. If I use an IPv4 socket it works correctly.
With IPv4:
request.getScheme() + "://" + request.getSourceContext().getPeerAddress().getHostString().toString() returns coap://<IP_ADDRESS>
coapRequest.getURI() returns coap://<IP_ADDRESS>:56830/3/0/0. This works now correctly.
With IPv6:
request.getScheme() + "://" + request.getSourceContext().getPeerAddress().getHostString().toString() returns coap://0:0:0:0:0:0:0:1
coapRequest.getURI() returns coap://[0:0:0:0:0:0:0:1]:56830/3/0/0.
Which would explain the problem because square brackets are added with the request uri.
If you use a Linux based system or are familiar with WSL I could upload an executable. I would need to add some options that you can change the security context, as this is hard coded in the source code at the current development state.

Sorry for my late reply. Thank you for you comprehensive explanation.
I tested it again and realized I used a IPv6 socket. Which lead to the problem. If I use an IPv4 socket it works correctly.
With IPv4:
request.getScheme() + "://" + request.getSourceContext().getPeerAddress().getHostString().toString() returns coap://<IP_ADDRESS>
coapRequest.getURI() returns coap://<IP_ADDRESS>:56830/3/0/0. This works now correctly.
With IPv6:
request.getScheme() + "://" + request.getSourceContext().getPeerAddress().getHostString().toString() returns coap://0:0:0:0:0:0:0:1
coapRequest.getURI() returns coap://[0:0:0:0:0:0:0:1]:56830/3/0/0.
Which would explain the problem because square brackets are added with the request uri.

Thanks for the detailed output. Then I understand better what is happening. So it is about a mismatch between the URI the context is added under and the one it is retrieved from.
Could you try replacing the try-catch-statement in RegisterResource:
https://github.com/eclipse/leshan/blob/8b77ac276d1429fb314526c825e9f42d01be8b10/leshan-server-cf/src/main/java/org/eclipse/leshan/server/californium/registration/RegisterResource.java#L138-L143
With the following code:
            try {
                URI clientUri = new URI(request.getScheme(),
                        request.getSourceContext().getPeerAddress().getHostString(), "", "");
                db.addContext(clientUri.toString(), clientCtx);
            } catch (OSException | URISyntaxException e) {
                LOG.error("Failed to update OSCORE Context for registering client.", request, e);
            }

That should solve the issue you are encountering. If things work with this modification I will make it into a pull request in the near future.

If you use a Linux based system or are familiar with WSL I could upload an executable. I would need to add some options that you can change the security context, as this is hard coded in the source code at the current development state.

We can probably hold off on this for now. I think the output you gave should be sufficient to solve this issue.

            try {
                URI clientUri = new URI(request.getScheme(),
                        request.getSourceContext().getPeerAddress().getHostString(), "", "");
                db.addContext(clientUri.toString(), clientCtx);
            } catch (OSException | URISyntaxException e) {
                LOG.error("Failed to update OSCORE Context for registering client.", request, e);
            }

Now Requests are sent as OSCORE messages. :thumbsup:

Now Requests are sent as OSCORE messages.

Alright, that is very nice to hear. Thanks for the feedback on this and the earlier point you mentioned. I will prepare PRs to fix these issues in the near future. Don't hesitate to ask if you have any other questions about OSCORE.

@rikard-sics We didn't get news from you since a long time.
Hoping all is doing fine for you
Are you still working on OSCORE ?

Hello. Yes I am indeed working on OSCORE. Currently I am working on implementing usage of the OSCORE Appendix B.2 procedure when OSCORE is used in Leshan. It is specified in the LWM2M 1.1 Transport Bindings document section 5.5.3 that Appendix B.2 of OSCORE should be used.

Following what I mentioned here, I have now created a PR to add this functionality to Leshan:
https://github.com/eclipse/leshan/pull/1004
As next steps I am planning to add the fixes from the discussions with LukasKarel, both regarding IPv6 addresses and the client reporting the OSCORE object to the LWM2M server on registration.

@rikard-sics, I feel that targeting a minimal viable OSCORE.
This will allow us to integrate it in master with benefits of :

no more rebase of OSCORE branch, and maybe further change could be integrated directly in master
provide more visibility to the feature (as it will be available in a Milestone release and in demo)

Now we have the Appendix B.2 (#1004), I don't know if we are far of this ? I guess the missing part are something like :

the OscoreStore #920 (probably the most important one :thinking:)
Probably some cleaning/double check of the code works  (TODO, ...)
Some Junit ?
polish demo (probably some rewrite with new web UI #977 #1005 )

@rikard-sics, I feel that targeting a minimal viable OSCORE would have many benefits, it allow us to integrate it in master and so:

no more rebase of OSCORE branch, and maybe further change could be integrated directly in master
provide more visibility to the feature (as it will be available in a Milestone release and in demo)

Now we have the Appendix B.2 (#1004), I don't know if we are far of this ? I guess the missing parts are something like :

the OscoreStore #920 (probably the most important one thinking)
Probably some cleaning/double check of the code works  (TODO, ...)
Some Junit ?
polish demo (probably some rewrite with new web UI #977 #1005 )

Yes I agree that priority should be getting the OSCORE functionality integrated in the master branch. Doing that would have those 2 major advantages you list.
My tentative plan forward is the following:

Update the PR for Appendix B.2 functionality and get it merged
Make sure the OSCORE object is not reported in the client's registration payload*
Fix the issue with requests from the server when clients are using IPv6*
Design and implement one or more suitable JUnit tests
Go over OSCORE-related TODOs in the code. If things are straightforward make a PR immediately, or proceed to discuss these.

*These are the 2 issues @LukasKarel reported and they should be very small pull requests in terms of code.
So then what remains is the OscoreStore, general code checking and updates to the demo(s). I think those are more major things, which may require further discussion (especially the OscoreStore) so I put them for later. I will update the thread about the OscoreStore (#920) with more input, possibly also looking back at earlier discussions we had about this in past PRs or elsewhere.

I feel  OscoreStore is the more impacting remaining part, and generally I prefer to address mandatory impacting part first to find critical design issue as soon as possible.
(What I mean by 'mandatory' is "necessary for the minimal viable feature")
But just my opinion feel free to do as you prefer. I'm sure you have a better view than me about all of this. :slightly_smiling_face:

I feel OscoreStore is the more impacting remaining part, and generally I prefer to address mandatory impacting part first to find critical design issue as soon as possible.
(What I mean by 'mandatory' is "necessary for the minimal viable feature")
But just my opinion feel free to do as you prefer. I'm sure you have a better view than me about all of this.

Yes, I can see your point to really put 100% focus on the things needed for a minimal viable feature. Considering this I will reprioritize the list above and place the OscoreStore as the top priority.

What is current status of OSCORE feature? This feature is very important to us in Orange. Is there anything we can do to speed up complete this (at least minimal version)?

@sbernard31 @rikard-sics is there any possibility to help in OSCORE developing? We can try to rebase oscore branch with latest master for example.
I can see there is SecuritySerializer missing implementation for OSCORE so server-demo needs to add security configuration after every server restart. Maybe we can add this serializer to help with manual testing?

is there any possibility to help in OSCORE developing?

We didn't get any news from @rikard-sics for a long time now, I hope he is doing well.

We can try to rebase oscore branch with latest master for example.

Yep, as we didn't succeed to achieve a minimal viable feature and so to integrate it in master, master diverges a lot from oscore branch.
Rebasing on master could be an idea but there is a lot to rewrite/drop and also probably lot of conflicts to handle :

there serializer like you say
but also the whole UI work need to be dropped to be rewritten with vuejs
But not this is the priority.

I still feel the right move would be :

introduce/focus on a  minimal viable support of OSCORE in the library + unit tests.
then add support of it in the demos.

Serializer and UI is about 2.
About 1), I understand the main missing part is : #920 (in a first time we can even drop support of RedisSecurityStore)
So what should be the next step maybe trying to rebase on master everything which is about the core library and the unit tests itself.
But this is just my opinion and we should probably wait to get feedback from @rikard-sics.

We didn't get any news from @rikard-sics for a long time now, I hope he is doing well.

Hello. Yes I am doing well, thank you! :)
But unfortunately I have been very occupied with other tasks and have not had time to put on this. Let me reflect a bit on your last post and come back with a reply.

So according to https://github.com/eclipse/leshan/issues/920#issuecomment-988722923 if OSCORE store should be implemented (partially) on californium side, maybe it's better to make rebase to master first. Potentially californium updates would land on the newest version, but oscore branch uses old californium version.
I'll try to prepare some tests to make sure the basic connection with OSCORE works, and after that I'll try to rebase branch to master.

Maybe better to just drop all about demo and focus on unit test in a first time ?  :thinking:

Maybe better to just drop all about demo and focus on unit test in a first time ? 🤔

Yes, when I was talking about basic connection I meant integration tests (and unit tests). After tests implemented we can focus on refactoring / rebase to master and other development 😄

I added few integration tests in PR #1180

But unfortunately I have been very occupied with other tasks and have not had time to put on this. Let me reflect a bit on your last post and come back with a reply.

@rikard-sics, I get you are very busy and if you succeed to find some time please to not hesitate to give us some feedback.
If this is possible, could you also give us some visibility about when you will be able to work on this again  ?
I list here some recent comments which probably need a feedback from you :

https://github.com/eclipse/leshan/issues/725#issuecomment-985553174
https://github.com/eclipse/leshan/issues/920#issuecomment-988722923

@Michal-Wadowski is already very involved on this and I will try to imply more too, hoping we will be able to get a Minimal viable OSCORE feature integrated in master.
I think a plan could be :

adding some minimal integration Tests #1180
then rebase on master (dropping all demos features)
find a way about OSCORE store https://github.com/eclipse/leshan/issues/920#issuecomment-988722923 (this one will probably imply some modification in Californium but maybe we can first try to implement this in Leshan  with a custom implementation of  OSCoreCtxDB.
then add support to demo again.
add redis support.

I just rebased oscore branch on current master in PR #1201.
Demo support is dropped.
So 1. and 2. are already done.

@rikard-sics, I get you are very busy and if you succeed to find some time please to not hesitate to give us some feedback.
If this is possible, could you also give us some visibility about when you will be able to work on this again ?

Yes I apologize for the absence. I should now be coming into a period where I can put more time into this work. I think one of the key points is considering how the OSCORE store is to be implemented.
I also want to thank @Michal-Wadowski for his interest and contributions to this work, it is very appreciated.

I just rebased oscore branch on current master in PR #1201.

I integrated this (https://github.com/eclipse/leshan/pull/1201#issuecomment-1028161195)

Yes I apologize for the absence.

No problem :wink:

I think one of the key points is considering how the OSCORE store is to be implemented.

I agree.
Do you have a clear idea about this ? or should we need more discussion ? (if needed let's discuss about it at #920)

I will start to work on re-implementing the demo part of OSCORE feature (#1203).
(I will not polish this but this should help to make it available quickly)

Thanks, sounds great!

I noticed the commit from a week ago, but do you know approximately when OSCORE will be available on Client/Server/Bootstrap Server?

I guess it depends what you mean by "OSCORE will be available on Client/Server/Bootstrap Server"
I hope we will get an experimental minimal viable feature soon (maybe in few week/month), at least this is the plan (https://github.com/eclipse/leshan/issues/1222)
I try to help as mush as I can but I think it depends a lot of @rikard-sics schedule, so he should maybe have better approximation than me ?
But anyway, keep in mind that this first version will probably not  be production ready.
In my experience this kind of feature rarely perfectly work at first try.
We will probably find unworking use case, bug, security issue and/or interoperability issue.

Ok, thanks for the information 👍

@adamsero, eventually if you want to help on this topic, you can play with oscore branch (eventually oscore_bsserver_demo which contains #1254  which should be integrated in oscore branch soon)
The idea would be to search for issues in main use cases.

OSCORE experimental support in now integrated in master #1277.
This experimental support will be shipped in 2.0.0-M8.
I also updated supported features : https://github.com/eclipse/leshan/wiki/LWM2M-1.1-supported-features

I list some missing point about a minimal viable feature :

#1257
#1231
#1230

@rikard-sics, we don't get so much news from you since a long time. I really hope you're doing well. :slightly_smiling_face:
Please do not hesitate to give us some news from you.
E.g. if you work on Leshan/Californium let us know on which part.
If you are busy on something else let us know too (with maybe some inputs when you think you will work again on it)
If you are dealing with some OSCORE issue (maybe relative to interoperability or specification itself), let us know.
 I really hope you're doing well. slightly_smiling_face

Yes, sorry for the period of silence. I have been busy mostly with other unrelated things. As for Californium I have prepared code for updating the Appendix B.2 functionality, after doing interop testing with another implementer. I intend to create a PR for that to Californium in the near future.
Currently I am working on wrapping up a paper, when that is done (a matter of weeks) I hope to have more time to get back to the work related to Leshan.

@rikard-sics, just to let you know that we are experimenting java-coap (fork) as californium alternative. (#1373)
Just in case, you will be interested on looking at this library and see if its design could make easier to integrate OSCORE feature.
By the way, @szysas does OSCORE (RFC8613) could be part of java-coap scope ? (this is a more a long term question)

Yes, it could be, but so far no work has been done nor started.

@rikard-sics, just to let you know that we are experimenting java-coap (fork) as californium alternative. (#1373)
Just in case, you will be interested on looking at this library and see if its design could make easier to integrate OSCORE feature.

I see, thanks for the update. I will have a look at that library.


user-guide: Templates organization

Closes https://github.com/weaveworks/weave-gitops-enterprise/issues/1687

Documentation Changes
Update Using templates docs with new sections:

Organizing templates
Enable/disable template components
Template rendering language and functions supported when using go-templating
Setting default param values

I had started some notes on templating a while back https://gist.github.com/bigkevmcd/314559c2c6912f405a8052bec63c99d3 feel free to take anything (or nothing) from this.


4 clarifications needed

I just completed this tutorial, and as a n00b to ADF and SQL DW I wanted to give you some feedback.

The pre-reqs should explain how to import the taxi BACPAC file - I had to google it which led to this simple Microsoft Docs article https://docs.microsoft.com/en-us/azure/azure-sql/database/database-import.
The ADF tutorial was a bit out of date. The first step describes creating a Linked Service from the Author section but it isn't there. Instead you do it in the Manage section. A lot of those ADF UX screenshots need updating.
In the Data Shares part on creating a new share it mentions about needing to give your AzureAD account admin rights to your SQL Server. It is not obvious how to do this and you should provide some instructions, something like; Set you AAD account as the SQL Server Admin from the SQL Server blade > Settings > Active Directory Admin. The select Set Admin > find your AAD username and select it> Click save and make sure you get a green checkmark
Step 11 of "Receiving data (Data consumer flow)" optional steps are confusing, I was trying to follow them but you can't in that view. Would be better to have that info as an aside in a 'Note' box or similar.

Thanks!

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

ID: 6cb5426e-6bd7-cfc8-2abe-eb0f96b6e2a6
Version Independent ID: e8e33135-57ba-59a2-a7a7-ab119f2934be
Content: Data integration using Azure Data Factory and Azure Data Share - Azure Data Factory
Content Source: articles/data-factory/lab-data-flow-data-share.md
Service: data-factory
GitHub Login: @djpmsft
Microsoft Alias: daperlov

@thommck Thanks for the feedback! We have assigned the issue to the content author to further review this feedback and update the document as appropriate.
@djpmsft Could you please have a loot at this feedback - Thank you

Hey @thommck ,
Thanks for the feedback! I agree that this article needs updating. We will open action items to fix these.
Thanks,
Daniel
#please-close


[FEATURE REQUEST] Add TaskBarX and Aerial for customization

TaskBarX - Center Windows taskbar icons with a variety of animations and options for translucency and acrylic blur.
Aerial - Claim empty spaces on your Windows desktop.

Hi and how are you rashil2000, this is Brian I would like to work on this issue.

Hi Brian @1234567-glitch, you can definitely work on this but it's upto @rahulkapoor90 to accept the PR and merge it.
Currently it seems like this repository is no longer maintained (I really hope otherwise) as a lot of issues and PRs are pending.

@rahulkapoor90 can i work on it?

@rahulkapoor90 can i work on it?

Add TaskBarX and Aerial for customization. Get some ideas for your home screen from our exclusive designs. VMware Training


Fixes SR-2904 by moving SDKROOT and SUPPORTED_PLATFORMS to the project level

Because SDKROOT and SUPPORTED_PLATFORMS are defined at the target level, they cannot be overridden by .xcconfig files.  This addresses that.

Looks like https://github.com/apple/swift-package-manager/pull/728 was submitted a couple of minutes earlier for the same fix.  Let's see if there are things in this one that should be applied to the other one, and then we can close this one without merging.

Closing since #728 was merged instead.


Mention official documentation in readme

hey, thanks for making this project available, I hope that it will greatly improves our workflows.
I first had issues getting started, before I found via random googling, that you actually have good documentation for this.
I would recommend to link the documentation in the readme of this project, so its easier to find!
https://docs.e-spirit.com/odfs/edocs/sync/introduction/index.html

Hey @MiniDigger ,
I just want to inform you that we added a link with Release 2.6.10.
Thanks for your contribution!


Use OBJLIB for RUNSQLSTM

Cool, does it handle the case where the curlib is already in the user libl?

liblist will figure it out and we can suppress the error from liblist


Introduce AttributeFilterException to make the throw clause of methods AttributerFilter.filter() and AttributeContext.proceed() consistent, allowing an exception originating from proceed() to bubble up without handling halfway.

Hi Teemu,
As you may have heard from Michael Tzukanov, our team at bol.com recently started a new application using Vaadin.
I very much push my team to use declarative UIs, as I am in real favour of making clear cuts between UI structure and behaviour. We looked at both Clara and the new native declarative UIs of Vaadin and for us Clara is the winner, with real XML and prety straight-forward XML structure.
To use Clara to the full extend in our application I like you to incorporate some refinements, which I will offer you in separate pull-requests.
This one is about improved handling of exceptions in the AttributeFilter, while the second is about preparation for extending Clara locally with ability to instantiate custom components from a Spring container. I expect another request to follow shortly that will deal with serialisation issues caused by the Clara Binder class.
Please, let me know what you think about them.
Cheers,
Mark<EMAIL_ADDRESS>

Hi Mark,
thank you for the pull requests and I'm extremely happy to hear that you have found my add-on useful in your project. :+1:
Took a quick glance at your commits and they look really good. I will examine those in more detail and merge to master next week after the easter holidays.
Best regards,
Teemu

@m-koops The serialization issue has been fixed by #29.


Crash when about:support is draged to tab

Describe the bug
https://bugs.chromium.org/p/chromium/issues/detail?id=1274990
To Reproduce
Steps to reproduce the behavior:

Type "about:support" anywhere (for example in google search)
Drag "about:support" into a new tab or existing tab in tabs bar

Expected behavior
Open chrome:support
Screenshots
Crashes
Environment (please complete the following information):

OS/Platform and version: Windows 10 21H1
ungoogled-chromium version: 96

Additional context
Add any other context about the problem here.

Does this happen in vanilla chromium as well?

Does this happen in vanilla chromium as well?


CSS/SCSS doesn't work

❓Question
Hello there,
I have faced an issue with CSS/SCSS files. Trying to build SSR react-app, and followed to the documentation.
created react module:
import styles from '../../public/css/Home.module.scss'
const Home = () => {
return (
 Logo will be here
)};
and this is CSS class:
.logo{
height: 32px;
background: rgba(255, 255, 255, 0.2);
margin: 16px;
}
configured: razzle.config.js
module.exports = {
plugins: ['scss'],
};
But CSS/SCSS files are still not there. Moreover, I have an error: GET http://http//localhost:3501/static/js/bundle.js net::ERR_NAME_NOT_RESOLVED.
I tried as CSS, SCSS, with module prefix, without it. No results. Used dependencies:
"dependencies": {
"antd": "^4.4.3",
"axios": "^0.19.2",
"body-parser": "^1.19.0",
"compression": "^1.7.4",
"dotenv": "^8.2.0",
"express": "^4.17.1",
"html-minifier": "^4.0.0",
"react": "^16.13.1",
"react-dom": "^16.13.1",
"react-router-dom": "^5.1.2",
"sqlite3": "^5.0.0",
"suneditor-react": "^2.13.1"
},
"devDependencies": {
"razzle-plugin-scss": "^3.1.5",
"razzle": "latest"
}
Could you point me what I have done wrong?

I found the main cause: it was .env file, where I created my variables, without RAZZLE_ prefix.
Thanks!