image-index: add the subject field

Fixes: #1002
This allows for an image-index / manifest-list (still the better name than "image-index" ...) to point to the blob of another manifest. This is a part of the referrer API in the distribution-spec.
Signed-off-by: Vincent Batts<EMAIL_ADDRESS>

Does this not lead to the same logical loop that @sudo-bmitch mentioned here: https://github.com/opencontainers/image-spec/issues/1012#issuecomment-1419665843

Yes, this makes it possible create an infinite loop in tools I'm working on. I'm recursively processing a tag, all child manifests, and all referrers to those manifests. If an index can have a child manifest and subject manifest, pointing to the same digest or any of its children, this would create a loop.

This is still just a guidance issue.
On February 12, 2023 1:33:38 PM EST, Brandon Mitchell @.***> wrote:

Yes, this makes it possible create an infinite loop in tools I'm working on. I'm recursively processing a tag, all child manifests, and all referrers to those manifests. If an index can have a child manifest and subject manifest, pointing to the same digest or any of its children, this would create a loop.
--
Reply to this email directly or view it on GitHub:
https://github.com/opencontainers/image-spec/pull/1020#issuecomment-1427101360
You are receiving this because you authored the thread.
 I am having a hard time seeing it.

this would create a loop

Can you describe what operation you are trying to perform that would actually encounter such a loop? I am having a hard time seeing it.

Showing the full tree of a manifest and all child objects of that manifest, recursively. So I can point to a multi platform image and see that it has an SBOM attached to specific platform images, and that SBOM has been signed with a tool like cosign.

 I am having a hard time seeing it.
--
Reply to this email directly or view it on GitHub:
https://github.com/opencontainers/image-spec/pull/1020#issuecomment-1427113742
You are receiving this because you authored the thread.
Message ID: @.***>

Yes, the most likely cause is a malicious user. The result is that various tooling processing that malicious content would experience a DOS, likely from a stack growing from too much recursion.
Before this PR, OCI has always been a DAG as long as no one could create a hash collision. After this PR, we no longer have a logical DAG (logical in that referrers are treated as child objects of the manifest they refer to). That's going to change design decisions of any tooling written to perform recursive operations.

OCI has always been a DAG

fair, but this subject workflow is a new thing to OCI. So it's up to us currently to iron topics like this out. The nature of being able to add a reference to something else introduces this possibility. It seems like something that needs guidance so that tools know what to expect.
Just to complicate this matter, despite the OPTIONAL recommendation an manifest and image-index to use mediaType field to self-identify, as Jon mentioned the norm is to duck type for the fields.
So, the following example is currently both a valid image-index and manifest:
{
  "schemaVersion": 2,
  "mediaType": "application/vnd.oci.image.index.v1+json",
  "manifests": [
    {
      "mediaType": "application/vnd.oci.image.manifest.v1+json",
      "size": 7143,
      "digest": "sha256:e692418e4cbaf90ca69d05a66403747baa33ee08806650b51fab815ad7fc331f"
    }
  ],
  "subject": {
    "mediaType": "application/vnd.oci.image.manifest.v1+json",
    "size": 7143,
    "digest": "sha256:e692418e4cbaf90ca69d05a66403747baa33ee08806650b51fab815ad7fc331f"
  },
  "config": {
    "mediaType": "application/vnd.oci.image.config.v1+json",
    "size": 1470,
    "digest": "sha256:c86f7763873b6c0aae22d963bab59b4f5debbed6685761b5951584f6efb0633b"
  },
  "layers": [
    {
      "mediaType": "application/vnd.oci.image.layer.v1.tar+gzip",
      "size": 675598,
      "digest": "sha256:9d3dd9504c685a304985025df4ed0283e47ac9ffa9bd0326fddf4d59513f0827"
    }
  ]
}

https://github.com/opencontainers/image-spec/compare/main...vbatts:oci-image-spec:test_manifest_index_subject_monster is a valid test

(logical in that referrers are treated as child objects of the manifest they refer to)

I think this is where we disagree. Why treat them as child objects?

(logical in that referrers are treated as child objects of the manifest they refer to)

I think this is where we disagree. Why treat them as child objects?

For me it's the logical order of walking the graph. I pull the tag, possibly multi-platform, I pull the image with layers, and I pull the SBOM and signature that refer to that those manifests. I don't deploy an SBOM to a Kubernetes cluster and then use that to find the image that needs to be run.
What other methods are there to treat this relationship that would be more appropriate and support user workflows?

I don't deploy an SBOM to a Kubernetes cluster and then use that to find the image that needs to be run.

This seems like a different operation than rendering a tree.

What other methods are there to treat this relationship that would be more appropriate and support user workflows?

I would treat it like the DAG that it is. It really depends on the exact workflow.
For example, rendering a tree isn't really possible because the data structure isn't a tree. You need to render two different trees if you're going to invert some of the edges, unless you're okay with handling "loops".
If you're deploying an image and want to copy everything you need for that image into a different registry, one algorithm would be:

Walk backwards up the graph recursively to enumerate all the referrers, which are your roots.
Walk forwards through all your roots, copying everything that is reachable.

You won't have any loops in step 1 because inverting all the edges of a DAG can't create any loops.

The reason you're getting "loops" is that you're treating the DAG and the inverted DAG like they're the same graph, but they're not.  You can't hop between them without causing issues in the same way that you can't hop the median of the highway without causing issues.

Walk backwards up the graph recursively to enumerate all the referrers, which are your roots.
Walk forwards through all your roots, copying everything that is reachable.

Recursively walking backwards in 1 has to be done for every node in 2. So the recursive part of 1 can add the same root to the list.
If it's only copying, eventually you'll see the destination already has a given root (though that gets harder if you are repairing a corrupt registry and process each node even when the root already exists). If it's displaying the details of an image and associated metadata, that's not guaranteed to be a tree anymore. If it's a GC algorithm, hopefully it stops marking nodes when it sees they are already marked.
I agree that none of this is impossible or even difficult to handle on the client side. But it is a change in the logic that's been included everywhere else and I'll understand if some don't rewrite their algorithms and just hope they never receive bad data.

Recursively walking backwards in 1 has to be done for every node in 2. So the recursive part of 1 can add the same root to the list.

I don't understand what operation would require doing this. It's possible, sure, but when would you need to do this?

@jonjohnsonjr would you be willing to write down the use case for this that you shared during the call today? :bow:
(I shared one too, but mine was super contrived and not useful, so I think yours is a lot more helpful as context here.)
@vbatts since you weren't on today's call, perhaps you could also share one or two use cases you see for this? :innocent:  (or further expand on the rationale for including it :pray:)

would you be willing to write down the use case for this that you shared during the call today?

Let's say we have an index where each child has an SBOM pointing to it:
graph TD;

lsbom[sbom]-.->linux;

index-->linux;
index-->windows;

wsbom[sbom]-.->windows;

It would be nice to be able to attach an SBOM to the index as well that is just an aggregation of all the child SBOMs, like this:
graph TD;

sbom-->lsbom;
sbom-.->index;
sbom-->wsbom;

lsbom[sbom]-.->linux;

index-->linux;
index-->windows;

wsbom[sbom]-.->windows;

So you can ask the registry for referrers of the index and get an artifact that represents all the sboms for that index.
This is a little nicer than having to walk down then up to collect all the SBOMs for a given tag.

It would be nice to be able to attach an SBOM to the index as well that is just an aggregation of all the child SBOMs...
So you can ask the registry for referrers of the index and get an artifact that represents all the sboms for that index.

I'm going to channel my inner @jonjohnsonjr and say I don't like this example. It works for the image producer, but maintainability and extensibility raise a lot of concerns. If I'm adding an updated SBOM to one of the child images, I don't necessarily know all the parent index manifests that reference that image, and can't go back and update their respective index of SBOMs.
I'd prefer for this scenario be solved with an option on the referrers API where registries could return recursive results (and clients would fall back to walking the child manifests if the server doesn't support the option). That allows the registry to ensure the response is always updated with any changes to referrers to child manifests.
What I'm hoping to see is something like a CNAB type of artifact, that is too complex to represent with a single image manifest, and which also has a need to refer to another manifest (rather than including it as one of it's own child manifests).

If I'm adding an updated SBOM to one of the child images, I don't necessarily know all the parent index manifests that reference that image, and can't go back and update their respective index of SBOMs.

Definitely! That's why I expressed that it was important for referrers to support any relationships between objects, not just the subject field.

I'd prefer for this scenario be solved with an option on the referrers API where registries could return recursive results

I don't love the sound of pushing recursive results onto the registry.

What I'm hoping to see is something like a CNAB type of artifact, that is too complex to represent with a single image manifest, and which also has a need to refer to another manifest (rather than including it as one of it's own child manifests).

cc @aw185176 this sounds a lot like you

cc @aw185176 this sounds a lot like you

Definitely. I think most/all package management use cases would fall into the
same bucket.
Internally at NCR we have built a K8s package management toolchain that stores packages as either images or indexes. Because this pre-dates the referrers API, we represent dependency relationships using indexes. Forgive the terrible legend:

Hexagons are index manifests
Rectangles are image manifests

flowchart TB

root{{guestbook:latest}}-->gb["guestbook@sha256:..."]

root-->redis["redis@sha256:..."]
root-->nginx["nginx@sha256:..."]

And just like any other packages, your deps brought deps:
flowchart TB

root{{guestbook:latest}}-->gb["guestbook@sha256:..."]

root-->redis["redis@sha256:..."]
root-->nginx{{"nginx@sha256:..."}}-->a["foo@sha256:..."] &<EMAIL_ADDRESS>
We also support packages providing variants for specific K8s distros, so the final graph for a package with dependencies and provider variants might look like:
flowchart TB

root{{guestbook:latest}}-->gb["guestbook:gke"] & gba["guestbook:eks"] & gbc["guestbook:bespoke"]

root-->redis["redis@sha256:..."]
root-->nginx{{"nginx@sha256:..."}}-->ng["nginx:gke"] & na["nginx:eks"]

Using subject to represent package dependencies would be our preference, but even if we unwound our dependencies to flatten our graph, a package with provider variants would still be an index. Like I said, I suspect this kind of dynamic would exist in any similar solution that has support for multi-platform artifacts. I don't think it would be hard to imagine a homebrew package with dependencies (assuming they wanted to define their dependency graph in the registry) being shaped similarly to what I've laid out and running into the same issues.

@aw185176

Using subject to represent package dependencies would be our preference

I'm not quite sure I see the use case. The subject/referrers allows you to push a manifest that extends another after the fact. So you would be able to push the guestbook image, and later push a multiplatform nginx image that indicates it extends the guestbook image. If you wanted to use that nginx image for another app, you would need to push a separate nginx manifest with a different subject. Clients copying the guestbook could decide not to include nginx, and inject their own database, or maybe multiple database images, that all extend the guestbook app. If they wanted to use the same postgres image for their to-do app, they would again need to push a different manifest to include the new subject.
Is that what you have in mind? As an end user, that feels very confusing and unpredictable, where an index without the subject feels much more predictable.

