etcd operator storage, crd and certificate issues

The plan was to use etcd-operators. Now where we struggle.
First, we need to know the namespace when generating certificates.  This is because of
https://github.com/coreos/etcd-operator/blob/70d3bd74960dc7127870a393affffbe1df94728e/pkg/util/etcdutil/member.go#L38-L40
The result is that etcd advertises itself with name.namespace.svc and we need to have this in the certificates.
Second (and a little bit bigger on) is storage.
First, etcd-operator online contains multiple misleading docs, examples. So we rely on code.

Etcd pods itself does not have any persistence.
https://github.com/coreos/etcd-operator/blob/master/pkg/apis/etcd/v1beta2/cluster.go#L137
Upstream issue:
https://github.com/coreos/etcd-operator/issues/1323

Idea is we run in memory and backup constantly. In DR situation if a single pod is alive - the operator will recover. If all pods restart - recovery is done using etcd-restore-operator and restore is done from backup.
For this we need etcd-backup and etcd-restore operators.
backup operator supports 2 backup methods (Azure ASB  and AWS S3) https://github.com/coreos/etcd-operator/blob/master/pkg/apis/etcd/v1beta2/backup_types.go#L19-L28
Configuration is what causes an issue. We need to have secret with storage account name and key.
https://github.com/coreos/etcd-operator/blob/master/doc/design/abs_backup.md
This means pre-requested are:

Storage account created.
Key available during creation of secret.

We don't want to create a storage account during ARM deployment as is not a client facing configuration and artifact. We could use one storage account with multiple buckets per customer. And inject from the backend.
Last one issue is helm ordering for CRD:
https://github.com/kubernetes/helm/issues/2994
TL;DR: When helm created CRD it takes some time for the cluster to accept them. Creating CRD resources fails as it's not yet available.
In addition, we dont want to manage global CRD's for all users from the user configuration side. If CRD is deleted - all etcd cluster are deleted too. It would look like we need to manage them outside azure-helm as part of HCP management.
cc: @jim-minter @kargakis @pweil-

The result is that etcd advertises itself with name.namespace.svc and we need to have this in the certificates.

How about opening a PR to make this configurable?

Second (and a little bit bigger on) is storage.

How about an init container in the etcd operator deployment, to ensure that both the azure container and storage account are created before etcd comes up? And move backup operator to run as a second container in the etcd operator deployment?

In addition, we dont want to manage global CRD's for all users from the user configuration side. If CRD is deleted - all etcd cluster are deleted too. It would look like we need to manage them outside azure-helm as part of HCP management.

I like to think of the CRD as a global default in every underlay cluster. Our etcd operators shouldn't need cluster-wide access in order to create/delete the CRD.

How about an init container in the etcd operator deployment, to ensure that both the azure container and storage account are created before etcd comes up? And move backup operator to run as a second container in the etcd operator deployment?

We could do something like this. Run all 3 operators in one pod. Question is it acceptable that etcd-controller provisions storage for itself and creates a secret for it (I think yes). The question which credential we should use to storage all these "backup storage accounts"

I like to think of the CRD as a global default in every underlay cluster. Our etcd operators shouldn't need cluster-wide access in order to create/delete the CRD.

Agreed. We just need nice way to manage and lifecycle them too,.

The operator is used for aks. Might be a good topic for the sync call. I’d
review the aks hrlm charts too.
On Fri, Jul 13, 2018 at 11:30 Mangirdas Judeikis<EMAIL_ADDRESS>wrote:

How about an init container in the etcd operator deployment, to ensure
that both the azure container and storage account are created before etcd
comes up? And move backup operator to run as a second container in the etcd
operator deployment?
We could do something like this. Run all 3 operators in one pod. Question
is it acceptable that etcd-controller provisions storage for itself and
creates a secret for it (I think yes). The question which credential we
should use to storage all these "backup storage accounts"
I like to think of the CRD as a global default in every underlay cluster.
Our etcd operators shouldn't need cluster-wide access in order to
create/delete the CRD.
Agreed. We just need nice way to manage and lifecycle them too,.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/jim-minter/azure-helm/issues/75#issuecomment-404868020,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AE_PUy7UhedIrnuP2T0h0Y5OKLWo--uhks5uGL0MgaJpZM4VPDd_
.

@pweil- It can be used but we need to agree on how. Sync call would be good. Check google doc in the email with small review. Is there any change I can get access to azure repo too?

/kind feature


Ledgers query

Hi.
How can I run a ledger query for Kraken for example?
Thanks!

Hi, @valentinbora !
CCXT does not unify those methods, because they are very Kraken-specific, but the good news is that CCXT still implements all methods for Kraken, including those for querying ledger infos. So you can use their custom non-unified API for Kraken which is available in CCXT.
Afaik, you're using PHP, so, it would look like this:
<?php

$root = dirname (dirname (dirname (__FILE__)));

include $root . '/build/ccxt.php';

date_default_timezone_set ('UTC');

// instantiate the exchange by id

$exchange = '\\ccxt\\kraken';
$exchange = new $exchange (array (
    'apiKey' => 'YOUR_API_KEY',
    'secret' => 'YOUR_SECRET_KEY',
));

// get ledgers
$ledgers = $exchange->privatePostLedgers ();

// get ledger ids
$ids = array_keys ($ledgers['result']['ledger']);

// get ledger entries for ledger id
$ledger_entries = $exchange->privatePostQueryLedgers (array (
    'id' =>  $ids[0],
));

var_dump ($ledger_entries);

?>

I added the above example to examples/php/kraken-query-ledgers.php. But when I tested it, I found a transpiler bug, and I fixed it as well, so in order for it to work, you will have to update to latest version of ccxt 1.9.155+.
I'm closing this issue for now. Feel free to reopen if needed. Also, let us know if you have any other questions or difficulties with the library. We will be happy if your report whether the above answer helped you or not. Cheers!


Data: Include target of abilities when suitable in telemetry data

Regarding abilities that require selecting another hero, can we please add on the target? For example Ardan here has used Vanguard. But onto who? Which of his team recieved it? Did he do it to himself? Furthermore, this could be useful when you have heal abilities.
{
    "time": "2017-01-25T00:56:09+0000",
    "type": "UseAbility",
    "payload": {
        "Team": "Left",
        "Actor": "*Ardan*",
        "Ability": "HERO_ABILITY_ARDAN_A",
        "Position": [-47.15, 0.01, 7.88]
    }
}

Hi !
Any updates on this request ?
What we have now is:
{ "time": "2017-02-18T06:39:09+0000", "type": "UseAbility", "payload": { "Team": "Left", "Actor": "Hero010", "Ability": "HERO_ABILITY_SKAARF_B_GOOP", "Position": [ 59.81, 0.04, 11.15 ] } }
Still the same
Thanks :)

In progress.

coming in 2.3


Strange behaviour with member constraints having multiple arguments

Member constraints with multiple non tupled arguments seem to not be working in F#.
Repro steps
let inline foca (x : ^a) c' g' =
    let f' = (^a : (static member DrawL : Color -> Graphics -> unit) (c', g'))
    ()

type Drawer() =
    static member DrawL (color : Color)  (g: Graphics) =
        let r = g.VisibleClipBounds |> Rectangle.Truncate
        g.FillRectangle(Brushes.Orange, r)
        ()

(*Assume that p is an object with the CreateGraphics method but that
is not important in the scope of this ticket.
*)
foca (Drawer()) Color.Black (p.CreateGraphics())

I admit that it could be due to my ignorance regarding member constraints, if that is the case please close this report, I have checked the documentation and could not find any information about the matter.
Expected behavior
The above should compile as the Drawer class effectively has a member DrawL with the signature:  -> Color -> Graphics -> unit.
Actual behavior
Instead it does not compile as it objecting that it could not find a DrawL method in the object.
Which is weird.
Known workarounds
The reason I am filing this ticket is the strange workaround.
If I modify the DrawL method in the Drawer class such that the arguments are tupled (see the below code snippet), then it works but it should not.
type Drawer() =
    static member DrawL (color : Color, g: Graphics) =
        let r = g.VisibleClipBounds |> Rectangle.Truncate
        g.FillRectangle(Brushes.Orange, r)
        ()

The reason it should not is that the above has type signature: Color * Graphics -> unit
Related information
Provide any related information

Operating system: Windows 10
.NET Runtime (Framework 4.5)
F# 4.0 (FSharp.Core <IP_ADDRESS>)

@AntonioL Please report to http://github.com/Microsoft/visualfsharp, thanks


can't add more than a single row

I am running into a very peculiar problem -- I cannot add more than a single row to a table... it always ends in a OperationalError: SQL logic error.
For instance, the following code:
import sqlite3
import sqlite_vss

db = sqlite3.connect(':memory:')
db.enable_load_extension(True)
sqlite_vss.load(db)
db.enable_load_extension(False)

version, = db.execute('select vss_version()').fetchone()
print(version)

cur = db.cursor()

cur.execute("""
create virtual table vss_demo using vss0(
  a(3) factory="Flat,IDMap2" metrict_type=INNER_PRODUCT
);
""")

import json

embedding = [1.2, 0.3, 100]
cur.execute("insert into vss_demo(a) values (?)", [json.dumps(embedding)])

embedding = [1.2, 0.3, 120]
cur.execute("insert into vss_demo(a) values (?)", [json.dumps(embedding)])

will throw a OperationalError: SQL logic error.
Thank you very much for your help 🙏

Interestingly, when I try reading from the table, I get the following error (and this is despite AFAICT I have followed the docs exactly)

Thank you very much for your prompt reply, really appreciate it!!! 🙂
This does indeed fix the problem 🙏🥳
Unfortunately, I cannot overwrite a row, but that is not a big issue for my use case:

Thank you so much for your help, @asg017! 🙏 Really appreciate your prompt replies and guidance!

Hi, I have the same issue. What is the current best practice to insert a new row when it's not possible to know the next rowid to insert ?
I could work around something like querying the max rowid before each insertion, but doing this i'm unsure it will be safe with concurrency if another session is inserting while i'm getting the max rowid. Locking the table does not sound very practical either.


Collect platform logs for AKS clusters

Rule request
Suggested rule change
Enable capture of platform diagnostics logs.
Platform monitoring
Collect resource logs
Applies to the following
The rule applies to the following:

Resource type: Microsoft.ContainerService/managedClusters

Related to #882

@BernieWhite Should we call this rule Azure.AKS.PlatformLogs to be more explicit?
Also just checking if we would cover all these log categories which are not included in Azure.AKS.AuditLogs:

cluster-autoscaler
kube-apiserver
kube-controller-manager
kube-scheduler

And metric:s

AllMetrics

@ArmaanMcleod Make sense to me, that is the recommended starting point.
You could make it configurable. Some of these logs are considerable it's fairly likely that some customers would want to be selective about the list.

@BernieWhite No worries.
I can probably create a configuration like this to enable/disable the catogories inside the rule:
AZURE_AKS_ENABLED_PLATFORM_LOG_CATEGORIES = @{
        Logs = @{
            'cluster-autoscaler' = $True
            'kube-apiserver' = $True
            'kube-controller-manager' = $True
            'kube-scheduler' = $True
        }
        Metrics = @{
            'AllMetrics' = $True
        }
    }

