consolidating TransportSupervisor within the Transport trait

Codecov Report

Merging #54 into master will decrease coverage by 1.14%.
The diff coverage is 85.71%.

@@            Coverage Diff             @@
##           master      #54      +/-   ##
==========================================
- Coverage   92.39%   91.24%   -1.15%
==========================================
  Files         118      119       +1
  Lines        1761     1781      +20
  Branches      100      101       +1
==========================================
- Hits         1627     1625       -2
- Misses        134      156      +22

Impacted Files
Coverage Δ

.../src/main/scala/hydra/core/protocol/Messages.scala
100% <ø> (ø)
:arrow_up:

...rc/main/scala/hydra/core/transport/Transport.scala
95% <ø> (ø)

.../hydra/kafka/ingestors/IngestionErrorHandler.scala
100% <ø> (ø)
:arrow_up:

...ala/hydra/core/transport/TransportSupervisor.scala
0% <0%> (-95.46%)
:arrow_down:

...ala/hydra.ingest/services/TransportRegistrar.scala
90.47% <100%> (ø)
:arrow_up:

.../scala/hydra/sandbox/transport/FileTransport.scala
95.23% <100%> (ø)
:arrow_up:

...n/scala/hydra/kafka/transport/KafkaTransport.scala
86.66% <100%> (ø)
:arrow_up:

...scala/hydra/core/transport/TransportCallback.scala
100% <100%> (ø)
:arrow_up:

jdbc/src/main/scala/hydra/jdbc/JdbcTransport.scala
100% <100%> (ø)
:arrow_up:

... and 1 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 065ef2d...4b13e6f. Read the comment docs.


Add file upload to api docs

Add file upload question to API docs

#470  👈
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @avaleske and the rest of your teammates on  Graphite

cc @devin-civi and @gwendolyngoetz


#636

This omits characters, not lines from the file names. #635

thanks for the contribution. can you be a bit more specific about what you're trying to achieve here? and perhaps title the PR more explicitly?

closing in favor of #636


Final primitives in wrappedconfig don't seem to read from files

In the docs for WrappedConfig, there's a recommendation to use boolean, and an assertion that all fields must be final

The latter is definitely right - there's a startup crash if you don't, but the former seemingly prevents values other than the default from ever loading in.
To reproduce:

Create a public final boolean config field with default true.
Set it to false in the config file.
Watch as it returns true in the code.

Using Boolean doesn't seem to have this problem. Not really sure how, but it's our workaround for now.
This is all 1.19.2, so I'm unsure if anything's moved around.

This is a fundamental problem with wrapped configs. The new ReflectiveConfig system will replace WrappedConfig starting in Loader 0.20 (hopefully!), and won't have this issue.

can the docs be updated to reflect this?
On Thu, 11 May 2023, 12:49 pm Glitch, @.***> wrote:

This is a fundamental problem with wrapped configs. The new
ReflectiveConfig system will replace WrappedConfig starting in Loader 0.20
(hopefully!), and won't have this issue.
—
Reply to this email directly, view it on GitHub
https://github.com/QuiltMC/quilt-config/issues/9#issuecomment-1543253479,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ANJ34KNTBHFLAQNGUCTCX23XFRHU5ANCNFSM6AAAAAAXUDVEBA
.
You are receiving this because you authored the thread.Message ID:
@.***>

None of this is released yet

I meant changing boolean in the docs to reflect the fact that it can't be
used
On Thu, 11 May 2023, 12:53 pm Glitch, @.***> wrote:

None of this is released yet
—
Reply to this email directly, view it on GitHub
https://github.com/QuiltMC/quilt-config/issues/9#issuecomment-1543255905,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ANJ34KM6CA4Y6G6MP5HG5Z3XFRIBXANCNFSM6AAAAAAXUDVEBA
.
You are receiving this because you authored the thread.Message ID:
@.***>

Was this fixed with the new update?

Uh, how do you even do primitives in ReflectiveConfig? I don't think i'm getting it.
when field is final boolean in reflective in 1.1.0 beta 3:
Class 'java.lang.Boolean' of field 'preventAdvancementBroadcasts' of config class 'folk.sisby.crunchy_crunchy_advancements.CrunchyConfig'is not a valid config value: it must be a TrackedValue or implement org.quiltmc.loader.api.Config.Section

I think every field in a ReflectiveConfig must be a TrackedValue, and not a primitive - you can create them with ReflectiveConfig.value()

Ah so you can just call value(false) seeing as you're in a ReflectiveConfig.
To answer the question - no, this does not solve the problem. TrackedValue<Boolean> (for reflective) and Boolean are both not the same as boolean, so the docs still need to be updated to use the object types in both cases

all javadocs have been corrected as far as I can tell, this can be closed

?


Special Characters in Password Causes Invalid Credentials Error

Having an "@" and a "!" in a password the causes following error:
validate_response(response)  # throws exception if not 200
  File "C:\ProgramData\mambaforge\lib\site-packages\tastytrade\utils.py", line 47, in validate_response
    raise TastytradeError(error_message)
tastytrade.utils.TastytradeError: invalid_credentials: Invalid login, please check your username and password. Unique customer support identifier:

I highly doubt the problem is special characters in your password. Have you tried:

Double checking the username/password combination is correct?
Making sure you're using the right kind of session? (Production for real accounts, certification for sandbox accounts)
Making sure you're opted in to the API? https://manage.tastytrade.com/#/profile/developer

You are right, it was likely something else. Last night, I created the issue because I was getting login errors until I changed my password to one that didn't have special characters. When I changed it back to one with special characters, I got login errors again. However, I can't recreate it as of this morning.


Frequently Asked Questions (FAQ's)

This file contains the possible frequently asked questions and the answers

@dnet please review

@dnet kindly review


Created harsh1x4's readme

What type of PR is this? (check all applicable)

Check according to your PR

[x] 🚀 Added Profile

[ ] ✨ Feature Request

[ ] ✅ Joined Community

[x] 🌟 Stared the repo

[ ] 🐛 Grammatical Error

[ ] 📝 Documentation Update

[ ] 🚩 Other

Description
Created harsh1x4's readme profile
Add Link of GitHub Profile
Harshbardhan Singh

@harsh1x4 please create issue?


Implement Aliases for ScalarUDF

Which issue does this PR close?

Closes #8348
Rationale for this change

What changes are included in this PR?

Are these changes tested?

Are there any user-facing changes?

@alamb  PTAL : )
I'm considering that if we provide a helper function create_udf_with_aliaes


cargo: Introduce feature based compiling

Introducing cargo features(by default, both are enabled)

query_apply
gen_conf

The code has been split to small parts to pass rust clippy check.
The general rule of this split is:
Try our best to use use #[cfg(feature = "query_apply")] only in
lib.rs or mod.rs.
To only compile the genconf part:
cargo build --no-default-features \
    --features gen_conf

Github Action expanded to run cargo clippy for genconf only feature also.
Also enabled MacOS build test for genconf feature only.

@qinqon I have changed to code layout for fit this conditional compiling with #[cfg(feature = "query_apply")] in lib.rs or mod.rs
Please review the new patch again.

The dep: feature require rust 1.60+  while RHEL 8.6 and RHEL 9.0 is still rust 1.58.
Let me change the rpmspec to enable nightly feature in that case.
Considering this branch is targeting RHEL 8.8 and 9.2 where rust will be 1.62+, so we should be OK.


ChainMapper to allow the use of multiple mappers at once

Splitting discussion from #14 into separate discussions. Paging @dig412.

ChainMapper to allow the use of multiple mappers at once - i.e. a stack that finds the top-most compatible mapper. I have Note at the bottom, and all our CustomMappers at the top.

Definitely want to see this one in there for v5, I have already got a place in my own code where it would be a benefit.

This one is linked to #16  - I have a bunch of CustomMappers I want to use for one class each, and then Note for everything else.
I set up the mappers as so:
$chain                  = new Mapper\Chain();
$chain->objectNamespace = "Ents24\Entity";

//Handlers are added in order of most specific to least specific
$chain->addMapper(new Mapper\Event());
$chain->addMapper(new Mapper\Artist());
$chain->addMapper(new Mapper\Venue());
$chain->addMapper(new Mapper\Announcement());
$chain->addMapper(new Mapper\Content());
$chain->addMapper(new Amiss\Mapper\Note());

$manager = Amiss::createSqlManager($connector, $chain);

then ChainMapper intercepts the fromObject and toObject calls, iterates over the registered mappers calling $mapper->supportsClass($className) on each one until it finds a match, then hands off the method call.
It's pretty simple, but the supportsClass() method is where the design is required, as at the moment Note just does return true as I always have it at the bottom of the stack.
An alternative could be that a Mapper should report the classes it can handle to ChainMapper when it is registered, so they can be cached. This would cause problems for autoloader-driven mappers like Note though.

An alternative could be that a Mapper should report the classes it can handle to ChainMapper when it is registered, so they can be cached. This would cause problems for autoloader-driven mappers like Note though.
Could have it both ways? The mapper could report the list of classes if it knows them, or false if it doesn't. Keep a list of all mappers that report false, then if the class-to-mapper entry isn't found in the cache, iterate through the falsey ones calling getMeta() until you get an answer. That answer can also be cached into an Amiss\Cache if one is provided. This is just an 'off the top of the head' idea, so I could be missing a crapload of pertinent details.

I've pushed an implementation of this to the v5 development branch. Took your advice about the supportsClass rather than the v4-specific hacks I suggested, but that took some cleanup work to work with the Note mapper. I agree that you'll more than likely have it last in the stack, but I didn't want someone to find out the hard way that you can't do that so the Note mapper supports it too.
The problem I ran into was determineTypeHandler. It's the only method on the mapper that doesn't take meta as an argument, and contains no information that can be used to select a child mapper. What's the best way to deal with this? Should the Chain mapper inherit Amiss\Mapper\Base and handle types itself, or should it delegate to the mappers? Or both?

v5 is now master, this is available in the latest release.


Publish plugins to npm and move to separate repos?

Would it be possible to do this? It would allow each plugin to be updated and installed independently, what do you think?

I may have answered my own question.. but after a little digging I realised that I could do this:
require('lazysizes/plugins/bgset/ls.bgset');

Is that how you intend plugins to be used in a Browserified codebase?

Yes, this is exactly the way. I'm doing it my own.

Sorry to hijack this thread … but how would you load the plugin using ES6 module pattern?
Thanks.

@raphaelokon maybe just
import 'lazysizes/plugins/respimg/ls.respimg.min.js';


python37: get it to build again on darwin