+1 on getting artifactType into Index. I remember the conversations where CNAB wanted to use index but had to resort to the first image or annotations due to missing config blob, and the only reason for wanting the config blob was because of config.mediaType which was equivalent to artifactType.

The discussion from 2023-04-13 has now been uploaded, it's at this time index: https://www.youtube.com/watch?v=Bx-urZXikMk&t=2898s
To me, @tianon's example where you have an SBOM and provenance artifact and an index of both of those returned by the referrers API is weird, because the return type of the referrers API already is that OCI Index.
@jonjohnsonjr's example makes sense to me.

It would be nice to be able to attach an SBOM to the index as well that is just an aggregation of all the child SBOMs, like this:
graph TD;

sboms-->lsbom;
sboms-.->index;
sboms-->wsbom;

lsbom[sbom]-.->linux;

index-->linux;
index-->windows;

wsbom[sbom]-.->windows;

So you can ask the registry for referrers of the index and get an artifact that represents all the sboms for that index.
This is a little nicer than having to walk down then up to collect all the SBOMs for a given tag.

But this is over-constrained and unchecked, what I put my naughty hat on and do this:
graph TD;

sboms-->lsbom;
sboms-.->index;
sboms-->wsbom;

lsbom[sbom];
xsbom[sbom]-.->linux;

index-->linux;
index-->windows;

wsbom[sbom]-.->windows;

Do I now have a security vulnerability because different client implementations will see different SBOMs for the same image?


Add one more sasl dependency for centos

You could not do a 'make apps' with this package? On which exact OS version?
(curious as we did not have to specify it for years)

Thank you for the reply.
We downloaded the tar (hue-3.9.0.tgz) and did PREFIX=/opt make install inside a container. Then deployed the /opt/hue files to the production box, running CentOS release 6.6 (Final).
Having hive.server2.authentication=NONE in hive-site.xml and starting hue gives an error "thrift.transport.TTransport.TTransportException: Could not start SASL: Error in sasl_client_start (-4) SASL(-4): no mechanism available: No worthy mechs found"
From https://github.com/radRuderman/pyhs2/issues/19#issuecomment-103749080, we found 'cyrus-sasl-plain' package missing. Installing that makes hue able to contact hive server properly.

Thanks!
It is merged! And would you mind putting your name to the legal contributor list?
https://github.com/cloudera/hue/wiki/Ccla#online-form

Done. Thanks for accepting \m/


Ability to start multiple game clients when we press "run" (F5)

I'm developing a multiplayer game, each time I write new code and want to test it for both players (clients), I have to export the project, and the editor built-in player would be the second player. I do that so many times per day.
If when we press we have an option to create multiple clients at once, that be awesome for developing and debugging multiplayer games fast

Duplicate of #7008 (and to some extent #20020).


Add CI/CD workflow for issue #95

This pull request adds a CI/CD workflow for the READMEasy project. The workflow includes steps for building, testing, and deploying the code on pushes to the main branch and for pull requests.

Hi! It seems that Vercel authorization is required to proceed with the deployment for this pull request. Could someone with the appropriate access please authorize it? Thank you!

I have not assigned you, why are you raising a pull request?


how to drawstring or drawimg on the vlc

Currently, there's the airspace issue (see #296) that prevents writing something from wpf over a video. However, you could try using vlc plugins (marq for example) through options.


feat(backend): Make minimum nodes for t-shirts '3'

Increase the deployment size for small, medium, and large to 3 nodes to account for kafka requirements

This PR is included in version 4.5.0 :tada:


How do we identify the number of cores on each of the VMs in the DatasetV2?

We're currently using the v1 dataset as part of our research, and we would like to use the v2 as well since it has more - and up to date - data. However, I'm not sure if we're misunderstanding the dataset, but we cannot find a way to identify the core count of the VMs, we only see the bucket they belong to.
We need this information to do our research, so could you help me in figuring out how to get this information from the dataset? Or is it the case that it isn't meant to be available? If so, do you plan on releasing this information on a later date?

HI,
For the DatasetV2 we do not plan to share the exact number of cores and amount of memory per VM.


Configure linter to check that all datetime objects are timezone aware

What's needed?
The different components in the SDK are handling inconsistently aware and naive datetime/time objects (“aware” or “naive” depending on whether or not they include timezone information).
An aware object can locate itself relative to other aware objects. An aware object represents a specific moment in time that is not open to interpretation.  While a naive object does not contain enough information to unambiguously locate itself relative to other date/time objects.
The SDK  components requires aware objects  where the time zone information attribute tzinfo is set to UTC, so that they could capture information about any offset from UTC time and whether daylight saving time is in effect.
Proposed solution
Implement a pylint plugin that checks that all datetime (and time) objects are timezone aware to avoid having inconsistencies in the SDK components between aware and naive objects.
Use cases

Make SDK components compatible as it isn't possible to perform operations between different datetime/time objects (aware and naive).
Prevent the user/programmer to define datetime/time object without setting tzinfo

Alternatives and workarounds
Define a wrapper around datetime where tzinfo is set by default to UTC. Though this is not a valid long-term solution as the user would be also able to define its own datetime wrapper and inject it into the SDK causing incompatibilities or inconsistencies.
Additional context

Pylint eventually should also alerts about functions that returns naive objects, see https://github.com/pylint-dev/pylint/issues/6234

The following link can be helpful as a guideline:

https://www.perplexity.ai/search/b4a5cefe-b409-4eb4-8de1-f44ab63cc4ba

Detailed specification of the needed checks
Ensuring no naive object is ever created is almost impossible (for example function parsing strings can't be checked, as it depends on the parsed string if the resulting datetime will be aware or naive). Here is a list of checks we should have in the checker:

Make sure the function is not called without passing a timezone, make the timezone argument is checked against both positional and keyword arguments:

datetime()
datetime.now()
datetime.fromtimestamp()
datetime.astimezone() (instance method)
time()

Make sure these methods that can only produce naive objects are not called at all, and instead alternative methods providing a timezone are used:

datetime.today(), use datetime.now() instead
datetime.utcnow(), use datetime.now() instead
datetime.utcfromtimestamp, use datetime.fromtimestamp() instead
datetime.utctimetuple(), use datetime.timetuple() instead
datetime.time(), use datetime.timetz() instead (instance method)

Make sure these properties/methods returning a naive object are not used without a following call to replace() passing a timezone, as there is no alternative to do the same with timezone information:

datetime.min
datetime.max
datetime.fromordinal()
datetime.fromisocalendar()
time.min
time.max

Functions parsing strings that can't be checked:

datetime.fromisoformat()
datetime.strptime()
time.fromisoformat()

Escape mechanism. We need this to be able to interact with other libraries that might need a naive datetime object. These calls should be allowed even if they produce naive objects:

datetime.replace(tz=None)
time.replace(tz=None)

I just went through the whole datetime module and added a more detailed specification of which checks we need.


A memory leak occurred while using the Jit model

🐛 Bug

To Reproduce
Steps to reproduce the behavior:

Loading Jit model
Inference Model
Memory leak

self.model = init_jit_model('./asr/silero_vad.jit')
self.model(torch.from_numpy(data), 16000).item()

But When I switched to the ONNX model, the problem did not appear again
Expected behavior

Environment
Please copy and paste the output from this
environment collection script
(or fill out the checklist below manually).

PyTorch Version (e.g., 1.0):1.9.0
OS (e.g., Linux):MacOS 12.5.1
How you installed PyTorch (conda, pip, source):conda
Build command you used (if compiling from source):
Python version: 3.8
CUDA/cuDNN version:no
GPU models and configuration:no
Any other relevant information:

Additional context

Hi,
https://github.com/snakers4/silero-vad/discussions/232


rename circle-help and badge-help to circle-question and badge-question

I propose to rename circle-help and badge-help to circle-question and badge-question to match other icons with question mark. This would, in my opinion, also better match the naming convention since the name of the depicted symbol is "qeustion mark", not "help".

Perhaps this solution will help you figure out the problem click


Probability to using Pix2Seq for Page Stream Segmentation

Hi,
i begin my research on Page Stream Segmentation for a short time. PSS is a method to split the scanned documents automatically. Do you think it is possible to use Pix2Seq for this problem? Because i have seen on the paper, it could be used to solve imagine caption.
best regards,
Chao

I am unfamiliar with PSS. If you can transform the annotation into a discrete token, Pix2seq could be a potential apparoch.


Agricraft Compatibility

Need to look into it a bit more (Both the API and actually how Agricraft works).
Agricraft API

I do plan to have this generate defaults if Agricraft is loaded. So I'll need some mutations for the default crops.

Check what the defaults are for the magical crops integration, those defaults were set by the agricraft creator so I see no reason to go against them too much.
In my pack I added some custom crops of my own, if you want to look at them for inspiration at all:
https://github.com/BBoldt/Unabridged/blob/master/scripts/Agricraft.zs
Not that many there though.

Didn't realize MCrops had Agricraft compat. Will look through there, then.

Hello I'm the creator of agricraft, I have added Magical Crops compat from my side, I've also looked to add compatibility for your mod from my side, but it appears you're using TileEntities for your crops so I think it'd be better to do it from your side.
You would have to register an ICropPlant (https://github.com/InfinityRaider/AgriCraft/blob/master/src/main/java/com/InfinityRaider/AgriCraft/api/v1/ICropPlant.java)for every seed via the API: https://github.com/InfinityRaider/AgriCraft/blob/master/src/main/java/com/InfinityRaider/AgriCraft/api/v1/APIv1.java#L95

Wonderful! Will look into that when I get a chance.

Implemented from my side:
https://github.com/InfinityRaider/AgriCraft/blob/master/src/main/java/com/InfinityRaider/AgriCraft/compatibility/resourcefulcrops/ResourcefulCropsAPI.java
https://github.com/InfinityRaider/AgriCraft/blob/master/src/main/java/com/InfinityRaider/AgriCraft/compatibility/resourcefulcrops/CropPlantResourcefulCrops.java
Only have one little request, would it be possible to expose the Overlay IIcons to the API?

Agricraft's implementation was released, closing.


Feature/dotnet6

GitHub Issue: #

Proposed Changes

[ ] Bug fix
[x] Feature
[ ] Code style update (formatting)
[ ] Refactoring (no functional changes, no api changes)
[ ] Build or CI related changes
[ ] Documentation content changes
[ ] Other, please describe:

What is the current behavior?

What is the new behavior?

Add support for dotnet 6
Impact on version

[ ] Major (Public API was modified.)

Public constructs (class, struct, delegate, enum, etc.) were removed or renamed.
Public members were removed or renamed.
Public method signatures were changed or renamed.

[x] Minor (Public API was extended.)

Public constructs, members, or overloads were added.

[ ] Patch (Public API was unchanged.)

A bug in behavior was fixed.
Documentation was changed.

[ ] None (The library is unchanged.)

Only code under the build folder was changed.
Only code under the .github folder was changed.

Checklist
Please check that your PR fulfills the following requirements:

[ ] Documentation has been added/updated.
[ ] Automated Unit / Integration tests for the changes have been added/updated.
[ ] Updated BREAKING_CHANGES.md (if you introduced a breaking change).
[ ] You conventional commit are aligned with the Impact on version section.

Other information

Why was this merged @carlh98? This PR doesn't even pass all checks.

I did not look at the conventional commits, will make the change for the next PRs

@carlh98 Also the metadata seems wrong.


Add Opencensus Tracing

What is the context of this PR?
In order to better understand where most time is spent within runner add support for opencensus tracing to capture traces to stackdriver. This uses the opencensus flask middleware to initially setup a overall trace and provides a decorator capture_trace which can be added to methods of interest.
How to review
Manually create a stackdriver project, add the environment vars:
EQ_STACKDRIVER_PROJECT_ID=$YOUR_PROJECT_ID
Then step through a survey and look through the trace list captured to stackdriver.

This doesn't seem to work when deployed to GCP. The requests take ages and the logs show...

I am able to replicate the above issue using docker-compose and setting EQ_STACKDRIVER_PROJECT_ID

You need to add permission for the cluster to push traces.
add "https://www.googleapis.com/auth/trace.append", to the oauth_scopes in
https://github.com/ONSdigital/census-eq-terraform/blob/master/main.tf#L201

@iwootten These changes look good but the issue with not being able to run it in the container is a bit of a show stopper at the moment.

@jonnyshaw89 Has done a fair amount of performance investigation here and it looks like that currently runner can cope with around 475 requests/sec in our default terraform setup. This tracing branch takes that down to around 200 due to the use of a custom gevent worker which doesn't patch threading. Gevent replaces the behaviour of a lot of libraries to make use of libev (In particular threading which opencensus also uses).
Without tracing enabled, but still using the custom tracing worker class in this branch drops performance to 320 requests/sec.
As decided by the team in planning, this work therefore is going to be archived until such a point as we've investigated whether it is possible to improve the performance of runner by looking at making some of it run asynchronously.


FtCLI new param --port=/tmp/foo.txt

Let's make it possible to run FtCLI with this param:
--port=/tmp/foo.txt

If port is not a number, it has to be treated as file name. If this file is present, we read the port number from there. If it's not present, we allocate a new random port and save it into the file.
The main reason for this is to make FtCLI more thread/process safe.

@rultor release, tag is 0.22

@rultor release, tag is 0.22

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

@rultor release, tag is 0.22

@yegor256 Oops, I failed. You can see the full log here (spent 10min)
	at com.github.maven.plugins.site.SiteMojo.createBlob(SiteMojo.java:289)
	... 22 more
Caused by: com.google.gson.JsonSyntaxException: java.io.IOException: Premature EOF
	at com.google.gson.Gson.fromJson(Gson.java:809)
	at com.google.gson.Gson.fromJson(Gson.java:761)
	at org.eclipse.egit.github.core.client.GitHubClient.parseJson(GitHubClient.java:422)
	... 29 more
Caused by: java.io.IOException: Premature EOF
	at sun.net.www.http.ChunkedInputStream.readAheadBlocking(ChunkedInputStream.java:565)
	at sun.net.www.http.ChunkedInputStream.readAhead(ChunkedInputStream.java:609)
	at sun.net.www.http.ChunkedInputStream.read(ChunkedInputStream.java:696)
	at java.io.FilterInputStream.read(FilterInputStream.java:133)
	at sun.net.www.protocol.http.HttpURLConnection$HttpInputStream.read(HttpURLConnection.java:3066)
	at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:283)
	at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:325)
	at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:177)
	at java.io.InputStreamReader.read(InputStreamReader.java:184)
	at java.io.BufferedReader.fill(BufferedReader.java:154)
	at java.io.BufferedReader.read1(BufferedReader.java:205)
	at java.io.BufferedReader.read(BufferedReader.java:279)
	at com.google.gson.stream.JsonReader.fillBuffer(JsonReader.java:825)
	at com.google.gson.stream.JsonReader.nextNonWhitespace(JsonReader.java:884)
	at com.google.gson.stream.JsonReader.consumeNonExecutePrefix(JsonReader.java:405)
	at com.google.gson.stream.JsonReader.peek(JsonReader.java:364)
	at com.google.gson.Gson.fromJson(Gson.java:792)
	... 31 more