@ArmaanMcleod You could try it as an array of categories using GetStringValues. That might be slightly cleaner to configure.
https://github.com/microsoft/PSRule/blob/main/docs/concepts/PSRule/en-US/about_PSRule_Variables.md#configuration
https://github.com/microsoft/PSRule.Rules.CAF/blob/main/src/PSRule.Rules.CAF/rules/Baseline.Rule.yaml


Deployment

##User Story
As a boot camp student,
I want the prework notes to be structured on a webpage,
So that I can easily find and read the information.
##Acceptance Criteria
GIVEN a Prework Study Guide website,
WHEN I visit the website using the URL,
THEN I can access my website from any browser

what to in this issue?


[table] incorrect title of row actions

Describe the bug
The title that appears on hover on the overflow button's menu items is [object, object] when it probably should use labelText instead.

To Reproduce
Steps to reproduce the behavior:

Go to https://carbon-addons-iot-react.com/?path=/story/watson-iot-table--stateful-example-with-expansion-and-column-resize
Click on the row action button of any row
Hover one of the menu items

Expected behavior
I expect the actions labelText to be displayd
Environment/versions:

OS: [MacOS]
Browser: [chrome]

:tada: This issue has been resolved in version 2.79.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Teensy MicroMod

Add support for the soon to be release Teensy MicroMod
by Sparkfun
I have built the code, retail only and have tested it out both
with Arduino IDE as well as with SublimeText
after @defragster fixed up the TSET stuff :D
Hopefully I did not mess up too badly
Note this is the Pull Request associated with issue #75

I've merged this manually with some code style fixes.


Get rid of nightly

Refactoring energymech and weechat to not use slice_patterns would be enough to use stable and avoid clap-rs compilation catastrophes

b082a83 switched from nightly for most compilation targets.
musl still requires nightly because of some odd linking error on stable, but this is a decent compromise.


Optimal way to listen to multiple ports

OS: Ubuntu 20
Go version: 1.18
gnet version: v2.1.1

Hello, what is the correct way to listen to multiple ports (> 255, tcp)? Is it necessary to call gnet.Run with multicore=false or what is the correct way?

Run multiple processes or run multiple gnet.Run() in one process.

With default settings? Or is it better to change something?

Up to you, better to run some benchmark tests before you launch it to production.

For those who will solve a similar problem - I do not recommend creating a lot of listeners, it creates a lot of threads and it comes out not effective. I recommend redirecting everything to 1 port using iptables/redirect and fwmark


September API Generated

Contributing to the Azure SDK
Please see our CONTRIBUTING.md if you are not familiar with contributing to this repository or have questions.
For specific information about pull request etiquette and best practices, see this section.

Could you please resolve the failures in the pipelines?
Also please add some information about your update to the changelog.md file

API change check
APIView has identified API level changes in this PR and created following API reviews.
Azure.ResourceManager.MobileNetwork


Combining efforts

We've got a project, 18F/hub, that makes use of our 18F/jekyll_pages_api plugin to generate a lunr.js server-side search corpus. Now that we're looking to add the functionality to other sites, I've stumbled upon this existing plugin and wondered if there's an opportunity for us to contribute to your gem rather than roll our own.
That said, I have started the 18F/jekyll_pages_api_search repository that contains our server-side logic, and we're trying to find a way to make the JavaScript setup easier. We've also got tests in place for our existing 18F/jekyll_pages_api and 18F/jekyll_pages_api_search plugin logic.
Would you be interested in having us send a bunch of pull requests your way?
cc: @afeld

Bump!


Docker run fails

Environment
Self-Hosted (Docker)
Version
latest
Describe the problem
Hello
Just gonna put this here.
Docker compose runs fine.
 Check if the specified host path exists and is the expected type.

Additional info
No response
Please tick the boxes

[X] You are using a supported version of Dashy (check the first two digits of the version number)
[X] You've checked that this issue hasn't already been raised
[X] You've checked the docs and troubleshooting guide
[X] You agree to the code of conduct

Hey so
I'm a noob at Docker
Now I'm tried  mounting a volume to /app/public but it gets overwritten by the empty directory on the host, and dashy doesn't start.  Mounting a file with -bind also gave the same error.
How do you guys do it to keep the conf file.  I guess I don't need it I can just download it from the UI after I edit it. Should I even try mounting volumes for this?  All I can think of is copy all the files from /app/public to the host and then mount the folder.
Another thing, I followed the instructions for self singed SSL, to mount a volume to /etc/ssl/certs/dashy-priv.key , but there is no /etc directory just /app , where should the directory be mounted to? This will be on LAN, can't have public access so my other option is to use nginx proxy and have SSL there, but I wanted to make my life easier but made it harder.

Looks like it's being mounted as a directory, when a file is expected

Yeah because the file already exists inside.
Hey you're the creator, awesome app thanks :)


Ci

Adding Library to CI

https://github.com/mikalhart/TinyGPSPlus
Tiny GPS Plus Library

Thanks a lot @platisd


Escape single quotes on copying as a curl script

And added the test of that command.
I've already created an issue about this. See: #324

@lmenezes
Could you look through this PR?


TFS 2018 Package Feed SemVer 2.0 Metadata Not Supported

When pointing to the TFS 2018 package feed configured as a passthrough for NuGet, the nuget.frameworks.5.0.0.nupkg package produces the following error.
The package is invalid: The package version had build metadata.  We do not support versions with build metadata.
This is not the only package to produce this error. It appears any package that has SemVer 2.0 metadata fails to download or cache in the package feed.
The package feed extension for TFS 2018 On-Prem needs to be updated to not fail in this scenario.

@StephenRSkinner -- Thanks for your feedback; we appreciate it. To make sure we have all the information needed to triage your issue, please let us know which topic you’re referencing, or provide more context around the general task.

What additional information do you need? TFS 2018 Package Feed. Right there in the first sentence. Please re-open and fix.


name 'CACHE_MANAGER' is not defined

System Info
text-generation-inference 1.0.1
python 3.9
when i want to warmup model directly by:
next_batch = model.batch_type.from_pb(default_pb_batch, tokenizer, torch.float16, torch.device("cuda"))
size = model.warmup(next_batch)
find error: name 'CACHE_MANAGER' is not defined
i can't find the reason
Information

[X] Docker
[ ] The CLI directly

Tasks

[ ] An officially supported command
[X] My own modifications

Reproduction
1 creat a FlashCausalLMBatch
2 Initialization model (llama 13B)
3 warmup batch
Expected behavior
can you tell me the error from where and how can i deal with it

What GPU are you using.
You're likely to be running an old GPU/cuda version that doesn't support the ops it's trying to load.
Please reopen an issue and share the entire template information suggested.


Rename application according to vendor and package

I think you're looking at the wrong branch. ;)
The rename is taking place for 2.x, on the master branch.

https://github.com/FriendsOfPHP/PHP-CS-Fixer/blob/master/composer.json#L2

So, sorry :)

No worries. :)

awesome !

@keradus Co w tym niezwykłego? ;)

Widziec rodaka uzywajacego tego narzedzia ;)
// To see fellow-countryman here ;)


#312 Iterate through dependsOn when creating extraProperties dictionary in Generator code

Updated the GetExtraProperties method to iterate over the array of DependsOn to extract all keys and values.
Closes #312

LGTM if tested and works. Just some clarification with code comments


Update dependencies

As a note:
go 1.21

toolchain go1.21.1

was automatically brought in while updating the dependencies.

integration test failure is a known flaky test


Load Biosample dataset and expose through API

We want to load the biosampleIndex that @Tobi1kenobi has created in #3445. Actions:

[x] Create a version of the dataset in JSONL (pyspark write.json)
[x] Provide the schema of the dataset in this ticket
[x] Load the index in OpenSearch using the provided schema
[x] Use the index to resolve the biosampleFromSourceId in current StudyIndex #3357

Note: @jdhayhurst no need to expose the index at the API root-level for now. We don't have a good use case for that.

@Tobi1kenobi , could you please save a biosample dataset in json and share it with @jdhayhurst? Also pasting a .printSchema() under this ticket would help to know what fields are going to be picked up. The backend than can start working on the ingestion.

Sure thing, see here for the schema @jdhayhurst:
root
 |-- biosampleId: string (nullable = true)
 |-- biosampleName: string (nullable = true)
 |-- description: string (nullable = true)
 |-- xrefs: array (nullable = true)
 |    |-- element: string (containsNull = true)
 |-- synonyms: array (nullable = true)
 |    |-- element: string (containsNull = true)
 |-- parents: array (nullable = true)
 |    |-- element: string (containsNull = false)
 |-- ancestors: array (nullable = true)
 |    |-- element: string (containsNull = true)
 |-- children: array (nullable = true)
 |    |-- element: string (containsNull = false)
 |-- descendants: array (nullable = true)
 |    |-- element: string (containsNull = true)

Subset of the dataset in JSONL:
{"biosampleId":"CL_0000653","biosampleName":"podocyte","description":"A specialized kidney epithelial cell, contained within a glomerulus, that contains \"feet\" that interdigitate with the \"feet\" of other podocytes.","xrefs":["BTO:0002295","FMA:70967","ZFA:0009285"],"synonyms":["epithelial cell of visceral layer of glomerular capsule","glomerular podocyte","glomerular visceral epithelial cell","kidney podocyte","renal podocyte"],"parents":["CL_0002522","CL_1000450"],"ancestors":["CL_1000450","CL_0002522"],"children":["CL_4030008","CL_0002525","CL_0002523"],"descendants":["CL_0002523","CL_0002525","CL_4030008"]}
{"biosampleId":"CL_0000654","biosampleName":"primary oocyte","description":"A primary oocyte is an oocyte that has not completed female meosis I.","xrefs":["BTO:0000512","FMA:18645"],"synonyms":["primary oogonium"]}
{"biosampleId":"CL_0000655","biosampleName":"secondary oocyte","description":"A secondary oocyte is an oocyte that has not completed meiosis II.","xrefs":["BTO:0003094","FMA:18646"],"synonyms":["primary oogonium"],"parents":["CL_0000023"],"ancestors":["CL_0000023"]}
{"biosampleId":"CL_0000656","biosampleName":"primary spermatocyte","description":"A diploid cell that has derived from a spermatogonium and can subsequently begin meiosis and divide into two haploid secondary spermatocytes.","xrefs":["BTO:0001115","CALOHA:TS-2194","FMA:72292"]}
{"biosampleId":"CL_0000657","biosampleName":"secondary spermatocyte","description":"One of the two haploid cells into which a primary spermatocyte divides, and which in turn gives origin to spermatids.","xrefs":["BTO:0000709","CALOHA:TS-2195","FBbt:00004941","FMA:72293"]}
{"biosampleId":"CL_0000658","biosampleName":"cuticle secreting cell","description":"An epithelial cell that secretes cuticle."}
{"biosampleId":"CL_0000659","biosampleName":"eggshell secreting cell","description":"An extracellular matrix secreting cell that secretes eggshell."}
{"biosampleId":"CL_1000451","biosampleName":"obsolete epithelial cell of visceral layer of glomerular capsule"}

Out of curiosity, where do these come from? Indeed, they are strange-looking

So it's a combination of things. Firstly there are ontology descriptors in the JSON as nodes e.g.
{
      "id" : "http://purl.obolibrary.org/obo/uberon/core#defined_by_ordinal_series",
      "type" : "PROPERTY",
      "propertyType" : "ANNOTATION",
      "meta" : {
        "comments" : [ "classes that are defined by relative position counting from first in a series of elements along an axis in an individual organism rather than by strict homology" ]
      }
    }

