🏗 Leshan 2.0 : LWM2M 1.1 🚧

Leshan v2.0.0 (master branch) is currently in development and aims to support LWM2M 1.1 (or at least some part of it).

Core spec
Transport spec

You can have a look to currently supported or in development features or current  roadmap.
Last 2.0.0 milestone release : 2.0.0-M5. (:warning: Keep in mind that milestone release does not have stable API)
If you are interested in LWM2M 1.1 support in Leshan, we strongly advice to :

use/test this milestone release,
report us any bug or feebacks,
share what part of LWM2M 1.1 missing you more here :point_down: ,
contribute code.

This is the best way to get a final 2.0.0 release which fit your needs.
(If you need stable API and are fine with LWM2M v1.0, you should use Leshan v1.x)

Hi Bernard
I would be very interested in the newly introduced Non-IP binding for NB-IOT, where we can use 3GPP SCEF to carry LwM2M traffic, though the spec is released, however a reference design regarding how to integrate with T8 interface would be a good start for us to contribute
BR/Vincent

As a part of a joint project with Ericsson about contributing OSCORE to Californium we have also been working on using OSCORE in Leshan, as it is part of LWM2M 1.1.
Currently we have code produced for enabling communication over OSCORE between the Leshan server, bootstrap server and client. In addition we have added support to bootstrap a client so it receives information to generate an OSCORE context for communication with the Leshan server. We would be interested in contributing this code to Leshan.

@wenzheng, sry for the delay response, I have no experience about NB-iot but I suppose the first step must be to have a way to make CoAP and DTLS working over NB-IOT in Java. In a californium context that means create new Connector(s) for NB-IOT.
@rikard-sics, That's a good news to know we could get a new contribution from RISE. :)
But I ask myself how we could handle this because as explained we plan to firstly release a 1.0.0 of Leshan which supports LWM2M v1.0.x. (so without 1.1 feature)
Maybe we could integrate this in another branch of Leshan which would aim to support LWM2M v1.1.
I suppose the contribution is pretty big, right?
Did you plan to continue to actively maintain this part of the code after your contribution?

It seems there is some interests about Observe-Composite and Cancel Observation-Composite at https://github.com/eclipse/californium/issues/881.

@rikard-sics, That's a good news to know we could get a new contribution from RISE. :)
But I ask myself how we could handle this because as explained we plan to firstly release a 1.0.0 of Leshan which supports LWM2M v1.0.x. (so without 1.1 feature)
Maybe we could integrate this in another branch of Leshan which would aim to support LWM2M v1.1.

Yes it could make sense to put it in a separate LWM2M 1.1 branch since OSCORE is not part of LWM2M 1.0.x

I suppose the contribution is pretty big, right?

Actually the contribution is not that big since we made it very targeted on providing OSCORE support. Since the actual code for OSCORE communication is in Californium, for Leshan it was more about adding code to use it.

Did you plan to continue to actively maintain this part of the code after your contribution?

This work is part of a joint project with Ericsson and for the future we have the ambition to continue to use and support this code.

We at HPE are interested in developing 1.1 features like CBOR, Composite Read,Write,Observe., Bootstrap trigger and Non-IP transport. We will start a new branch and contribute in coming days.

@yemkay  : i would like to request you, please share further information once 1.1 feature available to use

@yemkay, good to know :) ! There is already some contribution about CBOR :#656 . If you are interested by this subject. (It's the very beginning of the contribution)

@rikard-sics, That's a good news to know we could get a new contribution from RISE. :)

Just to come back to this regarding OSCORE in Leshan. Would it be fine if we made a pull request with the code we currently have putting it into a separate branch of Leshan? I suppose such a branch would have to be created first?

@rikard-sics I created a 2.0.x branch and its jenkins job.
I suppose you need OSCORE feature from Californium, so the first step will be to wait for a Californium v2.0.0M14, right ?
Please if you can try to make several simple, little, self-sufficient PRs. This could help review and integration. :pray:

@rikard-sics I created a 2.0.x branch and its jenkins job.
I suppose you need OSCORE feature from Californium, so the first step will be to wait for a Californium v2.0.0M14, right ?
Please if you can try to make several simple, little, self-sufficient PRs. This could help review and integration.

Thanks a lot for creating the branch.
I see that Californium 2.0.0-M14 has now been released. I will proceed with making smaller pull requests with parts of our code as you requested.

@sbernard31, just to let you know  I plan to create a PR to integrate Californium 2.0.0-M14 this afternoon.

@rikard-sics branch 2.0.x is ready with cf 2.0.0-M14.

@rikard-sics oops not so ready, build failed because of new legal bundle in californium. I will try to fix it.

@rikard-sics this time it's really OK.

@rikard-sics this time it's really OK.

Thanks for setting up the branch. I will proceed with the pull request in steps as you mentioned.

Is there any estimated time frame as to when lwm2m 1.1 is supported?

Is there any estimated time frame as to when lwm2m 1.1 is supported?

Question : what means "LWM2M 1.1 is supported" ? Do you mean full support of all defined features.. Even for 1.0 we didn't cover 100% of the specification. So you should ask yourself which part of the specification you need and share this with us. This could help to define priorities !
Anyway, I will not be able to give you any date. This is just the beginning for 1.1 implementations. Some contributors just started to work on this. Personally, I'm focus on the version 1.0.x.  and maybe I will be able to start to develop some 1.1 features at the end of the year.
All the work about LWM2M 1.1 is available in branch 2.0.x.

Is OSCORE available in  branch 2.0 now ? Thanks.

Is OSCORE available in branch 2.0 now ? Thanks.

There is an open pull request to add support for OSCORE communication between a Leshan client and server to the 2.0.x branch here:
https://github.com/eclipse/leshan/pull/718
More information can be found in that PR.

@sbernard31 , @rikard-sics , do you know the progress to implement "Send" Operation defined in LwM2M 1.1?  Has it been implemented, or is someone working on it now?
Thanks.
Kenny

@Kenny-SZ, as far as I know nobody is working on this.

@sbernard31, thanks for your response. In my opinion, Send" operation is a very important functionality, for example: when there is a fault in a LwM2M client, it should send it out immediately in order for operators to be aware of this fault, instead of waitting for obervation from the LwM2M server. Please prioritize it if possible, thanks a lot.
B.R.
Kenny

@Kenny-SZ  we agree that send is really good feature because observation has too many drawback.
(https://github.com/OpenMobileAlliance/OMA_LwM2M_for_Developers/issues/171)

Hi, just curious on how 1.1 topic is proceeding? I mean standard is already moving to 1.2, so I think some kind of 1.1 subset should be prioritized.
For me the most important feature would be SEND, as that would enable use cases leveraging LwM2M for real-time control and alarms, like what is currently doable with MQTT (more or less successfully)

@henris42, I agree with you (see https://github.com/eclipse/leshan/issues/563#issuecomment-523350573)
The only missing part is time to do it :-)

@henris42, I agree with you (see #563 (comment))
The only missing part is time to do it :-)

One problems is to have some kind of incentive to contribute.
Observation: most activity seem to happen in master branch.
You have also a policy not to take any non 1.0.2 changes to master.
As an example you have 2.0.x branch which is over year old and doesn't really invite contributing. There are several other work branches that has "expired" too.
Where as in my view only LWM2M 1.1 makes LWM2M actually usable for deployments as that has better EST support than 1.0.2. There are other features like send that was mentioned also in here.
Sticking to LWM2M 1.0.2 is making current Leshan releases uninteresting.
Currently there does not seem to be good path to contribute changes with target of having LWM2M 1.1 features supported in Leshan releases.
Would you be willing to start taking 1.1 (or later) changes to your master branch? If master branch would be following latest released standard then it could bring incentive for others to contribute.
Some changes also require a bit larger changes making this API protection mechanism a bit harder to tackle. Used quite a lot of time to fight that when I was testing some certificate usage improvements with Leshan code base.

most activity seem to happen in master branch
You have also a policy not to take any non 1.0.2 changes to master.You have also a policy not to take any non 1.0.2 changes to master.

This is correct because main contributor was interested in a 1.x release of Leshan which supports LWM2M 1.0.x
We started to develop Leshan long time ago and we didn't want to shift from LWM2M 1.0.x to LWM2M 1.1 without providing a polished release with stable API. Now Leshan 1.0.x is released and we plan a last 1.1 version for LWM2M 1.0.x, then we will mainly focus on LWM2M 1.1 (so Leshan 2.0)

As an example you have 2.0.x branch which is over year old and doesn't really invite contributing. There are several other work branches that has "expired" too.

We created this branch to help some contributor to start to work in Leshan 2.0 which will supports LWM2M 1.1 waiting we finish the work on LWM2M 1.0.x but contributors disappear without saying a word. Currently the only active one (LWM2M 1.1) works on OSCORE in its own branch and I take time to review it works. (as I tried to do for SenML before contributor vanished)

Sticking to LWM2M 1.0.2 is making current Leshan releases uninteresting.

I hope you mean "uninteresting for me" or this sounds a bit peremptory.

Currently there does not seem to be good path to contribute changes with target of having LWM2M 1.1 features supported in Leshan releases.

Because as explained, there was no more contributors who need that. But if needed I can create it again. I mean an up to date 2.0.0 branch.

Some changes also require a bit larger changes making this API protection mechanism a bit harder to tackle. Used quite a lot of time to fight that when I was testing some certificate usage improvements with Leshan code base.

We are using semantic versioning and as explained above we aim a version 2.0 of Leshan for LWM2M 1.1 so API can be break so don't worry about that.

+1 for EST. I think that would be a key component, if there is any willingness to make this a platform that can be used on real production installations. I recommend only real certificate-based provisioning processes to my consulting clients.
But, I'm not really talking about CoAP EST, I'm not aware of any real implementations of that. But forwarding certificate-based bootstrap to a normal EST service (like OpenXPKI) would be really good concept.
I do agree with @dachaac, Leshan needs a true roadmap to LwM2M 1.2 (via 1.1 naturally)! You cannot attract contributors with 1.0 stuff, at least in my point of view it simply does not fulfill any of my current use cases.

most activity seem to happen in master branch
You have also a policy not to take any non 1.0.2 changes to master.You have also a policy not to take any non 1.0.2 changes to master.

This is correct because main contributor was interested in a 1.x release of Leshan which supports LWM2M 1.0.x
We started to develop Leshan long time ago and we didn't want to shift from LWM2M 1.0.x to LWM2M 1.1 without providing a polished release with stable API. Now Leshan 1.0.x is released and we plan a last 1.1 version for LWM2M 1.0.x, then we will mainly focus on LWM2M 1.1 (so Leshan 2.0)

Ok.

As an example you have 2.0.x branch which is over year old and doesn't really invite contributing. There are several other work branches that has "expired" too.

We created this branch to help some contributor to start to work in Leshan 2.0 which will supports LWM2M 1.1 waiting we finish the work on LWM2M 1.0.x but contributors disappear without saying a word. Currently the only active one (LWM2M 1.1) works on OSCORE in its own branch and I take time to review it works. (as I tried to do for SenML before contributor vanished)

Problem with these temporary branches is that they do not guarantee that the work gets integrated or maintained. Eg. it is more or less same thing as having a personal fork. Having a single feature development in branch is perfectly fine until one can do PR.
I kinda understand the vanishing part here.
Let me bring some views on this -- feel free to have a different view.
If you are working in a company and get paid to do stuff that brings value for the company then contributing in open source project that is evolving and you get added maintenance bonus as there are others also contributing and that project brings releases then it is much easier to get time (and money) allocation for such activity.
Now if one sees that this might be a good idea to contribute and you do that for in example this 2.0.x branch and it takes a year and there is no release from that branch -- it does not anymore bring added value for business. There is not even guarantee that the contributed time (and money) would bring in future added value for any entity. -> less chance to get contributions from business developers.
Now if you are developing just for fun or to learn new tech then you are more or less willing to use part of your (free) time to develop something. Then in this scenario if you use your time then seeing your name in list of committers for particular release of the software gives nice warm feeling that you did nice thing for the project. If it is in temporary branch then you do not get this nice feeling as it never gets released. These kind of developers often want to target leading edge of things.
Then we of course have die-hard developers category where you own the project and its your baby and want it to excel. :)