Address https://github.com/NixOS/nixpkgs/issues/56826#issuecomment-481630412 with a workaround.

@GrahamcOfBorg build python3

noop on linux/aarch
fixes python build on darwin

I have an ugly patch in my personal config that lets the existing patch apply cleanly by stripping out the AIX logic that got added in 3.7.3.
https://gist.github.com/jhenahan/da79b184bbe8cfbc330d88a671f04848

Commit fdbcf5ba36709b108302ae27c63e2c7be4e6bf05 (on master) includes an updated distutils patch.

Did I not backport it?

@LnL7, my bad, it has been backported into release-19.03!


Highlight some parts of messages

Since colors are helping a lot to visually looking for information in the console, would it be great to also have the ability to highlight some important parts of a message; such as numbers or keywords ?

Try
debug("%o", obj)

It will color highlight the object depending on its type, RegExp are red, numbers are yellow, strings are green, etc.
Other than that you will need to use plain old control characters.
See clor or chalk for a simple solution to this.

That's what I ended up to use, thanks for the tips !


Migrate langlib unit tests

Description:
Migrate langlib unit tests
Steps to reproduce:
Affected Versions:
OS, DB, other environment details and versions:
Related Issues (optional):
#21987

Completed with BString migration


The meta image of the website does not exist. | logo.jpg

Bug Description
The meta tag points to /logo.jpg but logo.jpg does not exist.

Steps to Reproduce
Steps to reproduce the behavior:

Go to '/logo.jpg'

Expected behavior
To have a meta image at logo.jpg in the public folder, or have some other image.
If you are changing the image then you would have to change this:- https://github.com/FrancescoXX/4c-site/blob/main/4c.config.js#L12

do a pr

Done ✅


Extracted OpenAI Spring Boot starter into a separate module

@jdubois @Heezer do you mind taking a quick look at this PR? I want to make sure I did not miss anything before I start extracting starters for other model providers. Thanks!

@langchain4j the first thing I would do is upgrade to the latest Spring Boot 3.2.0 release, as the 2.7.x branch is end of life now. I can have a look if you want!

@jdubois that would require minimum java 17... Please let's not start this discussion right now 😅

I've just tested this dependency on Spring 3.2.0 project, works good. It does not pull any 2.X dependencies, so no worries here.

Ah ah OK, but we need to check if this will work fine with Spring Boot 3.2

Oh same comment at the same time :-)

@jdubois I have pushed updates that address your comments, could you please check? Thanks!
One more thing: I anticipate that it will be common to use multiple models (with different configs) for different purposes in the same app, so langchain4j should support that. But I am not sure how to better implement this in auto configuration. Any ideas?

is examples and starters not better put in the examples repo or separate module ? otherwise depmanagement in the pom and bom's now drag in a tail of dependencies that is not actually needed for langchain4j.

@maxandersen I am not sure I understand the problem. Spring Boot starters will reside in their own maven modules/artifacts, so there should be no problem. BOM pulls only versions of langchain4j modules, so it makes sense to include all related dependencies there (that's the point of the BOM, right?). Another pom that is referencing spring boot starters is langchain4j-aggregator, which noone should use. Could you please elaborate? Thanks!

Reasons:

any dependency in your bom/pom risk being analyzed by tools doing cve anytics and Langchain4j will be unnecessary marked as having issues when it doesn't. Same reason we don't push for putting quarkus extension/samples into this repo.

if it is separate you could use spring 3.x and have java 17 examples instead of limit to java 8/11

@maxandersen good point, I have moved it to https://github.com/langchain4j/langchain4j-spring


WBC-224 FE CSR - Playeranpassungen

Coverage remained the same at 100.0% when pulling 4ea68e06ef995448ad3723276c3427567c8d1799 on tacitly:audioOnly into c9aa9a37d1234aea6d27bbbc7c6ffdee78d1ed83 on MovingImage24:master.


Fine-tuned Models

Thanks for your amazing work! Can you provide some finetuned models' checkpoints?

Hi @MT010104,
Thank you for the interest to try BiasFinder :)
In the github readme, we provide the script to fine-tune the pre-trained models using Huggingface library. The script will download the pre-trained model automatically from the Huggingface server. We believe that it's more easier and efficient rather than preparing 10 models' checkpoint.
Please check this script
bash fine-tune-imdb.sh
bash fine-tune-twitter-s140.sh

Please let us know if you face any difficulty in fine-tuning the models or replicating the work.
Many thanks,
Hilmi


feat: arabica bootstrappers now dnsaddr multiaddr

Arabica Bootstrappers now follow the dnsaddr of multiaddr.
https://github.com/multiformats/multiaddr/blob/master/protocols/DNSADDR.md

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 44.65%. Comparing base (2469e7a) to head (36b4fae).
Report is 125 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #3525      +/-   ##
==========================================
- Coverage   44.83%   44.65%   -0.19%
==========================================
  Files         265      273       +8
  Lines       14620    15385     +765
==========================================
+ Hits         6555     6870     +315
- Misses       7313     7714     +401
- Partials      752      801      +49

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Please make the "Enter fullscreen", "Exit fullscreen" text translatable

It should be as simple as using the __ translation helper that is available on the Vue instance, i.e. change these lines:
https://github.com/InteractionDesignFoundation/nova-unlayer-field/blob/d965fdfb825d3029cd1dbb4bedd243670db9bb67/resources/js/components/FormField.vue#L29-L34
to this:
on: '▶ ' + __('Enter fullscreen'),
off: '✖ ' + __('Exit fullscreen'),

Or maybe it's this.__('Enter fullscreen'), I'm not 100% sure.
Anyway, like this, a developer can define a translation in a translation file and if none is defined it will still display the English text.
A more elaborate alternative (might be overkill) is to make the text completely customizable, something that could be used like this when instantiating the field:
Unlayer::make('something')->withButtonLabels([
    'enterFullscreen' => 'foo',
    'exitFullscreen' => 'bar'
])

@BenjaminBrandtner
Good idea, thanks for sharing! I just created a simple solution, but have an idea how to improve it in further releases (without BC).
Release: https://github.com/InteractionDesignFoundation/nova-unlayer-field/releases/tag/0.1.2


Support ordered list numbering.

Subject of the feature
It would be great to have a way to generate ordered lists, starting at any number, such as:

one
two

Some text...

Three
Four

Problem
It's not possible to define the list starting number.
Expected behavior
the simplest implementation could look for a number property on a listItem node.

This should be possible? There's a 'start' prop on lists which is used when ordered: true?

This should be possible? There's a 'start' prop on lists which is used when ordered: true?

aah:
https://github.com/syntax-tree/mdast-util-to-markdown/blob/f355cc6489517397a3ce6625975695058acaa69d/lib/handle/list-item.js#L18
never mind. thanks.

aah:
https://github.com/syntax-tree/mdast-util-to-markdown/blob/f355cc6489517397a3ce6625975695058acaa69d/lib/handle/list-item.js#L18
never mind. thanks.


Broadcast op + Update Submodules

Based on https://github.com/dmlc/mxnet/pull/2039 .
Two questions:

I'm not sure whether to add inplace-opt flag because  the validation of inplace-opt depends on the shape of lhs and rhs. E.g, (2,2) + (2, 1) can be optimized while (2,1) + (1,2) cannot.
Can we directly use the broadcast_with_axis operation in MShadow to simplify the implementation?

any idea what's causing this?
return np.sum(x, keepdims=1, axis=tuple(axis))
TypeError: sum() got an unexpected keyword argument 'keepdims'
Some people seems to have this issue as well. Is it due to numpy version?

Have no idea about the problem... Let me test again.

https://github.com/numpy/numpy/issues/4537
looks like a numpy bug that's recently fixed. Has to do with masked arrays. Maybe try to copy them into normal arrays

@sxjscience thanks for the followup. i was sick last week... we'd better remove the inplace flag. when the shape matched, inplace is fine. but it is problematic if the engine is not smart on that.
another thing i didn't do is writing test code for mul
@piiswrong that error is due to low version of numpy. i think we can remove keepdims

i used broadcast rather than broadcast_with_axis because i guess the former has less index operators and may have better performance,

@mli I've removed the keepdims and inplace flags. Also I've tested broadcast_mul and the code is correct.

LGTM. @mli Could you have a look and lets merge

lgtm
On Wed, May 18, 2016 at 10:54 AM Eric Junyuan Xie<EMAIL_ADDRESS>wrote:

LGTM. @mli https://github.com/mli Could you have a look and lets merge
—
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub
https://github.com/dmlc/mxnet/pull/2165#issuecomment-220107117

let's rebase and merge @sxjscience

I've rebased @piiswrong

many thanks
On Thu, May 19, 2016 at 10:54 AM Tianqi Chen<EMAIL_ADDRESS>wrote:

Merged #2165 https://github.com/dmlc/mxnet/pull/2165.
—
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub
https://github.com/dmlc/mxnet/pull/2165#event-666158735


ERROR: JOIN with sub queries is not supported [SQL State=XX000]

I would like to count a table of trading volume, because the member of the basic information is in another table, so the need to joins,but can not get the results in a SQL, am I wrong? what hapend with this:
SELECT a.member_id,,b.name,count(*)
FROM test_01.order  a
left  join test_02.member b on a.member_id=b.member_id
group by a.member_id
ERROR: JOIN with sub queries is not supported [SQL State=XX000]
ERROR: GROUP BY on JOINS is not supported [SQL State=XX000]
JDBC version:2.1.6

As the error message indicates, group by on joins are currently not supported. See https://github.com/crate/crate/issues/4672


Feature request: add an IORING_ENTER_SUBMIT_ALL flag

The purpose of this flag is to submit all the provided SQEs without stopping on the first SQE-related error when you call io_uring_enter. The per-SQE error report mechanism is asynchronous anyway so there is no point in stopping the submission of SQEs because in a large async application the point of error-handling for that SQE is not where io_uring_enter is called; the user of the ring which queued the SQE will handle the error and io_uring_enter is usually called in a central place that is basically the IO port/ring/loop abstraction.
Right now what you have to do is repeatedly called io_uring_enter in a loop until it submits all your SQEs every time it stops because of an SQE error, because you want to handle the errors at the point where you queued the SQE which is usually inside the code of one of the users of the ring. This flag will basically compress all those wasted syscalls into one.

Would this be more useful as a setup flag? I would imagine that it's mostly a per app kind of thing, if you prefer to have everything submitted and not stop on submit errors. Could be IORING_SETUP_ENTER_ALL or something like that. Would also make it easier to retrofit in applications and liburing, as we don't need to change anything but the setup call.

Yeah a setup flag would work great for this.