But there are also some other things like a few (~10) genes:
{
      "id" : "http://www.ncbi.nlm.nih.gov/gene/396351",
      "type" : "CLASS"
    },

Other than the genes most of these instances could be caught by filtering for type == 'CLASS".
The id == name is a result of a discussion with @DSuveges to have neither be nullable so I do f.coalese(id, name).
I was afraid to break potential relationships before but I don't think it's a big deal to drop these.

I think we will have to be pragmatic here and try not to build code that it's ad hoc or might not be scale for future cases.

@jdhayhurst is there any real issue with these or it was just flagging potential problems in the data?
@Tobi1kenobi, if you visualise the ontology (e.g. using the app Protégé), is there any obvious branch we should eliminate?

Unless there is any obvious thing we need to fix, I would continue and see what surprises the future brings

Perhaps everything not under anatomical entity? But it's not clear-cut:

If nothing is breaking, I would lean towards inclusiveness or at least minimal exclusiveness (such as dropping those with type != "CLASS"). As you say, ad-hoc solutions won't make sense for future ontologies and I think any attempt to carefully curate the ontologies would be more effort than it's worth, for our purposes.


Error opening imported title

Steps to reproduce

Imported ePub title (Windows 11 guide) with success
When trying to open it, get error

Expected behaviour
Title opened
Actual behaviour
Build version: 4.3.0
Current date: 2024-10-28 20:32:14
Device: Google Pixel Tablet
OS version: Android 15 (SDK 35)
Stack trace:
java.lang.OutOfMemoryError: Failed to allocate a 134217744 byte allocation with 55289600 free bytes and 52MB until OOM, target footprint 268435456, growth limit 268435456
at C6.b.b(Unknown Source:15)
at A.w.W(Unknown Source:21)
at C6.e.L0(Unknown Source:50)
at C6.p.a(Unknown Source:12)
at S3.h.a(Unknown Source:27)
at C6.p.D0(Unknown Source:151)
at C6.p.l(Unknown Source:66)
at x6.n.a(Unknown Source:29)
at C6.p.D0(Unknown Source:151)
at C6.p.l(Unknown Source:66)
at S3.b.a(Unknown Source:88)
at C6.p.D0(Unknown Source:151)
at Q3.j.t(Unknown Source:397)
at Q3.j.k(Unknown Source:12)
at Z2.d.a0(Unknown Source:4)
at k6.y.A(Unknown Source:73)
at h4.h.t(Unknown Source:217)
at D4.a.i(Unknown Source:8)
at k6.E.run(Unknown Source:112)
at h3.b.run(Unknown Source:114)
at r6.i.run(Unknown Source:2)
at r6.a.run(Unknown Source:91)
Suppressed: p6.g: [B{Cancelling}@98cb8d8, Dispatchers.IO]
Device name
Pixel Tablet
Android version
Android 15
Myne version
4.3.0
Device logs
No response
Additional information
No response

I'll take a look, a bit busy recently. Thanks for reporting.

Here's the link
I'll remove file in the next 24 hrs

Any news, did you identify the issue?

Any news, did you identify the issue?

Yes, apparently the book is very large and contains images and other content, so parsing the entire book at once (as it does currently) causes it to hit the memory limit enforced by the system, leading to an OOM error. I’ve been a bit busy recently due to some real-life matters, so I haven't had much time to work on my projects. I'll try to fix this issue as soon as I can. Thanks for understanding! :)

Appreciated, thx. Take your time.


[Video player] design & design specs for additional states

Overview
Additional Information

See the epic for the overarching descriptions of the work.
Design investigation issue (#5681 )

Acceptance Criteria

[ ] Designs are approved
[ ] Final designs are available
[ ] A Sketch file is updated with the Video Player design and specs
[ ] The design specs and pdf version are added to the Video Player Box folder
[ ] Add Box folder link to the website content if it exists

@shixiedesign There should be a link in this issue or the epic to the design specs, but I don't see one.


(Reagent) Minor blood and uncooked protein rework

About the PR

See attached images, makes these reagents dangerous to humans, and feed non-humans.
Blood metabolizes into uncooked proteins at a 1:0.5 rate, which is also limited by uncooked proteins being metabolized into 0.5 proteins in non-humans.
humans trying to metabolize uncooked proteins will be poisoned with a 10% chance to vomit.
Because the blood will not all be turned into uncooked proteins, this will help reduce the amount of food poisoning they get! (Wow realism!)
Humans will see medium size, red popup indicating they are sick from what they consumed if they are metabolizing this dangerous food.
I also cleaned up duplicate values in SpiderBlood by making it a child of Blood.
Also minor change but I made the reagents Food/Drink so they're metabolized by the stomach and not the heart. (In theory anyways, organs don't do anything...)
Why / Balance

Stops humans from drinking blood off the floor for the most part. Also opens up uncooked proteins effects to other species that can consume uncooked protein with no issue prior to this PR (Slimes will be able to gain food from uncooked protein for example)
This also indirectly buffs non humans by allowing them to consume blood, which although is a very, very, weak food source, can still be considered.
Also affects humans eating raw meat and the like, as they contain uncooked proteins.
Also reduces the amount of poison humans will take indirectly, as they will have the chance to vomit.
Media

[X] I have added screenshots/videos to this PR showcasing its changes ingame, or this PR does not require an ingame showcase

Changelog

:cl: Whisper

add: Blood when consumed metabolizes into uncooked proteins, and sates thirst of non-humans
add: Non-humans will have a small amount of hunger sated when consuming uncooked proteins.
tweak: Humans will take poison damage with a chance to vomit when metabolizing uncooked protein.
tweak: Humans take less damage from uncooked proteins (2->1)
add: Humans will "feel sick" when they metabolize uncooked proteins.

I have drunk large amounts of blood in my life and have never been poisoned by it.

I have drunk large amounts of blood in my life and have never been poisoned by it.

You probably didn't feel too great after doing so, or at least normally you wouldnt

I have drunk large amounts of blood in my life and have never been poisoned by it.

human blood?

drinking blood should turn into uncooked proteins not injecting
humans should get human blood
injecting human blood into humans should restore blood
injecting wrong blood should give hemotransfusion shock from fish game
blood types would be easy to implement with reagent data since its properly stored now, could then use that for blood type shock from fish game

injecting wrong blood should give hemotransfusion shock from fish game

AHTR should be fatal if not corrected fast

I have drunk large amounts of blood in my life and have never been poisoned by it.

human blood?

Yes.

Yes. Large amounts of human blood.

why?

well you can do a few of them by just making blood damage stuff be in drink metaboliser effect instead of poison
then have restoring blood be in medicine effect

well you can do a few of them by just making blood damage stuff be in drink metaboliser effect instead of poison then have restoring blood be in medicine effect

I'm pretty sure there would be no difference because everything gets sent to and handled by chemstream and not the organs themselves, unfortunately

no drink is just metabolised by the stomach

no drink is just metabolised by the stomach

https://github.com/space-wizards/space-station-14/assets/121047731/57461ab4-09db-4c82-bda4-65aecfdb4881

I have drunk large amounts of blood in my life and have never been poisoned by it.

human blood?

Yes. Large amounts of human blood.

why?

we are always watching

Added a message humans will see when they drink these reagents

So a new issue just came up, dwarves don't use the human metabolizer, they have a few unique interactions. Thus meaning dwarves would have no issues drinking blood or uncooked protein. I'm unsure if this should be left as is, I don't know the anatomy of a dwarf, so I'm not sure if they'd have sensitive stomachs or not.

I have drunk large amounts of blood in my life and have never been poisoned by it.

Unless its half a litre in a sitting its not “large” amounts.
Drinking blood is toxic, a biohazard (when pr?) in most cases and your stomach doesn't like either.
Drinking blood off the floor by itself is bad enough, but I disagree with the implementation here - literally injecting blood (back) into a body causes the aforementioned effects.

Do small amounts of toxin damage heal themselves, though? If they don't, then this literally just poisons you - doesn't matter about dosage. In SS14 without self-healing one could consume 1 drop of blood per day and die on day 100 because they'd be at 100 toxin damage.

I have drunk large amounts of blood in my life and have never been poisoned by it.

Unless its half a litre in a sitting its not “large” amounts.
Drinking blood is toxic, a biohazard (when pr?) in most cases and your stomach doesn't like either.
Drinking blood off the floor by itself is bad enough, but I disagree with the implementation here - literally injecting blood (back) into a body causes the aforementioned effects.

Do small amounts of toxin damage heal themselves, though? If they don't, then this literally just poisons you - doesn't matter about dosage. In SS14 without self-healing one could consume 1 drop of blood per day and die on day 100 because they'd be at 100 toxin damage.

There was a recent pr for passive healing, not sure if it applies to all damage types or which types it does
Theres not very many scenarios where youd be drinking blood in ss14 aside from puddles, and if not, its in a container in which case the player is likely drinking a lot and will discover this was not a great idea
Youll also not be entirely poisoned by the entire contents of what you drank, as theres still a chance the body will react by vomitting.

I have drunk large amounts of blood in my life and have never been poisoned by it.

Unless its half a litre in a sitting its not “large” amounts.
Drinking blood is toxic, a biohazard (when pr?) in most cases and your stomach doesn't like either.
Drinking blood off the floor by itself is bad enough, but I disagree with the implementation here - literally injecting blood (back) into a body causes the aforementioned effects.

Do small amounts of toxin damage heal themselves, though? If they don't, then this literally just poisons you - doesn't matter about dosage. In SS14 without self-healing one could consume 1 drop of blood per day and die on day 100 because they'd be at 100 toxin damage.

There was a recent pr for passive healing, not sure if it applies to all damage types or which types it does
Theres not very many scenarios where youd be drinking blood in ss14 aside from puddles, and if not, its in a container in which case the player is likely drinking a lot and will discover this was not a great idea
Youll also not be entirely poisoned by the entire contents of what you drank, as theres still a chance the body will react by vomitting.

Alternatively, it would also be a 5 minute adventure to limit damage to a certain amount of blood consumed.
Uncooked proteins seems fair game because youll only find it in raw meat and mice
It actually might even be a better practice to have blood metabolise into uncooked proteins as a human, so we dont need to code duplicate effects here

Gonna set this to draft and make that change.
Also looking for more feedback on if these should even poison you at all; its not really part of my PR, uncooked protiens always did 2 damage to humans

Ok so basically I realized I made blood have the exact same effect as uncooked protein, so I just condensed the yml and incidentally made metabolism more realistic by having blood get metabolized into uncooked protein!

mmmmh yes, self brute medication, food and drink by using your own lizard blood

mmmmh yes, self brute medication, food and drink by using your own lizard blood

Youd be doing significantly more damage to yourself than youd be healing, let alone of you can even get a decent anount of healing out of it, but sure, you could look at ut that way. Slimes can actually do this with very little downsides currently.

New “drink blood” meta as a lizard :3

It's a silly gimmick at best, food healing has always been really shit, and considering you only get a fraction of protiens per unit it will be significantly lower...
If it really is as strong as people are thinking it will be its very easy to simply lower the metabolism amount to further reduce how much protiens are gained from it

It's a silly gimmick at best, food healing has always been really shit, and considering you only get a fraction of protiens per unit it will be significantly lower...
If it really is as strong as people are thinking when we see it live, it will be its very easy to simply lower the metabolism amount to further reduce how much protiens are gained from it

i wasn’t talking about healing. I was talking about the satiating hunger bit lol

