There are really good advantages to having three jars.

Hi Rob,
You are probably not looking for commentary on this but apparently I follow you and this popped up on my github recs... so here we go based on my experience:
I understand and agree multiple artifacts are painful particularly in the context of an application going full dependency inversion instead of a library. It is painful in almost any IDE to see 3 projects instead of just 1 (albeit Eclipse IMO much better than intellij on this because of its "Working Sets"). This is largely a waste because although the separation particularly compile time separation is good it is unlikely there will ever be multiple services/plugins.
However it should be noted in the context of libraries there are multiple implementations. Not just multiple implementations but possibly implementations that extend others.
The last sentence is important.
Let us take logback as an example. Let us say I want to make a new plugin SLF4J that extends logback. You cannot do it today because SLF4J only allows one implementation and unfortunately the logback does not have its implementation separated from the actual service registration (module-info and META-INF/servces.
Thus based on my experience ideally a library that wants to allow extending (perhaps through inheritance) have their plugin jar ONLY have the service registration (and corresponding class service provider implementation).
module spec.a {
  exports spec;
  uses spec.SPI;
}

module lib.b {
  exports lib.b;
  requires transitive spec.a;
}

module lib.b.spec.a {
  requires lib.b;
  requires spec.a;
  provides spec.SPI with LibBSpec;
}

// Now my plugin that wraps lib.b

module myplugin {
  requires lib.b;
  provides spec.SPI with MyPlugin;
}

I guess what I'm saying is a problem with the ServiceLoader is that just by adding a jar you are opting in that it is the implementation but what happens if you just want to extend the implementation. Perhaps this is not a common use case but there have been many times I have wanted to wrap Logback but cannot.

Great comments and certainly raises points that I had not thought about - thanks for that!!  I'll leave this issue open for other people who wander here to read etc.
For people who are not aware, this project was created to help with a discussion on the jigsaw-dev mailing list about this pattern and https://bugs.openjdk.org/browse/JDK-8299504 .How this pattern works in classpath, no longer works in module-path (hence the JDK bug logged), and what the options are for dealing with that for libraries that want to support both classpath and module-path).
I'll look to add a link to that jigsaw-dev discussion / thread some time.
Cheers, Rob.

Oh yes I forgot about that problem. Was it brought back up? I have been unsubscribed lately from the jdk dev mailing list.
Another issue with the module-info.java that is apropo to our projects is you can't generate a listing of providers and concatenate them like you could with META-INF/services. Well that I know of.
The META-INF/services was an easy pseudo-non-reflection (it still is reflection but Graal VM native can use it as a hint as a reachable class) way to generate a list of generated classes. I suppose you bytecode could alter the module-info class file but that seems wrong.
One thing that module-info.java provides does have going for it (that few know about) is that you can use a static method called provider instead of no-arg constructor. This I suppose slightly mitigates the extra jar problem you as don't need a proxy/forwarder/decorator type implementation (that would then call the other jars real implementation as I'm fairly sure you can't provides ... with another class that isn't in your module... fairly sure).

Oh yes I forgot about that problem. Was it brought back up?

Yes, by me - https://mail.openjdk.org/pipermail/jigsaw-dev/2023-April/014846.html

you can use a static method called provider instead of no-arg constructor.

I only just saw that the other day. I'm wondering if that existed/works in Java 11 via classpath so looking to check that sometime. At the time it didn't look like a module-info only thing to me so I'll look to check that.

method called provider ... slightly mitigates the extra jar problem

As I see it no it won't help for this particular case. Ultimately the issue is that for provides <interface> with ... that <interface> type MUST be a class that exists and resolvable in module-path (unlike classpath where it is allowed to not exist). Ultimately, today this means that the provides ... clause needs to move into another jar so that it is in a different module - which then guarantees that for module-path the service implementation is only accessible if the service interface type is accessible.
Its a solution that is growing on me each time I look at it :)
A future Java might support multiple modules in a single jar but that sounds like it would be quite some before before it arrives and can be adopted by libraries.


Can't install, composer fails

Composer fails in installing with the following error:
Problem 1
- himiklab/yii2-search-component-v2 2.0.1 requires zendframework/zendsearch * -> no matching package found.
- himiklab/yii2-search-component-v2 2.0.0 requires zendframework/zendsearch * -> no matching package found.
- Installation request for himiklab/yii2-search-component-v2 * -> satisfiable by himiklab/yii2-search-component-v2[2.0.0, 2.0.1].

Add to your composer.json:
"zendframework/zendsearch": "2.0.0rc5"
and
"zendframework/zend-stdlib:": "2.0.0rc5"

Thanks. But it seems that zend-stdlib is no longer available in v. 2.0.0rc5. If I install a later version, zendsearch is still complaining it can’t find the right stdlib... sigh

Sjaak Priester
<EMAIL_ADDRESS>Van: Dmitrii Bondarenko<EMAIL_ADDRESS>Verzonden: donderdag 18 juni 2015 13:24
Aan: himiklab/yii2-search-component-v2
CC: Sjaak Priester
Onderwerp: Re: [yii2-search-component-v2] Can't install, composer fails (#5)
Add to your composer.json:
"zendframework/zendsearch": "2.0.0rc5"
and
"zendframework/zend-stdlib:": "2.0.0rc5"
—
Reply to this email directly or view it on GitHub https://github.com/himiklab/yii2-search-component-v2/issues/5#issuecomment-113119676 .  https://github.com/notifications/beacon/AFU71seccMo-WlXgW531dbg7m_rTmnzhks5oUqHBgaJpZM4FGMXu.gif

I add:
"zendframework/zendsearch": "2.0.0rc5",
"zendframework/zend-stdlib": "2.3.1 as 2.0.0rc5",
"himiklab/yii2-search-component-v2": "*"

https://github.com/himiklab/yii2-search-component-v2/commit/ca2867dd577c035a840b4bd1e107b41a10476b23


Regex mechanism refactoring and add tests for it.

Codecov Report

Merging #84 into 0.7.x-develop will decrease coverage by -0.02%.
The diff coverage is 86.56%.

@@                Coverage Diff                @@
##           0.7.x-develop      #84      +/-   ##
=================================================
- Coverage          83.19%   83.18%   -0.02%
=================================================
  Files                107      106       -1
  Lines               4839     4989     +150
  Branches             833      859      +26
=================================================
+ Hits                4026     4150     +124
- Misses               593      614      +21
- Partials             220      225       +5

Impacted Files
Coverage Δ

...a/com/github/dakusui/jcunit/core/tuples/Tuple.java
94.59% <ø> (ø)
:white_check_mark:

...hub/dakusui/jcunit/exceptions/JCUnitException.java
80% <ø> (ø)
:white_check_mark:

.../jcunit/plugins/caengines/ipogc/GroupedFactor.java
91.3% <ø> (ø)
:white_check_mark:

.../com/github/dakusui/jcunit/core/utils/IOUtils.java
61.97% <0%> (ø)
:white_check_mark:

...com/github/dakusui/jcunit/core/factor/Factors.java
88.77% <0%> (-0.92%)
:x:

.../com/github/dakusui/jcunit/core/factor/Factor.java
88.23% <100%> (+0.73%)
:white_check_mark:

...a/com/github/dakusui/jcunit/core/utils/Checks.java
88.63% <100%> (ø)
:white_check_mark:

...lugins/constraints/SmartConstraintCheckerImpl.java
65.21% <100%> (+5.21%)
:white_check_mark:

...java/com/github/dakusui/jcunit/regex/Composer.java
100% <100%> (ø)
:white_check_mark:

.../java/com/github/dakusui/jcunit/regex/Printer.java
100% <100%> (ø)
:white_check_mark:

... and 13 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 4156897...d77cdf2. Read the comment docs.


Revit: saved file does not receive the latest commit

Streams received and saved in a Revit files that is reopened do not pull the latest commit.
Seems like it has cached a version and keeps pulling that unless there is an update in the stream.
To reproduce:

create a stream and send something to it (commit A)
crerate a revit file, pull that stream
save the revit file and close it
push new updates to the stream (commit B)
reopen the revit file and pull from the saved stream
you get commit A instead of B

This is fixed by implementing a "latest" entry in the commit list, the Stream is still not pulling all the latest commits when opened, but that's a separate issue.


Update documentation and guides with picture of error task

Like with asynchronous task PillboxView/PillView/completedTask(state:completionHandler:), include pictures and animations of revealing and dismissing.

![Uploading 166125398...]

video!


l10n: add basic localization support to device abstraction

