x86 and x64 parrallel operation on Windows 10

Platform and architecture (e.g. Linux/x64: Windows 10 / x64

Java version (from "java --version") e.g. 1.8.0_181, 11.0.4+11 etc.:
openjdk version "1.8.0_242"
OpenJDK Runtime Environment (AdoptOpenJDK)(build 1.8.0_242-b08)
OpenJDK Client VM (AdoptOpenJDK)(build 25.242-b08, mixed mode)

Installed versions:
OpenJDK8U-jre_x86-32_windows_hotspot_8u242b08.msi
AND
OpenJDK8U-jre_x64_windows_hotspot_8u242b08.msi

Variant e.g. HotSpot or OpenJ9: HotSpot

Have you tested it with other vendors' java: Yes
Previously I had both 32- and 64-Bit Java JRE installed and I could run both 32-Bit and 64-Bit Java applications without issues.

Steps to reproduce:

Put x86 version at top of path list in environment settings
Put x64 version in second position of path list in environment settings
Start 32-Bit application = OK
Start 64-Bit application - does not run
Put x64 version at top of path list in environment settings
Put x86 version in second position of path list in environment settings
Start 32-Bit application - does not run
Start 64-Bit application = OK

Error messsage and/or description of what is not working as expected:
32-Bit at top of path - run 64-Bit app

Failed to load the JNI shared library "C:\Program Files\AdoptOpenJDK\jre-<IP_ADDRESS>-hotspot\bin\server\jvm.dll".

32-Bit at top of path - run 64-Bit app

Failed to load the JNI shared library "C:\Program Files (x86)\AdoptOpenJDK\jre-<IP_ADDRESS>-hotspot\bin\client\jvm.dll".

What have I missed? What else must I consider to run both 32- and 64-Bit Java applications?

It's unclear for me what behaviour you expect: Should x64 java be able to call into x86 native code or should Windows "magically" select the right java from %PATH%?

Previously I had both 32- and 64-Bit Java JRE installed and I could run both 32-Bit and 64-Bit Java applications without issues.

Could you please give more details (versions plus JVM vendor)?
Do you have a sample project that we can run to reproduce the issue?

@aahlenst:   Please accept my apologies for the late reply .
The previous JVM vendor is Oracle.
Somehow Oracle manages to "magically" selects the correct Java.
The two projects below behave like the projects I am using:

On a PC with Oracle Java x86 and x64 JRE  both packages run without issues.
On my PC with Adopt OpenJRE, the position of JRE-path in system variables decides whether the project will run or not.

javaver product-win32.win32.x86.zip
javaver product-win32.win32.x86_64.zip
Thank you in advance for your assistance.

I tested various combinations (Azul Zulu 8, Oracle JDK 8 and Oracle JDK 13). It only works with Oracle JDK 8. Therefore I suspect there is some secret sauce being used by the executables in C:\ProgramData\Oracle\Java\javapath\. I do not know whether it is possible to determine whether a Java program uses 32 or 64 bit components before launching it. If it is, we could provide something similar. Checking whether an exe is 32 bit or 64 bit is not enough in this case.
@karianna Do you have an idea or do you know somebody who we could ask?

I tested various combinations (Azul Zulu 8, Oracle JDK 8 and Oracle JDK 13). It only works with Oracle JDK 8. Therefore I suspect there is some secret sauce being used by the executables in C:\ProgramData\Oracle\Java\javapath\. I do not know whether it is possible to determine whether a Java program uses 32 or 64 bit components before launching it. If it is, we could provide something similar. Checking whether an exe is 32 bit or 64 bit is not enough in this case.
@karianna Do you have an idea or do you know somebody who we could ask?

I don't in the short term although perhaps a search through the registry might highlight some special settings that Oracle may use?
@knttr Is that something you can do on your system?

@karianna I have some time neext week, so I'll will give it a go. I might need some hints as to what I'm looking for.....
I'm neither programmer nor a windows registry buff, but I have the feeling I'm about to learn something.

It only works with Oracle JDK 8. Therefore I suspect there is some secret sauce

As far as I can recall, they didn't place the entire JVM on the path meaning all of the .dll files weren't exposed.
To that point, changing directories to the java.exe should put prioritization on the relative .dll files by putting them ahead of the %PATH% values.  This probably isn't desired, but may be a viable workaround.

@tresf The question I am having is more this one: How can I determine which is the right JDK for the Java program being launched? I must figure out whether it is 32 bit or not and the pick the right JDK. Or did I misunderstand your comment?

How can I determine which is the right JDK for the Java program being launched?

This depends how it's launched as well as the program.  Do you have some cases you can share?  Detecting Java isn't easy and the community really needs a helper for this, but no single standard currently exists.
This won't be as much of an issue as software developers begin to distribute Java with their applications (then any .dll conflicts become the ownership of that software project), but this change takes time.  Worse, some Java applications don't receive updates, or don't have a team large enough to maintain this stuff.
Some examples of Apps that are Java under the covers and manage this all for you:

Cyberduck: https://cyberduck.io/ (free)
Minecraft Java Edition: https://www.minecraft.net/en-us/store/minecraft-java-edition/ (paid)
IntelliJ IDEA (free/paid): https://www.jetbrains.com/idea/download/

Some companies have taken this to an extreme... for example, IntellIJ now authors their own runtime (called the JetBrains Runtime, or "jbr" as well as their own "Dark mode" theme called "Darkula") which as time of writing this have features that even OpenJDK are much slower to adopt (e.g. starting with IDEA 2018.2/JBR8 offered better HiDPI support than Java 8).
What does this mean for someone looking to use 32-bit and 64-bit?  Well, for starters, I'd recommend not using the PATH ever unless you can control it.  Second, it means that you'll need some form of launcher to find where Java is installed and which version to prioritize based on some rules.
If you can share some more about your use-case, I'd be happy to offer some insight.  You're not the only person suffering these issues, so if we can find a solution that works for you it'll be a great reference for others.
Note, at the time of writing this, the 32-bit + 64-bit problem is mostly a Windows 64-bit problem.  MacOS can't run 32-bit binaries starting with 10.15 Catalina and Linux has historically required a much more manual process, leaving control up to the end-user.

If you can share some more about your use-case

@aahlenst I'm realizing after re-reading that I may be addressing you as the OP.  Sorry if any of my questions were misdirected, if so, I invite the OP to reply to them. 😅

@tresf No problem. @knttr shared an example in https://github.com/AdoptOpenJDK/openjdk-support/issues/56#issuecomment-588932766.
I looked into it a few weeks ago. With Oracle JDK up until and including version 8 the right thing happens: 32 bit or 64 bit JDK is selected depending on the needs of the program. Does not work with any OpenJDK. So I see two possible scenarios:

There's secret sauce in Oracle JDK that can do this. I have no idea how. But I'd really like to know.
The sample programs are hardcoded to work with Oracle JDK and we do not provide the necessary shims (if we can at all).

This is not really my area of expertise. I'm supporting server-side software and developers and those usually have different problems.

I'm not sure what is meant by "Correct version is selected".  What's "selecting" Java?  I downloaded the two zip files, they appear to be .exe files, not .jar files.
02/18/20  12:15 PM                37 build.properties
03/26/20  11:45 AM    <DIR>          configuration
02/18/20  02:07 PM           319,488 dLISTconfig.exe
03/26/20  11:45 AM    <DIR>          p2
02/18/20  11:38 AM               679 feature.xml
03/26/20  11:45 AM    <DIR>          plugins
03/26/20  11:45 AM    <DIR>          target
03/26/20  11:45 AM    <DIR>          features
02/18/20  02:07 PM               282 dLISTconfig.ini
02/18/20  02:07 PM            24,576 eclipsec.exe
02/18/20  02:07 PM            18,553 artifacts.xml

Digging a bit deeper, it appears there's an plugin called Equinox launcher that's assisting with this process.  Would it be better to see if they have support for non-Oracle JVMs? https://wiki.eclipse.org/Equinox_Launcher#Finding_a_VM.2C_Using_JNI_Invocation_or_Executing_Java

@aahlenst I just questioned the programmer who wrote the two sample programs: these are not hardcoded to use Oracle JDK.
When reading through all the comments above, I presume it will be a waste of time to sieve through the registry, as this seems to be a "path" issue. (I'm out of my depth here!😕)
For our own applications, we're reverting to @tresf's suggestion "to distribute Java with their applications".
The issue for me as a user is that I'm stuck using Oracle, since some applications, which require an installed JRE, are only available as either 64 Bit or 32 Bit versions.

(Sorry, I closed the issue due to coordination problems between my mouse and myself....)
As I do not know whether I can really be of help in this issue, I would appreciate your comments on whether to leave this issue open or not.
Thank your all your insights and comments!

I think the bug report deserves a unit test which includes:

Test to perform
Expected results
Actual results

I say this at a high-level because the .exe files that are provided aren't Java at all, so help with this issue requires an understanding of a utility who's very purpose is to help the JVM selection, which should probably happen in coordination with Adopt (the Eclipse or IBM devs help explain JVM selection).
What I've seen from reading some of the source code of Equinox is that it uses some system properties about the JVM that started to help understand which JVM is currently running, but I'm uncertain if it actually helps select the target JVM.
For these reasons, I still strongly feel that this is a PATH pollution problem which has existed forever with this launcher, just exposed by Adopt since it adds itself to the PATH rather blindly.
I feel that a temporary, viable workaround is to:

Uninstall all version of Adopt
Reinstall Adopt WITHOUT the PATH option selected and WITH the JavaSoft registry selected
Test the launcher

This allows a launcher to use the old Oracle technique for detecting the JVM without worrying about foo.dll (x86_64) comes before or after foo.dll (x86) in the library search order.
Unfortunately, I'm unable to test this theory because I'm not entirely sure what the steps are to reproduce.

@knttr I'm reasonably confident that the problem is not in AdoptOpenJDK nor in OpenJDK but rather in Eclipse Equinox. We recently had different problems with 32/64 bit selection on Windows. Please reach out to the Equinox people. Bug tracker: https://bugs.eclipse.org/bugs/buglist.cgi?component=Launcher&product=Equinox&resolution=---. If we need to provide additional/different settings, we're happy to work with them. If you open a bug, please post a link here. I'll close this issue for the time being.
@tresf Thanks a lot for your thorough analysis and help.

I'm reasonably confident that the problem is not in AdoptOpenJDK nor in OpenJDK but rather in Eclipse Equinox.

Agreed.  I re-read the Equinox documentation several times now and I think it's related to the default JNI-launch technique.  Equinox uses jvm.dll unless in special edge-cases and I can see how PATH pollution could break that.
What I don't understand is why this fails in the first place.  For example, if Program Files\ occurs before Program Files (x86)\ in the PATH, shouldn't it just ALWAYS prefer 64-bit due to path search order?
Perhaps it's a simple as fixing Equinox to rearrange the PATH on launch:

Always put Program Files (x86)\ latter when the launcher is 64- bit

An even better strategy would be to look for Adopt through other means and not trust PATH at all.  I have a suspicion this is what happens with the Oracle version.  If you can find the right bitness JVM through the registry, you can prepend that to PATH.
If Equinox knows what platform it prefers, it needs to make a few more checks before falling back onto the PATH.  Unfortunately -- at the time of writing this -- I don't think there's a universally adopted, non-Oracle way for identifying JDKs on the system.  I currently use HKLM\SOFTWARE\Classes\AdoptOpenJDK.jarfile\shell\open\command, but that's undoubtedly a hack.

... and perhaps this is easier than all of the above.  By default a x86 process reads values from the 32-bit registry and a x86_64 process reads values from the 64-bit registry so if registry is acting as a bitness detector, the correct JVM would "just work" (and thus fail to load at all if missing for that bitness).


Use ^?ngModel on input directive

We are building components that wrap some of the basic html elements and therefore angular directives. One of these components is of the form:

    <input />

    ...

Our component accepts an ng-model as the input value however we have to pass the ngModel as <input ng-model="myComp.ngModel" /> which creates a second ngModelController and causes the one that the consumer gave us to be out of sync with our internal one that is bound to the <input> element. I believe this can be solved by changing the require option on the input directive from '?ngModel' to '^?ngModel'. This would allow the input directive to use the one our consumer gave us. I'll submit a PR if this seems like a viable option.
Cheers!
-rob

Interesting idea. I would like to see a more fleshed out example of this, though. This one doesn't really explain why you have to have two ngModels.

Sure...so take this directive structure:

    {{::caption}}
    <input ng-model="value" />

and the directive definition:
class Textbox implements ng.IDirective {
    public require = ["^?form", "ngModel"];
    public restrict = "E";
    public scope = {
        caption: "@?",
        value: "=ngModel"
    };
...

and the usage of this is:
<xui-textbox ng-model="someController.someValue" caption="Some Caption"></xui-textbox>
There are two ngModelControllers created here. One that gets created directly on the directive's parent scope and one that gets created on the <input> element inside the directive. The issue is that these two controllers get out of sync. The internal ngModelController reacts to the <input> changes however this is not reflected to the parent's ngModelController. There is a way to work around to this detailed here however we think this small change would open this up for a more streamlined design.

A common way of dealing with this is to give your xuiTextbox a higher priority than ngModel, making your directive terminal and then passing the expression in the ng-model attribute down to the ng-model on the input in your template.

Thanks, we'll try that as well. It still seems  to be a work around to an issue that would be solved by changing the input to search for parent models. Although I understand that could cause a breaking change.

Supporting inputs with ngModel on a parent element, is much more involved than simply changing ?ngModel to ^?ngModel. The current implementations assume that the directives are defined on the elements themselves, so certain features won't work as expected without further modifications.
You can try that out, by decorating the input directive to change ?ngModel to ^?ngModel (demo pen). E.g. the $touched-related functionality (among other things I bet) stops working, because it binds the listeners on the xui-textbox instead of the input.
Why do you even need an NgModelController on xuiTexbox ? Why not let the user bind to some arbitrary attribute (e.g. xuiModel) ? Something like this pen ?

Understood. We thought about using something similar to the xuiModel option you mention however having direct support for ng-model on our element seemed more appropriate. We'll try the priority/terminal approach as that seems better than our original plan. Thanks guys! I'll close this out as the point about needing ng-modal in the input for events makes this a no-go.


Fix JS error on getRedirectLocation

Summary
Update redux to fix JS error on getRedirectLocation.

Ticket Link
none
Checklist

[x] Ran make check-style to check for style errors (required for all pull requests)
[x] Ran make test to ensure unit and component tests passed

Closing in favor https://github.com/mattermost/mattermost-webapp/pull/1634


Inference Code

Is there a way to load the model and perform inference inside the code like
model = load_lgssl()

data = my_data[0] # single example
results = model(data)

Hi @ahmadmustafaanis,
we're in the process of adding torch hub functionality to our code base which should make this easier. This should happen in the next few weeks.
For now, you need to follow the following steps after pulling the last commit which simplified the get_model function's input.

Download the pretrained checkpoint that you want from here [here] (https://www.dropbox.com/sh/me6nyiewlux1yh8/AAAPrD2G0_q_ZwExsVOS_jHQa?dl=0) and put it in data/checkpoints. For example, if you are interested in the language-guided simclr model, you would download lgsimclr.ckpt.
Run the following code:

import torch
from lgssl.evaluation.utils import get_model

model = get_model("lgssl_checkpoints", "lgsimclr")   # the second variable is the name of the checkpoint

fake_img = torch.rand(1, 3, 224, 224).cuda()
fake_feat = model(fake_img)

Let me know if this works for you. I will update this once we get the torch hub loading up and running.

This is great, it is working fine, if there is any way I can contribute to this repo as a beginner, with PyTorch hub or something other that is relatively simple and in your backlogs, do let me know. I'd love to contribute.

Sorry for the delay. We have added the hunconf functionality and you can get any checkpoints using the following code snippet, just replace lgsimclr with whichever checkpoint you want to use. The list of available checkpoints can be seen on dropbox or by looking at hubconf.py.
import torch
model = torch.hub.load("mbanani/lgssl", "lgsimclr")


Not an issue, but...

I really loved the mod in 1.15, and can't wait till it comes out for 1.16, so when can we expect it to come out for the new update?

When it's ready.

Hi, you mentionned 1.16.X, due to high demand this feature will come in the next few days/months.The less issues, the faster the dev can work. Enjoy a cup of tea 🍵 while waiting !


Ability to set User Agent

Would be very helpful and would allow us to comply with Reddit's API TOS.

You can set a user agent. RedditSharp.WebAgent.UserAgent = "...";
Also, it has a sensible default so you aren't violating the terms even if you don't override it.

It would be advantageous to have this exposed in RedditSharp.Reddit.  I'm not seeing how one can set the user agent from that class.  Otherwise one is left with using WebAgent and building from their, which is less than ideal.

RedditSharp exposes its internal WebAgent, so you can just reach in and change that property.

It's a static property on the WebAgent class. Not difficult to modify.

Thank you SirCmpwn, You are correct.


Handle AWS API limits and play nice with other applications

This change adds a few features and configuration options to Edda:

detect and handle AWS API throttling/limit errors so edda can complete crawls instead of throwing an exception
randomly delay (jitter) API requests
pace edda requests to decrease the load on the API

The settings are controlled by new options in the configuration file and are disabled by default for backwards compatibility:

edda.crawler.throttle.enabled=false
edda.crawler.throttle.delay=200
edda.crawler.throttle.maxDelayMultiplier=225
edda.crawler.requestDelay=0
edda.crawler.jitter.enabled=false
edda.crawler.jitter.max=2000

This change resolves Issue #77

Did you consider or try mapping some of these setting to a RetryPolicy directly on the aws client?
http://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/ClientConfiguration.html#withRetryPolicy-com.amazonaws.retry.RetryPolicy-
One thing I'm not sure about is whether crawler level is appropriate here. I think it makes sense for the normal view when things are not getting throttled by AWS so the user can prioritize which collections should be refreshed more frequently. However, when throttling does occur several crawlers may be competing for the same read resources. For example, most EC2 read calls will all count toward the same request call limit, but they are separate crawlers in edda.
I'm wondering if setting the retry and backoff behaviors on the underlying AWS clients that are shared across crawlers would do a better job of managing over all calling behavior from edda.
Thoughts?

I'll look into the RetryPolicy.  The more we can use with the AWS SDK the better.
Regarding the crawler level, I agree that makes sense.  I wrapped the calls from the crawler since it seemed like the safest injection point for delaying calls and catching errors.  If we can use the RetryPolicy or anything else in the AWS SDK to handle this that would be fantastic, but if that option isn't available I'm not sure where or how to implement this behavior in edda.  Would you add another abstraction layer so AWS calls are aligned with the various API limits imposed by amazon and then queued or something?
Since edda basically spawns a bunch of crawlers to poll all of the various resources at the same time I looked at it as if it were several different applications all hitting the API for the same account and I think the catch/delay/retry with an increasing backoff implements the same type of behavior you might use if you did have different apps encountering this problem.
I would be more than happy to make any changes you have or even reimplement this if there is a better way to do it.  I'll review the RetryPolicy today; maybe that will negate the need for a lot of this functionality.

Hi,
Just wanted to give a little feedback: I've been running this patchset in one of my lower environments (~1000 instances, a few hundred ASGs and ELBs), and it's a massive improvement. The logic seems to work as intended, and our Spinnaker deploy times have been reduced significantly -- previously pipelines would stall for ~10-20minutes as Edda would get rate limited while determining instance health.
My only suggestion would be to bump your logging verbosity up to INFO or WARN (or make it configurable) -- I think that feedback on rate limiting, when it happens, is pretty useful and something that people will want to capture/track.
Cheers, and I hope to see this in mainline soon!

Hi,
We are seeing rate limiting issues (similar to gkuchta). Would like to see this in mainline, so that we could try new version of edda.
Thanks,
Ganesh

Outstanding parts were minor and can always be done as a follow up so I'll go ahead and merge.

Thank you for the quick response!


Request body data not supported?

Maybe I'm missing something obvious here, but it looks like crest (2.0.0-RC1) does not seem to support parameters bound to the HTTP body, which is very common in POST/PUT requests. E.g.
@Path("/something")
public interface SomethingResource {
  @POST
  @Consumes(MediaType.APPLICATION_JSON)
  @Produces(MediaType.APPLICATION_JSON)
  public Response something(Request request);
}

where Request and Response are POJOs that I'm expecting to be handled by the normal serialization mechanism (i.e. Jackson, SimpleXML, ...). I started looking into how I can implement an EntityWriter for this, but most of the implementation classes that would need to be sub-classed like DefaultMethodConfigBuilder are package-private.

CRest comes with 2 standards way of encoding form parameters into the HTTP entity:

application/x-www-form-urlencoded
multipart/form-data

What you are trying to do
public Response something(Request request)

is not really doable in CRest as as of now, it needs a parameter name for any REST interface method's parameters.
instead you can do as follow:
public Response something(@FormParam("p1") SomeType1 p1, @FormParam("p2") SomeType2[] p2);

with a custom EntityWriter that dump parameters as Json encoded as follow:
{
"p1": /* SomeType1  json dump /,
"p2": [/ SomeType2  json dump */]
}
You'll see at the bottom of the Serialization page of the website (http://crest.codegist.org/serialization/serialization.html) a link to two sample source code of such Entity writers.
As for the custom Response object, CRest should already handle it properly , did you have any issue with it?
DefaultMethodConfigBuilder is package private because it is CRest internal implementation mechanism. Method config buidling occurs first and only once when CRest builds a proxy of a user's interface.


docs: Moving to use Announcement Banner for the Support Ukraine Initiative

Summary
Following a suggestion in https://github.com/facebook/react-native-website/pull/2986, moving to use an announcement bar:

Not sure why the deploy failed - it builds just fine on my local and the error message here doesn't seem related

12:23:28 AM: API communication error. Canceling build. (Showing in Netlify Logs)

@Simek, any ideas?

Very cool that the community is aiming to promote humanitarian aid!
Where should I direct suggestions that we should also add an option to support the people of Donbass?
Ya know -- just so it's clear that the community isn't supporting the puppet gov't installed after the US-directed coup in 2014?
If it's a question of need, I'd like to point out that 14k people have been killed as a result of the NATO/Ukranian onslaught against Donbass (which incidentally has been led in large part by IRL hitler-loving nazis)
Nothing but love to the people of Ukraine, but hope there's enough sense to realize there's nuance to the humanitarian dimensions here.
Note: I made a similar inquiry here [link from comment] which was somewhat ungraciously responded to

Thank you, everyone, for your help in this initiative to support humanitarian causes in Ukraine. As we stated earlier, our mission at Meta Open Source is to empower communities through open source. We believe that it means building a welcoming and safe environment for all. Adding this banner with a link to non-profits in Ukraine is another step towards that goal.


Explicitly set requiresMainQueueSetup flag to false

Fixes https://github.com/arpansharma7474/rn-sms-retriever/issues/4

hi, any chance you have time to check this pr?

Hi @andrewgrinko I apologise for the late response. We will soon be merging this PR along with updating the react native and library versions.
I appreciate your support. Thanks!


Amici commands

In a final version, we should write all examples in a way, that the code from AMICI is not needed as a whole package (mex functions are of course okay), i.e. comment or cut all calls to amiwrap.

I don't see how you could achieve this, you would need to pack multiple mex files. They are operating system, so at least one mex file for windows, mac and linux. And then I don't know how portable they are between matlab versions and version of the operating system. Shipping binaries is difficult, especially since AMICI is not included in PESTO and we can't do any kind of continuous deployment. I would keep the amiwrap dependencies in and add a check for amici with the appropriate error message.

I completely agree with @FFroehlich. The main functionality should be covered by AMICI-independent examples. For the other "bonus examples", it's the users responsibility to have AMICI available.

Done.


A list of differences to gogs

I just set up a new server and am considering migrating to gitea from gogs. I searched for a short page/text comparing gogs and gitea feature-wise and didn't find anything so far on your website. I'm aware of the reason of the fork and I noticed that there is a list of features in the docs but comparing multiple pages of bulletpoints really isn't something which should be done by visitors.
It would really help me (and propably other people considering a move) if there was a reasonably up-to-date list of properties which are unique to gitea, maybe also a list of features that are only available in gogs.
(If there already exists such a list, make it more discoverable, please! )
Thank you!

Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

I think it's difficult to compare Gitea with Gogs since both have new features since Gitea forked from Gogs. But I think the most different thing is Gitea has many maintainers but Gogs has one.

I have to say I dislike this idea because it will never stay up 2 date. Better have lesser information than wrong information.

Well, I'm using Gogs since a long time and I don't know if the migration is worth the cost of time.
Don't take me wrong but one maintainer against many is not a good enough reason to me. One can know its own software more than many, no offense.
If there are really good new features in Gitea that Gogs doesn't have, I'm interested.

@Chouchen LDAP user sync, CI status API and display in commit list, more granular access to each repository unit - these were features important to me but there are so many changes in both projects that it is really hard to keep track. As there is some features that are also differently implemented in each project.

@lunny mentioned:

GPG verification
Units Permission Controls

Also mentioned were:

2FA (which gogs later introduced)
Broader API (?)
OpenID

Status API
LDAP Sync
Batch issues operation
OAuth Login

So what do we want to do with this report?

A reason for why should we convert Gogs to Gitea? :smile:

Probably leave it open while we create docs comparing them as this question raises very often otherwise

Probably best if you try hosting both of them and comparing it yourself

Closing this as this page now exists at https://docs.gitea.io/en-us/comparison/

Very impressive


Support  for IE 6/7

I'm running keen over IE7 and apparently this js error pop-ups on page load: http://screencast.com/t/PVI1foNTZm13, and references the keen.io library (https://d26b395fwzu5fz.cloudfront.net/3.2.6/keen.js)
"Error Message: Expected identifier, string or number"
*which points to the following line: http://screencast.com/t/o13Iw8PX (#3190, not minified)
There's a misplaced comma in that object definition which IE6/7, don't automatically fix.
**Fixing the above issue, leads to another one:
"JSON is undefined" error message. Here's a snapshot: http://screencast.com/t/HzaCgxp8sx
Since the library uses JSON.stringify function, it will need to include the JSON3 parser in order to support it on IE < 8.
I added reference to JSON3 (//cdnjs.cloudflare.com/ajax/libs/json3/3.3.2/json3.min.js) on top of the keen library.js and that fixes it.
Wish you could have this added/compiled, or if you could guide me how- That'll be really great!

Thanks for digging into this @vebinua! I've opened two issues to track each of these. I appreciate your help!

You are very welcome @dustinlarimer! and Thank you too. Glad I could help!


Incorrect OS detection by Emscripten installer

When I try to install Emscripten inside an Ubuntu VM, the installer for some reasons downloads darwin versions before failing the install process… I tried the same commands within WSL, in which case a proper Linux version is downloaded as expected.

OrbStack output
jankais3r@Ubuntu:~$ uname -a
Linux Ubuntu 6.1.22-orbstack-00103-g3c7ed2581be0 #146 SMP Sat Apr  1 04:48:42 PDT 2023 x86_64 x86_64 x86_64 GNU/Linux
jankais3r@Ubuntu:~$ curl -L https://github.com/emscripten-core/emsdk/archive/refs/tags/3.1.30.tar.gz | tar xz
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:--  0:00:04 --:--:--     0
100 94115    0 94115    0     0  17365      0 --:--:--  0:00:05 --:--:-- 17365
jankais3r@Ubuntu:~$ mv emsdk-* emsdk
jankais3r@Ubuntu:~$ ./emsdk/emsdk install latest
Resolving SDK alias 'latest' to '3.1.30'
Resolving SDK version '3.1.30' to 'sdk-releases-upstream-dc1fdcfd3f5b9d29cb1ebdf15e6e845bef9b0cc1-64bit'
Installing SDK 'sdk-releases-upstream-dc1fdcfd3f5b9d29cb1ebdf15e6e845bef9b0cc1-64bit'..
Installing tool 'node-14.18.2-64bit'..
Downloading: /home/jankais3r/emsdk/zips/node-v14.18.2-darwin-x64.tar.gz from https://storage.googleapis.com/webassembly/emscripten-releases-builds/deps/node-v14.18.2-darwin-x64.tar.gz, 32076686 Bytes
Unpacking '/home/jankais3r/emsdk/zips/node-v14.18.2-darwin-x64.tar.gz' to '/home/jankais3r/emsdk/node/14.18.2_64bit'
Done installing tool 'node-14.18.2-64bit'.
Installing tool 'python-3.9.2-64bit'..
Downloading: /home/jankais3r/emsdk/zips/python-3.9.2-3-macos-x86_64.tar.gz from https://storage.googleapis.com/webassembly/emscripten-releases-builds/deps/python-3.9.2-3-macos-x86_64.tar.gz, 31899321 Bytes
Unpacking '/home/jankais3r/emsdk/zips/python-3.9.2-3-macos-x86_64.tar.gz' to '/home/jankais3r/emsdk/python/3.9.2_64bit'
Done installing tool 'python-3.9.2-64bit'.
Installing tool 'releases-upstream-dc1fdcfd3f5b9d29cb1ebdf15e6e845bef9b0cc1-64bit'..
Downloading: /home/jankais3r/emsdk/zips/dc1fdcfd3f5b9d29cb1ebdf15e6e845bef9b0cc1-wasm-binaries.tbz2 from https://storage.googleapis.com/webassembly/emscripten-releases-builds/mac/dc1fdcfd3f5b9d29cb1ebdf15e6e845bef9b0cc1/wasm-binaries.tbz2, 319937073 Bytes
Unpacking '/home/jankais3r/emsdk/zips/dc1fdcfd3f5b9d29cb1ebdf15e6e845bef9b0cc1-wasm-binaries.tbz2' to '/home/jankais3r/emsdk/upstream'
tar (child): lbzip2: Cannot exec: No such file or directory
tar (child): Error is not recoverable: exiting now
/usr/bin/tar: Child returned status 2
/usr/bin/tar: Error is not recoverable: exiting now
['tar', '-xf', '/home/jankais3r/emsdk/zips/dc1fdcfd3f5b9d29cb1ebdf15e6e845bef9b0cc1-wasm-binaries.tbz2', '--strip', '1'] failed with error code 2!
error: installation failed!

WSL output
root@MBP14:~# uname -a
Linux MBP14 4.4.0-22000-Microsoft #1281-Microsoft Tue Nov 08 17:05:00 PST 2022 aarch64 aarch64 aarch64 GNU/Linux
root@MBP14:~# ./emsdk/emsdk install latest
warning: 'latest' on arm64-linux may be slightly behind other architectures
Resolving SDK alias 'latest-arm64-linux' to '3.1.21'
Resolving SDK version '3.1.21' to 'sdk-releases-upstream-a16a8bca2466eb144f7c93fa899c0272c8815dc3-64bit'
Installing SDK 'sdk-releases-upstream-a16a8bca2466eb144f7c93fa899c0272c8815dc3-64bit'..
Installing tool 'node-14.18.2-64bit'..
Downloading: /root/emsdk/zips/node-v14.18.2-linux-arm64.tar.xz from https://storage.googleapis.com/webassembly/emscripten-releases-builds/deps/node-v14.18.2-linux-arm64.tar.xz, 21134636 Bytes
Unpacking '/root/emsdk/zips/node-v14.18.2-linux-arm64.tar.xz' to '/root/emsdk/node/14.18.2_64bit'
Done installing tool 'node-14.18.2-64bit'.
Installing tool 'releases-upstream-a16a8bca2466eb144f7c93fa899c0272c8815dc3-64bit'..
Downloading: /root/emsdk/zips/a16a8bca2466eb144f7c93fa899c0272c8815dc3-wasm-binaries-arm64.tbz2 from https://storage.googleapis.com/webassembly/emscripten-releases-builds/linux/a16a8bca2466eb144f7c93fa899c0272c8815dc3/wasm-binaries-arm64.tbz2, 237396459 Bytes
Unpacking '/root/emsdk/zips/a16a8bca2466eb144f7c93fa899c0272c8815dc3-wasm-binaries-arm64.tbz2' to '/root/emsdk/upstream'
...

This isn't really an OrbStack issue. emsdk calls platform.mac_ver() from the Python standard library and assumes that it's running on macOS if it gets a macOS version back. Python just reads /System/Library/CoreServices/SystemVersion.plist and doesn't check the actual running OS. Since OrbStack mounts /System from macOS, it reads the version successfully and thinks it's running on macOS.
It might be worth opening an issue with Emscripten, but for now I've decided to remove /System integration since it's probably rarely used and is still available at /mnt/mac.

Fix released in v0.6.1.


[Suggestion] Wording in docs/tutorial is misleading

Problem
In each list item, "online version / written version" may imply to a reader that:

there are two versions of the largely same article (or a set of contents)
the "online" one is preferable
the "written" one is offline (say, I thought it could be a pdf document)

The truth, however, is that the "online version" is an example in playground with some comments, which serves better as a demo rather than tutorial, while the "written version" is what a learner really needs and in its body the former is also referred to via a hyperlink.
Solution
Swap "online version / written version" and then replace them with "article / demo".

Thanks for the feedback @grandsong.
I see your point and will try to repharse it.

Tutorial has gotten some upgrades
https://github.com/SAP/chevrotain/tree/master/docs/tutorial
Please have a look.
any feedback is welcome. 👍

Much better.


feat(runtime-core): useId()

Similar to React's useId, this composable returns a unique ID that can be used for form elements and accessibility attributes.
The generated IDs look like v:1-2-3 and are unique across each app instance and are stable across server rendering and client rendering. This is ensured by dividing an app into async boundaries (async components, async setup, serverPrefetch). The order of appearance of direct child async boundaries are always consistent assuming the same data is used between server and client, but their order of resolution may be different. Even if two async boundaries resolve in different orders between server and client, useId() calls inside the two boundaries should not affect each other.
Example Usage

<template>
  <form>
    Name:
    <input :id="id" type="text" />
  </form>
</template>

App Scoped
Note IDs generated are unique-per-app-instance. If you have multiple apps on the same page, you can configure an app-level prefix for each app via app.config.idPrefix:
const app = createSSRApp({ ... })

app.config.idPrefix = 'app1'

can this be used for key attribute within a v-for and not worrying about creating keys ourselves?

After working with useId, I've noticed that it doesn't function as expected when called within asynchronous contexts such as setTimeout, setInterval, or Promise callbacks. I understand that this is due to the current implementation relying on getCurrentInstance(), which returns null in these scenarios.
While I appreciate the design considerations that likely led to this implementation, I'm curious about the rationale behind not providing built-in support for generating IDs in asynchronous environments. Some questions I have:
Was this a deliberate design decision? If so, could you share the reasoning behind it?
Are there any recommended patterns or best practices for generating unique IDs in asynchronous contexts while still maintaining the benefits of useId (such as SSR compatibility and component scope)?
Are there plans to extend useId functionality to work in async environments in future releases?
If extending useId isn't planned, could you provide guidance on implementing a similar functionality that works across both synchronous and asynchronous contexts?

After working with useId, I've noticed that it doesn't function as expected when called within asynchronous contexts such as setTimeout, setInterval, or Promise callbacks. I understand that this is due to the current implementation relying on getCurrentInstance(), which returns null in these scenarios. While I appreciate the design considerations that likely led to this implementation, I'm curious about the rationale behind not providing built-in support for generating IDs in asynchronous environments. Some questions I have:
Was this a deliberate design decision? If so, could you share the reasoning behind it? Are there any recommended patterns or best practices for generating unique IDs in asynchronous contexts while still maintaining the benefits of useId (such as SSR compatibility and component scope)? Are there plans to extend useId functionality to work in async environments in future releases? If extending useId isn't planned, could you provide guidance on implementing a similar functionality that works across both synchronous and asynchronous contexts?

Code Example
Here's a simple example to illustrate the issue:

<template>

{{ message }}

</template>

Hello!
I’m currently working on updating my Nuxt project to the latest versions of its dependencies, specifically<EMAIL_ADDRESS>and<EMAIL_ADDRESS>However, after installing these updates, I’ve encountered some issues: several of my tests are failing, and I’m getting a TypeScript error that says:
Type 'string | undefined' is not assignable to type 'string'.
This error appears wherever I use the useId() function. Upon further investigation, I discovered that the type definition indicates this function might return undefined, which is causing problems in areas where I need guaranteed IDs.

I’m curious if this behavior is intentional or just an oversight. It seems unusual for a function designed to generate unique IDs to potentially return undefined. What do you think?

Thanks for implementing the useID function! This is a huge improvement for SSR. I have created an issue for a problem I found with the current implementation: #11828

@dadaguai-git This simple change can generate unique IDs in asynchronous contexts. This api design maybe is intended to be consistent with React's useId.
/** useId */
export function useIdCreator() {
  const i = getCurrentInstance()
  if (i) {
    // return (i.appContext.config.idPrefix || 'v') + ':' + i.ids[0] + i.ids[1]++
    return () => (i.appContext.config.idPrefix || 'v') + ':' + i.ids[0] + i.ids[1]++
  } else if (__DEV__) {
    warn(
      `useId() is called when there is no active component ` +
        `instance to be associated with.`,
    )
  }
}

How can I use this feature in lists?

You can't


Styles failing in Outlook 2007 and up?

How can we reproduce this bug?
Use the following code:
HTML (inky)
<row>
	<columns>
		<wrapper class="villa" bgcolor="#e6edf2">

			<row>
				<columns large="6" no-expander>

Agios Nikolaos

Almyrida, Crete

				</columns>
				<columns large="6" no-expander>

				</columns>
			</row>

Agios Nikolaos is located in a truly magnificent spot, positioned on the hillside
 just above the popular seaside village of Almyrida.

			<row>
				<columns large="9">

7 Nights from only

£804 pw

				</columns>
				<columns large="3">
					<button class="view expand" href="#">View Now ></button>
				</columns>
			</row>
		</wrapper>
	</columns>
</row>

CSS
.villa {
	background:#e6edf2;

	.container {
		background:#e6edf2;
	}

	h1 {
		text-transform:uppercase;
		font-family:'Open Sans';
		font-weight:700;
		font-size:19px;
		color:#25346b;
	}

	h2 {
		font-family:'Open Sans';
		font-weight:400;
		font-size:17px;
		color:#25346b;
	}

	h3 {
		font-family:'Open Sans';
		font-weight:400;
		font-size:14px;
		color:#25346b;
	}

	h4 {
		font-family:'Open Sans';
		font-weight:700;
		font-size:20px;
		color:#25346b;

		span {
			font-weight:400;
			font-size:14px;
		}
	}

	img.float-right {
	  	float:right;
	  	text-align:right;

	  	@media only screen and (max-width: #{$global-breakpoint}) {
	  		float:left !important;
	  		text-align:left !important;
	  	}
	}

	p {
		font-family:'Open Sans';
		font-weight:400;
		font-size:12px;
		color:#25346b;
	}

	table.button.view table td {
	  	background:#ea047f !important;
	  	border-color:#ea047f;

	  	a {
	  		text-transform:uppercase;
	  		font-family:'Open Sans';
	  		font-weight:400;
	  		color:white;
	  	}
	}
}

And run foundation build to create the files
Write out the HTML (or Inky code) that causes the issue.
As above
What did you expect to happen?
The image to be aligned right and the button to have a background
What happened instead?
The image sat to the left and the button lost its background
What email clients does this happen in?
Outlook 2007, 2010, 2013
Weirdly, 2000 and 2003 work absolutely fine. Note, I also had to add the image float-right code into my own styles as it wasn't being carried over from the framework styles for some reason..have attached some issues of the email working and not working

@lspoor Did you ever figure out the issue with the button background not showing up? I think I'm seeing the same issue on one of my emails:

Hey @callaginn I haven't been on this since posting this I'm afraid.

I have the same issue. Managed to make a background appear by cheating, and the final result is far from ok, I will pursue my tests.

                    <button class="alert" href="#">DO STUFF</button>

The button element creates a table. The styles seem to work so this is not the same issue.

In general buttons should be configured through the settings file.
There might be the hover or other styles that cause this.


k2pdfopt: 2.32 -> 2.42

Motivation for this change
Updates k2pdfopt to 2.42 for #28643
I use this package infrequently, but I'd like to see it working in 17.09. It was a pain to package properly--it includes a number of .c and .h files that are intended to replace the corresponding files in the upstream packages. I've used overrideAttrs to enable this more nicely than including an ad-hoc build script like before. (Note that I had to use mupdf 1.10a instead of the more recent version in nixpkgs 1.11, since the .c files in k2pdfopt are written just for 1.10a)
This also includes a modification to "gocr" to install libraries and include files so it can compile in k2pdfopt. However, I've disabled the GOCR engine since it crashes for me while testing. The tesseract OCR engine works much better in most cases anyway.
I've tested the executable works, as well as the optional functionality enabled by tesseract, mupdf, ghostscript, and jasper.
Things done

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

[ ] NixOS
[ ] macOS
[x] Linux

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[x] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[x] Fits CONTRIBUTING.md.

Thank you


Dimmer Brightness not 100% in Tuya app.

The value converted from HomeKit to Tuya is incorrect. The code appears to be using 255 as the maximum, but when it's set 100% in HomeKit, it's only showing 26% in the Tuya app.
Is there some configuration item being incorrectly set, or does this need a code change?

In the dimmer configuration, I use Scale brightness in my case it can be 1 to 1000 but I find my light doesn't appear any brighter after 822. min brightness is also useful because if you turn them off when they a really dim might find they won't fire back up when you turn them back on.
"minBrightness": 20,
"scaleBrightness": 822,


*: add CHANGELOG

Fix https://github.com/coreos/etcd/issues/6049.

/cc @xiang90 @heyitsanthony
This is first draft. Feedback?
Reference https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG.md.
Thanks.

I think we need more notes instead of a change log. github release page is enough for the changes.

Yeah I prefer to keep them all in a single place, like github release notes.
I will make the release notes clearer to address that issue.


The Font Matcher text should take you home

Clicking on the top heading should take you to the home page.

Completed.


Update AirGap.toml for testnet-15

Description
All previous genesis validators should name their PRs "Update {validator_alias}.toml for tesntet-15" and provide links to previous PRs merged.
If this is an UPDATE for a previous genesis validator
Checks are made against your net_address. If this has changed since the previous testnet, make sure you provide links of previous prs merged from your previous git username.
Thanks in advance!
Checklist before merging

[x] Only one toml is added in this PR
[x] The file being added is indeed a .toml file
[x] The toml being added is to the correct folder, and only to the correct folder
[x] The eth_hot_key and eth_cold_key are present
[x] The email, discord, elements telegram, and twitter fields are present and valid

previous mr https://github.com/anoma/namada-testnets/pull/1442 ( net_address changed)

Successfully validated transactions.toml file for commit hash 22203b6


Bug in jest node_modules resolver - doesn't work in yarn workspaces

The jest node_modules resolver doesn't work when run from packages within individual workspaces.
This is because module paths that are above the individual package directory are not checked - therefore modules are not looked up in the workspace directory itself.
Steps to reproduce:

create a yarn workspace at
/path/to/workspace

Add a module: /path/to/workspace/packages/test-module

Add a dependency for the module (make sure you run yarn install from the root dir so that it ends up in  /path/to/workspace/node_modules - NOT /path/to/workspace/packages/test-module/node_modules

Add jest to the test-module and configure it

Run jest

expected: imports/requires work fine
actual behaviour: module isn't found since only paths down to /path/to/workspace/packages/test-module/node_modules are checked by the resolver
jest version: v21.2.1
yarn version: 1.3.2
Node version: v8.9.1
OS: Mac OSX

Sorry, disregard this. The problem was something totally different.


Use chromely in ubuntu

I found that my project using chromely is not compatible with non English character input method in Ubuntu. Please tell me how to deal with it. Thank you very much

Hi @inmount what exactly is the problem?
I use chromely on german Ubuntu without problems...

I have a client who uses the simplified Chinese version of Ubuntu 20.04. He told me that he can't use IBus input method to input Chinese, but he doesn't have this problem when he uses it on a Windows 10 computer


[FEAT-REQ] Ability to use multiple trees simultaneously

Is your feature request related to a problem? Please describe.
First of all, thanks for this truly amazing library!
My problem is that I need to use two trees in one view with different data sets, and since the library is using Zustand with a global store, both trees were showing the same set of values. I was able to overcome it with a dirty hack, but it would be great if there was the ability to use multiple trees in one view.
Describe the solution you'd like
The best solution would be to be able to have any amount of TreeViewes hosted on the same page with no data duplication. Something like:
<TreeView data={data1} />
<TreeView data={data2} />

showing different data.
Describe alternatives you've considered
I ended up duplicating the store and duplicating the TreeView component (to have "TreeView2") for now, but it's a very dirty solution, it would be great if the library supported it.
Screenshots or screen records
NA
Additional context
NA
Would you like to work on this feature?
Unfortunately, I'm not good enough with React to be able to work on it

Why hasn't this problem been solved?

@JarvisMarkDown Hi there! 👋
Thanks for pointing this out. Just to clarify, this library is open-source and heavily relies on contributions from the developer community. If you'd like to jump in and help, that would be amazing! I'm always happy to collaborate and guide anyone interested. 😊
That said, the fix is already on the way, and I appreciate your patience as it's being worked on. Let me know if you have any other thoughts or suggestions!

Hey @StasSharp! 👋
Thank you for your kind words and for sharing your detailed use case! 😊
I'm excited to let you know that the feature you requested—support for multiple TreeView components with separate data—is now available in v1.6.0-beta.1 and also on npm: v1.6.0-beta.1. 🎉
With this release, you can now use multiple TreeView components on the same page without data duplication, just as you described:
<TreeView data={data1} />
<TreeView data={data2} />

Feel free to give it a try and let me know if you encounter any issues or have additional feedback. I’ll be closing this issue for now, but don’t hesitate to reach out if anything comes up. 🙏
Thanks again for your feature request and valuable feedback! Also, just a heads-up that I’m planning to promote the beta to the main release in about a week or so.


Restrict all Zip codes to format with only five numbers

Like it says, some of the Zip codes (particularly on the Employment/School/Training section) are allowing more than five characters.

I could help with this.

I could help with this.

Excellent. Give me about 5 minutes from when this is posted to update the readme with the login info.

@phr-nk I realized my firebase DEV environment settings were accidentally in .gitignore. I've fixed that and they are available now. May want to pull to update.


Added microphone and camera params to iframe to work on newer version…

Reference examples that required camera or microphone access were not working on newer versions of chrome due to their new feature policy

What kind of change does this PR introduce?
Bugfix

Does this PR introduce a breaking change?
No

What needs to be documented once your changes are merged?
Nothing only added params related to chrome's policy change on iframes

@Pettrus - Oh! Yes thank so much for this contribution! I was wondering why this behavior was popping up recently. This is wonderful. Merging now. 🙏

@all-contributors please add @Pettrus for bug maintenance


Printing code doesn't work

Whenever I print out my code for demonstration it's just blank

Oh wait


social media icons for each member of Grabtern community have been added

Related Issue

Closes: #[issue number]
Description of Changes

Checklist:

[x] My code adheres to the established style guidelines of this project.
[x] I have conducted a self-review of my code.
[x] I have included comments in areas that may be difficult to understand.
[x] I have made corresponding updates to the project documentation.
[x] My changes have not introduced any new warnings.

Screenshots

Original
Updated

Please provide any necessary screenshots to illustrate the changes made.

social media icons for each member of Grabtern community have been added
Before update

After update:


NT-1542: Pledge Amount Missing from Manage Pledge

📲 What
In the manage pledge view, the pledge line item does not show up when the user backs for a digital reward.
🤔 Why
The user should be able to see what their pledged amount is and how that value is separate from the total value and the bonus support.
🛠 How
The logic to determine if the pledge line should be visible is no longer based on the location id but on if the reward on the backing object is null.
📋 QA
View a project that has a digital reward and back it. Navigate to the manage pledge view to verify the pledge line item.
Story 📖
NT-1542

Could you add a check for isNoReward, or consult with @colleenmacd if the Reward no Reward should show the same text as the regular rewards

Confirmed with Colleen that the text can be the same as the regular rewards.


poker game

I want add a poker game to the project
please allow me to add.
The game looks like this

P club participant


added CatalogURL retention

added CatalogURL value retention for Macs running beta macOS releases (writes key back after deleting /Library/Preferences/com.apple.SoftwareUpdate.plist) #54
differentiated variables collecting CatalogURL value from /Library/Preferences vs /Library/Managed Preferences
added configuration profile creation instructions to README using the profile manifest hosted at ProfileManifestsMirror

So far this fix seems to be hold up and working on my Intel device, I've got 48hours left to defer before it automatically installs.
I need to try this on an Apple Silicon beta Mac too

@mpanighetti It was working on my Silicon device but Yesterday or today Apple released Monterey 12.3 beta 5 and the script  detected no updates so unloaded.  1 minute later System Preferences showed the red dot and detected 12.3 beta 5
This feels like a time lag issue between clearing the update cache and "Checking for pending system updates" softwareupdate -l running

I recently changed the sleep timer to 30 before checking for pending updates, could increase back to 60 if it's a matter of needing more time for the daemon to load.

@mpanighetti  My Intel device powered through the transition from Beta 4 to Beta 5 with no issues (18 hours left to defer)........ Maybe this is unique to Apple Silicon?

Working on Intel and Silicon devices for me


[cairo] some refactoring for second version of the runner

Include a link to the Cairo original implementation so we can read where their modulus comes from while reading the documentation.

rename least_significant_byte to lsb

The lsb refactoring was included in the commit 1f6b739f9d16a06eba739dde6289fb602824afbf of the branch cairo-runner

The link was added in the commit 3de0734281a55a2e16368e92dc2f60c182dcf42d of the branch cairo-runner


extra trailing comma

delete  extra trailing comma

It works on all modern browsers & node.js. I suggest you create an issue to en docs first. And I will sync the update if it's accepted.
https://github.com/vuejs/vuejs.org/blob/master/src/v2/guide/list.md
Thanks.


ClickHouse Authentication failed 516 with default user and password on port 8123

Hello,
I cannot access ClickHouse with the default user and a custom user on port 8123. I tried with the ClickHouse JDBC driver and a simple curl command but I always get error 516.
Caused by: java.io.IOException: Code: 516. DB::Exception: default: Authentication failed: password is incorrect or there is no user with such name. (AUTHENTICATION_FAILED) (version <IP_ADDRESS> (official build))

root@ubuntu:/# curl -v "http://chi-repl-05-replicated-0-0:8123/?user=default&query=SELECT+number+FROM+system.number+LIMIT+5"
*   Trying <IP_ADDRESS>:8123...
* Connected to chi-repl-05-replicated-0-0 (<IP_ADDRESS>) port 8123 (#0)
> GET /?user=default&query=SELECT+number+FROM+system.number+LIMIT+5 HTTP/1.1
> Host: chi-repl-05-replicated-0-0:8123
> User-Agent: curl/7.81.0
> Accept: */*
>
* Mark bundle as not supporting multiuse
< HTTP/1.1 403 Forbidden
< Date: Tue, 13 Sep 2022 09:37:48 GMT
< Connection: Keep-Alive
< Content-Type: text/plain; charset=UTF-8
< X-ClickHouse-Server-Display-Name: chi-repl-05-replicated-0-0-0.chi-repl-05-replicated-0-0.clickhouse.svc.cluster.local
< Transfer-Encoding: chunked
< X-ClickHouse-Exception-Code: 516
<
Code: 516. DB::Exception: default: Authentication failed: password is incorrect or there is no user with such name. (AUTHENTICATION_FAILED) (version <IP_ADDRESS> (official build))
* Connection #0 to host chi-repl-05-replicated-0-0 left intact

I installed ClickHouse with the following settings:
apiVersion: "clickhouse.altinity.com/v1"
kind: "ClickHouseInstallation"

metadata:
  name: "repl-05"

spec:
  defaults:
    templates:
      dataVolumeClaimTemplate: default
      podTemplate: clickhouse:20.7

  configuration:
    users:
      batman/networks/ip:
        - <IP_ADDRESS>
      batman/profile: "default"
      batman/quotas: "default"
      batman/access_management: 1
      batman/password_sha256_hex: "37a8eec1ce19687d132fe29051dca629d164e2c4958ba141d5f4133a33f0688f"
    zookeeper:
      nodes:
      - host: zookeeper.clickhouse.svc.cluster.local
    clusters:
      - name: replicated
        layout:
          shardsCount: 2
          replicasCount: 3

  templates:
    volumeClaimTemplates:
      - name: default
        spec:
          accessModes:
            - ReadWriteOnce
          resources:
            requests:
              storage: 300Gi
    podTemplates:
      - name: clickhouse:20.7
        spec:
          containers:
            - name: clickhouse-pod
              image: clickhouse/clickhouse-server:22.3%

        Users:
          batman/access_management:     1
          batman/networks/host_regexp:  (chi-repl-05-[^.]+\d+-\d+|clickhouse\-repl-05)\.clickhouse\.svc\.cluster\.local$
          batman/networks/ip:
            ::1
            <IP_ADDRESS>
            <IP_ADDRESS>
          batman/password_sha256_hex:  37a8eec1ce19687d132fe29051dca629d164e2c4958ba141d5f4133a33f0688f
          batman/profile:              default
          batman/quota:                default
          batman/quotas:               default
          clickhouse_operator/networks/ip:
            <IP_ADDRESS>
          default/networks/host_regexp:  (chi-repl-05-[^.]+\d+-\d+|clickhouse\-repl-05)\.clickhouse\.svc\.cluster\.local$
          default/networks/ip:
            ::1
            <IP_ADDRESS>
            <IP_ADDRESS>
            <IP_ADDRESS>
            <IP_ADDRESS>
            <IP_ADDRESS>
            <IP_ADDRESS>
            <IP_ADDRESS>
            <IP_ADDRESS>
          default/profile:  default
          default/quota:    default

The default user doesn't have a password and the password for the batman user is default.
Only connections from the clickhouse-client work and I don't understand why.
➜  ~ k exec -n clickhouse -it chi-repl-05-replicated-0-0-0 -- clickhouse-client --user default
ClickHouse client version <IP_ADDRESS> (official build).
Connecting to localhost:9000 as user default.
Connected to ClickHouse server version 22.3.12 revision 54455.

chi-repl-05-replicated-0-0-0.chi-repl-05-replicated-0-0.clickhouse.svc.cluster.local :) exit
Bye.
➜  ~ k exec -n clickhouse -it chi-repl-05-replicated-0-0-0 -- clickhouse-client --user default --password
ClickHouse client version <IP_ADDRESS> (official build).
Password for user (default):
Connecting to localhost:9000 as user default.
Connected to ClickHouse server version 22.3.12 revision 54455.

chi-repl-05-replicated-0-0-0.chi-repl-05-replicated-0-0.clickhouse.svc.cluster.local :) exit
Bye.

k exec -n clickhouse -it chi-repl-05-replicated-0-0-0 -- clickhouse-client --user batman --password default
ClickHouse client version <IP_ADDRESS> (official build).
Connecting to localhost:9000 as user batman.
Connected to ClickHouse server version 22.3.12 revision 54455.

chi-repl-05-replicated-0-0-0.chi-repl-05-replicated-0-0.clickhouse.svc.cluster.local :) select count(*) from features_i2;

SELECT count(*)
FROM features_i2

Query id: 5cc2c6cc-a39f-400b-b457-9b7b101bd2fd

┌───count()─┐
│ 200000000 │
└───────────┘

1 rows in set. Elapsed: 0.018 sec.

chi-repl-05-replicated-0-0-0.chi-repl-05-replicated-0-0.clickhouse.svc.cluster.local :) exit
Bye.

I don't know why connecting via clickhouse-client works but JDBC/http doesn't work.

I was missing <ip>::/0</ip> in the settings. I added it without  the / some time ago but it didn't work, I've thought it's the same as ::1.


ISPN-9638 Make Single port server a feature

Prevent startup when single port is configured but not enabled

https://issues.jboss.org/browse/ISPN-9638

A bit overengineered (it is code we will want to remove at some point). I think we'd better have a generic "feature x is disabled" log in commons' Log and just do if (!featureInstance.isAvailable(x)) throw log.featureDisabled(x)). I now see that PersistenceManager also has a specific log. Can you fix that too please ?

Sure.

Updated to use same log method.

Merged, thanks


[stable/airflow] scheduler.resources has wrong key in values.yaml

Is this a request for help?:

Is this a BUG REPORT or FEATURE REQUEST? (choose one):
BUG

Version of Helm and Kubernetes:
Not a specific version
Which chart:
stable/airflow
What happened:
Scheduler resources spec is defined as below in values.yaml
scheduler:
  resources:
    scheduler: {}               # <-- it's not accessed in template
    # limits:
    #   cpu: "1000m"
    #   memory: "1Gi"
    # requests:
    #   cpu: "500m"
    #   memory: "512Mi"

But it's not used in scheduler template, deployments-scheduler.yaml. So, k8s says an error that scheduler key is not allowed in resources spec.
      ...
      containers:
        - name: {{ .Chart.Name }}-scheduler
          image: {{ .Values.airflow.image.repository }}:{{ .Values.airflow.image.tag }}
          imagePullPolicy: {{ .Values.airflow.image.pullPolicy}}
          envFrom:
          - configMapRef:
              name: "{{ template "airflow.fullname" . }}-env"
          env:
          {{- include "airflow.mapenvsecrets" . | indent 10 }}
          resources:
{{ toYaml .Values.scheduler.resources | indent 12 }}

What you expected to happen:
We don't need scheduler object in resources object because it's unnecessary. (I think it was a mistyped one.)
How to reproduce it (as minimally and precisely as possible):
Anything else we need to know:

I'm also having this issue. My upgrade pipelines broke yesterday while running this command:
helm upgrade --values values-int.yaml --values secrets-int.yaml --namespace airflow-int "airflow-int" stable/airflow --debug --version 2.8.2
UPGRADE FAILED
Error: error validating "": error validating data: ValidationError(Deployment.spec.template.spec.containers[0].resources): unknown field "scheduler" in io.k8s.api.core.v1.ResourceRequirements
Error: UPGRADE FAILED: error validating "": error validating data: ValidationError(Deployment.spec.template.spec.containers[0].resources): unknown field "scheduler" in io.k8s.api.core.v1.ResourceRequirements

my values.yaml for the scheduler and web:
scheduler:
  resources: {}

web:
  resources: {}

Workaround that works for me until this gets merged:
--set scheduler.resources.scheduler=null

Thank you so much!
Thanks,
Aaron Tracy
Hagridaaron.com
@hagridaaron
From: Matt Brant<EMAIL_ADDRESS>Reply-To: helm/charts<EMAIL_ADDRESS>Date: Tuesday, May 21, 2019 at 11:23 AM
To: helm/charts<EMAIL_ADDRESS>Cc: Aaron Tracy<EMAIL_ADDRESS>Comment<EMAIL_ADDRESS>Subject: Re: [helm/charts] [stable/airflow] scheduler.resources has wrong key in values.yaml (#13352)
Workaround that works for me until this gets merged:
--set scheduler.resources.scheduler=null
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or mute the thread.

Ah! Thank you, that's great!!

I see this as well, but I did not update the dependency version from 2.8.2. Was 2.8.2 republished with this issue?

Pulled current version of 2.3.0:
helm fetch stable/airflow --version 2.3.0
Looks like it is 😞

scheduler:
  resources:
    scheduler: {}
    # limits:
    #   cpu: "1000m"
    #   memory: "1Gi"
    # requests:
    #   cpu: "500m"
    #   memory: "512Mi"

We should get this fix pushed in ASAP. I haven't really contributed before, but I'll take a look at what I can figure out. Last time I checked there were some automated tests that hadn't passed for this PR.

Ideally, deployed versions are immutable - but I'm sure everyone already knows this :/


Async ContextLink

I'd like to be able to set context headers in my Link asynchronously, similar to apollo.
This should be pretty easy. I'd be happy to take a stab at a ContextLink,  based on the existing AuthLink.
I'm wondering, however, if this should simply replace AuthLink to simplify the API. Rather than using an AuthLink and returning a token, you'd simply use a ContextLink and return a context map that includes "Authorization": token.

Here's my implementation of ContextLink:
typedef GetContext = FutureOr<Map<String, dynamic>> Function();

class ContextLink extends Link {
  ContextLink({
    this.getContext,
  }) : super(
          request: (Operation operation, [NextLink forward]) {
            StreamController<FetchResult> controller;

            Future<void> onListen() async {
              try {
                final context = await getContext();

                operation.setContext(context);
              } catch (error) {
                controller.addError(error);
              }

              await controller.addStream(forward(operation));
              await controller.close();
            }

            controller = StreamController<FetchResult>(onListen: onListen);

            return controller.stream;
          },
        );

  GetContext getContext;
}

Happy to drop this into a PR.

Is this solved by the migration to using gql_link in v4?

Yes, thanks


e2e test always fails

unjoin command cannot remove klusterlet in time. It happened several times.
Error: klusterlet still exists
Error: klusterlet still exists
Error: klusterlet still exists
Error: klusterlet still exists
Error: klusterlet still exists
...

/kind bug

maybe we can collect e2e fails under this issue...

another one :
https://github.com/open-cluster-management-io/clusteradm/actions/runs/3311116847/jobs/5466167087#step:4:121

FIXED : Error: no matches for kind "Klusterlet" in version "operator.open-cluster-management.io/v1"
#276

panic: test timed out after 30m0s
maybe we can set time out period longer to avoid this

Error: fail to update hubAccpetClient field for cluster clusteradm-e2e-test-c1: managedclusters.cluster.open-cluster-management.io "clusteradm-e2e-test-c1" not found

Error: timed out waiting for the condition

Error: "join/bootstrap_hub_kubeconfig.yaml" (string): secrets "bootstrap-hub-kubeconfig" is forbidden: unable to create new content in namespace open-cluster-management-agent because it is being terminated

2022/08/22 02:32:35 Cluster Manager resource should be deleted firstly.

Error: hub already initialized
causing Error: token is missing

2022/08/17 07:01:34 the server could not find the requested resource (get appliedmanifestworks.work.open-cluster-management.io)
2022/08/15 01:54:59 Other resources have been deleted.


When node have multiple outgoing edges all of them highlights when user selects one

When one node has multiple edges going into one other node, and the user selects(clicks) one of them, all of them will become highlighted. All handles in my example have a unique ID and also onSelectionChange is called with correct data (only one edge).

Example:

Also when edges are selected by group selection they are not highlighted.

good catch 👍


Add VPC peering FAQ

https://cockroachlabs.atlassian.net/browse/CC-4683
Clarify in the FAQ that you can still use vpc peering if not set up at cluster creation, but you will be locked into the default IP range .

This change is


intrusion detection: toggle all button for rulesets and rules screens

Will also need to work in conjunction with the filter in the rules so that only selected rules are toggled.

commit https://github.com/opnsense/core/commit/790586b74f567b8ec2ff839dbbed08ce082baf0b adds support for selecting all items at once (standard select in upper corner followed by the select or deselect action at the right bottom of the grid).


When I attempt to test, I can see the camera feed after this error. This same error occurs on login as the IR sensor initialises. It doesn't automatically log me in and so I assume this is the cause below.
OS - Arch
Machine - HP Envy x360
Anything I can provide to help. let me know!
example
[sudo] password for user:

(python3:2072): GStreamer-CRITICAL **: 16:17:07.864: gst_element_get_state: assertion 'GST_IS_ELEMENT (element)' failed

Opening a window with a test feed

Press ctrl+C in this terminal to quit
Click on the image to enable or disable slow mode```

Could you try running sudo apt install libv4l-dev? Looks like your camera can't be opened by OpenCV

warning: v4l-utils-1.14.2-1 is up to date -- reinstalling```

Already had it, unfortunately. Perhaps there's another dependency I'm missing

Is the image it in color or black and white?
Frame capture seems to be working, so adding faces and detecting them on login should work normally. You could try upping the certainty value in sudo howdy config.

It's black and white. I've tried all 4 devices just to rule them out.
I've added faces successfully.
Upped the certainty to 5 and it logged me in.


Suggestions | Constituency homepage | Scheme performance snapshots

Can we make the latest financial year as the default view?

Can we club all the schemes for which data is available, together? (in this example, every scheme with data is followed by a scheme without data).

Thoughts @samwhocodes @gggodhwani

CBGA has suggested 2020-21 as the default year

Default year issue is fixed.
The schemes are clubbed together but here are still some indicator for which the data is not available.


Supporting driver-specific extensions to existing generic APIs

I frequently run into cases where I want a specific driver to support capabilities not accessible through the standard driver API. Some of these might be added to the generic API, but some are too specific. Examples include:

adc support calibration on Nordic SAADC peripheral
gpio configure multiple pins simultaneously, as with Semtech SX150x
ccs811 sensor manage calibration constants and update environmental state

Candidate approaches include:

driver-specific functions exposed to user applications through a header, e.g. <drivers/sensor/ccs811.h>
a generic IOCTL-like approach that would add a function pointer to struct device_config making the feature available on any driver through a common API, as with the power management commands (which would also require a header to document available commands and required data structures)

This issue is open to solicit perspectives on how this should be supported.

See some discussion in slack.

Here's an example of the approach I've taken for a complete rework of CCS811:
A new header ccs811.h is added to include/drivers/sensor.  It includes documented data types for things like firmware version description, baseline calibration values, current environmental state. It also prototypes functions to manipulate those, e.g.:
int ccs811_configver_fetch(struct device *dev,
                           struct ccs811_configver_type *ptr);
int ccs811_baseline_fetch(struct device *dev);
int ccs811_baseline_update(struct device *dev, u16_t baseline);
int ccs811_envdata_update(struct device *dev,
                          const struct sensor_value *temperature,
                          const struct sensor_value *humidity);

User code would look like:
#include <drivers/sensor/ccs811.h>
// ...
rc = ccs811_configver_fetch(dev, &cfgver);
if (0 == rc) {
  printf("CCS811 HW %02x; FW Boot %04x App %04x ; mode %02x\n",
         cfgver.hw_version, cfgver.fw_boot_version,
         cfgver.fw_app_version, cfgver.mode);
}

Because these functions are provided by the implementation of the ccs811 driver they have no impact on any other driver.
Because they're prototyped the arguments can be at least type-checked at build time, and clearly documented so their behavior is clear.

And here's a rough outline of what it might take to use an IOCTL approach:
We'd need changes like this in include/device.h:

struct device_config would have a new member, something like:int (* ioctl)(struct device *dev, u32_t request, ...);

along with a generic wrapper:int device_ioctl(struct device *dev, u32_t request, ...)

We'd need equivalents to at least the _IO, _IOR, _IOW, and _IORW macros in Linux
We'd need a managed registry of IOCTL types (e.g. 'T' for terminal)
We'd need a managed registry of IOCTL numbers (e.g. TIOCGSERIAL = 0x541E)

We'd still need the driver-specific headers to define the data structures, build up the IOCTL request constants, and document everything:
#define IOCTL_CCS811_GET_BASELINE _IOR('S', 0xCC01, u16_t)
#define IOCTL_CCS811_SET_ENVDATA _IOW('S', 0xCC02, struct ccs811_envdata)

The user code would end up being:
rc = device_ioctl(ccs811, IOCTL_CCS811_GET_BASELINE, &baseline);
rc = device_ioctl(ccs811, IOCTL_CCS811_SET_ENVDATA, &envdata);

In short, it could probably be done, but it'd be pretty hard to get right if we don't replicate the POSIX/Linux ioctl architecture, a whole lot of effort if we do, and pretty ugly to anybody who isn't an experienced POSIX developer.

This seems like significantly wasted work to me.  The Linux model is "syscalls are are and carefully curated and drivers need to follow these rules to poke holes in the abstraction for their own APIs".
The Zephyr model, so far, has been "drivers are responsible for exposing their own APIs via simple function calls, and for the special case of userspace we work to make it easy to expose those calls as automatically-generated system call traps".
Given the latter, all the ioctl() rigor doesn't seem to provide much value.  Maybe the latter isn't the right model, I can see an argument there.  But if we want to go there let's open up the "Zephyr's driver interface abstractions are a leaky mess" flame war and not start with ioctl. :)

@pabigot: Thanks for submitting this as a ticket. Let me admit then when I saw a post on Slack, I mostly saw keywords like "ioctl" vs "multiple functions". My immediate comment was that choosing to add multiple "virtual methods" to drivers vs single "ioctl-like vmethod", I'd recommend the latter.
If the feature you care about is clearly specific to a particular hardware device, and this its driver, then your <drivers/sensor/ccs811.h> interface is absolutely right way to do. Its target audience it: people who work with a particular sensor, and who want to get all out of it (at the expense of making the application specific to a particular sensor, requiring substantial efforts to port to another sensor).

@pfalcon yes, that's exactly it.  While I appreciate in principle the goal of Zephyr to make applications as generic as possible by providing a common API, in the domain I'm working I know exactly what hardware and sensors I'm going to be using.  It's...sub-optimal...for me to be dealing with temperatures and humidities expressed as 64-bit fixed-point values when the driver collects them together at a resolution of no more than 16 bits each.  (Regarding sensor accuracy: I appreciate your point, but don't think that's going to scale--the current sensor_channel enumeration doesn't.  I also don't think this is the place to discuss it in depth.)
@andyross I take from your comment you're not in favor of ioctl, which is my position as well.  It's not clear to me whether you support (in principle) the driver-specific header and function approach, or believe driver-specific capabilities should be exposed through some other extension of a generic sensor, GPIO, or ADC API.
This arises because outside of clock control I can't see any API in include that isn't genericized to the point where features that distinguish a specific product can't be accessed.  There are no driver ad-hoc functions for any sensor device, which astonishes me.  I'd like to expose them in a way that's acceptable to the Zephyr community and am looking for architectural guidance.

I think my position summarizes as "I'd like to see some attention paid to firming up exactly how drivers expose APIs , but I don't think it should look like ioctl"

One thing about system calls. Right now all the driver system calls take a generic struct device pointer. The syscall code is able to distinguish what subsystem any given struct device belongs to; we have some build system logic which notes what API struct was assigned to the device at build time (i2c_driver_api, uart_driver_api, etc) and sets this in the kernel object metadata (K_OBJ_DRIVER_I2C, K_OBJ_DRIVER_UART, etc)
This allows us to enforce that appropriate calls are being made on a device at the subsystem level; the system will reject a system call made on a UART API if the device object isn't associated with the uart subsystem. This works because of the common interface between all devices of a particular subsystem type.
However, we don't have any facilities for distinguishing between individual driver instances at the moment. So if we were to do system calls that were truly driver specific, outside of the subsystem layer, and the only pointer passed into the API is of a generic struct device, we can say this driver belongs to the appropriate subsystem but currently no more than that, which would be problematic.
Now if we did the abstraction at the subsystem level, I think we can handle this fairly easily. So like for the sensor API, add an additional ioctl method (or whatever you like to call it). If a particular driver doesn't have any capabilities beyond what is offered in the base API, this API pointer can be set to NULL. Each driver that did offer extra capabilities would have to do checks to ensure that the requested ioctl is supported.
Note that I have no particular attachment to the ideas being proposed in this thread, just thought I'd mention this caveat. Not saying it's impossible to support out-of-subsystem calls either, we'd just have to solve the problem of correctly enforcing that appropriate device pointers are being passed in.

@andrewboie Thanks, this exposes more detail I was missing related to verification and userspace, the design criteria that led to the current architecture, and the breadth of Zephyr's "here, let me do that for you" code generation framework.  I think the user-level API I've suggested is still a good solution, but underneath it might have to be accomplished using a generic extension function that supports this checking.  I have some ideas and will try them when it comes time to submit some of these enhancements as PRs.

we'd just have to solve the problem of correctly enforcing that appropriate device pointers are being passed in (but it may be a lot of hassle to do so.)

Thinking about this some more, it might not be terrible to also uniquely identify drivers. It may not be much hassle to determine that given a generic device pointer, to associate with a specific driver. Right now the build system logic stores the type of the device->driver_api object in the kernel object metadata, but we could additionally register the device->driver_data which is specific to the driver implementation. There's an unused field that could be used for this. So we don't necessary need to rule this out. It might actually be better this way.

it might have to be accomplished using a generic extension function that supports this checking

The problem I see with a subsystem-level extension function, that takes as a parameter some enumerated type of capabilities declared subsystem-wide in some switch statement, is that I'm not seeing much difference in that, and just adding new API pointers for these capabilities to the subsystem, which are set to NULL for devices that do not support them.

I have some ideas and will try them when it comes time to submit some of these enhancements as PRs.

I'd suggest sending some high-level proposals here before you write a lot of code and send a PR. The discussion may need to iterate a few times before everyone is happy.

This commit here is a quick-and-dirty proof-of-concept on doing a syscall specific to a driver:
https://github.com/andrewboie/zephyr/commit/3a6fbf9a545704c9caeea06bdd9d26f6a6fe576a

The problem I see with a subsystem-level extension function, that takes as a parameter some enumerated type of capabilities declared subsystem-wide in some switch statement, is that I'm not seeing much difference in that, and just adding new API pointers for these capabilities to the subsystem, which are set to NULL for devices that do not support them.

I've italicized the phrase that I think is key.  The functions I'm interested in exposing are absolutely driver-specific.  They do not belong at the subsystem, and having to manage their individual identifiers globally rather than within the driver is not ideal.  My original thought was that they could be handled with an ioctl-like function, exposed through the subsystem but multiplexing the various required functions through identifiers managed solely within the driver header and implementation.
I don't know whether this is possible, but highlighting the role of syscalls enlightened me and it does affect the design of any solution that will provide driver-specific extensions.  I also think they must be designed into any initial solution.  Again I have ideas and will play with them as I get time; with travel and holidays that won't be for a week or two.

(Typed a long reply into the wrong spot.  Here it is again)
I just don't see the value in all the ioctl "rigor".   All  ioctl does is give you a way to pass a number and a (user) pointer  into a driver-supplied callback in the kernel.  The numbers (in theory,  but NOT PRACTICE) all go into a registry somewhere so they're known to  be unique and validatable by the kernel in an automated way.  And the  pointer allows you to pass all sorts of crazy data structures for the  kernel to unpack using a special cross-address-space API (THIS IS NOT A  GOOD THING). Right now, our existing syscall hashing layer gets you that unique  number registry for free, without trouble.  And our automatic passing of  function arguments does 60-80% of what most calls actually need in  practice without forcing the handler to read user memory.  And we don't  need to have a special namespace/registry of these things becuase their  names are just C symbols and the linker does that checking for us.   Basically: our stuff is better than ioctl already in most ways. Really, the only feature I see from above that seems to be requested  that we don't have is that it would be good to have an automatic  checking layer so that function calls can authenticate driver support  for a particular call.  So if you have two UART devices and only one  supports uart_set_stop_bits(), it would be nice for the kernel to fail  it automatically, and (maybe) answer the question "does this API work on  this device?".

I think the current model for this is to have NULL pointers in the API struct

Right, but that's for well-defined APIs with tight sets of entry points.   I think we do that just fine already (architecturally, obviously we lack actual drivers and frameworks for lots of things).   But ioctl has historically been used as a way for the driver, absent any kernel or framework blessing, to implement a way for userspace to talk directly to it.
And the way it works in a linux driver is that you have a big switch statement on the ioctl command word, with a default case that does "return -EINVAL;", and everything just works.  Userspace that tickles the wrong command gets an obvious error back.  In our model we rely on the drivers to individually validate their arguments, which has been made robust for the obvious cases (e.g. this argument must be a k_fifo) but doesn't extend in an automated way to more subtle checking (this must be a uart device handle created by this particular driver).

@andrewboie @andyross I'm not yet up to speed to entirely follow what you're discussing, so to step back:
To use the CCS811 Indoor Air Quality sensor correctly the application must be able to perform these functions:
// Retrieve the current sensor-generated calibration value
int ccs811_baseline_fetch(struct device *dev);
// Restore a sensor-generated calibration value
int ccs811_baseline_update(struct device *dev, u16_t baseline);
// Inform the sensor of current environmental parameters
int ccs811_envdata_update(struct device *dev,
                          const struct sensor_value *temperature,
                          const struct sensor_value *humidity);

Baseline calibration is collected at various points in the sensor lifecycle and retained to be restored on reset so it doesn't take up to 24 hours to start getting accurate results again.  Environmental data has to be updated synchronously with each sample so the calculations performed by the sensor are adjusted for temperature and humidity.
There is no API in the sensor subsystem for these operations.
How should they be implemented in a userspace situation?

How should they be implemented in a userspace situation?

If we agree that these are truly APIs specific to the CCS811, I think you should define an include/drivers/sensor/ccs811.h (if it doesn't already exist) and define these APIs there. And put the function implementations in the ccs811 driver itself.
You can just define them as regular C functions. For the system calls, file an enhancement ticket on github and I can when I have some time re-work the POC I posted earlier, update the documentation on how to add out-of-subsystem syscalls, and add the system calls for these APIs, they look like they will be pretty simple to add.

Referencing #12056 which was partly inspired by this.

@andrewboie Thanks for #12056 which I believe was intended to support this need.  I've finally gotten back to this, and I'm not clear how you intended the infrastructure to be used.
Here's concrete example: I'm doing a driver for the Maxim DS3231 RTC/TCXO, a real-time clock with battery backup that maintains civil time to 1 s precision.  Under Zephyr's architecture this is fundamentally a 1 Hz counter, and it's implemented using that API, so one passes the device to counter API functions.
To set the time and to configure other important features I need two additional API calls, declared in a header under include/devices and exposed using an API structure that extends the counter API structure with the device-specific functions.  I've made the stub implementation available in my example/11993 branch.  The relevant code is here.
The approach of casting the device to the extended structure can't be right because nothing here is going to validate that the dev passed to rtc_ds3231_configure() came from the ds3231 driver.  I understand that's what Z_SYSCALL_SPECIFIC_DRIVER was supposed to check, but have no idea where to put that check or how to make it be generated by infrastructure somewhere.
I can see that this would work if the two driver-specific API calls were added to the generic counter API structure, but that's a non-starter: doing that would waste space for every driver, and it's fundamentally unworkable for out-of-tree drivers.
Could you elaborate on how you expected this solution to be used?  Or, if the problem is made more clear by this example do you have suggestions on how to make this work?

The UART driver provides a driver specific system call since the very beginning of Zephyr.
It is simple. It is already available.  It is guarded by a config option to prevent waste of memory. It works (tested with a specific UART implementation where mostly configuration work but also functionality is routed through this interface).
Can this be the model for the other drivers (maybe by exchanging 'u32_t p'  by 'uint_ptr p') too?
#ifdef CONFIG_UART_DRV_CMD

/**
 * @brief Send extra command to driver.
 *
 * Implementation and accepted commands are driver specific.
 * Refer to the drivers for more information.
 *
 * @param dev UART device structure.
 * @param cmd Command to driver.
 * @param p Parameter to the command.
 *
 * @retval 0 If successful.
 * @retval failed Otherwise.
 */
__syscall int uart_drv_cmd(struct device *dev, u32_t cmd, u32_t p);

static inline int z_impl_uart_drv_cmd(struct device *dev, u32_t cmd, u32_t p)
{
	const struct uart_driver_api *api =
		(const struct uart_driver_api *)dev->driver_api;

	if (api->drv_cmd) {
		return api->drv_cmd(dev, cmd, p);
	}

	return -ENOTSUP;
}

#endif /* CONFIG_UART_DRV_CMD */

@b0661 Thanks, I hadn't seen that solution mentioned before.  I suppose it could work with wrappers to make the api a lot more user friendly.  The signatures of the different extended functions will generally be very different.
There's nothing that prevents you from passing arguments designed for a different driver variant, resulting in unpredictable behavior.  I think that's why @andrewboie provided created the driver-specific syscall API, but I still need to understand how that was intended to be used.

Approach described in #17072 has been approved.


from omero.rtypes import rdouble, rint, rstring

I got that rdouble was not loaded.
also this line is flaw
create a rectangle shape (added to ROI below)
print(("Adding a rectangle at theZ: %s, theT: %s, X: %s, Y: %s, width: %s,")
" height: %s" % (z, t, x, y, width, height))

I got that rdouble was not loaded.

Thanks, @AarghIMApiratez. We've been working more on notebooks recently and this file has fallen behind. Sorry about that.
All the best,
~Josh.


typo error?

Malformed args. The number of -l and -n is wrong
是否应该修改为：
Malformed args. The number of -l and -r is wrong

是的，感谢指出


[Mac] Fix NRE crasher when resizing window

I'm still learning the code, so not 100% sure if this is correct. But it's easy to reproduce the issue and this appears to fix it.

Is this still needed?

I don't think so.


pandas failure on nixos-unstable: bump package ?

Issue description
pandas seem to fail on nixos-unstable:
https://hydra.nixos.org/build/88550739
Also it would be nice to get pandas 0.24 since they now support nan integers .
Steps to reproduce
CC @7c6f434c @FRidh @knedlsepp

Python2 version builds.
I am not against a bump, but maybe @FRidh already knows that it should be done together with some other bumps.

looks like tests need "hypothesis". I disabled the checks (as a quickfix)
and I can build pandas 0.24.1 for python3.
Le mer. 13 févr. 2019 à 16:52, Michael Raskin<EMAIL_ADDRESS>a
écrit :

Python2 version builds.
I am not against a bump, but maybe @FRidh https://github.com/FRidh
already knows that it should be done together with some other bumps.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/NixOS/nixpkgs/issues/55684#issuecomment-463095255,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AA2FOu6EBYR_TmGC-Dv48dGE2rcL4bDOks5vM8RIgaJpZM4a4r_W
.

bump is part of https://github.com/NixOS/nixpkgs/pull/55757

also pushed the update to master as 4aaa34f7244126c31af23cb92850981715f71557


Gutter icon: Refused to load resource

In 1.54 custom gutter icon stopped working. I don't see anything in release notes that would indicate what kind of feature this is (Result of work on Sandbox?).
[error] file: Refused to load resource c:\add.svg from file: protocol (original URL: file:///C:/add.svg)

Create a text editor decoration with gutterIconPath set it as a string to local file path "errorLens.errorGutterIconPath": "C:\\add.svg"
It's not loaded

Icons in extension directory are loaded without problems. Only outside files refuse.
This was working from vscode version maybe <1.20 to >=1.53.

@usernamehw this is an extension providing that setting? As part of our sandbox effort we start to block resources that are outside these locations for security reasons:

installation dir
extensions dir
user data dir

It is rather unlikely we would relax this restriction going forward.
//cc @deepak1556

this is an extension providing that setting?

Yes. Just a minor feature.
It's just a breaking change that doesn't seem to be in the release notes. The only issues I was able to find with this description are the ones about webviews.
Right now the workaround is to copy those files using NodeJS copyFile() into extension directory. Is sandboxing endgame going to prevent me doing that?

@usernamehw yeah I actually forgot to document that. As an extension you will have full node.js API access even when sandbox is enabled, nothing changes for extensions.

Ok. Closing then.

Hi @bpasero ,
What if the extension is updated? Wouldn't you lose the copied resources because the older release will be deleted after you restart VS Code? Or will VS Code leave these files there, because aren't from the original vsix file?
I guess in this case we should use context.globalStorageUri, which is "a directory in which the extension can store global state" .
Thank you

Yes, use context.globalStorageUri, it will be accessible within VSCode.


Popup Templates should use React Components w/ full lifecycle

Currently you can only pass static markup to the popup tempaltes for bubbles / hovering over countries, arcs, etc.
You can use ReactDOMServer.renderToString to just get markup but then you're missing out on the component lifecycle methods e.g. componentDidMount, state and prop changes, etc.
@btmills This is the next thing I wanna work on for my project, can get started once the other updates etc are merged in. Might involve overriding datamap's native method for this.

This would be great! The static markup is such a kludge when everything else is React.


Allow to set custom map-bounds for overview-map

Right now, the bounds of the overview-map are derived from the bounds of the original map (using a zoomFactor). This is not very practical if the overview-map should show a fixed extent, for example a particular country.
This PR adds the properties bbox, scale and center to the overview-map attribute, so that custom map-bounds can be set for the overview-map.
Example:
    "overviewMap": {
        "projection": "EPSG:2154",
        "bbox": [-423596.070122,6025082.273503,1779728.218275,7140524.043237],
        "layers": [
         ...
        ]
    }

The scalebar image tests are failing for some reason, maybe a default has changed that impacts scalebar test?
Odd it only fails on Java 6 though...  I re-ran the travis build for Java 6 2x and it failed both times so it is not a random failure.  If I have time I can try to debug the Java 6 implementation.

Interesting, I will check.

@jesseeichar I am not able to reproduce it locally (with an OpenJDK 1.6.0_34 64bit). It would be cool if you have a second to test it on your machine.

Yeah works for me on 1.6 as well.  I tried oracle 1.6_45


dbdevops supported platform docs

Thanks for contributing to the Harness Developer Hub! Our code owners will review your submission.
Description

Please describe your changes: \dbdevops supported platform docs
Jira/GitHub Issue numbers (if any): \DBOPS-646
Preview links/images (Internal contributors only): __________________

PR lifecycle
We aim to merge PRs within one week or less, but delays happen sometimes.
If your PR is open longer than two weeks without any human activity, please tag a code owner in a comment.
PRs must meet these requirements to be merged:

[X] Successful preview build.
[X] Code owner review.
[X] No merge conflicts.
[X] Release notes/new features docs: Feature/version released to at least one prod environment.

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step behind the Harness VPN and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app. Current Draft URL is: https://67361ed0bf96f5179c3aacd1--harness-developer.netlify.app

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step behind the Harness VPN and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app. Current Draft URL is: https://673c86bf9e9aa5084ab38af3--harness-developer.netlify.app

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step behind the Harness VPN and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app. Current Draft URL is: https://673c86e9be8de2045d68d922--harness-developer.netlify.app

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step behind the Harness VPN and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app. Current Draft URL is: https://673c87521b235809838fffab--harness-developer.netlify.app