i wasn’t talking about healing. I was talking about the satiating hunger bit lol

It should be the same output in theroy, since it goes blood>uncooked protien>protien in animals, where each transition reduces the total amount of reagent consumed

Whisper chem balancer hasnt failed me yet

if this goes well with the players I'll replicate it into a proper diet restriction system so lizards can go back to eating whatever they want (with consequences)

if this goes well with the players I'll replicate it into a proper diet restriction on foods so lizards can go back to eating whatever they want (with consequences)

I figure I should say that there needs to be some system other than every food item from manually being a “food group” reagent, as that’s arguably worse for maintenance than what we currently have. If that’s doable, then go for it.

I figure I should say that there needs to be some system other than every food item from manually being a “food group” reagent, as that’s arguably worse for maintenance than what we currently have. If that’s doable, then go for it.

It will be as simple as I made telecoms I promise

I figure I should say that there needs to be some system other than every food item from manually being a “food group” reagent, as that’s arguably worse for maintenance than what we currently have. If that’s doable, then go for it.

It will be as simple as I made telecoms I promise

I'm sure we're not looking to replicate food contents 1:1 with real life anyways.


Poor performance with long range spatial contingencies

I'm finding that DeepPoseKit underperforms DeepLabCut (both used within the DPK package) when there are long range spatial contingencies in the data. See the image below, where the left and right paw in the top view are swapped (this appears to happen less frequently with DLC). The bottom view is useful here for resolving ambiguities in the top view; I think deeper networks (DLC) may have an easier time with these long range contingencies due to greater receptive field size at the outputs. Perhaps there are tweaks I can make to DPK that solve the problem though.

Here is my augmentation (notice no FlipAxis):
augmenter = []
sometimes = []

sometimes.append(iaa.Affine(scale={"x": (0.98, 1.02), "y": (0.98, 1.02)},
                            translate_percent={'x': (-0.02, 0.02), 'y': (-0.02, 0.02)},
                            shear=(-8, 8),
                            order=ia.ALL,
                            cval=ia.ALL,
                            mode=ia.ALL)
                 )
sometimes.append(iaa.Affine(scale=(0.9, 1.1),
                            mode=ia.ALL,
                            order=ia.ALL,
                            cval=ia.ALL)
                 )
augmenter.append(iaa.Sometimes(0.75, sometimes))
augmenter.append(iaa.Affine(rotate=(-5, 5),
                            mode=ia.ALL,
                            order=ia.ALL,
                            cval=ia.ALL)
                 )
augmenter = iaa.Sequential(augmenter)

And here is the model configuration:
{'name': 'StackedDenseNet',
 'n_stacks': 2,
 'n_transitions': 6,
 'growth_rate': 32,
 'bottleneck_factor': 1,
 'compression_factor': 0.5,
 'pretrained': True,
 'subpixel': True}

Thank you in advance for the help,
Rick

It's hard to say because there are many hyperparameters at play, and we did not do any type of parameter sweep or architecture search in the paper.
The size of the receptive field is plenty large, as n_transitions indicates the number of times the images are downsampled within the network. In this case the minimum receptive field is 2**6 * (3, 3) = (192, 192), which is actually much larger due to stacked 3x3 convolutions and a 7x7 convolution in the first layer of the network. In fact, it may be the opposite problem, where the network is too reliant on global geometry.
I would first try adjusting n_transitions to be smaller. The default is -1, which downsamples the images as many times as possible (6 in this case). However, you may need to increase the growth_rate or n_stacks to increase the number of parameters.
Another way to alleviate this problem may be to apply more aggressive augmentation for translating (and perhaps rotating) the image. This forces the network to rely more on local features, or at least makes the global features more invariant to translation.
If you're using a custom data generator, it may also be useful to set your posture graph to connect the corresponding body parts in the top and bottom of the image. This explicitly forces the network to learn the relationships between them. Adding these confidence maps should be relatively inexpensive for running inference.
The pretrained option is also experimental and hasn't been thoroughly benchmarked yet, so there may be a bug how this part of the model is implemented. It might be worth trying pretrained=False if you haven't already.

Quick update: I took your suggestions and 1) turned off pre-training and 1) used more severe augmentation (in particular, increasing the resizing to range from .6->1.4). Performance is much improved. I was already connecting features in the top and bottom views with the skeleton per your suggestion. I may do a grid search, in which case I'll post the results here. Thanks!


Install docs fix: MMCV >= 1.3.8, < 1.4, but not 1.3.3

Fixes MMCV==1.3.3 is used but incompatible. Please install mmcv>=1.3.8, <=1.4.0.
BTW, here's some code I cooked up that may be of interest to other users.  Didn't put in in PR itself but would be happy to do so:
import torch, re
tv, cv = torch.__version__, torch.version.cuda
tv = re.sub('\+cu.*','',tv)
TORCH_VERSION = 'torch'+tv[0:-1]+'0'
CUDA_VERSION = 'cu'+cv.replace('.','')

print(f"TORCH_VERSION={TORCH_VERSION}; CUDA_VERSION={CUDA_VERSION}")

!pip install -qq mmcv-full=="1.3.8" -f https://download.openmmlab.com/mmcv/dist/{CUDA_VERSION}/{TORCH_VERSION}/index.html --upgrade
!pip install mmdet -qq

Thanks a lot Scott for your contributions.
MMLabs recently added a new package that can automatically handle both mmcv and mmdet installation by detecting which torch, torhvision, and cuda versions are installed.
I submitted a PR to include that but we are facing unrelated issues (related to a zip file: sigh).
Here is the recommended way of mmdet/mmcv installation:
!pip install openmim -q
!echo "- Installing mmcv"
!mim install mmcv-full
!echo "- Installing mmdet"
!mim install mmdet

@ai-fast-track thoughts on this one?


GEOMESA-709 Speeding up delimited exports

In the cloud I was testing, delimited export was much slower than bin export. This was due to the map creation, update, etc for each feature. After this ticket, delimited export was just as fast as bin export, which means the client code was no longer the bottleneck in this particular cloud.
idAttribute, latAttribute, lonAttribute, dtgAttribute are all bin export specific, and don't need to be considered here. As a future ticket, we might want to break apart bin export from other exports so that those arguments aren't confusing.

this looks good to me :+1: .

Created a PR for breaking out bin command: https://geomesa.atlassian.net/browse/GEOMESA-714

Also looks good to me.

Merged as 8af364710c120eb3d979a164b41f5f2964c8caf0 on 1.5.

Committed as e6768bef2ee29a3a62f462857f25341bb68d9502 on 1.5.


browser language detection causes app to error when user is not using a supported language

Subject of the issue
When using
$translateProvider.useLoader('$translatePartialLoader' ...
with
$translateProvider.registerAvailableLanguageKeys(['en', 'ja'], {
    'en*': 'en',
    'ja*': 'ja'
  }).determinePreferredLanguage();

and
$translateProvider.fallbackLanguage('en');
Angular-translate still looks for language files that are not registered.
Is this the expected result/behavior?
Your environment

version of angular-translate - 2.11.0
version of angular 1.5.5
which browser and its version - IE11, Chrome Version 49.0.2623.87 m

Steps to reproduce
Set your preferred browser language to one other than 'en' or 'ja' (these two are available in the application, I used 'es')
Run this plnkr [(https://plnkr.co/edit/VeeJSTK1xKUNSkv7CzVz?p=preview)]
Expected behaviour
The app should load the fallback language when the user's preferred language is not registered
Actual behaviour
The application errors because it is looking for a .json that doesn't exist. It doesn't even load the fallback language.

Register a complete wildcard element at the end of the registerAvailableLanguageKeys
...,
'*', 'de'
})

did you try this already?

@tspaeth Adding a wildcard to the end of registerAvailabelLanguageKeys does indeed fix the issue of the loader looking for non-existent .json file.
If this is the intended use, it should be added to the documentation.

Doesn't the suggested workaround have unintended consequences?
Let's say I use:
$translateProvider.registerAvailableLanguageKeys(['en', 'ja'], {
    'en*': 'en',
    'ja*': 'ja',
    '*': 'en'
  }).determinePreferredLanguage();

And a user comes with a browser configured with ['de', 'ja']... we should pick up 'ja' as a second preference, but with the '*' entry, the user would get 'en'.

The fix for the docs has been added (canary branch, unreleased).

Doesn't the suggested workaround have unintended consequences?

No. The resolver is working in the intended way.
But I know what you are meaning: Well, we can try to add an alternative way of finding the language -- PR welcome ;) But this is slightly more complex than the existing way.

Corresponding pr is closed, docs are fixed.


Added ability to bypass mana max in ModifyManaAction

Submitting this quick PR based on a feature I thought might be useful. I'd like to sell a potion in BetterPotter that would buff max mana but couldn't because the ModifyManaAction caps no matter what.
A bypass_mana_max flag could be useful in my opinion but perhaps wasn't implemented for a reason? Let me know!

I'm still wondering about the setManaMax call- is that really what you want?

I assumed that setManaMax would raise the mana_max value on the mage.  The permanent change is my intention actually. A high-value potion that would raise the mana max by let's say ten would fit with things like Wit-Sharpening Potions from the lore.

I think that should be a separate action then for clarity (e.g. ModifyMaxMana), or just use the ModifyProperties action.
If I were using this action and I wanted to "bypass mana max" but it really changed the mana max I would surprised by that, and it's a very difficult thing to fix once unleashed on players. I see this as a recipe for disaster.

Is there a way to calculate the current mana max plus a certain amount using the ModifyProperties? If so I'd definitely use that over trying to add something you see as potentially broken.

IIRC that action can use equations so I think "x+100" would work?

Okay, this can definitely be done through ModifyProperties so I'm going to go ahead and close this PR.


Count subschemas before memory allocation

Description
Schemas which have more than 512 subschemas will throw an IndexOutOfRangeException during registration.
cc: @Laniusexcubitor
Links

Resolves #778
Checks

[x] I have read and understand the Code of Conduct and Contribution Guidelines.

I'm not sure what the failure is here.  It seems that when I run the entire test suite, I get a failure, but any portion of it (including various combinations of subsuites) passes.  I'm not sure how the latest commit could affect it.  Maybe it's just flaky.

Looking at the test run from the Action, it looks like it's just that one flaky datagen test.