Reviewer: @shakyShane
Asana: https://app.asana.com/0/72649045549333/1206933877192895
Description
(Reimplements #540 in a mergeable state 😄)
This is a series of four commits (each individually buildable and testable, ready for a rebase merge or merge commit) that add support for localization to the autofill HTML UI. Check each commit message for more details, but the TL;DR is:

Add .userPreferences.language to runtime configuration
Implement basic translation and wire it up to the Device abstraction
Copy the already-provided language from the extension's runtime config
Translate two strings as a small demo

Steps to test

The usual npm run verify:local on each commit
On the final commit, test end-to-end with the xa pseudolanguage:

npm run build in this repo
Clone https://github.com/duckduckgo/duckduckgo-privacy-extension next to this repo if you haven't yet
Apply this patch
npm install && npm link ../duckduckgo-autofill && npm run dev-chrome in that repo
Launch Google Chrome and load a signup page
You should see translated (in a pseudolocale) text for the "Use personal duck address" button

Thanks @sjbarag, looking great!
I made some tiny suggested changes re: == purely for consistency reasons with the rest of codebase (and the fact that the things that can trip up a falsy check like NaN, empty strings, etc. won't apply here)

Thanks! Yeah I intentionally used == null since it covers both null and undefined, but happy to switch to a truthy/falsy if that's y'alls convention.

Then I have 2 questions:

did you realise there's other tooltips to include in this PR? - or is there some agreement to only tackle EmailHTMLTooltip for now?

I did! I plan to tackle those in a separate PR (mentioned in the fourth commit's body). This is meant to be a single mergeable slice, so that we can focus on the implementation of the string lookups and a single use of it without being overwhelmed by every use at once. If that doesn't jive with the typical conventions, let me know and I can adjust. Just trying to give you smaller PRs to review 🙂

do you have next steps for getting all the strings? My assumption is that you'll want to complete 1 first so that you have the list, then you can submit to smartling (which we can help with if you've not done it before)

Yep, I'm sorted there. There's a list of likely-affected files in https://app.asana.com/0/0/1206773790755258/f , and I'll otherwise just gather all those strings in one place in a separate PR.

== null comparisons removed!

@sjbarag  ah! yeah I wasn't looking directly at each commit's body, so I missed your mention of getting a minimal viable implementation into prod.
I think that idea is great - especially since we opted for a default now.

@sjbarag Since these codepaths will be executed by other platforms, albeit not the actual strings yet - could you confirm if you've run this on macOS or any other platform yet?

@sjbarag Since these codepaths will be executed by other platforms, albeit not the actual strings yet - could you confirm if you've run this on macOS or any other platform yet?

Oh sure — I've run it on macOS as well. I'm about to put the macOS PR up actually. Here's a screenshot of it working (in the pseudolocale):

Ok great - and just for 100% clarity on my part: in terms of the extension providing a locale that we don't have yet (since we have only en in this mvp) - the expectation from the code is that we'll always fall back to en no matter what (for now)

Ok great - and just for 100% clarity on my part: in terms of the extension providing a locale that we don't have yet (since we have only en in this mvp) - the expectation from the code is that we'll always fall back to en no matter what (for now)

Correct! There's a test case guaranteeing that (https://github.com/duckduckgo/duckduckgo-autofill/pull/541/files#diff-01543a32cd45531cc04bd47ecf3f28069163dfcc33859e5af67e16552df9c114R12-R17)

This is on-hold while I help out on another project. I'll be back for it.
@GioSensation / @shakyShane I'll leave it up to you if you want to close it or leave it up in the interim.

Phew, okay ${other_project} has settled down so I'm back to this. Rebased on 31dbb85 (Minor fix (#554), 2024-05-01) and took @GioSensation's suggested changes. Ready for another look when someone's available :)

Merged via #557


use a function _process_one_batch to reduce code duplication.

use a function _process_one_batch to reduce code duplication.

Thank you very much for your excellent work


Add Splash to Showcase

Add an additional react native app to the showcase page.

By analyzing the blame information on this pull request, we identified @brentvatne and @manonthemat to be potential reviewers.

Thank you for your pull request and welcome to our community. We require contributors to sign our Contributor License Agreement, and we don't seem to have you on file. In order for us to review and merge your code, please sign up at https://code.facebook.com/cla - and if you have received this in error or have any questions, please drop us a line at<EMAIL_ADDRESS>Thanks!

Hello @alexleventer! Congrats on the app :) Could you put this in alphabetical order? And while you're there I noticed there's a couple that are out of order, could you sort those out? Thanks! :pray:

Thank you for signing our Contributor License Agreement. We can now accept your code for this (and any) Facebook open source project. Thanks!

@brentvatne done 💯

@facebook-github-bot shipit

@alexleventer updated the pull request.

Thanks for importing. If you are an FB employee go to Phabricator to review.


Unroot senarios.

I upgraded from karate 6.0 to 7.0 with the required java 8 version and although all senarios pass; they are unrooted. This means that they are not seen as children of a feature to the junit runner. I have done an quick quick investigation and it appears to be related to the new Karate class description handling.

hmph. would have been nice if folks had tried all the RC releases and reported this way earlier :\
I'm inclined to think that this is an Eclipse bug: https://stackoverflow.com/questions/48795408/unrooted-tests-displayed-in-junit-runner

I agree it’s most likely a bug in eclipse. As I said, things work fine just not so nice in development. Will have a quick look if there is something that can be done. 🧐

@jbadeau no worries. I also can see where I made changes in the description which confuses eclipse. I will keep this thread updated in case if figure this out

@jbadeau can you take a look. it looks fixed

Using a build from develop branch, this appears to have resolved the issue.

Awesome. Will also verify tomorrow too. Thanx for the fast fix

this has been released as <IP_ADDRESS>

This is resolved for me with this build. Thanks for fixing.

released 0.8.0


Fix abbr text in Explorer view header

Thanks for your work on this!
Spotted a couple of spelling mistakes, fixed in this PR.

Thanks for this PR ! Correct spelling is very important for the credibility of PhpMetrics :+1:


Update DataUtils.py

Changes made to import to support Python 3.10

Imports fail of this file on Python 3.10. Fix applied


I believe the Group Writeback feature of AAD Connect is now GA and not Preview

The doc link mentions it is currently preview, but I believe it went GA.
The group Writeback was removed from the preview docs here:  https://docs.microsoft.com/en-us/azure/active-directory/hybrid/how-to-connect-preview
Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 2b994ee0-d0b5-715f-bc48-44d8256499d7
Version Independent ID: 6fda2b17-e142-8087-b47f-f589a3cfa1d8
Content: PowerShell V2 examples for managing groups - Azure AD
Content Source: articles/active-directory/users-groups-roles/groups-settings-v2-cmdlets.md
Service: active-directory
Sub-service: users-groups-roles
GitHub Login: @curtand
Microsoft Alias: curtand

@JefTek
Thanks for your feedback! We will investigate and update as appropriate.

You're right - thanks for this feedback. The release notes even have it as GA but it looks like this document just wasn't updated yet. https://docs.microsoft.com/en-us/azure/active-directory/hybrid/reference-connect-version-history
Making a pull request to update this.

Hi @JefTek,
Sorry, I spoke to a few different PMs on that team and one said it was in GA, but I just got confirmation that this is still in Preview. So I am closing out the pull request.


Null Pointer Exception in Jolokia Agent Cleanup Thread

With jolokia 1.3.5 loaded into Apache Cassandra jvm as an agent I hit once:
ERROR [Jolokia Agent Cleanup Thread] 2017-04-15 12:47:51,639  CassandraDaemon.java:207 - Exception in thread Thread[Jolokia Agent Cleanup Thread,5,main]
java.lang.NullPointerException: null
	at org.jolokia.jvmagent.CleanupThread.joinThreads(CleanupThread.java:101) ~[jolokia-jvm-agent.jar:na]
	at org.jolokia.jvmagent.CleanupThread.run(CleanupThread.java:60) ~[jolokia-jvm-agent.jar:na]

This is not repeatable, happened only once so far.

https://github.com/rhuss/jolokia/blob/a490b30923dbca1feb57da860ed316cc267d0eb4/agent/jvm/src/main/java/org/jolokia/jvmagent/CleanupThread.java#L101

Thanks @apupier


What about dotty ?

everything's in the title :)

would like to see that one as well now that 3.0.0 is released :)

@plokhotnyuk


generateJava code for client when generateClient  is true

Is there a way to generate java code for the when generateClient is set to true?

I had missed the generate-sources folder created by codehaus maven-plugin


feat: Copy to Clipboard

Adds an option to copy hashtags to the clipboard for pasting into Twitter/X.

!Button to show textarea](https://github.com/StanleyMasinde/hashtags/assets/3967097/f6ab1aaa-62f5-490a-93d1-284874dba4f6)

Please resolve the conflicts


Support Least Connections Load Balancing

It would be awesome if Fabio supported least connections load balancing.
There are cases when load balancing across multiple instances of the same service, some instances may become more overloaded than others due to a variety of factor such as heterogeneous hw, the nature of the request, etc. By using a least connections load balancing approach, we were able to see problems like this disappear. However, Fabio does not support it.
I propose that Fabio read the load balancing algorithm via tags similar to the way the urlprefix tag is implemented. This allows flexibility in letting the application tell Fabio what algorithm to use.

I've split this into two issues:

specify the balancing algorithm in the tag, e.g. urlprefix-/foo strategy=rr (see #251)
support least connections balancing (this ticket)

Since I want to avoid keeping state across a cluster of fabio instances each fabio would have to keep its own LCR table per route. I'm trying to think whether this would defeat the purpose of this feature. I don't think so but I'm open for suggestions.

+1 to not keeping state across a cluster of fabio instances. I don't think it is necessary and is more of a hard to implement "nice to have".

I am wondering how least conn routing interacts with weighted routes. How should this work if you want lconn routing but send 5% of traffic to the services with the green tag?
I think to make this work you'd need a multi-stage selection process.

Find the services which serve the route
Find the set of services which should handle the request based on weight
Find the instance which should handle the request based on the strategy.

I could hack this into the existing code but this feels quite messy. Maybe a multi-stage filtering approach is better and more maintainable in the long run. A generic route filter function like the one below is probably more maintainable in the long run.
type RouteFilter = func(r []*Route) []*Route

hostFilter, prefixFilter, weightFilter, lconnFilter, rndFilter, rrFilter, ...

Start with all routes and apply the filters in a given order. At the end pick the first remaining target. This could create a lot of allocations but I might get around this.
I have to play with this a bit.

I am not even sure if it makes sense to have least connections and weighted routes. They seem to be incompatible concepts by nature.
Although the approach above you suggested might work, I fail to imagine what use cases one might run into where they would need both least connections and weighted routes on the same service. From my POV, I would be ok with treating them as incompatible and exclusive settings.

The use case is that you use weighted routing for blue/green deployments and the least conn target selection to handle heterogeneous setups. I think the two concepts are orthogonal.

I see, I misunderstood weighted routing for load balancing weights. This does make sense...

The LB weights are computed automatically.

Hey @magiconair, is least connection support on fabio still in the radar? :)

Hey @magiconair, is least connection support on fabio still in the radar? :)

Or @magiconair, possibly any other load balancing strategies for that matter? Latency-based load balancing would be nice.


Add support for uncompressed .img.tar.xz images

I tested this on my OXP Mini and seems to work fine. Some notes I did see however.

It takes longer to deploy a .img than .img.tar.xz for some reason.
It's still much faster than needing to compress the image and then deploy it after.

This can make for a rather speedy test environment for local builds of ChimeraOS.

The speed difference could be that decompression overhead is lower than loading more data from the disk.


#5 New metric: age of class in hours

adding metric from #5

@yegor256 seems like its done, idk whats wrong ith macOS again

@lueFlake thanks!


Way around limitations of using /mnt/c/Windows/System32/cmd.exe /C <app.exe>