Sticking to LWM2M 1.0.2 is making current Leshan releases uninteresting.

I hope you mean "uninteresting for me" or this sounds a bit peremptory.

For us but yes. After using some time with Leshan we finally decided to go for commercial option as that already provided LWM2M 1.1 features that we felt that our deployment model needed. And at the time Leshan seemed to be slowly moving and was not ready to accept the changes in newer specifications that we were looking for.

Currently there does not seem to be good path to contribute changes with target of having LWM2M 1.1 features supported in Leshan releases.

Because as explained, there was no more contributors who need that. But if needed I can create it again. I mean an up to date 2.0.0 branch.

You are free to use development model you see best fit -- but how would you see following model:
"Master" branch would always be the main development focus trying to match latest released LWM2M standard. Eg. being leading edge of things.
When master has good level of features then one would make a periodical release. Even one commit could be enough to do the release if that brings something new or bugfix or something like that. This gives a feeling that project is maintained as there are new releases coming. This factor is very important when one is choosing whether to use some library or software.
When one feels that now certain milestone has been completed then master branch could be branched for maintenance/long term support release branch (should there be a need for one). Master branch would continue the original goal of keeping up to date and welcoming contributions. Let's assume one would have created "1.x" branch to help in providing businesses that need stable ground a more "long term support release" option. As those long term release branches only benefit users that need such feature they needs sponsorship (as form of time allocation from developers)  -- so if you have one good for you.
Then later when time goes on it might be a time to make a "2.x" LTS branch from "master".
This kind of model gives a project forth going feeling that stuff is happening and welcomes a bit more external contributors to contribute. And if someone sticks to LTS branches then those entities are more likely to give support for those branches (wouldn't hold my breath thou...). Trick is then to get LTS contributions also back to "master" branch to keep that it in "leading edge". (many projects do require commit first to master and then the LTS branches)
I am willing to work and provide improvements in areas of certificates and EST support but I don't want that my code ends up in non-maintained temporary branch (or personal fork). Might still do that for other reasons but then I acknowledge that it is likely that I don't even try to contribute back and just do it in quick and dirty model.
I don't want to cause you extra work on re-creating 2.0.x branch so that you might receive some contributions for that -- I don't personally see that model viable contributing method. I feel better to have volatile working branch for a feature and then just rebasing periodically with master to receive new changes from there.
But in any case I would like to know expectancy if those kinda of changes would be accepted and when that would be.
Which ever model you go for -- please do tell your expectancy/model for possible contributors as those might determine whether to spend time on project or not.

Some changes also require a bit larger changes making this API protection mechanism a bit harder to tackle. Used quite a lot of time to fight that when I was testing some certificate usage improvements with Leshan code base.

We are using semantic versioning and as explained above we aim a version 2.0 of Leshan for LWM2M 1.1 so API can be break so don't worry about that.

Ok.

I'm not sure where you try to go with this long post.
My feeling is that :

you really really want that Leshan implements LWM2M 1.1.
you sounds not satisfied by the way the project is managed.
you hesitate to contribute because you are afraid that Leshan will never release a version with LWM2M 1.1 features
you consider master as the only durable branch

1) 2)  We also want to implement LWM2M 1.1 but until now we have higher priority. We started to work on Leshan when LWM2M 1.0 was only a draft and visibly this is faster for OMA  to write specification than writing working piece of code for us. We wanted to release a stable version of Leshan which supports LWM2M 1.0 before to target LWM2M 1.1. At Sierra we are using LWM2M 1.0 with hundreds of thousands devices in production.
Now we are focusing on Leshan 1.1 which is currently the master branch.
After that we could probably be able to work on Leshan 2.0 focusing LWM2M 1.1 and this will probably be the master branch.
@rikard-sics from RISE is working on OSCORE feature since several months and this will be integrated in Leshan 2.0 when this will be ready.
@cavenaghi9 was working on senML but vanished without any words so PR are pending but could be used as base when we will work again on this.
If somebody want to work on LWM2M 1.1 feature, he is welcome. Again if it helps I can update a 2.0.0 branch now or I will do that after the leshan 1.1 release.
If somebody want a release with LWM2M 1.1 features, we can deliver a milestone release (e.g. 2.0.0-M1).
We will probably go to a lot of milestone release  and when we will consider the 2.0.0 API stable we will deliver the stable version, then 2.x version without API break if needed. (like we do for 1.x)
By the way the development model you proposed is pretty much the one we use. We try to do the same except that we need to deal with several version of the standard which make this more difficult. Until now we focus on 1 LWM2M version at the time. This could maybe change in the future if this was finally consider as a mistake.
3) I understand your doubt. Unfortunately I can not see the future but AFIAK my company still want to make Leshan forward and LWM2M 1.1 is the next step. FMPOV, the best way to consolidate this is to contribute.
4) master is not the only one development branch. master is just the most active branch.

Problem with these temporary branches is that they do not guarantee that the work gets integrated or maintained.

Why are you considering all other branches than master as temporary ?
1.0.x : is not a temporary branch
1.x : will not be a temporary branch (current master)
2.0.x : is not intended to be a temporary branch (future master)
Other branches are just feature branch, they are deleted once there are integrated in master.
(sometime this is abandoned one which could still be useful, so we keep it)
I understand that 2.0.x branch afraid you because this branch is currently abandoned. This is just because it is not used anymore, but if this is needed again we can revived it.  (we talked about this here)
So, If you want to contribute you are welcomed.
If you have concrete issue when contributing, just tell me and we will try to find a solution. (please try to be concise)
If you need a release you can ask also.
You can base your work on master if you prefer or I update you the 2.0.0 branch.
I could create you a dedicate branch if needed.
To get a rid of revapi in master,  use -Drevapi.skip=true (as for 2.0 API break will be allowed)

@sbernard31 All this makes me ask why there are multiple active branches? Community contributors do not want to do backports to multiple branches.
Are you also saying that you are going to rebase the project with the 2.0.x?
All this seems very complicated to me. IMHO the plain master should just track the standard, and if you need maintained branches for product purposes, you fork those. Main master has only requirement that it builds and "about works" with no guarantees.

All this makes me ask why there are multiple active branches?

Leshan v1.x.x is for LWM2M 1.0
Leshan v2.x.x should be for LWM2M 1.1
1.x branche is for minor release of v1 (new feature no API break)
1.0.x is for patch release of v1.0 (no API break, only bug fix)
Very simple and common way to manage software verison : https://semver.org/

Community contributors do not want to do backports to multiple branches.

What makes you think you need to do that ? If you are interested by LWM2M 1.1 you don't care about other branches ...

Are you also saying that you are going to rebase the project with the 2.0.x?

In the future the v2.0.x branch will start from the v1.1 release and then v1.x and v2.x  branches will live their own lives. (no more rebase for 2.0.x)
The current 2.0.x branch was just here waiting main maintainers was able to finish their work on 1.x and let contributors begin to work on LWM2M 1.1.

IMHO the plain master should just track the standard, and if you need maintained branches for product purposes, you fork those. Main master has only requirement that it builds and "about works" with no guarantees.

I have strong doubt this could have help in the previous situation.
@henris42, @dachaac, I don't know if you are really aware of that but your current approach could be considered as inappropriate.
It seems you are or you were using Leshan and I never see you before (no issues, no comments, no PR, no thanks you) and first time you interact with us, this is about organization criticism, missing features and our incapacity to follow the standard.
You never tried to work with us but you want to remodel the organization.
I understand your fear about contributing for nothing and that Leshan  doesn't move fast enough on LWM2M 1.1, I hope I answer to this fear.
Now If you are interested in contributing concretely, welcome on board !
If you face any concrete issue, we will try to resolve this together.

@sbernard31 I have been following the progress in background for couple of years.
My worry was that if there is only one or two developers working on master you could use a bit help in there. But as I mentioned already feel free to use whatever model you see fit best.
I have been rebasing my work from time to time and there seems to be some conflicts from time to time so this is kinda causing some hesitation to work.
In order to fix some revapi issues I had to increase already version to 1.1.0 -- now that you have done that also in master perhaps the best approach here would be to just propose changes in smaller PR's.
Perhaps I should not try to finalize the feature right away to be as complete as it can but instead slice it to smaller integradeable parts.
I can write issue tickets describing the issues and then propose a change for problems I have tried to solve. Perhaps that kind of approach will bring us to solution faster. I will however like to target master branch as it feels better target -- I let you judge if something is too early for inclusion.
I start with certificates and EST parts and lets see how that evolves.

+1 for EST. I think that would be a key component, if there is any willingness to make this a platform that can be used on real production installations. I recommend only real certificate-based provisioning processes to my consulting clients.
But, I'm not really talking about CoAP EST, I'm not aware of any real implementations of that. But forwarding certificate-based bootstrap to a normal EST service (like OpenXPKI) would be really good concept.

Our current approach is to make CoAP-EST to act as Registration Authority and then have separate EST service that does the actual PKI work -- with this approach there is no need to implement CA functionality in LWM2M service side -- only verify that request is good to be passed forward.
I started writing things out in public today to wiki in here:
https://github.com/dachaac/leshan/wiki/Improving-support-for-LWM2M-with-Certificates

I created a ticket for tracking EST support: https://github.com/eclipse/leshan/issues/859
I hope that this gets this feature forward.

Leshan 1.1.0 is out and so master will now be used to develop Leshan 2.0.0. So old 2.0.x branch is no more needed anymore (I will delete it). Code from 2.0.x was cherry-picked/adapted in master.

Hi guys, currently Im trying to find resource instance R/W operation feature. Is current master branch supports it? I know that it is part of lwm2m 1.1 but maybe it is already implemented?

@zakharenkodmytro, R/W resource instance was not available in v1.0.x of LWM2M and not yet implemented in leshan master.

@zakharenkodmytro, R/W resource instance was not available in v1.0.x of LWM2M and not yet implemented in leshan master.

Thank you for prompt response. Do you know if 1.1  of Lwm2m is implemented in other branches OR some road map in nearest time?

master branch now targets lwm2m 1.1 (I probably need to update the README about that :thinking:)
Looking at issue and PR you could see trending topic (OSCORE, Certificate, v1.1 model support, unsigned integer support)
I could have a look at how this is impacting to support it and contribution are welcomed too.