[#1029] Test case for updateCollection with inline CTE

Test case for #1029

Moved over to https://github.com/Blazebit/blaze-persistence/pull/1031


Circle drawing does not have geometry when converting to GeoJSON or WKT

The new circle drawing is great. But when I try to save the feature into database by converting it into GeoJSON or WKT, a problem occurred: NO Geometry found.
Here is the piece of the code (slightly modified from the feature-drawing example)
draw.on('drawend', function (evt) {
console.log(evt.feature);
var wktParser = new ol.format.WKT();
var features = source.getFeatures();
//wkt = wktParser.writeFeatures(features);
//console.log('wkt=' + wkt);
var parser = new ol.format.GeoJSON();
var featuresGeoJSON = parser.writeFeatures(features);
console.log(featuresGeoJSON);
map.removeInteraction(draw);
typeSelect.value = '';
}, this);
When the type is circle, here is the output of the GeoJSON:
{"type":"FeatureCollection","features":[{"type":"Feature","geometry": {"type":"GeometryCollection","geometries":[]},"properties":null}]}
If converting to WKT, it throws an exception (seems caused by couldn't find the geometry):
Uncaught AssertionError: Assertion failedol-debug.js:4290
goog.asserts.DEFAULT_ERROR_HANDLERol-debug.js:4325
goog.asserts.doAssertFailure_ol-debug.js:4354
goog.asserts.assertol-debug.js:97341
ol.format.WKT.encode_ol-debug.js:97535
ol.format.WKT.writeGeometryTextol-debug.js:97486
ol.format.WKT.writeFeatureTextol-debug.js:97509
ol.format.WKT.writeFeaturesTextol-debug.js:88905
ol.format.TextFeature.writeFeatures
There is no problem if the type is polygon.

This is because none of the common formats supports circle geometries. I have plans to add an option to circle drawing to draw a regular polygon instead. If you configure that with many edges, you'll get an approximated circle as polygon, which can be serialized. Stay tuned for that.

see also #3434

Thanks,  ahocevar. I am waiting.
BTW, in OpenLayers 2, there is a function used to draw a circle:
OpenLayers.Geometry.Polygon.createRegularPolygon(origin,radius,sides,rotation);
What's the the same or similar function in OpenLayers 3?

What's the the same or similar function in OpenLayers 3?

See ol.geom.Polygon.circular

Thanks, tsauerwein. But I don't understand the following code:
var wgs84Sphere= new ol.Sphere(6378137);
Where the number 6378137 comes from?

see the explanation here: http://stackoverflow.com/questions/2839533/adding-distance-to-a-gps-coordinate

Thanks, Bart!

Andreas, in addition to configurable number of sides (edges) of the polygon, we can have a default number of sides - that number depends on the radius of the circle. I am trying to use ol.geom.Polygon.circular and the "default" sides to serialize the circle drawn for the users.of my application.

Closing due to lack of activity.


Add test for smconnections

Coverage increased (+2.2%) to 84.877% when pulling 1a5d47506f064eb2a7bef2c38de14f80d614d962 on feature/test-connections into 0021d7ea5b4eda8a534767992c02d49774d65cd7 on master.

Coverage increased (+2.2%) to 84.873% when pulling 1a5d47506f064eb2a7bef2c38de14f80d614d962 on feature/test-connections into 0021d7ea5b4eda8a534767992c02d49774d65cd7 on master.

Coverage increased (+2.08%) to 84.784% when pulling b2ad2058ebb62196c878dc57f12a89442f751b9f on feature/test-connections into 0021d7ea5b4eda8a534767992c02d49774d65cd7 on master.

Coverage increased (+2.2%) to 84.899% when pulling 15cf409fb66dfcf92834f1cc672b1191a6b33959 on feature/test-connections into 0021d7ea5b4eda8a534767992c02d49774d65cd7 on master.

Coverage increased (+2.2%) to 84.899% when pulling a55b79985c1bc8defd1f8fac5c2340d1bcd14d96 on feature/test-connections into 0021d7ea5b4eda8a534767992c02d49774d65cd7 on master.


Update release-notes.md

version 22.2.7

#sign-off

Due to the upcoming Ignite conference, all merging and publishing is on hold until the morning of October 12.
This PR is ready for merge on 10/12.


remoteEntry.js is 245KB. Is it normal?

Hi,
Thanks for the great plugin.
I used Nx workspace, added two angular applications and used this plugin to use module federation feature.
It works just fine.
@angular-architects/module-federation": "^14.0.1"
"@angular/cli": "~13.1.0"
"@nrwl/cli": "13.5.3"

However, the remoteEntry.js is 245 KB is size.
Wondering if this is normal or I am doing something wrong?
In remoteEntry.js file I see a  lot of modules from node_module folder like :
ansi-html-community
events
html-entities
.....

That's quite huge. Is this a production build or a development build?
I've seen quite huge dev builds with quite tiny production counterparts.

It was development build.
Production build is only 6KB.
Thanks for your help.


Port validation error for readiness/liveness probe on InferenceService custom spec

/kind bug
What steps did you take and what happened:
Apply InferenceService v1alpha2 or v1beta1 custom spec with readiness probe and get the following validation error saying "port" is required, however if you specify the port knative validation then fails for not allowing setting the port, so the only walk-around is either skip the validation or set port to 0.
apiVersion: serving.kubeflow.org/v1beta1
kind: InferenceService
metadata:
  name: mnist
spec:
  predictor:
    containers:
    - args:
      - --model_name
      - mnist
      command:
      - python
      - -m
      - xxx
      env:
      - name: STORAGE_URI
        value: xxx
      image: xxxx
      name: kfserving-container
      readinessProbe:
        httpGet:
          path: /v1/models/mnist

error: error validating "tf_serving_lambda.yaml": error validating data: ValidationError(InferenceService.spec.predictor.containers[0].readinessProbe.httpGet): missing required field "port" in org.kubeflow.serving.v1beta1.InferenceService.spec.predictor.containers.readinessProbe.httpGet; if you choose to ignore these errors, turn validation off with --validate=false

What did you expect to happen:
The port is not required for InferenceService build-in framework but this results in a validation error on custom spec, so the port field should be made optional on custom spec as well.
Anything else you would like to add:
[Miscellaneous information that will assist in solving the issue.]
Environment:

Istio Version:
Knative Version:
KFServing Version: 0.5.0-rc2
Kubeflow version:
Kfdef:[k8s_istio/istio_dex/gcp_basic_auth/gcp_iap/aws/aws_cognito/ibm]
Minikube version:
Kubernetes version: (use kubectl version):
OS (e.g. from /etc/os-release):

There's already below code in Makefile:
	#knative does not allow setting port on liveness or readiness probe
	yq d -i config/crd/serving.kubeflow.org_inferenceservices.yaml 'spec.versions[1].schema.openAPIV3Schema.properties.spec.properties.*.properties.*.properties.readinessProbe.properties.httpGet.required'
	yq d -i config/crd/serving.kubeflow.org_inferenceservices.yaml 'spec.versions[1].schema.openAPIV3Schema.properties.spec.properties.*.properties.*.properties.livenessProbe.properties.httpGet.required'
	yq d -i config/crd/serving.kubeflow.org_inferenceservices.yaml 'spec.versions[1].schema.openAPIV3Schema.properties.spec.properties.*.properties.*.properties.readinessProbe.properties.tcpSocket.required'
	yq d -i config/crd/serving.kubeflow.org_inferenceservices.yaml 'spec.versions[1].schema.openAPIV3Schema.properties.spec.properties.*.properties.*.properties.livenessProbe.properties.tcpSocket.required'

But here did not consider custom spec. We need consider custom spec for predictor/explainer/transfomer, for both v1alpha2 and v1beta1.

/assign


CI: Cross-compiling i686-linux-gnu job is broken

Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 libqt5x11extras5-dev:i386 : Depends: libqt5x11extras5:i386 (= 5.12.8-0ubuntu1) but it is not going to be installed
 qtbase5-dev:i386 : Depends: libqt5concurrent5:i386 (= 5.12.8+dfsg-0ubuntu1) but it is not going to be installed
                    Depends: libqt5core5a:i386 (= 5.12.8+dfsg-0ubuntu1) but it is not going to be installed
                    Depends: libqt5dbus5:i386 (= 5.12.8+dfsg-0ubuntu1) but it is not going to be installed
                    Depends: libqt5gui5:i386 (= 5.12.8+dfsg-0ubuntu1) but it is not going to be installed
                    Depends: libqt5network5:i386 (= 5.12.8+dfsg-0ubuntu1) but it is not going to be installed
                    Depends: libqt5printsupport5:i386 (= 5.12.8+dfsg-0ubuntu1) but it is not going to be installed
                    Depends: libqt5sql5:i386 (= 5.12.8+dfsg-0ubuntu1) but it is not going to be installed
                    Depends: libqt5test5:i386 (= 5.12.8+dfsg-0ubuntu1) but it is not going to be installed
                    Depends: libqt5widgets5:i386 (= 5.12.8+dfsg-0ubuntu1) but it is not going to be installed
                    Depends: libqt5xml5:i386 (= 5.12.8+dfsg-0ubuntu1) but it is not going to be installed
                    Recommends: libqt5opengl5-dev:i386 (= 5.12.8+dfsg-0ubuntu1) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

Going to "disable" this job for a while to unblock commit queue.

 libpcre2-8-0 : Breaks: libpcre2-8-0:i386 (!= 10.39-1+ubuntu20.04.1+deb.sury.org+1) but 10.34-7 is to be installed
 libpcre2-8-0:i386 : Breaks: libpcre2-8-0 (!= 10.34-7) but 10.39-1+ubuntu20.04.1+deb.sury.org+1 is to be installed


ENH: support overlay tiles

The new providers (https://github.com/darribas/contextily/pull/66) contain also a set of sources for "overlay" tiles (like Stamen.TonerLabels or OpenMapSurfer.AdminBounds).
Those are tiles with a transparent background that can be added on top of another layer. We can load them, but the problem is that currently, due to the way we are reading the image and storing it as an array, the transparent background gets converted into a black background (of course defeating the purpose of being able to overlay it).
Example:
df = geopandas.read_file(geopandas.datasets.get_path('nybb')).to_crs(epsg=3857)
ax = df.plot(figsize=(9, 9), alpha=0.5)
ctx.add_basemap(ax, url=ctx.providers.Stamen.TonerLabels)
# or
ctx.add_basemap(ax, url=ctx.providers.OpenMapSurfer.AdminBounds)

gives

If we want to support this, we have to investigate if imshow can support transparency (I think yes, by using alpha / RGBA colors, see eg https://matplotlib.org/3.1.1/gallery/images_contours_and_fields/image_transparency_blend.html) and how to read the tiles into an array with those alpha values included.
All providers that are of overlay type can be seen from this query in the leaflet-providers code:
https://github.com/leaflet-extras/leaflet-providers/blob/9eb968f8442ea492626c9c8f0dac8ede484e6905/preview/preview.js#L56-L70

Implemented in #114


How to navigate from step in feature to its implementation ?

Within Karate demo archetype/project enclosed in github, how to navigate from step in feature to its implementation ?

can you please ask these kind of questions on Stack Overflow: https://stackoverflow.com/questions/tagged/karate
I'm sorry this is not clear to me at all.


Reflected year and transfer of copyright

Only the main meta files changed so far. Still needs to be done once for the source code itself.

pls change it everywhere

@Nils-Magnus What's the status here?


feat: skip .gitkeep file while emptyOutDir: true

Description
Prevent deleting .gitkeep file when build.emptyOutDir: true.
Motivation: developer adds .gitkeep to track the empty folder in git. For our case, when we have build.emptyOutDir: true it deletes every file including .gitkeep and loses git track of the empty build folder which can cause issues while deploying and building in some CI / CD platforms since there is no build/dist folder found.
What is the purpose of this pull request?

[ ] Bug fix
[ ] New Feature
[ ] Documentation update
[x] Other

Before submitting the PR, please make sure you do the following

[x] Read the Contributing Guidelines.
[x] Read the Pull Request Guidelines and follow the Commit Convention.
[x] Check that there isn't already a PR that solves the problem the same way to avoid creating a duplicate.
[x] Provide a description in this PR that addresses what the PR is solving, or reference the issue that it solves (e.g. fixes #123).
[x] Ideally, include relevant tests that fail without this PR but pass with it.

I guess it is possible by placing .gitkeep in public directory.

deploying and building in some CI / CD platforms since there is no build/dist folder found.

Could you expand this on this?

Thanks for providing direction on the possible solution with the public directory.
We can close this PR now.


Fix flake test bfv_meta_track

+select * from pg_stat_last_operation join
26   pg_namespace on pg_namespace.oid = pg_stat_last_operation.objid
27   where pg_namespace.nspname = 'bfv_meta_track';
28- count
29--------
30-     1
31-(1 row)
32+ classid | objid | staactionname | stasysid | stausename | stasubtype |               statime               |  oid  |    nspname     | nspowner | nspacl
33+---------+-------+---------------+----------+------------+------------+-------------------------------------+-------+----------------+----------+--------
34+    1259 | 28790 | ANALYZE       |       10 | gpadmin    | AUTO       | Wed Dec 25 20:38:52.263961 2024 PST | 28790 | bfv_meta_track |       10 |
35+    1259 | 28790 | CREATE        |       10 | gpadmin    | TABLE      | Wed Dec 25 20:38:25.097799 2024 PST | 28790 | bfv_meta_track |       10 |
36+    1259 | 28790 | VACUUM        |       10 | gpadmin    |            | Wed Dec 25 20:38:25.620417 2024 PST | 28790 | bfv_meta_track |       10 |
37+    2615 | 28790 | CREATE        |       10 | gpadmin    | SCHEMA     | Wed Dec 25 21:02:33.646391 2024 PST | 28790 | bfv_meta_track |       10 |
38+(4 rows)

One suppose is that oid_wraparound test is before bfv_meta_track test.
Add stasubtype limit , make test stable.
What does this PR do?

Type of Change

[X] Bug fix (non-breaking change)
[ ] New feature (non-breaking change)
[ ] Breaking change (fix or feature with breaking changes)
[ ] Documentation update

Breaking Changes

Test Plan

[ ] Unit tests added/updated
[ ] Integration tests added/updated
[ ] Passed make installcheck
[ ] Passed make -C src/test installcheck-cbdb-parallel

Impact

Performance:

User-facing changes:

Dependencies:

Checklist

[ ] Followed contribution guide
[ ] Added/updated documentation
[ ] Reviewed code for security implications
[ ] Requested review from cloudberry committers

Additional Context

CI Skip Instructions

@yjhjstz & @avamingli  - FYI: bhv_meta_track is failing across main and all PR branches.
Apache Cloudberry Build

ic-good-opt-on
ic-good-opt-off

Apache Cloudberry Build Debug

ic-cbd-parallel

Need a rebase, or revert the previous commit about this case..

done, need another approve.


TS-4514: Transaction hangs when no_dns_just_forward is configured but…

… parent proxy is unresolvable
It doesn't really make sense for the parent selection layer to be aware of the no_dns flag.
Calling code takes the flag into account.

[approve ci]

FreeBSD build failed! See https://ci.trafficserver.apache.org/job/Github-FreeBSD/191/ for details.

Linux build successful! See https://ci.trafficserver.apache.org/job/Github-Linux/103/ for details.
Linux build failed! See https://ci.trafficserver.apache.org/job/Github-Linux/103/ for details.

BSD CI failure appears to be due to compiling the wrong code??
boom.cc:415:21: error: unused variable 'pboom' [-Werror,-Wunused-variable]
BoomGlobalPlugin *pboom = new BoomGlobalPlugin(pregistry);
but boom.cc doesn't contain that line in my branch or in master....

Ya, I think Jenkins is totally busted :-/. I see these things, and I have no idea why:
Multiple candidate revisions
Scheduling another build to catch up with Github-Linux
Checking out Revision 32054742d554c8057370929d44900a73745ee5b8 (origin/pr/36/merge)

I manually triggered building this PR, and then they both completed. I'll keep looking into what is wrong with the auto-triggered builds, this is a huge PITA :-/.

Testing: [approve ci]

Linux build successful! See https://ci.trafficserver.apache.org/job/Github-Linux/109/ for details.

FreeBSD build successful! See https://ci.trafficserver.apache.org/job/Github-FreeBSD/212/ for details.

@ushachar  I think that worked, can you verify that those two builds are as you expected ?

@zwoop  -- Yep, the pulled hashes look right....


go/parser, go/types: remove support for type list syntax (cleanup)

Reminder issue.
We still have some code to support the type list syntax (interface{ type A, B }) in go/parser and go/types.
Filing this to make sure it is cleaned up.
CC @griesemer

Checking in on this issue as it's labeled a release blocker for Go 1.18. Is there any update?

No update. This is a lower priority than other issues, so probably won't be done until we're in the freeze.

This is now a release-blocker. For one, the compiler doesn't actually permit the type list notation anymore (the functionality is disabled) so it's unlikely for go/parser to encounter such code. Secondly, go/types reports an error if it does in fact encounter such code. So no matter how this is sliced and diced, using a type list is invalid code.

@griesemer @findleyr Is there more to do here for 1.18?  Thanks.

@findleyr If this is only about cleaning up/removing unused code, let's move it to 1.19.

Err, sorry for the lack of response on this issue.
This was done in https://go.dev/cl/359135.


Gen art strip cards duplicated

this weird things happened to the gen art strip, not sure if related

Originally posted by @exezbcz in https://github.com/kodadot/nft-gallery/issues/9959#issuecomment-2031091032
from @hassnian

i've seen that happening before, not very often but sometimes when you go from one page to another one,

it's worth creating an issue

don't know how to reproduce

Guess some css is very broken :)

also


gs1.1 outbound mesh quota

Implements
https://github.com/libp2p/specs/blob/master/pubsub/gossipsub/gossipsub-v1.1.md#outbound-mesh-quotas
https://github.com/libp2p/specs/blob/master/pubsub/gossipsub/gossipsub-v1.1.md#heartbeat-maintenance
https://github.com/libp2p/specs/blob/master/pubsub/gossipsub/gossipsub-v1.1.md#spam-protection-measures GRAFT spam protection
Most of these edits made directly in line with the go-libp2p-pubsub impl. https://github.com/libp2p/go-libp2p-pubsub/blob/master/gossipsub.go
I tried to avoid rewriting / adding all features, so there are some conditionals/blocks that aren't yet included (eg: direct peers, graft/prune backoff tracking, px, etc)
Big updates:
_addPeer, _removePeer

add/remove outbound cache for peer

_handleGraft

update to ignore negative score peer grafts
only accept outbound grafts if over Dhi

heartbeat

cache score
graftPeer, prunePeer inline functions
heartbeat maintenance and outbound mesh quota additions

test/gossip.js

tweak second test to be... better

Codecov Report

Merging #91 into gsv1.1 will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           gsv1.1      #91   +/-   ##
=======================================
  Coverage   80.00%   80.00%
=======================================
  Files           1        1
  Lines          10       10
=======================================
  Hits            8        8
  Misses          2        2

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 a30801b...5c6df19. Read the comment docs.


div/mod behaviour

The behaviour of div and mod is currently inconsistent with the respective operators for ints. For example:
import bigints

func divmod(a, b: int): tuple[q, r: int] =
    (q: a div b, r: a mod b)

echo "int:"
echo "  divmod(1, 2): ", divmod(1, 2)
echo "  divmod(1, -2): ", divmod(1, -2)
echo "  divmod(-1, 2): ", divmod(-1, 2)
echo "  divmod(-1, -2): ", divmod(-1, -2)
echo "BigInt:"
echo "  divmod(1, 2): ", divmod(1'bi, 2'bi)
echo "  divmod(1, -2): ", divmod(1'bi, -2'bi)
echo "  divmod(-1, 2): ", divmod(-1'bi, 2'bi)
echo "  divmod(-1, -2): ", divmod(-1'bi, -2'bi)

prints the following:
int:
  divmod(1, 2): (q: 0, r: 1)
  divmod(1, -2): (q: 0, r: 1)
  divmod(-1, 2): (q: 0, r: -1)
  divmod(-1, -2): (q: 0, r: -1)
BigInt:
  divmod(1, 2): (q: 0, r: 1)
  divmod(1, -2): (q: -1, r: -1)
  divmod(-1, 2): (q: -1, r: 1)
  divmod(-1, -2): (q: 0, r: -1)

For ints, division rounds towards 0 and the sign of a mod b is the sign of a. Meanwhile, for BigInts, division rounds towards negative infinity and the sign of a mod b is the sign of b.
I suggest we change the behavior of BigInts to match that of ints.
@def- since you implemented this, did you have a specific reason for implementing it this way?

I think that generaly the motivation to implement it this way is that it doesn't break modular arithmetic. Meaning that if M divides (a-b) then a mod M == b mod M. If one does any sort of math with the integers, the other way (which is usually called remainder) gets in the way.
I think that it is really unfortunate that mod for ints means remainder rather than modulus, but that is to stay.
The ideal state would be there where two operators: rem implementing a remainder and mod implementing a modulo. For both ints and BigInts.

@MichalMarsalek if that’s the case, then shouldn’t the modulo always be positive? After all, $$\mathbb Zn+r = \mathbb Z(-n)+r$$


BHBC-1555

Overview
Links to jira tickets

BHBC-1555

This PR contains the following changes

first cut of generic project management database

This PR contains the following types of changes

[ ] New feature (change which adds functionality)
[ ] Enhancement (improvements to existing functionality)
[ ] Bug fix (change which fixes an issue)
[ ] Misc cleanup / Refactoring / Documentation
[ ] Version change

Checklist
A list of items that are good to consider when making any changes.
Note: this list is not exhaustive, and not all items are always applicable.
General

[ ] I have performed a self-review of my own code

Code

[ ] New files/classes/functions have appropriately descriptive names and comment blocks to describe their use/behaviour
[ ] I have avoided duplicating code when possible, moving re-usable pieces into functions
[ ] I have avoided hard-coding values where possible and moved any re-usable constants to a constants file
[ ] My code is as flat as possible (avoids deeply nested if/else blocks, promise chains, etc)
[ ] My code changes account for null/undefined values and handle errors appropriately
[ ] My code uses types/interfaces to help describe values/parameters/etc, help ensure type safety, and improve readability

Style

[ ] My code follows the established style conventions
[ ] My code uses native material-ui components/icons/conventions when possible

Documentation

[ ] I have commented my code sufficiently, such that an unfamiliar developer could understand my code
[ ] I have added/updated README's and related documentation, as needed

Tests

[ ] I have added/updated unit tests for any code I've added/updated
[ ] I have added/updated the Postman requests/tests to account for any API endpoints I've added/updated

Linting/Formatting

[ ] I have run the linter and fixed any issues, as needed
See the lint commands in package.json
[ ] I have run the formatter and fixed any issues, as needed
See the format commands in package.json

SonarCloud

[ ] I have addressed all SonarCloud Bugs, Vulnerabilities, Security Hotspots, and Code Smells

How Has This Been Tested?
Please describe the tests that you ran to verify your changes.
Screenshots
Please add any relevant UI screenshots, if applicable.

There are a whole bunch of references to biohub that should probably be changed to something else. Looks like Roland was using restoration as the new name for things, which sounds fine.
Some of the file names also reference biohub.

are we making a generic copy? naming wouldn't be an issue. either way...

are we making a generic copy? naming wouldn't be an issue. either way...

Once we have the api and app parts merged in, we can clone the repo to maintain a copy that stays with a more minimal working setup, for future use.
Our original repo already has a mixture of sims and biohub naming, so in this repo we should at least unify all of the naming now while its easy to do. Obviously the schemas could be named anything and still work, but I think its nice if they all match, so future devs don't get confused, etc.


Implement GAX Sinks API helper.

Follows onto #1884.

LGTM! Been reading up on sinks and they are pretty interesting, kind of a weird name for what it does.


[Question]: Why do I have to download pytorch_model.bin twice every time I start。

Describe your problem
pytorch_model.bin:  60%|█████▉    | 776M/1.30G [13:54<10:11, 860kB/s]
pytorch_model.bin:  61%|██████    | 797M/1.30G [14:18<09:38, 873kB/s]
Is there any way I can optimize it? Downloading is too slow.

Pull the lalest images. I put it in image.

what's the latest base image, it still download the pytorch_model.bin twice for me.


Make collider methods const?

Stuff like Collider::cuboid(...) being const would be helpful.

Making as much component constructors const is a good idea. Though I don’t believe that’s possible with Collider constructors since they initialize an Arc internally.

Bummer. BTW, I send https://github.com/dimforge/bevy_rapier/pull/163


feat(protocol-designer, components): timeline and form alerts

closes AUTH-803
Overview
Wires up timeline alerts and form alerts

Additionally, Banner was moved over into components directory
Test Plan and Hands on Testing
Upload the attached protocol for an example of a timeline error and a timeline warning. The timeline error is the error in red and the timeline warning is the error from step 1 that shows up in the toolbox. See that the timeline warning is dismissible.
Changelog

create the form and timeline alerts
moves over all the subsequent components (they probably need to be fixed to match designs later on when designs are finalized)
update the step container error and opacity for steps subsequent to the error

Risk assessment
low

PLEASE NOTE: The warning example is a bad example because i think we are deprecating it later lol. But the timeline warnings should all work the same


Build fails when there are special characters in cucumber.json

[ERROR] Failed to execute goalreport.donut:donut-maven-plugin:0.0.6:generate (execution) on project taf-chips: Error Found:: Input length = 1 -> [Help 1]
The error is not very meaningful but we discovered the build fails when there are special characters in the cucumber feature file. For example:

"%!@£$%^&*( “ ” ' ' « » … ° © ® ™ • ½ ¼ ¾ ⅓ ⅔ № † ‡ µ ¢ £ € ♤ ♧ :hearts: ♢ ✓)"

Removing those characters from cucumber.json fixes the problem, however it's painful having to manually go through json and remove all special characters especially if the feature file is massive.
Interesting fact is that it only happens on windows machines. Works fine one Mac no matter if the special characters are there or not.

Thanks Filip, we will take a look. It may be best if you have a stab at fixing as we all have Macs ;-)


where unbound

(where blue-clip <- (color "blue" #:length 8))
; where: unbound identifier in module in: where

Oh ya, please just use define.
If you really want where I guess I could add it, but its little more than just define.

Ok good. I was going to suggest not adding it :) define is better


Rename library

Before we start using this on user projects/publicly, readthedocs-client
sounds like a CLI or API wrapper, and we've called this the doc embed JS so
far. There's probably wisdom is reusing that naming or something similar.

Good points! I like something like readthedocs-tools, though that has overlap with build tools :upside_down_face:
I think readthedocs/doc-tools or readthedocs/doc-utils are good targets. I like the narrative of "things we add to your documentation to make it better".
I've been throwing these types of questions to OpenAI and tune the outputs. It gave some good ideas:

readthedocs-tools
doc-utilities
readthe-utils
rtd-helpers
readthedocs-helpers
doc-helpers
doc-tools
document-tools
readthedocs-utilities
document-utilities
document-helpers
rtd-utilities
documentation-tools
readthedocs-resources
doc-resources
readthedocs-support
documentation-utilities
documentation-helpers

I like the narrative of "things we add to your documentation to make it better".

Yes, yes, yes! I've been thinking think for a while now, since I wrote https://github.com/readthedocs/reports/pull/20#discussion_r1042075502 when talking about the 2023 roadmap 💯
✨make-my-docs-better.js 😅
In fact, how much marketing-y we want to go? What about something like readthedocs-superpowers.js or something similar in that direction?

Hah, I was also thinking of something goofy like that, I'm definitely not opposed!

Me and the AI went off the rails a bit, but it gave a few fun ideas:

doc-powerups
doc-booster
doc-juice
doc-sauce
doc-magic
doc-boost

:upside_down_face:
There is definitely a product discussion in here though, and probably not something we need to consider just yet, but it is great to keep this in mind for later. We need to determine if we will be using injection of a group of features into documentation as a marketable feature, or is what we're marketing the individual features and injection is merely a technical implementation detail.
I might lean a bit towards the latter right now, but I do think we'll need some language for the group of features that we are inject.

readthedocs-embed-client or readthedocs-embed-client-js ?

I think I like readthedocs-integrations or readthedocs-helpers most of all the current candidates. They carry a certain aspect of the potentially UI-heavy aspect of the library. Since its for online websites, it could be called readthedocs-web-integrations
If called readthedocs-helpers, I could see spinoffs like readthedocs-helpers-sphinx and readthedocs-helpers-mkdocs.

@benjaoming

readthedocs-helpers most of all the current candidates

@agjohnson

I think readthedocs/doc-tools or readthedocs/doc-utils are good targets

I'd prefer to not use things like helpers, utils, tools or similar. Those names usually convey the meaning "I'm not sure where to put this function, so let's create a utils file" 😄

If called readthedocs-helpers, I could see spinoffs like readthedocs-helpers-sphinx and readthedocs-helpers-mkdocs.

We should not have files for specific doctools, since the idea is to be agnostic regarding to that.

The more I think about this, the more I like something like readthedocs-superpowers.js which communicates it's about Read the Docs, it gives some extra power/features to your site and it's a good marketing name, IMO.
I think I will move forward with it unless you are oppose on that.

I didn't think that readthedocs-superpowers is a thaaat good as a name :) I know that we know the complexity involved in it and why it's great. But for a small menu in a corner, the feeling of "underwhelmed" might occur :)
If you get your superpowers from mate, then I like readthedocs-mate... people that know the drink will think "juice" and people that read it as Australian will see it as a companion, which is also a really good name :) + the emoji exists :) It's a bit abstract, but it seems that the exact scoping of what the library does has made it hard to choose a normal name.

Those names usually convey the meaning "I'm not sure where to put this function, so let's create a utils file" smile

I think it fits very well with what this library is? A home for all client-side stuff? Do you worry that functionality that isn't at home in the library would end up here?
Because otherwise I think this is what it is: A lot of utility/helper functionality with no distinct theme. Some of it does UI, some of it does API calls, some of it is related to version logic, some of it is related to toggling the diff viewer.. lots of stuff!

We should not have files for specific doctools, since the idea is to be agnostic regarding to that.

It was a bad example to show that the naming convention looks nice if you want to have an extension, but no I agree that we will have a hard time maintaining multiple libraries, so it's nice to just have 1 library for everything :+1:

readthedocs-menu would be another suggestion.. just to say what it is in the bigger picture. Most people can understand this as the library that inserts the menu. Everything else can seem secondary?

Great question, this is one of the remaining points I'm not yet settled on. I guess I was suggesting Doc Addons as a feature name, doc-addons the library/repo/etc name. But probably only because it's a little bit more clear what function the addons serve -- they add on to docs, as opposed to add on to something undefined.
But that's just a guess too. Do others pull the same interpretation from just "Addons"?

I would think that prefixing with readthedocs makes it more clear what the library is really doing, i.e. connecting to RTD APIs. I would worry that doc-addons is really generic and would make it look like it's not a Read the Docs specific thing... but it is? :)

Also not completely impossible to call it readthedocs-doc-addons but then there's the docs-doc confetti, which is too silly :)

When we add HTTP proxy support for injecting HTML snippets it could be called readthedocs-docs-socks-blocks-addon :joy:

I would worry that doc-addons is really generic

I guess to elaborate:

readthedocs/docs-addons - repo here
@readthedocs/docs-addons - npm package name
readthedocs-docs-addons.js - web bundle name
etc

I think we arrived at Addons for the name here -- I say we should probably rename this library here soon, so we can start using it properly!

readthedocs/docs-addons - repo here
@readthedocs/docs-addons - npm package name
readthedocs-docs-addons.js - web bundle name

@agjohnson @ericholscher are we OK with these names? I can do the rename if so.

Yeah, those names are good still I feel. If anyone has strong opinions otherwise, my main concern is mentioning addons and using the same name everywhere, give or take a symbol or two.

Any reason not to just say readthedocs/addons? Not sure if the docs is adding much?

Aye, I had the same thought above and don't feel strongly either way

readthedocs/addons - repo here
@readthedocs/addons - npm package name
readthedocs-addons.js - web bundle name

That seems solid as well :+1:

readthedocs/addons - repo here

✔

@readthedocs/addons - npm package name

I created the readthedocs organization at https://www.npmjs.com/org/readthedocs

readthedocs-addons.js - web bundle name

PR at #74 here
PR in org at https://github.com/readthedocs/readthedocs.org/pull/10531
PR in ops at https://github.com/readthedocs/readthedocs-ops/pull/1372

I also re-upload the js file as https://readthedocs-static-prod.s3.us-east-2.amazonaws.com/javascript/readthedocs-addons.js
I think we have everything in place now.

Awesome -- I'm glad we're using the same name in the code as in the marketing, that always helps make it easier to understand and communicate. 👍

I created the readthedocs organization at https://www.npmjs.com/org/readthedocs

@humitos I think this invite doesn't work for me because my NPM account is using my personal info. Could you send to NPM user agjohnson or<EMAIL_ADDRESS>

@agjohnson done!

Hrm, actually, it was the same effect: "Invitation was revoked" :shrug:

I'll note to bug you about this again when I'm back, it's not really critical at all. In fact, I mostly think we'll just use the namespacing while internally working with the packages, but perhaps there will be a time we install everything through NPM

FWIW, as an outside of group collaborator-ish person, I like this new name (and +1 on the naming consistency as well)!


Reference to S05 in Language/Regexes.rakudoc

Problem
The following text appears in the document
A list of predefined subrules is listed in [S05-regex](https://design.raku.org/S05.html#Predefined_Subrules) of design documents

I think - but am not sure - that the list in S05 is already in a document
Suggestions
Either delete this sentence because the information is already available, or copy the list and create a new section.

Good catch, thanks.


feat: Support specify build target

Fix https://github.com/tensorchord/envd/issues/403
Support syntax like envd up -f :build_gpu to specify the function to be called

LGTM


remove atom plugin

after #240

https://github.blog/2022-06-08-sunsetting-atom/

Auto-approve after #240 :)


Reinstate Ractive.noConflict()

Description of the pull request:
Adds a step to the build process to add a Ractive.noConflict() method that sets the Ractive global back to whatever it was when this particular Ractive file loaded and returns the newly removed value e.g. the current Ractive. This only affects those using no module loader.
This is slightly brittle, as it depends on a specific string coming out in the build output, but there test canary in the coal mine.
Fixes the following issues:
#2066
Is breaking:
Nope

I'm curious why this is in the build instead of the actual source.

Because the build sets up the UMD boilerplate, which has all of the globals and whatnot in it. So there's nowhere in the source to put it because it doesn't exist until it is built.


Support for timestamps as x-axis scale

Is your feature request related to a problem? Please describe
Model monitoring is trying to show the number of predictions generated by a deployment within time intervals, and wants to use a histogram to do so. We are encountering a problem where we need to set x_min and x_max for an interval, but when the x axis is timestamp (string) this is not possible.
Example of timestamp x-axis:

Describe the solution you'd like
We would like support for timestamps for x axis
Describe alternatives you've considered

conversion of timestamp to epoch, but this would not be user-friendly to display

Additional context
Workaround ideas welcome!

Is x_scale='time' set?

@shereezhang Here is some example code with Prithvi's suggestion showing how you can use strings of dates in a histogram plot:

from h2o_wave import main, app, Q, ui, data

@app('/')
async def serve(q: Q):
    q.page['ex1'] = ui.plot_card(
        box='1 1 4 3',
        title='Dates',
        data=data('low high price', 3, rows=[
            ("2022-01-01", "2022-02-01", 100),
            ("2022-02-01", "2022-03-01", 150),
            ("2022-03-01", "2022-03-31", 200),
        ]),
        plot=ui.plot([ui.mark(
            type='interval',
            y='=price', y_min=0,
            x1='=low', x2='=high', x_scale="time"
        )])
    )

    q.page['ex2'] = ui.plot_card(
        box='1 4 4 3',
        title='Timestamps',
        data=data('low high price', 3, rows=[
            ("2022-01-01 00:00", "2022-02-01 00:00", 100),
            ("2022-02-01 00:00", "2022-03-01 00:00", 150),
            ("2022-03-01 00:00", "2022-03-31 23:59", 200),
        ]),
        plot=ui.plot([ui.mark(
            type='interval',
            y='=price', y_min=0,
            x1='=low', x2='=high', x_scale="time"
        )])
    )

    q.page['ex3'] = ui.plot_card(
        box='1 7 4 3',
        title='Timestamps',
        data=data('low high price', 3, rows=[
            ("2022-01-01 06:00 PM", "2022-02-01 06:00 PM", 100),
            ("2022-02-01 06:00 PM", "2022-03-01 06:00 PM", 150),
            ("2022-03-01 06:00 PM", "2022-04-01 06:00 PM", 200),
        ]),
        plot=ui.plot([ui.mark(
            type='interval',
            y='=price', y_min=0,
            x1='=low', x2='=high', x_scale="time"
        )])
    )

    await q.page.save()

@lo5 Note that in all three the plot only shows the date, note the timestamp - developers would probably expect to see the format that they use (not tracked, WDYT?). Also their is a hover tool tip issue tracked in #1474

@mtanco @lo5 Thank your quick response, this worked fine after applying the suggestions, But now I encountered the same problem for the box plot, and this suggestion seems not to be working for it.
This is the output

This is the debug console. You can see data on the right side

and in the browser console, I get something like this,
index.bd6889b4.js:41 Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'scales')
    at r.processData (index.bd6889b4.js:41:68369)
    at r.init (index.bd6889b4.js:41:58791)
    at r.initGeometries (index.bd6889b4.js:41:32108)
    at r.renderDataRecursive (index.bd6889b4.js:41:29637)
    at r.paint (index.bd6889b4.js:41:27540)
    at r.render (index.bd6889b4.js:41:18181)
    at i (index.18a7e732.js:3:21346)

Any thoughts?

Hi @Nayananga, is there a reason for using a range (x1 & x2) for the box? In the examples we're just using a single x value: https://wave.h2o.ai/docs/examples/plot-schema/
In general I think it's common to have a box plot per "category" or aggregated time (like a day).

@lo5 is it possible to show time differences by providing timestamps? If we explicitly provide times, then showing time differences between 2 days would be problematic

@lo5 is it possible to show time differences by providing timestamps? If we explicitly provide times, then showing time differences between 2 days would be problematic

raised a specific issue here https://github.com/h2oai/wave/issues/1613
CC @dulajra


Add fuzz target for jpeg decoding (under image)

Also add some tiff seeds for the generic image crate fuzzer

bors r+


Database connection Documetation

Documentation on how to add the RDS to your MySQL Workbench

Making sure everyone can connect to the RDS via MySQL


TransactionSerializationError in UPDATE concurrent queries

EdgeDB Version: 4.2, 4.6, 4.7, 5.3
EdgeDB CLI Version: 5.1.0+7c5764f
OS Version: GNU/Linux 6.8.9 x64_86

Steps to Reproduce:
module default {
	type A {
		required updated_at: int64 {
			default := epoch_ms(datetime_current());
		}
	}
      function epoch_ms(date: datetime) -> int64
         using (<int64>math::floor(datetime_get(date, "epochseconds") * 1000))
}

insert A {}

Then, open two bash instances and run queries:
for i in {1..5000}; do edgedb:dev query "select (update A set { updated_at := epoch_ms(datetime_current()) })"; done

Observe errors:
https://github.com/edgedb/edgedb/assets/17229619/831cf608-6d70-4e92-963c-24626deabe9e
I got this also in JS and Rust client. Splitting update and select seems like fixes issue.

seems like this doesn't happen on 4.2

Seems like problem is worse than I thought. This error appear even with separate concurrent queries.
In my project there is authentication middleware:
let user = edb
	.query_single::<T, _>(&query, &(jwt_data.claims.num,))
	.await
	.inspect_err(|err| {
		tracing::error!("authentication failure: unable to fetch current user by num {err}");
	})?
	.ok_or(anyhow!("User was not found"))?;
// This starts little later, probably in another thread
tokio::spawn(async move {
	edb.execute(
		"update User filter .num = <int64>$0 set { last_seen_at := epoch_ms(datetime_current()) }",
		&(jwt_data.claims.num,),
	)
	.await;
});

And actual handler that takes authenticated user and mutates it:
pub async fn put_user(
	State(ctx): State<AppContext>,
	user: shapes::MeUser,
	Json(update_input): Json<UserUpdateInput>,
) -> Result<EdgedbJson, AppError> {
        // ...
	let update_user_query = autoquery!("
		update User
		filter .num = <int64>$me_num
		set {
		  # ...
		}
	");

	let activities = activities.map(|a| a.into_iter().map(enum_to_string).collect::<Vec<_>>());
	let args = named_args! {
	  // ...
	};
	// here I get TransactionSerializationError most of the time, but not always!
	let update_result: EdgeDbEntity = ctx.edb.query_required_single(&update_user_query, &args).await?;
	let updated_user = ctx
		.edb
		.query_required_single_json(
			autoquery!("select User { shapes::MeUser } filter .id = <uuid>$0"),
			&(&edb_model::Uuid::from_str(&update_result.id).unwrap(),),
		)
		.await?;

	Ok(EdgedbJson(updated_user))
}

I discovered that it happens even with simple UPDATE query.

More demonstrative example of Edgedb insability to perform concurrent queries:
type A {
  required value: int64 { default := 0; }
}

edgedb query "insert A"

Then run two bash instances in parallel:
for i in {1..100}; do edgedb:dev query "select(update A set { value := .value + 1 }).value"; done

After end of loops, A.value will not reach 200.

I workaround this by using RwLock on client, so I can have select/insert/delete concurrent queries and sequential update queries. But I guess EdgeDB should handle it itself, as underlying postgres does?

I think part of the reason for the difference with postgres is that we are using postgres's SERIALIZABLE isolation level, which is stricter than the default of READ COMMITTED.
When I try it with postgres natively using SERIALIZABLE or REPEATABLE READ, I get the same results.
Another part of this is that the CLI doesn't retry on fails, though I think all of our language clients do.

Another part of this is that the CLI doesn't retry on fails, though I think all of our language clients do.
My observation is completely opposite. I was getting this error on NodeJS separate workers and in multi-threaded Rust app too. I believe you're confusing it with TransactionConflictError https://github.com/edgedb/edgedb-rust/blob/093729876737738a559e35c2ec3f0ae27efd2f69/edgedb-tokio/src/options.rs#L26

Anyway, do you think retrying is correct way to workaround this? First time I tried to implement retries, and then I compared to RwLock implementation. I observed better results with manual locking on UPDATE operations. I guess receiving error and retrying multiple times is more expensive than synchronous locking.

Hmmmm, I had thought that TransactionSerializationError was marked as SHOULD_RETRY also, but it is not: https://github.com/edgedb/edgedb/blob/b9b4177d8c0080235e46b7e825384224fbe5923c/edb/api/errors.txt#L128C18-L128C47
Maybe we need to change that
Doing synchronous locking should work great if you only have one client, but it doesn't help you in a distributed situation.

SHOULD_RETRY should be inherited, and it's set on the parent TransactionConflictError.  The bindings might not be reflecting that faithfully, though.

Oh, good point. It looks like the rust bindings do reflect that faithfully: https://github.com/edgedb/edgedb-rust/blob/093729876737738a559e35c2ec3f0ae27efd2f69/edgedb-errors/src/kinds.rs#L139.
This sort of counter workload is not a great fit for SERIALIZED/REPEATABLE READ, perhaps.

Oh, good point. It looks like the rust bindings do reflect that faithfully:

@msullivan Can you double check js/py/go bindings?

Is it possible to configure EdgeDB to work with postgres in READ COMMITTED mode? What are benefits/drawbacks?

I changed global and database default_transaction_isolation to 'read committed' but TransactionSerializationError still happens

EdgeDB sets the mode in the connection settings when it connects to postgres, I think.
Changing it to read committed there does fix this problem, though I don't think there is a way to do it as a user.
Which is fine, because a bunch of weird stuff can happen in that mode in edgedb. (Exclusive constraints not enforced properly, for one)

Related to #5056


timestamp in Unix in monitoring

timestamp in Unix in monitoring

Fixed via https://github.com/gyuho/psn/pull/13.


Convert plugin tooling all-plugins-app test to mock process

The build-all-plugins command unit tests currently use an actual call to flutter create, which makes them slow (especially on Windows) and non-hermetic. In addition https://github.com/flutter/plugins/pull/6605 makes things inconsistent because the new code there uses our much more typical approach of mocking the process instead of actually running it, since actually running it would be even more complex.
We should really switch to mocking out the flutter create call, and just manually making a few files that look like the files we expect to modify, to make these much more "unit" unit tests rather than being more like integration tests. It would be a little less thorough in that if the actual project created by flutter create changed in a way that broke us, tests wouldn't catch it, but in that case the actual use of the command in CI would fail and we would find it that way.

I did this in https://github.com/flutter/packages/pull/4005


DRM and HLS-AES support

Hello,
It's any plan to implement a DRM and HLS-AES support? Our content provider (Mediapro) require it for a sports broadcasting.
BuyDRM, Verimatrix or EZDRM is most used and are welcome.
If any developer can develop this we can speak for sponsor this function.
Regards.

@paunadeu we use hls.js as a playback for HLS and it supports AES-128 decryption (AES-128 mode) not DRM though. Maybe @mangui might be interested, anyway I think you should open this ticket at https://github.com/dailymotion/hls.js maybe someone can take this!

Ticket opened at HLS.js project. Thank you Leandro for your quick answer.
BTW, have you example of integration of AES-128 with Clappr?
We are using Clappr in a IPTV Application that's used by a hundreds persons.
Best regards,
Pau.

BTW, have you example of integration of AES-128 with Clappr?

I think you can just enable on your server and that's it! No need to extra config.

@paunadeu Hello Pau, did you succeed on playing DRM protected streaming on Clappr?

@matheusrufca are you asking in regard of hls streaming or DASH?

@leandromoreira Better if HLS. I'm testing Clappr on SmartTVs (Tizen, WebOS) and Clappr had better results playing HLS over DASH.

@matheusrufca for HLS I think you're going to wait, there is an open ticket for this though.