Need a system for managing external node libraries

I took another look and you seem to have made substantial progress since the last time I looked at Ryven (I.E. since https://github.com/leon-thomm/Ryven/issues/74 ).  Hopefully the following comments will be helpful.
This is going to talk about multiple related issues relating to node library management
Finding Node packages:
Trying to figure out which node package to import can be a issue.
(example workflow:  person doesn't remember what package has the "print" node, import a node package, search, import another, search, import another, search find it and use it")
(obviously we could just grep through all the node.py files)
So a way to browse the node libraries before doing File->Add Nodes would be a good thing
Should encourage contributions to the node libraries:
(or alternatively, if peoples node packages are getting contributed & redistributed, its not obvious where those packages are.)
The README mentions that people can help by creating node packages, and example programs, but does not mention what to do once they write them.
Perhaps add a comment on where to upload node packages?
also:
The readme includes: "Now let's check out the small example projects: open a new Ryven window and load one of them. Take a closer look and understand what they do."
Perhaps add something like "User contributed example programs can be found at {location}"
Need a way to track the quality of node packages
Most node packages will be wrappers for specific python pip packages.  For those types of node packages, I see the following information would be useful to track:

Who the maintainer is
What percentage of the python pip package functions are represented by a node (I.E. coverage)
If the nodes have been streamlined beyond autogen.py results or not.  (or alternatively some kind of user-feedback score?)
If the nodes have been tested and confirmed to work, then what version of of the package was installed that they were confirmed against

The installed versions of the pip packages are relevant, because for example, doing:

pip3 install pandas==1.1.5
python3 ~/.local/lib/python3.9/site-packages/ryven/example_nodes/auto_generated/autogen.py 'pandas' '#00aadd' 'pandas'
Then doing File-Import Nodes of the generated does work

However doing File->Import Node on the generated files does not work ( meaning they do not show up in the pick list on the left) if using version 1.5.1 of pandas (I.E. if you did "pip3 install pandas" instead of "pip3 install pandas==1.1.5")
(i realize that 1.5.1 vs 1.1.5 is confusing)
Solution:
Unfortunately I don't have the solution thought out, I'm just highlighting the issue, and now I'll just give some some random thoughts on it.

One option might be to add a datastructure or function call to node.py
** one possible way might be to add something like a ryven.NENV.register_node_package(author, pip_package_name, pip_package_version?...
When autogen.py gives up and does not make a node for a function, add the node as a commented out name to export_nodes, so you can tell how many functions got wrapped into a node and how many got skipped?
automated generation of pytest files that confirm each thing in the node package can actually load?, then register the test results against the version installed of the package its wrapping?
perhaps have autogen.py add some kind of hashes to track if anyone bothered to clean up the node, or clean up the node descriptions or anything?  (example: the pandas "read_csv" autogenerated node has tons of possible inputs, and there is probably a way to streamline the node by hand to be less unwieldy)

In general I'm trying to think of simple solutions short of making a full blown "rypip" node package manager. :)
There is also the issue of what to do with the packages that are not wrappers for python pip packages.
Sorry for making this so long, but as I said, I don't have the solution for it, but hopefully this can get ideas started.

Thanks a lot for sharing your thoughts. Some comments from my side:

Finding Node packages: [...]

good point, totally agree, shouldn't be too hard to add

Should encourage contributions to the node libraries: [...]

Yes, the readme also states: I would like to open a repository for maintaining particularly useful (frameworks of) nodes, and I would really like to have a central place / repository for all easily accessible node packages, which automatically tests them and tracks their versions. There are just many design choices here, and so far I didn't feel like there was really a need for it, but I'd like to see that happening.

Most node packages will be wrappers for specific python pip packages.

I am not sure about that, but this is a very important point, so let me elaborate in more detail: I think the system loses its purpose quickly when mapping python library functions 1:1 to visual nodes. I think the power of the paradigm lies in much stronger abstraction, as opposed to just wrapping something that's already simple into something much more complex in an attempt to make it a tiny bit more accessible, but inevitably making it much harder to scale and maintain at the same time (which is a more general issue imo). autogen.py was my attempt to aid the process of creating packages that try to wrap specific python libraries by creating a simple template from which one could easily start building an actual package. While this works well for super simple libraries, it completely fails to encode functionality that is not simply a top-level function, and I doubt that the compilation of such functionality can be fully streamlined to create useful node packages.
That being said, this is just what I'd expect and these points are very much up for discussion. A package system might give more insight into which types of packages work well in practice, and which don't. But I'm also afraid of packages suggesting usage of the visual paradigm in a way that doesn't scale. So far I tried to impose as little contraints and design suggestions on node packages as possible, to let the users decide what kinds of node packages are most useful for them. Comments on this are highly appreciated.

ryven.NENV.register_node_package(author, pip_package_name, pip_package_version

true, the export_nodes() function could be replaced by something that serves similar purposes of the setup() function from  setuptools.

automated generation of pytest files that confirm each thing in the node package can actually load?, then register the test results against the version installed of the package its wrapping?

yes! One could also write a dynamic (randomized) tester that tries to squeeze any unhandled exceptions out of the packages. We could enforce for example any of the package to be stable under any valid sequence of ryvencore api actions on them, such as

creating, deleting, replacing, and connecting nodes
invoking the nodes' actions at any time
save and load, and verifying that the graph enters the same state after load

which could be streamlined with CI. Of course this should be extended by the package author by some deterministic semantic tests verifying that the outputs are actually correct.

Yes, the readme also states: I would...

My bad.  I end up skipping some parts thinking I know them from the last time I looked at Ryven. :)

I think the system loses its purpose quickly when mapping python library functions 1:1 to visual nodes. I think the power of the paradigm lies in much stronger abstraction, as opposed to just wrapping something that's already simple into something much more complex in an attempt to make it a tiny bit more accessible, but inevitably making it much harder to scale and maintain at the same time

Interesting.  I understand abstraction in general, and I understand what the 1 to 1 version would look like.  But I do not understand which types of abstraction the "stronger" ryven-only abstractions would be.  Can you give a example description of a abstracted version that could replace a 1 to 1 pip package mapping to help me understand in what ways they would differ? (and then presumably, I'd be able to see how the rest of your argument follows)

(which is a more general issue imo)
I assume you are saying that scalability and maintenance are the general issues that we should be focused on?  If so, then I agree.  Including how things are maintained when individual people disappear .  (For example, when you graduate you may suddenly get busy.)

But I'm also afraid of packages suggesting usage of the visual paradigm in a way that doesn't scale. So far I tried to impose as little constraints and design suggestions on node packages as possible, to let the users decide what kinds of node packages are most useful for them. Comments on this are highly appreciated.

I fully understand your intentions here.  You want people with lots of Ryven packaging experience to debate the various points, while not influencing the discussion with your own assumptions in order to come up with the best answer.  Of course the problem is that no one will have the experience to have those opinions until after you have some kind of packaging system for them to try (and discover what they don't want).
My best advice is to do it twice.  Start with a document on what will be done differently in the second version, then do it the quick, wrong way, with the full intention of rewriting the entire thing after experience is gained, updating the document on the second version every time you learn something when dealing with the first version.
Actually the fastest way to start would probably be to say something like, "after you write your node package, please contribute it by forking https://github.com/leon-thomm/ryven-contributed-node-libraries , create your own subdirectory, then put your package in a subdirectory of that, then send a pull request."
While I'm on the topic:
When asking for tutorial contributions, it would probably be good to say something like:  If you write a tutorial, please add it to a forked copy of https://github.com/leon-thomm/ryven-website-guide then create a new "Tutorials" page that links to your new page, and then add a new "Tutorials" menu at the top, then send a pull request.
Or are they supposed they add it to https://github.com/leon-thomm/Ryven-Website-2.0 ?  Or are they supposed to create it as a document in https://github.com/leon-thomm/Ryven ?
(Also probably mention that if they create ryven example programs, where they should put them)

true, the export_nodes() function could be replaced by something that serves similar purposes of the setup() function from setuptools

Note: I am not qualified to talk about setuptools as I have never used it.  Also, I have no idea how people upload the packages to the repository that pip uses.  (for all I know it could be a web form that you log into and upload your packages to).  However, whatever the package registration/upload procedure is for pip you may want to either clone it, or hijack it.
By hijacking it, I mean create any node packages that are wrapper packages as just new pip packages with a specific naming convention... like perhaps "ryven-nodes-{package}", as in ryven-nodes-numpy , or ryven-nodes-pandas .
Also note that I am not confident that I fully understand the Ryven flow yet (but I understand more of it this time around then when I investigated it previously)
(Question: The exec node has no inputs and no outputs, so how does it get triggered?)

which could be streamlined with CI. Of course this should be extended by the package author by some deterministic semantic tests verifying that the outputs are actually correct.

Agreed.  I imagine that many package authors will not have semantic tests verifying the outputs, especially at first, so a way of the end user detecting if those tests are part of the package before they attempt to use a package could be helpful.

Interesting. I understand abstraction in general, and I understand what the 1 to 1 version would look like. But I do not understand which types of abstraction the "stronger" ryven-only abstractions would be. Can you give a example description of a abstracted version that could replace a 1 to 1 pip package mapping to help me understand in what ways they would differ? (and then presumably, I'd be able to see how the rest of your argument follows)

Sorry, I phrased it poorly; I totally agree with packages being wrappers for specific Python libraries (say, a 1:n library:ryven-package mapping), but I'm not sure about the automatic conversion part (which suggests a 1:1 interface mapping); The developer of a nodes package should put some thought into how to make the targeted library's functionality available in the framework of flow-based programming, which IMO is quite different from almost one-dimensional, text-based code. I meant stronger abstraction just in terms of doing more - as in declarative vs. explicit. Of course, when using libraries, functions like numpy.linalg.solve might very much qualify as nodes. Generally, though, I am imagining nodes like websocket, FFT, player-state, box, transform, and ExportSTL, as opposed to assignment, condition, if-branch, add, etc. Does that make sense?

the problem is that no one will have the experience to have those opinions until after you have some kind of packaging system for them to try

true

(and discover what they don't want)

good point

My best advice is to do it twice. Start with a document on what will be done differently in the second version, then do it the quick, wrong way, with the full intention of rewriting the entire thing after experience is gained, updating the document on the second version every time you learn something when dealing with the first version.

Interesting!

Actually the fastest way to start would probably be to say something like, "after you write your node package, please contribute it by forking https://github.com/leon-thomm/ryven-contributed-node-libraries , create your own subdirectory, then put your package in a subdirectory of that, then send a pull request."

However, whatever the package registration/upload procedure is for pip you may want to either clone it, or hijack it. By hijacking it, I mean create any node packages that are wrapper packages as just new pip packages with a specific naming convention... like perhaps "ryven-nodes-{package}", as in ryven-nodes-numpy , or ryven-nodes-pandas .

I would probably reserve the hijacking part for the "second approach", and just use a git repository initially. I am not sure if a full-blown package manager is necessary initially, one could also literally stick to git itself being the VCS.
the other points regarding the repo are noted, thanks.


Simpler and safe implementation with improved UX

This is essentially two changes bundled into one (and I'll explain in just a second why I bundled them)
The first change was to remove the dependence on unsafeCoerce by changing the internal implementation to use an implicit parameter. In fact, this is literally the exact same way HasCallStack is implemented except without the GHC magic to automatically satisfy the constraint if it is omitted.  In other words, all that the require-callstack package does is implement HasCallStack without the magic so that the constraint has to be explicitly propagated.
One of the benefits of this approach is that now users can also satisfy the constraint by just defining the missing implicit parameter:
let ?provideCallStack = ()

… but I kept the existing provideCallStack function both for backwards compatibility and also for the benefit of users who don't want to enable ImplicitParams (which is probably a lot of them, to be honest).
The second change was to switch to using TypeError to improve the UX instead of a cleverly named implicit parameter like ?add_RequireCallStack_to_function_context_or_use_provideCallStack. The reason I bundled this change was because the choice of whether or not to use TypeError affects what to name the implicit parameter. I wanted to avoid having to rename the implicit parameter if we were to switch to TypeError later since the implicit parameter's name would technically become part of our public API if we were to switch to this new approach (since users could begin defining the implicit parameter instead of using provideCallStack).
So I did some research to figure out if it was feasible to switch to TypeError right now and the answer is: yes!  Specifically, I tested both TypeError and Unsatisfiable and learned the following things:

TypeError actually works fine if you add type annotations to all intermediate let helper bindings that wrap errorRequiredCallStack

GHC 9.8's support for Unsatisfiable doesn't actually change the design space at all
Both TypeError and Unsatisfiable have the exact same problem where they trigger premature type errors if you define intermediate let helper bindings without a type annotation.

So since 9.8 isn't going to change the design space, I decided to see if it was realistic to just ask people to annotate intermediate let bindings that use errorCallStack.  Specifically, I tested this PR against our internal codebase and found that it required minimal changes to adopt this new TypeError approach.
This change only required adding 11 type annotations across 3 modules (out of 6000+ modules), so I inferred from this that it wouldn't be significantly disruptive to end users to switch to this new TypeError-based UX.
Moreover, this change actually slightly improved GHC's constraint resolution.  After making these two changes GHC now found two redundant HasCallStack constraints within our codebase, whereas the previous approach was somehow confounding GHC's ability to detect those gratuitous constraints.

End users won't ever see an error message mentioning the implicit because of the TypeError stuff so the implicit parameter won't show up in inferred types or error messages.  Importantly, if the user tries to infer a type involving the implicit param they will just get the TypeError

Upladed as <IP_ADDRESS>, thank you!


[DRAFT] Fix JSCRuntime::createStringFromUtf8 to support strings with embedded null chars

DRAFT - Do not merge
Please select one of the following

[ ] I am removing an existing difference between facebook/react-native and microsoft/react-native-macos :thumbsup:
[ ] I am cherry-picking a change from Facebook's react-native into microsoft/react-native-macos :thumbsup:
[X] I am making a fix / change for the macOS implementation of react-native
[X] I am making a change required for Microsoft usage of react-native

Summary
The current implementation of JSCRuntime::createStringFromUtf8 ignores the length parameter that it's given, and then blindly passes the char array to JSStringCreateWithUTF8CString which assumes the char array is a null terminated string. This means we can't pass strings with embedded null chars through the JSI boundary from C++ to JS. Instead, we can internally convert the string from UTF-8 to UTF-16, and then call JSStringCreateWithCharacters which allows us to pass an explicit length for our array of chars.
JSStringCreateWithUTF8CString internally has an optimization for strings that only contain ASCII characters, which we will miss out on by switching to JSStringCreateWithCharacters. The JSC API surface isn't rich enough for us to avoid that, so if there's a perf impact here, then so be it. We will trade perf for correctness.
This is based on PR 34300 upstream in the RN repo. I'm not assuming infinite flexibility in this version. We're only building for Apple platforms, so we know the endianness and the expected size of a JSChar.

@Saadnajmi - draft from our conversation

Abandoned due to the perf impact of this change.


Revert "Remove etcd_metrics_server"

What
This reverts commit b3092a1da86a3236f93f67a51ba3ed74506bc18f.
As it turns out, ETCD metrics server was also sending metrics to doppler,
meaning they would make it to our graphite nozzle which was adding them
to graphite. Add this component back so that we have ETCD metrics again.
Unfortunately no etcd_metrics_server documentation mentioned this
feature. It was added in this commit:
https://github.com/cloudfoundry-incubator/etcd-metrics-server/commit/0668d4fcbb66105d1c13f6d72ac130792b52cc26
How to review
Deploy. Verify that you can see metrics from ETCD in graphite, e.g. stats.gauges.cfstats.etcd.0.ops.etcd.CreateFail
Who can review
not @mtekel

This PR needs a story ID in the subject so that Pivotal is updated.

:+1: deploys OK and the metrics work again


Add batch size and delay docs

Overview
This commit adds documentation for batch size and delay to the DB.Batch() call. Previously there was no reference to these properties from the Batch() call so it was nearly impossible for anyone to know to adjust these settings.
Thanks to Kelly Sommers (@kellabyte) for bringing the doc issue to my attention. :tada: :tada: :tada:

:+1:  :) Thank you!

Thank you! :)


check deployment issue

redeployed without issue for the moment. May need to check if it is a problem with github hosting service.


chore: fix publish-docs failure

sphinx>=8 causes error "sphinx 'style' is undefined"
e.g https://github.com/deepgenomics/GenomeKit/actions/runs/10359784764

I locally built and added docs for versions 5.2.0 to 5.2.4 in the gh-pages branch.


Modify configuration setting for Security/SlowApiThreshold

We have a couple global on-premise clusters where at times all or some of the nodes display this warning:
Unhealthy event: SourceId='System.FabricNode', Property='SecurityApi_CertGetCertificateChain', HealthState='Warning', ConsiderWarningAsError=false.
Security API:call duration = 14.995, configuration Setting Security/SlowApiThreshold = 10.000

Is there any way to modify this configuration setting?  Would you be able to provide any clues as to what it's looking for when this warning is triggered?

This indicates that the machine cannot access CRL (certificate revocation list) distribution endpoint of some CA signed certificate you are using, such endpoint is usually a http endpoint.
If you do not care about X509 certificate revocation checking, then you can either disable CRL checking completely or using longer warning threshold.
If you want to keep CRL checking, then you should figure out why the machine cannot access CRL distribution endpoint. CRL distribution point is an extension in your certificate.

Thanks @leikong
I'm able to download the CRL list from both the issuing and root CAs without issue.  The random warnings probably indicate an issue with network latency.  Is there a way to extend the warning threshold?

Did you try it form the machine that reported the issue? Also, did you check all CRLs used by ALL your certificates.
If you can share the traces, I can tell you which certificate chain was causing the issue.
You can  set this in "fabricSettings" JSON element by adding a new element, the following increases the warning threshold from default 10 seconds to 30 seconds
{
"name": "Security",
"parameters": [
{
"name": "SlowApiThreshold ",
"value": "30"
}
]
}

If you want to share your trace, you can search "collect logs for support purposes" on the following page, and please share the trace around the warning reporting time.
https://docs.microsoft.com/en-us/azure/service-fabric/service-fabric-cluster-creation-for-windows-server#get-support-for-the-service-fabric-for-windows-server-package

@leikong Thanks again for the information.  Which log file should I share?  Is it one of the *.dtr.zip files?

@Rakshita<EMAIL_ADDRESS>I believe it is the .dtr.zip files, can you confirm to the customer, thanks.
From: Chioke J Jones<EMAIL_ADDRESS>Sent: Wednesday, March 21, 2018 1:08 PM
To: Microsoft/service-fabric<EMAIL_ADDRESS>Cc: Ray Kong<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [Microsoft/service-fabric] Modify configuration setting for Security/SlowApiThreshold (#48)
@leikonghttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fleikong&data=04|01|leikong%40microsoft.com|341526a2b6144793039e08d58f67754e|72f988bf86f141af91ab2d7cd011db47|1|0|636572596872578383|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwifQ%3D%3D|-1&sdata=FAK1Qhzwfokt454Z%2FDyp70LlGGiY4i6ABlgelYZQmx4%3D&reserved=0 Thanks again for the information. Which log file should I share? Is it one of the *.dtr.zip files?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FMicrosoft%2Fservice-fabric%2Fissues%2F48%23issuecomment-375078687&data=04|01|leikong%40microsoft.com|341526a2b6144793039e08d58f67754e|72f988bf86f141af91ab2d7cd011db47|1|0|636572596872578383|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwifQ%3D%3D|-1&sdata=F%2B3CvQiGoJmO3rz2Ct2x%2FWFDLS5CdsV2nOBEPnQpV6Q%3D&reserved=0, or mute the threadhttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAKwPJFlpLyDMPIsMN_4osYimcLaxUUf9ks5tgrMkgaJpZM4SyNiK&data=04|01|leikong%40microsoft.com|341526a2b6144793039e08d58f67754e|72f988bf86f141af91ab2d7cd011db47|1|0|636572596872578383|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwifQ%3D%3D|-1&sdata=znstn%2BATLcY5rxtjd0N34Wh6Nqha0m%2BAsnx3cDxRUdk%3D&reserved=0.

`Start-ServiceFabricClusterConfigurationUpgrade : System.Runtime.InteropServices.COMException (-2147017627)
ValidationException: Section 'Security' and Parameter 'SlowApiThreshold ' is not allowed.
At line:1 char:1

Start-ServiceFabricClusterConfigurationUpgrade -ClusterConfigPath .\C ...

  + CategoryInfo          : InvalidOperation: (Microsoft.Servi...usterConnection:ClusterConnection) [Start-ServiceFa   ...gurationUpgrade], FabricException
  + FullyQualifiedErrorId : StartClusterConfigurationUpgradeErrorId,Microsoft.ServiceFabric.Powershell.StartClusterConfigurationUpgrade`

Does this setting only apply to Azure deployments?  I'm working with on-premise clusters.

a8d57c351fa62a4f1c95d8e89456be03_fabric_traces_6.1.456.9494_131660633404611103_10_00636572536231583133_0000000000.dtr.zip
I've attached the fabric trace from a node that consistently displays the slowapithreshold warning.

this file does not have the warning report trace, can you share more files before the report time?
thanks.

fabric_traces.zip
No problem.  This zip contains multiple traces.  Let me know if it's still missing the warning report trace.

@Rishi Sinha (rsinha@microsoft.com)mailto:rsinha@microsoft.com@Rakshita <EMAIL_ADDRESS>Is there a workaround for this restriction?
From: Chioke J Jones<EMAIL_ADDRESS>Sent: Wednesday, March 21, 2018 1:31 PM
To: Microsoft/service-fabric<EMAIL_ADDRESS>Cc: Ray Kong<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [Microsoft/service-fabric] Modify configuration setting for Security/SlowApiThreshold (#48)
`Start-ServiceFabricClusterConfigurationUpgrade : System.Runtime.InteropServices.COMException (-2147017627)
ValidationException: Section 'Security' and Parameter 'SlowApiThreshold ' is not allowed.
At line:1 char:1

Start-ServiceFabricClusterConfigurationUpgrade -ClusterConfigPath .\C ...

·           + CategoryInfo          : InvalidOperation: (Microsoft.Servi...usterConnection:ClusterConnection) [Start-ServiceFa   ...gurationUpgrade], FabricException
·           + FullyQualifiedErrorId : StartClusterConfigurationUpgradeErrorId,Microsoft.ServiceFabric.Powershell.StartClusterConfigurationUpgrade`
·

Does this setting only apply to Azure deployments? I'm working with on-premise clusters.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FMicrosoft%2Fservice-fabric%2Fissues%2F48%23issuecomment-375085296&data=04|01|leikong%40microsoft.com|3c3b7549560e4c1bcdc908d58f6aa0cf|72f988bf86f141af91ab2d7cd011db47|1|0|636572610479933582|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwifQ%3D%3D|-1&sdata=C9TuqU%2By7p7xr5ZzuR2uiX3f6eKkPX3jhfrmZSVi5yE%3D&reserved=0, or mute the threadhttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAKwPJNfHoJRUfOsNpxFrAHAKiCM9PweCks5tgrh2gaJpZM4SyNiK&data=04|01|leikong%40microsoft.com|3c3b7549560e4c1bcdc908d58f6aa0cf|72f988bf86f141af91ab2d7cd011db47|1|0|636572610479933582|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwifQ%3D%3D|-1&sdata=vI8ILqfPg2aVaOmZbuz9BWbiuhg6R5kpIBM%2B8PKPvN8%3D&reserved=0.

It looks like CRL downloading for certificate 4a87da4e08b643ada1486eea748fa9c6eabceb99 was slow, have you verified CRL downloading on the warning reporting machine B1P1VSF1NOD0001 ?
2018-3-21 18:37:11.378	Transport.SecurityContextSsl	4044	2760	incoming cert: thumbprint = 4a87da4e08b643ada1486eea748fa9c6eabceb99, subject='O=Kroll Ontrack, CN=ClientServiceFabricCluster1KOI', issuer='DC=local, DC=edp, DC=ccp, CN=ccp-B1P1VSH1CAI0001-CA', issuerCertThumbprint=09746e4a5436db3bc804c185c88304cd2ec9c1c4, NotBefore=2018-01-17 16:17:47.000, NotAfter=2058-01-07 16:17:47.000

It looks like there is an extra space at the end of 'SlowApiThreshold ', probably my copy-paste error in the example above.

@leikong Thanks for your help on this.  The CRLs are accessible with <2s response times from the target node.  I ended up updating the cluster configuration with new the 'slowapithreshold' parameter and the warnings have gone away.  I'll stick with this as a workaround for the two problem environments.  Thanks again.

The "slow" security API also downloads Windows disallowed CTL, is it possible that your machine cannot download Windows disallowed CTL? Do they have access to public internet?

No, our servers do not have public internet access.  We'll have to explore either disabling this check or creating a proxy to download the CTLs.
Yes, there are only two issuers in the certificate chain.

If you want to disable CTL downloading for service fabric, you can add the following to fabricSettings:
{
"name": "Security",
"parameters": [
{
"name": "CrlCheckingFlag",
"value": "4"
}
]
}
{
"name": "Federation",
"parameters": [
{
"name": "X509CertChainFlags",
"value": "4"
}
]
}


Segregate (separate) SDS from flammables.

I can do this!

Wait, according to the MSDS (https://www.sigmaaldrich.com/US/en/sds/sial/l4509) this is a category 2 flammable solid though, so isn't it supposed to be in the flammables cabinet? Need to follow up with EH&S.


Build Thrift Docker image with Github Action workflow

Depends on https://github.com/ahawkins/docker-thrift/pull/26

Hello!
Do you know if this repository is still actively maintained, please? :)
Do you still accept pull requests?


Add allow non root login option

desc: //TODO
Wait PR #985 to be merged.

Close it cause it is merged to PR #985


Use 'mode' consistently in private-browsing

For the most part, the question and description uses "mode" with the exception of this sentence that uses "state". Unless the use of the term "state" was intentional, it may be better to use "mode" instead.

Preview | Diff

Hi! Thanks for the PR! The two cases of 'state' that you found aren't referring to private browsing / ingocnito / whatever mode, but the browser state that's available to sites while in that mode. So I hope you don't mind me closing the PR without merging.


Update LeagueEntryDTO. Add ratedTier and ratedRating props.

https://developer.riotgames.com/apis#tft-league-v1/GET_getLeagueEntriesForSummoner

@mikhin Thanks for this, l will look over and get this in, this eve. The pipeline will fail until l re-run it manually (as circleci stops secrets from being used in MRs by outsiders)

@OllieJennings, hi! Could you manage, please, with this PR?

@mikhin Thanks for this, merging in, will kick off a release today

@OllieJennings, thank you for your help!

@OllieJennings, hi! Could you please publish the update?

@mikhin Apologies, releasing today


Issue with sshd configuration

Running security advisor I see:
SSH direct root logins are permitted.
Manually edit /etc/ssh/sshd_config and change PermitRootLogin to “without-password” or “no”, then restart SSH.

I checked and verified that PermitRootLogin  was set to no.
I changed PermitRootLogin  to without-password & restarted the SSH service.  (same issue reported, so I reverted back to my previous 'no' setting)

I'm not sure how to resolve this.

Can you confirm you didn't change a commented line? you shouldn't have even needed to restart for the warning to go away.

Thanks for that. How embarrassing for me.  That's exactly what the issue was. I completely overlooked that it was commented out.
I removed the # and saved the change, restarted SSH & verified this resolved.  Thanks Todd.

:) glad it was easy! Good luck!


Remove compile dependancy on lombok

The following is in the build.gradle file of micro-server and it should be removed:
compile(group: 'org.projectlombok', name: 'lombok', version:'1.16.2') {
This dependency was originally in the Maven provided scope, but the project was not of type war.
  This behavior is not yet supported by Gradle, so this dependency has been converted to a compile dependency.
  Please review and delete this closure when resolved.
  }
This should use provided scope

With https://github.com/aol/micro-server/pull/381 you won't need. It introduces new gradle wrapper version 2.14.1 with the use of compileOnly dependency strategy to avoid transitive dependencies and use them only on compiling time (lombok).
More info here:
https://projectlombok.org/setup/gradle
https://blog.gradle.org/introducing-compile-only-dependencies


Fix mis-leading deserialize stage comments

Description

The deserialize stage no longer actually deserializes, but instead chunks incoming MessageMeta objects and converts to ControlMessage

Closes #2007
By Submitting this PR I confirm:

I am familiar with the Contributing Guidelines.
When the PR is ready for review, new or existing tests cover these changes.
When the PR is ready for review, the documentation is up to date with these changes.

/merge


http link to medor

Chrome not allow download from http links if it placed on https website.
So for medor better use middle http page for this.
For example instead of url
http://medor.no-ip.org/index.php?dir=Maps/CTF&file=ctf-thorns206.zip
use
http://medor.no-ip.org/index.php?dir=&search_mode=f&search=ctf-thorns206.zip
This lead to http page (not download), which allowed in Chrome. So users can lately click on file and download it.

Done per your suggestion; although a better solution would be for Medor to switch to HTTPS, before his site drops off the internet entirely due to browsers refusing outright to download stuff from there.

Confirmed. Now work in Chrome. Thanks.
About wipe from internet - highly doubt about that. Some sites never migrate.


✨ Introducing RedStone Oracle

Hey @Kazik435 thanks for your contribution! Can you please fix the linter?

Hey Lenny is it fine now?
On Wed, Mar 22, 2023 at 10:16 PM Lenny @.***> wrote:

Hey @Kazik435 https://github.com/Kazik435 thanks for your contribution!
Can you please fix the linter?
—
Reply to this email directly, view it on GitHub
https://github.com/419Labs/starknet-ecosystem.com/pull/243#issuecomment-1480272394,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AIZYGXN5SFUEOIQHPLIFLU3W5NT4PANCNFSM6AAAAAAWDSJB7Q
.
You are receiving this because you were mentioned.Message ID:
@.***>


Increase MPU9250 magnetometer sample rate to configured TPS

Was talking to the Swiss guy on his new video. Esp32 da maybe a better connection  btw probably commenting in the wrong bit here but hey ho 😀


[WIP] Add systemd support

What is the problem that this PR is trying to fix?
Add missing systemd support for Enterprise packaging.
What approach did you choose and why?
This PR is a WIP, it starts by adding a systemd service for travis-worker. It requires that configuration options which where defined in /etc/default/travis-worker and /etc/default/travis-enterprise are now all defined in /etc/default/travis-worker. Example:
<EMAIL_ADDRESS>BUILD_API_URI="https://enterprise.example.com/__build__/script"
TRAVIS_WORKER_BUILD_API_INSECURE_SKIP_VERIFY='true'
POOL_SIZE='2'
PROVIDER_NAME='docker'
QUEUE_NAME='builds.linux'

How can you test this?
What feedback would you like, if any?
I'd like to have feedback on how to best ship the config file with the .deb package and if anything else is needed to build .deb packages for Ubuntu 16.04.

I'm closing this one after a meeting /w @meatballhat and @acnagy where we decided that we'll ship the setup which is on production on Hosted for our Enterprise customers.


Use markdown header for usage options

It's kinda hard to distinguish different usage options in a large code block containing both text, Ruby code and shell commands. I think it'd be easier to read if we give different options a header.
Before

After

@ko1 wdyt?


ColoumFormatting: Action Input can't update ModerationStatus anymore

Target SharePoint environment
SharePoint Online
What SharePoint development model, framework, SDK or API is this about?
Declarative list formatting
Developer environment
Windows
What browser(s) / client(s) have you tested

[ ] 💥 Internet Explorer
[X] 💥 Microsoft Edge
[X] 💥 Google Chrome
[X] 💥 FireFox
[ ] 💥 Safari
[ ] mobile (iOS/iPadOS)
[ ] mobile (Android)
[ ] not applicable
[ ] other (enter in the "Additional environment details" area below)

Additional environment details
No response
Describe the bug / error
I dont know if this is the right place, but i found a bug when using coloumn formatting for editing the default approval value.
Sample (which sample are you having trouble with)
https://github.com/pnp/List-Formatting/tree/master/column-samples/approval-buttons-setValue-status-user
I edit the action input to :
            "actionInput": { "_ModerationStatus": "0", "ApprovalActionBy": "@me" }
What Should Happen
For a few days now I and other users have had the problem that the buttons for approving and rejecting no longer work. The manual approval still works and if i changed the action input to edit a single text coloum everything works fine. So in my opinion there must be a change or something that i cant edit the moderation status anymore. Do you have any clue why this doesnt work?
What Actually Happens
At the moment you press the button and nothing happen. Is there a way to debug the thinks in the background because the browser console is empty.
Steps to reproduce

Activate Approval in List
Create Single List Coloumn
Format the coloumn with following code :

{   "$schema": "https://developer.microsoft.com/json-schemas/sp/column-formatting.schema.json",   "elmType": "div",   "style": {     "flex-directon": "row",     "justify-content": "left",     "align-items": "center",     "flex-wrap": "nowrap"   },   "children": [     {       "elmType": "div",       "style": {         "display": "inherit",         "flex-directon": "row",         "justify-content": "left",         "align-items": "center",         "flex-wrap": "wrap"       },       "children": [         {           "elmType": "button",           "customRowAction": {             "action": "setValue",             "actionInput": {               "_ModerationStatus": "0",               "ApprovalActionBy": "@me"             }           },           "attributes": {             "class": "ms-fontColor-themePrimary ms-fontColor-themeDarker--hover"           },           "style": {             "border": "none",             "background-color": "transparent",             "cursor": "pointer",             "display": "flex",             "flex-directon": "row",             "justify-content": "left",             "align-items": "center",             "flex-wrap": "wrap"           },           "children": [             {               "elmType": "span",               "attributes": {                 "iconName": "SkypeCircleCheck"               },               "style": {                 "padding": "4px"               }             },             {               "elmType": "span",               "txtContent": "Approve",               "style": {                 "word-break": "keep-all"               }             }           ]         }       ]     }   ] }
Expected behavior
Approve List Item -> worked for me for 2 years.

@joshua-probst Thanks for reporting. We will work on this and share an update soon.

Hi @joshua-probst was this _moderationStatus working before when you do setValue?

@deepamajhi in combination with approvalactionby it workes for me for one year.

Hi @joshua-probst modifying ApprovalStatus is not supported through setValue. You can check this document and see the supported column types for setValue https://learn.microsoft.com/en-us/sharepoint/dev/declarative-customization/formatting-advanced

Hii @joshua-probst .. do you have any further queries on this or we can close this item?

@deepamajhi you can close this item.


Remove lodash dependency

Coverage remained the same at 100.0% when pulling 82e2b9719cc87c37523579114b1f83094ffe4ec2 on remove-lodash into 77b13c45dde7e454e32cf0983fb74a4b25851032 on master.

Coverage remained the same at 100.0% when pulling 82e2b9719cc87c37523579114b1f83094ffe4ec2 on remove-lodash into 77b13c45dde7e454e32cf0983fb74a4b25851032 on master.


SW3: Unstacked view

Implicit stack() as the final line.
We could get adventurous here and replace the tuning table with a circle in this view.

Yeah this is a great idea. And very much connected to the question of "1/1 always first" or not. The situation in which I'm considering intervals both above and below the 1/1 is a situation in which I don't care for equave equivalences. Is a spontaneous thought.


Geode 7474: NetSearchMessagingDUnitTest.testNetSearchFailoverFromReplicate fails

Adding debug logging to try and track this down via the mass test run.

DBG stands for "debug"


RuntimeError: CUDA error: an illegal memory access was encountered

Describe the bug
While running the demo to check if mmdet was correctly installed, I am getting the following error from CUDA:
RuntimeError: CUDA error: an illegal memory access was encountered
Reproduction

What command or script did you run?

CUDA_LAUNCH_BLOCKING=1 python demo/image_demo.py demo/demo.jpg rtmdet_tiny_8xb32-300e_coco.py --weights rtmdet_tiny_8xb32-300e_coco_20220902_112414-78e30dcc.pth --device cuda:0

Did you make any modifications on the code or config? Did you understand what you have modified?
No modifications done to the code or the config.

What dataset did you use?
I used the pretrained models

Environment

Please run python mmdet/utils/collect_env.py to collect necessary environment information and paste it here.
sys.platform: linux
Python: 3.10.13 (main, Sep 11 2023, 13:44:35) [GCC 11.2.0]
CUDA available: True
MUSA available: False
numpy_random_seed:<PHONE_NUMBER>
GPU 0,1: Tesla K80
CUDA_HOME: /usr/local/cuda-11.3
NVCC: Cuda compilation tools, release 11.3, V11.3.109
GCC: gcc (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0
PyTorch: 1.12.1+cu113
PyTorch compiling details: PyTorch built with:

GCC 9.3
C++ Version: 201402
Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
Intel(R) MKL-DNN v2.6.0 (Git Hash 52b5f107dd9cf10910aaa19cb47f3abf9b349815)
OpenMP 201511 (a.k.a. OpenMP 4.5)
LAPACK is enabled (usually provided by MKL)
NNPACK is enabled
CPU capability usage: AVX2
CUDA Runtime 11.3
NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75;-gencode;arch=compute_80,code=sm_80;-gencode;arch=compute_86,code=sm_86
CuDNN 8.3.2  (built against CUDA 11.5)
Magma 2.5.2
Build settings: BLAS_INFO=mkl, BUILD_TYPE=Release, CUDA_VERSION=11.3, CUDNN_VERSION=8.3.2, CXX_COMPILER=/opt/rh/devtoolset-9/root/usr/bin/c++, CXX_FLAGS= -fabi-version=11 -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_KINETO -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DSYMBOLICATE_MOBILE_DEBUG_HANDLE -DEDGE_PROFILER_USE_KINETO -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-unused-parameter -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Werror=cast-function-type -Wno-stringop-overflow, LAPACK_INFO=mkl, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, TORCH_VERSION=1.12.1, USE_CUDA=ON, USE_CUDNN=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=OFF, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON, USE_ROCM=OFF,

TorchVision: 0.13.1+cu113
OpenCV: 4.9.0
MMEngine: 0.10.3
MMDetection: 3.3.0+cfd5d3a

You may add addition that may be helpful for locating the problem, such as

How you installed PyTorch [e.g., pip, conda, source]
Pytorch was installed via pip with the following:
pip install torch==1.12.1+cu113 torchvision==0.13.1+cu113 torchaudio==0.12.1 --extra-index-url https://download.pytorch.org/whl/cu113

Error traceback
Traceback (most recent call last):
  File "/home/julien_couillaud/mmdetection/demo/image_demo.py", line 192, in <module>
    main()
  File "/home/julien_couillaud/mmdetection/demo/image_demo.py", line 184, in main
    inferencer(**call_args)
  File "/home/julien_couillaud/mmdetection/mmdet/apis/det_inferencer.py", line 403, in __call__
    preds = self.forward(data, **forward_kwargs)
  File "/home/julien_couillaud/anaconda3/envs/Impact_AI/lib/python3.10/site-packages/torch/autograd/grad_mode.py", line 27, in decorate_context
    return func(*args, **kwargs)
  File "/home/julien_couillaud/anaconda3/envs/Impact_AI/lib/python3.10/site-packages/mmengine/infer/infer.py", line 296, in forward
    return self.model.test_step(inputs)
  File "/home/julien_couillaud/anaconda3/envs/Impact_AI/lib/python3.10/site-packages/mmengine/model/base_model/base_model.py", line 145, in test_step
    return self._run_forward(data, mode='predict')  # type: ignore
  File "/home/julien_couillaud/anaconda3/envs/Impact_AI/lib/python3.10/site-packages/mmengine/model/base_model/base_model.py", line 361, in _run_forward
    results = self(**data, mode=mode)
  File "/home/julien_couillaud/anaconda3/envs/Impact_AI/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1130, in _call_impl
    return forward_call(*input, **kwargs)
  File "/home/julien_couillaud/mmdetection/mmdet/models/detectors/base.py", line 94, in forward
    return self.predict(inputs, data_samples)
  File "/home/julien_couillaud/mmdetection/mmdet/models/detectors/single_stage.py", line 109, in predict
    x = self.extract_feat(batch_inputs)
  File "/home/julien_couillaud/mmdetection/mmdet/models/detectors/single_stage.py", line 146, in extract_feat
    x = self.backbone(batch_inputs)
  File "/home/julien_couillaud/anaconda3/envs/Impact_AI/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1130, in _call_impl
    return forward_call(*input, **kwargs)
  File "/home/julien_couillaud/mmdetection/mmdet/models/backbones/cspnext.py", line 192, in forward
    x = layer(x)
  File "/home/julien_couillaud/anaconda3/envs/Impact_AI/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1130, in _call_impl
    return forward_call(*input, **kwargs)
  File "/home/julien_couillaud/anaconda3/envs/Impact_AI/lib/python3.10/site-packages/torch/nn/modules/container.py", line 139, in forward
    input = module(input)
  File "/home/julien_couillaud/anaconda3/envs/Impact_AI/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1130, in _call_impl
    return forward_call(*input, **kwargs)
  File "/home/julien_couillaud/mmcv/mmcv/cnn/bricks/conv_module.py", line 281, in forward
    x = self.conv(x)
  File "/home/julien_couillaud/anaconda3/envs/Impact_AI/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1130, in _call_impl
    return forward_call(*input, **kwargs)
  File "/home/julien_couillaud/anaconda3/envs/Impact_AI/lib/python3.10/site-packages/torch/nn/modules/conv.py", line 457, in forward
    return self._conv_forward(input, self.weight, self.bias)
  File "/home/julien_couillaud/anaconda3/envs/Impact_AI/lib/python3.10/site-packages/torch/nn/modules/conv.py", line 453, in _conv_forward
    return F.conv2d(input, weight, bias, self.stride,
RuntimeError: CUDA error: an illegal memory access was encountered

Additional details
We have yet to learn how this error could be produced. We tried a few basic codes in PyTorch like the following:
  import torch.nn as nn
  import torch.nn.functional as F
  from torch.autograd import Variable
  import torch
  import pdb
  pst=pdb.set_trace
  import os
  torch.cuda.empty_cache()
  os.environ['CUDA_LAUNCH_BLOCKING']='1'
  device = 'cuda:0'
  convx = nn.Conv2d(1, 100, (5,128)).to(device)
  torch.cuda.empty_cache()
  y = convx(torch.randn(64, 1, 128, 128).to(device))

With the above code, we can see that memory is allocated to the GPU. Do you have any idea what could be the issue?

Anybody ??

Did you solve this problem,bro?
I'm getting the same error "File "C:\Users\MyPC\miniconda3\envs\yolov5new\lib\site-packages\torch\nn\modules\conv.py", line 453, in _conv_forward
return F.conv2d(input, weight, bias, self.stride,
RuntimeError: CUDA error: an illegal memory access was encountered"

Hi,
I fixed the issue by changing the version of python and pytorch.
I am using python3 10.13 and pytorch 1.13 compatible.
Try to play with pytorch version until you find a version which works with your CUDA setup.
Best regards,
Julien


Feature: Spawn debugger from selected record

Well, maybe you find a way to spawn an actual debugger at a certain point. From there you could modify the source code.

Originally posted by @marceltaeumel in https://github.com/hpi-swa/MessageSendRecorder/issues/6#issuecomment-706013049
You can assign me because my image already contains some basic stuff for running a debugger until a certain method is reached. Very interesting idea! :-)

My suggestion would be to use MsrSpecificCallWrapper but not to start recording but to open a debugger. Or via BreakPoint and BreakPointManager --- BUT the number of previous calls does likely matter. And MsrSpecificCallWrapper  can do that.


How to: Cancel request before proxying to external resource

Intro/Overview
Hi, I have created a proxy utility which will both proxy to a remote (internal server) and record the response from the server into a folder structure which matches the endpoint requested. In order to accomplish this I needed to be able to get through the corporate proxy, so I add customer headers and used https-proxy-agent following the example to do the handshake with the corporate proxy. I am currently trying to add a useCache mode to the proxy utility. I would like this mode to cancel any requests at the proxy and return the locally stored data if the matching file for the endpoint exists.
Current Hurdle
When trying to cancel the request in the onProxyReq event I receive an error which reads Error: Can't set headers after they are sent..
Question
Is there a way to cancel the request at the proxy so that I can return the content of a file in the response without making the real request?
Update
I was able to cancel the request successfully using proxyReq.abort but whenever a request is aborted it is throwing an error that reads [HPM] Error occurred while trying to proxy request. Is there a way to prevent this error from occurring?

I figured out how to accomplish this by creating a custom middleware that runs before the proxy middleware.

Thanks for sharing your solution @folterung.
Think I would've done the same.

@folterung may I ask how to create a custom middleware that runs before the proxy middleware?

@chimurai it seems very odd that’s calling abort crashes the whole server, at least in my case. I'm using Nuxt. Is this expected?
It looks like I'll have to go the middleware path which is was I was expecting.


Mapping of objects from SDF to WoT does not work yet

The mapping between the object type in SDF and the WoT version does not really work yet. The reasons for this have to be investigated.

Fixed by c3b81bc9ee5092f9152d9fc4cbff44f82fdb6626


Enable Ascend NPU support

Description
Enable Ascend NPU backend for finetuning, inferencing and gradio webui.
Main changes:

modify the hard code related to cuda and abstract to device
add NPU related configure constraints

Motivation and Context
There are two benefits:

Abstracting device make sense for more backends to plugin, and Ascend NPU is a good example.
Allow Ascend NPU users to use axolotl for LLM finetuning, inferencing

Example
# preprocess datasets - optional but recommended
ASCEND_RT_VISIBLE_DEVICES=0 python -m axolotl.cli.preprocess examples/openllama-3b/lora.yml

# finetune lora
accelerate launch -m axolotl.cli.train examples/openllama-3b/lora.yml

# inference
accelerate launch -m axolotl.cli.inference examples/openllama-3b/lora.yml \
    --lora_model_dir="./lora-out"

# gradio
accelerate launch -m axolotl.cli.inference examples/openllama-3b/lora.yml \
    --lora_model_dir="./lora-out" --gradio

Screenshots
NPU supported CLI inference

NPU supported Gradio webui inference

Config
lora.yaml
base_model: openlm-research/open_llama_3b_v2
model_type: LlamaForCausalLM
tokenizer_type: LlamaTokenizer
load_in_8bit: true
load_in_4bit: false
strict: false
push_dataset_to_hub:
datasets:
  - path: teknium/GPT4-LLM-Cleaned
    type: alpaca
dataset_prepared_path:
val_set_size: 0.02
adapter: lora
lora_model_dir:
sequence_len: 1024
sample_packing: true
lora_r: 8
lora_alpha: 16
lora_dropout: 0.0
lora_target_modules:
  - gate_proj
  - down_proj
  - up_proj
  - q_proj
  - v_proj
  - k_proj
  - o_proj
lora_fan_in_fan_out:
wandb_project:
wandb_entity:
wandb_watch:
wandb_name:
wandb_log_model:
output_dir: ./outputs/lora-out
gradient_accumulation_steps: 1
micro_batch_size: 2
num_epochs: 4
optimizer: adamw_torch
torchdistx_path:
lr_scheduler: cosine
learning_rate: 0.0002
train_on_inputs: false
group_by_length: false
float32: true
bf16: false
fp16: false
tf32: false
gradient_checkpointing: true
early_stopping_patience:
resume_from_checkpoint:
local_rank: 0
logging_steps: 1
xformers_attention:
flash_attention: false
gptq_groupsize:
s2_attention:
gptq_model_v1:
warmup_steps: 20
evals_per_epoch: 4
saves_per_epoch: 1
debug:
deepspeed:
weight_decay: 0.1
fsdp:
fsdp_config:
special_tokens:
  bos_token: "<s>"
  eos_token: "</s>"
  unk_token: "<unk>"

Good day! @winglian I tried to create a class ModelKwargs, but with the modification of model_kwargs, there are many other operations such as patching, creating models, etc. And their judgment conditions seem inseparable.
Thus, finnaly I refactor the whole load_model func into a class ModelLoader. All the operations in original load_model func have been placed in several member functions and followed the original logical order.
This brings a lot changes, while making the model loading pipeline more clearly. Moreover, the changes of member variables such as model_kwargs are more obvious. But I am not sure whether the current function naming and pipeline splitting method is completely reasonable.
Please review the latest code and give me some suggestions. Thanks a lot!

Hi, @winglian Could you help review the latest code in this PR? Let me know if the breaks brings by refactoring of the original code is not you want.
Just FYI, I accidentally deleted the original commit, and it cann be found in this branch.

Looks like it includes two parts in this commits Model Loaders reafactor and Ascend NPU support. Maybe we could spilit it as two PRs, the first one is Model Loaders reafactor, then we will rebase the Ascend NPU support PR after it.
Or do you have any other suggestions? @winglian

The refactoring of ModelLoder is split into https://github.com/axolotl-ai-cloud/axolotl/pull/1909, and the support of Ascend NPU  will be commited after #1909 . Hope this will make it easier to review and test. cc @winglian

@winglian Hi, Ascend NPU support is done on the latest branch, plz review it, thanks!

@MengqingCao , no worries. I restarted them. I checked the PR, and all my points have been resolved. Thank you for addressing them.
I plan to let the multi-gpu CI to run as well to ensure no issues there.


Deseq fixes

bugfix in DESeq2 script
fix for finding 0 differentially expressed genes crashing the DESeq2 script
added warning to usage of underscores in DESeq contrast inputs
bugfix in alignment Snakefile

A parser for the samples.tsv has been added.
-Leading and trailing whitespaces are stripped
-Other whitespaces are replaced with underscores
-All characters except numbers, letters, underscores and periods are removed.
-Duplicate samples are marked


Send screen UI change.

The zero at the start should go away when a user starts typing the number.

Verified this issue on dev app v2.0.68(418)


Initialisation exception while loading python3

I've tried to use official build MacVim#80 (it includes https://github.com/vim/vim/commit/d94464ee294a351ce7b6ba18e8bd3f24f1bef920) with python3dll set like this in ~/.vimrc file:
set pythondll=/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/libpython2.7.dylib
set python3dll=/opt/local/Library/Frameworks/Python.framework/Versions/3.4/lib/libpython3.4.dylib

now command python import sys works well and loads correct dylib.
and command python3 import sys kills vim with exception:
Fatal Python error: Py_Initialize: unable to load the file system codec
ImportError: No module named 'encodings'
Vim: Caught deadly signal ABRT
Vim: Finished.

The most voted suggestion is unset or try to set correctly PYTHONPATH variable.
I've tried to set PYTHONPATH with no luck

Right. Snapshot 80 is binary compatible with these version only.

Lua 5.2
Perl 5.16
Python2 2.7
Python3 3.5
Ruby 2.0

You need to install Python 3.5.x, or you need to build MacVim by yourself.

It doesn't work with 3.5 as well

Output is same.
Fatal Python error: Py_Initialize: unable to load the file system codec
ImportError: No module named 'encodings'

Current thread 0x00007fff7b0c7000 (most recent call first):
Vim: Caught deadly signal ABRT
Vim: Finished.


Check 3.11 support

Signed-off-by: Bernát Gábor<EMAIL_ADDRESS>

Is this pdf was added to git by accident?

Oh wow, definitely!


Execute factory functions just-in-time instead of eagerly

This will help with bundles that have to fetch some modules async.  It will also fix the lingering problems with circular dependencies.

Will it ever be implemented? It would be very helpful for me.


fix: Correctly align 'Before ...' & 'After ...' in Edit Task modal

Types of changes

[x] Bug fix (prefix: fix - non-breaking change which fixes an issue)

Description

align the view of date editors, dependency editors and the status editor

Motivation and Context
Better looking Edit Task modal =)
How has this been tested?
Smoke test in demo vault
Screenshots (if appropriate)

Before
After

Checklist

[x] My code follows the code style of this project and passes yarn run lint.
[ ] My change has adequate Unit Test coverage.

CSS code not covered

Terms

[x] My contribution follows this project's contributing guide
[x] I agree to follow this project's Code of Conduct

Thanks!


Log an error when res.Render() is called and there is no engine for the template extension.

Moved to Forgery2 https://github.com/goforgery/forgery2/issues/1


HEADS-UP - Regarding WLROOTS!

Evening Vaxry,
Just to let you know that today's WLROOTS updates will break Hyprland.
I fully appreciate that there's no guarantee that the latest WLROOTS is supported but I thought I let you know in advance so that you're well prepared for the inevitable in any case.

The trace is as follows:-
FAILED: src/Hyprland.p/events_Popups.cpp.o
ccache c++ -Isrc/Hyprland.p -Isrc -I../src -Isubprojects/wlroots/include -I../subprojects/wlroots/include -Isubprojects/udis86 -I../subprojects/udis86 -I../subprojects/udis86/libudis86 -Isubprojects/udis86/__CMake_build -I../subprojects/udis86/__CMake_build -Iprotocols -I/usr/local/include -I/usr/local/include/libdrm -I/usr/local/include/pixman-1 -I/usr/local/include/freetype2 -I/usr/include/cairo -I/usr/include/uuid -I/usr/include/harfbuzz -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/libpng16 -I/usr/include/pango-1.0 -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/fribidi -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wnon-virtual-dtor -Wextra -O3 -Wno-unused-parameter -Wno-unused-value -Wno-missing-field-initializers -Wno-narrowing '-DGIT_BRANCH="main"' '-DGIT_COMMIT_HASH="871ab24c6e9d2fb6e48cbf990ddddf0c46a950af"' '-DGIT_COMMIT_MESSAGE="internal: properly set monitor props on special windows"' '-DGIT_DIRTY="dirty"' -std=c++23 -pthread -DWLR_USE_UNSTABLE -MD -MQ src/Hyprland.p/events_Popups.cpp.o -MF src/Hyprland.p/events_Popups.cpp.o.d -o src/Hyprland.p/events_Popups.cpp.o -c ../src/events/Popups.cpp
../src/events/Popups.cpp: In function ‘void createNewPopup(wlr_xdg_popup*, SXDGPopup*)’:
../src/events/Popups.cpp:59:76: error: ‘struct wlr_xdg_surface::’ has no member named ‘map’
59 |     pHyprPopup->hyprListener_mapPopupXDG.initCallback(&popup->base->events.map, &Events::listener_mapPopupXDG, pHyprPopup, "HyprPopup");
|                                                                            ^~~
../src/events/Popups.cpp:60:78: error: ‘struct wlr_xdg_surface::’ has no member named ‘unmap’
60 |     pHyprPopup->hyprListener_unmapPopupXDG.initCallback(&popup->base->events.unmap, &Events::listener_unmapPopupXDG, pHyprPopup, "HyprPopup");
|                                                                              ^~~~~
[342/428] Compiling C++ object src/Hyprland.p/events_Layers.cpp.o
FAILED: src/Hyprland.p/events_Layers.cpp.o
ccache c++ -Isrc/Hyprland.p -Isrc -I../src -Isubprojects/wlroots/include -I../subprojects/wlroots/include -Isubprojects/udis86 -I../subprojects/udis86 -I../subprojects/udis86/libudis86 -Isubprojects/udis86/__CMake_build -I../subprojects/udis86/__CMake_build -Iprotocols -I/usr/local/include -I/usr/local/include/libdrm -I/usr/local/include/pixman-1 -I/usr/local/include/freetype2 -I/usr/include/cairo -I/usr/include/uuid -I/usr/include/harfbuzz -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/libpng16 -I/usr/include/pango-1.0 -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/fribidi -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wnon-virtual-dtor -Wextra -O3 -Wno-unused-parameter -Wno-unused-value -Wno-missing-field-initializers -Wno-narrowing '-DGIT_BRANCH="main"' '-DGIT_COMMIT_HASH="871ab24c6e9d2fb6e48cbf990ddddf0c46a950af"' '-DGIT_COMMIT_MESSAGE="internal: properly set monitor props on special windows"' '-DGIT_DIRTY="dirty"' -std=c++23 -pthread -DWLR_USE_UNSTABLE -MD -MQ src/Hyprland.p/events_Layers.cpp.o -MF src/Hyprland.p/events_Layers.cpp.o.d -o src/Hyprland.p/events_Layers.cpp.o -c ../src/events/Layers.cpp
../src/events/Layers.cpp: In function ‘void Events::listener_newLayerSurface(wl_listener*, void*)’:
../src/events/Layers.cpp:47:86: error: ‘struct wlr_layer_surface_v1::’ has no member named ‘map’
47 |     layerSurface->hyprListener_mapLayerSurface.initCallback(&WLRLAYERSURFACE->events.map, &Events::listener_mapLayerSurface, layerSurface, "layerSurface");
|                                                                                ^~~
../src/events/Layers.cpp:48:88: error: ‘struct wlr_layer_surface_v1::’ has no member named ‘unmap’
48 |     layerSurface->hyprListener_unmapLayerSurface.initCallback(&WLRLAYERSURFACE->events.unmap, &Events::listener_unmapLayerSurface, layerSurface, "layerSurface");
|                                                                                ^~~~~
../src/events/Layers.cpp: In function ‘void Events::listener_mapLayerSurface(void*, void*)’:
../src/events/Layers.cpp:112:33: error: ‘struct wlr_layer_surface_v1’ has no member named ‘mapped’
112 |     layersurface->layerSurface->mapped = true;
|                                 ^~~~~~
../src/events/Layers.cpp: In function ‘void Events::listener_unmapLayerSurface(void*, void*)’:
../src/events/Layers.cpp:207:37: error: ‘struct wlr_layer_surface_v1’ has no member named ‘mapped’
207 |     if (layersurface->layerSurface->mapped)
|                                     ^~~~~~
../src/events/Layers.cpp:208:37: error: ‘struct wlr_layer_surface_v1’ has no member named ‘mapped’
208 |         layersurface->layerSurface->mapped = false;
|                                     ^~~~~~
[343/428] Compiling C++ object src/Hyprland.p/events_Misc.cpp.o
FAILED: src/Hyprland.p/events_Misc.cpp.o
ccache c++ -Isrc/Hyprland.p -Isrc -I../src -Isubprojects/wlroots/include -I../subprojects/wlroots/include -Isubprojects/udis86 -I../subprojects/udis86 -I../subprojects/udis86/libudis86 -Isubprojects/udis86/__CMake_build -I../subprojects/udis86/__CMake_build -Iprotocols -I/usr/local/include -I/usr/local/include/libdrm -I/usr/local/include/pixman-1 -I/usr/local/include/freetype2 -I/usr/include/cairo -I/usr/include/uuid -I/usr/include/harfbuzz -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/libpng16 -I/usr/include/pango-1.0 -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/fribidi -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wnon-virtual-dtor -Wextra -O3 -Wno-unused-parameter -Wno-unused-value -Wno-missing-field-initializers -Wno-narrowing '-DGIT_BRANCH="main"' '-DGIT_COMMIT_HASH="871ab24c6e9d2fb6e48cbf990ddddf0c46a950af"' '-DGIT_COMMIT_MESSAGE="internal: properly set monitor props on special windows"' '-DGIT_DIRTY="dirty"' -std=c++23 -pthread -DWLR_USE_UNSTABLE -MD -MQ src/Hyprland.p/events_Misc.cpp.o -MF src/Hyprland.p/events_Misc.cpp.o.d -o src/Hyprland.p/events_Misc.cpp.o -c ../src/events/Misc.cpp
../src/events/Misc.cpp: In function ‘void Events::listener_startDrag(wl_listener*, void*)’:
../src/events/Misc.cpp:113:91: error: ‘struct wlr_drag_icon::’ has no member named ‘map’
113 |         g_pInputManager->m_sDrag.hyprListener_mapIcon.initCallback(&wlrDrag->icon->events.map, &Events::listener_mapDragIcon, &g_pInputManager->m_sDrag, "DragIcon");
|                                                                                ^~~
../src/events/Misc.cpp:114:93: error: ‘struct wlr_drag_icon::’ has no member named ‘unmap’
114 |         g_pInputManager->m_sDrag.hyprListener_unmapIcon.initCallback(&wlrDrag->icon->events.unmap, &Events::listener_unmapDragIcon, &g_pInputManager->m_sDrag, "DragIcon");

A quick peruse of today's changes to Sway will probably help fast-track any necessary alterations to Hyprland I suspect.
Hyprland works fine with the latest WLROOTS up until this morning (BST) as far as I can discern btw.
All the best...
PS. By all means let me know if you find this kind of feedback a hindrance rather than of any great benefit and I'll behave accordingly in future... :-)

I always test wlroots updates before bumping. No need for opening an issue like this.


UI reporting - stopped generation - CPU load goes to 100% for FWO.Ui with each click

CPU load goes down after cancellation but goes to 100% for FWO.Ui when using the UI again;
each click causes a 100% CPU load (tested with  5000 rules on devsrv2)
still testing this with machine with more resources

fixed


Update fauxton to version 1.1.20

Overview
Update Fauxton to version 1.1.20
Testing recommendations
N/A
Related Issues or Pull Requests
https://github.com/apache/couchdb/issues/2177
Checklist

[ ] Code is written and works correctly
[ ] Changes are covered by tests
[ ] Any new configurable parameters are documented in rel/overlay/etc/default.ini
[ ] A PR for documentation changes has been made in https://github.com/apache/couchdb-documentation

The checklist does not apply in this case.

prior to release it would be good to get https://github.com/apache/couchdb-fauxton/pull/1227 in. This is currently blocked on getting the test suite to pass against CouchDB master.

@willholley that would presumably make a fauxton 1.1.21 or so? happy to bump it again if apache/couchdb-fauxton#1227 lands in time.

@willholley I added the 'add search support' PR to the Couchdb 3.0 roadmap (https://github.com/apache/couchdb/projects/1) so we don't forget. This PR is solely for the item to move us up to 1.1.20, which adds some fauxton goodness for partitioned dbs.


Create Update IP address for HashBamboo.toml

The pre-genesis file is missing, so update the file.
Description
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 to draft

[ ] Only one toml is added in this PR
[ ] The file being added is indeed a .toml file
[ ] The toml being added is to the correct folder, and only to the correct folder
[ ] The eth_hot_key and eth_cold_key are present

Sorry, the file name is incorrect. Please update open a new pr with the correct file name


clusterloader2: Bump Kubernetes dependency to v1.29.7

What type of PR is this?
/kind cleanup
What this PR does / why we need it:
This updates the vendoring of k8s.io in clusterloader2 to Kubernetes version v1.29.7.
Which issue(s) this PR fixes:
Refs #2795
Special notes for your reviewer:
I tried to update to v1.30.3 as well, but I'm running into an issue where the Flag "v" is defined by prometheus and then again by component-base, causing a runtime error. I'll investigate further when I have time, but this change stands on its own.

@mborsz @wojtek-t is this bump worthwhile? Just trying to keep vendoring relatively current now that v1.28 will be deprecated.
Getting to v1.31 is trickier, but I can revisit that if desired.

Yes - it's definitely desired - thanks!
/lgtm
/approve


Having terminal open causes 3D applications to stutter

Windows Terminal version
1.16.3464.0
Windows build number
Microsoft Windows [Version 10.0.22621.963]
Other Software
AMD Graphics Driver ver 22.11.2? I'm not sure who to blame here, Terminal, AMD, or both
Steps to reproduce
Play a game or do any 3D rendering that is taxing
Expected Behavior
No Stutter
Actual Behavior
Stutter, seemingly linked up with any time Terminal refreshes its window contents

Like I said in the main message, I am not sure who to blame here. I don't know if AMD has a swap issue in their driver when multiple applications are using acceleration at a time, or if Terminal has the blame due to some inefficiency in something like message handling or being too hasty when handling redraw

Issue only seems to occur if Terminal currently is rapidly updating its window contents, having a blank command prompt window open is fine, but running something like rclone in verbose mode and having it spit out stuff causes the stutter to appear

Are you perhaps using a display with variable refresh rate?

Yes, but on the other monitor, terminal on one monitor, the game on another monitor. Both supporting FreeSync

Just to be sure, this issue happens with any 3D application for you right?
Does the issue still happen if neither monitor is actively using VRR/FreeSync?
Do you have this setting enabled?

I havent tried with FreeSync off, let me check

I do not seem to get the issue with FreeSync disabled

Looks to be the case, sorry for not searching for dups. My only alternate to the existing issue is having a Terminal window that isn't changing (i.e. a blank Command Prompt window) actually allows things to run at the correct refresh rate, since the blinking cursor only draws when the Terminal is focused

No worries, /dup #649


Release commit 766b330ee46d763c4a06e2ec17490a178cd20949 can't find any compilers

Hi guys,
I have my own server running based on CE that specialises in 68000 based gcc flavours. (You can try it live at http://brownbot.hopto.org). In general I use the release branch and update my repo from time to time. When I tried updating it today and restarted the process using make, after the familiar startup messages I was met with lines like:
warn: Unable to stat compiler binary Error: ENOENT: no such file or directory, stat 'm68k-ataribrown-elf-gcc'
one line for each of the compilers I have installed on the system. When the UI came up it would not show any compiler available. I tried resetting the tree back and forth and saw that up and including commit 831f5217ffae28f957191435f719b809a5ec0d9a (which if I'm not mistaken is one commit before the latest) it works fine.
Any ideas?
Just to cover some questions: a) I did do a git reset --hard and then applied my changes (which is just etc/config/c++.defaults/properites and a few c++ example sources), b) I also tried nuking the repo, re-cloning it without any difference, c) the host machine is a raspberry pi 2 running raspbian.
Here are the 2 console logs with some paths edited out: first is the nonworking log and the second is the working.
Haskell language support disabled
D language support disabled
Rust language support disabled
make -C c-preload
make[1]: Entering directory '/----/gcc-explorer/c-preload'
make[1]: Nothing to be done for 'all'.
make[1]: Leaving directory '/----/gcc-explorer/c-preload'
/usr/local/bin/node ./node_modules/.bin/supervisor -w app.js,lib,etc/config -e 'js|node|properties' --exec /usr/local/bin/node -- ./app.js --language C++
Running node-supervisor with
program './app.js --language C++'
--watch 'app.js,lib,etc/config'
--extensions 'js|node|properties'
--exec '/usr/local/bin/node'
Starting child process with '/usr/local/bin/node ./app.js --language C++'
Watching directory '/----/gcc-explorer/app.js' for changes.
Press rs for restarting the process.
Watching directory '/----/gcc-explorer/lib' for changes.
Press rs for restarting the process.
Watching directory '/----/gcc-explorer/etc/config' for changes.
Press rs for restarting the process.
info: properties hierarchy: defaults, dev, C++, dev.linux, linux, chinny, local
info: Reading properties from ./etc/config with hierarchy defaults,dev,c++,dev.linux,linux,chinny,local
info: Multiarch: arm-linux-gnueabihf
info: Cleaning temp dirs every 600 secs
info: Found compiler id=m68k-ataribrown-elf-gcc, exe=m68k-ataribrown-elf-gcc, name=m68k-ataribrown-elf-gcc, alias=undefined, options=, versionFlag=undefined, versionRe=undefined, compilerType=, demangler=m68k-ataribrown-elf-c++filt, objdumper=m68k-ataribrown-elf-objdump, intelAsm=, needsMulti=true, supportsBinary=true, supportsExecute=false, postProcess=[]
info: Found compiler id=m68k-ataribrown-elf-g++, exe=m68k-ataribrown-elf-g++, name=m68k-ataribrown-elf-g++, alias=undefined, options=, versionFlag=undefined, versionRe=undefined, compilerType=, demangler=m68k-ataribrown-elf-c++filt, objdumper=m68k-ataribrown-elf-objdump, intelAsm=, needsMulti=true, supportsBinary=true, supportsExecute=false, postProcess=[]
info: Found compiler id=m68k-atari-mint-gcc, exe=m68k-atari-mint-gcc, name=m68k-atari-mint-gcc, alias=undefined, options=, versionFlag=undefined, versionRe=undefined, compilerType=, demangler=m68k-ataribrown-elf-c++filt, objdumper=m68k-ataribrown-elf-objdump, intelAsm=, needsMulti=true, supportsBinary=true, supportsExecute=false, postProcess=[]
info: Found compiler id=m68k-atari-mint-g++, exe=m68k-atari-mint-g++, name=m68k-atari-mint-g++, alias=undefined, options=, versionFlag=undefined, versionRe=undefined, compilerType=, demangler=m68k-ataribrown-elf-c++filt, objdumper=m68k-ataribrown-elf-objdump, intelAsm=, needsMulti=true, supportsBinary=true, supportsExecute=false, postProcess=[]
info: Found compiler id=m68k-ataripeylow-mint-gcc, exe=m68k-ataripeylow-mint-gcc, name=m68k-ataripeylow-mint-gcc, alias=undefined, options=, versionFlag=undefined, versionRe=undefined, compilerType=, demangler=m68k-ataribrown-elf-c++filt, objdumper=m68k-ataribrown-elf-objdump, intelAsm=, needsMulti=true, supportsBinary=true, supportsExecute=false, postProcess=[]
info: Found compiler id=m68k-ataripeylow-mint-g++, exe=m68k-ataripeylow-mint-g++, name=m68k-ataripeylow-mint-g++, alias=undefined, options=, versionFlag=undefined, versionRe=undefined, compilerType=, demangler=m68k-ataribrown-elf-c++filt, objdumper=m68k-ataribrown-elf-objdump, intelAsm=, needsMulti=true, supportsBinary=true, supportsExecute=false, postProcess=[]
info: Found compiler id=m68k-ataribrowner-elf-gcc, exe=m68k-ataribrowner-elf-gcc, name=m68k-ataribrowner-elf-gcc, alias=undefined, options=, versionFlag=undefined, versionRe=undefined, compilerType=, demangler=m68k-ataribrown-elf-c++filt, objdumper=m68k-ataribrown-elf-objdump, intelAsm=, needsMulti=true, supportsBinary=true, supportsExecute=false, postProcess=[]
info: Found compiler id=m68k-ataribrowner-elf-g++, exe=m68k-ataribrowner-elf-g++, name=m68k-ataribrowner-elf-g++, alias=undefined, options=, versionFlag=undefined, versionRe=undefined, compilerType=, demangler=m68k-ataribrown-elf-c++filt, objdumper=m68k-ataribrown-elf-objdump, intelAsm=, needsMulti=true, supportsBinary=true, supportsExecute=false, postProcess=[]
info: Found compiler id=m68k-ataribrownish-elf-gcc, exe=m68k-ataribrownish-elf-gcc, name=m68k-ataribrownish-elf-gcc, alias=undefined, options=, versionFlag=undefined, versionRe=undefined, compilerType=, demangler=m68k-ataribrown-elf-c++filt, objdumper=m68k-ataribrown-elf-objdump, intelAsm=, needsMulti=true, supportsBinary=true, supportsExecute=false, postProcess=[]
info: Found compiler id=m68k-ataribrownish-elf-g++, exe=m68k-ataribrownish-elf-g++, name=m68k-ataribrownish-elf-g++, alias=undefined, options=, versionFlag=undefined, versionRe=undefined, compilerType=, demangler=m68k-ataribrown-elf-c++filt, objdumper=m68k-ataribrown-elf-objdump, intelAsm=, needsMulti=true, supportsBinary=true, supportsExecute=false, postProcess=[]
info: Loading compiler from ./compilers/default
warn: Unable to stat compiler binary Error: ENOENT: no such file or directory, stat 'm68k-ataribrown-elf-gcc'
warn: Unable to stat compiler binary Error: ENOENT: no such file or directory, stat 'm68k-ataribrown-elf-g++'
warn: Unable to stat compiler binary Error: ENOENT: no such file or directory, stat 'm68k-atari-mint-gcc'
warn: Unable to stat compiler binary Error: ENOENT: no such file or directory, stat 'm68k-atari-mint-g++'
warn: Unable to stat compiler binary Error: ENOENT: no such file or directory, stat 'm68k-ataripeylow-mint-gcc'
warn: Unable to stat compiler binary Error: ENOENT: no such file or directory, stat 'm68k-ataripeylow-mint-g++'
warn: Unable to stat compiler binary Error: ENOENT: no such file or directory, stat 'm68k-ataribrowner-elf-gcc'
warn: Unable to stat compiler binary Error: ENOENT: no such file or directory, stat 'm68k-ataribrowner-elf-g++'
warn: Unable to stat compiler binary Error: ENOENT: no such file or directory, stat 'm68k-ataribrownish-elf-gcc'
warn: Unable to stat compiler binary Error: ENOENT: no such file or directory, stat 'm68k-ataribrownish-elf-g++'
info: Compilers:
error: #### No compilers found: no compilation will be done!
info: =======================================
info: Listening on http://----/
info:   serving static files from 'static'
info:   git release 766b330ee46d763c4a06e2ec17490a178cd20949
info: =======================================
Haskell language support disabled
D language support disabled
Rust language support disabled
make -C c-preload
make[1]: Entering directory '/----/gcc-explorer/c-preload'
make[1]: Nothing to be done for 'all'.
make[1]: Leaving directory '/----/gcc-explorer/c-preload'
/usr/local/bin/node ./node_modules/.bin/supervisor -w app.js,lib,etc/config -e 'js|node|properties' --exec /usr/local/bin/node -- ./app.js --language C++
Running node-supervisor with
program './app.js --language C++'
--watch 'app.js,lib,etc/config'
--extensions 'js|node|properties'
--exec '/usr/local/bin/node'
Starting child process with '/usr/local/bin/node ./app.js --language C++'
Watching directory '/----/gcc-explorer/app.js' for changes.
Press rs for restarting the process.
Watching directory '/----/gcc-explorer/lib' for changes.
Press rs for restarting the process.
Watching directory '/----/gcc-explorer/etc/config' for changes.
Press rs for restarting the process.
info: properties hierarchy: defaults, dev, C++, dev.linux, linux, chinny, local
info: Reading properties from ./etc/config with hierarchy defaults,dev,c++,dev.linux,linux,chinny,local
info: Multiarch: arm-linux-gnueabihf
info: Cleaning temp dirs every 600 secs
info: Found compiler id=m68k-ataribrown-elf-gcc, exe=m68k-ataribrown-elf-gcc, name=m68k-ataribrown-elf-gcc, alias=undefined, options=, versionFlag=undefined, versionRe=undefined, compilerType=, demangler=m68k-ataribrown-elf-c++filt, objdumper=m68k-ataribrown-elf-objdump, intelAsm=, needsMulti=true, supportsBinary=true, supportsExecute=false, postProcess=[]
info: Found compiler id=m68k-ataribrown-elf-g++, exe=m68k-ataribrown-elf-g++, name=m68k-ataribrown-elf-g++, alias=undefined, options=, versionFlag=undefined, versionRe=undefined, compilerType=, demangler=m68k-ataribrown-elf-c++filt, objdumper=m68k-ataribrown-elf-objdump, intelAsm=, needsMulti=true, supportsBinary=true, supportsExecute=false, postProcess=[]
info: Found compiler id=m68k-atari-mint-gcc, exe=m68k-atari-mint-gcc, name=m68k-atari-mint-gcc, alias=undefined, options=, versionFlag=undefined, versionRe=undefined, compilerType=, demangler=m68k-ataribrown-elf-c++filt, objdumper=m68k-ataribrown-elf-objdump, intelAsm=, needsMulti=true, supportsBinary=true, supportsExecute=false, postProcess=[]
info: Found compiler id=m68k-atari-mint-g++, exe=m68k-atari-mint-g++, name=m68k-atari-mint-g++, alias=undefined, options=, versionFlag=undefined, versionRe=undefined, compilerType=, demangler=m68k-ataribrown-elf-c++filt, objdumper=m68k-ataribrown-elf-objdump, intelAsm=, needsMulti=true, supportsBinary=true, supportsExecute=false, postProcess=[]
info: Found compiler id=m68k-ataripeylow-mint-gcc, exe=m68k-ataripeylow-mint-gcc, name=m68k-ataripeylow-mint-gcc, alias=undefined, options=, versionFlag=undefined, versionRe=undefined, compilerType=, demangler=m68k-ataribrown-elf-c++filt, objdumper=m68k-ataribrown-elf-objdump, intelAsm=, needsMulti=true, supportsBinary=true, supportsExecute=false, postProcess=[]
info: Found compiler id=m68k-ataripeylow-mint-g++, exe=m68k-ataripeylow-mint-g++, name=m68k-ataripeylow-mint-g++, alias=undefined, options=, versionFlag=undefined, versionRe=undefined, compilerType=, demangler=m68k-ataribrown-elf-c++filt, objdumper=m68k-ataribrown-elf-objdump, intelAsm=, needsMulti=true, supportsBinary=true, supportsExecute=false, postProcess=[]
info: Found compiler id=m68k-ataribrowner-elf-gcc, exe=m68k-ataribrowner-elf-gcc, name=m68k-ataribrowner-elf-gcc, alias=undefined, options=, versionFlag=undefined, versionRe=undefined, compilerType=, demangler=m68k-ataribrown-elf-c++filt, objdumper=m68k-ataribrown-elf-objdump, intelAsm=, needsMulti=true, supportsBinary=true, supportsExecute=false, postProcess=[]
info: Found compiler id=m68k-ataribrowner-elf-g++, exe=m68k-ataribrowner-elf-g++, name=m68k-ataribrowner-elf-g++, alias=undefined, options=, versionFlag=undefined, versionRe=undefined, compilerType=, demangler=m68k-ataribrown-elf-c++filt, objdumper=m68k-ataribrown-elf-objdump, intelAsm=, needsMulti=true, supportsBinary=true, supportsExecute=false, postProcess=[]
info: Found compiler id=m68k-ataribrownish-elf-gcc, exe=m68k-ataribrownish-elf-gcc, name=m68k-ataribrownish-elf-gcc, alias=undefined, options=, versionFlag=undefined, versionRe=undefined, compilerType=, demangler=m68k-ataribrown-elf-c++filt, objdumper=m68k-ataribrown-elf-objdump, intelAsm=, needsMulti=true, supportsBinary=true, supportsExecute=false, postProcess=[]
info: Found compiler id=m68k-ataribrownish-elf-g++, exe=m68k-ataribrownish-elf-g++, name=m68k-ataribrownish-elf-g++, alias=undefined, options=, versionFlag=undefined, versionRe=undefined, compilerType=, demangler=m68k-ataribrown-elf-c++filt, objdumper=m68k-ataribrown-elf-objdump, intelAsm=, needsMulti=true, supportsBinary=true, supportsExecute=false, postProcess=[]
info: Loading compiler from ./compilers/default
info: Gathering version information on m68k-ataribrown-elf-gcc
info: Gathering version information on m68k-ataribrown-elf-g++
info: Gathering version information on m68k-atari-mint-gcc
info: Gathering version information on m68k-atari-mint-g++
info: Gathering version information on m68k-ataripeylow-mint-gcc
info: Gathering version information on m68k-ataripeylow-mint-g++
info: Gathering version information on m68k-ataribrowner-elf-gcc
info: Gathering version information on m68k-ataribrowner-elf-g++
info: Gathering version information on m68k-ataribrownish-elf-gcc
info: Gathering version information on m68k-ataribrownish-elf-g++
info: m68k-ataribrownish-elf-g++ is version 'm68k-ataribrownish-elf-g++ (GCC) 5.4.0'
info: m68k-ataribrownish-elf-gcc is version 'm68k-ataribrownish-elf-gcc (GCC) 5.4.0'
info: m68k-ataribrowner-elf-g++ is version 'm68k-ataribrowner-elf-g++ (GCC) 7.1.0'
info: m68k-ataribrowner-elf-gcc is version 'm68k-ataribrowner-elf-gcc (GCC) 7.1.0'
info: m68k-ataripeylow-mint-g++ is version 'm68k-ataripeylow-mint-g++ (GCC) 4.6.4 (MiNT 20130415)'
info: m68k-ataripeylow-mint-gcc is version 'm68k-ataripeylow-mint-gcc (GCC) 4.6.4 (MiNT 20130415)'
info: m68k-atari-mint-g++ is version 'm68k-atari-mint-g++ (GCC) 4.6.4 (MiNT 20130415)'
info: m68k-atari-mint-gcc is version 'm68k-atari-mint-gcc (GCC) 4.6.4 (MiNT 20130415)'
info: m68k-ataribrown-elf-g++ is version 'm68k-ataribrown-elf-g++ (GCC) 6.2.0'
info: m68k-ataribrown-elf-gcc is version 'm68k-ataribrown-elf-gcc (GCC) 6.2.0'
info: Compilers: id=m68k-atari-mint-g++, exe=m68k-atari-mint-g++, name=m68k-atari-mint-g++, alias=undefined, options=, versionFlag=undefined, versionRe=undefined, compilerType=, demangler=m68k-ataribrown-elf-c++filt, objdumper=m68k-ataribrown-elf-objdump, intelAsm=, needsMulti=true, supportsBinary=true, supportsExecute=false, postProcess=[], supportsIntel=false, version=m68k-atari-mint-g++ (GCC) 4.6.4 (MiNT 20130415), id=m68k-atari-mint-gcc, exe=m68k-atari-mint-gcc, name=m68k-atari-mint-gcc, alias=undefined, options=, versionFlag=undefined, versionRe=undefined, compilerType=, demangler=m68k-ataribrown-elf-c++filt, objdumper=m68k-ataribrown-elf-objdump, intelAsm=, needsMulti=true, supportsBinary=true, supportsExecute=false, postProcess=[], supportsIntel=false, version=m68k-atari-mint-gcc (GCC) 4.6.4 (MiNT 20130415), id=m68k-ataribrown-elf-g++, exe=m68k-ataribrown-elf-g++, name=m68k-ataribrown-elf-g++, alias=undefined, options=, versionFlag=undefined, versionRe=undefined, compilerType=, demangler=m68k-ataribrown-elf-c++filt, objdumper=m68k-ataribrown-elf-objdump, intelAsm=, needsMulti=true, supportsBinary=true, supportsExecute=false, postProcess=[], supportsIntel=false, version=m68k-ataribrown-elf-g++ (GCC) 6.2.0, id=m68k-ataribrown-elf-gcc, exe=m68k-ataribrown-elf-gcc, name=m68k-ataribrown-elf-gcc, alias=undefined, options=, versionFlag=undefined, versionRe=undefined, compilerType=, demangler=m68k-ataribrown-elf-c++filt, objdumper=m68k-ataribrown-elf-objdump, intelAsm=, needsMulti=true, supportsBinary=true, supportsExecute=false, postProcess=[], supportsIntel=false, version=m68k-ataribrown-elf-gcc (GCC) 6.2.0, id=m68k-ataribrowner-elf-g++, exe=m68k-ataribrowner-elf-g++, name=m68k-ataribrowner-elf-g++, alias=undefined, options=, versionFlag=undefined, versionRe=undefined, compilerType=, demangler=m68k-ataribrown-elf-c++filt, objdumper=m68k-ataribrown-elf-objdump, intelAsm=, needsMulti=true, supportsBinary=true, supportsExecute=false, postProcess=[], supportsIntel=false, version=m68k-ataribrowner-elf-g++ (GCC) 7.1.0, id=m68k-ataribrowner-elf-gcc, exe=m68k-ataribrowner-elf-gcc, name=m68k-ataribrowner-elf-gcc, alias=undefined, options=, versionFlag=undefined, versionRe=undefined, compilerType=, demangler=m68k-ataribrown-elf-c++filt, objdumper=m68k-ataribrown-elf-objdump, intelAsm=, needsMulti=true, supportsBinary=true, supportsExecute=false, postProcess=[], supportsIntel=false, version=m68k-ataribrowner-elf-gcc (GCC) 7.1.0, id=m68k-ataribrownish-elf-g++, exe=m68k-ataribrownish-elf-g++, name=m68k-ataribrownish-elf-g++, alias=undefined, options=, versionFlag=undefined, versionRe=undefined, compilerType=, demangler=m68k-ataribrown-elf-c++filt, objdumper=m68k-ataribrown-elf-objdump, intelAsm=, needsMulti=true, supportsBinary=true, supportsExecute=false, postProcess=[], supportsIntel=false, version=m68k-ataribrownish-elf-g++ (GCC) 5.4.0, id=m68k-ataribrownish-elf-gcc, exe=m68k-ataribrownish-elf-gcc, name=m68k-ataribrownish-elf-gcc, alias=undefined, options=, versionFlag=undefined, versionRe=undefined, compilerType=, demangler=m68k-ataribrown-elf-c++filt, objdumper=m68k-ataribrown-elf-objdump, intelAsm=, needsMulti=true, supportsBinary=true, supportsExecute=false, postProcess=[], supportsIntel=false, version=m68k-ataribrownish-elf-gcc (GCC) 5.4.0, id=m68k-ataripeylow-mint-g++, exe=m68k-ataripeylow-mint-g++, name=m68k-ataripeylow-mint-g++, alias=undefined, options=, versionFlag=undefined, versionRe=undefined, compilerType=, demangler=m68k-ataribrown-elf-c++filt, objdumper=m68k-ataribrown-elf-objdump, intelAsm=, needsMulti=true, supportsBinary=true, supportsExecute=false, postProcess=[], supportsIntel=false, version=m68k-ataripeylow-mint-g++ (GCC) 4.6.4 (MiNT 20130415), id=m68k-ataripeylow-mint-gcc, exe=m68k-ataripeylow-mint-gcc, name=m68k-ataripeylow-mint-gcc, alias=undefined, options=, versionFlag=undefined, versionRe=undefined, compilerType=, demangler=m68k-ataribrown-elf-c++filt, objdumper=m68k-ataribrown-elf-objdump, intelAsm=, needsMulti=true, supportsBinary=true, supportsExecute=false, postProcess=[], supportsIntel=false, version=m68k-ataripeylow-mint-gcc (GCC) 4.6.4 (MiNT 20130415)
info: =======================================
info: Listening on http://----/
info:   serving static files from 'static'
info:   git release 831f5217ffae28f957191435f719b809a5ec0d9a
info: =======================================

I think I see what's going on. I now try and get the modification time of the compiler so I can tell if it gets updated (which only happens on CE's main website). This uses stat to find the files.
However, the stat call doesn't search PATH, unlike the exec calls....so, the stat fails for a non-fully-qualified path.
I'll fix this, but as a workaround try editing your properties to specify a full path to the compilers.

Hi,
I tried your suggestion and hardcoded the paths of the compilers in etc/config/c++.defaults/properites. Now it started up fine and seems to have got info out of the compilers. However, when I try to compile something I get <Remote compilation failed: Not Found> in the compiler window and Compiler exited with result code -1 in the compiler output window.

Very odd, I just checked in a "real" fix too (tested locally).
Can you try your current version with make EXTRA_ARGS="--debug" and see if there's anything useful in the debug information? I'd like to work out what's going on here.

Sorry, I meant to edit the post above but I deleted it :/
Will try make clean then make and let you know.

Thanks: there's nothing really to make clean -- although the target exists it really only forces a refresh of dependencies (which haven't changed). By all means do it but note that if a make clean ever fixes anything I will treat that as a high-priority bug. I never do it myself :)

Hi again,
I ran it with --debug but I can't see any weird messages. But after starting I was monitoring the log and noticed that when trying to compile something I got messages like
info: <IP_ADDRESS> - - [30/Jul/2017:15:08:27 +0000] "POST /api/compiler/usr/bin/m68k-ataribrown-elf-g++/compile HTTP/1.0" 404 66 "http://brownbot.hopto.org/" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.90 Safari/537.36 Vivaldi/1.91.867.38"
that 404 seems alarming there - perhaps that's the problem?

Ah, yes. I see the issue. So; there are two ways to define compilers: by executable (the old way) or by name (the new way). The old way doesn't support having paths in, as the API address will be wrong (containing the path of the compiler and not escaped).
The solution is either to move to the new style, or to apply the fix (in the change applied above) and then go back to unqualified names.
To go to the new style, make your compilers list refer to abstract IDs, and then for ID do:
compiler.ID.name=Some nice name here
compiler.ID.exe=/path/to/exe

See, for example, the c++.amazon.properties file which has a lot of examples. Sorry it's not at all clear; the configuration remains the wartiest part of CE.
Let me know how you get on!

First of all, thanks a lot for all the prompt replies - appreciated!
I used the new format and all seems to be fine now, so thanks for that too :)
Before I forget: make clean && make did not make any difference - hope I didn't make you paranoid there - I just thought of trying it out of reflex!

Fantastic! Glad it's working :) phew!
Also thanks for the headup on make clean etc - good to know!


Unwanted output sub directory

Context :

gulp-typesrcipt : 3.1.3 (last version)
typescript : 2.0.10
Visual Studio 2015
Windows 7 64 bits

I have an unwanted sub directory in my destination folder.
Here is the structure of my project, with source and output :

Important points are :

my gulp file is at the root of the project
I have a ts directory containing my tsconfig file and a sub directory app containing ts files
the build output is the wwwroot/js directory

So my gulp file and tsconfig file are not in the same directory (I can not move the tsconfig file at the project root, else intellisense does not work in visual studio)
I want that the compiled app.js file be created in the wwwroot/js directory not in the wwwroot/js/ts directory.
Here is my gulpfile
var tsProject = ts.createProject('ts/tsconfig.json', { rootDir: "app", outFile: 'app.js' });
gulp.task("ts", function () {
  return tsProject
     .src()
     .pipe(tsProject())
     .js
     .pipe(gulp.dest("./wwwroot/js/"));
});

My tsconfig
{
  "compilerOptions": {
    "target": "es5",
    "module": "system",
    "moduleResolution": "node",
    "experimentalDecorators": true,
    "noImplicitAny": false,
    "noEmitOnError": true,
    "sourceMap": true,
    "removeComments": false,
    "emitDecoratorMetadata": true
  },
  "exclude": [
    "../node_modules",
    "../wwwroot"
  ]
}

Thanks for reporting, there appears to be a problem with outFile when the tsconfig file is in a subdirectory. I'll take a proper look at it soon.

Thanks to confirm that it is a bug. I was not sure.
I took a look at source code, and I think that the problem is in the compiler.js file. In the emitFile function, from line 96, a relative base file name is calculated between the locations of the gulpfile and of the tsconfig file. It does not seem relevant.
 if (file) {
            base = file.gulp.base;
            if (this.project.options.outDir) {
                var baseRelative = path.relative(this.project.options.rootDir, base);
                base = path.join(this.project.options.outDir, baseRelative);
            }
            baseDeclarations = base;
            if (this.project.options.declarationDir) {
                var baseRelative = path.relative(this.project.options.rootDir, file.gulp.base);
                baseDeclarations = path.join(this.project.options.declarationDir, baseRelative);
            }
}

This is a braking change. What is more important gulp-typescript is not compatible with tsc anymore.
Is it possible to specify "outFile" in tsconfig and expect that both gulp-typescript and tsc -p  will compile the project to the same folder?

@lujcon See #480. The new version has the desired behaviour, the old version had wrong behaviour as described in #480. Do you have a setup similar to that issue?

If I was aware that this would be a breaking change I would have done this in a major release, but I hadn't thought of a configuration like #480. However, when you dive into it it's clear to see that the old behaviour was a bug. (I actually find it strange that it was working..) So I think it's better to leave it this way.


New release due to CVE-2024-24790

We get a lot of security scan warnings due tu CVE-2024-24790.
This security issue is fixed with go 1.22.4 or higher but the current version of jfrog-cli is compiled with 1.22.3.
Are there any plans to soon release a new version with go 1.22.4 or higher?

@Roemer
JFrog CLI 2.62.0 has been released, now using Go 1.22.5. Please let us know if you need anything else.


Release 0.16.0

I think it's time for a new release. We have a new feature (reading only specific streams) and important fixes. I can do the release, but let me know if there's something stopping us. @cboulay @tstenner

I’d like to re add the ‘verbose’ argument.
Internet is temporarily down chez moi and I should go to bed. I can elaborate tomorrow.

Let's get #41 sorted before we make a new release.

Are we ready for the release? @cboulay do you want to do it or should I?

Please go ahead. Btw, I don’t think you need to do a pr for change log edits.


fix: Make extent/size of floating windows clearer

This is what it looks like with my change:
border: "none"

border: "single"

border: "double"

border: "rounded"

border: "solid"

border: "shadow"

Custom border - the way I think Neovim should be by default for the single/double/rounded borders above

telescope

I'll post screenshots without my change next.

This is what it looks like without the change:
border: "none" - no change

border: "single" - improvement as you can now see correct size of floating window

border: "double" - improvement as you can now see correct size of floating window

border: "rounded" - improvement as you can now see correct size of floating window

border: "solid" - improvement as you can now see correct size of floating window, really bad looking without the change

border: "shadow" - no change

Custom border - improvement, clearer definition of floating window

telescope - no change

Appreciate all the before/after screenshots as well as you changing the PR to work with the latest update :)


Publish to brew

https://github.com/simonw/til/blob/main/homebrew/packaging-python-cli-for-homebrew.md

Done in 0.4.5 (8732298c0534d09a55aaa9b37e34fd873abe6a37)


is the ignoreStylePathNotFound logic reversed?

https://github.com/onebay/vite-plugin-imp/blob/main/src/shared.ts#L100
Why when "ignore", then check if path exist?

ignoreStylePathNotFound = true (default is true in vite serve)
vite-plugin-imp will get a warn message when the style path is not found, and return '', this will avoid error accur.
developer should according to  warn message, adjust the style method to return the right style path.
ignoreStylePathNotFound = false
when the style path is not found, it will not check whether style is exist and  return import ${stylePath}, and you will get error like *** MODULE_NOT_FOUND .

understood, thanks!

currently is that in yarn workspaces:
require(stylePath) can not find the file, will warn "xxx is not found!"
import ${stylePath}`` is fine.

pelease provide a minimal repo or an online link(codesandbox/stackblitz) to reproduce the issue.