[ERROR]
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
+ echo 'site-deploy failed'
site-deploy failed
+ mv /home/r/repo .
++ whoami
+ chown -R root repo
+ '[' -n '' ']'
++ whoami
+ sudo chown -R rultor repo
+ cd repo
+ git checkout __rultor
Already on '__rultor'
+ git tag 0.22 -m '0.22: tagged by rultor.com'
+ git reset --hard
HEAD is now at 5ed4afa 0.22
+ git clean -fd
+ git checkout master
Switched to branch 'master'
+ git branch -D __rultor
Deleted branch __rultor (was 5ed4afa).
+ git push --all origin
To git@github.com:yegor256/takes.git
 ! [rejected]        master -> master (fetch first)
error: failed to push some refs to 'git@github.com:yegor256/takes.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first merge the remote changes (e.g.,
hint: 'git pull') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

@rultor release, tag is 0.22

@rultor release, tag is 0.22

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

@yegor256 milestone set to 1.0 (correct me if I am wrong)

@rultor release, tag is 0.22

@yegor256 Done! FYI, the full log is here (took me 10min)


Groups

Just sharing our email for everyone if they come across this...
Firstly, thanks for making a quick and handy websocket framework! I greatly appreciate the work you are contributing.
My question is having to do with groups in rooms, or multiple rooms. Can I explain my scenario and maybe you can tell me how to approach it?
In my game I would like to have multiple rooms available, max per room is 8 players. So how do I create rooms dynamically or find rooms that are available to join when a new player comes? Also, lets say after a match/game a player or two leaves the room (A), how can I put the remaining players in that room (A) into a new room (B) that is waiting? Does this make sense?
Are any of these tasks doable or what kind of approach do you suggest?
I would really appreciate your help and guidance on this (maybe a few snippets of code for example). I'm really new to web sockets, but have some experience with game dev. I just need some good examples for my situation to get going.
Thanks again!

The matchmaking will handle joining/creating rooms automatically. By setting the maxClients property to 8, whenever a new client tries to join that room, and all the available rooms are full, a new one will be created.

Unfortunately, currently, there's no way to redirect players from one room to another from the server.  You could achieve this by manually making the client connect to a new room/session, in case the number of players is low, for example.