SORRY,
This is not the appropriate forum for my inquiry..  I had posted a question under 'WSL' tag in stackoverflow and did get much help so..
I use the command such as :
/mnt/c/Windows/System32/cmd.exe /C R     or    /mnt/c/Windows/System32/cmd.exe /C TERR.exe
to run my R installed in windows & use tmux/vim its quite useful and I am adopting to it, time permitting reading about this-or-that to get the most out of it.
There are issues I have noticed such as I cannot scroll the past commands with the up-arrow or use history( ) with R launched in WSL with /mnt/c/Windows/System32/cmd.exe /C R --vanilla
My question is if I want to run R that is installed in windows (I know I can install R on WSL-Bash with apt-get install but If I want to run a app installed on windows using /mnt/c/Windows/System32/cmd.exe /C <app> after giving its path in windows - this dose not seem to be the intended way of doing this, so is there a better way that I am missing?
Again sorry for posting a question here but if there is a better forum than stackoverflow WSL thread please share.
Thanks.

Is R in your Windows path and what version of Windows 10/WSL are you running? I don't remember when it was added but later versions of WSL inherit the Windows path. If your executable is in the path just call it directly, ie: R.exe.

Let me also try different window 10 install.  I am not sure if something is up with my "version".  I have just got a new laptop(GREY laptop) with Windows 10 on it and in that one I yesterday installed WSL, the Ubuntu was 16.04 release, while the laptop I have been using, and I constantly update it too, still has Ubuntu 14.04(RED Laptop).
The the Red laptop that I have been using for some time now, that has been/is my primary laptop is::
Windows 10 Home
Version 1709
OS Build 16299.125
Yes R is in my path(RED laptop), I can start it from command Prompt by typing R, and in WSL/Bash prompt I have to call it with /mnt/c/Windows/System32/cmd.exe /C R if I wish to use the R install on windows, but more importantly when it starts its not like the one that gets started in the Command prompt (the auto complete is not working, nor the the history function, etc)
To clarify my inquiry again :: I need to know if I can Run applications that I can run in windows (cmd prompt) from WSL/Bash without reinstalling them with apt-get (app name) WSL.  Specifically R and Python. (side note: I have Xming that I use and can run firefox or other graphical apps/displays from Bash.)
Thanks for the reply.

@blsingh As long as the the directory your app install is included in the $Path in WSL, you call it directly just as easily as notepad.exe. If you have it on a separate directory, try adding the path into you env var on WSL. You will want to run Python installed from WSL vice Windows due to some limitations on the Windows side but your use case may not see those limitations. Just bear in mind that programming in Linux is often superior to Windows and is part of why we have WSL. I'd recommend using Visual Studio as well if you don't have it already. If you plan on using your old laptop still, you need to update your version of Windows to FCU and/or you can turn it into an Insider build version (or use the newer laptop for Insider) to get the most updated version of WSL.

See #2731.
The interop story is really only a half-measure at the moment. Running commands that exit quickly work very well in interop, but trying to run interactive windows commandline applications probably won't work all that well. In the case of R and python, i'd recommend just installing the linux versions within WSL, it'll make your life 100% easier.

Thanks
I appreciate getting input
The interop stuff is very exciting but it should not become my focal point
as I am student of analytics.  That said It have enjoyed setting up a
workstation where I can work from Bash prompt, use linux utilities to
process files, run Python, R and MySQL from WSL session which I run in tmux
session and thus can save my session(I/O) as well as scripts that can
contain different languages (using vimux/slime).
It all started as I started working with sqlcmd and was hoping to just use
the installation from windows, then I can a different commercial R engine
called TERR.  So I can use both of these in my data analysis session from
Bash prompt and this is how::
/mnt/c/Windows/System32/cmd.exe /C TERR.exe     OR
/mnt/c/Windows/System32/cmd.exe /C sqlcmd
i.e. after they are in my windows PATH and I can run them from wixeendows
Command Prompt.  I will stop trying to dig in deeper here and just enjoy
the functionality I have discovered but its really helpful to hear from
other (working in a vacuum, I am) and get input from what y'all know.
Thanks again, Best.
On Fri, Dec 15, 2017 at 12:53 PM, Mike Griese<EMAIL_ADDRESS>wrote:

See #2731 https://github.com/Microsoft/WSL/issues/2731.
The interop story is really only a half-measure at the moment. Running
commands that exit quickly work very well in interop, but trying to run
interactive windows commandline applications probably won't work all that
well. In the case of R and python, i'd recommend just installing the linux
versions within WSL, it'll make your life 100% easier.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/Microsoft/WSL/issues/2754#issuecomment-352109035, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AViCBqk0fa2lAR_1_siaLNyuLbfuItBqks5tAtwrgaJpZM4RCb2E
.


Allow user specific token lifespans

Instead of keeping the token lifespan only in the global configuration, we added a corresponding method in the User Module. This method may be overriden to return a user specific value for the token lifespan. By default, the global value is used.
Use case: We have users working all day with the application in the company headquarters, who do not want to login after short breaks. Other users access the application just for a few minutes from public computers, for whom we prefer to have a very short token lifespan.

Good work, but seems a specific use case of this gem, I don't know if everyone wants that. Don't you need a migration for this?

That's why I implemented the default token_lifespan method of a User it in an unobtrusive way. The behavior remains the same if you do not want to use this feature. You do not have to care in this case.
If the feature is used, it is left to the programmer to provide a decent implementation for this method. The most obvious case is an accessor method for a database column, and the a migration would be needed. But it really might be anything, so the programmer has full flexibility.

Seems fairly straightforward, especially if it doesn't impact default behavior.

Yeah, this gives more flexibility. I checked and resource isn't null everywhere you replaced the default behavior.

👍 we should cut a release soon...


Bicycling search

A search for "bicycling":

Should trigger the "biking" search:

Deployed on staging

Deployed in production https://github.com/fpdcc/trailsyserver/commit/f38f2173fddbdcdbd366ba08d14478018497696f#diff-98950be441256595938575eb0915b103


Conditionally install different components based on Gentoo USE flags

[ ] The "share_vim" component should correspond with the "vim-syntax" USE flag.
[ ] The "libfildeshcompat" component shouldn't be installed.

It's probably easier to remove the files after installing to the temporary location.


Add DBT Clean as an alias

Migrated from GitLab: https://gitlab.com/meltano/meltano/-/issues/181
Originally created by @bencodezen on 2018-11-27 19:50:19

Users should be able to run dbt clean from the CLI even though things are running in Docker

View 5 previous comments from the original issue on GitLab


Willing To Test!!

I have been searching for a Home Assistant integration of the MicroAir EasyTouch thermostat for about a year now.   I am excited to have found this.  I added the repo to HACS, and installed the Integration.  I have tried to initialize the Integration by entering a Name for the thermostat, as well as the IP addressed assigned to it.  But, I get an error and it does not connect.  The logs show:
Logger: custom_components.microair_climate.config_flow
Source: custom_components/microair_climate/config_flow.py:61
integration: MicroAir_EasyTouch
First occurred: 6:34:10 PM (2 occurrences)
Last logged: 6:34:52 PM
Unexpected exception
Traceback (most recent call last):
File "/usr/local/lib/python3.12/site-packages/aiohttp/connector.py", line 1073, in _wrap_create_connection
sock = await aiohappyeyeballs.start_connection(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/aiohappyeyeballs/impl.py", line 104, in start_connection
raise first_exception
File "/usr/local/lib/python3.12/site-packages/aiohappyeyeballs/impl.py", line 81, in start_connection
sock = await _connect_sock(
^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/aiohappyeyeballs/impl.py", line 166, in _connect_sock
await loop.sock_connect(sock, address)
File "/usr/local/lib/python3.12/asyncio/selector_events.py", line 641, in sock_connect
return await fut
^^^^^^^^^
File "/usr/local/lib/python3.12/asyncio/selector_events.py", line 681, in _sock_connect_cb
raise OSError(err, f'Connect call failed {address}')
ConnectionRefusedError: [Errno 111] Connect call failed ('<IP_ADDRESS>', 80)
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/config/custom_components/microair_climate/config_flow.py", line 61, in async_step_user
info = await validate_input(self.hass, user_input)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/microair_climate/config_flow.py", line 42, in validate_input
if not await hub.test_connection(data[CONF_IP_ADDRESS]):
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/microair_climate/coordinator.py", line 67, in test_connection
resp = await self._session.post(url)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/aiohttp/client.py", line 657, in _request
conn = await self._connector.connect(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/aiohttp/connector.py", line 564, in connect
proto = await self._create_connection(req, traces, timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/aiohttp/connector.py", line 975, in _create_connection
_, proto = await self._create_direct_connection(req, traces, timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/aiohttp/connector.py", line 1350, in _create_direct_connection
raise last_exc
File "/usr/local/lib/python3.12/site-packages/aiohttp/connector.py", line 1319, in _create_direct_connection
transp, proto = await self._wrap_create_connection(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/aiohttp/connector.py", line 1088, in _wrap_create_connection
raise client_error(req.connection_key, exc) from exc
aiohttp.client_exceptions.ClientConnectorError: Cannot connect to host <IP_ADDRESS>:80 ssl:default [Connect call failed ('<IP_ADDRESS>', 80)]

Any assistance with this is greatly appreciated!  I am more than willing to assist with testing.  Thank you for all the work you've done thus far on this.

Hi Michael,
Glad you found it! I did the same... and I figured I'd have to write it for myself. Started with packet capture then some fiddling around in postman, all to figure out they're mostly relaying their data as ascii hex values in HTTP posts.
Quick test- Are you able to use postman to post to the <IP_ADDRESS>/ShortStatus? If you can also send me the result from a POST to <IP_ADDRESS>/controls.xml
You should see something like the following, with maybe less lines. (I have 3 thermostats, and realized that they talk to eachother, negotiate their IDs, and relay eachother's status no matter which one you're communicating with. pretty neat actually)

I just downloaded and installed Postman.  I tried sending a POST to <IP_ADDRESS>/ShortStatus and get this:

When I POST to <IP_ADDRESS>/controls.xml, I receive the same error.
I know that <IP_ADDRESS> is my thermostat IP address, and it's online, active, and I can ping it.  I just confirmed again comparing the Static IP lease in my router to the thermostat's MAC address.  I'm running Firmware <IP_ADDRESS> on the thermostat (if that's of importance).

Hmm. Ok, does it return anything for control.xml?
I think that's how the app discovers capabilities.

I am running the ASY-356-X01, which is the 12VDC EasyTouch RV 356
https://www.microair.net/collections/easytouch-rv-thermostat-coleman-replacements/products/coleman-rv-comfort-2-button-12vdc-only-replacement?variant=43073892876502
I plan to dive in to this a bit more this week to hopefully get some data that might assist with troubleshooting.


Possbility to test file upload initiated by javascript

I have page to test where actual file upload input is hidden and upload itself is triggered with click event from simple button.
With capybara 2.1.0 and capybara webkit 1.0.0 I have no clue how to test this kind of interface. When test trigger click on UI button within capybara-webkit and save screenshot there is no upload dialog present (unlike in real browser).
Also "attach_file" method is failing as file upload input is hidden.

@miks did you solve this?

@acrogenesis I just made form and regular file input visible for tests like (here:  https://github.com/cubesystems/releaf/blob/master/releaf-i18n_database/spec/features/translations_spec.rb#L78)

Thanks that worked :+1:

I'm closing this issue since it seems to be resolved.


What is CPANet?

Could you provide Context Pyramid Attention Network paper as reference? Thanks!

Is there the paper aboat CPANet?thanks!

@terrychenism @StarStyleSky CPANet is our recently work, we are still doing more experiments. The paper will be released as soon as possible.

thanks for your reply@soeaver

Great! How about the multi-scale testing result of CPANet?

Still no released?


IOS Compatibility

Camer freeze in IOS browsers
any solution please?

Can you attach the code you used?

const scanner = new jscanify();
const canvas = document.getElementById("canvas");
const result = document.getElementById("result");
const canvasCtx = canvas.getContext("2d");
const capturedImage = document.getElementById("capturedImage");
// const imageResult = result.getContext("2d");
let videoStream = null;
var resultCanvas = null;

async function startCamera() {
    try {
        const devices = await navigator.mediaDevices.enumerateDevices();
        const videoDevices = devices.filter((device) => device.kind === "videoinput");

        if (videoDevices.length > 0) {
            const videoConstraints = {
                video: {
                    facingMode: "environment",
                    width: { ideal: 800 },
                    height: { ideal: 600 }
                },
                audio: false
            };

            videoStream = await navigator.mediaDevices.getUserMedia(videoConstraints);
            const video = document.createElement("video");
            video.srcObject = videoStream;

            video.onloadedmetadata = () => {
                video.play();

                // Set canvas size to match the screen dimensions
                canvas.width = window.innerWidth;
                canvas.height = window.innerHeight;

                const renderInterval = 100; // Set a frame rate (approximately 30 fps)

                let lastRenderTime = 0;
                const renderFrame = (currentTime) => {
                    if (currentTime - lastRenderTime >= renderInterval) {
                        canvasCtx.drawImage(video, 0, 0, canvas.width, canvas.height);

                        const options = {
                            color:"blue",
                            thickness: 5
                        }
                        // Highlight the paper and draw it on the same canvas
                        resultCanvas = scanner.highlightPaper(canvas, options);
                        canvasCtx.clearRect(0, 0, canvas.width, canvas.height);
                        canvasCtx.drawImage(resultCanvas, 0, 0, canvas.width, canvas.height);

                        lastRenderTime = currentTime;
                    }

                    requestAnimationFrame(renderFrame);
                };

                requestAnimationFrame(renderFrame);

                document.getElementById("captureButton").addEventListener("click", () => {
                    if (videoStream) {
                        const paperWidth = 500;
                        const paperHeight = 1000;
                        const image = new Image();
                        image.src = resultCanvas.toDataURL("image/png");

                        image.onload = function () {
                            const resultCanvas = scanner.extractPaper(image, paperWidth, paperHeight);
                            // imageResult.drawImage(resultCanvas, 0, 0);
                            // document.body.appendChild(resultCanvas);
                            capturedImage.style.outline = "none";
                            capturedImage.style.display = "block";
                            capturedImage.src = resultCanvas.toDataURL("image/png");

                            // Add a download button
                            const downloadButton = document.createElement("a");
                            downloadButton.href = resultCanvas.toDataURL("image/png");

                            downloadButton.download = "captured_image.png";
                            downloadButton.textContent = "Download Image";

                            // Append the download button to the DOM
                            document.body.appendChild(downloadButton);

                            // Trigger a click event on the download button to initiate the download
                            downloadButton.click();
                        };
                    }
                });
            };
        } else {
            alert("No video input devices found.");
        }
    } catch (error) {
        console.error("Error accessing camera:", error);
    }
}

startCamera();

Can you attach the code you used?

Hello sir are you available?

I'm taking a look right now

I'm taking a look right now

Thank you so much

Can you send your HTML too?

Can you send your HTML too?

Capture Image

Is that all the HTML? You are using canvases in your code.

Is that all the HTML? You are using canvases in your code.

yes, im just doing testing

I think I'm missing some HTML here. Can you include the full HTML? For instance, I'm missing a #captureButton.

ok sure

{{--<img src="/https://textract-console-us-west-1-8e174244-799b-42ca-87aa-c9f408a28a6b.s3.us-west-1.amazonaws.com/3/ReceivedTag-1697743231.jpg?X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAZV45IHRYMZ6TMZWR%2F20231024%2Fus-west-1%2Fs3%2Faws4_request&X-Amz-Date=20231024T232449Z&X-Amz-SignedHeaders=host&X-Amz-Expires=3600&X-Amz-Signature=d8af96c032933d297e47670a8170cbda06489198230630e173ece987499711cb" id="image" />--}}

Capture Image

I tested out the code and it appears to be OK. What behavior are you observing on iOS? Is it reading from the camera properly? When does the freezing happen

I don't know whenever i opened the page camera stuck
works well in android

OK so it freezes immediately when you open the page on iOS?

Yes

Check if this fixes your issue https://github.com/opencv/opencv/issues/15707

ok I'll try this and let you know tomorrow

Hello sir have you checked that?

You can directly write a video to a canvas with drawImage.
const video = document.querySelector('video')
const canvas = document.querySelector('canvas')
canvas.getContext('2d').drawImage(video, 0, 0)

the captured picture is too blury

Hi @warisab the jscanify.highlightPaper() method returns a canvas element containing the image.

If you are still having an issue, please let me know and I'll reopen this ticket.


ModuleNotFoundError: No module named 'Questgen'`

I did all these:
pip install git+https://github.com/ramsrigouthamg/Questgen.ai
pip install git+https://github.com/boudinfl/pke.git@69337af9f9e72a25af6d7991eaa9869f1322dd72
python -m nltk.downloader universal_tagset
python -m spacy download en
Then when I run:
from pprint import pprint
import nltk
nltk.download('stopwords')
from Questgen import main
qe= main.BoolQGen()
payload = {
"input_text": "Sachin Ramesh Tendulkar is a former international cricketer from India and a former captain of the Indian national team. He is widely regarded as one of the greatest batsmen in the history of cricket. He is the highest run scorer of all time in International cricket."
}
output = qe.predict_boolq(payload)
pprint (output)
I get the following error:
`---------------------------------------------------------------------------
ModuleNotFoundError                       Traceback (most recent call last)
 in
2 import nltk
3 nltk.download('stopwords')
----> 4 from Questgen import main
5 qe= main.BoolQGen()
6 payload = {
ModuleNotFoundError: No module named 'Questgen'`
Please help

were you able to solve it?

I encountered the same problem.

Many of the packages in setup.py and  requirements.txt are outdated and not compatible with with newer python versions updating packages to last version also causes some other problems

I also have some problems in google colab, it could not run successfully due to the outdated versions of packages and dependecies
At the same time, some package versions have some conflicts
Do you think creating a virtual environment could solve it?

It might help although not the optimal solution, the project doesn't seem abandoned so maybe it can be updated. i tried to update packages but just like you the conflicts prevented me. might work on it later but am too busy right now.

@Cheng-SQ0716 @Rionarth @kanranmm  @whitewhistle fixed problems in forked repo
https://github.com/pooyaEst/Questgen.ai , in colab (updated link in readme of https://github.com/pooyaEst/Questgen.ai ) remember to change git repo to https://github.com/pooyaEst/Questgen.ai

This is solved. Close it


fix: add lint rule for focused tests

Please provide a paragraph or two giving a summary of the change, including relevant motivation and context.
Checklist:
Remove the checklist to signal you've completed it. Enable auto-merge if the PR is ready to merge.

[ ] If the pull request requires a cryptography review (e.g. cryptographic algorithm implementations) I have added the 'crypto' tag.
[ ] I have reviewed my diff in github, line by line and removed unexpected formatting changes, testing logs, or commented-out code.
[ ] Every change is related to the PR description.
[ ] I have linked this pull request to relevant issues (if any exist).

Benchmark results
All benchmarks are run on txs on the Benchmarking contract on the repository. Each tx consists of a batch call  to create_note and increment_balance, which guarantees that each tx has a private call, a nested private call, a public call, and a nested public call, as well as an emitted private note, an unencrypted log, and public storage read and write.
This benchmark source data is available in JSON format on S3 here.
Values are compared against data from master at commit a1f3af15 and shown if the difference exceeds 1%.
L2 block published to L1
Each column represents the number of txs on an L2 block published to L1.

Metric
8 txs
32 txs
128 txs

l1_rollup_calldata_size_in_bytes
45,444
179,588
716,132

l1_rollup_calldata_gas
222,936
868,220
3,449,888

l1_rollup_execution_gas
842,023
3,595,328
22,205,257

l2_block_processing_time_in_ms
1,018 (-1%)
3,921 (-1%)
15,486

note_successful_decrypting_time_in_ms
336
1,042
3,986

note_trial_decrypting_time_in_ms
39.0 (+8%)
108
137 (-1%)

l2_block_building_time_in_ms
8,952
35,909
157,901

l2_block_rollup_simulation_time_in_ms
6,614
26,493
105,661

l2_block_public_tx_process_time_in_ms
2,299
9,292
51,710 (-1%)

L2 chain processing
Each column represents the number of blocks on the L2 chain where each block has 16 txs.

Metric
5 blocks
10 blocks

node_history_sync_time_in_ms
11,477 (-1%)
21,852 (-1%)

note_history_successful_decrypting_time_in_ms
2,363 (-2%)
4,815 (+3%)

note_history_trial_decrypting_time_in_ms
122
:warning: 147 (-30%)

node_database_size_in_bytes
1,661,790
1,199,988

pxe_database_size_in_bytes
27,188
54,187

Circuits stats
Stats on running time and I/O sizes collected for every circuit run across all benchmarks.

Circuit
circuit_simulation_time_in_ms
circuit_input_size_in_bytes
circuit_output_size_in_bytes

private-kernel-init
47.7
61,697
18,841

private-kernel-ordering
23.3 (+1%)
24,233
8,089

base-rollup
854
639,797
811

root-rollup
38.0
4,072
1,097

private-kernel-inner
42.4 (+1%)
81,504
18,841

public-kernel-private-input
47.5
41,455
18,841

public-kernel-non-first-iteration
31.2
41,497
18,841

merge-rollup
0.877 (-5%)
2,592
873

Miscellaneous
Transaction sizes based on how many contracts are deployed in the tx.

Metric
0 deployed contracts
1 deployed contracts

tx_size_in_bytes
8,723
27,508


Convolution Appendix

This requires a different line of code compared to what is in the Makefile, but I'd like to discuss it in person before making any changes.

OK-- we can discuss Monday.

We talked, we'll merge.


Integration of Spring Vault with azure key vault

This can be a good new feature

From the Spring Vault offical site](https://spring.io/projects/spring-vault#overview), it supports HashiCorp’s Vault, and there are some examples with HashiCorp’s Vault. Does it support Azure key vault natively please?
From the azure documentation - (https://docs.microsoft.com/en-us/azure/developer/java/spring-framework/configure-spring-boot-starter-java-app-with-azure-key-vault), springboot starter is
com.azure.spring
azure-spring-boot-starter-keyvault-secrets

So, can there be provision for the spring vault integration with the azure key vault?
Thanks a lot.

According to the Spring Vault project's documentation,  it can only be used with Hashicorp Vault. Any possibility of using it with any other Vault service providers

Azure Key Value is something different than HashiCorp Vault. Azure KeyValut can be used through Spring Cloud Azure.


Need to capture root disk size from image

Now that we've opened images up to allow the user to bring any image they want (assuming it has cloud-init installed), we need to start our instances with the correct minimum root volume size.  The root volume can't be smaller than the root disk image.
When querying for the boot image, we probably also want to store the retrieved image size and use that as the minimum specified size when booting the image.

We can do it in a similar way as in #84?

I think that would work. It looks like both describe-images in AWS and images.get in GCE return the necessary info.  We can shove the disk size into the cloud.Image structure.


Cleanup unused styles

Automated message from Dropbox CLA bot
@borisyankov, it looks like you've already signed the Dropbox CLA. Thanks!


Fix URL encoding

This PR contains:

Update Slather and CocoaPods to latest released versions.
Update testing target configurations to work on Xcode 7.2
Fix -[NSString xng_URLDecodedDictionaryFromString:] to decode also values and keys. This method is only used to decode values from the XAuth response. I checked this change with XWS and it should be OK as the keys and values are only alphanumeric characters.

👍


adapters and converters for list, dict, and object

in Postgres, this can be accomplished by doing:
class DictType(object):
    def adapt(self, val):
        pout.v("adapt")
        pout.v(val)
        # return a python dict converted to something sql safe

    def convert(self, val):
        pout.v("convert")
        pout.v(val)
        # return back to a python dict from sql safe syntax

d = DictType()
psycopg2.extensions.register_type(
       psycopg2.extensions.new_type(psycopg2.BINARY.values, "BINARY", d.convert)
)
psycopg2.extensions.register_adapter(dict, d.adapt)

Here are the adapting docs and the converting docs.
the register_adapter docs will be handy also.
Postgres already has support for dict and list types (also) depending on Postgres installation and stuff, so that could be a viable alternative also though it would be different than what SQLite would have to do, which might cause issues, though I'm not sure how often you would really switch from postgres to sqlite or vice versa.
SQLite has similar adapters/converters:
d = DictType()
sqlite3.register_adapter(dict, d.adapt)
sqlite3.register_converter('BINARY', d.convert)

I was thinking of doing something similar to Postgres's binary syntax where the converted values would be prepended with something like \dict or \list and then I would do something similar to the ObjectField where the value is pickled and then base64 encoded. So the converter could check to see if the string started with \dict or whatnot and if it was then it would convert back to the object, this way it could co-exist with other binary or text fields that it gets run against.
Really, being able to do:
foo = Field(dict)
foo = Field(list)
foo = Field(object)

and having everything just work is something I've always wanted to solve but I've never quite liked any of the solutions I've come up with
.

Sqlite's docs:
https://docs.python.org/2/library/sqlite3.html#sqlite3.register_converter
https://docs.python.org/2/library/sqlite3.html#sqlite3.register_adapter


DynamicUniformVec element alignment is always 256, but could be smaller depending on device limits

What problem does this solve or what need does it fill?
The DynamicUniform<T> wrapper in bevy_crevice has an alignment of 256 as that is the minimum guaranteed min_uniform_buffer_offset_alignment by webgpu.
On my Ryzen 4600U integrated gpu the actual limit is 4, so buffers with an element size <256 could be made more efficient.
What solution would you like?
Query the device limits (at least on WgpuOptionsPriority::Functionality) and use that limit as buffer element alignment.

This was addressed a while ago.


Issues with Docker When Bundling Prisma Layer

Hey, thanks for putting together such a comprehensive example!
I just encountered a strange error when trying to initialize the repository, but I'm not entirely sure what could have gone wrong.
SST v2.23.14  ready!

➜  App:     prisma-experiment
   Stage:   kwalsh
   Console: https://console.sst.dev/prisma-experiment/kwalsh

⠸  Checking for changesBundling asset kwalsh-prisma-experiment-Layers/PrismaLayer/Code/Stage...
✖  Checking for changes
   Error: Failed to bundle asset kwalsh-prisma-experiment-Layers/PrismaLayer/Code/Stage, bundle output is located at /Users/kyle/Documents/Dev/homelendingpal/sst-prisma/.sst/dist/asset.201a0666cf41995a4f740bd540c5c3fc675a4770d2fba046cb8c12a4666b325d-error: Error: spawnSync docker ENOENT
       at AssetStaging.bundle (/Users/kyle/Documents/Dev/homelendingpal/sst-prisma/node_modules/.pnpm/aws-cdk-lib@2.84.0_constructs@10.1.156/node_modules/aws-cdk-lib/core/lib/asset-staging.js:2:603)
       at AssetStaging.stageByBundling (/Users/kyle/Documents/Dev/homelendingpal/sst-prisma/node_modules/.pnpm/aws-cdk-lib@2.84.0_constructs@10.1.156/node_modules/aws-cdk-lib/core/lib/asset-staging.js:1:4544)
       at stageThisAsset (/Users/kyle/Documents/Dev/homelendingpal/sst-prisma/node_modules/.pnpm/aws-cdk-lib@2.84.0_constructs@10.1.156/node_modules/aws-cdk-lib/core/lib/asset-staging.js:1:2005)
       at Cache.obtain (/Users/kyle/Documents/Dev/homelendingpal/sst-prisma/node_modules/.pnpm/aws-cdk-lib@2.84.0_constructs@10.1.156/node_modules/aws-cdk-lib/core/lib/private/cache.js:1:242)
       at new AssetStaging (/Users/kyle/Documents/Dev/homelendingpal/sst-prisma/node_modules/.pnpm/aws-cdk-lib@2.84.0_constructs@10.1.156/node_modules/aws-cdk-lib/core/lib/asset-staging.js:1:2400)
       at new Asset (/Users/kyle/Documents/Dev/homelendingpal/sst-prisma/node_modules/.pnpm/aws-cdk-lib@2.84.0_constructs@10.1.156/node_modules/aws-cdk-lib/aws-s3-assets/lib/asset.js:1:736)
       at AssetCode.bind (/Users/kyle/Documents/Dev/homelendingpal/sst-prisma/node_modules/.pnpm/aws-cdk-lib@2.84.0_constructs@10.1.156/node_modules/aws-cdk-lib/aws-lambda/lib/code.js:1:4628)
       at new LayerVersion (/Users/kyle/Documents/Dev/homelendingpal/sst-prisma/node_modules/.pnpm/aws-cdk-lib@2.84.0_constructs@10.1.156/node_modules/aws-cdk-lib/aws-lambda/lib/layers.js:1:2066)
       at new PrismaLayer (file:///Users/kyle/Documents/Dev/homelendingpal/sst-prisma/.sst.config.1694103260464.mjs:87:9)
       at EmptyStack.Layers (file:///Users/kyle/Documents/Dev/homelendingpal/sst-prisma/.sst.config.1694103260464.mjs:100:23)

It looks like the layers.ts stack is encountering issues when it tries to bundle the code and invoke the super() method inside prismaLayer.ts:
    // bundle
    const code = Code.fromAsset('./apps/backend', {
      // don't send all our files to docker (slow)
      ignoreMode: IgnoreMode.GLOB,
      exclude: ['*'],

      // if our bundle commands (basically our "dockerfile") changes then rebuild the image
      assetHashType: AssetHashType.CUSTOM,
      assetHash: bundleCommandDigest,

      bundling: {
        image: RUNTIME.bundlingImage,
        command: createBundleCommand,
      },
    });

    // THIS FAILS
    super(scope, id, { ...rest, code });

I haven't made any changes to the repository, so I encounter this error after doing the following:

pnpm install
Update name / region in sst.config.ts
Run pnpm dev:sst

I wanted to open this issue in case there's something obvious I'm overlooking. My only thought is that maybe the repository behaves differently on an M1 Mac (which I'm using)?
I've noticed a few other resources mention this issue, but their solutions don't seem to apply in this scenario:
https://dev.to/aws-builders/fixing-error-spawnsync-bash-enoent-occurring-during-cdk-lambda-bundling-on-ci-pipeline-1m6i
https://stackoverflow.com/questions/73107862/aws-cdk-and-gitlab-returns-error-spawnsync-docker-enoent

After doing some additional research it looks like this first error was due to not having docker installed locally (I didn't realize this was an external dependency and thought it was bundled with sst).
After installing docker with brew install docker, I am encountering a different error.
   Error: Failed to bundle asset kwalsh-prisma-experiment-Layers/PrismaLayer/Code/Stage, bundle output is located at /Users/kyle/Documents/Dev/homelendingpal/sst-prisma/.sst/dist/asset.5191ed42ace458a4169fccece320e6d29164614ea1fe4c5c2ff9d59981d670dc-error: Error: docker exited with status 125
   --> Command: docker run --rm -u "501:20" -v "/Users/kyle/Documents/Dev/homelendingpal/sst-prisma:/asset-input:delegated" -v "/Users/kyle/Documents/Dev/homelendingpal/sst-prisma/.sst/dist/asset.5191ed42ace458a4169fccece320e6d29164614ea1fe4c5c2ff9d59981d670dc:/asset-output:delegated" -w "/asset-input" "public.ecr.aws/sam/build-nodejs18.x"
       at AssetStaging.bundle (/Users/kyle/Documents/Dev/homelendingpal/sst-prisma/node_modules/.pnpm/aws-cdk-lib@2.84.0_constructs@10.1.156/node_modules/aws-cdk-lib/core/lib/asset-staging.js:2:603)
       at AssetStaging.stageByBundling (/Users/kyle/Documents/Dev/homelendingpal/sst-prisma/node_modules/.pnpm/aws-cdk-lib@2.84.0_constructs@10.1.156/node_modules/aws-cdk-lib/core/lib/asset-staging.js:1:4544)
       at stageThisAsset (/Users/kyle/Documents/Dev/homelendingpal/sst-prisma/node_modules/.pnpm/aws-cdk-lib@2.84.0_constructs@10.1.156/node_modules/aws-cdk-lib/core/lib/asset-staging.js:1:2005)
       at Cache.obtain (/Users/kyle/Documents/Dev/homelendingpal/sst-prisma/node_modules/.pnpm/aws-cdk-lib@2.84.0_constructs@10.1.156/node_modules/aws-cdk-lib/core/lib/private/cache.js:1:242)
       at new AssetStaging (/Users/kyle/Documents/Dev/homelendingpal/sst-prisma/node_modules/.pnpm/aws-cdk-lib@2.84.0_constructs@10.1.156/node_modules/aws-cdk-lib/core/lib/asset-staging.js:1:2400)
       at new Asset (/Users/kyle/Documents/Dev/homelendingpal/sst-prisma/node_modules/.pnpm/aws-cdk-lib@2.84.0_constructs@10.1.156/node_modules/aws-cdk-lib/aws-s3-assets/lib/asset.js:1:736)
       at AssetCode.bind (/Users/kyle/Documents/Dev/homelendingpal/sst-prisma/node_modules/.pnpm/aws-cdk-lib@2.84.0_constructs@10.1.156/node_modules/aws-cdk-lib/aws-lambda/lib/code.js:1:4628)
       at new LayerVersion (/Users/kyle/Documents/Dev/homelendingpal/sst-prisma/node_modules/.pnpm/aws-cdk-lib@2.84.0_constructs@10.1.156/node_modules/aws-cdk-lib/aws-lambda/lib/layers.js:1:2066)
       at new PrismaLayer (file:///Users/kyle/Documents/Dev/homelendingpal/sst-prisma/.sst.config.1694109953609.mjs:87:9)
       at EmptyStack.Layers (file:///Users/kyle/Documents/Dev/homelendingpal/sst-prisma/.sst.config.1694109953609.mjs:100:23)

I will continue to go down the rabbit hole in hopes of resolving this.

It looks like installing the actual Docker application directly may have resolved my issue.
Sorry for any confusion.


Create econ

Do I need to do this as well?

You'll also do this as part of PS1. I'll delete this one and let you do it again for PS1


Merge pull request 32 into NSec.Experimental (ed25519 to x25519 conversion)

I would appreciate if the code in https://github.com/ektrah/nsec/pull/32/files was merged even if it were in the experimental package and had an extra warning attached. Is there any issues with adding this? I can submit a pull request in a medium amount of time if there are no problems.
In issues/26 you say "if you're generating two keys anyway, why not generate them on the right curve directly?".
AFAIK however, you can generate a single ed25519 keypair, convert the private ed25519 key to a private x25519 key, and the x25519 public key corresponding to the private key can be converted with the ed25519 public key. That's the only way I can make sense of it otherwise projects that use "EdX25519 keys" would make no sense. (https://keys.pub/docs/specs/keys.html#edx25519) (https://libsodium.gitbook.io/doc/advanced/ed25519-curve25519)
This means exchanging a single signature key lets anyone convert the public ed25519 key into a public x25519 key that would correspond to the private x25519 key that would be formed by converting the private ed25519 key to x25519. Unless I have a fundamental misunderstanding of libsodium, of course. :man_shrugging:

Adding the functions to NSec.Experimental is certainly possible. I would prefer if the parameters were Key/PublicKey instances instead of byte arrays, but otherwise the pull request looks good to me and would be welcome in NSec.Experimental.
Adding them to NSec itself is a bit different, because for that I'd like to understand the security implications better first.
Let's say you generate an Ed25519 key pair for signatures and then do the conversion to X25519 for key agreement:
using var privateSignatureKey = Key.Create(SignatureAlgorithm.Ed25519);
var publicSignatureKey = privateSignatureKey.PublicKey;

using var privateKeyAgreementKey = ...Convert...(privateSignatureKey);
var publicKeyAgreementKey = ...Convert...(publicSignatureKey);

So, it's essentially the same key pair, but once in a form suitable for signatures and once in a form suitable for key agreement.
This is the crux: Generally, it's not recommended to use the same key for different purposes. The reason for that is that there can subtle interactions between those different purposes that weaken the individual security.
So, generally you would generate two separate key pairs and then could convert one of them:
using var privateSignatureKey1 = Key.Create(SignatureAlgorithm.Ed25519);
var publicSignatureKey1 = privateSignatureKey.PublicKey;

using var privateSignatureKey2 = Key.Create(SignatureAlgorithm.Ed25519);
var publicSignatureKey2 = privateSignatureKey.PublicKey;

using var privateKeyAgreementKey = ...Convert...(privateSignatureKey2);
var publicKeyAgreementKey = ...Convert...(publicSignatureKey2);

But that IMHO doesn't really provide an advantage over generating an X25519 key pair directly:
using var privateSignatureKey = Key.Create(SignatureAlgorithm.Ed25519);
var publicSignatureKey = privateSignatureKey.PublicKey;

using var privateKeyAgreementKey = Key.Create(KeyAgreementAlgorithm.X25519);
var publicKeyAgreementKey = privateKeyAgreementAlgorithmKey.PublicKey;

However, "generally" doesn't mean that it's completely impossible. In the specific case of Ed25519 and X25519, it could be fine. Or it could be fine if certain, specific rules are followed. That's what I'd like to understand better.

True, if you're going to have 2 keys, no point in converting at all. But if having a single key for both signing and encryption can be insecure (which is exactly what signal protocol does, they call it XEd25519), why does the signal protocol do it? I'm not questioning you, because you are correct that it can cause issues, but why does a massively used and "considered secure" protocol use it? Keys aren't even exchanged by users, so I can't even think of a reason why it's necessary. If it provides less security, why not use 2 keys on the backend?

The designers of Signal may be aware of the "if certain, specific rules are followed" part. 😃

Is there anything specific to be aware of? Other than it may introduce specific security issues?

Actually, signal uses an X25519 key for EdDSA, not an Ed25519 key for ECDH (https://blog.filippo.io/using-ed25519-keys-for-encryption/#:~:text=It should be mentioned).

I think the potential security issues are the critical part.
The blog post you've linked actually reinforces my point by saying that "it's pretty easy to use an Ed25519 public key for X25519", but that it also "remains open for future work is checking for cross-protocol attacks."

Thanks.


chore: Remove d.ts.map Files

Relates SAP/cloud-sdk-backlog#897.
Remove the d.ts.map files from the generation and also our packages.

nothing is checked off in the backlog item as of now


corrupted links.

Determine which editor opens a file in a project pages (
https://github.com/MicrosoftDocs/visualstudio-docs/blob/master/docs/extensibility/internals/determining-which-editor-opens-a-file-in-a-project.md )
See also links are corrupted.

@acangialosi -- Anthony, please review private PR 6643.

@eaydemir -- Emre, those links appear to be working on the live site:

https://docs.microsoft.com/en-us/visualstudio/extensibility/internals/determining-which-editor-opens-a-file-in-a-project?view=vs-2019

Please let me know if you still see otherwise.

ok. it's my mistake, no problem.


giving cpu as parameter ?

face_recognition version:1.3.0
Python version:3.7.6
Operating System:3.7.6

Description
I want to know how to give CPU as a parameter in the API calls

@silexxx Hello, have you find out how to do it?


Bump yip dependency

Fixes: https://github.com/rancher/elemental-operator/issues/8
Signed-off-by: Ettore Di Giacinto<EMAIL_ADDRESS>

Codecov Report

Merging #19 (f5177ab) into main (1d97f14) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main      #19   +/-   ##
=======================================
  Coverage   43.27%   43.27%
=======================================
  Files           8        8
  Lines         647      647
=======================================
  Hits          280      280
  Misses        348      348
  Partials       19       19

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 1d97f14...f5177ab. Read the comment docs.


Rustfmt deletes comment in parentheses of argumentless Fn

These are unusal cases, so I'll just show examples. I've had this happen in some WIP code where I temporarily commented out the argument types.
fn foo(
    bar: impl Fn(
        // this comment is deleted
    )
) {}

The same happens in where-clauses
fn foo<F>(bar: F)
where
    F: Fn(
        // this comment is deleted
    )
{}

It also occurs with generic traits
fn foo(
    bar: impl PartialEq<
        // this comment is deleted
    >
) {}

Block comments are deleted as well. As long as there is anything else in the parentheses / brackets, the comment is preserved.

Closed via #3518.


Document Stack Component Margin and Padding Behavior on Siblings

Subject
Stack
Description
Referencing issue https://github.com/chakra-ui/chakra-ui/issues/2578
Please document the behavior in the Stack component of the sibling child elements having the top and bottom margin and padding set to 0.

Margins not working due to :not(style)~:not(style)

Not here to argue about the behavior. It would just be nice to have a heads up in the docs.

This doesn’t apply anymore as the latest versions of Chakra updated its components to use flex gap.


[Enhance] Sampling points based on distance metric

Sampling points based on distance metric (keeping all the far points and sampling only the near points).
Rename function IndoorPointSample to PointSample (with backward compatibility).
Supporting new_points = points[4:12, 2] with single attribute in which points are BasePoints object.

Also update configs.

@ZwwWayne
Whether we need to update the BC-breaking doc here?

@ZwwWayne
Whether we need to update the BC-breaking doc here?

We should.

Can be merged after resolving conflicts


⚠ Bofrost.at has degraded performance

In 407fd0d, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 1601 ms

Resolved: Bofrost.at performance has improved in 9bdf122.


[FEATURE]: Bulk process of DeepFace.verify

[FEATURE]: Bulk process of DeepFace.verify #1340
Up till
https://pypi.org/project/deepface/0.0.31/
It supported
dataset = [
	['dataset/img1.jpg', 'dataset/img2.jpg'],
	['dataset/img1.jpg', 'dataset/img3.jpg']
]
resp_obj = DeepFace.verify(dataset)

As of 0.0.93, it's no longer supported.
I have tens of thousands of images to process at once.  Should I downgrade to 0.0.31, or is there a better/faster way to do DeepFace.verify?
Additional Info
No response

You should call verify in a for loop.
Running previous version will most probably underperform.

gotcha!


[SPARK-39720][R] Implement tableExists in SparkR for 3L namespace

What changes were proposed in this pull request?
1, Implement tableExists
2, Update the documents of createTable/cacheTable/uncacheTable/refreshTable/recoverPartitions/listColumns
Why are the changes needed?
for 3L namespace
Does this PR introduce any user-facing change?
yes, new method tableExists
How was this patch tested?
updated UT

cc @HyukjinKwon

cc @HyukjinKwon mind take another look? thanks!

I am going to merge it, and will make corresponding chanages in other 2 PRs.
Thank you @HyukjinKwon


PLUTO-698 - TCK: Contesting V2AddlFilterTests which assume

getInitParameterNames returns parameters in a particular order

This PR has been tested against the pluto tck master:
https://github.com/ngriffin7a/portals-pluto/pull/24

Merged, thank you. :octocat: Sent from GH.


"The racer process has stopped."; "didn't understand command --interface=tab-text" on Windows

Visual Studio Code gives the following message when an empty Rust source file is opened:
"The racer process has stopped."  Clicking on View Error gives the following information:
Last command:

Racer Output:
Sorry, I didn't understand command --interface=tab-text
usage: racer complete linenum charnum fname [substitute_file]
or:    racer find-definition linenum charnum fname [substitute_file]
or:    racer complete fullyqualifiedname   (e.g. std::io::)
or:    racer prefix linenum charnum fname
or replace complete with complete-with-snippet for more detailed completions.
or:    racer daemon     - to start a process that receives the above commands via stdin
Racer Error:

Rusty Code settings are as follows (user settings):
{
    "rust.racerPath": null, // Specifies path to Racer binary if it's not in PATH
    "rust.rustfmtPath": null, // Specifies path to Rustfmt binary if it's not in PATH
    "rust.rustLangSrcPath": "C:/Program Files/Rust stable GNU 1.7/rust-master/src", // Specifies path to /src directory of local copy of Rust sources
    "rust.cargoPath": null, // Specifies path to Cargo binary if it's not in PATH
    "rust.formatOnSave": false, // Turn on/off autoformatting file on save (EXPERIMENTAL)
    "rust.checkOnSave": false, // Turn on/off `cargo check` project on save (EXPERIMENTAL)
    "rust.checkWithClippy": false // Turn on/off `cargo clippy` project on save (EXPERIMENTAL) (cargo-clippy should be installed)
}

Racer, rustfmt and cargo are in the PATH variable.
Rusty Code 0.11.0
Visual Studio Code 0.10.10
Racer 1.2.6
Rust 1.7
Windows 10

Same issue to me on Mac OSX

That seems to be an old racer version, in both cases, the racer output format isn't even like that anymore. Be sure that your racerPath is pointing to the most recent version of racer.

Turns out there was an old version of racer installed in C:\Program Files\racer, installed six months ago by an older cargo, I imagine, since the new racer binary is installed in C:\Users<username>.cargo\bin
Both paths were in the PATH variable, and the older racer binary was run.
After removing the C:\Program Files\racer path from the PATH variable everything is working fine.
Thanks for your help!


Documentation for Cognate words??

There isn't any documentation on each builtin word, and so for the ones that take and/or return blocks, the semantics are very confusing. Case in particular. What are the semantics of that, and everything else? Writing it as Forth stack-effect diagrams or just some example code would help.

i can try to help with documentation, if only the admins will want to

I'm currently at university so I'm a tad busy, but I'll be able to write some more documentation once the term finishes - as well as actually finish the compiler rewrite!

Also, the behaviour of some combinators such as Case might change in future, as the current iteration is very difficult to optimise and can be a bit confusing.

I might use the "old" (i.e. current) behavior of Case in TEHSSL, because then you don't have to write ( ) around a function that is comprised entirely of a large Case switch.

Well that part of the behavior I'm keeping. The but I'm concerned about is the fact that you can do this, maxing blocks and value types.
Def F as
   Case 1 is 2
   Case (> 3) is (+ 1)
   Case -1 is (+ 3)
   otherwise 5;

The problem with this being that it has to do dynamic dispatch on the type passed to it, and it's very difficult to generate good code from this.
Perhaps a better solution would be to have variants of Case that take differing combinations of blocks and values.

This is uglier but generates much better code:
Def F as
   Case (== 2) then (3 Drop)
   Case (> 3) then (+ 1)
   Case (== -1) then (+ 3)
   otherwise (5 Drop);

Unfortunately I can't find any other languages that implement anything like the Case combinator here (closest is probably Factor) so I haven't got much to work with.


Add support for revoke-self endpoint.

I'm not sure how you would like this handled, or if you accept pull requests. Figured I would open an issue. Please let me know how you would like this handled going forward. :)
Vault 0.3.0 introduced the capability to revoke your own authentication token as a cleanup step. Reference https://vaultproject.io/docs/http/sys-revoke-self.html
I would like this capability added (maybe a revoke_self_token method?), and also think it would be useful to have an optional parameter to logout to revoke the token. Maybe something like logout(revoke_token=False) by default to not change functionality, but revoke_token=True would call revoke_self_token() before setting self.token = None.
Thanks for putting together this library. Very useful!

Thanks for reporting this issue. I've added support in 109d72125133889296a80de7e4ce8cc0b552f959


⚠ jaswdr.dev has degraded performance

In 2f307c8, jaswdr.dev (https://jaswdr.dev/) experienced degraded performance:

HTTP code: 200
Response time: 701 ms

Resolved: jaswdr.dev performance has improved in 7dca9c6.


CI: add testing for 2022, including GEOS-3.11

GEOS 3.11 was recently released, so adding it to the CI matrix.
According to PEP 664, Python 3.11 will be released October 2022, so this "2022" matrix item should be updated when supported by GHA.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 84.215%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
2086

Relevant Lines:
2477

💛  - Coveralls


Unit test the flight_importer_app.py.

uv run pytest test_helpers.py
uv run pytest test_flight_importer_app.py

Success!


feat: port Algebra.Order.Sub.Canonical

mathlib3 SHA: 62a5626868683c104774de8d85b9855234ac807c

Mathport described the file as one with its immediate dependencies already ported, but this isn't true.


fix: csp false in rc5 removes custom csp header

Fixes #321

Types of changes

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

Description

This PR reverts a breaking change introduced by rc.5
Previously to rc.5, setting a security header value to false did not modify the existing header value.
With rc.5, setting a security header value to false removed the header.
We are reverting to pre-rc.5 behaviour, i.e. we semantically translate false to do not set instead of do not send.
Checklist:

[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[x] I have added tests to cover my changes (if not applicable, please state why)

@vejja
Go on with merging. I understand the reasoning right now.
I will test everything out before publishing 1.0.0 on the 1.0.0 branch :)


oncomplete called after onteardown

Description:
In this fiddle, http://jsfiddle.net/sabob/mygdmrzv/, the oncomplete lifecycle is called after onteardown.
In my app I have a menu to switch between pages with a fading transition.
I generally use oncomplete to setup external libraries such as validations which need access to the form on the page.
When switching pages I teardown the current page, then render the new page.
If I quickly switch away from a page that is still fading in, I get an error because the current page dom has been removed by the time oncomplete is called.
I expected the teardown call to jump to the end of the transition, call oncomplete, unrender the dom and call the rest of the lifecycle callbacks.
Is this a bug?
Versions affected:
0.9, 0.8.x
Platforms affected:
Reproduction:
Code:

Perhaps a more accurate approach would be for a teardown() call to skip the remaining lifecycle calls?

I believe this is intended behavior, as weird as it is.
oncomplete is async because it has to wait for transitions and stuff. So what happens is that the setup, rendering, and teardown happen in the same tick while oncomplete is still pending. Putting breakpoints on each, it appears that oncomplete keys off from a resolved promise, which backs up the claim.
Setup and immediately tearing down is an odd use case tho. You could do view.teardown() inside oncomplete so it also waits with it.

Perhaps a more accurate approach would be for a teardown() call to skip the remaining lifecycle calls?

Yep, it's probably a good idea to cancel any pending stuff when the instance is being nuked. 😄

Setup and immediately tearing down is an odd use case tho. You could do view.teardown() inside oncomplete so it also waits with it.
I cannot

Setup and immediately tearing down is an odd use case tho. You could do view.teardown() inside oncomplete so it also waits with it.

My real life use case is explained in the description. Menus drive the teardown/render process, as users navigate around the site. The issue I saw arise because there are transitions between rendering pages. If users navigate away from a page to another page, before the transition completes, the issue arise. Another way this was produced is by pressing the browser back button twice :)

it's probably a good idea to cancel any pending stuff when the instance is being nuked. 😄

Unfortunately, Ractive doesn't expose a way to cancel the current transitions.
Still, technically it should be possible to reject the oncomplete promise and not take further part in the clifecycle?

We can probably add a check in the complete handler to make sure the component isn't torn down. Part of me says that complete is an async event, so it's up to the user to check the state of things. I'm not sure what the best thing to do is in this case.
Out of curiosity, would the destruct event, which is the teardown analog of complete, work in this case if you're using 0.9? Also, FWIW, there's an exposed property instance.torndown that will tell you if the component has been torn down. torndown is available from 0.8, so you could use it as a check in the complete handler.
I still haven't come up with a good way to have cancel-able transitions. The simple cases aren't too bad, but getting layered runloops caused by things like setting in observer callbacks makes things get pretty hairy.

Sorry, I had a bit of a reading comprehension fail. destruct probably wouldn't do anything for you and the issue as described. Are you cross-fading the views, or fading one out and a new one in? If the latter, I'd think that reasonably fast transitions along with keeping a queue of actions to drain would be a reasonable solution? I've been working on something similar, and that's the approach I'm taking.

Yep, fading out/ then in. The transitions is 200ms, so fairly quick. Even so, the error can still occur when user hits back button twice.
In terms of workarounds there are a couple. The simplest for me is to move the onComplete code to onRender. since that is a sync'd operation. However this approach is limited since the dom isn't visible at this stage.
Also onComplete is a natural place for me to perform further dom manipulations.

We can probably add a check in the complete handler to make sure the component isn't torn down.
Seems reasonable to me. It is an edge case, but if we can avoid it, it removes some cognitive overhead. ;-)

Part of me says that complete is an async event, so it's up to the user to check the state of things.
Nods, but that would create a bit of work since the check has to be done on every page.

Regarding the torndown check, that could be useful if there is a way for me to hook into Ractive lifecycle somehow to globally add this check? My Javascript ain't the best, but I know "prototype"ing does allow a fair amount of monkey patching.

I still haven't come up with a good way to have cancel-able transitions.
Are Ractive transitions in a queue of some sort? I know jQuery has the stop() method which stops all queued transitions and jump to their end state. As you mentioned this approach might not work very well in all cases for Ractive.

Tried to fix this locally, by checking if "ractive.torndown" is true before firing "oncomplete. But lots of tests fail after this change. Is firing oncomplete (even after a teardown) by design or is the next test kicked off before the current test finishes, thus causing the ractive instance of the current test to teardown before the oncomplete fires?

Is firing oncomplete (even after a teardown) by design

oncomplete should just be in the rendering side of things, not the teardown side. Here's a demo showing that oncomplete doesn't fire on teardown.
If you can open a PR or push up a branch in your fork, we could check what's going on. Tests do get wonky where transitions are involved, so it might be a tests problem. A quick tip is to run the failing tests solo (click rerun in the QUnit interface) to see if it's affected by the code change or the other tests.


Files are not uploaded and UploadListener not persist to DB, why?

I'm trying to upload one or more files using OneupUploaderBundle but I can not get it to work since files aren't uploaded and nothing is persisted to DB. I'll explain what I've done til now:
config.yml:
oneup_uploader:
    mappings:
        recaudos:
            frontend: blueimp
            storage:
                service:              ~
                type:                 filesystem
                filesystem:           ~
                directory:            %kernel.root_dir%/../web/uploads/recaudos
                stream_wrapper:       ~
                sync_buffer_size:     100K
            allowed_mimetypes:     [application/msword,image/jpeg,image/pjpeg,image/png,application/pdf,application/vnd.oasis.opendocument.text]
            #disallowed_mimetypes:  []
            error_handler:        oneup_uploader.error_handler.noop

            # Set max_size to -1 for gracefully downgrade this number to the systems max upload size.
            #max_size:<PHONE_NUMBER>854775807
            use_orphanage:        true
            enable_progress:      true
            enable_cancelation:   true
            namer:                oneup_uploader.namer.uniqid

At Twig template only this:
<input id="fileUpload3" class="fileUpload" type="file" name="fileUpload3[]" data-url="{{ oneup_uploader_endpoint('recaudos') }}" multiple />

$(document).ready(function(){
    $('fileUpload3').fileupload();
});

And latest this is the Listener for onUpload event:
namespace AppBundle\EventListener;

use Oneup\UploaderBundle\Event\PostPersistEvent;
use Symfony\Component\HttpFoundation\Request;
use AppBundle\Entity;

class UploadListener
{
    protected $doctrine;

    public function __construct($doctrine)
    {
        $this->doctrine = $doctrine;
    }

    public function onUpload(PostPersistEvent $event, Request $request)
    {
        $session = $request->getSession();
        $em = $this->doctrine->getManager();
        $request = $event->getRequest();
        $tempfile = $event->getFile();

        $productoSolicitud = $em->getRepository('SolicitudProducto')->find($session->get('productoSolicitudId'));

        $recaudosTramiteProductoSolicitud = new Entity\RecaudosTramitesProductoSolicitud();
        $recaudosTramiteProductoSolicitud->setProductoSolicitud($productoSolicitud);

        $filenamePart = explode("--", $tempfile->getName());
        $pathinfo = pathinfo($tempfile->getName());
        $recaudosTramiteProductoSolicitud->setArchivo($pathinfo['filename']);

        $em->persist($recaudosTramiteProductoSolicitud);
        $em->flush();
    }
}

And of course I have service defined also:
appbundle.upload_listener:
    class: "AppBundle\EventListener\UploadListener"
    arguments:  [@doctrine]
    tags:
        - { name: 'kernel.event_listener', event: "oneup_uploader.post_persist", method: "onUpload" }

Did I miss something? Why file are not uploaded and data is not persisted? As you may see in the attached image there is a post request to _uploader/recaudos/upload, any advice?

Same problem...

Is your event listener getting executed?

the event listener is initialized by the container, but unfortunately the event got never fired/executed... In my configuration I had -1 set for max_size, because I want it to fall back on the php.ini configuration, as stated in the docs... However, with setting this for max_size (1) the file doesn't get moved after chunked upload and (2) the events don't get executed. Maybe there is a problem with this max_size parameter? Everything work brilliantly now...


update docsy & hugo

update https://github.com/kubeflow/website/issues/2702

Updated hugo and docsy to the latest versions
Updated README
netlify.toml
Styles, rewrite to custom use _styles_project
https://github.com/kubeflow/website/pull/1870

/assign @kubeflow/web-team

/assign @joeliedtke
/assign @janeman98
/assign @abhi-g

@Arhell this is pretty large PR, is it ready for review?
After it is, me and @RFMVasconcelos  could take a crack at reviewing it.

@Arhell this is pretty large PR, is it ready for review?
After it is, me and @RFMVasconcelos could take a crack at reviewing it.

Yes, ready, basically, as I wrote above, only docsy and hugo update, in general, this is a copy-paste of the main docsy repository

@Arhell it seems like you have increased the indentation beyond what is currently on kubeflow.org, making the more nested pages quite squished, for example: https://www.kubeflow.org/docs/components/pipelines/tutorials/

Old
New

Also, I am not sure what is going on with the styling on the default /docs page at the top (under the kubeflow logo)

@Arhell it seems like you have increased the indentation beyond what is currently on kubeflow.org, making the more nested pages quite squished, for example: https://www.kubeflow.org/docs/components/pipelines/tutorials/
Old	New

Also, I am not sure what is going on with the styling on the default /docs page at the top (under the kubeflow logo)

@thesuperzapper done

@Arhell I know its not strongly related, but can you also look at https://github.com/kubeflow/website/issues/2568, which still seems to happen with this PR?

@Bobgy this PR looks (visually) good to me, but I am not super familiar with docsy/hugo, so would appreciate a quick check from your end to check this looks sane.

@Arhell I know its not strongly related, but can you also look at #2568, which still seems to happen with this PR?
@thesuperzapper
I would like to correct this in the next PR, because this one is already very large

@Arhell sounds good, then all we need to get this merged is a review from @Bobgy

/cc @joeliedtke
do you want to take a look?
/lgtm
just checking the updated website, it seems we don't have a lot of changes visually.

Hi @Arhell, thank you for this contribution!
Just curious, were there specific fixes/features you wanted for this upgrade?

@Bobgy
Hi, I want everything to be the latest version, there were some changes in the docsy and hugo itself (which would probably work faster)

the latest update is good anyway.

/lgtm
/approve
Fair enough, thank you for this contribution!


Add package_manager for Composer v1 deprecation warning and unsupported error

What are you trying to accomplish?
This PR introduces a package_manager subclass for Composer and sets Composer v1 as deprecated and unsupported. The deprecation warning and unsupported error are controlled by the following feature flags:

composer_v1_deprecation_warning
composer_v1_unsupported_error

Feature Flags PR: https://github.com/github/dependabot-api/pull/5763
This mirrors the approach used for Bundler v1, allowing us to guide users towards migrating to Composer v2 while providing a controlled rollout.
Anything you want to highlight for special attention from reviewers?
The deprecation and unsupported checks for Composer v1 are controlled by feature flags, similar to how it was implemented for Bundler v1. Please focus on verifying that the logic tied to the feature flags works as expected.
How will you know you've accomplished your goal?
We will monitor logs and metrics to ensure:

Composer v1 users see the deprecation warning when the feature flag is enabled.
Actions using Composer v1 are blocked when the unsupported error flag is enabled.
Tests have been added to validate the behavior of both feature flags.

Checklist

[x] I have run the complete test suite to ensure all tests and linters pass.
[x] I have thoroughly tested my code changes to ensure they work as expected, including adding additional tests for new functionality.
[x] I have written clear and descriptive commit messages.
[x] I have provided a detailed description of the changes in the pull request, including the problem it addresses, how it fixes the problem, and any relevant details about the implementation.
[x] I have ensured that the code is well-documented and easy to understand.

For sorbet typings another PR will be created.

FYI @abdulapopoola
Another PR is created for the sorbet typings

https://github.com/dependabot/dependabot-core/pull/10732


Any Pascal-Linter out there?

Hey, i've been trying to find a linter for pascal, but didn't succeed. The only thing i found was a linter embedded in the free-pascal object, but that seems to be compiler-dependent and not converted to SublimeLinter aswell.
Any other plugin that does the job im missing out on?

Nope, there is nothing currently out there, if you'd like to add the one you found, that would be great!
Documentation can be found here

Closing because questions was answered. Good Luck! :beers:


Suggestion: switch to Discord Timeouts

Switch mute action to the new Discord Timeouts feature

There's currently no way for a permanent timeout, so I don't think this will happen any time soon

This is actually something I've been meaning to do for the last few weeks. Hope to get it done within the next week or so!

@Benricheson101 Hey there, any updates?


Progress report for restore

The restore process is different from rebuild/backup. The restore was done as a part of replica starting, so at that time the controller wasn't started yet.
On the manager side, it should be reported as a part of replica status periodically, filled by the replica controller.

@smallteeths backend merged.

@shreesha21 Can you document the API reference for the restoration status for UI here?

@smallteeths for now you should able to refer to https://github.com/longhorn/longhorn-manager/blob/master///api/model.go#L584

Request: curl http://<IP_ADDRESS>:30766/v1/volumes
Response: The response contains all the fields of volume object along with restoreStatus as below:
   "data" : [
      {
         "restoreStatus" : [
            {
               "lastRestored" : "",
               "progress" : 0,
               "actions" : null,
               "replica" : "tcp://<IP_ADDRESS>:9502",
               "isRestoring" : false,
               "error" : "",
               "state" : "",
               "links" : null,
               "filename" : ""
            },
            {
               "replica" : "tcp://<IP_ADDRESS>:9502",
               "isRestoring" : true,
               "actions" : null,
               "progress" : 73,
               "lastRestored" : "",
               "filename" : "volume-snap-76cf801b-279e-4a0b-a36b-8c78cb279135.img",
               "links" : null,
               "error" : "",
               "state" : "incomplete"
            }
            ...
            ...
         ],
],

@shreesha21 We need to update the replica field in the manager API to report the replica name instead of IP, otherwise it's hard for UI to figure out which is which. Only need to update the manager API, no change needed for the engine.

@smallteeths https://github.com/longhorn/longhorn-manager/pull/355 has been merged, now API shows replica name instead of IP.

@smallteeths reports that the replica states during the restoration are switching between RW and ``(empty). @shreesha21 ^^

Validattion: PASSED
Steps to test:

Create a volume, attach it to a node, format it, mount it to a directory on attached node, write some data to it.
In Settings page, make sure backup target is correctly configured.
In Volume Details page, Click Create Backup, and wait for backup to complete.
In Backup page, click on volume name
From the right drop down menu of the backup, click Restore.
Enter Name, and set Number of replicas, and click OK

Expected result: Restoration should start, and restoration progress should be visible in
1 - Volume Details page at Volume Details section
2 - Volume Details page at Replicas section for every volume replica.
3 -  Volume page under volume status.


upload() does not work when using documented host()->configFile() because of ~

Deployer version: v6.8.0
Deployment OS: Ubuntu

Example
Config
host('domain.com')
    ->user('name')
    ->port(22)
    ->configFile('~/.ssh/config')
    ->identityFile('~/.ssh/id_rsa')
    ->forwardAgent(true)
    ->multiplexing(true)
    ->addSshOption('UserKnownHostsFile', '/dev/null')
    ->addSshOption('StrictHostKeyChecking', 'no');

Source
upload('build/', '{{release_path}}/public');

Source
Error
user@host[/srv/EXAMPLE/deploy]$ ./vendor/bin/dep deploy test
✔ Executing task deploy:prepare
✔ Executing task deploy:release
✔ Executing task deploy:update_code
✔ Executing task deploy:clear_controllers
➤ Executing task deploy:push_local_parameters
✔ Executing task deploy:failed

In Process.php line 270:

  The command "rsync -azP -e 'ssh -A -F ~/.config/EXAMPLE/ssh_config' '/tmp/parameters_localOuvJn2' 'EXAMPLE-test-web-:/srv/EXAMPLE/releases/1/app/config/parameters_local.php'" fai
  led.

  Exit Code: 255(Unknown error)

  Working directory: /srv/EXAMPLE/deploy

  Output:
  ================

  Error Output:
  ================
  Can't open user config file ~/.config/EXAMPLE/ssh_config: No such file or directory
  rsync: connection unexpectedly closed (0 bytes received so far) [sender]
  rsync error: unexplained error (code 255) at io.c(235) [sender=3.1.2]

Explanation
This error is happening on upload() only and not the normal ssh command because of the code passing the ssh config options wrapping them in quotes. This means you can't use ~ or even $HOME.
Suspected Code
# functions.php upload() L442
        $sshArguments = $host->getSshArguments()->getCliArguments();
        if (empty($sshArguments) === false) {
            $config['options'][] = "-e 'ssh $sshArguments'";
        }

Fixed in v7.

It appears the commit you fixed this in is bd4aedd9656c412e8ab7ec9f6ff6cd36ee1483df of master for v7. If that's wrong I'll let you comment.
In the meantime, it looks like I was able to get a work-around by using the following setup in my deploy.php file
use Deployer\Support\Unix;

host('domain.com')
    ->user('name')
    ->port(22)
    ->configFile(Unix::parseHomeDir('~/.ssh/config'))
    ->identityFile(Unix::parseHomeDir('~/.ssh/id_rsa'))
    ->forwardAgent(true)
    ->multiplexing(true)
    ->addSshOption('UserKnownHostsFile', '/dev/null')
    ->addSshOption('StrictHostKeyChecking', 'no');

I'm actually thinking to add Unix::parseHomeDir inside configFile() function call. So it will be automatically expanded.

@antonmedv I personally can't test this on non-unix systems... but as long as it doesn't negatively effect them, I'd say go for it.


Media Permission is required to do this operation (IOS)

Hi,
I'm fairly new to iOS development and I'm using expo-file-dl 2.0.0 to download remote files on expo 41.0.0.  It works great with non image file types but when I try to pull images I get the Error: MEDIA_LIBRARY permission is required to do this operation error.
My code looks like this:
let hasAccess = await MediaLibrary.getPermissionsAsync();
if(hasAccess.accessPrivileges.toLowerCase() == "all") {
  await downloadToFolder(
    "https://upload.wikimedia.org/wikipedia/commons/thumb/f/fe/Watermark_sample.jpg/1599px-Watermark_sample.jpg",
    "test.jpg",
    "Download",
    "DownloadInfo");
}

I have verified that "hasAccess" is 'all' both in app and in the app settings.  I've been looking at this for 2 days now and I can't figure out what I"m missing.  Any idea what's going on?

Turns out it was a difference between running the app through the expo locally and a live version of the app. Once I deployed it to testflight things worked as expected