[SLF4J-548] Fix ServiceLoader usage in servlet environment

If both the servlet container and a web application use SLF4J,
ServiceLoader calls are susceptible to three problems:

The SLF4J copy in the webapp detects the common providers by can not
instantiate them (they implement a different copy of
SLF4JProviderService),
The SLF4J copy in the common classloader can bind the providers in
the webapp classloader and cause a memory leak,
If the server uses a SecurityManager the static initialization of
LoggerFactory fails if called by unprivileged code.

This PR should solve these problems.

SLF4J-568

@ceki,
I believe this PR addresses the concerns of the open Jira issue SLF4J-548.

@ppkarwasz  SLF4J-568 is a copy-and-paste of this PR. So yes, this PR and SLF4J-568 are related.

@ppkarwasz Indeed, thank you.

@ceki Could you check this, please? We have issues to adopt SLF4J 2 in WildFly-Core downstream. The service load based on TCCL is a mess. @ppkarwasz solution solved it for log4j2 API service load of the corresponding impl.
It would be great to get minor release for it.

@boris-unckel  Do you have a description of the problem you are facing? Or a reference to the original problem?

@ceki,
The patch also calls ServiceLoader.load with a classloader parameter (the classloader that loaded SLF4J), so it doesn't use the TCCL.
It's basically a simplified version of ServiceLoaderUtil in log4j-api, which is used by other modules, so it has to deal with caller sensitivity problems. ServiceLoaderUtil also deals with OSGI directly, whereas SLF4J requires a Service Loader Mediator (Apache Aries) to be present in the OSGI container.

Hello @ceki ,
steps to reproduce:
General: setup latest Maven and a Java 11 environment