Becomes really trivial then:
diff --git a/fs/io_uring.c b/fs/io_uring.c
index 8a53af8e5fe2..b92fbc1dc932 100644
--- a/fs/io_uring.c
+++ b/fs/io_uring.c
@@ -6458,6 +6458,8 @@ static int io_submit_sqes(struct io_ring_ctx *ctx, unsigned int nr,
 fail_req:
 			io_put_req(req);
 			io_req_complete(req, err);
+			if (ctx->flags & IORING_SETUP_ENTER_ALL)
+				continue;
 			break;
 		}

@@ -8613,7 +8615,8 @@ static long io_uring_setup(u32 entries, struct io_uring_params __user *params)

 	if (p.flags & ~(IORING_SETUP_IOPOLL | IORING_SETUP_SQPOLL |
 			IORING_SETUP_SQ_AFF | IORING_SETUP_CQSIZE |
-			IORING_SETUP_CLAMP | IORING_SETUP_ATTACH_WQ))
+			IORING_SETUP_CLAMP | IORING_SETUP_ATTACH_WQ |
+			IORING_SETUP_ENTER_ALL))
 		return -EINVAL;

 	return  io_uring_create(entries, &p, params);
diff --git a/include/uapi/linux/io_uring.h b/include/uapi/linux/io_uring.h
index d65fde732518..9e830b760ffd 100644
--- a/include/uapi/linux/io_uring.h
+++ b/include/uapi/linux/io_uring.h
@@ -95,6 +95,7 @@ enum {
 #define IORING_SETUP_CQSIZE	(1U << 3)	/* app defines CQ size */
 #define IORING_SETUP_CLAMP	(1U << 4)	/* clamp SQ/CQ ring sizes */
 #define IORING_SETUP_ATTACH_WQ	(1U << 5)	/* attach to existing wq */
+#define IORING_SETUP_ENTER_ALL	(1U << 6)	/* don't stop submit on error */

 enum {
 	IORING_OP_NOP,

I'll post the patch for 5.10 - I generally like to provide attribution to patches, either for reporting bugs but also for suggesting items. If you'd like me to include that, please tell me your real name and email and I'll add it.

@hedgefund, what is your use case? Requests are usually meant to not fail or do it rarely.

Totally agree on that, you're generally doing something wrong if random errors are expected. That said, it does mean you don't have to worry about submit looping if you are expecting rare errors, so it simplifies the user space code. And I'm always a big fan of that.

@isilence I erroneously had a bunch of recv() requests queued for the same TCP socket with the intent to have the kernel filling my buffers while I'm processing already-received data. I had assumed it works like IOCP where in a single thread situation all the queued recv() for the same socket will complete in the order that data arrived on the socket (so you could have the 5th recv() request complete before the 1st in the CQ but that's OK because all that matters is the data ordering for processing). But turns out that with io_uring the requests will complete out of order even wrt the data ordering on the socket itself so you can only ever have 1 outstanding recv() per socket if you want to process incoming data in order, so I have to revise my plan.
BTW, is there a way to achieve that? having requests always pending with recv() so that while I'm processing previously received data the kernel will already be filling my next buffer. On Windows with IOCP you simple queue a bunch of WSARecv() on the same socket, and assuming you are only reaping completions from a single thread, they complete in the order which data arrived.
I'm aware of the IOSQE_IO_LINK flag but in this situation it's not a good fit; while I could use that flag on the initial submission of buffers right after the socket is connected (say, 8 x recv() submissions all linked together) and that will achieve what I want for that specific batch, but the problem is that I'm always re-posting buffers that completed while data is being received, and they would be out-of-order with the initial batch of posted buffers.

@isilence I erroneously had a bunch of recv() requests queued for the same TCP socket with the intent to have the kernel filling my buffers while I'm processing already-received data. I had assumed it works like IOCP where in a single thread situation all the queued recv() for the same socket will complete in the order that data arrived on the socket (so you could have the 5th recv() request complete before the 1st in the CQ but that's OK because all that matters is the data ordering for processing). But turns out that with io_uring the requests will complete out of order even wrt the data ordering on the socket itself so you can only ever have 1 outstanding recv() per socket if you want to process incoming data in order, so I have to revise my plan.

I see. Do we need the feature then or not?

BTW, is there a way to achieve that? having requests always pending with recv() so that while I'm processing previously received data the kernel will already be filling my next buffer. On Windows with IOCP you simple queue a bunch of WSARecv() on the same socket, and assuming you are only reaping completions from a single thread, they complete in the order which data arrived.

Not currently with io_uring. Even if there is some magic in TCP stack for that, it'd be
hard to use because io_uring may reorder requests. Sounds like a feature request.
Would you mind sending proposal to io-uring at vger.kernel.org?

I'm aware of the IOSQE_IO_LINK flag but in this situation it's not a good fit; while I could use that flag on the initial submission of buffers right after the socket is connected (say, 8 x recv() submissions all linked together) and that will achieve what I want for that specific batch, but the problem is that I'm always re-posting buffers that completed while data is being received, and they would be out-of-order with the initial batch of posted buffers.

I see. Do we need the feature then or not?

I think this feature is useful regardless of my own issues; it simplifies the client API and it makes more sense IMO in a large fully-async application. Usually in these situations the place that called io_uring_enter can't do anything with the information that only some of the SQEs were submitted because of an error; it will just call io_uring_enter again until they are all submitted and let the submitters of the SQEs handle the errors as they see fit.
Concrete example from my experiments with io_uring: when you submit a request to the I/O abstraction layer you provide a callback function/lambda, the io_uring abstraction puts the callback pointer inside user_data and when it reaps completions it simply calls the callback inside user_data for each CQE with the res of that completion as an argument; inside the I/O layer that wraps io_uring you have no idea who submitted something, what kind of request they submitted or what they plan to do with/how they handle their errors. This is a popular way to design async I/O systems and in that situation it makes no sense to stop submissions because of errors.

Not currently with io_uring. Even if there is some magic in TCP stack for that, it'd be
hard to use because io_uring may reorder requests. Sounds like a feature request.
Would you mind sending a proposal to io-uring at vger.kernel.org?

Can you give me some guidance on what I need to include/detail in such a proposal? I had one more feature request that has to do with registering/unregistering buffers; in short:

Using a stable unique ID identify registered buffers instead of the index which is brittle
Register new buffer(s) without unregistering the old ones
Selectively unregister some buffer(s) using said stable ID, while the IDs of all the other buffers are preserved
When submitting SQEs use said stable IDs
Also register/unregister buffers asynchronously using the ring itself, kinda like IORING_OP_FILES_UPDATE

I'm a bit late, my apologies.
Nothing of formal of course, that's just to gather more audience
+ kernel development is there. Just copy-paste what you already
have here and add [RFC] to the subject. If proposals are unrelated,
that'd be great if you send them separately.
All ideas, suggestions, proposals and so on are very welcome!

I'll post the patch for 5.10

Did this make it in, perhaps with a different flag name?
I'd certainly use this feature if it does get added. My application is a language runtime, so it's exactly the use case that the original reporter had: central dispatch in the runtime system, with I/O errors handled upon I/O completion by the individual application-level use sites.

Same here - it would have avoided #309

This is in mainline:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/fs/io_uring.c?id=bcbb7bf6ccde7cb969a5642879832bc84ebf06a3


ResourceResolver::resolveNode does not match empty method