Moreover, from the client-side, there's no built-in method to retrieve the number of rooms available and number of clients connected to them. If you really need this feature, though, it shouldn't be hard to make it yourself - by exposing this data in a HTTP request, for example. (Discussion on this at #10)[https://github.com/gamestdio/colyseus/issues/10]

Here's a an implementation to expose the rooms available in the server in a HTTP request, using the data already available in the server: (https://gist.github.com/endel/fcbee58cf35b081afb237b0b3e264e35)[https://gist.github.com/endel/fcbee58cf35b081afb237b0b3e264e35]

You can prioritize rooms with a higher number of players by returning a number (from 0 to 1) in the requestJoin method.

What do you mean "a new one will be created"? How is a new room created and does it give it a new name or something? I'm looking at the code in the examples and it just register's one room with the name of "chat". Do I need to make 20+ rooms initially?
On this tut page, (Room Handlers)[https://github.com/gamestdio/colyseus/wiki/Room-handlers], I implemented the requestJoin method, but it seems that there is no property of options and instead used:
requestJoin () {
  return this.clients.length < this.maxClients;
}

This would error though after I reached the maxClients limit, I'm assuming it was creating another room?
Sorry, I'm just trying to wrap my head around the flow of all of this.

Hey @gregmax17!

What do you mean "a new one will be created"? How is a new room created and does it give it a new name or something?

I meant a new room instance. You can have multiple instances of the "chat" room, even though you only registered it once. This is handled internally by the framework.

This would error though after I reached the maxClients limit, I'm assuming it was creating another room?

The maxClients property is handled automatically - if the limit wasn't reached yet, the requestJoin will be called - which you can use to handle custom parameters.
For example, you can have a single room handler, that handles multiple kinds of maps.
server-side
class MapHandler extends Room {
  onInit (options) {
      this.map = options.map;
  }

  requestJoin (options) {
    return options.map === this.map;
  }
}
// ...
gameServer.register("map", MapHandler);

client-side
var forest = client.join("map_handler", { map: "forest" })
var mountains = client.join("map_handler", { map: "mountains" })

Hope this helps!
Cheers!

@gregmax17 feel free to reopen this if you have any other question!


Time remaining as attribute for autoreset_control_seconds

It would be nice to visualize for the end-user the remaining time of autoreset_control_seconds.
By adding seconds remaining of "autoreset_control_seconds" as attribute on switch.adaptive_lighting_*
Does not need to update super frequently but should be updated instantly when set and when it has ended.
Thanks!

I've no idea why we didn't think to do this during development. Great suggestion!
It wouldn't be 100% accurate as attributes are only updated every 90 seconds or whatever your interval is

You could implement this yourself by listening for adaptive lighting's manual control events that are fired to home assistant event's bus and keeping track of the time yourself for now.

I have added this in 558 :)


Missing copy in config flow

In the config flow, the option for Citymail (presumably) is missing copy text.

Fixed in v1.0.2


Automate updating TCE Homebrew formula when TCE releases

Feature Request
Automate updating TCE Homebrew formula when TCE releases. We need to update the TCE version and the SHA sums for both Mac OS and Linux OS tar balls as part of the automation
https://github.com/vmware-tanzu/homebrew-tanzu/blob/452e0ad1f3ddebc25a4b545b5f0390339777aca6/tanzu-community-edition.rb#L7
https://github.com/vmware-tanzu/homebrew-tanzu/blob/452e0ad1f3ddebc25a4b545b5f0390339777aca6/tanzu-community-edition.rb#L12
https://github.com/vmware-tanzu/homebrew-tanzu/blob/452e0ad1f3ddebc25a4b545b5f0390339777aca6/tanzu-community-edition.rb#L15
Describe alternatives you've considered
None, except for the existing manual updation of Homebrew formula
Additional context
Some ideas around implementation -
We can put this automation in the TCE repo, where we can create a GitHub Action workflow that will be triggered when there's a stable release. GitHub Actions has support to trigger workflows during release events - https://docs.github.com/en/actions/learn-github-actions/events-that-trigger-workflows#release . We can trigger the workflow on released event for stable releases. We can also ensure that the git tag name does not have any rc or dev as an extra measure instead of just depending on GitHub pre-release vs release though we have that correctly configured too, for example - https://github.com/vmware-tanzu/community-edition/releases/tag/v0.9.0 (release) , https://github.com/vmware-tanzu/community-edition/releases/tag/v0.9.0-rc.1 (pre-release)
Once a stable release is created in the TCE repo, it means that we have tar balls with signed binaries which are ready to be consumed. The automation can confirm this too by ensuring that the tar ball name has no unsigned term in it. So, the automation can

Get hold of the TCE stable release version from the git tag on the release
Calculate the SHA sums for Mac OS and Linux OS tar balls or use the TCE release's tce-checksums.txt file
Pull the Homebrew tag repo
Make changes to the TCE Homebrew formula
Git commit
Git push to a fork of this Homebrew tap repo or directly to this Homebrew tap repo
Create a PR
Run automated tests as part of this PR to ensure that the Homebrew installation works (note about this below)
Merge the PR automatically once the tests pass

This is just one idea. We can also think about other ways. The above way seemed like a straight forward thing to me. I created the issue in this repo to just track this issue as the final Homebrew formula change and PR happens here. But yeah, automation script for the update would be put in the TCE repo, or we could put it here too, and use the script from this repo after we clone this repo. But the workflow config would be in TCE repo
About the automated tests to run as part of the PR to ensure the change is valid, we need to create an issue to talk about that separately. We would need to test it for both Mac OS and Linux OS. Also, we need to check if upgrade also works and not just installation. To check if upgrade works as part of the PR, we can install TCE from the main branch Homebrew tap and then upgrade using the Homebrew tap along with the PR changes containing TCE Homebrew formula updates. Again, that's just one idea

I'm working on this. I'll raise a PR next week Monday when I'm back to work from holidays


[FEATURE] Create a header with navigation

Description
This PR adds one new component for displaying header with navigation menu.
Thanks for assigning this issue to me as this was my first next.js project. I learnt how to add components and specifically css in next.js project.
Fixes Issue
Closes #1
Acceptance Criteria

[x]  Under the pages folder, create a folder called components
[x]  Create a file called Header.js
[x]  Create a header using full with of the device
[x]  The header has a height of 80px
[x]  Inside the header is a navigationbar created using semantic HTML
[x] Name the links Home and Courses
[x]  The links have a font size of 16px
[x]  use only as much as CSS needed so that the Links are next to each other and are not underlined. Spacing is not important.

Type of Changes
Make sure your code follows the code style of this project.
Make sure your code is up2date.
The title of the PR is the same as the title of the issue.

Type

:bug: Bug fix

✓
:sparkles: New feature

:hammer: Refactoring

:100: Add tests

:link: Update dependencies

:scroll: Docs

Updates
Before

After

Testing Steps / QA Criteria
It's a UI feature, open website and you can see the changes.

@YuriDevAT I've done the changes, please review and merge the PR.


getFieldGroupByName ignoring DB_TABLE_PREFIX

When importing fields within a group, the following query in this function fails: getFieldGroupByName.
This might be because the plugin ignores the DB_TABLE_PREFIX environment-setting?
The error:
{"error":"An error occurred while executing the \"craft\\contentmigrations\\m180502_135655_migration_XXX migration: SQLSTATE[42S02]: Base table or view not found: 1146 Table 'pj_XXX.fieldgroups' doesn't exist The SQL being executed was: SELECT `id`, `name` FROM `fieldgroups`WHERE `name`='Common' ORDER BY `name` DESC LIMIT 1"}

Please check this pull-request which seems to sort this issue for me.

@jerome2710 fixed, thanks for the PR, nice catch


Lazy load module libraries

As of https://github.com/GuusLieben/DarwinServer/commit/d5610197a2a048d4a8448c4c417039548ad16753 modules can indicate custom libraries. Make sure these libraries are loaded safely before activating the module. If a module uses the library in its main class and can therefore not be loaded, this falls without the scope of DarwinServer and is considered bad practice by the module designer.

Requires testing ASAP


[Bug] deleting a resource from a resource group does't update the pool consumption

Done and merged in dev


Nix build blocked by deadlocked python tests

Describe the bug
I used nixpkgs-review to build a PR that affect many packages (https://github.com/NixOS/nixpkgs/pull/216403).
After 15 hours, the CPU was still at 100% load, but the  temperature low, as if it is not doing anything.
[root@gaming:~]# top

top - 13:02:36 up 13 days, 20:17,  1 user,  load average: 32.16, 32.26, 32.18
Tasks: 354 total,   5 running, 349 sleeping,   0 stopped,   0 zombie
%Cpu(s): 95.2 us,  4.7 sy,  0.0 ni,  0.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem :  32027.9 total,  24085.9 free,   3354.6 used,   4587.4 buff/cache
MiB Swap:  32768.0 total,  26143.9 free,   6624.0 used.  28058.6 avail Mem

    PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
1501010 nixbld14  20   0 5432076  88508  17160 R 733.3   0.3   4247:32 python3.11
1533870 nixbld23  20   0 6134444  75340  15304 R 730.3   0.2   4236:56 python3.10
1622385 nixbld18  20   0 3866172 427812  33696 R  72.7   1.3 344:42.42 python3.11
1622408 nixbld20  20   0 3936212 707792  34208 R  48.7   2.2 339:52.25 python3.10

There are 4 python package builds that seem to be stuck.
They are  running pytest.
root        1272  0.0  0.0 445100   616 ?        Ssl  Feb01   0:00 nix-daemon --daemon
root     1362239  1.1  0.1 2331936 61520 ?       Ssl  01:25   7:38  \_ nix-daemon 1362236
nixbld14 1480363  0.0  0.0   7544  1320 ?        Ss   01:52   0:00      \_ bash -e /nix/store/6xg259477c90a229xwmb53pdfkn6ig3g-default-builder.sh
nixbld14 1501010  639  0.2 5432076 88508 ?       Rl   01:58 4203:02      |   \_ /nix/store/r85cm22i6058g4zj76w05rzvqwil6d2g-python3-3.11.1/bin/python3.11 -m pytest -k not test_tv_inpa
nixbld23 1505345  0.0  0.0   7536  1320 ?        Ss   01:59   0:00      \_ bash -e /nix/store/6xg259477c90a229xwmb53pdfkn6ig3g-default-builder.sh
nixbld23 1533870  642  0.2 6134444 75340 ?       Rl   02:04 4192:28      |   \_ /nix/store/0pyymzxf7n0fzpaqnvwv92ab72v3jq8d-python3-3.10.9/bin/python3.10 -m pytest -k not test_tv_inpa
nixbld20 1569160  0.0  0.0   7880  1328 ?        Ss   02:12   0:00      \_ bash -e /nix/store/6xg259477c90a229xwmb53pdfkn6ig3g-default-builder.sh
nixbld20 1622408 53.8  2.1 3936212 707792 ?      R    02:31 336:25      |   \_ /nix/store/0pyymzxf7n0fzpaqnvwv92ab72v3jq8d-python3-3.10.9/bin/python3.10 -m pytest
nixbld18 1571036  0.0  0.0   7880  1328 ?        Ss   02:14   0:00      \_ bash -e /nix/store/6xg259477c90a229xwmb53pdfkn6ig3g-default-builder.sh
nixbld18 1622385 54.6  1.3 3866172 427812 ?      R    02:31 341:11          \_ /nix/store/r85cm22i6058g4zj76w05rzvqwil6d2g-python3-3.11.1/bin/python3.11 -m pytest

but the build is stuck at the same test for hours...
[4/69/77 built (12 failed), 1989 copied (17709.2/17716.9 MiB), 4213.5 MiB DL] building python3.10-cvxpy-1.2.3 (pytestCheckPhase): .........

2 processes only do futex calls and the other 2 sched_yield
:: (nixbld13) → /tmp/nix-build-python3.10-OpenSfM-unstable-2022-03-10.drv-0
  UID     PID    PPID STIME     TIME COMMAND
30013 3067079 3055397 20:48 00:00:00 bash -e /nix/store/6xg259477c90a229xwmb53pdfkn6ig3g-default-builder.sh
30013 3101891 3067079 20:53 01:32:21 /nix/store/0pyymzxf7n0fzpaqnvwv92ab72v3jq8d-python3-3.10.9/bin/python3.10 -m pytest

strace -ff -p 3101891
...
[pid 3101891] sched_yield( <unfinished ...>
[pid 3102726] <... sched_yield resumed>) = 0
[pid 3102725] sched_yield( <unfinished ...>
[pid 3101891] <... sched_yield resumed>) = 0
^C

[root@gaming:~]# strace -f -c -p 3101891
strace: Process 3101891 attached with 3 threads
...
% time     seconds  usecs/call     calls    errors syscall
------ ----------- ----------- --------- --------- ----------------
100.00   20.935565           8   2546114           sched_yield
------ ----------- ----------- --------- --------- ----------------
100.00   20.935565           8   2546114           total

:: (nixbld14) → /tmp/nix-build-python3.10-qutip-4.7.1.drv-0
  UID     PID    PPID STIME     TIME COMMAND
30014 3067093 3055397 20:48 00:00:00 bash -e /nix/store/6xg259477c90a229xwmb53pdfkn6ig3g-default-builder.sh
30014 3139076 3067093 20:56 04:31:17 /nix/store/0pyymzxf7n0fzpaqnvwv92ab72v3jq8d-python3-3.10.9/bin/python3.10 -c import qutip.testing; qutip.testing.run()

strace -ff -p 3139076
...
[pid 3139643] futex(0x1c7fd44, FUTEX_WAIT_PRIVATE, 595632, NULL <unfinished ...>
[pid 3139645] futex(0x1c7fd44, FUTEX_WAIT_PRIVATE, 595632, NULL <unfinished ...>
[pid 3139642] futex(0x1c7fd44, FUTEX_WAIT_PRIVATE, 595632, NULL <unfinished ...>
[pid 3139646] futex(0x1c7fd44, FUTEX_WAIT_PRIVATE, 595632, NULL <unfinished ...>
[pid 3139647] futex(0x1c7fd44, FUTEX_WAKE_PRIVATE,<PHONE_NUMBER>) = 4
[pid 3139645] <... futex resumed>)      = 0
[pid 3139643] <... futex resumed>)      = 0
[pid 3139642] <... futex resumed>)      = 0
[pid 3139646] <... futex resumed>)      = 0
[pid 3139646] futex(0x121a2e4, FUTEX_WAIT_PRIVATE, 1955808, NULL <unfinished ...>
[pid 3139642] futex(0x121a2e4, FUTEX_WAIT_PRIVATE, 1955808, NULL <unfinished ...>
[pid 3139645] futex(0x121a2e4, FUTEX_WAIT_PRIVATE, 1955808, NULL <unfinished ...>
[pid 3139643] futex(0x121a2e4, FUTEX_WAIT_PRIVATE, 1955808, NULL <unfinished ...>
[pid 3139652] futex(0x121a2e4, FUTEX_WAKE_PRIVATE,<PHONE_NUMBER>) = 2
[pid 3139642] <... futex resumed>)      = 0
[pid 3139646] <... futex resumed>)      = 0
[pid 3139645] <... futex resumed>)      = -1 EAGAIN (Resource temporarily unavailable)
[pid 3139643] <... futex resumed>)      = -1 EAGAIN (Resource temporarily unavailable)
[pid 3139641] futex(0x1c7fd44, FUTEX_WAIT_PRIVATE, 595640, NULL^Cstrace: Process 3139076 detached

[root@gaming:~]# strace -f -c -p 3139076
strace: Process 3139076 attached with 16 threads
...
% time     seconds  usecs/call     calls    errors syscall
------ ----------- ----------- --------- --------- ----------------
100.00    0.286391          66      4322      1070 futex
------ ----------- ----------- --------- --------- ----------------
100.00    0.286391          66      4322      1070 total

:: (nixbld16) → /tmp/nix-build-python3.11-OpenSfM-unstable-2022-03-10.drv-0
  UID     PID    PPID STIME     TIME COMMAND
30016 3067100 3055397 20:48 00:00:00 bash -e /nix/store/6xg259477c90a229xwmb53pdfkn6ig3g-default-builder.sh
30016 3100028 3067100 20:53 01:34:09 /nix/store/r85cm22i6058g4zj76w05rzvqwil6d2g-python3-3.11.1/bin/python3.11 -m pytest

strace -ff -p 3100028
...
[pid 3100638] sched_yield( <unfinished ...>
[pid 3100637] <... sched_yield resumed>) = 0
[pid 3100638] <... sched_yield resumed>) = 0
[pid 3100028] sched_yield( <unfinished ...>
[pid 3100638] sched_yield( <unfinished ...>
[pid 3100637] sched_yield( <unfinished ...>
[pid 3100638] <... sched_yield resumed>) = 0
[pid 3100028] <... sched_y^C

[root@gaming:~]# strace -f -c -p 3100028
strace: Process 3100028 attached with 3 threads
...
% time     seconds  usecs/call     calls    errors syscall
------ ----------- ----------- --------- --------- ----------------
100.00   17.474801           8   2085520           sched_yield
------ ----------- ----------- --------- --------- ----------------
100.00   17.474801           8   2085520           total

:: (nixbld17) → /tmp/nix-build-python3.11-cvxpy-1.2.3.drv-0
  UID     PID    PPID STIME     TIME COMMAND
30017 3067103 3055397 20:48 00:00:00 bash -e /nix/store/6xg259477c90a229xwmb53pdfkn6ig3g-default-builder.sh
30017 3086650 3067103 20:51 05:15:56 /nix/store/r85cm22i6058g4zj76w05rzvqwil6d2g-python3-3.11.1/bin/python3.11 -m pytest -k not test_tv_inpainting and not test_diffcp_sdp_example and not test_huber and not test_partial_problem ./cvxpy

strace -ff -p 3086650
...
[pid 3088301] futex(0x1e54ff4, FUTEX_WAIT_PRIVATE, 715744, NULL <unfinished ...>
[pid 3088293] futex(0x1e54ff4, FUTEX_WAKE_PRIVATE,<PHONE_NUMBER>) = 1
[pid 3088301] <... futex resumed>)      = 0
[pid 3088301] futex(0x1e4b784, FUTEX_WAIT_PRIVATE, 715744, NULL <unfinished ...>
[pid 3088292] futex(0x1e4b784, FUTEX_WAIT_PRIVATE, 715744, NULL <unfinished ...>
[pid 3088298] futex(0x1e4b784, FUTEX_WAKE_PRIVATE,<PHONE_NUMBER>) = 2
[pid 3088301] <... futex resumed>)      = 0
[pid 3088292] <... futex resumed>)      = 0
[pid 3088301] futex(0x1e54ff4, FUTEX_WAIT_PRIVATE, 715752, NULL <unfinished ...>
[pid 3088305] futex(0x1e54ff4, FUTEX_WAKE_PRIVATE,<PHONE_NUMBER>) = 0
[pid 3088301] <... futex resumed>)      = -1 EAGAIN (Resource temporarily unavailable)
[pid 3088303] futex(0x1e4b784, FUTEX_WAKE_PRIVATE,<PHONE_NUMBER>) = 0
[pid 3088297] futex(0x1e54ff4, FUTEX_WAKE_PRIVATE,<PHONE_NUMBER>) = 0
^C

[root@gaming:~]# strace -f -c -p 3086650
strace: Process 3086650 attached with 23 threads
...
% time     seconds  usecs/call     calls    errors syscall
------ ----------- ----------- --------- --------- ----------------
100.00    0.464360          71      6463      1839 futex
------ ----------- ----------- --------- --------- ----------------
100.00    0.464360          71      6463      1839 total

Maybe this is a pytest issue, but Nix should also do something to unblock such situations!
Workaround
To unblock the situation and let Nix build the rest of the packages, you have to kill the deadlocked python test processes.
error: builder for '/nix/store/r9msjyv7p81fl9llcz6hzp8czr5ml83w-python3.11-OpenSfM-unstable-2022-03-10.drv' failed with exit code 143;
       last 10 log lines:
       > opensfm/test/test_dense.py ..                                            [ 55%]
       > opensfm/test/test_geo.py .....                                           [ 57%]
       > opensfm/test/test_geometry.py ....                                       [ 59%]
       > opensfm/test/test_io.py .........                                        [ 62%]
       > opensfm/test/test_matching.py ......                                     [ 65%]
       > opensfm/test/test_multiview.py .........                                 [ 68%]
       > opensfm/test/test_pairs_selection.py .........                           [ 72%]
       > opensfm/test/test_reconstruction_alignment.py ........                   [ 75%]
       > opensfm/test/test_reconstruction_incremental.py Terminated
       > /nix/store/b09v23lirgvci3wzszh22mbkdfj0h0yq-stdenv-linux/setup: line 1582: pop_var_context: head of shell_variables not a function context

The "Terminated" appears.
Also the strange stdenv-linux/setup error.
It's interesting that even when i killed 3 of 4, the last one is not unblocked. So they seem not to get blocked on each other. But the issue also don't appear when building the package alone!
Steps To Reproduce

nixpkgs-review pr 215689 (Builds 138 packages which need 17 GB!)

Not reproducible with e.g.:
nix-build . -A python310Packages.cvxpy -A python310Packages.qutip -A python310Packages.opensfm -A python311Packages.opensfm

Expected behavior
Nix should be able to build 100+ packages without errors.
nix-env --version output nix-env (Nix) 2.11.1
Additional context
Packages that get stuck in this way:
python3.11-OpenSfM-unstable-2022-03-10
python3.10-OpenSfM-unstable-2022-03-10
python3.10-qutip-4.7.1
python3.11-cvxpy-1.2.3
python3.10-cvxpy-1.2.3
Priorities
Add :+1: to issues you find important.

@roberth Nix could still handle such situations better, e.g. detecting deadlocks and cancel builds after a timeout.

It can already cancel a build after log lines stop appearing, with max-silent-time.
I don't think detecting the deadlock itself is feasible without significant overhead.


monitor action-group not available in AzureGovernment

Describe the bug
Error that resource type could not be found in namespace when listing monitor action groups.

The resource type 'actiongroups' could not be found in the namespace 'microsoft.insights' for api version '2018-03-01'. The supported api-versions are '2017-04-01'.. [Code: "InvalidResourceType"]

To Reproduce
az cloud set --name AzureUSGovernment
az monitor action-group list

Expected behavior
Action groups are listed
Environment summary
azure-cli (2.0.52)
monitor (0.2.7)

This appears to be corrected in 2.0.57.


Update README.md

Added part 13 and 14 and directions to help prevent questions on error codes

Formatting is broken. Gonna fix the readme file myself.


Simplify output parsing

Somehow I made this way too complicated the first time around :flushed: :rofl:

Codecov Report

Merging #286 into master will not change coverage.
The diff coverage is 100.00%.

@@            Coverage Diff            @@
##            master      #286   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files            9         9
  Lines          409       407    -2
=========================================
- Hits           409       407    -2

Impacted Files
Coverage Δ

nbqa/__main__.py
100.00% <100.00%> (ø)

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 d943e1d...3adb844. Read the comment docs.

Seems to be fine now, tests contains a mix of absolute and relative paths and pass on both Windows and Linux :tada:

It seems isort resolves this differently on Windows (where it prints a full path) and on Linux, where it prints when you pass in.
So for consistency, what I've done in the last commit is to always print what the user passes in, regardless of what the tool would do.
If a user passes
nbqa <command> src/file.ipynb

the output will reference src/file.ipynb, while if the user passes
nbqa <command> /home/user/src/file.ipynb

the output will reference /home/user/src/file.ipynb.
I know you've reviewed already but this is a bit of an API breaking change, so any further comments on the latest commit would be appreciated @nbQA-dev/nbqa-core

Sure will review the latest changes

So for consistency, what I've done in the last commit is to always print what the user passes in, regardless of what the tool would do.

I totaly agree, with the output being tool agnostic.
How about adding an option path-format = absolute|relative?
Since most users will call tools from the repo root, I would suggest relative as default.

That's just a good suggestion...I'm inclined to go with the black philosophy of not making the tool too configurable, mainly because like this it's easier to maintain

I think one of the main points behind backs philosophy is.

Black is the uncompromising Python code formatter.

So making it too confiurable, you end up with different code styles again, which kinda beats the purpouse.
Where as for a tool wrapper like nbQA, IMHO it would be preferable to have a uniform output no matter the tool used.

True, but with this PR it will be uniform - if the users wants the full path, they can pass a full path; if they want a relative path, they can pass a relative one.
I'm just not sure that having an extra flag for this would be worth the extra complexity / maintenance

Ok point taken ^^

Btw. isn't the replacing of the temp path making the argument behind using    .py for temp files invalid?
I meank, if a tool uses the console width for output formatting, the temppath replacement, will throw off the formatting much more than the 3 character difference wouldn't it?
Do you have an example tool that uses console width for formatting its output?

:thinking: ah, now that's a really good point...

Do you have an example tool that uses console width for formatting its output?

Initially this was pytest, but then I realised it was waaay to complex to support that so stopped. I guess now we can remove those extra whitespaces then, thanks :+1:


Fallback to network if there's a cache miss for registerNavigationRoute

FYI: @philipwalton
CC: @coryrylan
This provides a fallback for the scenario mentioned in #1441, but I'd like to leave that issue open to track the underlying cause.
This is the equivalent of the previously approached #1300, in a fresh PR against the current master branch.

SGTM


winmd-inspect: avoid an indentation level

Use a guard to avoid the indentation.  This sinks the database
location printing to after the database is opened, which will print an
error already if it fails.

Codecov Report

Merging #96 (040ff8c) into main (bf31a79) will not change coverage.
The diff coverage is n/a.

@@          Coverage Diff          @@
##            main     #96   +/-   ##
=====================================
  Coverage   9.74%   9.74%
=====================================
  Files         53      53
  Lines       1160    1160
=====================================
  Hits         113     113
  Misses      1047    1047

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 bf31a79...040ff8c. Read the comment docs.


Added a New Screen. Changed some hardcoded values.

Please add a screenshot of the new screen you made here


Unknown Error: download or zip folders/files over 170MB

When I try to download or zip a folder or a file of more than 170MB filegator gives me an unknown error after around 30 seconds.
The app.log contains no information about this error.
I am running filegator 7.4.5.
Does anyone have an idea what could cause the error?
I am able to zip and download smaller files.
Via FTP I can even zip huge files over 1GB.
Thanks in advance,
Linus

Hi,
Your PHP probably needs more execution time to finish before it gets killed by the server. The default limit is 30 seconds.
You can try to increase the limit by adding these two lines on top of your dist/index.php file:
ini_set('max_execution_time', 300); //300 seconds = 5 minutes
ini_set('memory_limit','256M');

This might not work on some shared hosting plans. Their servers are configured to ignore these settings. They can also limit resource consumption in other ways preventing your scripts from taking up too many memory or processor cycles.
Docs:
https://www.php.net/manual/en/function.set-time-limit.php
https://www.php.net/manual/en/info.configuration.php#ini.max-execution-time

How can you speed up the decompression process? Now the 50MB archive is unpacked for 20 minutes (servcer 1CPU 1RAM)


Add Out Of Office support

Summary
Add constants for mobile and webapp support

OUT_OF_OFFICE = ooo
SYSTEM_AUTO_RESPONDER = system_auto_response

via @miguelespinoza

@jespino if this looks good can we merge so clients can make use of the changes.
Thanks! 😄

I'm ok with that, but I'm waiting for @hmhealey approval :)


Require the 'reactionGlyphIndex' argument.

There were already functions with that argument, and implementation of these functions was broken.  It was also causing me confusion because there was a difference between the 'get' functions and the 'set' functions.  Removing the functions without reactionGlyphIndex seems to have just fixed everything, and made things simpler to boot.

These 'set' functions was written as reactionGlyphIndex = 0 is a very common case. Each of them has an equivalent where you can pass reactionGlyphIndex as an input argument (those are the ones which are considered to be parallel with 'get' functions). I fixed the issue you were encountering in PR #11. I just merged it into the 'develop' branch. You can check and see if it works fine.

I don't like it.    I would just remove these functions.

You are right. Just merged it!


:wrench: BUGFIX: Added check for type assignment

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@17566fa). Click here to learn what that means.
The diff coverage is 0%.

@@           Coverage Diff            @@
##             master    #594   +/-   ##
========================================
  Coverage          ?   50.8%
========================================
  Files             ?     260
  Lines             ?    5080
  Branches          ?     785
========================================
  Hits              ?    2581
  Misses            ?    2493
  Partials          ?       6

Impacted Files
Coverage Δ

src/legacy/connect/models/deviceEventAdapter.ts
62.5% <0%> (ø)

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 17566fa...1ea74c5. Read the comment docs.


Git dependency "remote hung up unexpectedly" Missing dependency on org.eclipse.jgit.ssh.jsch?

I get this on my first attempt to get this plugin going, against an in-house git server accessed via ssh.
"remote hung up unexpectedly"
With stacktrace:
Caused by: org.eclipse.jgit.errors.TransportException: git@git.merus.co.uk:Toolbox.git: remote hung up unexpectedly
        at org.eclipse.jgit.transport.TransportGitSsh$SshFetchConnection.<init>(TransportGitSsh.java:270)
        at org.eclipse.jgit.transport.TransportGitSsh.openFetch(TransportGitSsh.java:144)
        at org.eclipse.jgit.transport.FetchProcess.executeImp(FetchProcess.java:105)
        at org.eclipse.jgit.transport.FetchProcess.execute(FetchProcess.java:91)
        at org.eclipse.jgit.transport.Transport.fetch(Transport.java:1260)
        at org.eclipse.jgit.api.FetchCommand.call(FetchCommand.java:211)
        ... 157 more
Caused by: java.lang.NullPointerException: Cannot invoke "org.eclipse.jgit.transport.SshSessionFactory.getSession(org.eclipse.jgit.transport.URIish, org.eclipse.jgit.transport.CredentialsProvider, org.eclipse.jgit.util.FS, int)" because "this.sch" is null
        at org.eclipse.jgit.transport.SshTransport.getSession(SshTransport.java:107)
        at org.eclipse.jgit.transport.TransportGitSsh$SshFetchConnection.<init>(TransportGitSsh.java:254)
        ... 162 more

The SshTransportFactory isn't getting initialised. I think this is because the jgit ssh implementation library is not in the classpath, because it's not declared in the dependencies. I think it probably needs
implementation group: 'org.eclipse.jgit', name: 'org.eclipse.jgit.ssh.jsch', version: '(version)'

in your build.gradle. I'm afraid my gradle-fu doesn't seem to be up to forcibly injecting it, and its transitive dependencies on jsch etc., into the classpath for gradle at the initialization stage (when settings.gradle is read) or I'd have tested that as a workaround...

Thanks for reporting!
Indeed, the issue was caused by the recent migration from grgit to jgit (because grgit is hosted with recently shut down jcenter).
First of all, it turns out Jgit moved SSH support into separate libs as of version 5.8, so it have to be explicitly included, exactly as you pointed out. But just including the correct lib didn't work as Jgit still cannot find the correct SshSessionFactory (seems like Java ServiceLoader does not work well with Gradle plugins). Luckily it can be set manually.
But it turned out that org.eclipse.jgit.ssh.jsch does not work well, somehow I got vague "Auth fail" errors even though the old version based on grgit worked just fine. I ended up copying grgit hack that manually checks for ssh in PATH and sets GIT_SSH variable for Jgit to use system command instead of own broken implementation.
Long story short - it should be fixed in v2.0.4 now.


Merge multiple Signup classes into single ones.

What's this PR do?
This PR does a bunch of cleanup for the dosomething_signup module, which contained duplicate entity classes and entity controller classes. When the signups endpoint was added, additional classes were added without cleaning up/consolidating the existing classes.
How should this be reviewed?
👀
Any background context you want to provide?
Also running some tests to check and see if Phoenix builds properly with these changes. I was having a few issues with my local, and needed to try a full destroy of the vagrant box and rebuild.
After the destroy and rebuild with these changes, site seemed to build fine and was able to signup to a few campaigns.
Relevant tickets
Refs

#6990

Checklist

[ ] Tested on staging.
[ ] Pinged a PM if this is a larger PR that would benefit from some additional testing love.

Looks good to me! 🚢


do not save /help responses in zkclient.log

This will require to special case the PrintfT function and I will not do that. Whatever is printed in the UI shows up in the logs.


Update kafka-schema-registry-client to 7.2.5

About this PR
📦 Updates io.confluent:kafka-schema-registry-client from 7.2.2 to 7.2.5
📜 GitHub Release Notes - Version Diff
Usage
✅ Please merge!
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

⚙ Adjust future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "io.confluent", artifactId = "kafka-schema-registry-client" } ]

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequests = { frequency = "30 days" },
  dependency = { groupId = "io.confluent", artifactId = "kafka-schema-registry-client" }
}]