clone and build https://github.com/boris-unckel/slf4j-jboss-logmanager/tree/JBLOGGING-165_upgrade_slf4j2 with
mvn clean install
git clone https://github.com/wildfly/wildfly-core.git
2a) optional run to proove everything is OK with WF-Core before:
mvn clean install -Dsecurity.manager -DallTests -Dmaven.test.failure.ignore=true >../buildlog.txt 2>&1
upgrade pom.xml line 246 (version.org.jboss.slf4j.slf4j-jboss-logmanager) to 1.2.1.Final-SNAPSHOT ( https://github.com/wildfly/wildfly-core/blob/main/pom.xml#L246 )
upgrade pom.xml line 256 (version.org.slf4j) to 2.0.2  ( https://github.com/wildfly/wildfly-core/blob/main/pom.xml#L256 )
upgrade testsuite/embedded/pom.xml line (version.ch.qos.logback) to 1.4.1 ( https://github.com/wildfly/wildfly-core/blob/main/testsuite/embedded/pom.xml#L41 )
mvn clean install -Dsecurity.manager -DallTests -Dmaven.test.failure.ignore=true >../buildlog.txt 2>&1

The issues occur without SecurityManager, too. To check simply remove -Dsecurity.manager.
I thought I could develop a workaround, initializing slf4j early in the log subsystem:
https://github.com/boris-unckel/wildfly-core/tree/upgrade_slf4j2_showcase
but it fails for the embedded server edition and breaks existing usecases. The second downside is the increase of dependencies and length of startup.
Kind regards
Boris

@boris-unckel Thanks for the information. I am quite swamped at the moment. I'll deal with this when I can, but it make take a few days.

@ceki Hope you're fine. Any updates on this one?

@ceki Hope you're fine. Any updates on this one?

Hi @boris-unckel, I am sorry for not having attended to this PR. It is at the top of my SLF4J todo list. I expect to start working on SLF4J on the week of Monday 14th and there should be a new release before the end of November.
If you wish things to go a little faster, there is also the option of championing a release.

@boris-unckel  Can you please check if release 2.0.4 solves the issue for you?
Here is a quote from the release notes:

LoggerFactory now uses the class loader that loaded LoggerFactory class itself to find providers of type SLF4JServiceProvider. Previously, the thread context class loader was used. This was unintentional and the current  behavior more closely matches that of the SLF4J 1.7 series and earlier. This tentatively fixes SLF4J-544  as well as several other related/duplicating issues.

Hello @ceki @ppkarwasz
I have tested it with WildFly-Core and 2.0.4 still has issues. I have ported the ServiceLoaderUtil from Log4j2 and it works immediately. This is the showcase[1]:
https://github.com/boris-unckel/slf4j/tree/serviceloader

The requirement is to have the API provided by the server, and the implementation by one of the deployed applications.
The service load must work with Security Manager activated, as we still support Java11+
The server module (API) is known by the deployed application, but the server module(API) does not have a relationship (for example a parent classloader) to the application.

The WildFly-Core integrated version of it is here:
https://github.com/boris-unckel/wildfly-core/tree/upgrade_slf4j2_showcase2
[1] The showcase contains copies of code from log4j2. The commit message shows source URLs.

@ceki @ppkarwasz  thanks for your fast reply

@boris-unckel Can you please clarify whether slf4j-api version 1.7.x works for WildFly-Core?

Yes, sure: It's used in the current production version https://github.com/wildfly/wildfly-core/blob/19.0.0.Final/pom.xml#L257 you can download it here: https://www.wildfly.org/downloads/
It's also a implicit module: https://docs.wildfly.org/27/Developer_Guide.html#how-and-when-is-an-implicit-module-dependency-added

@boris-unckel  Slf4j's LoggerFactory in both version 1.7.x and version 2.0.4 (but not 2.0.3) use the same class loader, i.e. the class loader that loaded the  LoggerFactory class to look for the logging implementation. Thus, why would 1.7.36 work in a given context, in this case WildFly, and 2.0.4 fail in the same context?

Update:  setting pom entries to use slf4j 2.0.4 and logback 1.4.5, the following commands complete successfully.
cd wildcore-core
mvn clean
mvn install -Dmaven.test.skip=true
cd testsuite/embedded/
mvn install

@ceki Thanks for checking it. Please don't -Dmaven.test.skip=true but mvn clean install -Dsecurity.manager -DallTests -Dmaven.test.failure.ignore=true >../buildlog.txt 2>&1 The logging subsystem has tests, there are integration tests and some tests are embedded and CLI client relevant, where logging is needed.
It's late today, I'm posting a gist with the result tomorrow, hopefully morning.

@boris-unckel  I have rerun the tests. I am seeing that  Slf4jLoggingProfilesTestCase.testProfiles is failing. The strange part is that it looks like Slf4jServiceActivator is not being called at all.

@boris-unckel Slf4j's LoggerFactory in both version 1.7.x and version 2.0.4 (but not 2.0.3) use the same class loader, i.e. the class loader that loaded the LoggerFactory class to look for the logging implementation. Thus, why would 1.7.36 work in a given context, in this case WildFly, and 2.0.4 fail in the same context?

@ceki Good morning, including the SecurityManager (why do you run without?) it seems down to last one error. It's not about the classloader, you're correct for this part.
* [ERROR] Failures:
* [ERROR]   Slf4jLoggingProfilesTestCase.testDeploymentConfigurationResource:29->AbstractLoggingProfilesTestCase.testDeploymentConfigurationResource:301->AbstractLoggingProfilesTe* stCase.deploy:321->AbstractLoggingProfilesTestCase.deploy:332->AbstractLoggingTestCase.deploy:210 Failed to deploy logging1.jar: 10 assets: {"WFLYCTL0080: Failed services" => {"* jboss.deployment.unit.\"logging1.jar\".INSTALL" => "WFLYSRV0153: Failed to process phase INSTALL of deployment \"logging1.jar\"
      Caused by: java.util.ServiceConfigurationError: org.jboss.msc.service.ServiceActivator: Provider org.jboss.as.test.integration.logging.profiles.Slf4jServiceActivator could n  ot be instantiated
      Caused by: java.lang.ExceptionInInitializerError
      Caused by: java.lang.IllegalStateException: org.slf4j.LoggerFactory in failed state. Original exception was thrown EARLIER. See also https://www.slf4j.org/codes.html#unsucce  ssfulInit"}}
* [ERROR]   Slf4jLoggingProfilesTestCase.testProfiles:29->AbstractLoggingProfilesTestCase.testProfiles:202->AbstractLoggingProfilesTestCase.deploy:321->AbstractLoggingProfilesTest* Case.deploy:332->AbstractLoggingTestCase.deploy:210 Failed to deploy logging1.jar: 10 assets: {"WFLYCTL0080: Failed services" => {"jboss.deployment.unit.\"logging1.jar\".INSTALL* " => "WFLYSRV0153: Failed to process phase INSTALL of deployment \"logging1.jar\"
      Caused by: java.util.ServiceConfigurationError: org.jboss.msc.service.ServiceActivator: Provider org.jboss.as.test.integration.logging.profiles.Slf4jServiceActivator could n  ot be instantiated
      Caused by: java.lang.ExceptionInInitializerError
      Caused by: java.lang.IllegalStateException: Unexpected initialization failure
      Caused by: java.security.AccessControlException: WFSM000001: Permission check failed (permission \"(\"java.io.FilePermission\" \"/home/borisunckel/.m2/repository/org/jboss/s  lf4j/slf4j-jboss-logmanager/1.2.1.Final-SNAPSHOT/slf4j-jboss-logmanager-1.2.1.Final-SNAPSHOT.jar\" \"read\")\" in code source \"(vfs:/content/logging1.jar <no signer certificate  s>)\" of \"ModuleClassLoader for Module \"deployment.logging1.jar\" from Service Module Loader\")"}}

and  I assume it fails due to this change, removing the privileged action: https://github.com/qos-ch/slf4j/commit/43a36303e5a2338c22ec9aad5b01a401034eb553#diff-204f23f1c787a5f1f6162f79eae7d8694d723ef7788e23b79ed270a15c677b00L108-L111

I am seeing Slf4jLoggingProfilesTestCase.testProfiles failing. The strange part is that it looks like Slf4jServiceActivator is not being called at all.

My guess is <version.org.jboss.slf4j.slf4j-jboss-logmanager>1.2.1.Final-SNAPSHOT is Maven central/JBoss public rep based, correct? And the following PR is missing, I have tested with a locally built version: https://github.com/jboss-logging/slf4j-jboss-logmanager/pull/16
Some background information regarding the Security Manager, modules and PriviligedAction use: https://docs.wildfly.org/27/WildFly_Elytron_Security.html#Elytron_JSM_Further_Background

The version of  slf4j-jboss-logmanager I am using is from https://github.com/boris-unckel/slf4j-jboss-logmanager/
The git log command yields the following output:
Author: boris-unckel<EMAIL_ADDRESS>Date:   Fri Sep 23 17:56:20 2022 +0200

    [JBLOGGING-165] Upgrade slf4j 2.0.4

    Fixes https://issues.redhat.com/browse/JBLOGGING-165
[cut]

So it looks like I am using the same version of  slf4j-jboss-logmanager.

@ceki I have tested mvn clean install -DallTests -Dsecurity.manager -Dmaven.test.failure.ignore=true >../2022-11-23_2131.txt 2>&1 leading to the error described above: https://github.com/qos-ch/slf4j/pull/304#issuecomment-1325990974
and mvn clean install -DallTests -Dmaven.test.failure.ignore=true >../2022-11-24_1647.txt 2>&1 which runs without any error. Please turn back to the original patch https://github.com/qos-ch/slf4j/pull/304/commits/06d6c81cbcbe4a8d3844cccd09d471f95029a987

@boris-unckel  Sorry for not having been clearer earlier. I rather not change the class loader behavior of org.slf4j.LoggerFactory without very solid justification.
Given Apache (Jakarta) Commnons-Logging experience, SLF4J was created in 2005 chiefly to avoid class loading problems during logging. It does so by adopting the simplest class loading model possible. Patch 06d6c81c offers a more dynamic model, and from your previous comments, which is apparently not even needed.
As for using SecurityManager that is a different question to which I am open.

@boris-unckel Sorry for not having been clearer earlier. I rather not change the class loading behavior of org.slf4j.LoggerFactory without very solid justification.

@ceki, the following code does not change the class loading behavior: since the action lambda was created by LoggerFactory, running action is equivalent to calling the function directly. The SecurityManager part is required by WildFly, because the code that initiates SLF4J is not privileged enough to access Logback, while slf4j-api is.
final ClassLoader cl = LoggerFactory.class.getClassLoader();
final PrivilegedAction<ServiceLoader<SLF4JServiceProvider>> action = () -> ServiceLoader.load(SLF4JServiceProvider.class, cl);
final ServiceLoader<SLF4JServiceProvider> serviceLoader = System.getSecurityManager() != null
    ? AccessController.doPrivileged(action)
     : action.run();

I am far from being an expert on SecurityManager, but I believe that Boris known what he is doing.

@ceki Yes, sure. It was meant only regarding the Security Manager, the ClassLoading works as the tests have shown.
@ppkarwasz thanks for the snipplet

Cool. We are all in agreement then.

@ceki Just to be sure: You're preparing the fix? Or do you expect a PR?

I am preparing a fix.

Thanks to you both for all your support.

@boris-unckel  Can you please verify that 3bc58f3e81cf committed a few moments ago works?

@ceki Thanks, I have prepared a local snapshot build and the test is running right now. I'm going to give a status with the result tomorrow morning.

@ceki The test run completed successfully. Thanks for your ongoing support to get this solved.

Thanks for making the SLF4J API embeddable in a jar archive...


opentofu 1.6.0-beta5 as meta package

Updated to 1.6.0-beta5 and changed to a metapackage for opentofu.portable
Signed-off-by: Martin Nygaard Jensen<EMAIL_ADDRESS>

Thank you for your work ☺.
I've a question. Why need the opentofu choco package a dependency to the opentofu.portable?
Currently I only install opentofu. With this PR we install opentofu and opentufo.portable, but why?

Hi Christian.
The idea is to have a meta package for visibility when searching and serve as dependency point for other packages.
Once and install version of opentofunis release there will be a distinction between opentofu.portable and a new opentofu.install. Both could work as prerequisites for other packages if the metapackage is created.
https://docs.chocolatey.org/en-us/faqs#what-is-the-difference-between-packages-no-suffix-as-compared-to.install.portable
Regards,
Martin

Sorry for my questions, I'm trying to understand this. Thank yor for your patience 😇.
I just watched the explanation video: https://docs.chocolatey.org/en-us/faqs#video-explanation
In my current understanding:

This here (opentofu) is currently no metapackage.

What I think you want, is that opentufo is a metapackage and we deploy additonally a opentofu.install and your opentofu.portable.

opentufo will get the dependencies for opentofu.install and opentofu.portable.

What I still do not get (Maybe you have an example):

If I install a choco package, every dependency will be installed before choco install the package. If I have dependencies to a portable and install package, it will install both of them. I only want one of them.

I think I understand you now. The current opentofu in this package is a portable.
But should we than just remove everything for installing this portable in this package and just add the dependency?

Sorry for my questions, I'm trying to understand this. Thank yor for your patience 😇.
I just watched the explanation video: https://docs.chocolatey.org/en-us/faqs#video-explanation
In my current understanding:

This here (opentofu) is currently no metapackage.

What I think you want, is that opentufo is a metapackage and we deploy additonally a opentofu.install and your opentofu.portable.

opentufo will get the dependencies for opentofu.install and opentofu.portable.

What I still do not get (Maybe you have an example):

If I install a choco package, every dependency will be installed before choco install the package. If I have dependencies to a portable and install package, it will install both of them. I only want one of them.

Hi Christian
No worries, I will try to explain.
A good example is putty
https://community.chocolatey.org/packages/putty
You only add the one .install or .portable dependency to the meta package, which will then be the default.
In the case of Putty this is the .portable one. Due to internal logic however .install will also satisfy a dependency on "putty" from another package.
Currently there is no installer for opentofu, so there is no need for a .install package yet.
Typically the .portable package is good for executables like this that require no admin rights or installation.
Kinds regards,
Martin

That is the idea, yes. ---- On tirs.,19 dec. 2023 07:21:41 +0100  @.***  wrote ----
I think I understand you now. The current opentofu in this package is a portable.
But should we than just remove everything for installing this portable in this package and just add the dependency?
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you authored the thread.Message ID: @.***>

I think I understand you now. The current opentofu in this package is a portable.
But should we than just remove everything for installing this portable in this package and just add the dependency?

That is the idea, yes.

Updated to RC1

Can you delete the content of the tools directory?

@chrisdecker1201 Let me know if you feel anything is missing.

Yes :). The comment here : https://github.com/HomagGroup/opentofu-choco/pull/2/files

Yes :). The comment here : https://github.com/HomagGroup/opentofu-choco/pull/2/files

I don't see any comments on them. Or do you want me to add comments to the changes?

Don't you see this:

Strange that I am not seeing the comment. But I've updated it now. Had not seen you were using workflows :)


"Vendors" file folder is a empty

can not find some “*.c” file

did you clone the repo? use
git clone --recursive https://github.com/rs/SDWebImage.git


Missing textures when used with Secret Rooms Fabric mod

When I use this mod with the Secret Rooms Fabric mod, all of the textures are missing for the blocks and items in this mod.
Minecraft: 1.16.5
Fabric Loader: 0.11.2
Mod Versions:
Phonos 0.1.1 Beta (1.16.4)
Fabric API 0.31.0
Secretrooms 0.9.3

Phonos requires Artifice to work, and Secret Rooms is messing with that
seems like Artifice isn't cooperating very well with a lot of mods, might switch away from it

Issue should no longer occur in 1.17, as the mod now uses ARRP for resource generation


Use bulk delete to remove segments in Swift driver

Signed-off-by: Sylvain Baubeau<EMAIL_ADDRESS>

@gierschv :  PTAL

Looks like we would not be able to merge this PR because of merge conflicts. Please rebase, fix conflicts, and force push to your branch.

Code LGTM, I didn't tried it though.

ping @aaronlehmann

I noticed that this change causes the loop over objects to run even if bulk deletes are supported. This loop seems to do a round-trip for each object, which would make bulk deletion much slower than it was before. Is this fixing a bug in the old code, or is there some other reason?
Also, I was a bit confused by the two commits here at first. The one under my name looks very different from what it was originally, and doesn't do what the commit message says it does. I'd prefer that we merge the two PRs separately, or I can close mine in favor of yours and you can squash the commits, if that's easier.

@aaronlehmann I'm not sure to understand. In the case where bulk delete is supported, we just run a single bulk delete request. If you're talking about the loop before the actual deletion, its role is to collect all the chunks of the manifests and it already was present in the previous code.
Regarding your commit, my understanding was that the bugfix was in the lines https://github.com/aaronlehmann/distribution/blob/swift-nested-delete/registry/storage/driver/swift/swift.go#L636-L640 and that the other part of the code was code cleanup (move the code inline to a function). Am I misunderstanding ?
Otherwise, I'm perfectly fine with merging your branch, I'll rebase my code on it.

In the old code, if bulk deletion was supported, we simple called d.Conn.BulkDelete and then returned from the function in most cases (all return values except swift.Forbidden).
With this PR, the code flow continues to the loop that calls d.Conn.Object for each object. It seems like this will cause a network round trip for each object, and that surprises me, because I would think the point of bulk deletion is to avoid doing this many round trips.
I am barely familiar with Swift, so I'm not saying this is wrong, but I'd like to understand why this part is being changed. Was it a bug that the old version of the code skipped this loop when doing bulk deletes?
 The only thing I'm concerned about is that the way you've rebased my commit, it's only changing the error handling and adding the test, which is out of sync with the commit message. I don't want to merge a commit that doesn't do what the commit message says it does. If you don't mind rebasing on top of my branch, that's fine with me - or if it's easier, feel free to squash the changes into one commit.

@lebauce : can you clarify the above please?

@aaronlehmann In the new PR, there is a loop to collect the manifests (https://github.com/lebauce/distribution/blob/swift-bulk-delete-fixes/registry/storage/driver/swift/swift.go#L632-L652), that we go through whether bulk delete is used or not.
Then if bulk delete is supported, we do a single bulk delete request. In the case that request fails with an error other than Forbidden and ObjectNotFound, we just return the error. In the other case, the code flow continues, but in both cases, we do not go through the loop that calls d.Conn.Object (https://github.com/lebauce/distribution/blob/swift-bulk-delete-fixes/registry/storage/driver/swift/swift.go#L668-L677).
Am I missing something ?

@aaronlehmann When I rebased your patch, I kept the bugfix (the error handling) and the added test. I did not keep the move of code into the deleteSingleObject method however as I thought that it didn't really made sense anymore. So the original commit message is still perfectly relevant, no ?

@aaronlehmann In the new PR, there is a loop to collect the manifests (https://github.com/lebauce/distribution/blob/swift-bulk-delete-fixes/registry/storage/driver/swift/swift.go#L632-L652), that we go through whether bulk delete is used or not.

This is the loop I'm asking about. It seems to call d.Conn.Object for each object (except pseudo-directories). I'm trying to understand why this is necessary. I may be missing something, but it seems like it would make bulk deletion just as slow as serial deletion, by requiring a round-trip for each object. The old code didn't do this.

@aaronlehmann When I rebased your patch, I kept the bugfix (the error handling) and the added test. I did not keep the move of code into the deleteSingleObject method however as I thought that it didn't really made sense anymore. So the original commit message is still perfectly relevant, no ?

The original commit title is "Handle deletion of nested objects properly", and the commit message describes the situation where a directory is left over after deleting it. Your commit fixes this as well. The rebased version of my commit only makes some error handling fixes and adds a test, so I would prefer the commit message be changed to reflect this.

@aaronlehmann Sorry, I misunderstood your point. When one deletes a Dynamic Large Object that is made of many segments, only the manifest is destroyed and not the segments. That happened with the previous code.
Now it's possible to ask Swift to remove the manifest and its segments by making a DELETE request with the manifest-multipart=delete parameter. The problem is that when Swift returns a list of the objects, it doesn't say whether this object is a manifest or not. And if you pass the manifest-multipart=delete parameter and the object is not a manifest, it returns an error. So we need to make a HEAD for every file, to check if it's a manifest or not.
(The reason we don't use manifest-multipart=delete in the case where bulk delete is not supported is only because the ncw/swift library does not support passing parameters to a DELETE request yet)

OK, thanks for the explanation.
LGTM - please squash the commits though.

LGTM.  Thanks for the effort @lebauce


rice milling quality traits with unsatisfying definitions

The definitions of these terms both sound less like TOs and more like POs. Can they be rewritten as ratios/percents/yields, following these IRRI definitions?

TO:0000222

"head rice": The 3/4 or longer whole milled kernels separated from the total milled rice. Source: RiceCAP: http://www.uark.edu/ua/ricecap/glossary_ricecaplist.htm ->"head rice ratio/percent": the ratio/percent of milled rice grains that are at least 3/4 the length of a whole grain

TO:0000144

"milled rice": Rice kernels that have been milled to remove the bran, leaving "white" or milled rice. Source: RiceCAP http://www.uark.edu/ua/ricecap/glossary_ricecaplist.htm-> "milled rice yield": the weight of milled rice divided by the weight of the paddy sample
On the other hand, these are both very specific to rice, so it might make more sense to rewrite them as more general definitions

Revised these traits to be measures of grain yield, as suggested, as this fits the definitions in use better.

Thanks!


What standardization level do we want for detail pages ?

As of today, we have nothing for detail pages.
We could use a styleguide or custom components for cards, tabs, titles, etc.
The point is to decide how much we want to limit the user, or to let the user free of his or her choices.

To date, we decided to have zero standardization for detail pages.
We could create another issue wether we want to improve standardisation on those pages.


Error: no such file or directory ./bolt/packages/build-tools/node_modules/find-up

Hello! I just watched your DrupalCon Seattle presentation and wanted to checkout the design system. I immediately ran into install issues and didn't find a related ticket.

Please briefly describe the issue being encountered.

npm run setup returns error

Which components / demos / component examples / variations is this issue affecting?

Install step

Which browsers / browser versions / devices / OSs are having this particular issue?

macOS Mojave 10.14.3

Which branch(es) are seeing this issue?

master

Is this a regression? If so:

I don't think so

When applicable, please provide a screenshot showing the behavior working as expected vs the currently broken behavior being observed.

Thanks @mralexho for reaching out! We are taking a look at this and can get back to you shortly.
-Margo
Bolt Design System Product Owner

Hey thanks @mralexho!
We've been running into this same error on our end as well (we already had a ticket on our internal board to debug this). We're still not quite sure why this is happening (possibly an issue with an upstream dependency) however in our experience, re-running yarn a 2nd time almost always seems to do the trick!
(also just in case it pops up for ya, there's also been this particular Sharp error more recently popping up when the images task is first booting up. Same workaround applies (re-running the build tools) but this has been a more finicky bug to squash!)

Thanks for the quick response!
@sghoweri you were correct, running the command a 2nd time fixes the issue (not sure why I didn't just try that before). Thanks for the heads up with sharp builds 🤞

I just ran the next command npm start (twice this time) and received the following -

Let me know if you need any additional debug logs. And thanks for helping!

Sorry I'm not too sure how to handle. I applied
@nstuyvesant's https://github.com/lovell/sharp/issues/1593#issuecomment-475680243 steps for installing vips and sharp but now I'm getting these errors -

@mralexho ugh, so sorry for the rough onboarding!
Since @bolt/build-tools should be requiring address, I’m wondering if your version of yarn could be out of date or if the Sharp Mac OS workaround could have thrown something off with the install of the monorepo dependencies 🤔
Out of curiosity, could you try running npm run clean to wipe any local NPM / Composer dependencies, then try running npm run setup and npm start to see if that missing package gets correctly installed?

Hi @sghoweri, no apologies necessary at all! I'm sure you have many other things to do than debug issues.
I upgraded to yarn v1.16.0 and ran npm run clean and npm run setup but still have some dependency errors -

It looks like the same original error with the find-up module?

@sghoweri @margoromo just pulled the latest codebase and it's running now!
Can't wait to test this out with my team. Thanks! 😸


[ttx_diff] Drop kern/mark lookups in GPOS

Since these are handled by layout normalizer.
This keeps the lookup element itself as well as the 'LookupKind', but removes all other children.

The GDEF and its ItemVariationStore will still be there and may produce a ttx diff even after the GPOS kern/mark lookups have been expunged from GPOS.
GDEF VarStore holds deltas for the GDEF ligature carets and for the GPOS (and JSTF table, but he latter we never build currently in fontmake so we can expect it to not be there - unless put in place by some ad-hoc postprocess).
Does otl-normalizer support GDEF ligature carets already? If so, then if we have removed all the GPOS lookups with variations that may reference the GDEF VarStore, then we can also omit the entire GDEF VarStore and its ligature carets from the ttx diff comparison.


[ASK] Store list of object

Excuse me, how to store list of object?

Jetpack DataStore support Int, Long, Boolean, Float, Double, String  only, so you can use a custom converter like this GsonConverter.kt, convert a list of object to json string., then store and restore it.


Quiet authentication requests with different scopes might not be distinct on Accounts icon

Consider this line:
https://github.com/microsoft/vscode/blob/ce15e23a06afd39d3a3ddc06ff1e49fa91250b40/src/vs/workbench/services/authentication/browser/authenticationService.ts#L616
Suppose an extension runs this code:
  const session1 = await vscode.authentication.getSession('myProvider', ['A', 'BC'], {createIfNone: false});
  const session2 = await vscode.authentication.getSession('myProvider', ['AB', 'C'], {createIfNone: false});

The Account icon badge will report only 1 login request.
A potential solution might be to change the line to be:
   const scopesList = JSON.stringify(scopes);

verification:
Using the code above... you should get 2 logins.
Before the fix:

After:

The two quiet logins are now accessible, but the screenshot reveals another issue, which is that the menu item prompts for the two different-scopes requests are identical. I will open a separate issue for this.

/verified


Fetch Instrumentation should capture Span End timing immediately

What happened?
Steps to Reproduce

Have your app fetch a resource with a large response size to accentuate the problem. (i.e. Something several megabytes large).
Record the span for that fetch's duration.
Compare it to the fetch's actual duration in the network tab.

Expected Result
The reported duration of the span is equal to or at least trivially longer than the actual fetch duration time.
Actual Result
The reported duration of the span is non-trivially larger than the actual fetch duration time.
Additional Details
I've noticed that the problem mostly is around the fact that FetchInstrumentation is cloning the response (twice), and then waiting for  reader.read().then(...) before  actually capturing the span end time. This means the time it takes to clone a response, as well as the time taken to defer to the rest of microtask queue will all get added onto the span's duration, yielding inconsistent and inaccurate results.
Easy Fix
The fix here is to capture const endTime = core.millisToHrTime(Date.now()); immediately after the underlying fetch call returns (whether it succeeds or fails), and then pipe it down to _endSpan(). I've verified this works in a fork.
Alternatively, we could also make use of the Resource Timings from the Performance API as mentioned here: https://github.com/open-telemetry/opentelemetry-js/issues/3947, although that comes with a host of other issues since those need to be cleared over time, and some applications care about when they're cleared or not cleared. Using these Resource Timings would potentially be an accurate way of getting those timings, but we'd want to make it optional, and then have this as a fallback of the user opts out of it.
Ultimately, I think we should implement the easy solution to start.
OpenTelemetry Setup Code
No response
package.json
No response
Relevant log output
No response

As pointed out by @t2t2 and previously discussed in #3719, the span duration is capturing the full request timing including the full transfer of the response body. The HTTP operation is not considered complete until that happens. The client instrumentation WG is working on a new version of the semantic conventions which will capture more detailed timing using events, but for now I think this is the expected behavior.
Closing as a duplicate of #3719


Cannot manually specify ntransits

In liff, you could specify the transits to use for the maps during analysis. I just noticed while working on an unrelated task that we cannot do the same for hal.
This should be straightforward to implement, a good task for a graduate student wanting to learn. Otherwise, I'll get to it eventually

@cbrisboi is anyone actively working on this? This would be nice to have as we work on validation of pass 5 with the Crab strip.

@cbrisboi is anyone actively working on this? This would be nice to have as we work on validation of pass 5 with the Crab strip.

@maloneka There is a branch that implements this functionality (see #43 ). Feel free to test that branch on the Crab strip etc! It still needs unit tests for the new functionality before it can be merged to the master, though.

@maloneka There is a branch that implements this functionality (see #43 ). Feel free to test that branch on the Crab strip etc! It still needs unit tests for the new functionality before it can be merged to the master, though.

@cbrisboi status update? Does this pass the tests yet?


Educate developers on the existence of a native color picker

I'm glad to see that projects exist that refine and personalize the user experience. We should use them whenever the native experience is not satisfactory for UX purposes.
However, type="color" exists. And I strongly think that any introduction to a color-picking library should start by informing users of what exists and how it is supported by current browsers (including the limitations).
This way, we ensure that the library always fulfills its objective of improving the web.

@borisschapira You are my hero! ❤

Do you know any way to make this color picker inline? That's the thing I like about this lib. I want to display my color picker directly in the form of my page, and not with a popup


Change in trigger identification for resources

Trigger ID can now be independent of resource ID.
So using the tag to identify it.

PR looks good to me
Perhaps one side question is why don't use the hawkular-alerts-api package as base of the org.hawkular.client.android.backend.model package.
There you have the tools for dealing with the json -> object serialization of alerts and it could save some of the work done here.
Perhaps you can extend them in a class where you can implement the Parcel interface if needed.

@lucasponce I will surely look at that :)

Thanks @anuj1708 :clap:


UK London address wrongly recognized

In my case: wren house 43, halton garden was not recognized properly - it was parsed as a house only. I read a suggestion to split by comma (https://github.com/openvenues/libpostal/issues/265#issuecomment-339163986), but it didn't help, because "halton garden" was recognized as a house instead of a road.
I tried to append request with London and GB, but it wasn't a solution too.
The expected result is:
[ 	{ 		"label": "house", 		"value": "wren house" 	}, 	{ 		"label": "house_number", 		"value": "43" 	}, 	{ 		"label": "road", 		"value": "halton garden" 	} ]

As far as the road name, "Halton Garden" looks like it's a misspelling, as that road does not exist in OSM. Googling the address, it looks like it is at "43 Hatton Garden" instead. Note: libpostal can handle misspelled words in street names (it won't correct them but it will parse them, automatic spelling correction is out of scope for this project), but the word "Garden" in particular is ambiguous and is often part of a venues/house name e.g. "Community Garden", "Botanic Garden", etc. so the parser has to learn the specific cases like "Hatton Garden" where it's part of the street. With the corrected street name, libpostal gets that parse entirely correct:
> wren house 43, hatton garden

Result:

{
  "house": "wren house",
  "house_number": "43",
  "road": "hatton garden"
}

Incidentally there is also a "Halton Gardens" with an "s" in Scotland which occurs in our training set, and even though the Wren House address doesn't exist there, libpostal also gets the parse correct using that street name:
> wren house 43, halton gardens

Result:

{
  "house": "wren house",
  "house_number": "43",
  "road": "halton gardens"
}

Correcting that in any automatic way would require keeping an index of valid street names (which is too expensive memory-wise and would hurt performance in parts of the world that do not have roads fully mapped/tagged in OSM).


Explain the meaning of #[cold] attribute for fn try_advance()

reference: https://github.com/crossbeam-rs/crossbeam-epoch/blob/7c4ba5a1d7789cc2a6d40cafe5a9cc3dc8a72e16/src/epoch.rs#L36
It would be great to comment on this.

I'm curious as well, inline(never) is probably enough.

#[cold] lets the compiler know that this function is rarely executed in practice. The compiler then optimizes branches in favor of those that do not call cold functions.
For example, pin might occasionally (but rarely) call try_advance, but we want the compiler to place that call on a cold path. In other words, we want the compiler to optimize branching for the case when try_advance is not called.

Currently, pin() occcasionally calls global::collect() instead of try_advance().  Would it be better to annotate #[cold] to global::collect() rather than try_advance()?

By the way, I hope we can annotate #[cold] to branches as well as functions, as we can in the Linux kernel (unlikely(...)).  But it appears we cannot do that today: https://doc.rust-lang.org/stable/reference/attributes.html#function-only-attributes

I think your observation (global::collect()) is correct @jeehoonkang

I agree -- we should probably annotate global::collect as #[cold]. However, I guess doesn't hurt to leave try_advance a #[cold] function as well. Advancement is a rare operation, after all.


get TypeError: contract. is not a function

why get TypeError: contract.balances is not a function??
`const TronWeb = require('tronweb')
const HttpProvider = TronWeb.providers.HttpProvider;
const fullNode = new HttpProvider("https://api.shasta.trongrid.io");
const solidityNode = new HttpProvider("https://api.shasta.trongrid.io");
const eventServer = new HttpProvider("https://api.shasta.trongrid.io");
const privateKey = '409bc0b7-2393-419d-b5e8-8534cfdaa043';
const tronWeb = new TronWeb(fullNode,solidityNode,eventServer);
async function triggerSmartContract() {
try {
const trc20ContractAddress = 'TWEv92whv1kDW3JqgNn5HHVhbfbnfhmQxC';//contract address
let abi = [{"entrys":[{"stateMutability":"Nonpayable","type":"Constructor"},{"inputs":[{"indexed":true,"name":"user","type":"address"},{"name":"amount","type":"uint256"}],"name":"Deposit","type":"Event"},{"inputs":[{"indexed":true,"name":"user","type":"address"},{"name":"amount","type":"uint256"}],"name":"Withdrawal","type":"Event"},{"inputs":[{"indexed":true,"name":"user","type":"address"},{"name":"amount","type":"uint256"}],"name":"WithdrawalApproval","type":"Event"},{"inputs":[{"indexed":true,"name":"user","type":"address"},{"name":"amount","type":"uint256"}],"name":"WithdrawalRejection","type":"Event"},{"inputs":[{"indexed":true,"name":"user","type":"address"},{"name":"amount","type":"uint256"}],"name":"WithdrawalRequest","type":"Event"},{"outputs":[{"type":"uint256"}],"name":"MAX_WITHDRAWAL_AMOUNT","stateMutability":"view","type":"function"},{"outputs":[{"type":"uint256"}],"name":"WITHDRAWAL_COOLDOWN","stateMutability":"view","type":"function"},{"inputs":[{"name":"user","type":"address"}],"name":"approveWithdrawal","stateMutability":"Nonpayable","type":"Function"},{"outputs":[{"type":"uint256"}],"inputs":[{"type":"address"}],"name":"balances","stateMutability":"view","type":"function"},{"name":"deposit","stateMutability":"Payable","type":"Function"},{"outputs":[{"type":"uint256"}],"name":"fee","stateMutability":"view","type":"function"},{"outputs":[{"type":"uint256"}],"inputs":[{"type":"address"}],"name":"lastWithdrawalTime","stateMutability":"view","type":"function"},{"outputs":[{"type":"address"}],"name":"owner","stateMutability":"view","type":"function"},{"name":"pause","stateMutability":"Nonpayable","type":"Function"},{"outputs":[{"type":"bool"}],"name":"paused","stateMutability":"view","type":"function"},{"inputs":[{"name":"user","type":"address"}],"name":"rejectWithdrawal","stateMutability":"Nonpayable","type":"Function"},{"inputs":[{"name":"amount","type":"uint256"}],"name":"requestWithdrawal","stateMutability":"Nonpayable","type":"Function"},{"name":"unpause","stateMutability":"Nonpayable","type":"Function"},{"inputs":[{"name":"amount","type":"uint256"}],"name":"withdraw","stateMutability":"Nonpayable","type":"Function"},{"outputs":[{"type":"uint256"}],"inputs":[{"type":"address"}],"name":"withdrawalRequests","stateMutability":"view","type":"function"}]}];
let contract = await tronWeb.contract(abi, trc20ContractAddress);
let result = await contract.balances().call();
console.log(result);
} catch(error) {
console.error(error)
}
}
triggerSmartContract();`

please try let contract = await tronWeb.contract(abi[0].entrys, trc20ContractAddress);


archiveopteryx: override specific build settings instead of PREFIX (15.09)

Things done:

[x] Tested using sandboxing (nix-build --option build-use-chroot true or nix.useChroot on NixOS)
[x] Built on platform: Linux
[x] Tested execution of binary files: archiveopteryx, aox
[x] Fits CONTRIBUTING.md.

More
Cherry-picking from https://github.com/NixOS/nixpkgs/pull/13708
cc @vcunat

I did the standard thing instead: direct git cherry-pick -xe to the release branch.

:+1: I'll do that next time

It's typically easiest to notify at the PR to master that the change is suitable for picking to release. The one who merges can do the cherry-picking directly.


resizing a column of a rendered widget automatically sorts the grid by that column

This is not the expected behavior, especially when it locks up the widget, e.g. #133

Thanks...should have a fix later this week or next week.

The fix has been merged and released in beta 8 (which you can get by uninstalling and reinstalling qgrid).  I'm going to close this for now but feel free to reopen it if the new version doesn't work for you.  Thanks.


(HTTP code 500) server error - {"message":"Get https://registry-1.docker.io/v2/library/busybox/manifests/latest: unauthorized: incorrect username or password"}

Expected behavior
Actual behavior
Information about the Issue
Steps to reproduce the behavior

docker pull busybox
(HTTP code 500) server error - {"message":"Get https://registry-1.docker.io/v2/library/busybox/manifests/latest: unauthorized: incorrect username or password"}

Please try to login using your Docker ID (hub username) instead of your email. This should fix the issue.

This message was created automatically by mail delivery software.
A message that you sent could not be delivered to one or more of its
recipients. This is a temporary error. The following address(es) deferred:
<EMAIL_ADDRESS>Domain biomassiv.es has exceeded the max emails per hour (105/100 (105%)) allowed.  Message will be reattempted later
------- This is a copy of the message, including all the headers. ------
Received: from github-smtp2-ext6.iad.github.net ([<IP_ADDRESS>]:40887 helo=github-smtp2b-ext-cp1-prd.iad.github.net)
by chi-server32.websitehostserver.net with esmtps (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256)
(Exim 4.89)
(envelope-from<EMAIL_ADDRESS>id 1eMLDW-0013bi-5D
for<EMAIL_ADDRESS>Tue, 05 Dec 2017 15:57:30 -0600
Date: Tue, 05 Dec 2017 13:56:50 -0800
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=github.com;
s=pf2014; t=1512511010;
bh=TBd4yccvK+JrP0ceLVzdBzTSr/t1RBv9+xo4AZ+oeOE=;
h=From:Reply-To:To:Cc:In-Reply-To:References:Subject:List-ID:
List-Archive:List-Post:List-Unsubscribe:From;
b=Tz9oBwurcdgel61ICdUibWSgh/mTf1Gtyawj+9UeP+TLH+7zSb8LwjAXiW4FpgEQl
p+sFyybFKXK1FD4scRLMmvttDzB/+rEo+BnQsdnsa+dreAuxHZMksLDaCNZ4fUbe1q
fNblae16Nd+AiZdVTaIDb2dPE2O70sQSkiIs8xyM=
From: French Ben<EMAIL_ADDRESS>Reply-To: docker/kitematic<EMAIL_ADDRESS>To: docker/kitematic<EMAIL_ADDRESS>Cc: Subscribed<EMAIL_ADDRESS>Message-ID<EMAIL_ADDRESS>In-Reply-To<EMAIL_ADDRESS>References<EMAIL_ADDRESS>Subject: Re: [docker/kitematic] (HTTP code 500) server error - {"message":"Get
https://registry-1.docker.io/v2/library/busybox/manifests/latest:
unauthorized: incorrect username or password"} (#3347)
Mime-Version: 1.0
Content-Type: multipart/alternative;
boundary="--==_mimepart_5a27162255bc4_3d963fdeeb23ef387971a";
charset=UTF-8
Content-Transfer-Encoding: 7bit
Precedence: list
X-GitHub-Sender: FrenchBen
X-GitHub-Recipient: biomassives
X-GitHub-Reason: subscribed
List-ID: docker/kitematic <kitematic.docker.github.com>
List-Archive: https://github.com/docker/kitematic
List-Post<EMAIL_ADDRESS>List-Unsubscribe<EMAIL_ADDRESS>https://github.com/notifications/unsubscribe/AELU4qB0uasC7Kw2VXVaOiPQ41YldYPGks5s9bwigaJpZM4Qp8UJ
X-Auto-Response-Suppress: All
X-GitHub-Recipient-Address<EMAIL_ADDRESS>----==_mimepart_5a27162255bc4_3d963fdeeb23ef387971a
Content-Type: text/plain;
charset=UTF-8
Content-Transfer-Encoding: 7bit
Please try to login using your Docker ID (hub username) instead of your email. This should fix the issue.
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/docker/kitematic/issues/3347#issuecomment-349454918
----==_mimepart_5a27162255bc4_3d963fdeeb23ef387971a
Content-Type: text/html;
charset=UTF-8
Content-Transfer-Encoding: 7bit
Please try to login using your Docker ID (hub username) instead of your email. This should fix the issue.
—You are receiving this because you are subscribed to this thread.Reply to this email directly, view it on GitHub, or mute the thread.

----==_mimepart_5a27162255bc4_3d963fdeeb23ef387971a--

This message was created automatically by mail delivery software.
A message that you sent could not be delivered to one or more of its
recipients. This is a temporary error. The following address(es) deferred:
<EMAIL_ADDRESS>Domain biomassiv.es has exceeded the max emails per hour (106/100 (106%)) allowed.  Message will be reattempted later
------- This is a copy of the message, including all the headers. ------
Received: from o11.sgmail.github.com ([<IP_ADDRESS>]:48921)
by chi-server32.websitehostserver.net with esmtps (TLSv1.2:ECDHE-RSA-AES128-GCM-SHA256:128)
(Exim 4.89)
(envelope-from<EMAIL_ADDRESS>id 1eMLDX-0013ck-6f
for<EMAIL_ADDRESS>Tue, 05 Dec 2017 15:57:31 -0600
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=github.com;
h=from:reply-to:to:cc:in-reply-to:references:subject:mime-version:content-type:content-transfer-encoding:list-id:list-archive:list-post:list-unsubscribe;
s=s20150108; bh=jQUdiG3iWa1pLNKEXiH3hKcnI8o=; b=UukFFVZk3Th5IFA8
N2fDsu/RAHbKpL4t50P9dcxGwHaz4MGNDrJeEMnh5d3/Ho8uMOKFzA7I8oIKx+RK
J+aUQDpOXdKOfqbNaAQRnlB0eVzuLmKeo9mp6E6ftitqO7iQDQBhPVEasbq03Tj0
4uDi19jtZluHnato5mX54cZZomc=
Received: by filter0627p1mdw1.sendgrid.net with SMTP id filter0627p1mdw1-5620-5A271623-1E
2017-12-05 21:56:51.651755654 +0000 UTC
Received: from github-smtp2b-ext-cp1-prd.iad.github.net (github-smtp2b-ext-cp1-prd.iad.github.net [<IP_ADDRESS>])
by ismtpd0023p1iad2.sendgrid.net (SG) with ESMTP id 3tn1wBJ2Sdi7MPkesB0X8A
for<EMAIL_ADDRESS>Tue, 05 Dec 2017 21:56:51.638 +0000 (UTC)
Date: Tue, 05 Dec 2017 21:56:51 +0000 (UTC)
From: French Ben<EMAIL_ADDRESS>Reply-To: docker/kitematic<EMAIL_ADDRESS>To: docker/kitematic<EMAIL_ADDRESS>Cc: Subscribed<EMAIL_ADDRESS>Message-ID<EMAIL_ADDRESS>In-Reply-To<EMAIL_ADDRESS>References<EMAIL_ADDRESS>Subject: Re: [docker/kitematic] (HTTP code 500) server error - {"message":"Get
https://registry-1.docker.io/v2/library/busybox/manifests/latest:
unauthorized: incorrect username or password"} (#3347)
Mime-Version: 1.0
Content-Type: multipart/alternative;
boundary="--==_mimepart_5a27162372c32_3db23fdeeb23ef3851639";
charset=UTF-8
Content-Transfer-Encoding: 7bit
Precedence: list
X-GitHub-Sender: FrenchBen
X-GitHub-Recipient: biomassives
X-GitHub-Reason: subscribed
List-ID: docker/kitematic <kitematic.docker.github.com>
List-Archive: https://github.com/docker/kitematic
List-Post<EMAIL_ADDRESS>List-Unsubscribe<EMAIL_ADDRESS>https://github.com/notifications/unsubscribe/AELU4qi--Da8oXezATlX9abZm9VxhjDEks5s9bwjgaJpZM4Qp8UJ
X-Auto-Response-Suppress: All
X-GitHub-Recipient-Address<EMAIL_ADDRESS>X-SG-EID: ZlaDthyue/4HG+EgTb7JoZYs48JNb2iQtCcPV6oIs9Vhg3K+YrY+NCtHAZnIRXM1LkuLyaDPw4NcZQ
6UfNuBUZ9F7yhmOzaa9XvULhTizfhBhxURZjsL9o+kvwbDakmBX3iOC0WvOmPykS3eOQF65YJs0s2r
XctY2wldoyQ8lHRmZHjemXQ+tpbBaWgomg8OnONzimu/Xi3HcXIxQ2RSnA==
----==_mimepart_5a27162372c32_3db23fdeeb23ef3851639
Content-Type: text/plain;
charset=UTF-8
Content-Transfer-Encoding: 7bit
Closed #3347.
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/docker/kitematic/issues/3347#event-1373626651
----==_mimepart_5a27162372c32_3db23fdeeb23ef3851639
Content-Type: text/html;
charset=UTF-8
Content-Transfer-Encoding: 7bit
Closed #3347.
—You are receiving this because you are subscribed to this thread.Reply to this email directly, view it on GitHub, or mute the thread.

----==_mimepart_5a27162372c32_3db23fdeeb23ef3851639--


Release 0.0.10

@rultor release, tag is 0.0.10.

@rultor release, tag is 0.0.10.

@rafamizes OK, I will release it now. Please check the progress here

@rultor release, tag is 0.0.10.

@rafamizes Done! FYI, the full log is here (took me 2min)


Add experimental support for instance mode

After my brain was refreshed from exercising I decided to take a stab at implementing this.
I'm pretty happy with the results! We add a type for a P5Instance which contains all symbols that are accessible from the instance macro. For each procedure that is to be callable, we generate them from the existing wrapper by using a new globalAndLocal macro that takes definitions and outputs two versions of them:

regular
one taking a P5Instance as first argument, that is to be emitted to JS as p5Inst.<name>(<args>) (this is important, as the procedures are methods of the instance, as far as I understand so far)

The new instance template shadows the existing sugar templates with versions that generate a new closure and add it to the corresponding field of the P5Instance object (remaining templates need to be added as wrapper templates as well as as fields to the P5Instance type definition).
Within these templates the body is checked for possible replacements from two sources:

all procedures that were wrapped in globalAndLocal (for nnkCall nodes { nnkDotExpr will be added later } )
all fields of the P5Instance type (for nnkSym / nnkIdent nodes)

This approach (that internally uses CacheSeqs to store the symbols) has the advantage that we don't convert too little / too many things.
See the example for what the resulting code looks like.

@pietroppeter I noticed you're not watching your own repository, so I guess it's possible you'll overlook this.

@pietroppeter I noticed you're not watching your own repository, so I guess it's possible you'll overlook this.

Ah wow, indeed I got the notification only when you mentioned me. Now I should be watching it. Thanks so much for this! Need to look at it and give you feedback (first feedback is probably I will keep instance related code in a separate module instead of the module with the original bindings).

The majority of the logic can be moved to a submodule though! I just put it there for convenience at the moment. And given that we use a CacheSeq for storing the CT information, it would be safe even to have the define the globalAndLocal macro in a submodule (technically using a regular Table at CT also works, but that apparently will break incremental compilation once that is a thing).

Just rebased on current master, moved the instance macro logic to a submodule and extended support for nnkDotExpr appearing in the instance template bodies.
In principle I consider this ready for merge, with the remaining optional TODOs left:

[ ] extend the P5Instance object to really contain all fields the real instance allows for (I just copied some of the globally defined wrapped variables)
[ ] make sure to put all procedures that require it under globalAndLocal
[ ] extend the instance template to not only include setup and draw. This also requires an addition to the P5Instance class for each addition, as each is stored as a closure in the object. If one decides to provide everything that is p5sugar.nim it could also be done with a macro in principle, or just via copy & paste. The code is pretty trivial after all (but I'm not even sure if all of that is valid for P5Instance).

I will check this out and likely merge it. I want to test it out to have two instances in the same document and possibly create a nimib sugar for those (which includes automatically generated ids for divs). It seems reasonable to have only a partial subset of the functionalities now, we will add them as we go (most of the functionalities in the bindings are still untested for me, since they have no example where they are used).

ok, I checked this and tested the two instances. In order for that to work the divName must be a cstring and not a string (there are multiple occurrences of string in the existing bindings, they will likely need to be all changed to cstring). I made the changes and update the instances example to have two copies of the get started example. works fine!
as another minor changes: used importjs instead of importcpp.
@vindaar, hope you do not mind I committed directly here, seemed easier. If ok for you I would merge this, close the instance issue and open a new one with the improvements you listed above.

ah, another thing I noticed is there was a import jsffi left in the examples. I removed it and examples seem to work fine. Is it something that we think might be needed in some cases for instance mode? if so maybe the better way would be to just export it from p5.

Ah, no. that import is just an accidental left over, because I started writing the prototype code in the example. Thanks for noticing. I'll take it out later.

Already removed. Ready to merge on my side.

merging, thanks again a lot for this great work @Vindaar !


Admin UI for Mo to make org settings changes

Problem statement
Right now when Mo needs to update settings for an organization, he needs to manually do it via the command line.
Design

We need a basic wireframe

Solution
Allow settings to be edited in the web app by admin:

Create a "Settings" tab
Show fields that Mo would like ability to edit in a form
Show an "Update" button that is clickable when fields are edited
Must do a diff to show what has changed before committing changes
Commit the changes (server-side code is already available & does versioning)
Show success/error message below button after it is clicked

Notes

Since this is an admin tool just for Mo, the design is not important. This just needs to be functional
Server endpoints should be ready for this
There should be server support for diffing, which is a nice to have feature
If we just show the entire yml and make it editable, that would be an acceptable starting postion. Could use a tool like https://www.npmjs.com/package/react-ace
USWDS form that could be good to use https://trussworks.github.io/react-uswds/?path=/story/components-form-templates--text-input-form but it can be up to the engineer
As of now Mo is the only customer of this tool so we just need his review on any solution

Thoughts: should there be an email or maybe a slack channel message documenting whenever anything is changes? (Sending slack channel messages is pretty easy.)

Some todo items from talking to @mauricereeves (@sethdarragile6 feel free to edit this comment).

[ ] Add API parameter to optionally check that the priorrevision version number matches. This handles the race condition where two people edit the same record. If the api PUT knows the revision being updated, then it can sanity check that nobody else has edited first. The failure case should probably include the latest revision meta (mod date, user who did the action, version number). [This probably should be its own ticket number]
[ ] Verify there's an API call to LIST the per-setting revision history (e.g. list of tombstoned rows) with meta data (date, who edited it, etc).
[ ] Verify there's an API call to GET a tombstoned record so it can be viewed for debugging issues.
[ ] Verify there's an API parameter to update the is_active column of a settings row.

I can do some mock-ups for the UI and tack them onto this ticket.
First question is where should this Admin navigation should go?
The topnav is getting pretty crowded.

We could put a small icon near the "Log Out" that's a link. Or we could even make the username a link if you're an admin. Less discoverable, but cause any other layout issues. I was going to look what SimpleReport does, but I don't have a login for them anymore.
@drew-usds  Any strong opinions?

UI ideas:

Fetch all type='ORGANIZATION' including "values" json. This is the "top level" of the tree and can be type-filtered in an edit box. The typical json data in the values column is tiny and includes stateCode, description and jurisdiction

@sethdarragile6
Reference to the API
It seems like the top level api call we want to generate the whole list of possible settings is components/schemas/SettingMetadata (call to api/settings/organizations) which references this schema as a result?
But from the schema, there doesn't seem to be any db id column returned from the rest call. This may be ok if we can identify the setting we'll finally need by "combined key" (e.g. the unique id for the organization combined with a "type")

@TomNUSDS Totally agree on the nav, we've started mocking up a secondary nav to clear up the problems/crowding we're currently seeing. I'll work on some mockups and sync with y'all/copy them here.


pay.begriffs.com is down

You can see it in action here. If you like it, why not donate? ;)

Because it's down :D

:laughing: Didn't know people were still looking at that. I think it might just be a DNS setting, I'll investigate.

OK, it's back up.


Added follow behavior used in OOBE (based on follow behavior from shell)

Overview
Added the follow behavior used in OOBE to the list of sample solvers.
Changes
Added Follow.cs (a solver used in OOBE) and changed the SolverExample Scene to contain this solver option. This behavior can now be applied to the mug.
Verification
Reviewers please checkout the PR locally to validate that I modified SolverExamples.unity to your coding standards.
git fetch origin pull/{PR_ID}/head:user/ervazque/Add_follow_from_shell
git checkout user/ervazque/Add_follow_from_shell

Thanks for adding this!

@cre8ivepark have a look at this PR. You may actually want to update the toggle panel prefab to use this new follow behavior that more closely matches the shell.

Ah, one more suggestion: it would be very nice for this change (which is a new, user facing feature) to attach a .gif of the behavior you are enabling, with screenshots of new scene elements you're adding to the sample. For example, have a look at this PR from @Cameron-Micka  which is an excellent example of a descriptive PR with animation that helps describe the behavior being added.
You can use a variety of tools to do a screen capture and convert to gif, the tool I use is screentogif

Thanks for the PR. Along with the tests missing there is no documentation which needs to be added. Gifs work great as Julia said. Licecap, terrible name, is another useful tool.
I am a bit concerned though about adding another solver. Especially it looks like lots of overlap with radial view and orbital. I think radial view is used for the toggle feature on the slates? There are already a lot of solvers and I think developers already have many issues understanding them. The name follow is much better than radial view though.
Again it just seems like another component to have test overhead, documentation overhead, and for some one to manage and maintain?
Can we not just update radial view to be better?

Closing as it has been folded into #5713


Debug toolbar is still displayed when the program already exited

VSCode Version: 1.26.1
OS Version: ubuntu-16.04.3-desktop-amd64
C# Extension version: v1.16-beta4

Steps to Reproduce:

Create a dotnet core console app
Open this app with VSCode
Start debugging

Expected behavior:
Debug toolbar should not be displayed
Actual behavior:
The program already exited, but the debug toolbar is still displayed

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

And also try with latest vscode insiders https://code.visualstudio.com/insiders/


fix(ipfs-coord): Updating to v6.6.7

:tada: This PR is included in version 1.4.25 :tada:
Your semantic-release bot :package::rocket:


220MHz full power

Is there a way to increase the power output of the radio on the 220 band?

as the design is built for 2m & 70cm, you have to redesign and
modify the RX and TX filters. Firmware can not help on this.

YES real HAM hobby.
No firmware-update necessary 👍


HystrixManagementContextConfiguration  doesn't work with Spring Webflux.fn and Actuator

My build.gradle file for a microservice based on Spring Boot 2.0.0.M6 (same with M5), Spring WebFlux.fn 5.0.1, Kotlin, Java VM 9.0.1, Spring Security, Spring Data, and Spring Cloud Finchley M3 has these dependencies:
implementation(
    ...
    'org.springframework.cloud:spring-cloud-starter-config',
    'org.springframework.cloud:spring-cloud-starter-netflix-eureka-client',
    'org.springframework.cloud:spring-cloud-starter-netflix-hystrix',
    'org.springframework.cloud:spring-cloud-starter-openfeign',
    ...)

When I add the dependency runtime ('org.springframework.boot:spring-boot-starter-actuator') I get this error message at startup time:
...
nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException:
Error creating bean with name 'org.springframework.cloud.netflix.hystrix.HystrixManagementContextConfiguration':
Unsatisfied dependency expressed through constructor parameter 0;
nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException:
No qualifying bean of type 'org.springframework.boot.actuate.autoconfigure.web.servlet.ManagementServletContext' available:
expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {}

We dont yet support Boot 2.0.0.M6 in the Finchley release train, but if it is also happening with M5 can you please provide the complete project source code the reproduces the problem?

@ryanjbaxter A testcase is attached. My environment: JDK 9.0.1, Gradle 4.3.1 (see Gradle wrapper) and Windows 10 Enterprise.
tc2438.zip

@ryanjbaxter @spencergibb Is the testcase ok, or do you need anything else?

I am completely unfamiliar with Kotlin, but when I run gradle build I get a compilation error
:compileKotline: /Users/ryanjbaxter/Downloads/tc2438/src/main/kotlin/testcase/Application.kt: (5, 33): Unresolved reference: runApplication
e: /Users/ryanjbaxter/Downloads/tc2438/src/main/kotlin/testcase/Application.kt: (25, 5): Unresolved reference: runApplication
e: /Users/ryanjbaxter/Downloads/tc2438/src/main/kotlin/testcase/Application.kt: (26, 9): Unresolved reference: webApplicationType

Hmm, runApplication is available since Spring Boot 2.0.0.M6. I just downloaded the testcase, unzipped it, and just invoked gradle (the default task is bootRun). There was no compilation error. I'm having Java/JVM 9.0.1, gradle 4.4-rc-2, and Windows 10 Enterprise.
I'll attach the output of gradle dependencies. Could you check whether you really have Spring Boot 2.0.0.M6, please?
dependencies.txt

Is Java 9 required?


changing LD_LIBRARY_PATH can brokeOS python function

on our system (centos), because of our remote connexion tool, we cant allow any change on OS system variable
changing LD_LIBRARY_PATH have broke all python (even yum) run by centos
potential solution :
create a gaffer specific variable like GFR_LD_LIBRARY_PATH

Hi @Kaiz3rTool
Have you tried something like:
export LD_LIBRARY_PATH=/some/path/to/custom/libs:$LD_LIBRARY_PATH to merge multiple paths instead of overriding it?
Also I don't recall needing to override it for GafferCycles, are you looking in the standalone Gaffer launcher script? There can't be a custom one because it is a Linux-specific environment variable to find custom libraries outside of system ones.

I haven't tried it for now, I was planning to test it before I realize that the problem may come from me, as I have setup compile variable permanently even if I use the compiled one, so it seems I've made a useless (and buggy) setup

All good, yeah it sounded a bit strange... :)


Data: project addition by shagunZ

Add a new project to the list
Built using React, this app provides a user-friendly interface and real-time score updates and displays the winner when the score limit is reached.
Record

[X] I agree to follow this project's Code of Conduct
[X] I'm a GSSoC'23 contributor
[X] I want to work on this issue

Completed. Thanks for your contributions 🎉 ❤


stream() error handler

I am not sure on the behaviour of the stream() error handler.
Consider the following code with which I'm trying to serve images from the MarkLogic database:
server.get('/(^\/$)|(\.(jpg)$)', (request, response) => {
  response.writeHead(200, { 'Content-type': 'image/jpeg' });
  const data = [];
  db.documents.read(request.url).stream('chunked')
  .on('data', chunk => {
    console.log(chunk);
    return data.push(chunk)
  })
  .on('error', error => console.error(error))
  .on('end', () => {
    let buffer = new Buffer(data.length).fill(0);
    buffer = Buffer.concat(data);
    console.log(buffer.toString());
    response.end(buffer);
  });
});

This assumes that I have URIs in my database such as /test-0001.jpg.
Now my problem is that if I supply a URI that does not exist the .on('error', ...) part of my code doesn't get executed. I can see the error in the .on('end', ()... handler but only if I convert my buffer to a string (as seen in the example above), which returns:
{"errorResponse":{"statusCode":404, "status":"Not Found", "messageCode":"RESTAPI-NODOCUMENT", "message":"RESTAPI-NODOCUMENT: (err:FOER0000) Resource or document does not exist:  category: content message: /test-0120.jpg"}}

Not sure how this is supposed to work behind the scenes but I'd expect the error handler to produce an error.

The other problem is that having such logic in place is a bit borked:
.on('end', () => {
    let buffer = new Buffer(data.length).fill(0);
    buffer = Buffer.concat(data);
    const bufferResponse = JSON.parse(buffer.toString());
    if (bufferResponse.errorResponse.statusCode === 404) {
      response.send(404);
    } else {
      response.writeHead(200, { 'Content-type': 'image/jpeg' });
      response.end(buffer);
    }
  });

That's because now if a valid image comes in the JSON.parse(buffer.toString()) breaks.
I'm still trying to figure out what the best way would be to achieve this. I'd like to return a 404 if a resource is not found in ML.

It makes sense to me that sending the error response to the data event instead of the error event is a bug.
@wooldridge, what do you think?

@ehennum @wooldridge
Also note that at the moment I have to do this hack to make my code work:
const data = [];
  db.documents.read(request.url).stream('chunked')
  .on('data', chunk => data.push(chunk))
  .on('error', error => console.error(error))
  .on('end', () => {
    let buffer = new Buffer(data.length).fill(0);
    buffer = Buffer.concat(data);
    if (buffer.toString('ascii', 0).length < 1000) {
      const bufferResponse = JSON.parse(buffer.toString());
      if (bufferResponse.errorResponse.statusCode === 404) {
        response.send(404);
      }
    } else {
      response.writeHead(200, { 'Content-type': 'image/jpeg' });
      response.end(buffer);
    }
  });

Digging by @anu3990  determined is that this behavior is specific to reading a non-existent document.
Other errors are correctly sent to the error handler.
A non-existent document is not an error in the request.  The document merely doesn't exist.
The end event code can determine an empty response by checking whether data.length === 0.
Keeping the bug open for adding the unit test for streaming errors (which was missing).

Unit test available.


MqttClient connect to server and subscribe topics but can't receive and publish messages on Android

Hello,
We implemented MqttNet in our mobile game for real-time communications in the Unity game engine
(MQTT server implemented a long time ago and works correctly for recent builds with another game engine that MQTT implementation was android native, now we migrate our game to Unity game engine)
MQTT system works properly in editor mode of Unity but when we test it on the android build, the app can't receive and publish messages
the logs tell us that client connects to the server and successfully subscribes to the topics but can't publish any messages due to the timeout.
Also when we send messages to this client, the ApplicationMessageReceivedHandler doesn't call.

Hi @moncio,
Our problem is fixed now and our mistake was using some unnecessary filters on received client id in broker code and also a wrong client id format from our client code.
But about your problem i think it can be from your broker address and specifically port number.
I hope it can be useful for you

Hi @KoroshRH ,
Great to read your problem is fixed, in my case I need to connect to the server through websocket transport but I dont know why I'm not able to establish the proper connection, this is my current approach:
var builder = new MqttClientOptionsBuilder()
                .WithClientId(Guid.NewGuid().ToString())
                .WithWebSocketServer("localhost:443/ws")
                .WithCredentials(username, password)
                .WithTls()
                .WithCleanSession();

        this.mqttOptions = builder.Build();

        this.mqttClient = new MqttFactory().CreateMqttClient();

        this.mqttClient.ConnectedHandler = new MqttClientConnectedHandlerDelegate(OnConnected);
        this.mqttClient.DisconnectedHandler = new MqttClientDisconnectedHandlerDelegate(OnDisconnected);
        this.mqttClient.UseApplicationMessageReceivedHandler(OnMessageReceived);

is this the right way to do that? Thank you!

Use this code instead of .WithTls():
.WithTls(new MqttClientOptionsBuilderTlsParameters
    {
        UseTls = true,
        CertificateValidationHandler = (MqttClientCertificateValidationCallbackContext x) =>
        {
            return true;
        }
    })

If with this code you faced problem either, removing it and try again.

I have the next problem:
Remote certificate validation callback is not supported when using 'net461'.

Remove this line. Just use UseTls = true.

It continues failing, I think it may be a problem related with certificates because I have exposed the websocket to an extern url, use this one comes the problems but trying the connection against the internal url, everything is ok

Hi again @KoroshRH , first of all I really appreciate your help, finally the client connects to the broker succesfully, I had to add the host to the headers in the request. Now I have your original problem, I see the client is connected but no messages sent to the broker and problems for subscribing to the topic, how do you solve it?
Thank you and sorry for so many questions.

Hi @moncio, it is very good to hear that your problem is fixed now.
It was a pleasure to have a conversation with you.


Question: Whats the expected behaviour of Producer when abruptly losing connection?

We did some testing using Produce while deleting our Redpanda Cluster with three nodes. This might not be a realistic case but I got curious if the following outcome could happen in other ways, e.g. slow rolling broker upgrades. etc.
Our franz-go routine listens to a channel that's constantly receiving new messages to handle (~500 sec). When receiving a message it's sent directly to Produce:
for {
    select {
    case <-ctx.Done():
	    k.logger.Info("Context cancelled")
	    break loop
    case <-ticker.C:
	    k.logger.Info("Current status: RUNNING. Buffer length: ", k.client.BufferedProduceRecords(), ". Channel length: ", len(k.C))
    case m := <-k.C:
	    k.logger.Trace("Kafka routine received MQTT message from channel")
	    record := parse(m)

	    k.client.Produce(ctx, &record, func(_ *kgo.Record, err error) {
		    if err != nil {
			    log.Error("Error producing!")
		    }
	    })
	    k.logger.Trace("Message was added to producer. Length internal buffer: ", k.client.BufferedProduceRecords(), ", Length channel: ", len(k.C))

    }
	}

When left alone this runs fine, so that's good.
We then delete the cluster, and the client loose connection and tries to reconnect as expected. During this, I log with a 500ms interval the BufferedProduceRecords (see snippet above). Buffered messages increase since the connection is lost, as expected, but when all three nodes are gone the interval stops... which means we are stuck in theProducer somewhere, does this makes sense? Wouldn't think so but, Idk.
So is failing buffering expected when the connection is abruptly lost?
downloaded-logs-20230131-142923.csv

Just after posting this, I found out that the MaxBufferedRecords was sat really low... which might have caused the stop ... Didn't find any ErrMaxBuffered in the logs though but I'm sure this was my fault. Sorry!

The client blocks Produce when MaxBufferedRecords is hit -- if you instead want the client to fail additional records, you can use TryProduce
that might help


Bug: unusual simulation error arises when changing dt in the middle of simulation

After some inspection, I think this is not a coding bug, but rather a mathematical issue when you mess with the dt in the middle of a simulation, especially when using leapfrog integrator. This issue is closed.


Save custom label styles

As a user I want to use the "Edit Custom Style"

to specify my style for labels (fonts, text size, etc ...) and have that saved upon reload of page. Currently - my settings are reset upon every page reload, which is used to reload and modifications to label spacing, format, etc...
As a user, I can see myself specifying several of these for different use cases (e.g. slide, vial, pinned, envelope labels) and having them ready when needed.

I can save this as a user preference. @mjy should we think a way to save this as a project preference or something like that to make it available for all?

I can save this as a user preference. @mjy should we think a way to save this as a project preference or something like that to make it available for all?

I would prefer to have Tommy's custom styles be added to the core library if re-used and made more usable.  We should not overload User.preferences with critical work, i.e. we should assume they will be reset and create minimal pain.
Seems like a combo of local data store + ability to submit and add to library of styles + ability to default some style is the longer term solution.


Vitest fails to import under Vite App

Describe the bug
I'd like to use the same syntax for my client side assertions as my build time testing framework. Unfortunately, Vite seems to load Node.js dependent code when you import Vitest. Is Vitest not compatible with browsers?
ERROR: No matching export in "browser-external:fs" for import "existsSync"

I'm using v0.8.4<EMAIL_ADDRESS>Reproduction
https://stackblitz.com/edit/vitest-dev-vitest-6undtu?file=src%2Fmain.ts&initialPath=__vitest__
System Info
StackBlitz
Vite: 2.9.0

Used Package Manager
npm
Validations

[X] Follow our Code of Conduct
[X] Read the Contributing Guidelines.
[X] Read the docs.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] Check that this is a concrete bug. For Q&A open a GitHub Discussion or join our Discord Chat Server.
[X] The provided reproduction is a minimal reproducible example of the bug.

Vitest cannot run in a browser at the moment, but there is a PR that allows a fraction of Vitest functionality to be used in a browser: https://github.com/vitest-dev/vitest/pull/891

Ended up using straight up chai/expect. Pretty sure cypress will not run in the browser due to the dependency of a browser.


Add path and blob_path columns to sys.path

@dobe please review

Current coverage is 81.17% (diff: 95.00%)

Merging #4477 into master will decrease coverage by 0.02%

@@             master      #4477   diff @@
==========================================
  Files          1303       1306     +3
  Lines         44166      44199    +33
  Methods           0          0
  Messages          0          0
  Branches       7029       7030     +1
==========================================
+ Hits          35862      35879    +17
- Misses         5632       5634     +2
- Partials       2672       2686    +14

Powered by Codecov. Last update 748cc2f...c37e72a


global and local var assign

Warning : scope analysis implementation

ALERT : bug https://github.com/epatrizio/ola/pull/6/commits/03c5aa19a81a0a0a8cfcf959fc0d2e9f0b073ed2
with global var in a block (local) context

Bug fix : https://github.com/epatrizio/ola/pull/6/commits/73f7c74872f9742cd84b5317630653aad7592913
need to separate locals and globals


[pilot] Adding metrics to Pilot

What this PR does / why we need it:
Much of this was inspired by (or simply stolen from) mixer.
Which issue this PR fixes fixes #2104
Special notes for your reviewer:
Release note:

@nmittler: Adding do-not-merge/release-note-label-needed because the release note process has not been followed.

One of the following labels is required "release-note", "release-note-action-required", or "release-note-none".
Please see: https://github.com/kubernetes/community/blob/master/contributors/devel/pull-requests.md#write-release-notes-if-needed.
Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

@nmittler: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-presubmit.sh
61796d48bf162967fc0ba354a9459a0a8ff3d48d
link
/test istio-presubmit

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@nmittler: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-presubmit.sh
11d732828e03eb90434199fcdeda05b26f083f89
link
/test istio-presubmit

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

merge with master to get latest mixer code..

@rshriram The unittest-pilot failures seem unrelated to this PR. Any thoughts as to what might be going on?

@rshriram I think we're good to go. Shall we merge?

/lgtm
/approve


Spec - define $size for arrays

Spec task:

basic definition
what happens is the field is either not present or not an array ?
the RHS operand must be an integer, i.e. cannot test if == 2.2

implemented in #85  may need re-work

Ignore. $size matches documents where the given field is an array, and the array has the correct length. If not an array, no match.
Thanks, that is what will happen because we are looking in the DB column array_size.

The note is also for me to define the functionality in the spec.


Plan for providing pre-compiled binaries from PyPi for pip install?

Hi @PanQiWei
I was wondering what your project plan was for providing pre-compiled binaries via PyPi?
oobabooga mentioned this a key issue for integration in text-gen-UI.
Do you have a thought as to when you would like to look at this? Eg whether for 0.2.0, or beyond?
If you're not already looking at it, I'd be happy to look at the process and try a Github Actions type setup. I could do that this weekend.
Let me know.

To my knowledge, providing pre-compiled binaries require building CI first, I haven't a plan to do this so far. It would be great if you can help to do this ❤

OK I will look into it and let you know!

@PanQiWei I've this dockerfile in my fork that successfully build the whl for anypython with cuda11.8
https://github.com/yhyu13/AutoGPTQ/tree/cuda_dev

That looks great @yhyu13 !
It would be great to get auto builds via Github Actions but this is a great base to work from.
I am expecting the biggest challenge to be Windows. I'm going to start investigating that tomorrow

@PanQiWei I've this dockerfile in my fork that successfully build the whl for anypython with cuda11.8 https://github.com/yhyu13/AutoGPTQ/tree/cuda_dev

@ALL Notice, I was using local proxy and pypl mirror index, they are not really universal, you can comment out or remove those if you want


Optimizer crashing during atlas

happens when trying to optimize a file that maybe is too many textures to atlas. perhaps could implement better error handling and print a console log message for files that file so batch processing can continue
VRMExporterv0.js:1162 Uncaught (in promise) RangeError: Maximum call stack size exceeded
    at new MeshData (VRMExporterv0.js:1162:34)
    at VRMExporterv0.js:224:39
    at Array.forEach (<anonymous>)
    at VRMExporterv0.parse (VRMExporterv0.js:219:16)
    at download-utils.js:314:14
    at new Promise (<anonymous>)
    at parseVRM (download-utils.js:244:10)
    at getVRMData (download-utils.js:137:10)

looks like its fixed now


Automate charm build/upload environment

Utilize a Makefile and lxd for a self contained charm build and upload capabilities
Signed-off-by: Adam Stokes<EMAIL_ADDRESS>

I'm personally not a fan of the use of LXD here. It makes sense in the context of CI, but it doesn't make for a good developer experience for local development.
If I don't run make clean, then the container sits there running 24/7 using up system resources.
If I do run make clean, then next time I run make charm, it has to re-run the setup-env target, which takes several minutes (4m46s on my last run).
See also my concerns about the .charm file and docker image being buried away in the LXD container.


New check: unpinned repo clone

Is your feature request related to a problem? Please describe.
detect git, hg and other source management tools used to clone repo without pinning by hash. This sometimes happens in Makefiles or shell scripts to pull dependencies.
This check is problematic because there are many legitimate reason to do this, especially for one's own repo. Example, for integration tests, etc.
Maybe we could detect repo clones that are different from the repo itself. Note that dependabot probably does not support updating the version of a cloned repo.
Describe the solution you'd like
need discussion
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
need discussion
Additional context
Add any other context or screenshots about the feature request here.

possible patterns to check for:

Git/hg repo clon
Curl github.com/bla/bla/releases/download/bla
Curl tarball

Support all

Here's my opinion: we should not do unpinned dependency checks for dependency types not supported by dependabot. If a developer modifies their code to clone a git repo at a certain commit hash, chances are that hash will not be updated for years, if ever. Yes, they will be protected from someone pushing malicious code to that git repo in the future, but they will also miss out on vulnerability and other bug fixes. Without dependabot, I would say the developer would be less secure by pinning a hash.

it would be good to flag it nevertheless, because it's a potential risk. Any thoughts on warning without recommending pinning by hash?

Yeah, I think if we just noted this as a warning, but didn't recommend pinning, that would be a good approach.

do you know if dependabot/renovatebot support commands within shell script/makefiles go install bla@something? I'm also curious about GCB's cloud.yaml files https://github.com/ossf/scorecard/issues/1503
cc @rarkins

Right now we don't support arbitrary scripts unless you're self hosting. For the app it's too high risk

@rarkins do you mean it's too risky to parse arbitrary shell scripts?
Let me give you a concrete example of what I meant.
if I have a workflow using uses: some/action@somehash, renovate-bot is able to send PR to update the hash when a new action of released.
If I use run: go install somepackage@hash, is renovaote-bot able to understand that I depend on somepackage, even though it's part in a go.sum file?
More generally, is removate-bot capable of understanding cloud.yaml depedencies given via args, or commands such as git reset --hard SOME_HASH. (This one clearly looks harder)

Sorry, I misunderstood.
Renovate attempts to understand as many patterns as it can out of the box, but it doesn't know those ones. For ones like that which it doesn't understand, users can add regex patterns to identify them for Renovate. The feature is know as the "regex manager": https://docs.renovatebot.com/modules/manager/regex/

Interesting, thanks for the info.


[add] skip mongoid query cache

and spec

Coverage increased (+0.009%) to 82.772% when pulling 3bc1098b3524e8e04f9a0bba9f772b6b41cfc5a4 on tany:skip-mongoid-query-cache into 321666f2a333456022e12baa61cadba6b91fe664 on shirasagi:master.


WIP: Handle directv DVR unreachable on initialization

Description:
Allow DVR being powered off or in any other way being unreachable when entity is initialized.
This PR is dependent on PR #19049 being merged first.
Checklist:

[X] The code change is tested and works locally.
[X] Local tests pass with tox. Your PR cannot be merged unless tests pass
[X] There is no commented out code in this PR.

The dependent PR was not merged.  Please open a new PR if you wish to continue with these contributions.


Chrome 45 WebRTC Upgrade, H.264 & Pooled Capture Pipeline

Brings PerchRTC up to date with upstream WebRTC changes and more:

Update WebRTC to Chrome 45 release branch
Customize WebRTC source to support pooled capture memory
Pass CMSampleBuffers into the pipe, converting to pooled I420 memory using a new VideoFrameFactory subclass
Reduced copies and format conversions for padded frame buffer inputs
Adds support for H.264 video codec

TODO:

[ ] Use new RTCConfiguration APIs for ICE transport, and candidate filtering
[ ] Modify WebRTC source to configure the AVAudioSession, and drop PHAudioSessionController
[ ] See if capture changes are easily ported to Chrome 46?

@samsymons Lets chat and figure out how to land these changes.

@ceaglest Sounds good, I'm gonna take a good look at these changes after lunch.

@samsymons The WebRTC changes can be found here: https://github.com/ceaglest/nighthawk-webrtc


LD_LIBRARY_PATH on Mac OS

I am getting the errror WARNING: erroneous pipeline: no element "kvssink" which I believe is due to not setting LD_LIBRARY_PATH appropriately.
However, all attempts to set LD_LIBRARY_PATH fail as it seems to be a protected environment variable in Mac OS.
Has anyone run into this?

This Mulesoft gives a concise explanation of the issue.
They recommend turning off System Integrity Protection (SIP) but I'm not quite ready to do that. Is there another way to workaround this?

I assume you are using Mac OS Catalina and it fails due to the SIP. I haven't tested it on Catalina yet. Not sure if there are easy ways other than disabling SIP.
However, prior doing that. Have you tried specifying GST_PLUGIN_PATH?

@MushMal yeah GST_PLUGIN_PATH is specified.
C++ is outside my usual wheelhouse but would it be possible to create a symbolic link inside of the directories in the MacOS LD_LIBRARY_PATH?

I went ahead and disabled SIP and successfully reran the build but it still can't find kvssink:

Just to confirm, you do specify the path correctly? using 'pwd' points to it correct?
Nothing stands out immediately as to why it's not loading except the incorrect path. Could you also set
export GST_DEBUG=5
to get more debug spew from GStreamer?

when you run which gst-launch-1.0 what does it return? can you try also export GST_PLUGIN_PATH_1_0 to the same path?

Yes paths are set to same dir as from where I'm running and gst-launch path set to /usr/local/bin/gst-launch-1.0:

gst-launch path is set to which points to /usr/local/bin/gst-launch-1.0  `../Cellar/gstreamer/1.16.2/bin/gst-launch-1.0
Bottom part of debug output:
0:00:04.028845000  6638 0x7fa3dcc0cc00 DEBUG        GST_PERFORMANCE gstminiobject.c:428:GstMiniObject *gst_mini_object_make_writable(GstMiniObject *): copy GstCaps miniobject 0x7fa3de0049e0 -> 0x7fa3de005000
0:00:04.028856000  6638 0x7fa3dcc0cc00 DEBUG               GST_PADS gstpad.c:4077:gboolean gst_pad_query(GstPad *, GstQuery *):<h264parse0:sink> sent query 0x7fa3de004b20 (caps), result 1
0:00:04.028863000  6638 0x7fa3dcc0cc00 DEBUG               GST_CAPS gstutils.c:3065:GstCaps *gst_pad_query_caps(GstPad *, GstCaps *):<h264parse0:sink> query returned video/x-h264
0:00:04.028874000  6638 0x7fa3dcc0cc00 DEBUG               GST_CAPS gstpad.c:2278:gboolean gst_pad_link_check_compatible_unlocked(GstPad *, GstPad *, GstPadLinkCheck):<vtenc_h264_hw0:src> src caps video/x-h264, width=(int)[ 1,<PHONE_NUMBER> ], height=(int)[ 1,<PHONE_NUMBER> ], framerate=(fraction)[ 0/1,<PHONE_NUMBER>/1 ], stream-format=(string)avc, alignment=(string)au
0:00:04.028940000  6638 0x7fa3dcc0cc00 DEBUG               GST_CAPS gstpad.c:2280:gboolean gst_pad_link_check_compatible_unlocked(GstPad *, GstPad *, GstPadLinkCheck):<h264parse0:sink> sink caps video/x-h264
0:00:04.028949000  6638 0x7fa3dcc0cc00 DEBUG               GST_CAPS gstpad.c:2298:gboolean gst_pad_link_check_compatible_unlocked(GstPad *, GstPad *, GstPadLinkCheck): caps are compatible
0:00:04.028958000  6638 0x7fa3dcc0cc00 INFO                GST_PADS gstpad.c:2586:GstPadLinkReturn gst_pad_link_full(GstPad *, GstPad *, GstPadLinkCheck): linked vtenc_h264_hw0:src and h264parse0:sink, successful
0:00:04.029022000  6638 0x7fa3dcc0cc00 INFO               GST_EVENT gstevent.c:1579:GstEvent *gst_event_new_reconfigure(void): creating reconfigure event
0:00:04.029034000  6638 0x7fa3dcc0cc00 DEBUG              GST_EVENT gstevent.c:309:GstEvent *gst_event_new_custom(GstEventType, GstStructure *): creating new event 0x7fa3dd04d960 reconfigure 61441
0:00:04.029043000  6638 0x7fa3dcc0cc00 DEBUG              GST_EVENT gstpad.c:5698:GstFlowReturn gst_pad_send_event_unchecked(GstPad *, GstEvent *, GstPadProbeType):<vtenc_h264_hw0:src> have event type reconfigure event: 0x7fa3dd04d960, time 99:99:99.999999999, seq-num 15, (NULL)
0:00:04.029049000  6638 0x7fa3dcc0cc00 INFO               GST_EVENT gstpad.c:5813:GstFlowReturn gst_pad_send_event_unchecked(GstPad *, GstEvent *, GstPadProbeType):<vtenc_h264_hw0:src> Received event on flushing pad. Discarding
0:00:04.029088000  6638 0x7fa3dcc0cc00 DEBUG                GST_BUS gstbus.c:316:gboolean gst_bus_post(GstBus *, GstMessage *):<bus1> [msg 0x7fa3de03c820] posting on bus structure-change message: 0x7fa3de03c820, time 99:99:99.999999999, seq-num 16, element 'sink', GstMessageStructureChange, type=(GstStructureChangeType)GST_STRUCTURE_CHANGE_TYPE_PAD_LINK, owner=(GstElement)"\(vtenc_h264_hw\)\ vtenc_h264_hw0", busy=(boolean)false;
0:00:04.029101000  6638 0x7fa3dcc0cc00 DEBUG                    bin gstbin.c:3720:void gst_bin_handle_message_func(GstBin *, GstMessage *):<pipeline0> [msg 0x7fa3de03c820] handling child sink message of type structure-change
0:00:04.029109000  6638 0x7fa3dcc0cc00 DEBUG                    bin gstbin.c:958:void bin_remove_messages(GstBin *, GstObject *, GstMessageType):<h264parse0:sink> deleting message 0x7fa3de03c920 of type structure-change (types 0x00001000)
0:00:04.029245000  6638 0x7fa3dcc0cc00 DEBUG                GST_BUS gstbus.c:351:gboolean gst_bus_post(GstBus *, GstMessage *):<bus1> [msg 0x7fa3de03c820] dropped
0:00:04.029257000  6638 0x7fa3dcc0cc00 DEBUG       GST_ELEMENT_PADS gstutils.c:1904:gboolean gst_element_link_pads_full(GstElement *, const gchar *, GstElement *, const gchar *, GstPadLinkCheck): linked pad vtenc_h264_hw0:src to pad h264parse0:sink
WARNING: erroneous pipeline: no element "kvssink"

you can do gst-inspect-1.0 appsink and in the plugin details you will see where the file is. Most likely in /usr/local/lib/gstreamer-1.0/. You can copy the libgstkvssink.so there and you wont need the GST_PLUGIN_PATH and GST_PLUGIN_PATH_1_0 environment variable anymore.

Thanks. This got me further but I then hit an issue with finding openssl which I assume is totally unrelated. Closing this issue.


[5.1] Enabling array on method has()

Oh god.. why? i cant remove thats spaces ...

@urameshibr use the auto-generated patch and squash commits https://styleci.io/analyses/qM1d04/diff

We don't really bring unnecessary features back into 5.1, just bug fixes.


Update README.md

Updated the example to include the source

this seems to have gotten fixed in the background, closing pr.


Cannot configure CUSTOM with other propagations

Describe the bug
When setting spring.sleuth.propagation.type=W3C,B3,CUSTOM I would expect to be able to include my own propagation as the last item in the list of propagators.
However, in CompositePropagationFactorySupplier we create the CUSTOM propagator by using beanFactory.getBeanProvider(PropagationFactorySupplier.class). It is not possible to provide a bean of type PropagationFactorySupplier without overriding the behaviour entirely.
	@Bean
	@ConditionalOnMissingBean
	PropagationFactorySupplier compositePropagationFactorySupplier(BeanFactory beanFactory,
			SleuthBaggageProperties baggageProperties, SleuthPropagationProperties properties) {
		return new CompositePropagationFactorySupplier(beanFactory, baggageProperties.getLocalFields(),
				properties.getType());
	}

If I provide a Propagation.Factory then this completely removes Spring integration as org.springframework.cloud.sleuth.autoconfig.brave.BraveBaggageConfiguration#sleuthPropagationWithB3Baggage gets overridden.
NB
Using CUSTOM without providing a PropagationFactorySupplier results in CompositePropagationFactorySupplier injecting itself into itself.
Sample
https://github.com/borismorris-anaplan/sleuth-bug-recreate
I have added two profiles

propagation-factory registers the Propagation.Factory as a bean
propagator-supplier registers a PropagationFactorySupplier as a bean

Can you please answer all the required questions described in the issue template? For your convenience let me paste it here

Describe the bug
Please provide details of the problem, including the version of Spring Cloud that you
are using.
Sample
If possible, please provide a test case or sample application that reproduces
the problem. This makes it much easier for us to diagnose the problem and to verify that
we have fixed it.

@marcingrzejszczak I believe I have done so.

I never thought that you can have both custom and other types really. I thought that you can have B3,W3C OR Custom. What's the use case really?

My use case is a graceful transition from custom propagation to standardised - so what I'd like is

the I receive standard headers, use those
otherwise fall back to custom propagation

Eventually we hope to phase out custom and just use the standard headers - having custom propagation at the end of the list allows a transparent transition.
And I would like to forward all headers downstream whilst we are transitioning for the same reason.
I have currently implemented this as a "decorator" pattern - with the custom propagation wrapping the Sleuth provided one (whichever is configured) and only applying its rules if that doesn't extract. This works, but I was hoping to move to the "idiomatic" solution - which from the docs I took to be adding CUSTOM as the last item in the propagation list.

My use case is a graceful transition from custom propagation to standardised - so what I'd like is

I understand. That sounds like a valid use case.

I have currently implemented this as a "decorator" pattern - with the custom propagation wrapping the Sleuth provided one (whichever is configured) and only applying its rules if that doesn't extract. This works, but I was hoping to move to the "idiomatic" solution - which from the docs I took to be adding CUSTOM as the last item in the propagation list.

That's what I would assume that should be done really

Can you present how you've applied the decorator pattern? I'm still on the fence whether just documenting how to achieve this wouldn't be enough (until now nobody else has been complaining about lack of this feature).

If you would like us to look at this issue, please provide the requested information. If the information is not provided within the next 7 days this issue will be closed.

Closing due to lack of requested feedback. If you would like us to look at this issue, please provide the requested information and we will re-open the issue.

Hello, @marcingrzejszczak!
Also faced the need to add b3 and custom propagations together.
Can you please support the ability to add custom propagation along with the existing in CompositePropagationFactorySupplier?

I would say that this is a missing feature and Sleuth is feature complete so currently we're not planning to add any new features.