Thank you for update, it is good to know that now master targets v1.1. I will try to contribute , sure. Just let me know if someone else work on resource instance feature already.

thanks, let's communicate through #877 then.

The first milestones release contains some LWM2M 1.1 feature is out : 2.0.0-M1

A new milestone release containing new LWM2M 1.1 features is out : 2.0.0-M2.

Just to let you know that Read Composite(#958) and Write Composite(#959) operation support are in development.

Just to let you know that Read Composite(#958) and Write Composite(#959) operation support are in development.

Thanks for update, i will check it out, i have no idea for now what it is)

Thanks for update, i will check it out, i have no idea for now what it is)

A first try about supporting Send Operation is available at #971.

A new milestone release containing new LWM2M 1.1 features is out : 2.0.0-M3.
:warning: People who are using x509 and/or RPK with Leshan v2.0.0-M1 or v2.0.0-M2  MUST upgrade to 2.0.0-M3 version for security reason. :warning:

A new milestone release containing new LWM2M 1.1 features is out : 2.0.0-M4. :tada:
Please do not hesitate to test and give us feedback. :pray:
We are also interested to know which features are missing you the most.
Look at the roadmap,  already open issues or  LWM2M 1.1 supported features,  LWM2M 1.0 supported features or anything we missed.

A new milestone release containing new LWM2M 1.1 features is out : 2.0.0-M5. :tada:
We still take feedback about the release or the needed features (see comment just above :point_up:) :pray:
Next release (M6) will be about some cleaning (like removing old UI demo, keeping only one JSON or CBOR lib, more feature in demos, some cleaning or more little missing feature about LWM2M v1.1 ...)
Then for M7,  we will probably try begin to work on one of the bigger task: refactoring code to allow
to add more transport Layer (#1025).

Great, thanks
On Thu, Oct 21, 2021 at 9:38 AM Simon @.***> wrote:

I forgot to mention that M6 should also be the first release which will be
built with java 8 ( see #924
https://github.com/eclipse/leshan/issues/924)
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/eclipse/leshan/issues/563#issuecomment-948627037, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/ADROMBLGFCUANRAEYMHLLR3UIAJWBANCNFSM4FS6VONA
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

A new milestone release about  LWM2M 1.1 support is out : 2.0.0-M6. :tada:
About M7, next tasks should be about :

Refactoring about CoreLink Format and LWM2M Attributes. (#1197, #1118)
I hope a minimal viable feature for OSCORE  https://github.com/eclipse/leshan/issues/725 :crossed_fingers:

Adding more transport Layer (#1025) will probably be delaied to M8.

:warning: 2.0.0-M2 to 2.0.0-M6 are affected by security issue because of com.upokecenter.cbor dependency.
This concerns you if you are using CBOR or SenML-CBOR decoding.
There is no milestones release planned at short term,  waiting you should force the  com.upokecenter.cbor version to 4.5.2.

A new milestone release about  LWM2M 1.1 support is out : 2.0.0-M7. :tada:
This 2.0.0-M7 contains com.upokecenter.cbor v4.5.2 which fix the security issue above :point_up:.
About M8, next tasks should be about :

Add Timestamped Nodes support to Send Operation at Client side (https://github.com/eclipse/leshan/issues/1228)
still trying to get a minimal viable feature for OSCORE (https://github.com/eclipse/leshan/issues/725) :crossed_fingers:

About OSCORE, there is testable demos in oscore branch.

A new milestone release about  LWM2M 1.1 support is out : 2.0.0-M8. :tada:
Main focus for M9  : Adding more transport Layer (https://github.com/eclipse/leshan/issues/1025)

Maybe I missed it, but for now, there is now schedule day for a 2.0.0 release?
I ask, because depending on the timeline, a cleaned up Californium 4.0.0 may be better for long term.

Correct, there is no release day scheduled.
I think mandatory feature for 2.0.0 is at least #1025 and I guess this will be a long task to do.
I also hope we will have a usable OSCORE feature but depends a lot of @rikard-sics and how much he can move forward on this at californium side. (at worst this will be an experimental only feature)
Maybe an experimental support of coap over TCP based on californium.
And probably more little API improvement or refactoring.
So lot of work to do and so probably no 2.0.0 soon.
If one or more major release of californium is released during the development phase of Leshan 2.0.0 we will integrate it as soon as possible.
If needed, I can let you know when will be soon of a 2.0.0 release.

A new milestone release about  LWM2M 1.1 support is out : 2.0.0-M9. :tada:
Main focus for M10  : Adding more transport Layer (https://github.com/eclipse/leshan/issues/1025)

A new milestone release about  LWM2M 1.1 support is out : 2.0.0-M10. :tada:
This should be the last milestone release before massive changes about Transport Layer Abstraction. Lot of the new API is already in master.  If you are using Leshan 2.0.0-Mx  or if you are curious about those changes, :loudspeaker:  we strongly encourage you to take a look at https://github.com/eclipse/leshan/issues/1025#issuecomment-1373824399 :loudspeaker:

A new milestone release about  LWM2M 1.1 support is out : 2.0.0-M11.
:loudspeaker: : This is first Milestone Release containing new Transport Layer Abstraction (GH-1025). This is massive changes and maybe not yet fully mature. So please read :warning: release  warning before to use it.

A new milestone release about LWM2M 1.1 support is out : 2.0.0-M12.
:loudspeaker: : This is second Milestone Release containing new Transport Layer Abstraction (GH-1025). This is massive changes and maybe not yet fully mature. So please read :warning: release warning before to use it.

A new milestone release  is out : 2.0.0-M13.
:loudspeaker: : This mainly a security fix of 2.0.0-M12, please read release description :warning:

A new milestone release is out : 2.0.0-M15.
📢 : Thx to new Transport Layer Abstraction  (GH-1025), this release contains a very experimental CoAP over TCP (and TLS) provider based on java-coap. Please do not hesitate to try it and give us feedback.
Next milestone (M16) should contain :

mainly (only?) a refactoring about new module design.
maybe some little bug fixes.

So lot of class we be moved and new maven module will be created but behavior should not changed.

A new milestone release is out : 2.0.0-M16.
:loudspeaker: : As plan this release is mainly about new maven module refactoring, so a lot of classes was moved and new maven module was created/renamed but behavior should not have changed. See Module Name and API Break.
This is strongly recommended to migrate to this version before to migrate to future 2.0.0-M17.

any plan for M17? I'm mainly interested in the Californium upgrade which fixes a memory leak

fix: remove connections in connectionsByPrincipal map when evicting connections

any plan for M17? I'm mainly interested in the Californium upgrade which fixes a memory leak

I created a dedicated issue about that : https://github.com/eclipse-leshan/leshan/issues/1670

A new milestone release is out : 2.0.0-M17.


Secretless broker demo on GKE

Request for a new public Conjur project in CyberArk GitHub
Current project source: https://github.com/quincycheng/secretless-broker-on-gke
Current maintainer: Quincy Cheng, @quincycheng
Desired project URL: https://github.com/cyberark/secretless-demo-on-gke
Brief description of project:
This repo contains scripts and files for deploying secretless broker demo on GKE with Istio enabled
Anticipated certification level: Community

See the comment here: https://github.com/cyberark/conjur-template/issues/23#issuecomment-771093087

Based on the convo in #23, I created https://github.com/conjurdemos/secretless-demo-on-gke and ensured you'll have write access once you accept the invite to the conjurdemos org. I don't right now have branch protection on to require PRs for developers with write access - please let me know if you'd prefer to have this turned on. Thanks!


state: support state:ignore

Introducing InterfaceState.IGNORE for:
* The ignored interface will not be changed when applying desire state.
* The state verification will not be impacted by ignored interface.
Test cases added.

I am fine with the current approach but I feel like it could be confusing to use state to mark the interface as ignore. Because ignore it is not a state itself. Maybe it would be better to add a new parameter that could be mark:ignore or something like that, indeed that could be useful to mark the interfaces in the future, what do you think?

I am fine with the current approach but I feel like it could be confusing to use state to mark the interface as ignore. Because ignore it is not a state itself. Maybe it would be better to add a new parameter that could be mark:ignore or something like that, indeed that could be useful to mark the interfaces in the future, what do you think?

Adding another field is odd. I think that when applying, "ignore" means... "do not do UP, DOWN or DISABLE" which translates to not touching it. So it seems ok to me.
When reporting, it will never be IGNORE, right? This merits a comment in the commit, on the API and in documentation.

I am fine with the current approach but I feel like it could be confusing to use state to mark the interface as ignore. Because ignore it is not a state itself. Maybe it would be better to add a new parameter that could be mark:ignore or something like that, indeed that could be useful to mark the interfaces in the future, what do you think?

Adding another field is odd. I think that when applying, "ignore" means... "do not do UP, DOWN or DISABLE" which translates to not touching it. So it seems ok to me.
When reporting, it will never be IGNORE, right? This merits a comment in the commit, on the API and in documentation.

The ignore is only used when applying desire state.
The use case is RHV/oVirt is expecting nmstate/NM don't touch the TUN/TAP interface managed by libvirt.
Currently, nmstate don't touch them as they are unknown to us. But I think the correct way is mark then as ignored in desire state.

QE approval request sent. Please wait test feedback before merge it.

Applied 'state: ignore' to main port and subordinate port respectively, it works well.

Timeout on waiting comsumer QE. Merging.


hoist out scaling in tensor product, composition

\circ(A::AbstractSciMLOperator, B::ScaleOperator) = B.\lambda * \circ(A, B.L)

any performance advantage given we can't really fuse scalar products...


No idea how to make this work

Cannot read property 'toCSV' of undefined
<button type="button" class="btn btn-sm btn-primary ml-2" onclick="csvExport()">CSV</button>

              <script>
                  var datatable = new simpleDatatables.DataTable("table", {
                      exportable: {
                          type:'csv',
                          download:true,
                          escapeHTML: true,
                          includeHeadings: true
                      }
                  });

                  function csvExport() {
                    datatable.exportable.toCSV();
                  }
              </script>

Please provide some sample code on how to make this work using https://github.com/fiduswriter/Simple-DataTables

It doesn't work. It works on the assumption that there's an object named window.DataTable (Here https://github.com/Mobius1/Exportable/blob/9a3857f3e2ca0e24b6c10fa9933dfd04c4142952/datatable.exportable.js#L23).
If it can't find it, it will not extend the library. You can change it yourself or just resort to the old function
myInstance.export({     type: 'csv',     download: true })


Enable env vars in file spec

Hi guys,
I want to upload a created a zip archive called "$(System.TeamProjectId)_$(Build.BuildId).zip" with the Generic Upload task. Unfortunately I see no way to use variables in the json spec. "*.zip" doesn't work as my ArtifactsDirectory contains additional zips I don't want to upload.
Thank you in advance and
best regards,
Gereon

@gereon77,
Did you try the following spec?
{
  "files": [
    {
      "pattern": "$(System.TeamProjectId)_$(Build.BuildId).zip",
       "target": "YOUR_REPO/SOME_PATH/"
    }
  ]
}

Currently, only the task configuration spec support variables.

Yes. I use exactly this spec and when I tried it the first time it failed because no artifacts were uploaded. Error message was "Could not find file $(System.TeamProjectId)_$(Build.BuildId).zip". I tried it again right now and it worked as expected. This issue can be closed.
Thanks.


How to gain Chikusei_imdb_128.pickle？

How to gain Chikusei_imdb_128.pickle？I‘m confusing. T.T

Have you found it ? I'm also experiencing the same issue. T.T


Set or update variables from github actions

Could you please implement setting or updating env variables from github actions?
on:
  pull_request:
    types: [opened, closed, push]
jobs:
  deploy-preview:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: tighten/laravel-deploy-preview@v1
        with:
          forge-token: ${{ secrets.FORGE_TOKEN }}
          servers: |
            ***** *****
          env:
              NEW_VAR: ${{ secrets.NEW_VAR }}
              ...

Just to be clear, you mean setting them in the deployed site? So the preview app in your example would have NEW_VAR set in the .env file on the Forge server? If so, yeah, great idea 👍🏻

Yep! That is what I mean!
Do you need any help from my side?
I really need this feature)
@bakerkretzmar

@YevheniiRybak yes, if you have an idea for how to implement it please send a PR! Otherwise I'll definitely take a stab at it in the next few weeks.

Added in v1.1 💪🏻


How to show a quick filter allowing multiple selections  in a form

How to show a quick filter allowing multiple selections in a form. I am new to Serenity

Look at the customers table in the northwind sample. Specifically, look at how the Representatives are matched.

Please see attached screenshot. Instead of TExtboxes i want to create multi select dropdown list.

As has been mentioned sayuga, see
https://github.com/volkanceylan/Serene/blob/master/Serene/Serene.Web/Modules/Northwind/Customer/CustomerRow.cs
You have to use same behavior of field Representatives and use attribute     [LookupEditor(typeof(EmployeeRow), Multiple = true)] and  [LinkingSetRelation]
    [LookupEditor(typeof(EmployeeRow), Multiple = true), NotMapped]
    [LinkingSetRelation(typeof(CustomerRepresentativesRow), "CustomerId", "EmployeeId")]
    [MinSelectLevel(SelectLevel.Details)]
    public List<Int32> Representatives
    {
         get { return Fields.Representatives[this]; }
         set { Fields.Representatives[this] = value; }
    }

Awesome thanks its working.

@okowiro please how did you handle the saving of the multiple ids in code

The saving of the multiple Id's is because it is matching through the linking set relationship. Just look through the CustomerRow code under the representative field. If you pay it close attention it's actually fairly obvious. Hint: the field is a type "List"


Fixed an indentation in the servicemonitor.yaml

What this PR does / why we need it:
Fixes the indentation in the servicemonitor.yaml file that  fails deployment.
Which issue this PR fixes
(optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close that issue when PR gets merged)

fixes #

Special notes for your reviewer:
Checklist
[Place an '[x]' (no spaces) in all applicable fields. Please remove unrelated fields.]

[x] DCO signed
[ ] Chart Version bumped
[ ] Variables are documented in the README.md
[ ] Title of the PR starts with chart name (e.g. [stable/chart])

/ok-to-test
/lgtm


Components are too tightly coupled

I love what you guys are doing, but it seems like your components are all too tightly coupled together, at least for the way that I typically build an app.
I generally build an initialization scene which holds all my objects that are common in most, if not all scenes, such as my Main Camera, my managers (input, spatial, keyword, etc) and any other items that I don't want to have to duplicate in all my scenes.  I would love to use something like the Bounding Box that you guys have, but I can't split up the different pieces across my scenes and still get it to compile.
I tried adding the AppBar and BoundingBox prefabs to my initialization scene, since they would get created upon application launch and persisted across all scenes because of a DoNotDestroy on their parent.  However, when I changed scenes and tried adding a BoundingBoxTarget to my object that I wanted targeted, I get errors that says i'm missing the AppBar and BoundingBox in my scene, which is true at design time, but not at runtime, however I can't compile past that error.
Perhaps the pattern I am using for my Apps is unusual, I'm not sure.  But as of right now, unless I want to duplicate these objects all over my project (which I would rather not), a lot of these components are not usable to me.

Hi Jesse,
You are correct in that what is committed as an example isn't the best from an extensible standpoint.  I was out for a couple weeks and didn't get a chance to look over all the examples.  There are generally 2 routes you can go down that I can quickly refactor the example for

Have a singleton that is the ManipulationManager and maintains reference to the shared BoundingBox and AppBar that get spawned from the prefabs.  This would allow for it to exist across scenes but would also mean that you wouldn't get custom bounding boxes for different objects if that's what you wanted.

Creating a ManipulationObject class that on start spawns and assigns a bounding box and an app bar for that object.  This would allow just attaching a component to get all the manipulation goodness without requiring another manager.

There are a couple other issues that should be addressed in the bounding box code specifically where using FindObjectByType is being used.  I'll work with the others to address those as well.
I'm going to go down the route of #1 since it's the path of least resistance and provides a bit more functionality from a manager standpoint though as a set of examples either pattern should be supported.
thanks,
-pat

Please sync to the latest changes with the Manipulation Manager added for controlling the bounding box and app bar across scenes.  I will look more into getting a "standalone" bounding box and manipulation object so that it can just be coupled with a prefab if you want.


Getting error while running on custom image.

Traceback (most recent call last):
  File "/usr/lib/python3.6/multiprocessing/process.py", line 258, in _bootstrap
    self.run()
  File "/content/iPERCore/iPERCore/services/preprocess.py", line 153, in run
    except Exception("model error!") as e:
TypeError: catching classes that do not inherit from BaseException is not allowed
		Pre-processing: digital deformation completed...
the current number of sources are 1, while the pre-defined number of sources are 2.
	Pre-processing: failed...

Whats could be the reason for this error and How can this be resolved?

Did you run this code on Colab? Could you provide the full command for debugging?

Did you run this code on Colab? Could you provide the full command for debugging?

model_id = "donald_trump_2"
src_path = ""path?=/content/iPERCore/assets/samples/sources/balayya/bal.PNG,name?=balayya""
ref_path = ""path?=/content/iPERCore/assets/samples/references/akun_1.mp4,"
"name?=akun_2,"
"pose_fc?=300|"
"path?=/content/iPERCore/assets/samples/references/mabaoguo_short.mp4,"
"name?=mabaoguo_short,"
"pose_fc?=400""
print(ref_path)
!python -m iPERCore.services.run_imitator
--gpu_ids     $gpu_ids
--num_source  $num_source
--image_size  $image_size
--output_dir  $output_dir
--model_id    $model_id
--cfg_path    $cfg_path
--src_path    $src_path
--ref_path    $ref_path
This is the command I was trying to run.
Before running this command, I created a folder called /balayya in assets/samples/sources with a picture bal.jpg
and also replaced name?=donald_trump_2\ with name?=balayya\
Is this the correct implementation?? If not, please mention the steps for testing on Custom images.

model_id = "donald_trump_2"
src_path = ""path?=/content/iPERCore/assets/samples/sources/balayya/bal.PNG,name?=balayya""
ref_path = ""path?=/content/iPERCore/assets/samples/references/akun_1.mp4,"
"name?=akun_2,"
"pose_fc?=300|"
"path?=/content/iPERCore/assets/samples/references/mabaoguo_short.mp4,"
"name?=mabaoguo_short,"
"pose_fc?=400""
print(ref_path)
!python -m iPERCore.services.run_imitator
--gpu_ids     $gpu_ids
--num_source  $num_source
--image_size  $image_size
--output_dir  $output_dir
--model_id    $model_id
--cfg_path    $cfg_path
--src_path    $src_path
--ref_path    $ref_path
This is the command I was trying to run.
Before running this command, I created a folder called /balayya in assets/samples/sources with a picture bal.jpg
and also replaced name?=donald_trump_2\ with name?=balayya\
Is this the correct implementation?? If not, please mention the steps for testing on Custom images.

model_id = "donald_trump_2"
src_path = ""path?=/content/iPERCore/assets/samples/sources/balayya/bal.PNG,name?=balayya""

ref_path = ""path?=/content/iPERCore/assets/samples/references/akun_1.mp4,"
"name?=akun_2,"
"pose_fc?=300|"
"path?=/content/iPERCore/assets/samples/references/mabaoguo_short.mp4,"
"name?=mabaoguo_short,"
"pose_fc?=400""

print(ref_path)

!python -m iPERCore.services.run_imitator
--gpu_ids $gpu_ids
--num_source $num_source
--image_size $image_size
--output_dir $output_dir
--model_id $model_id
--cfg_path $cfg_path
--src_path $src_path
--ref_path $ref_path

This is the command I was trying to run.
Before running this command, I created a folder called /balayya in assets/samples/sources with a picture bal.jpg
and also replaced name?=donald_trump_2\ with name?=balayya\
Is this the correct implementation?? If not, please mention the steps for testing on Custom images.

model_id = "donald_trump_2"
src_path = ""path?=/content/iPERCore/assets/samples/sources/balayya/bal.PNG,name?=balayya""

ref_path = ""path?=/content/iPERCore/assets/samples/references/akun_1.mp4,"
"name?=akun_2,"
"pose_fc?=300|"
"path?=/content/iPERCore/assets/samples/references/mabaoguo_short.mp4,"
"name?=mabaoguo_short,"
"pose_fc?=400""

print(ref_path)

!python -m iPERCore.services.run_imitator
--gpu_ids $gpu_ids
--num_source $num_source
--image_size $image_size
--output_dir $output_dir
--model_id $model_id
--cfg_path $cfg_path
--src_path $src_path
--ref_path $ref_path

This is the command I was trying to run.
Before running this command, I created a folder called /balayya in assets/samples/sources with a picture bal.jpg
and also replaced name?=donald_trump_2\ with name?=balayya\
Is this the correct implementation?? If not, please mention the steps for testing on Custom images.

change model_id = "donald_trump_2" to model_id = "balayya"
If you use "donald_trump_2", it will use the model of "donald_trump_2", which is pretrained by the image of trump.

change model_id = "donald_trump_2" to model_id = "balayya"
If you use "donald_trump_2", it will use the model of "donald_trump_2", which is pretrained by the image of trump.

Yes, I have changed model_id = "donald_trump_2" to model_id = "balayya" and kept everything as itis.
Error that I am facing now is,
`Process PreprocessConsumer_0:
Traceback (most recent call last):
File "/content/iPERCore/iPERCore/services/preprocess.py", line 77, in run
visual=True,
File "/content/iPERCore/iPERCore/tools/processors/base_preprocessor.py", line 72, in execute
src_img_dir = process_utils.format_imgs_dir(input_path, processed_info["src_img_dir"])
File "/content/iPERCore/iPERCore/tools/processors/process_utils.py", line 16, in format_imgs_dir
raise FileNotFoundError(f"{src_path} does not exist. Please provide a existing path.")
FileNotFoundError: /content/iPERCore/assets/samples/sources/balayya/bal.PNG does not exist. Please provide a existing path.
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/lib/python3.6/multiprocessing/process.py", line 258, in _bootstrap
self.run()
File "/content/iPERCore/iPERCore/services/preprocess.py", line 80, in run
except Exception("model error!") as e:
TypeError: catching classes that do not inherit from BaseException is not allowed
Pre-processing: digital deformation start...
Process HumanDigitalDeformConsumer_0:
Traceback (most recent call last):
File "/content/iPERCore/iPERCore/services/preprocess.py", line 136, in run
prepared_inputs = self.prepare_inputs_for_run_cloth_smpl_links(process_info)
File "/content/iPERCore/iPERCore/services/preprocess.py", line 210, in prepare_inputs_for_run_cloth_smpl_links
src_infos = process_info.convert_to_src_info(self.opt.num_source)
File "/content/iPERCore/iPERCore/services/options/process_info.py", line 140, in convert_to_src_info
src_infos = read_src_infos(self.vid_infos, num_source)
File "/content/iPERCore/iPERCore/services/options/process_info.py", line 233, in read_src_infos
pad_ids = np.random.choice(src_ids, need_pad)
File "mtrand.pyx", line 908, in numpy.random.mtrand.RandomState.choice
ValueError: 'a' cannot be empty unless no samples are taken
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/lib/python3.6/multiprocessing/process.py", line 258, in _bootstrap
self.run()
File "/content/iPERCore/iPERCore/services/preprocess.py", line 153, in run
except Exception("model error!") as e:
TypeError: catching classes that do not inherit from BaseException is not allowed
Pre-processing: digital deformation completed...
the current number of sources are 1, while the pre-defined number of sources are 2.
Pre-processing: failed...`

Yes, I have changed model_id = "donald_trump_2" to model_id = "balayya" and kept everything as itis.
Error that I am facing now is,
`Process PreprocessConsumer_0:
Traceback (most recent call last):
File "/content/iPERCore/iPERCore/services/preprocess.py", line 77, in run
visual=True,
File "/content/iPERCore/iPERCore/tools/processors/base_preprocessor.py", line 72, in execute
src_img_dir = process_utils.format_imgs_dir(input_path, processed_info["src_img_dir"])
File "/content/iPERCore/iPERCore/tools/processors/process_utils.py", line 16, in format_imgs_dir
raise FileNotFoundError(f"{src_path} does not exist. Please provide a existing path.")
FileNotFoundError: /content/iPERCore/assets/samples/sources/balayya/bal.PNG does not exist. Please provide a existing path.
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/lib/python3.6/multiprocessing/process.py", line 258, in _bootstrap
self.run()
File "/content/iPERCore/iPERCore/services/preprocess.py", line 80, in run
except Exception("model error!") as e:
TypeError: catching classes that do not inherit from BaseException is not allowed
Pre-processing: digital deformation start...
Process HumanDigitalDeformConsumer_0:
Traceback (most recent call last):
File "/content/iPERCore/iPERCore/services/preprocess.py", line 136, in run
prepared_inputs = self.prepare_inputs_for_run_cloth_smpl_links(process_info)
File "/content/iPERCore/iPERCore/services/preprocess.py", line 210, in prepare_inputs_for_run_cloth_smpl_links
src_infos = process_info.convert_to_src_info(self.opt.num_source)
File "/content/iPERCore/iPERCore/services/options/process_info.py", line 140, in convert_to_src_info
src_infos = read_src_infos(self.vid_infos, num_source)
File "/content/iPERCore/iPERCore/services/options/process_info.py", line 233, in read_src_infos
pad_ids = np.random.choice(src_ids, need_pad)
File "mtrand.pyx", line 908, in numpy.random.mtrand.RandomState.choice
ValueError: 'a' cannot be empty unless no samples are taken
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/lib/python3.6/multiprocessing/process.py", line 258, in _bootstrap
self.run()
File "/content/iPERCore/iPERCore/services/preprocess.py", line 153, in run
except Exception("model error!") as e:
TypeError: catching classes that do not inherit from BaseException is not allowed
Pre-processing: digital deformation completed...
the current number of sources are 1, while the pre-defined number of sources are 2.
Pre-processing: failed...`

Yes, I have changed model_id = "donald_trump_2" to model_id = "balayya" and kept everything as itis. Still, I am facing an error.
Command:
model_id = "balayya"

# the source input information, here \" is escape character of double duote "
src_path = "\"path?=/content/iPERCore/assets/samples/sources/balayya/bal.PNG,name?=balayya\""

ref_path = "\"path?=/content/iPERCore/assets/samples/references/akun_1.mp4,"  \
             "name?=akun_2," \
             "pose_fc?=300|" \
             "path?=/content/iPERCore/assets/samples/references/mabaoguo_short.mp4," \
             "name?=mabaoguo_short," \
             "pose_fc?=400\""

print(ref_path)

!python -m iPERCore.services.run_imitator  \
  --gpu_ids     $gpu_ids       \
  --num_source  $num_source    \
  --image_size  $image_size    \
  --output_dir  $output_dir    \
  --model_id    $model_id      \
  --cfg_path    $cfg_path      \
  --src_path    $src_path      \
  --ref_path    $ref_path

Error that I am facing now is:
File "/content/iPERCore/iPERCore/services/options/process_info.py", line 140, in convert_to_src_info
src_infos = read_src_infos(self.vid_infos, num_source)
File "/content/iPERCore/iPERCore/services/options/process_info.py", line 233, in read_src_infos
pad_ids = np.random.choice(src_ids, need_pad)
File "mtrand.pyx", line 908, in numpy.random.mtrand.RandomState.choice
ValueError: 'a' cannot be empty unless no samples are taken

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/usr/lib/python3.6/multiprocessing/process.py", line 258, in _bootstrap
self.run()
File "/content/iPERCore/iPERCore/services/preprocess.py", line 153, in run
except Exception("model error!") as e:
TypeError: catching classes that do not inherit from BaseException is not allowed
Pre-processing: digital deformation completed...
the current number of sources are 1, while the pre-defined number of sources are 2.
Pre-processing: failed...

Yes, I have changed model_id = "donald_trump_2" to model_id = "balayya" and kept everything as itis. Still, I am facing an error.
Command:
model_id = "balayya"

# the source input information, here \" is escape character of double duote "
src_path = "\"path?=/content/iPERCore/assets/samples/sources/balayya/bal.PNG,name?=balayya\""

ref_path = "\"path?=/content/iPERCore/assets/samples/references/akun_1.mp4,"  \
             "name?=akun_2," \
             "pose_fc?=300|" \
             "path?=/content/iPERCore/assets/samples/references/mabaoguo_short.mp4," \
             "name?=mabaoguo_short," \
             "pose_fc?=400\""

print(ref_path)

!python -m iPERCore.services.run_imitator  \
  --gpu_ids     $gpu_ids       \
  --num_source  $num_source    \
  --image_size  $image_size    \
  --output_dir  $output_dir    \
  --model_id    $model_id      \
  --cfg_path    $cfg_path      \
  --src_path    $src_path      \
  --ref_path    $ref_path

Error that I am facing now is:
File "/content/iPERCore/iPERCore/services/options/process_info.py", line 140, in convert_to_src_info
src_infos = read_src_infos(self.vid_infos, num_source)
File "/content/iPERCore/iPERCore/services/options/process_info.py", line 233, in read_src_infos
pad_ids = np.random.choice(src_ids, need_pad)
File "mtrand.pyx", line 908, in numpy.random.mtrand.RandomState.choice
ValueError: 'a' cannot be empty unless no samples are taken

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/usr/lib/python3.6/multiprocessing/process.py", line 258, in _bootstrap
self.run()
File "/content/iPERCore/iPERCore/services/preprocess.py", line 153, in run
except Exception("model error!") as e:
TypeError: catching classes that do not inherit from BaseException is not allowed
Pre-processing: digital deformation completed...
the current number of sources are 1, while the pre-defined number of sources are 2.
Pre-processing: failed...

@snehitvaddi Remove the results folder and rerun it. Maybe there are some temporary files that have affected the result.

@snehitvaddi Remove the results folder and rerun it. Maybe there are some temporary files that have affected the result.

how to use my custom image for testing, dont know how to upload the custom image.

I have the same problem. Have you solved this problem? Can you share your experience?


proxy set to true

Requirements

[x] You have completed your website.
[x] The website is reachable.
[x] The CNAME record doesn't contain https:// or /.
[x] There is sufficient information at the owner field.

Description

Website Link / Preview

You need to enable Enforce HTTPS in your GitHub Pages settings in your repository.


Component layout size calculation errors

Report
I am using react-navigation and react-native-paper in my react native project. After switching between pages in my project, the appearance of react-native and react-native-paper components is broken. I am sharing 2 images below. 1. the corrupted version of the image and 2. the expected version

[x] I have searched existing issues and this is not a duplicate

react-native info
System:
  OS: macOS 15.0.1
  CPU: (12) arm64 Apple M2 Max
  Memory: 127.89 MB / 32.00 GB
  Shell:
    version: "5.9"
    path: /bin/zsh
Binaries:
  Node:
    version: 23.1.0
    path: /opt/homebrew/bin/node
  Yarn:
    version: 1.22.19
    path: /opt/homebrew/bin/yarn
  npm:
    version: 10.9.0
    path: /opt/homebrew/bin/npm
  Watchman:
    version: 2<IP_ADDRESS>
    path: /opt/homebrew/bin/watchman
Managers:
  CocoaPods:
    version: 1.15.2
    path: /Users/mapletechnologies/.rbenv/shims/pod
SDKs:
  iOS SDK:
    Platforms:
      - DriverKit 24.1
      - iOS 18.1
      - macOS 15.1
      - tvOS 18.1
      - visionOS 2.1
      - watchOS 11.1
  Android SDK: Not Found
IDEs:
  Android Studio: 2024.2 AI-242.23339.11.2421.12483815
  Xcode:
    version: 16.1/16B40
    path: /usr/bin/xcodebuild
Languages:
  Java:
    version: 17.0.13
    path: /usr/bin/javac
  Ruby:
    version: 2.7.6
    path: /Users/mapletechnologies/.rbenv/shims/ruby
npmPackages:
  "@react-native-community/cli": Not Found
  react:
    installed: 18.3.1
    wanted: 18.3.1
  react-native:
    installed: 0.76.1
    wanted: 0.76.1
  react-native-macos: Not Found
npmGlobalPackages:
  "*react-native*": Not Found
Android:
  hermesEnabled: true
  newArchEnabled: false
iOS:
  hermesEnabled: true
  newArchEnabled: true

Looks like a duplicate of

https://github.com/facebook/react-native/issues/47410

⚠ 	缺少可重复的示例
ℹ 	我们无法在您的问题报告中检测到可重现的示例。 请提供：
* 如果您的错误与 UI 相关： [小吃 ](https://snack.expo.dev)

* 如果您的错误与构建/更新相关：使用我们的 [Re Producer Template ](https://github.com/react-native-community/reproducer-react-native/generate) 。   复制者需要位于您的用户名下的 GitHub 存储库中。

https://snack.expo.dev/@saddhu/tab-style-abnormal?platform=ios
https://github.com/callstack/react-native-pager-view/issues/914

我个人认为这很大程度上是一个 React Native 新的 Arch 核心风格处理问题。我正在缩小问题范围，我怀疑以下内容：

它与 borderTopLeftRadius、borderTopRightRadius、borderBottomLeftRadius、borderBottomRightRadius 样式属性的使用有关。如果我不再使用这些道具，那么问题就会消失。
在重新安装/重新渲染时，边框半径似乎被替换回错误的样式道具，可能是 paddingLeft、paddingRight 或类似的东西，因为我看到图像的部分在半径处被切掉了相同的量。
它与在不同的屏幕（而不仅仅是任何屏幕）中显示相似的内容有关，也许当您显示类似的 FlatList 或类似的 ListItems / 键控列表项时？项目样式是否由新拱门中的列表项目键缓存？

我们可以通过本机反应以最小的重现来隔离这个问题吗？没有第三方库。

https://snack.expo.dev/@saddhu/tab-style-abnormal?platform=ios

Any updates on this? I am experiencing the same issue with 0.76.3, new arch, and expo sdk 52.

@meftunca what was the solution?
@Chenjiujiu i’d appreciate a translation, this isn’t helpful for english speakers

@dlindenkreuz It was a problem caused by the “react-native-pager-view” library. I forgot to close the issue and when I was notified by the bot, I wanted to close it. I share the related pager-view issue below.
https://github.com/callstack/react-native-pager-view/issues/902

@dlindenkreuz I can open the issue back if the problem persists for you

thanks for clarifying! I'll bump this thread if anything comes up.


Unable to push pakcaages in staging.nuget.org site using command line

1.Set API Key for https://int.nugettest.org/ site.
>nuget setAPIKey XXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXX -source https://apiint.nugettest.org/v3/index.json
2.Push package in https://int.nugettest.org/ site.
>nuget push *.nupkg -source https://apiint.nugettest.org/v3/index.json
I get Forbidden Error like below.
 PUT https://int.nugettest.org/api/v2/package/ ARNING: Your API key expires in 1 days. Visit https://int.nugettest.org to regenerate your API key.  Forbidden https://int.nugettest.org/api/v2/package/ 41570ms Response status code does not indicate success: 403 (The specified API key invalid, has expired, or does not have permission to access the specified.
Can you please suggest solution to upload packages in   https://int.nugettest.org/ site for testing purpose.

@joo92 The message suggests that your API key will expire soon, but also that there is some reason that your API key does not have permission for that push operation.
Please log into https://int.nugettest.org and go to the 'API Keys' page under the upper right (username) menu. Look for your API key, and check the following:

Expiration
Does it have push scope enabled? (highlighted below)
Does the glob pattern match the id of the package being pushed?

If you still can't determine why the API key is not working, I suggest sending an email to<EMAIL_ADDRESS>with a description of your problem, and your username on the https://int.nugettest.org site.


Github link opens Github in fullscreen with no way back to the game

Summary
Clicking on the Github link in the login screen opens Github in fullscreen mode with no way back to the game.
Impacted services

[x] The frontend app
[ ] The game servers
[ ] Game builds or automation scripts
[ ] Tests or Github Actions
[ ] Infrastructure (Terraform)

Steps to reproduce

Open the game, (If already logged in log out)
On the login screen click the Github link
Github is loaded in fullscreen inside the game window with no way to go back to the game.
Kill the process to quit the game.

Environment information

Operating system: Linux Mint 21
Version: v1.97.10-linux-x64

Additional context

Hi, can you use Ctrl-Alt-F to enter or leave fullscreen mode?

Tried Ctrl+Alt+F but id had no effect.


The content of this document doesn't match the title

There is nothing on this page about managing group notifications. I was led here by an answer on this post https://developercommunity.visualstudio.com/content/problem/243123/vsts-mention-group-not-working.html
But this page has no solution to that problem.

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

ID: f7bf3dc8-4c12-bf7f-2f65-74e5c90cfc3b
Version Independent ID: e5b84ecc-d3fe-b65f-b9f7-3d94ee7aed72
Content: Manage notifications for a team - Azure DevOps
Content Source: docs/notifications/howto-manage-team-notifications.md
Product: devops
Technology: devops-collab
GitHub Login: @chcomley
Microsoft Alias: chcomley

Hi @The-Zenix, Thanks for reaching out. I'm a little confused, as the article you mentioned does cover group/team notifications. I took a look at the developer community issue and at this point, I believe that technical support is needed, rather than a convo on the Developer Community. Please go here, and then select Technical Support. Best of luck to you. Thanks very much!

Hi @chcomley,
Could you show me where on that page group notification settings are mentioned? Could you quote a paragraph?
The link says 'Manage team and group notifications', but there are literally no mentions of the word 'group' within the article content.

Hi @The-Zenix., You're absolutely right. I'm so sorry about my confusion! I've added a section to the article for managing group notifications. It should go live within the next few hours.
Here are the steps, in the meantime, to manage group delivery settings:

Sign in to your organization (https://dev.azure.com/{yourorganization}).

Select  Organization settings.

Select Global notifications > Subscribers, enter and find your group, and then select Delivery settings.

Choose which option best fits your group's needs, and then select Save.

We suspect that the group you're mentioning has the settings on "do not deliver." If you move it to "deliver to individual members," then it should work. If this doesn't work, reach out to Customer Support.
Again, thanks very much for your feedback. Do let me know if you have any further questions or feedback on the new content please. Thanks!


Add flag to disable the OpenShift CVO

When subctl determines that the OpenShift CVO needs to be disabled, it
asks for confirmation; this patch allows skipping this check (and
forcing the CVO to be disabled, if necessary) with --disable-cvo.
Fixes: #235
Signed-off-by: Stephen Kitt<EMAIL_ADDRESS>(cherry picked from commit 52a6b94d9436f6264b09ffd928bc224fe77c77d2)

Thank you guys for the quick reviews.


I'm getting non-consistant behavior which  is making it hard to tell what's going on when I'm trying to debug

ok, so doing :
     puts field
        node =
            (tag[:meta][:before] ? self.send(tag[:meta][:before],item,res) : item)
            .xpath(".%s" % tag[:path])
          puts field == "zoop"
          # puts node.inspect if field == "zoop"
          puts node if field == "zoop"

results in
zoop
true

but doing:
     puts field
      node =
            (tag[:meta][:before] ? self.send(tag[:meta][:before],item,res) : item)
            .xpath(".%s" % tag[:path])
          puts field == "zoop"
          puts node.inspect if field == "zoop"
          puts node if field == "zoop"

results in
zoop
true
[]

Now I definitely know that item isn't empty becuase doing a .inspect  on the return object inside of the method that I'm doing a .send for results in:
#<Nokogiri::HTML::Document:0x3ffc5c937194 name="document" children=[#<Nokogiri::XML::DTD:0x3ffc5c936f64...]>

I've also had similar issues with doing .empty? on node not working in the same way
Now obviously .xpath(".%s" % tag[:path]) is returning nothing (that's an unrelated problem and I know how to fix it) so that's why there's no results but that shouldn't stop node from being [] regardless of whether I do puts node.inspect if field == "zoop" or not
also why is
   puts node.inspect if field == "zoop"

not printing output to the terminal?
p.s. I'm going to change that ternary to a hash.fetch so don't worry about that.

Hi,
Can you please provide a complete working example so I can reproduce what you're seeing and try to explain it? In your code example it's not clear what the starting values of any of the variables is. Thanks!

when doing
node =    Nokogiri::HTML(body).xpath("some_string")

and node has no results
you get the weird behavior from above, where you cant get nodedoesn't seem to want to return values, i,e
```ruby`
puts node

won't print out to the terminal

unless you do somthing like:

```ruby
puts node.inspect

in front of it
like in the examples in the OP where the line was commented out and then it was un-commented out.

Sorry, I'm still not sure what problem you're describing. Are you saying that, given a node contains no text, when you ask it to display its text, it displays nothing? This seems like it's doing the right thing. What behavior would you like to see?
Or, if I'm misunderstanding, you can help me understand more completely by providing a complete working piece of code or a failing test.

Right, so let's say you do an xpath and it returns nothing, I should be able to do:
puts node.empty?
#or
puts node

but doing either results in nothing being displayed at all worse is if I'm relying on node.empty? to check if there are no results. but it won't work becuase node.empty? seems to return nothing just as much as doing puts node.
p.s. I just noticed that the puts node isn't printing out [], rather it's the puts node.inspect, my mistake, but puts node should at least display a blank line (or nil) or something so you can check if the results object is empty.

@Thermatix Thanks for responding.
Unfortunately, I still don't understand what problem you're describing, because you haven't provided a complete working example.
I'm going to close this issue. Please feel free to reach out on the nokogiri-talk mailing list if you'd like further help with Nokogiri. Or, please go to http://bit.ly/nokohelp.
Thank you so much for understanding! And thank you for using Nokogiri.


[compiler error]  Aruco dictionary is protected

[ 33%] Building CXX object CMakeFiles/calib_k4a.dir/src/camera_extrinsics.cpp.o
/home/ccnam/Downloads/k4a-calibration/src/camera_extrinsics.cpp: In member function ‘bool ExtrinsicsCalibration::CalculateExtrinsics(const std::vector<FrameInfo>&, std::vector<AlignmentTransform>&)’:
/home/ccnam/Downloads/k4a-calibration/src/camera_extrinsics.cpp:213:51: error: ‘cv::Ptr<cv::aruco::Dictionary> cv::aruco::Board::dictionary’ is protected within this context
             cv::aruco::detectMarkers(gray, board->dictionary, markerCorners, markerIds, params);
                                                   ^~~~~~~~~~
In file included from /usr/local/include/opencv4/opencv2/aruco_detector.hpp:6:0,
                 from /usr/local/include/opencv4/opencv2/aruco.hpp:7,
                 from /usr/local/include/opencv4/opencv2/aruco/charuco.hpp:9,
                 from /home/ccnam/Downloads/k4a-calibration/include/camera_extrinsics.hpp:11,
                 from /home/ccnam/Downloads/k4a-calibration/src/camera_extrinsics.cpp:1:
/usr/local/include/opencv4/opencv2/aruco/board.hpp:89:29: note: declared protected here
     CV_PROP Ptr<Dictionary> dictionary;
                             ^~~~~~~~~~
CMakeFiles/calib_k4a.dir/build.make:75: recipe for target 'CMakeFiles/calib_k4a.dir/src/camera_extrinsics.cpp.o' failed
make[2]: *** [CMakeFiles/calib_k4a.dir/src/camera_extrinsics.cpp.o] Error 1
CMakeFiles/Makefile2:82: recipe for target 'CMakeFiles/calib_k4a.dir/all' failed
make[1]: *** [CMakeFiles/calib_k4a.dir/all] Error 2
Makefile:90: recipe for target 'all' failed
make: *** [all] Error 2

Aruco is protected

sudo vim /usr/local/include/opencv4/opencv2/aruco/board.hpp
then change protected to public
board.hpp
public:
    /** @brief array of object points of all the marker corners in the board each marker include its 4 corners in this order:
     * -   objPoints[i][0] - left-top point of i-th marker
     * -   objPoints[i][1] - right-top point of i-th marker
     * -   objPoints[i][2] - right-bottom point of i-th marker
     * -   objPoints[i][3] - left-bottom point of i-th marker
     *
     * Markers are placed in a certain order - row by row, left to right in every row.
     * For M markers, the size is Mx4.
     */
    CV_PROP std::vector<std::vector<Point3f> > objPoints;

    /// the dictionary of markers employed for this board
    CV_PROP Ptr<Dictionary> dictionary;

    /// coordinate of the bottom right corner of the board, is set when calling the function create()
    CV_PROP Point3f rightBottomBorder;

    /** @brief vector of the identifiers of the markers in the board (same size than objPoints)
     * The identifiers refers to the board dictionary
     */
    CV_PROP_RW std::vector<int> ids;
};

[ 33%] Building CXX object CMakeFiles/calib_k4a.dir/src/camera_extrinsics.cpp.o
/home/ccnam/Downloads/k4a-calibration/src/camera_extrinsics.cpp: In member function ‘bool ExtrinsicsCalibration::CalculateExtrinsics(const std::vector<FrameInfo>&, std::vector<AlignmentTransform>&)’:
/home/ccnam/Downloads/k4a-calibration/src/camera_extrinsics.cpp:213:51: error: ‘cv::Ptr<cv::aruco::Dictionary> cv::aruco::Board::dictionary’ is protected within this context
             cv::aruco::detectMarkers(gray, board->dictionary, markerCorners, markerIds, params);
                                                   ^~~~~~~~~~
In file included from /usr/local/include/opencv4/opencv2/aruco_detector.hpp:6:0,
                 from /usr/local/include/opencv4/opencv2/aruco.hpp:7,
                 from /usr/local/include/opencv4/opencv2/aruco/charuco.hpp:9,
                 from /home/ccnam/Downloads/k4a-calibration/include/camera_extrinsics.hpp:11,
                 from /home/ccnam/Downloads/k4a-calibration/src/camera_extrinsics.cpp:1:
/usr/local/include/opencv4/opencv2/aruco/board.hpp:89:29: note: declared protected here
     CV_PROP Ptr<Dictionary> dictionary;
                             ^~~~~~~~~~
CMakeFiles/calib_k4a.dir/build.make:75: recipe for target 'CMakeFiles/calib_k4a.dir/src/camera_extrinsics.cpp.o' failed
make[2]: *** [CMakeFiles/calib_k4a.dir/src/camera_extrinsics.cpp.o] Error 1
CMakeFiles/Makefile2:82: recipe for target 'CMakeFiles/calib_k4a.dir/all' failed
make[1]: *** [CMakeFiles/calib_k4a.dir/all] Error 2
Makefile:90: recipe for target 'all' failed
make: *** [all] Error 2

Aruco is protected

[ 33%] Building CXX object CMakeFiles/calib_k4a.dir/src/camera_extrinsics.cpp.o
/home/ccnam/Downloads/k4a-calibration/src/camera_extrinsics.cpp: In member function ‘bool ExtrinsicsCalibration::CalculateExtrinsics(const std::vector<FrameInfo>&, std::vector<AlignmentTransform>&)’:
/home/ccnam/Downloads/k4a-calibration/src/camera_extrinsics.cpp:213:51: error: ‘cv::Ptr<cv::aruco::Dictionary> cv::aruco::Board::dictionary’ is protected within this context
             cv::aruco::detectMarkers(gray, board->dictionary, markerCorners, markerIds, params);
                                                   ^~~~~~~~~~
In file included from /usr/local/include/opencv4/opencv2/aruco_detector.hpp:6:0,
                 from /usr/local/include/opencv4/opencv2/aruco.hpp:7,
                 from /usr/local/include/opencv4/opencv2/aruco/charuco.hpp:9,
                 from /home/ccnam/Downloads/k4a-calibration/include/camera_extrinsics.hpp:11,
                 from /home/ccnam/Downloads/k4a-calibration/src/camera_extrinsics.cpp:1:
/usr/local/include/opencv4/opencv2/aruco/board.hpp:89:29: note: declared protected here
     CV_PROP Ptr<Dictionary> dictionary;
                             ^~~~~~~~~~
CMakeFiles/calib_k4a.dir/build.make:75: recipe for target 'CMakeFiles/calib_k4a.dir/src/camera_extrinsics.cpp.o' failed
make[2]: *** [CMakeFiles/calib_k4a.dir/src/camera_extrinsics.cpp.o] Error 1
CMakeFiles/Makefile2:82: recipe for target 'CMakeFiles/calib_k4a.dir/all' failed
make[1]: *** [CMakeFiles/calib_k4a.dir/all] Error 2
Makefile:90: recipe for target 'all' failed
make: *** [all] Error 2

Aruco is protected

sudo vim /usr/local/include/opencv4/opencv2/aruco/board.hpp
then change protected to public
board.hpp
public:
    /** @brief array of object points of all the marker corners in the board each marker include its 4 corners in this order:
     * -   objPoints[i][0] - left-top point of i-th marker
     * -   objPoints[i][1] - right-top point of i-th marker
     * -   objPoints[i][2] - right-bottom point of i-th marker
     * -   objPoints[i][3] - left-bottom point of i-th marker
     *
     * Markers are placed in a certain order - row by row, left to right in every row.
     * For M markers, the size is Mx4.
     */
    CV_PROP std::vector<std::vector<Point3f> > objPoints;

    /// the dictionary of markers employed for this board
    CV_PROP Ptr<Dictionary> dictionary;

    /// coordinate of the bottom right corner of the board, is set when calling the function create()
    CV_PROP Point3f rightBottomBorder;

    /** @brief vector of the identifiers of the markers in the board (same size than objPoints)
     * The identifiers refers to the board dictionary
     */
    CV_PROP_RW std::vector<int> ids;
};

sudo vim /usr/local/include/opencv4/opencv2/aruco/board.hpp
then change protected to public
board.hpp
public:
    /** @brief array of object points of all the marker corners in the board each marker include its 4 corners in this order:
     * -   objPoints[i][0] - left-top point of i-th marker
     * -   objPoints[i][1] - right-top point of i-th marker
     * -   objPoints[i][2] - right-bottom point of i-th marker
     * -   objPoints[i][3] - left-bottom point of i-th marker
     *
     * Markers are placed in a certain order - row by row, left to right in every row.
     * For M markers, the size is Mx4.
     */
    CV_PROP std::vector<std::vector<Point3f> > objPoints;

    /// the dictionary of markers employed for this board
    CV_PROP Ptr<Dictionary> dictionary;

    /// coordinate of the bottom right corner of the board, is set when calling the function create()
    CV_PROP Point3f rightBottomBorder;

    /** @brief vector of the identifiers of the markers in the board (same size than objPoints)
     * The identifiers refers to the board dictionary
     */
    CV_PROP_RW std::vector<int> ids;
};


Issues with "Authenticating with a GitHub App"

Code of Conduct

[X] I have read and agree to the GitHub Docs project's Code of Conduct

What article on docs.github.com is affected?
https://docs.github.com/en/rest/guides/scripting-with-the-rest-api-and-ruby?apiVersion=2022-11-28#authenticating-with-a-github-app
What part(s) of the article would you like to see updated?
Hello, I'm having some issues with this section. The most important is that I can't get the example to work. I've followed the instructions and sub-instructions as closely as I can, and I've tried different combinations of values where it's unclear (see below), but continue getting 401s or 404s, e.g.:
# on app.create_app_installation_access_token
POST https://api.github.com/app/installations/.../access_tokens: 401 - A JSON web token could not be decoded

# on octokit.create_contents
PUT https://api.github.com/repos/.../.../contents/test.txt: 404 - Not Found

The example is a bit confusing as it's calling Octokit::Client.new twice. I think I understand that one client is used to generate an access token and the other client uses this access token, but it's unclear why the first client can't be reconfigured. An explanation would help IMO.

Instead of requiring octokit, create an instance of Octokit::Client ...

Surely octokit is required to use the Octokit module?

replace APP_ID with your app's ID

In app settings, it recommends using client id ("Using your App ID to get installation tokens? You can now use your Client ID instead."), so there's a conflict of advice there.

PRIVATE_KEY with your app's private key

Is this meant to be a file path or key contents? If contents, which format? The source code suggests client_secret is supposed to be a 40 character client secret, so I feel like I'm missing something.

You can get an installation ID with the GET /users/{username}/installation, GET /repos/{owner}/{repo}/installation, or GET /orgs/{org}/installation endpoints.

Are these different installation_ids? How does one decide which one to use?

octokit = Octokit::Client.new(bearer_token: app.create_app_installation.access_token)

app.create_app_installation.access_token doesn't appear to exist, at least in v9.1.0. I guess this is supposed to be app.create_app_installation_access_token?
Additional information
Always reproducible

I was able to get this working by reading the REST API docs, but it looks different from the example:
https://github.com/adsr/repogist/blob/face155fa481fe20adfc88b5158e17ba8bfda9f3/repogist.rb#L177-L182
Is Octokit supposed to handle the JWT stuff for you?

@adsr Thank you for opening this issue! These are great questions that our support team would be best equipped to answer ✨ Please reach out to them for clarification on the examples you highlighted!
If after discussing the examples with them you feel there's anything in the documents we should update, please feel free to open an issue 💛


Menu Options don't work in packaged release version

For example: copy, paste, etc.
Would also be good to add New and Open there as well.

@html5cat fixed this! thanks @html5cat


Roadmap & Contribution Documentation

As a fledgling project, OC needs to set clear expectations regarding two key points:

What is expected of contributors who add or modify features within the OC purview?
What is expected of maintainers on an ongoing basis? Specifically, what features are expected to be added and modified in the near future?

These expectations should be set within a markdown file in the Open Compliance Github ecosystem.

@mcleo-d to setup a GitHub Discussion and schedule a call with @eddie-knight to discuss and agree.

Hi

Hi.  Feel free to invite me to the meeting.

@eddie-knight - This following GitHub Discussion has been created for asynchronous ideas and discussion ...
https://github.com/finos/open-compliance-cdmc/discussions/7

Open Compliance for CDMC - Roadmap & Contribution Discussion
The Open Compliance for CDMC - Roadmap & Contribution Discussion has been scheduled for Friday 4th March at 9:30am ET / 2:30pm GMT. Please find the call details below.
Webex

https://finos.webex.com/finos/j.php?MTID=m68a493077860b635fe95a8093289d52b

Meeting number: 2551 344 7451

Join by phone

+1-415-655-0003 US Toll
+44-20319-88141 UK Toll

Access code:<PHONE_NUMBER>1

To build the roadmap today, let's identify:

Strategic Objectives (Priorities)
Roadmap Audience
Epics
Pivot Plans

Open Compliance exists to provide automated tools to validate that deployed resources adhere to regulatory standards.

Roadmap Audience:

Contributors of CDMC, OC
Consumers of test packs, including CFI and bank engineers

Themes & Epics:

Theme: CDMC

Epic: Snowflake

Theme: Kubernetes

Epic: AKS
Epic: EKS
Epic: Openshift

Proposed Pivot Plans:

If CDMC is not forthright with technical specs/benchmarks

Then OC maintainers will request a limited subset of benchmarks to unblock progress

Next step will be to review the proposed concepts above, then refine it into a document that can be used to direct contributor efforts and manage expectations between stakeholders and contributors.

This thread has been potentially invalidated by a clarification update provided by James. Closing this issue from further discussion.


Update AI.yml

AI Pull Request Summary:
Pull Request Summary
Key Files and Components Modified:

File Modified: .github/workflows/AI.yml

Main Purpose of the Changes:

The change primarily addresses formatting in the exclusion patterns of the GitHub Actions workflow configuration.

Specific Functionalities Introduced, Modified, or Removed:

The modification adjusts the exclude parameter in the workflow configuration from:

exclude: "**/*.json, **/*.md"
to exclude: "**/*.json,**/*.md"

This change eliminates the space between the comma and the second pattern, effectively correcting the syntax for the exclusion of certain file types.

Potential Implications or Considerations:

Performance Impacts: There are no significant performance impacts anticipated as this change merely refines the exclusion criteria for file types during the workflow execution.
Breaking Changes: No breaking changes are introduced in this update; the functionality remains intact.
Dependencies: This change does not introduce new dependencies or modify existing ones.

Overall, this adjustment improves the clarity of the exclusion patterns in the workflow configuration without altering the core functionality.


Code Quality: Remove Console message and unnecessary assignment.

Description

Console messages should not pollute the testing.
How Has This Been Tested?

Run Tests
Types of changes

[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)

Checklist:

[x] The PR is submitted to the correct branch (dev).
[ ] My code follows the code style of this project.
[ ] I've added relevant tests.

Merging myself as no risk


_process_end_flumine() called twice in simulated framework

This is a bug as the finish() method od strategies is called twice when running in the simulated framework. The following call needs to be removed since it is already made in BaseFlumine.__exit__:
https://github.com/betcode-org/flumine/blob/796ec51060328edac7e14678c6defd63a964d250/flumine/simulation/simulation.py#L106

PR opened: https://github.com/betcode-org/flumine/pull/678


Bump go mod version

Would you be ok with bumping the go mod version from 14 to 16 or 17? I can't import this module when my go.mod is set to go version 17.

Oops nevermind that was a mistake, I wasn't importing v2. Sorry!


Implement Gcode "?"

Could you implement a function to read back the actual position pls?

Added that in the form of get_status(callback=None)
and you callback might be something like recv_status(status) where status is a dictionary of the information. I used a bit of regex to parse the message coming back but it's a bit dirty. If anyone feels like cleaning that up let me know :)

An issue-reference in your commit would have been nice.. ;-)
Thank you for your really fast reply.
will give that a try later.

found a typo in Line 151
self._send_msg should be self.send_msg


Fix #5713: Add roles faq on help page

Fixes #5713.

Thanks @vinayak-mehta! Come and find me and I'll give you a sticker.


Allows user-defined HTTP headers with getJSON and getCSV with interfa…

…ce extension specified in issue 5617:
func (ns *Namespace) GetJSON(args ...interface{}) (interface{}, error) and then checking whether the last  is a map[string]interface{} , then using those for the headers (similar change to GetCSV).

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

I will finish this in #8609


Handle exception create index request

Below is the situation when exception happened, flume cannot commit txn and keep rolling back.

We don't accept pull requests. Could you please attach the patch to a jira here: https://issues.apache.org/jira/browse/FLUME ? Thanks!

@frankyaorenjie Thanks again for your contribution! Since the source repository/branch seems to be deleted, do you think that this pull request can be closed? If it is, could you please close it?

@szaboferee let's close it, since it has been too long time. And my origin code has already merged into flume.


Fix delivery & submission history filtering inconsistencies

This PR fixes inconsistent filtering behavior in the delivery and submission history endpoints.
Test Steps:

Ensure smoke test data is present in the database
Run the backend
GET the following URLs in your tool of choice and verify the result

curl
Result

/api/waters/org/ignore/submissions
submission history for all senders

/api/waters/org/ignore.ignore-full-elr/submissions
🆕 submission history for ignore-full-elr senders only

/api/waters/org/ignore.sdfljkd/submissions
404

/api/waters/org/ignore/deliveries
🆕 delivery history for all receivers

/api/waters/org/ignore.CSV/deliveries
delivery history for CSV receivers

/api/waters/org/ignore.sdfljkd/deliveries
404

Changes
Old Behavior:

Submission histories for all sending services was being returned no matter what.

e.g. GET waters/someorg.somesender/submissions would return all senders for someorg

Delivery histories for all receiving services could not be queried (only a specific service)

e.g. GET waters/someorg/deliveries resulted in 404 for a valid org

New Behavior (also Release Notes):

Submissions history can now be retrieved for a specific sender

e.g. GET waters/someorg.somesender/submissions returns only submissions from somesender

Delivery histories for all receiving services can now be queried

e.g. GET waters/someorg/deliveries returns delivery history for all receivers of someorg

Checklist
Testing

[X] Tested locally?
[X] Ran ./prime test or ./gradlew testSmoke against local Docker ReportStream container?
[x] Added tests for submissions
[ ] Added tests for deliveries

Process

[X] Includes a summary of what a code reviewer should test/verify?
[x] Updated Drafted the release notes?

Linked Issues

Fixes #8019
Fixes #8322

TODO

New: #8424

Would you mind adding some tests specifically for the orgName.serviceName fix you're adding here?  It looks like we're already checking against other Organizations here and here, but it looks like we're missing tests that ensure data doesn't leak between services within the same Organization 🤔

Would you mind adding some tests specifically for the orgName.serviceName fix you're adding here?  It looks like we're already checking against other Organizations here and here, but it looks like we're missing tests that ensure data doesn't leak between services within the same Organization 🤔

Great idea w/ great timing! I am still wrapping up tests and will definitely add this case.

It says this ticket fixes https://github.com/CDCgov/prime-reportstream/issues/8322 but that story is not groomed. It has to at least have acceptance criteria.

The 404 error for submission when you provide a bad sender name returns:
{"error": "ignore.fgfgf: unknown ReportStream user"}
Should we change "user" to "sender"?

The endpoints worked as described for me once I took off the /api part. Just had the one comment about optional parameters. After that and some of other people's comments are resolved, I'll be happy to approve this!

The 404 error for submission when you provide a bad sender name returns:
{"error": "ignore.fgfgf: unknown ReportStream user"}
Should we change "user" to "sender"?
Names are case sensitive, should this be the case? for example, ignore.hl7 does not work.

They should be case sensitive as far as I know. That would mirror behavior elsewhere.
Error message has been updated.


Allow underscores in keyletter names

An underscore can be a character in a keyletter

Non issue.  Must have fixed this earlier and had forgotten


Selecting a line of text with shift+home

From<EMAIL_ADDRESS>on 2010-06-22T14:38:11Z
I'm running Spyder 1.0.3 with Python 2.6.3 on Windows XP. In this environment, the interactive console does not allow me to select the current line of text I'm typing in using SHIFT + HOME. SHIFT + END selects all text from the cursor to the end of the line, but SHIFT + HOME does not appear to do anything.
Original issue: http://code.google.com/p/spyderlib/issues/detail?id=239

From pierre.raybaut on 2010-06-22T14:24:50Z
Fixed in both v1.1 and v2.0 repositories.
Will be available in v1.1.0 final release at the end of the week.
Thanks very much for this report!
Status: Fixed


Lowering rule for lax.scan unnecessarily emits while loop for unroll=1 when length or the size of xs is 1

The lowering rule for lax.scan unnecessarily emits a while loop (which slows things down on GPU) for unroll=1 when length or the size of xs is 1.
Example:
import jax
from jax import lax, numpy as jnp

def f(h, _):
    return h, None

def main():
    for n in range(1, 5):
        xs = jnp.arange(n) + 1
        g = lambda: lax.scan(f, 0, xs, unroll=n)  # noqa: E731
        lowered = jax.jit(g).lower()
        print(n, "while(" in lowered.as_text())

    for n in range(1, 5):
        g = lambda: lax.scan(f, 0, length=n, unroll=n)  # noqa: E731
        lowered = jax.jit(g).lower()
        print(n, "while(" in lowered.as_text())

if __name__ == "__main__":
    main()

Output:
1 True
2 False
3 False
4 False
1 True
2 False
3 False
4 False

This is because this code from this PR checks for
unroll != 1 and num_trips == 1 and remainder == 0

rather than just
num_trips == 1 and remainder == 0

It also unnecessarily emits while when num_trips == 1 and remainder > 0:
import jax
from jax import lax, numpy as jnp

def main():
    f = lambda: lax.scan(lambda h, _: (h, None), 0, length=10, unroll=6)
    lowered = jax.jit(f).lower()
    print("while(" in lowered.as_text())  # True

if __name__ == "__main__":
    main()

Seems to me that it should only emit while if num_trips > 1. In all other cases, it is unnecessary. Is that correct?

Checking for unroll != 1 in
unroll != 1 and num_trips == 1 and remainder == 0

was necessary to preserve some intent IIRC (but I can't recall which). But yes, what you propose to fix sounds perfectly reasonable to me.
Do you want to make a PR? :)

@bchetioui _scan_impl is very tangled, and I get errors when I try to make small changes to fix this. I'll let someone who's more familiar with the rationale behind this design handle it. (Related: https://github.com/jax-ml/jax/discussions/25336 and https://github.com/jax-ml/jax/discussions/25336#discussioncomment-11501644.)


Switch with Label

First I would like to thank you a lot for this work! This saves lot's of time!
One thing that I didn't find was the label for the switch as it has for the checkbox. How can I make it?

probably something like:
export interface SwitchWithLabelProps extends SwitchProps {
Label: Omit<
MuiFormControlLabelProps,
'checked' | 'name' | 'onChange' | 'value' | 'inputRef'

;
}

export const SwitchWithLabel: React.ComponentType<SwitchWithLabelProps> = ({
  Label,
  ...props
}) => (
  <FormControlLabel
    control={<MuiSwitch {...fieldToSwitch(props)} />}
    {...Label}
  />
);

For now I just used:
              <InputLabel
                htmlFor="test"
              >
                <Field
                  name="test"
                  component={Switch}
                  color="primary"
                />
                Label Text
              </InputLabel>

But the library could have something integrated like the checkbox.

Contributions welcome :)

Hi,
Can I take this up if no one is working on it?
Thanks

Sure, go ahead.

Does this not work for you?
```

PR is there for merging for 5 months. Can someone have a look?

For now I just used:
              <InputLabel
                htmlFor="test"
              >
                <Field
                  name="test"
                  component={Switch}
                  color="primary"
                />
                Label Text
              </InputLabel>

But the library could have something integrated like the checkbox.

Actually according to the sandbox in the docs the right solution is to use
<FormControlLabel
	control={<Field component={Switch} name="name" />}
	label="Name"
/>

Using your solution, clicking on the label doesn't actually changes the switch


Sanitize type annotations in cirq.sim

There was an issue where docs were not showing types if they were not annotated in the 'cirq.MyType' style. I went through cirq.sim and fixed all the ones I noticed.
I also went ahead and fixed value.MeasurementKey across the whole project, since that was a very common one.

Tagging: Tagging: https://github.com/quantumlib/Cirq/issues/4383

Also tagging #4657


Enhancement/wrobe0709/list unenrolled submissions

Fixes #1070
If a student is not enrolled in a class but submitting assignments for the class their submissions won't be seen by the staff.
This adds a view called "Un-Enrolled Submitters" which allows staff members to see any students who are submitting assignments to the course but are not enrolled.

I'm pulling in staff and lab assistants because I was getting them in the list of un-enrolled submitters. I'm assuming we don't want them in that list and that we just want students?
Because I can get the user objects from get_students(), get_staff(), and get_participants([LAB_ASSISTANT_ROLE])) I made submissions a set of user objects. Does that look like the best way to do it?