labels: library-update, early-semver-patch, semver-spec-patch, commit-count:1

Superseded by #1224.


Lack of documentation after initial setup

There seems to be a severe lack of documentation after the instillation of the panel is finished. I'm not able to find any tutorials for how to setup a node that aren't outdated. I'm just trying to run pterodactyl and run a game server on that same server but cannot find any info on how to do that. Is there anywhere that this documentation is living that I'm missing or is there none?

Documentation on doing that is going to be living here: https://guides.pterodactyl.io/
There doesn't seem to be documentation on how to do that currently.

This isn't really a GitHub issue, but I'll admit there isn't a ton of documentation after the installation part. However, that comes down to time and resources available, and neither of those are in high quantity for a lot of the core team currently.


Remove Emoji in Verify Box

Emoji don't work on Linux and windows so replacing with the check and arrow which do work.
After:

This doesn't fix entirely, but relates to https://github.com/jlord/git-it-electron/issues/64


GitHub action execute-modified-python-file.yml will not run when a new file is created and added to repo

About Bug or problem
The GitHub action to execute python file will not run when a file is created rather than modified.
This is because the action is designed only to check files that were modified and so will ignore files that are new to the repo.
Steps to reproduce
Create a brand new python file and add to the repo. The GitHub action will not see any files as being modified and will print:
Run echo "job: running script to execute modified file:"
job: running script to execute modified file:
run-sh: Inside run-modified-python.sh
run-sh: Content of files_modified.json: []
run-sh: After parsing, file to execute:
run-sh: File modified is not a python file! Will not execute
job: Done