Your REST API example demonstrates a node with no defined method or path.
I tried a node with a defined path but no method, expecting the handler to then switch upon GET or POST when accessing the path.
The node resolver fails to allow such a match to take place.
Suggested change is to add a match condition for an empty method in the node:
  if (node->_nodeType==nodeType) {
      if (
        // For handler functions, check the method declared with the node
        (node->_nodeType==HANDLER_CALLBACK && ((ResourceNode*)node)->_method == method) ||
        // For websockets, the specification says that GET is the only choice
        (node->_nodeType==WEBSOCKET && method=="GET") ||
      ) {

to
  if (node->_nodeType==nodeType) {
      if (
        // For handler functions, check the method declared with the node
        (node->_nodeType==HANDLER_CALLBACK && ((ResourceNode*)node)->_method == method) ||
        // For websockets, the specification says that GET is the only choice
        (node->_nodeType==WEBSOCKET && method=="GET") ||
        // handler must decode method
        (node->_nodeType==HANDLER_CALLBACK && ((ResourceNode*)node)->_method == "")
      ) {

The REST-API example defines such a node, but uses it as default node, meaning it's the fallback if no other node matches:
  ResourceNode * spiffsNode = new ResourceNode("", "", &handleSPIFFS);
  secureServer->setDefaultNode(spiffsNode);

As the main reason for having such a default node is to handle non-matching requests, path prefix and method are ignored in that case. But I think your suggestion makes sense.

As way of my usage explanation, I have a couple of special paths for
special functions that initiate a form POST in return, so an initial GET of
the path gets the HTML / form to complete, then the submit throws back to
the same path as a POST. Having the single Node to handle the GET and POST
just makes it tidier when setting up the nodes, and more cohesive as a
whole.
I have been trying the change out today, and it appears to do what I need
to do.
I don't think there is a down side, but obviously the handler code should
be programmed to ensure it is a GET or POST it is dealing with.
Cheers,
Ray
On Tue, Apr 21, 2020 at 3:45 PM Frank Hessel<EMAIL_ADDRESS>wrote:

The REST-API example defines such a node, but uses it as default node,
meaning it's the fallback if no other node matches:
ResourceNode * spiffsNode = new ResourceNode("", "", &handleSPIFFS);
secureServer->setDefaultNode(spiffsNode);
As the main reason for having such a default node is to handle
non-matching requests, path prefix and method are ignored in that case. But
I think your suggestion makes sense.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/fhessel/esp32_https_server/issues/86#issuecomment-616965662,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AG6NZGOCECS7BZJO6X46U5LRNUXI5ANCNFSM4MM4GMAA
.


New build needed

Hello, I'm trying to fix iron/router to get the Heroku example program working again, and it looks like the crates.io version of route-recognizer is out of date. Could we please have a new package? :-)
(Also, is there a better stack to use than iron, for demo purposes? conduit looks interesting but there are no docs that I can find yet.)

There have been a few releases since this was opened, I assume it's been sorted by now :)


Adding font assets to RN .60.3

I appear to be unable to link font assets. Hopefully I have added the fonts correctly and configured the correct settings. When I run react-native link nothing appears to happen, no messages or errors are displayed.
React Native version:
System:
OS: macOS 10.14.5
CPU: (12) x64 Intel(R) Core(TM) i7-8700B CPU @ 3.20GHz
Memory: 8.61 GB / 32.00 GB
Shell: 3.2.57 - /bin/bash
Binaries:
Node: 10.16.0 - /usr/local/bin/node
Yarn: 1.6.0 - /usr/local/bin/yarn
npm: 6.9.0 - /usr/local/bin/npm
Watchman: 4.9.0 - /usr/local/bin/watchman
SDKs:
iOS SDK:
Platforms: iOS 12.2, macOS 10.14, tvOS 12.2, watchOS 5.2
Android SDK:
API Levels: 23, 25, 26, 27, 28
Build Tools: 23.0.1, 25.0.2, 25.0.3, 26.0.2, 26.0.3, 27.0.2, 27.0.3, 28.0.1, 28.0.2, 28.0.3
System Images: android-24 | Google Play Intel x86 Atom, android-27 | Google Play Intel x86 Atom, android-28 | Google APIs Intel x86 Atom, android-28 | Google Play Intel x86 Atom
IDEs:
Android Studio: 3.4 AI-183.6<IP_ADDRESS>92245
Xcode: 10.2.1/10E1001 - /usr/bin/xcodebuild
npmPackages:
react: 16.8.6 => 16.8.6
react-native: 0.60.3 => 0.60.3
npmGlobalPackages:
create-react-native-app: 1.0.0
create-react-native-typescript-app: 1.2.0
react-native-git-upgrade: 0.2.7
Steps To Reproduce
My react-native.config.js:
module.exports = {
dependency: {
platforms: {
ios: {},
android: {},
},
assets: ['./assets/fonts/'],
},
};

Hi @simonwalker-celadin,
I just succeeded to add custom fonts to my own project with React Native version 0.60.3, and my react-native.config.js file looks slightly different than yours:
module.exports = {
  assets: ['./assets/fonts'],
};

This is what my file tree looks like:
App.js
__tests__
android
app.json
assets/
└── fonts
              ├── CustomFont.otf
              ├── CustomFont-Bold.otf
             └── CustomFont-Medium.otf
babel.config.js
index.js
ios
metro.config.js
node_modules
package.json
react-native.config.js
yarn.lock

Running react-native link correctly detected the fonts folder inside my assets folder:
info Linking assets to ios project
warn Group 'Resources' does not exist in your Xcode project. We have created it automatically for you.
info Linking assets to android project
success Assets have been successfully linked to your project
✨  Done in 1.14s.

It looks like you took inspiration from the Libraries section from the documentation of react-native link: https://github.com/react-native-community/cli/blob/master/docs/configuration.md#libraries
For an app, you don't need to scope your configuration under dependency.
So replace your config with
module.exports = {
    project: {
       ios: {},
       android: {},
    },
   assets: ['./assets/fonts/'],
   },
};

and you should be good to go! (I believe you can also drop the project part and use essentially the same config file as I used for my project.
Hope that helps!

Thank you. I have replaced my react-native.config.js with:
module.exports = {
  project: {
    ios: {},
    android: {},
  },
  assets: ['./assets/fonts/'],
};

as per your suggestion and font linking is now working.

Hey, I happen to be facing the exacly same issue. I was using rnpm on package.json to link the fonts' path but when I tried react-native link on the terminal it returned nothing. I've just created a react-native.config.js, after I read about rpnm depreciation, and put the same lines as yours in it but it seems the file is not been recognized or something. react-native link still doesn't return anything

same here, although I declared the moule to use ONLY my custom extensions metro.config.js is clearly ignored.
module.exports = {
  project: {
    ios: {},
    android: {},
  },
  assets: [
    './src/assets/icons',
    './src/assets/svg',
    './src/assets/ai',
  ],
  assetExts: [
    '.xml', ".png", ".jpg", ".pb", ".tflite"
  ]
};

and the message is still the same:
error: bundling failed: Error: Unable to resolve module `./ai/annotations/Part1.xml` from `...src/assets/default-assets.js`: The module `./ai/annotations/Part1.xml` could not be found from `.../src/assets/default-assets.js`. Indeed, none of these files exist:
  * `.../src/assets/ai/annotations/Part1.xml(.native||.android.js|.native.js|.js|.android.json|.native.json|.json|.android.ts|.native.ts|.ts|.android.tsx|.native.tsx|.tsx)`

Its starting to make making crazy...
How coult it be so hard to use custom assets within an application?

@simonwalker-celadin Problem is assets are getting coppied to wrong path. if you copy manually to android/app/src/main/assets things works

I found that error


Drag and Drop not working on Mac OS X 10.12.6

Drag and drop a file from file explorer (Finder) to the main screen of otros

Expected: Log file is opened, same as on windows
Result: An error is displayed ("null")

See screenshot. On windows this works fine. Opening it via "tail logfile" also works fine on Mac.

@rggjan I can't reproduce it. Can you send application log $HOME/olv.log

Is attached...
olv.log

Closed with issue #452


Determine time splits for new story

As a story writer, I need to know what section I'm working on so I can work on it.

1/3: Alex
2/3: Max
3/3: Aaron

One potential split is:

beginning to 38:802
38:802 to 1:17:202
1:17:202 to end
However this would mean that the second section would have 0 choruses and the third section would have 2.
Alternatively, we can do a 4-split:
beginning to 38:802 (39 seconds)
38:802 to 58:002 (19 seconds)
58:002 to 1:35:802 or 1:36:402 (39 seconds)
rest (20 seconds)

My preference is for option 1. I think its good to have 3 clearly separated sections.

We decided to do option 2


Update github workflows

It seems we're using this:
https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/

24-July-2023 Update: Our telemetry shows significant usage of these commands so we have decided to postpone the removal. To learn more, visit the latest changelog post.

so not a priority right now


Change Wave Direction?

Hello,
I would like to know if it is possible to change the wave's movement direction?
Left to Right instead of Right to left
Thank you

@Tojonirina4

For v1.x.x the answer is NO.

v2.x.x support this feature. Check at :

WaveAnimOption
v2.0.0 is not ready to release, but soon.

ok, Thank you :)
Le jeu. 25 avr. 2019 à 07:29, Jian Wei<EMAIL_ADDRESS>a écrit :

@Tojonirina4 https://github.com/Tojonirina4

For v1.x.x the answer is NO.
v2.x.x support this feature. Check at :
WaveAnimOption
https://github.com/CubeSugar/react-native-waveview/blob/1a910b08ea2cee6ff7b4936bb99aa1023dbef73f/src/wave.tsx#L38
v2.0.0 is not ready to release, but soon.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/CubeSugar/react-native-waveview/issues/9#issuecomment-486506858,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABZXJK5QFQWHF56DP4UC2PDPSEQRDANCNFSM4HIAAMBQ
.


find_package(cereal) fails to find cereal

Bug Description
When find_package(cereal) is after the line set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake") - it fails to find cereal. It appears that Findcereal.cmake causes this failure. It looks like Findcereal.cmake isn't needed since cereal provides its own cmake scripts.
Reproduction Steps
Regular configure.
Platform and Hardware
FreeBSD 13.1
cereal-1.3.2

@yurivict — this was here to support legacy configurations, but removing it makes sense now. I'll do so soon.

@yurivict Findcereal.cmake isn't in main — it was removed in https://github.com/flashlight/flashlight/pull/1060 favor of the config-based approach. If you're checked out to an old version, you should use old dependencies as loosely specified by CMake. If not, I'd recommend sticking to main.


check cec message length when asking physical address

Description:
Be benevolent in CEC compliance.
Related issue (if applicable): fixes konikvranik/home-assistant#37
Checklist:
If the code communicates with devices, web services, or third-party tools:

[x] Local tests with tox run successfully. Your PR cannot be merged unless tests pass
[x] New dependencies are only imported inside functions that use them ([example][ex-import]).
[x] New dependencies have been added to requirements_all.txt by running script/gen_requirements_all.py.

119 commits and only 10 lines changed? For your next PR, please create a new fork from our dev branch.


Do not evict running jobs

Tell us about your request
Right now the consolidation replaces nodes with running jobs. This breaks a lot of deployments (doing db upgrades or other stuff). One way to handle this issue is putting do not eviction annotations on the corresponding pods. But it is difficult to ensure that if you have dozens of teams using a given cluster.
Could this be handled in a more generic way?
All these jobs look like this:
Controlled By:  Job/xxx-yyy-zzz-28031590
Can karpenter optionally just use the do not evict behavior for running jobs?
Tell us about the problem you're trying to solve. What are you trying to do, and why is it hard?
It is difficult to ensure all pods have the do not evict annotation.
Are you currently working around this issue?
Manually set do not evict to all corresponding pods.
Additional Context
No response
Attachments
No response
Community Note

Please vote on this issue by adding a 👍 reaction to the original issue to help the community and maintainers prioritize this request
Please do not leave "+1" or "me too" comments, they generate extra noise for issue followers and do not help prioritize the request
If you are interested in working on this issue or have submitted a pull request, please leave a comment

For comments in this issue regarding pods with do-not-evict being ignored, it's possible you were running into an issue fixed in v0.31.1 (PR: https://github.com/aws/karpenter-core/pull/583).
For others who are experiencing continual behavior of job pods terminating and rescheduling with do-not-evict blocking node disruption, we're tracking this effort through the first two issues in the mega issue here: https://github.com/aws/karpenter-core/issues/624

We could try to set a label on Jobs (and their Pods) to declare whether or not the Pods are trivially interruptible. That allows people to opt in to the behavior where Job-owned Pods don't block a node replacement.
Eventually, supplant this with a MutatingAdmissionPolicy (these are very new) or other mechanism, so that you get per-namespace control to select which Jobs do or don't get marked as interruptible.
That feels like it'd fit Karpenter / node autoscaling well. With that architecture, Karpenter doesn't have to know about the Job API; it just has to look at the Pods bound to a node and check their labels.

If we want that label key defined, Kubernetes can help.

Curious if a "disruption cost" annotation on the pod could help make progress towards this class of problem. I could see this helping for when consolidation makes an instance replacement for a marginal cost improvement, as well.

/remove-lifecycle stale

Curious if a "disruption cost" annotation on the pod could help make progress towards this class of problem. I could see this helping for when consolidation makes an instance replacement for a marginal cost improvement, as well.

We have controller.kubernetes.io/pod-deletion-cost supported in other parts of the project.

One way Karpenter could support that: have a NodePool-level setting that maps Pod deletion cost values to actual money.
Either a scale factor (complex to teach), or a CEL expression (really complex to teach, if I'm honest). It needs to be NodePool level in case you have on-prem and cloud NodePools in the same cluster.

Related to this, maybe we'd like to add a node deletion cost annotation (which, like Pod deletion cost, would be an abstract integer value).

What is cost in units of for the current use? Isn't the node deletion cost the sum of the pods? I could potentially see a config value in NodePool like defaultDeletionCost, potentially with a pod selector (incl field selector to grab owners like job).

I could see this helping for when consolidation makes an instance replacement for a marginal cost improvement, as well.

Maybe I'm getting lost in the conversation, but don't we already leverage the pod disruption cost for ordering the nodes when we are considering which nodes should be considered first for any disruption operation: https://github.com/kubernetes-sigs/karpenter/blob/main/pkg/controllers/disruption/helpers.go#L125?
I'm also skeptical that this solves the problem that was originally raised around this issue. Isn't the proper fix here to ensure that Karpenter taints nodes before it validates which pods have scheduled to it so that we can reduce our chance of race conditions around this checkpoint? Our biggest problem today is that we grab the nodes and the pods and then determine if there are any karpenter.sh/do-not-disrupt pods on the node, but we might have missed a pod schedule during this time.
If we taint ahead of checking this, it seems like we just circumvent our leaky behavior with pods today.

@jonathan-innis I am also lost here is my original issue fixed with your ideas? I just cannot add the do not evict stuff to all jobs without introducing additional complexity like kubemod.

@runningman84 if you're asking for Karpenter to solve this so you don't need to install a second tool, that game's not worth the candle (it's a lot of effort for Kubernetes contributors that isn't justified by the benefits to end users).

It is difficult to ensure all pods have the do not evict annotation.

You can use a mutating admission webhook to achieve this; doing that is a very well known approach.

We're seeing cases that look like the following with the Actions Runner Controller project to run GitHub Actions.  It's reducing our confidence in our testing, and generally the actions are done within about 10 minutes or so.  TerminationGracePeriodSeconds on the pods running the actions doesn't seem to help.
One odd thing is that we see the following pattern, which I think is intended to be consolidation:
│ Events:                                                                                │
│   Type     Reason            Age   From               Message                                                                                │
│   ----     ------            ----  ----               -------                                                                                │
│   Warning  FailedScheduling  83s   default-scheduler  0/9 nodes are available: 1 node(s) had untolerated taint {CriticalAddonsOnly: true}, 8 Insufficient cpu. preemption: 0/9 nodes are available: 1 Preemption is not helpful fo │
│ r scheduling, 8 No preemption victims found for incoming pod.                                                                                │
│   Normal   Scheduled         82s   default-scheduler  Successfully assigned arc-runners/arc-runner-set-ckxxm-runner-hfbfc to ip-10-0-1-69.ec2.internal                                                                             │
│   Normal   Pulling           81s   kubelet            Pulling image "XXXX"                                                                                │
│   Normal   Pulled            81s   kubelet            Successfully pulled image "XXXX" in 226ms (226ms including waiting)                                                                             │
│   Normal   Created           81s   kubelet            Created container runner                                                                                │
│   Normal   Started           81s   kubelet            Started container runner                                                                                │
│   Normal   Nominated         4s    karpenter          Pod should schedule on: nodeclaim/default-tvqd9, node/ip-10-0-2-189.ec2.internal                                                                                │
│   Normal   Killing           3s    kubelet            Stopping container runner

Note that the pod was Scheduled and then karpenter later came along and Nominated the pod to a different node.
Did the suggestion of a PodDisruptionBudget work / help others?  It would be nice to have a common documented FAQ topic for this, as I imagine that using Karpenter to handle bursty "job-type" workloads is probably fairly common.

/remove-lifecycle stale

@evankanderson This sounds like the intended use case for the karpenter.sh/do-not-disrupt annotation (docs), is this occurring when job pods have this annoation? Karpenter shouldn't voluntarily disrupt a node if any bound pods have this annotation. There is a known race condition which can result in do-not-disrupt pods scheduling to nodes after the consolidation decision was validated. A fix was merged in v0.36.1 that largely mitigated this but it can still occur occasionally, but an inflight change will block node termination on these pods which should completely resolve this issue.

@jmdeal We have been facing similar race condition problem wherein our k8s job pods gets scheduled right before the tainting of nodes happens or right after the consolidation decision is made.
An Inflight change will block this node terminations on the pods - What does that mean?  How long will it take to have this fix implemented?

Does it mean making the consolidation on the go once the decision is made, add a taint on to it.
Re-validate the node while the termination happens for pods which are running and with annotation
karpenter.sh/do-not-disrupt to not disrupt.

/remove-lifecycle stale


[21.05] tor-browser-bundle-bin: 10.5.6 -> 10.5.10

Motivation for this change
Manual backport of #140885 and #142987 (also added EFF mirror to make future updates easier)
Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
21.11 Release Notes (or backporting 21.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

And now it conflicts with release branch :(

I think this can be closed, 21.05 is EOL.


Wasm service worker and htmx  idea

There is a rust example here: https://www.reddit.com/r/htmx/comments/y64ian/wasmservice_proof_of_concept_for_htmx_webassembly/
The concept I like is to render off the server to ensure fast initial load and then boot strap the Service worker.
The Service worker is just a version of the golang backend that acts as a proxy.
Use cases ?
Quasi db and template rendering . In the same way that the cache uses tags and they are invalidated by the DAL , we could invalidate data and hence rendered templates in the service worker.
Materialised views are its data. The Bsckend DB produces data , and we cache it in Redis. We could extend it to the Service worker .
both the above examples require the Server to fire events to the Service worker to tell it that data is invalidate.
Posts from the Browser DOM to the Service Worker could do validation , and if passed get fed further to the backend where further validation is sometimes required.
Building a service worker just requires the service.js and the wasm ( originally golang ) will load.
The htmx Ajax would route through to the Service Worker. Just like it does now to the backend.

I don't understand what benefit this provides, though I probably don't even fully understand what the proposal is.

The concept I like is to render off the server

Go (server) is already doing the HTML rendering. That is what is sent to HTMX. And the cache is available to either cache data, HTML, or whatever you prefer.
Can you elaborate more on what this provides and what the benefits are?

Ok let me just try to explain it this way.
Htmx is all about sending html to the client to replace parts of the page.
With “wasm htmx” you send wasm. The wasm has logic and html templstes.
Now you have the same wasm running on the server for the need fast “ time to interaction “, but you progressively move that same wasm to the client .
The client wasm can cache data , and so do things itself.
the client wasm can hold a per user store , and that per user store is of course able to render things. But the big thing is that with modern CDC / materialised views patterns , the user store can be sent data updates ( crud events to changes its materialised view ).
Hope this makes more sense and you see the benefits.

Thanks for the explanation. I haven't worked with wasm before, so I'm not immediately seeing the benefit, especially as it relates to this project. My intention with this project is to provide out-of-the-box functionality for what almost all webapps will require. Since I don't think any will require this necessarily, I don't think it's something that I would opt to include, especially because it introduces complexity and the overall learning curve of the project. Thank you for sharing this and suggesting it though.

agree - . web apps don't need this.


Introduce types.orderOf

Motivation for this change
This introduces a new type orderOf for representing partially ordered sets (or equivalently, directed acyclic graphs)

This is similar in functionality as the dag type in home-manager.
Ping @rycee @roberth
Things done

[x] Wrote tests
[x] Wrote docs

Shouldn't this be just a library function? It's a useful algorithm, but I doubt that it should be a type like this. It forces the attribute names like before and after to be generic and not very useful as shown by rycee's request to rename. However, renaming will make this type hard to reuse. Also the type description DAG of ${t} is not helpful at all. If you'd replace such a use case by an attrsOf (submodule  ...  ) and an assertion that calls the library function, it will enforce the same rules and we'll have a much better user experience.

for representing directed acyclic graphs

I don't know why, but every time I hear about acrylic graphs I think of likek nail extensions :rofl:

@roberth I guess I can make this a library function in addition as well, though the algorithm is really just a simple wrapper around lists.toposort.
I think it makes sense for it to be a type, because that's the most convenient way to use it. It takes care of a bunch of boilerplate:

The type returns an ordered list of the result already (in contrast with attrsOf), so the module author doesn't need to call the sorting function where it's used. This also saves the module author from having to throw an error for cycles.
The submodule type for the data, before and after options is very generic and makes sense in all DAG's. By having this predefined the module author doesn't need to create those options themselves.

@Infinisil Let's see if we can improve this then. My concern is that a small convenience for the module author comes at the cost of usability for, well, users.
Perhaps a usage by the module author could look like this:
type = types.dagOf { predecessors = v: v.after; successors = v: v.before; } (types.submodule { options.before = .....; ..... })

types.dag now uses DAG terminology, to avoid any confusion with the actual domain
data is gone :tada:
module author can now choose submoduleWith or reuse a submodule type
module author can write domain-specific descriptions for options like before (the current hardcoded ones are ambiguous or wrong, as can be expected to happen when you're juggling generic stuff)
the arguments passed here can probably be the defaults, let's see

Systemd works like this:

If unit foo.service contains the setting Before=bar.service and both units are being started, bar.service's start-up is delayed until foo.service has finished starting up.

This seems to be the inverse of what this PR is doing (unless I'm not mapping between the domains correctly??). To quote this PR's before doc:

The given entries should be ordered before this one.

Am I reading this right? All I know for sure is that the user should get to read docs like the first of the two.

@roberth Oops I think I wrote that doc description the wrong way around. I'll give your idea some thought though, I think I like it!

Changed this a bunch, now it's a lot simpler, and only requires giving a before relationship. See the tests for how such a before looks for after and before-style options.

I’m having doubt whether allowing arbitrary turing complete predicates (aka before) is the best way to model DAGs. There’s no way to have any static introspection in the ordering short of actually running all the before functions.

In particular, I don’t know if you can actually have any guarantees about the result being acyclic by modeling it this way?
Also properties I would expect from a DAG, like “if B is a subtree and A is before B, then every child of B is after A” are not a given.

I’m having doubt whether allowing arbitrary turing complete predicates (aka before) is the best way to model DAGs. There’s no way to have any static introspection in the ordering short of actually running all the before functions.

That said, an "adjacency list" representation, like systemd.*.*.before, may lend itself to a more efficient implementation. We don't seem to have needed a faster implementation of toposort, as far as I know.

In particular, I don’t know if you can actually have any guarantees about the result being acyclic by modeling it this way?

The type converts the definitions to a list that is sorted according to the before function. Such an outcome is not possible when the input is cyclic, so the non-exception result is guaranteed to be acyclic.

The type converts the definitions to a list that is sorted according to the before function. Such an outcome is not possible when the input is cyclic, so the non-exception result is guaranteed to be acyclic.

Yes, but it would mean an “infinite recursion” in practice, right? Which is not very user-friendly.
Plus, this is still an issue in my mind:

Also properties I would expect from a DAG, like “if B is a subtree and A is before B, then every child of B is after A” are not a given.

Yes, but it would mean an “infinite recursion” in practice, right? Which is not very user-friendly.

toposort produces a distinct attrset describing the cycle, which is turned into an exception by types.orderOf.
It would be nice to have a check function though.

Also properties I would expect from a DAG, like “if B is a subtree and A is before B, then every child of B is after A” are not a given.

That's what this type is all about, to ensure that either it will be the case or an error is raised. Perhaps you could formulate your concern differently or provide an example that is handled poorly by this type and tell us what you would expect it to do instead.

That's what this type is all about, to ensure that either it will be the case or an error is raised.

Which is what I’m not sure about. I looked at the implementation of toposort, but I don’t know what happens if arbitrary predicates are passed to it. Maybe it’s fine.

Maybe more importantly: Do we have applications for this type?

Ignoring backwards compatibility, this could be used for:

The fileSystems option (see https://github.com/NixOS/nixpkgs/blob/master/nixos/modules/tasks/filesystems.nix#L13)
The activationScripts option (see https://github.com/NixOS/nixpkgs/blob/master/nixos/modules/system/activation/activation-script.nix#L85-L90), currently uses lib/strings-with-deps.nix, which only supports specifying predecessors, no successors. Could also be used for home-manager's activation scripts: https://github.com/nix-community/home-manager/blob/master/modules/home-environment.nix#L311-L320
Anywhere where you want to have an ordered list. This is a good replacement for types.listOf in such a case, because types.listOf doesn't let you override entries, while this type does. Example in home-manager: https://github.com/nix-community/home-manager/blob/master/modules/programs/ssh.nix#L414-L428. This type is the start of my efforts to deprecate listOf actually :)

After some discussion on IRC, here is my take on this.
I think we need an abstraction over this, because, as @Infinisil stated, it could be used in few places in nixpkgs, instead of having, shall I call them hacks?, stuff like lib/strings-with-deps.nix which makes it hard to determine a definitive place for where your entry will end up[1].
This abstraction can be, in my opinion, anything, as long as it is just generic enough for wide usage, but not too generic so modules don't have to re-implement too much (untested) logic in their definition.
Which brings me to my next point, testing. Having an abstraction also means that it can be thoroughly tested and vetted. If each module that needs this starts to re-implement its own logic for this, we will probably end up with some of them not getting it quite right and edge cases where the resulting configuration will not be the expected result.
Onto an example, I am using this for #105319. The relevant places to look are:

the declaration of the option using orderOf
how it is defined
how to override it from your configuration: security.pam.services.login.account.krb5.order = mkForce 1500; (forget about the mkForce, the orders might just be mkDefaulted in the end)

I wouldn't have wanted to re-implement the logic proposed here. As it turns out, it was available as a type, but it would have worked just as well with a function to call inside the apply argument of the option using it.

@rissson Did you plan to migrate the pam modules to a partial ordering? As things stand, you don't need partial ordering functionality and the much simpler and more efficient lib.sort can do the job for you.
Doesn't mean that orderOf doesn't work, but it may mean that we should rename this to partialOrderOf for clarity.

Did you plan to migrate the pam modules to a partial ordering?

No, indeed.

Doesn't mean that orderOf doesn't work, but it may mean that we should rename this to partialOrderOf for clarity.

Might be an idea.


refactor: remove simplifyPacketForPrint function

This PR removes the simplifyPacketForPrint function from the helpers file. I noticed that this function isn't actually being used and as it causes some trouble when introducing type checking I wanted to propose removing it. I think it was introduced by @Jamezo97 and @invaderb, would this be okay for you? :)

@Jamezo97 @invaderb I would merge this for now, let me know if there might still be a purpose for this function, then we could move it back in :)


drive-examples should handle new e2e test locations gracefully

We should be able to put plugin integration tests in a single consistent location (test/*_e2e.dart) and have CI run it. Right now our iOS CI is confused because it isn't expecting tests at that location.
https://github.com/FirebaseExtended/flutterfire/runs/310481522

Touching issue for triage purposes.

We've standardized on a location matching current integration_test docs, so closing at obsolete.


Add the time to live information for Azure Storage Queue message

Hi @FabienLavocat, I'm your friendly neighborhood Azure Pull Request Bot (You can call me AZPRBOT). Thanks for your contribution!

This seems like a small (but important) contribution, so no contribution license agreement is required at this point. Real humans will now evaluate your PR.

TTYL, AZPRBOT;

@tamram - Could you please review this update from @FabienLavocat  to a storage include and let me know if we can merge?

@FabienLavoca, thank you for the feedback. I will incorporate the change, but I want to put it in a slightly different place than where you have. I'll report back here once that change is in.
@tysonn, please go ahead and close this PR.

Let's go ahead and merge so Fabien is logged as a contributor, then you can move in a separate PR.

Okay, great, please do.

Thanks, @FabienLavocat , for the update

Thanks everyone for your help!


HUD! Centered, does not stretch properly

Both the game menu and the HUD during battles remain centered and do not adapt to my 32:9 screen. I have applied patch 0.8.4 and 0.7.9, both have the same effect. Is there a solution?

That's expected behaviour, if you want the HUD to be stretched then disable the "[Fix HUD]" feature in MetaphorFix.ini.

I was referring more to the combat one. “dark overlay”

Yeah HUD spanning is not going to be happen, at least not without many, many hours of work.


Volume is not set to exact given value

When assigning volume to say '0.14' if I read the value afterwards it's 0.11.
I've seen several weird behaviors in this sense.
Do you have an idea about the explanation or limitations of the API,
like e.g. what's the precision when assigning values?

Spotify stores volume as an int (1-100), while mpris2 uses a float (0.0-1.0). This can lead to a loss of accuracy, however it shouldn't for values with only 2 digits after the decimal point.
I just tested setting 0.14 and got 0.14 back when asking for the volume.
Could you give some more details on your setup?
Mainly: SpotPRIS2 version, spotify client (native, web, ...), mpris client.

I tried setting e.g. 0.17 and then get value is 0.16.
Then I set again to 0.17, and the get value became 0.17 this time.
It's a bit confusing.
Can you point how to get the relevant versioning and client info?
I'm using the native client for Spotify.


Cow: Watch misteruddin.com

Cow requests the watch of the watch_keyword misteruddin\.com. See the MS search here and the Stack Exchange search in text, in URLs, and in code.

Approved by Dragonrage in Charcoal HQ

misteruddin\.com has been seen in 1 true positive, 0 false positives, and 0 NAAs.


Add key usable check to cli tools

provide ability to check if a token is usable using the cli tools

There is an api method available already
 openxpkicli is_token_usable --arg alias=ca-one-signer-1

We might need to add some logic to better catch/control the output


Bloody Scorpion Theme

I added image.png file, you said you could add blur and compress it to .webp.

@JSanchoG You know you can change your old PR instead of opening a new one right?

@JSanchoG You know you can change your old PR instead of opening a new one right?

I ate 3 kids

@JSanchoG You know you can change your old PR instead of opening a new one right?

I ate 3 kids

You what!

There are some technical and some content problems with this PR
Technical problems
these problems are a technical error

background type linear-gradient doesn't work
I would highly recommend you clone your branch and test things before making PRs with Code changes
see CONTRIBUTING.md for how to get SkyCyrpt running locally for development

Content problems
these problems are not errors but they make the theme not fit in well with the other skycrypt themes

link is a different color than all the other colors
hover is darker than link

There are some technical and some content problems with this PR
Technical problems
these problems are a technical error

background type linear-gradient doesn't work
I would highly recommend you clone your branch and test things before making PRs with Code changes
see CONTRIBUTING.md for how to get SkyCyrpt running locally for development

Content problems
these problems are not errors but they make the theme not fit in well with the other skycrypt themes

link is a different color than all the other colors
hover is darker than link

colors fixed, but i don't know anything about TypeScript.

i don't know anything about TypeScript
It's basically just JavaScript

92d7535 should be reverted because it makes things worse

I removed the linear-gradient, because I cannot connect to MongoDB.
I think that's it now.

@nstringham i also did this, but idk how to implement it (lvl 100 pets background blur box-shadow)

Lvl 100

Lvl 100

Lvl 100

Lvl 100

Lvl 100

Lvl 100

Lvl 1

Lvl 1

Lvl 1

Lvl 1

Lvl 1

Lvl 1

@nstringham i also did this, but idk how to implement it (lvl 100 pets background blur box-shadow)

That belongs in a completely separate PR my dude and if you don't know how to implement it It would probably be better suited as an issue

I cannot connect to MongoDB.

If you're having trouble connection to mongo I recommend using Atlas

the gradient is very subtle it might be better to just use a solid gold color

done. tested

fuck the gradient, all my homies hate gradient
gradient was pain

@nstringham im done with it, this is the final version.
and also with the second one https://github.com/SkyCryptWebsite/SkyCrypt/pull/596

just wondering how long it would take to accept it

This PR looks good from a technical perspective.
I don't understand why it's called blood Scorpion.
I don't personally like the way it looks
No maintainers have expressed interest in merging this theme
This Theme has zero thumbs up on Discord
This PR has not been approved for CI workflow checks

Personally I like the idea of a red theme but I really don't like the background.... some time ago you posted a background with an enchantment table, I liked that one a lot more, do you still have it (to test)?
Also if you could upstream this PR to allow us to test it in localhost it would be great 👍
(if you don't know how, just go to your fork/branch and above to code click "Fetch upstream" -> "Fetch and merge")

Personally I like the idea of a red theme but I really don't like the background.... some time ago you posted a background with an enchantment table, I liked that one a lot more, do you still have it (to test)?
Also if you could upstream this PR to allow us to test it in localhost it would be great 👍
(if you don't know how, just go to your fork/branch and above to code click "Fetch upstream" -> "Fetch and merge")

done the fetch upstream thing,
old background with ench table: https://i.imgur.com/qI4oS4P.png

I don't understand why it's called blood Scorpion.

its not "blood scorpion" or like "scorpion of blood", its "bloody scorpion",
it symbolize the fall of the guild  i founded and grew myself called "ScorpionSquad" that quickly died after my false ban on hypixel (like the color of my mc skin and the right arm tattoo thing), it was just a big thing for me.
original name idea was created thanks to the hypixel skyblock update that implemented Scorpion Bow in it, i liked the way it sounds connected with "Squad" (bloody scorpion is the term that indicates guild's current state - its not dead, its also not in a good shape, its slowly dying but with the right attitude you can slowly work to revive it).

I don't understand why it's called blood Scorpion.

its not "blood scorpion" or like "scorpion of blood", its "bloody scorpion",
it symbolize the fall of the guild i founded and grew myself called "ScorpionSquad" that quickly died after my false ban on hypixel (like the color of my mc skin and the right arm tattoo thing), it was just a big thing for me.
original name idea was created thanks to the hypixel skyblock update that implemented Scorpion Bow in it, i liked the way it sounds connected with "Squad" (bloody scorpion is the term that indicates guild's current state - its not dead, its also not in a good shape, its slowly dying by bleeding (valuable players leaving) but with the right attitude and people you can slowly work to revive it).

I appreciate the simbolism but it seems like that will really only resonate with people who understand the refrance.

I don't understand why it's called blood Scorpion.

its not "blood scorpion" or like "scorpion of blood", its "bloody scorpion",
it symbolize the fall of the guild i founded and grew myself called "ScorpionSquad" that quickly died after my false ban on hypixel (like the color of my mc skin and the right arm tattoo thing), it was just a big thing for me.
original name idea was created thanks to the hypixel skyblock update that implemented Scorpion Bow in it, i liked the way it sounds connected with "Squad" (bloody scorpion is the term that indicates guild's current state - its not dead, its also not in a good shape, its slowly dying by bleeding (valuable players leaving) but with the right attitude and people you can slowly work to revive it).

I appreciate the simbolism but it seems like that will really only resonate with people who understand the refrance.

Bruh nobody cares why skycrypt is called skycrypt, hypixel is called hypixel, etc. people doesnt need to know origin of the name it just has to sound cool, do u think minecraft would be called minecraft if it didnt sound cool?

What should i call it then? "Red theme"? Like why tf is candy cane theme called like that, nobody gives a shit im not gonna hate the theme for its name, but for authors creativity and original color combinations, which you limit so much, people simply are not able to express anything thru their theme

I don't understand why it's called blood Scorpion.

its not "blood scorpion" or like "scorpion of blood", its "bloody scorpion",
it symbolize the fall of the guild i founded and grew myself called "ScorpionSquad" that quickly died after my false ban on hypixel (like the color of my mc skin and the right arm tattoo thing), it was just a big thing for me.
original name idea was created thanks to the hypixel skyblock update that implemented Scorpion Bow in it, i liked the way it sounds connected with "Squad" (bloody scorpion is the term that indicates guild's current state - its not dead, its also not in a good shape, its slowly dying by bleeding (valuable players leaving) but with the right attitude and people you can slowly work to revive it).

I appreciate the simbolism but it seems like that will really only resonate with people who understand the refrance.

No flame Nate but I think you're being a little bit critical. It doesn't matter where the name comes from but rather what it stands for.  So what if it's an inside joke, I think it's perfectly fine. It's a pretty cool name :D

I don't understand why it's called blood Scorpion.

its not "blood scorpion" or like "scorpion of blood", its "bloody scorpion",
it symbolize the fall of the guild i founded and grew myself called "ScorpionSquad" that quickly died after my false ban on hypixel (like the color of my mc skin and the right arm tattoo thing), it was just a big thing for me.
original name idea was created thanks to the hypixel skyblock update that implemented Scorpion Bow in it, i liked the way it sounds connected with "Squad" (bloody scorpion is the term that indicates guild's current state - its not dead, its also not in a good shape, its slowly dying by bleeding (valuable players leaving) but with the right attitude and people you can slowly work to revive it).

I appreciate the simbolism but it seems like that will really only resonate with people who understand the refrance.

No flame Nate but I think you're being a little bit critical. It doesn't matter where the name comes from but rather what it stands for.  So what if it's an inside joke, I think it's perfectly fine. It's a pretty cool name :D

yeah I get that It's just most of the themes have a name indicative of the theme itself

Closing this PR because SkyCrypt doesn't really need more themes and the group of people interested in this Theme seems to be quite small. Additionally, this theme really looked better when it was using the enchantment table background which, unfortunately, doesn't fit in with other SkyCrypt themes.
In the long term future, I plan to add a system for third-party themes. see #597
In the short term future, Desktop Chrome users that want to use the Bloody Scorpion Theme should Download the SkyCrypt Themer Chrome Extention and import Bloody_Scorpion_Theme.json (MediaFire Download) or copy the JSON below into a JSON file
{"name":"Bloody Scorpion Theme","author":"Gozuk12","community":true,"images":{"bg":"https://i.imgur.com/qI4oS4P.png"},"backgrounds":{"skillbar":{"type":"color","color":"#ef325c"},"maxedbar":{"type":"color","color":"#f1a230"}},"colors":{"logo":"#ed1444","icon":"#ed1444","link":"#ef325c","hover":"#f15275","gold":"#f8b500"}}


no internet connection

the driver doesn't load, and I have no internet, even if I am connected. I am not behind proxies or firewalls!

I have the same issue

Nevermind I get the same issue!

I'm running the bot and receiving this instantly.
[~] Loading driver, please wait...
[!] No internet connection
I have the chromedriver in the same folder, but it doesn't start up from my experience.
I've launched manually, but it doesn't recognize it.
I have no other error code.

you don't have to manually put the chromedriver. do you have chrome installed? did you install all the dependency list?

vpn is turned off, no proxies, internet is working?

must be the uc wasn't installed correctly. glad that it works

The problem was that undetected_chromedriver was not working with the latest chrome version. Issue is now fixed, please run pip install -r requirements.txt again and the bot will work.


Date/time required in Marketplace columns / enhancement

Marketplace/(selling, sold, my purchases, search, buy) should all have dates with times in the first column.
Accept ID and Blockheight are not necessary to be shown (it will just confuse people and you can still check this info by doing right-click/details). These fields should be replaced by date and time.
Closing 77 from syscoin 1 and putting here.

This issue is still present in latest 3/7/2016 build @sidhujag

issue #13 still present, @sidhujag it's pretty important to have the dates in here.

issue #13 still present in 6/18 build, @sidhujag it's pretty important to have the dates in here.

@sidhujag issue still present in 9/9 build, as indicated it's very important to have dates in there, only block heights are indicated and transactions don't indicate blockheight (and even if transactions included blockheight, it would be extremely tedious for a merchant to find the time the transaction occurred.) This issue is very important for merchant records.

Closing this issue since marketplace UI has been moved to Blockmarket


chore: Release for Dart Frog CLI and Package

Description
Need to make releases for Dart Frog CLI and Package given the latest changes.
Requirements

[ ] No functional changes to the code
[ ] Dart Frog CLI v1.2.2 is released
[ ] Dart Frog v1.1.0 is released

Closing, since Dart Frog 1.1.0 and Dart Frog CLI 1.1.2 have been released.


How to run the cli

Is there a binary download option for the CLI, or a docker image?

https://github.com/laszlocph/woodpecker/releases/tag/v0.13.0-rc.1
Let me know how you are getting on!

thank you for the quick response!
we're currently running drone 0.8 and considering switching over to woodpecker (~200 users / ~300 private github repos). so far we couldn't find any blocker for the upgrade, is there anything we should keep in mind?

I have news from a comparable sized deployment: 30 users / 200 repos and 500-1000 builds a week. It should be a drop in replacement.
The risk I'm seeing with Woodpecker today is keeping the dependencies up to date and testing all features that Drone 0.8 has. Especially on the fringes of non Github usage (Gitea, etc which I don't use).
So it should work, but best to test it yourself. Which I sense you already did.
I really hope it will work out for you. Otherwise just open a ticket with any finding you have.


[TODO] Create Login Modal

Should be able to go to the (R) in the top navigation and click on it and go to the Login at the bottom of the drop down, click on it and get a Login modal or something.
This should also be in the initial steps of running the application, perhaps on a cover page of some sort.
There is currently only a Logout button on the (R) dropdown context menu.  I created a separate issue #57 to change that icon and label state.
Now that we have a backend and server.  I would expect that we might need to install a few packages:
express-session
axios
passport
mongodb (nodejs driver)
mongoose
cookie-parser
ejs
morgan
passport-local
jsonwebtoken
express-validator
multer
helmet
boom
joi
In the login I would have:

Username or Email: This field allows the user to enter their username or email address associated with their account.

Password: This field is used for entering the password associated with the username or email. Also use a eye icon from @mui/icons-material to toggle password visibility

Remember Me: This checkbox allows the user to choose whether they want the system to remember their login credentials for   future visits.

Forgot Password: This link provides a way for users to reset their password if they have forgotten it.  This should be a link to something the user can enter their email, etc.  to have it send them a email with their password/username.

Sign In/Log In Button: This button triggers the authentication process and logs the user into the system.

@LOGESH-B
I am thinking we do something like:
const express = require('express');
const passport = require('passport');
const LocalStrategy = require('passport-local').Strategy;
const bcrypt = require('bcryptjs');
const User = require('./models/user');

const app = express();

// Configure Passport.js
passport.use(
  new LocalStrategy(async (usernameOrEmail, password, done) => {
    try {
      const user = await User.findOne({
        $or: [{ username: usernameOrEmail }, { email: usernameOrEmail }],
      });
      if (!user) {
        return done(null, false, { message: 'Incorrect username or email.' });
      }
      const isMatch = await bcrypt.compare(password, user.password);
      if (!isMatch) {
        return done(null, false, { message: 'Incorrect password.' });
      }
      return done(null, user);
    } catch (error) {
      return done(error);
    }
  })
);

passport.serializeUser((user, done) => {
  done(null, user.id);
});

passport.deserializeUser(async (id, done) => {
  try {
    const user = await User.findById(id);
    done(null, user);
  } catch (error) {
    done(error);
  }
});

// Initialize Passport.js
app.use(passport.initialize());
app.use(passport.session());

// Define the login route
app.post('/api/login', passport.authenticate('local'), (req, res) => {
  res.sendStatus(200);
});

in the server.

@gbowne1
Yeah but I think of Bcrypt?

bcrypt is ok.  Passport is much easier.  Using LocalStrategy already takes care of the validation, which is on top of the bcrypt.compare (in the passport.use) which gets awaited if its not correct.


Shiny Proxy application healthcheck from Kubernetes.

Hello Team,
I would successfully deploy Shiny Proxy on Kubernetes. Thanks for your great help and valuable advice to get me here.
I have 7 Shiny applications run under proxy and all works well, but i am experiencing an issue like, if i do not use this application in 1 or 2 days and later i tried to access,  the proxy page says:
Error
Status code: 500
Message: Failed to start the container
Hence i thought we can set up a health check on the Kubernetes side. i need your help to understand how Proxy calls applications, so that i can write a script to call the application every hour and check the application is live or not.
For example, my endpoint in Browser would be http://aplambosd001:30085/app/Shiny_TMA
in the application.yaml file i specified session like this:
proxy:
title: Open Analytics Shiny Proxy
logo-url: https://www.openanalytics.eu/shinyproxy/logo.png
port: 8080
specs:

id: Shiny_TMA
description: Shiny Alarms Application
display-name: Shiny - TMA
container-cmd: ["R", "-e", "shiny::runApp('/srv/shiny-server/TMA', host = '<IP_ADDRESS>', port = 3838)"]
container-image: shiny-apps

i have gone through Doc - https://shinyproxy.io/documentation/deployment/#readiness-and-liveness-probes
but i am not sure how they call HTTP endpoint from Proxy  - path: /actuator/health/liveness
Could you provide me some light to make this implement.
Thank you.

Hi
ShinyProxy does not keep applications indefinitely running, so it's not really possible to use healthcheck on them. If the application is not used (e.g. because the user logged out or closed the tab), ShinyProxy removes the app and thus also the underlying pod.
Can you provide the full stack trace of the error message you get? Usually there is some more information in there on what is causing the error. I guess it's better to solve that issue then trying to apply health checks.


Coworking edits

@Quiet27 I've added the case study links and made some edits to the case study. Let me know what you think

Your changes look great, @boyd-nguyen


algos AttributeError

Hello:
I got an error when runing your code.Here:
"Graphormer/OGB-LSC/graphormer/src/ogb_wrapper.py", line 34, in preprocess_item
    all_rel_pos_3d_with_noise = torch.from_numpy(algos.bin_rel_pos_3d_1(item.all_rel_pos_3d, noise=noise)).long()
AttributeError: module 'algos' has no attribute 'bin_rel_pos_3d_1'

The function bin_rel_pos_3d_1 is here.

Thanks

Close this issue due to inactive. Feel free to raise a new one or reopen this one for any further question.


ipset: 7.10 -> 7.11

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/ipset/versions.
meta.description for ipset is: "Administration tool for IP sets"
meta.homepage for ipset is: "http://ipset.netfilter.org/"
meta.changelog for ipset is: ""
Updates performed

Version update

To inspect upstream changes
Impact

Checks done (click to expand)

built on NixOS

The tests defined in passthru.tests, if any, passed

0 of 0 passed binary check by having a zero exit code.

0 of 0 passed binary check by having the new version present in output.

found 7.11 with grep in /nix/store/kpp8gpwlbzh04r1mwayblzc7f6jac11g-ipset-7.11

directory tree listing: https://gist.github.com/7e7617ce2dce5a6c771a5a03293812ef

du listing: https://gist.github.com/c633a6fb318ce8360caa96d0a5007814

Rebuild report (if merged into master) (click to expand)

78 total rebuild path(s)

22 package rebuild(s)

22 x86_64-linux rebuild(s)
21 i686-linux rebuild(s)
14 x86_64-darwin rebuild(s)
21 aarch64-linux rebuild(s)

First fifty rebuilds by attrpath
beluga
claws-mail
claws-mail-gtk3
dune-release
ferm
firehol
flow
fstar
haskellPackages.nix-output-monitor
ipset
jwt-cli
k3s
libbap
liquidsoap
nix-output-monitor
nushell
python37Packages.bap
python38Packages.bap
python39Packages.bap
satysfi
shorewall
stog

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/kpp8gpwlbzh04r1mwayblzc7f6jac11g-ipset-7.11 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A ipset https://github.com/r-ryantm/nixpkgs/archive/3669ac9a89a2784d5b7646fac25db09ecea2080d.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/kpp8gpwlbzh04r1mwayblzc7f6jac11g-ipset-7.11
ls -la /nix/store/kpp8gpwlbzh04r1mwayblzc7f6jac11g-ipset-7.11/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

5 packages built:

ferm
firehol
ipset
k3s
shorewall

Maintainer pings

Result of nixpkgs-review pr 113941 at 3669ac9a run on aarch64-linux 1

5 packages built:

ferm
firehol
ipset
k3s
shorewall

2 suggestions:

warning: maintainers-missing
Package does not have a maintainer. Consider adding yourself?
Near pkgs/os-specific/linux/ipset/default.nix:17:3:
   |
17 |   meta = with lib; {
   |   ^

warning: unclear-gpl
gpl2 is a deprecated license, check if project uses gpl2Plus or gpl2Only and change meta.license accordingly.
Near pkgs/os-specific/linux/ipset/default.nix:20:5:
   |
20 |     license = licenses.gpl2;
   |     ^

Result of nixpkgs-review pr 113941 1

5 packages built:

ferm
firehol
ipset
k3s
shorewall


Adding gitignore for Meson Build system

Reasons for making this change:
Meson is an extremely fast build system used for building projects written in C++; it also uses Ninja backend. While building my projects in C++, I had to get rid of the files created by Meson and since there is no gitignore for it, I'm proposing one.
Links to documentation supporting these rule changes:
While there is no concrete documentation regarding the files creating during the build, the following link gives an idea.
https://mesonbuild.com/Running-Meson.html
If this is a new template:

Link to application or project’s homepage: https://mesonbuild.com/
GitHub: https://github.com/mesonbuild/meson/

@shiftkey It would be nice if we get some reviewers for this template.

Yeah.. it would.

You know, I can tell you guys already have too much on your plate so I'll just make this easy for you.


Visualize Nault Component/app structure

Angular can produce source maps, which then can be viewed with
Prerequisites:
Edit in angular.json
"sourceMap": true, "namedChunks": true,
and
npm install source-map-explorer
npm

@Nault/nano
Will we have separate angular.json files ?

No, as Nault stays one project with just seperate flavours.

Maybe we could use something like https://compodoc.app/ ?

Maybe we could use something like https://compodoc.app/ ?
I was just looking for something to get into the current code more quickly.
Ssource-map-explorer was kind of cool and uses sourcemaps generated during build.

CompoDoc looks awesome and has more information.
Let´s use it.


Unable to import 'pandas_profiling.utils.cache' when executing the examples/census/census.py file

Unable to import 'pandas_profiling.utils.cache' in the examples/census/census.py

To Reproduce

After installation, try to execute the examples/census/census.py in the python client, it will get the error message:
Traceback (most recent call last):
File "census.py", line 7, in
from pandas_profiling.utils.cache import cache_file
ModuleNotFoundError: No module named 'pandas_profiling.utils.cache'
Version information:

panda_profiling: 2.4.0
python: 3.7.4
Additional context

I guess I found the problem. I installed the version 2.4.0.
The "examples/census/census.py" I am using is in the master branch. After rebuilding and re-install the new version, it works.


NuGet package

This issue was imported from CodePlex
ytlee wrote 2013-07-19 at 00:33
The plugins (https://www.myget.org/gallery/dotspatial) for extensionManager, DockManager and menubar packages will cause version incompatible problem. please fix.

Not actual.


Create custom recurring order/invoice

Is there a way to create custom recurring invoices?
I just see the subscriptions but I think thats just for recurring payments with a payment gateway.
I really like the way it's possible to create custom invoices with custom items but I would like to add some recurring invoices and the only way to do this seems to be the creation of a a new product, login as a customer and order the product.
If it's not yet possible I would like to suggest this feature for the future.

pay by custom then send the amount and invoiceid to another gateway is it possible


Base class refactoring & 'base-x' dependency

Here's the PR, it can be merged for it passes the current tests smoothly but I'd like to point out a few things :

base-x library does not support padding. Haven't had the chance to check what's the multibase project policy on them, but if that's a problem we might need different implementations (hopefully for a few code bases only)

base-x project does not have the unary base support at the moment, it might be worth it to try to make a PR on their project regarding this. I'll try to get a deeper understanding of the actual encoding algorithm to see how complicated or not that would be.
PS: For now the unary base throws an exception at runtime stating it is not implemented yet

Last but not least, I haven't added new tests while I added support for many other bases, perhaps we should wait to improve the test base before merging this

Of course any other remark or fix needed regarding architecture/implementation is welcome

Coverage increased (+1.09%) to 95.89% when pulling 5f40aebf57e870a4061f785a8a66b806bbdc023c on theobat:master into 3cdc43b51bf6f0d106c3f506b64ea027b2242fcc on multiformats:master.

Coverage increased (+1.09%) to 95.89% when pulling 5f40aebf57e870a4061f785a8a66b806bbdc023c on theobat:master into 3cdc43b51bf6f0d106c3f506b64ea027b2242fcc on multiformats:master.

Thanks for the review @dignifiedquire I'll add new tests and remove the pointless dependencies. Regarding the padding thing, It seems the multibase code reference has changed to integerate this information. So the remaining tasks are  :

[ ] Correct the base codes
[ ] Refactor bs58 tests
[ ] Add all supported base test cases
[ ] Remove pointless dependencies

Why don't we just reed the multibase repo's csv by the way ? wouldn't that be better than this constant.js ? (although we'd have to add the alphabets there which might be a bit tedious for the original purpose of this file...)
The support for padding will be for another PR.

@dignifiedquire this is ready to be merged (including changes from your previsou remarks).

@theobat thank you! I am travelling today so it might take a day or two until I can properly review it

Thank you @theobat, this is looking good :) Submitted some CR comments for you.

@diasdavid thanks for the CR, here's what I changed following your advices:

removed getName, getCode and getAlphabet methods, replaced their usage by base.name and base.code
Added instructions to the Readme to add new bases or change existing implementations

Here's whate remains unclear to me (and hence what I did not change - yet) :

Some getBase change I do not understand  in multiformats.js:

getBase should be different from getCode as in getCode is the code used to identify the base and getBase qis the string that is the name of the base

decode function in multiformats.js :

 // receives a buffer or string encoded with multibase header
 // decodes it and returns an object with the decoded buffer
 // and the encoded type { base: <name>, data: <buffer> }
// from @theobat : This is not what the multibase.spec.js test is waiting for,
// hence the return decodeObject.data
 function decode (bufOrString) {

Depending on the expected output of this, either I do as you said (removing everything but the return new Buffer(base.decode(bufOrString.toString())) or I change the faulty test.

Can this be merged ? or can someone clarify the remaining changes ? (not urgent but I'd like to make the changes -if any- while I still have everything in mind)

@theobat just this last one and good to go :)
https://github.com/multiformats/js-multibase/pull/7#discussion_r86859392

🎉🎉🎉🎉🎉🎉🎉
Thank you @theobat :)