Potential fix
Modify action execute-modified-python-file.yml to detect when new files are added to the repo and execute them.

@deepu14d Thanks for the analysis! But I think its because the Github workflow to detect modified files only works if the file already existed and was modified. If the file is newly created it doesn't detect it as being modified. If you have any further thoughts let me know :)

@deepu14d Thanks for the analysis! But I think its because the Github workflow to detect modified files only works if the file already existed and was modified. If the file is newly created it doesn't detect it as being modified. If you have any further thoughts let me know :)

um yeah you are right

Open for hacktoberfest 2022!


Fix spec, remote file uses url key, not source

There's a typo in the specification.  The other option is to change the key to "source" in the code so it matches that of ignition append, and ignition JSON.

LGTM. Thank you.

Can you reformat the commit message to comply with https://github.com/coreos/fuze/blob/master/CONTRIBUTING.md#format-of-the-commit-message?


Include files for SQL Server version name & number are inconsistent

Going through the various include files for "SQL Server versionName (versionNumber.x)" you can see that there is no consistency to the file naming convention. For each file I show the content below the URL for the file, and then below that I note, based on the content of the file, whether the filename is referencing the version Name (e.g. "2017") or the version Number (e.g. "14.x").
At the very least the sssqlv15-md.md files needs the version number added to the content, and the sssql15-md.md files either needs to be removed or perhaps its content changed to be "2019 (15.x)", though in either case not before all existing references to that file are migrated over to the sssql16-md.md file (or perhaps create a sssqlv13-md.md file?).

https://github.com/MicrosoftDocs/sql-docs/blob/live/docs/includes/sssql11-md.md

SQL Server 2012 (11.x)

Version number

https://github.com/MicrosoftDocs/sql-docs/blob/live/docs/includes/sssql11sp1-md.md

SQL Server 2012 SP1 (11.0.3x)

Version number

https://github.com/MicrosoftDocs/sql-docs/blob/live/docs/includes/sssql14-md.md

SQL Server 2014 (12.x)

Version Name

https://github.com/MicrosoftDocs/sql-docs/blob/live/docs/includes/sssql15-md.md

SQL Server 2016 (13.x)

Neither number nor Name

https://github.com/MicrosoftDocs/sql-docs/blob/live/docs/includes/sssql16-md.md

SQL Server 2016 (13.x)

Version Name

https://github.com/MicrosoftDocs/sql-docs/blob/live/docs/includes/sssql17-md.md

SQL Server 2017 (14.x)

Version Name

The following two files, unlike the previous set, have a "v" in their names:

https://github.com/MicrosoftDocs/sql-docs/blob/live/docs/includes/sssqlv14-md.md

SQL Server 2017 (14.x)

Version number

https://github.com/MicrosoftDocs/sql-docs/blob/live/docs/includes/sssqlv15-md.md

SQL Server 2019

Version number (but missing the number 😉 )

The following two files are consistent with their naming and content, but their names do not match either of the previous two conventions:

https://github.com/MicrosoftDocs/sql-docs/blob/live/docs/includes/ssversion2000-md.md

SQL Server 2000 (8.x)

Version Name

https://github.com/MicrosoftDocs/sql-docs/blob/live/docs/includes/ssversion2005-md.md

SQL Server 2005 (9.x)

Version Name

Should the following files contain the version number (i.e. (14.x) for their current value of "2017")?

https://github.com/MicrosoftDocs/sql-docs/blob/live/docs/includes/sscurrent-md.md

SQL Server 2017

https://github.com/MicrosoftDocs/sql-docs/blob/live/docs/includes/sscurrent.md

<Token xmlns:xlink="http://www.w3.org/1999/xlink">SQL Server 2017

https://github.com/MicrosoftDocs/sql-docs/blob/live/docs/includes/sscurrentui-md.md

Microsoft SQL Server 2017

@srutzky Thank you for the feedback.
The new versioning syntax used in Microsoft Docs (see below) allows multiple versions to be included in the same document.

...so at some point the .md files referenced above should be condensed into a single sssql or ssversion document.  The image names could then be changed.
The Markdown syntax is as follows:
::: moniker range="azure-devops"
[!INCLUDE [temp](../_shared/dashboard-prerequisites-vsts.md)]
::: moniker-end

::: moniker range=">= tfs-2017 <= tfs-2018"
[!INCLUDE [temp](../_shared/dashboard-prerequisites-tfs-2017-18.md)]
::: moniker-end

...and we're definitely open to contributions.  :)

Closing the issue now, please comment below if there are any questions.


Problems when floating the video

My logseq version is 0.6.9 , it seems that after select the whole part of code of the video. l choose the start floating , but nothing happens. Can you give some more specific steps on how to float the video. Thanks!
My operating system is windows10 pro.

hi Daniel! floating the video should be as simple as what you’ve described. what type of video are you trying to float (e.g. YouTube, Vimeo, local video)?

It seems that l don't know how to start floating. l find that after l click the red ballon , what should l do? When should l select my code?

hopefully this video helps to clarify

Thanks , that'r great , l can float the video now!

@vyleung Do you know how to change the size of window of the video?

check out this video starting at the 10 sec mark

Thanks , but it seems that l only have this red ballon . l don't have the button to change the size.

i forgot to mention - currently, only YouTube videos can be resized

Oh, thanks.

Can you add the local video support? Thanks!

Besides , with the youtube video, l still can't change the size.

The button can't be clicked!

yes, local video support is planned.
can you open dev tools (ctrl+shift+i) and see if there are any errors?

Sure, which part do you want to see?

can you please do the following:

disable and re-enable the plugin
float the video and click the buttons
take a screenshot of the errors in the console and post it here

Every time l click the button to increase the height, it times of this error will be added.

gotcha - could you send the video link so i can test it on my end?

Sure. https://www.youtube.com/watch?v=9s7zUlTgnDc&t=29s

thanks, i’ll take a look in a bit

it looks like the issue is that the video URL contains &t=29s - can you try https://www.youtube.com/watch?v=9s7zUlTgnDc instead?

Thanks , l will try it soon!

The problem is fixed! Thanks!
So, when will this function be added to the local video? Besides , can you also add this function to bilibili?

glad to hear that!
can you open a new issue for local video support? and as far as i know, Logseq doesn't support bilibili embeds - other users have downloaded bilibili videos and embeded them as local videos so this will go hand-in-hand w/ the new issue

sure, thanks!


crash without blank line

SymbolicTM crashes my pc when I try to use it with files that don't end on a blank line. Easy enough to work around, but a fix would be nice :)

Yes, I noticed this myself. Commit 730c6edd7ffdf0dd should fix this problem. Please feel free to reopen this issue (with a sample input file) if you find it still does.


User location not showed

Hi, I'm developing an application in SwifUI to estimate the power consumption of an e-bike based on the track chosen by the user; I'm implementing a Map initializing it as showed in the example file, but when I try to show also user position the map doesn't show the location.
I have implemented a CLLocationManager to manage user position and it works correctly, but in the example is not specified very well how to link the two components.

The approaches are very similar to how the Apple implementation works and therefore do not necessarily need specific documentation here imho. If you feel different about this, feel free to open a pull request with a more extensive explanation.
There are two possible approaches on how to display the current user position.
1. The 'default' way:
You can simply use the MapInformationVisibility parameter when initializing the map:
Map(
    coordinateRegion: $region, // you can also use mapRect here, does not make a difference for this example
    informationVisibility: .default.union(.userLocation)
)

This will show the user location as it does in the Maps app. The appearance is hereby fixed - if you need a custom appearance, please look at the following option:
2. The 'custom' way:
Specify an annotation as you normally would that reflects the user location by first defining an annotation item type:
struct UserLocationAnnotation: Identifiable {
    var id = UUID()
    let coordinate: CLLocationCoordinate2D
    // of course, you can add more properties here that might be helpful when creating the annotation itself from this annotation item (e.g. color, text, etc)
}

Not let's plug it into a Map:
struct MyMapView: View {

    @State private var annotationItems = [UserLocationAnnotation]()

    var body: some View {
        Map(
            coordinateRegion: $region, // you can also use mapRect here, does not make a difference for this example
            annotationItems: annotationItems
        ) { annotationItem in
            MapMarker(coordinate: annotationItem.coordinate, tint: .red)
            // This could be any kind of annotation, e.g. ViewMapAnnotation, MapPin and MapMarker
        }
    }

}

Now you would only need to somehow set the state according to the locations received from your CLLocationManager. You could also use an @Published property inside an ObservableObject using the ObservedObject/StateObject/EnvironmentObject property wrappers. One thing you will need to make sure is not create the identifiable objects inside the body, since they would be removed and added on each redraw of the map, which would be quite costly performance-wise (this is the case in Apple's Map SwiftUI implementation as well btw).

Thank you for your answer, but I'm still having problems with user position visualization, especially with the "default" way: when the map appears on the view is centered on the user position, but it doesn't show a dot/mark on the map (as Apple Maps does); furthermore, the Location manager, that at the beginning of the app it was working good starts to raise errors (managed by callback function didFailWithError).
I'm also sure that Location Manager class works well because using a standard Map object from MapKit  I get rid of the errors.

You will still need to handle authorization, maybe this is the issue? This library is simply setting showsUserLocation on MKMapView, so there should not really be an issue in any way. I sadly don't have the time to dig into this deeper at the moment, but I remember that this definitely worked a couple of weeks ago.
Which version of this library are you using? Could you maybe try the latest main commit?

great! not a waste of time at all - it tells me that I will need to release a new version soon, so that this bug does not appear for new users of this library.

@pauljohanneskraft i also noticed that there is one reported bug left, about the name clash of UserTrackingMode inside the main branch.
I noticed it now, trying to adapt the Map to the new initialization inside my app.


cordova.file is undefined with cordova-plugin-file installed (Windows 8.1)

I have cordova-plugin-file installed as per the ngCordova, plugin github, and the npm repo suggests.
I've placed the variable in my controller and attempted to output the object:
.controller('loginForm', function ($scope, $cordovaSQLite, $timeout, $cordovaNetwork, $rootScope, $http, $cordovaFile) {
    document.addEventListener("deviceready", function () {
        console.log(cordova.file);
        console.log($cordovaFile);
    },false);
})

console.log(cordova.file) outputs as undefined. However, console.log($cordovaFile) outputs the functions as expected in the object.
Obviously the plugin is loaded and running but the cordova object isn't being updated.

@dpc3450 It appears there are disparities in the various versions of ionic, cordova, cordova-ios (ie each and every platform), ng-cordova, cordova-plugin-file (ie every-single-plugin), the documentation and examples for these (especially ng-cordova), etc. In my case (having just now encountered this same issue) I simply upgraded everything because it appeared to be the quickest way to either total disaster or a fix. Specifically this was:
npm update -g
cordova -v
cordova platform list
cordova platform update ios (or whatever platforms)
cordova platform list
cordova plugin list
-- now either do a cordova plugin remove/add for each plugin to update (I did this)
-- OR with ionic use ionic state reset and it will install all from package.json (I didn't do this)
Result: window.cordova.file now exists after a clean deploy to the device (and presumably the emulator too).

I'm suddenly experiencing the same problem. I have tried ionic state reset' and cordova plugin rm/add` to no avail.

I discovered that the plugin refused to install on the Android platform.
I ran cordova platform update android and it seems to have solved the problem.


fix: use correct V8 tag for major updates

Sometimes there might be additional tags with suffix such as -pgo

Fixes: https://github.com/nodejs/node-v8/actions/runs/4279399575/jobs/7450060217


fix: require usage of Streams API for calcHash.js task

fix: require usage of Streams API for calcHash.js task

Added requirement to use Streams API for calcHash.js task. SHA256 hashes are often calculated for very large inputs.

@AlreadyBored

@gentoosiast
Thanks, perhaps, it makes sense, but task is already in progress and we won't change assignment before it's timeline is finished


global: add CERN OpenID contrib

Closed in favor of: https://github.com/inveniosoftware/invenio-oauthclient/pull/215


Incompatibility with mods that add thirst system

Basically what the title says. The problem is that when someone with the Enderian Origin tries to drink from a water bottle (or any bottle, for that matter), they get damaged, which is a bit counter-productive if you're trying to implement mods that add thirst to the game such as Tough as Nails or Dehydration. Can devs please remove this feature? or maybe add some configuration that would disable that feature if said mods were to be installed together with Origins? Thanks in advance :)

Hi! The power responsible for this behavior is origins:damage_from_potions. Changing the Enderian origin definition to remove this power would cause that to no longer happen (and you can already do it, using a datapack that overwrites that file). However, I would argue that taking damage in order to refill your thirst meter would be a simple tradeoff you would have to make when playing as an Enderian. (Either that, or Enderians have evolved to no longer require water, since it hurts them to drink it.)


BUG: Resolve ITK make build error with Python Wrappings.

Resolved a few small bugs causing make builds to fail when python wrapping is enabled.
The following was changed:

The itk-stubs directory is generated via cmake during build configuration before igenerator.py is ran.
The .pyi output files in the igenerator custom command were corrected.
The typehint generation code was reformatted to prevent duplicate definitions from being saved to several files.

This should fix #2908.

PR Checklist

[x] No API changes were made (or the changes have been approved)
[x] No major design changes were made (or the changes have been approved)

@PranjalSahu Would you mind building again with this fix to see if it resolves your issue? Thanks!

Pranjal is out of office this week, so I suppose this will need to wait for next week.

I am to build it successfully on MacBook.


WIP:Add ROAClient sdk

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

Codecov Report

Merging #3 into master will decrease coverage by 11.76%.
The diff coverage is 88.23%.

@@             Coverage Diff             @@
##           master       #3       +/-   ##
===========================================
- Coverage     100%   88.23%   -11.77%
===========================================
  Files           1        1
  Lines           2       51       +49
===========================================
+ Hits            2       45       +43
- Misses          0        6        +6

Impacted Files
Coverage Δ

lib/roa_client.rb
88.23% <88.23%> (ø)

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 54c4043...980703c. Read the comment docs.

cla 签下

还请大佬多多指教呢 😊

我先做一次合并。


Deeplink - No prompt to open in app when navigating to deep link as logged-out web user

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Issue found when executing PR https://github.com/Expensify/App/pull/24638
Action Performed:

Go to staging.new.expensify.com
As signed in user on web, copy code to room and paste it on web browser and navigate to the link
As signed out user on web, repeat Step 2

Expected Result:
Whether user is signed in or signed out on web browser, navigate to new expensify deeplink on web should show a prompt to open ND in app
Actual Result:
When user is signed out on web and navigates to deep link, there is no prompt to open in desktop app
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ ] Android / native
[ ] Android / Chrome
[ ] iOS / native
[ ] iOS / Safari
[x] MacOS / Chrome / Safari
[x] MacOS / Desktop

Version Number: 1.3.56-18
Reproducible in staging?: Yes
Reproducible in production?: No
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
https://github.com/Expensify/App/assets/78819774/f2ea9918-aaf4-40d1-a544-8d3e756f44bd
Expensify/Expensify Issue URL:
Issue reported by: Applause - Internal Team
Slack conversation:
View all open jobs on GitHub

:wave: Friendly reminder that deploy blockers are time-sensitive ⏱ issues! Check out the open StagingDeployCash deploy checklist to see the list of PRs included in this release, then work quickly to do one of the following:

Identify the pull request that introduced this issue and revert it.
Find someone who can quickly fix the issue.
Fix the issue yourself.

I QA'd https://github.com/Expensify/App/pull/24638 - it worked fine and I don't believe what we're seeing here is a deploy blocker. I'm going to reassign this to the bug zero team for triage.

Confirmed this works right now on production when signed in or out. It's only on staging that we don't prompt to open the desktop app when deeplinking while signed out.

@joekaufmanexpensify @yuwenmemon Can we close this issue then?

@ArekChr I would think we wouldn't want to close this, no? It seems like a bug that we're not triggering the desktop prompt when logged out on staging.

Sure, I thought that was intentional.

Proposal
Please re-state the problem that we are trying to solve in this issue.
When a user is signed out on the web and attempts to navigate to a deep link, there is no prompt to open the link in the desktop app.
What is the root cause of that problem?
The root cause of this problem is that we are not handling deep links when users are logged out.
You can find the relevant code snippet here:
https://github.com/Expensify/App/blob/34d4e54055c3fee2a04e2fc11af82fe454197ff9/src/components/DeeplinkWrapper/index.website.js#L78-L94
What changes do you think we should make in order to solve the problem?
To address this issue, I recommend the following changes:

Update Conditional Expression
We need to modify the code by removing the conditional expression that checks for isAuthenticated === false. Since the existing else statement implies that isAuthenticated is false, the conditional is unnecessary.

https://github.com/Expensify/App/blob/34d4e54055c3fee2a04e2fc11af82fe454197ff9/src/components/DeeplinkWrapper/index.website.js#L83

Adjust Denylist for Opening Desktop App
We need to modify the code by either removing HOME from the DEEPLINK_PROMPT_DENYLIST, or by incorporating the condition navigationRef.current.getState().routes.length === 1. This indicates that these changes are specifically related to the DEEPLINK and do not affect HOME. This condition establishes that if the route length is greater than 1, it signifies a deep link; otherwise, it is not a deep link. These changes are aimed at enabling the desktop app to show a prompt for opening when a user, logged out on the web, navigates to a deep link.

https://github.com/Expensify/App/blob/34d4e54055c3fee2a04e2fc11af82fe454197ff9/src/components/DeeplinkWrapper/index.website.js#L87-L88
https://github.com/Expensify/App/blob/34d4e54055c3fee2a04e2fc11af82fe454197ff9/src/CONST.js#L444

Modification of Conditional Code Block Adjust the code as follows:

if (currentScreen === undefined) {
  return;
}

const preventPrompt = shouldPreventDeeplinkPrompt(currentScreen);

// navigationRef.current is not null as currentScreen is not undefined. Therefore, we can utilize navigationRef.current.
if (preventPrompt === true && navigationRef.current.getState().routes.length === 1) {
  return;
}

This modification ensures proper handling of the prompt prevention based on the conditions mentioned.
What alternative solutions did you explore? (Optional)
N/A

Proposal
Please re-state the problem that we are trying to solve in this issue.
No prompt to open in app when navigating to deep link as logged-out web user
What is the root cause of that problem?
https://github.com/Expensify/App/blob/34d4e54055c3fee2a04e2fc11af82fe454197ff9/src/components/DeeplinkWrapper/index.website.js#L83
https://github.com/Expensify/App/blob/34d4e54055c3fee2a04e2fc11af82fe454197ff9/src/components/DeeplinkWrapper/index.website.js#L52
Both places we are blocking for non-auth people
What changes do you think we should make in order to solve the problem?
we should remove isAuthenticated === false both places and
we should remove  SCREENS.HOME as well because  SCREENS.HOME is a root path for  this allow the path
 const preventPrompt = shouldPreventDeeplinkPrompt(currentScreen);

and
we should update
https://github.com/Expensify/App/blob/34d4e54055c3fee2a04e2fc11af82fe454197ff9/src/components/DeeplinkWrapper/index.website.js#L52
    + if (!hasShownPrompt) { // update this one
   - setHasShownPrompt(false); and remove this
            Navigation.isNavigationReady().then(() => {
                // Get initial route
                const initialRoute = navigationRef.current.getCurrentRoute();
                setCurrentScreen(initialRoute.name);

                removeListener.current = navigationRef.current.addListener('state', (event) => {
                    setCurrentScreen(Navigation.getRouteNameFromStateEvent(event));
                });
            });
        }

https://github.com/Expensify/App/blob/34d4e54055c3fee2a04e2fc11af82fe454197ff9/src/components/DeeplinkWrapper/index.website.js#L64
because when ever hasShownPrompt changes and isAuthenticated === false means it will update again hasShownPrompt as false and again it will ask the popup to open desktop so it will  goes to loop.

Sure, I thought that was intentional.

@ArekChr did you see discussion that said this somewhere? The reason I thought this was not intentional is that when I was testing it the other day, we were not showing the "switch to desktop" prompt to non-authenticated users on staging, but we were on production.
That inconsistency made me think this was likely a regression introduced at recently (unless we made the active decision to change this somewhere).

@ArekChr mind sharing your thoughts on this when you have a sec?

@joekaufmanexpensify It Looks like this functionality is intended. There were discussions about not prompting redirects when users are logged out on the web app, a related thread here
cc: @cdanwards

Ah cool. Yep, confirmed here.  Closing as this is intended!


Crash in collect_types _removeHandlerRef

With the workaround from #13 applied I get this error:
  File "/usr/lib/python3.5/logging/__init__.py", line 725, in _removeHandlerRef
  File "/usr/local/lib/python3.5/dist-packages/pyannotate_runtime/collect_types.py", line 681, in _trace_dispatch
AttributeError: 'NoneType' object has no attribute 'get'

I suppose that the check is slightly broken there. This fixes it for me:
    key = id(code)
    if not sampling_counters: # add this if to prevent the crash
        return
    n = sampling_counters.get(key, 0)
    if n is None:
        return

After this an #13 collection of types works in Python 3.5 on Ubuntu 16.04.

Can you submit a PR?

Is this during Python's global teardown, at the very end of the program? As a workaround, you should call stop_types_collection() before exiting. In the next revision it will be fixed by revision 54d27b4d5e34a3919c31a105f601a59b8a89451c.

Yes that is during shutdown. It already wrote the annotations to disk. Can probably be closed then.

Great!


Print multiple documents at once

We got a feature-request that it would be a nice to allow multiple PDF files to be uploaded and printed with the same settings by only submitting the printing form once.
It is probably possible by changing resources/views/dormitory/print/print.blade.php to allow multiple files to be uploaded and to go through the array of files one-by-one in app/Http/Controllers/Dormitory/PrintController.php.
But I do not see an exact way of how we should send feedback to a user.
I had an idea of merging the PDFs on client-side with something like this: https://pdf-lib.js.org/ But it would come with its own set of issues, like having to concatenate PDFs with an odd number of pages when dual-page printing is required, and how the price calculations should work in these cases.
Also we could probably do the merging on server-side and merge the PDFs together and then send off to the printer. Would still only be a single print job, so giving feedback would be manageable. We would still need to add empty pages but at least the price could be calculated without issues.

Tbh I would not prioritise this before #159. We might have some serious refactoring to do, and we can involve this one there.


Mark network monitor factory functions as private.

Move mptcpd_nm_create(),  mptcpd_nm_destroy(), and related notify
flags to a new <mptcpd/private/network_monitor.h> header.  They are
only meant for internal mptcpd use.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

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

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
1376

Relevant Lines:
2130

💛  - Coveralls


docs: update Pagination documentation

fix: #
Changes proposed in this PR:

[ ] I have followed (at least) the PR section of the contributing guide.
@90milesbridge/tigger

Pull Request Test Coverage Report for Build 3364

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

Totals

Change from base Build 3347:
0.0%

Covered Lines:
2795

Relevant Lines:
3378

💛  - Coveralls


Python Debug extension is required for pre-installed Vscodium

Python Debug should be pre-installed for VsCodium.
The configuration for debugging python file should also be added.
Thank you,
Ngoan

Integrated in RobotFramework AIO 0.13.1


Add support for resolving "$ref" in the CLI

Signed-off-by: Utkarsh Srivastava<EMAIL_ADDRESS>Description
This PR adds support for resolving $ref in the schemas. This is not a breaking change.
The CLI introduces a new flag --resolve, it expects a json path, if given it will assume that path to be the root of the openAPI spec and will attempt to resolve the references. The following must be noted:

If the flag is not given, the CLI will continue behaving the way it used to
If the flag is given but the json path evaluates to more than or less than one root then the request is ignore.

Notes for Reviewers
Signed commits

[x] Yes, I signed my commits.

Why do we have golangci lint and UI build workflows here? :thinking:

Why do we have golangci lint and UI build workflows here? 🤔

Those are hold-overs from the layer5-repo-template. Let's give them the boot.

Make a release after merge?
Use the build process in PR #3?

Make a release after merge?
Use the build process in PR #3?

We are not using the make recipes. I think we can use them :thinking:

I hear you saying that you'd think it's a good idea not to repeat ourselves, not to repeat ourselves, to repeat ourselves, repeat ourselves.