Feature request: ACL and Auth via webhooks

Hi! Thanks for the great project.
I have read about webhooks and auth, its really good solution to have ability to use third party auth without directly accessing database. It will be also great to allow third party solution for ACLs
Is it possible to add ACL with webhook response for each auth request?

@dergraf Yes, something like that. When client tries to connect, authdata is passed to third party service, that returns result of auth and acl for the connection.

Sounds like a great idea, we were actually discussing something similar earlier this week.
We'll keep you posted.

I actually created a similar plugin that does this. The trick is the data we want to send, it cloud actually be something like:
{
    "user": "somebody",
    "client_id": "kdskkhdskhso",
    "topic": "foo/bar/baz"
}

Probably also have an option to send the password as some people use tokens as the password. Thoughts?

Actually I thought this thing is already working and made a auth endpoint in my app.
It responds something like:
{
    "publish_acl": [],
    "result": "ok",
    "subscribe_acl": [
        {
            "pattern": "data/sensors"
        }
    ]
}

Yeah will be nice to  define if we want this on every auth_on_publish/auth_on_subscribe or just to happen on auth_on_register and make one request that gets all the topics ACL for a user, its tricky to design this plugin as many people will have different requirements and will be good to design something that is flexible enough.

I was thinking about the possibility to reuse some of the logic of our DB Auth plugins... I haven't tested the following Lua auth plugin, but it might be all that is required.
https://gist.github.com/dergraf/e1149165832804c84ff875218f28852f

@dergraf could you please make some comments about how to use it? As I seen in the code, it requires Redis, for cache?
As I think, auth and ACL with external calls are the most common features for almost every deployment. Using DB is ok, but use of http endpoint is much more convenient and requires much less deps for both auth app and vernemq.

@arrowcircle You were right,   I forgot to remove those, when copying the Redis script. ;)
Please have a look at the updated gist. https://gist.github.com/dergraf/e1149165832804c84ff875218f28852f

I guess the request here is to have this directly integrated with Webooks plugin, instead of using a custom Lua script.

@dergraf Any ideas?

Hmm.. if you don't see any errors in error.log the script should behave correctly... in that case it might be that the Json has a wrong format.

@dergraf Json format is:
{
    "publish_acl": [],
    "result": "ok",
    "subscribe_acl": [
        {
            "pattern": "data/sensors"
        }
    ]
}

and there are no errors in the console of vernemq.
Here is also output of plugin list
# vmq-admin plugin show
+-------------+-----------+-----------------+-----------------------------+
|   Plugin    |   Type    |     Hook(s)     |            M:F/A            |
+-------------+-----------+-----------------+-----------------------------+
|vmq_plumtree |application|                 |                             |
|   vmq_acl   |application| auth_on_publish |  vmq_acl:auth_on_publish/6  |
|             |           |auth_on_subscribe| vmq_acl:auth_on_subscribe/3 |
|vmq_diversity|application|                 |                             |
| vmq_passwd  |application|auth_on_register |vmq_passwd:auth_on_register/5|
+-------------+-----------+-----------------+-----------------------------+

Do I need to disable or enable some plugins?
Or what is wrong with json format?

Could you disable vmq_passwd and vmq_acl and see how it goes?

@dergraf Now I can connect, but can't publish or subscribe to any topic.
Here is the vernemq log message (first for subscribe, two last for publish)
06:33:06.500 [warning] can't authenticate client {[],<<"MQTT_FX_Client">>} due to error
...
06:33:45.952 [error] can't auth publish [<<"1">>,{[],<<"MQTT_FX_Client">>},0,[<<"data">>,<<"sensors">>],<<"123">>,false] due to no_matching_hook_found
06:33:45.952 [warning] session stopped abnormally due to 'publish_not_authorized_3_1_1'

Docker command
docker run -p 1883:1883 \
  --rm --name vernemq \
  -e "DOCKER_VERNEMQ_ALLOW_ANONYMOUS=off" \
  -e "DOCKER_VERNEMQ_PLUGINS__VMQ_PASSWD=off" \
  -e "DOCKER_VERNEMQ_PLUGINS__VMQ_ACL=off" \
  -e "DOCKER_VERNEMQ_PLUGINS__VMQ_DIVERSITY=on" \
  -e "DOCKER_VERNEMQ_VMQ_DIVERSITY__HTTP_AUTH__file=/auth_http.lua" \
  -v $(pwd)/auth_http.lua:/auth_http.lua \
  erlio/docker-vernemq

auth_http.lua:
require "auth/auth_commons"

URL = "http://docker.for.mac.localhost:3000/api/v1/vernemqs"

function auth_on_register(reg)
    if reg.username ~= nil and reg.password ~= nil then
        key = json.encode({
            mountpoint = reg.mountpoint,
            client_id = reg.client_id,
            username = reg.username,
            password = reg.password
        })
        headers = {}
        headers["x_post_header"] = "X-POST-HEADER"
        headers['Accept'] = "application/json"
        headers["Content-Type"] = "application/json"
        ret = http.post(pool, URL, key, headers)
        if ret.status == 200 and ret.ref then
            body = http.body(ret.ref)
            json = json.decode(body)
            cache_insert(
                reg.mountpoint,
                reg.client_id,
                reg.username,
                json.publish_acl,
                json.subscribe_acl
                )
            return true
        else
            return false
        end
    end
    return false
end

pool = "auth_http"
config = {
    pool_id = pool
}

http.ensure_pool(config)
hooks = {
    auth_on_register = auth_on_register
}

JSON responses are the same as above.
Any ideas?

@dergraf Is there any way to look at the acl list in the runtime?

@dergraf ?

He's on a short vacation... apologies & thanks for you effort & patience @arrowcircle.
If I follow this correctly, you can register, but not publish? Just to make sure, the auth_on_publish hook is implemented though in your Lua script?
/cc @larshesel

Ah, ok, I see that the point was discussing about leaving out the auth_on_publish and auth_on_subscribe hooks, kind of. And the auth_http.lua script was from @dergraf.
Hm then.

@dergraf Hey, any thought about that?

@arrowcircle, can you get in touch over Slack?

@dergraf Sure. what address for registration?

Great Thanks to @dergraf
Problem was in the hooks section of lua. Here is the full working example:
require "auth/auth_commons"

-- In order to use this Lua plugin your webhook must return a JSON Object containing
-- the following properties:
--
--  - passhash: STRING (bcrypt)
--  - publish_acl: [ACL]  (Array of ACL JSON Objects)
--  - subscribe_acl: [ACL]  (Array of ACL JSON Objects)
--
-- 	The JSON array passed as publish/subscribe ACL contains the ACL objects topic
-- 	for this particular user. MQTT wildcards as well as the variable
-- 	substitution for %m (mountpoint), %c (client_id), %u (username) are allowed
-- 	inside a pattern.
--
-- IF YOU USE THE KEY/VALUE SCHEMA PROVIDED ABOVE NOTHING HAS TO BE CHANGED
-- IN THE FOLLOWING SCRIPT.

URL = "http://docker.for.mac.localhost:3000/api/v1/vernemqs"

function auth_on_register(reg)
    if reg.username ~= nil and reg.password ~= nil then
        key = json.encode({
            mountpoint = reg.mountpoint,
            client_id = reg.client_id,
            username = reg.username,
            password = reg.password
        })
        headers = {}
        headers["x_post_header"] = "X-POST-HEADER"
        headers['Accept'] = "application/json"
        headers["Content-Type"] = "application/json"
        ret = http.post(pool, URL, key, headers)
        if ret.status == 200 and ret.ref then
            body = http.body(ret.ref)
            json = json.decode(body)
            cache_insert(
                reg.mountpoint,
                reg.client_id,
                reg.username,
                json.publish_acl,
                json.subscribe_acl
                )
            return true
        else
            return false
        end
    end
    return false
end

pool = "auth_http"
config = {
    pool_id = pool
}

http.ensure_pool(config)

hooks = {
    auth_on_register = auth_on_register,
    auth_on_publish = auth_on_publish,
    auth_on_subscribe = auth_on_subscribe,
    on_unsubscribe = on_unsubscribe,
    on_client_gone = on_client_gone,
    on_client_offline = on_client_offline,

    auth_on_register_m5 = auth_on_register_m5,
    auth_on_publish_m5 = auth_on_publish_m5,
    auth_on_subscribe_m5 = auth_on_subscribe_m5,
}

Hello,
I wonder why that's closed because the script is just a workaround. If the normal webhooks would support this, it would be much easier to use and include features like caching, configuring the URLs and such.
One remark to the script above: The comment is wrong regarding passhash, because the passwort must be checked on server-side and is not processed in any way within the script.
Kind regards,
Michael.


No such file or directory avocado *.xml - Windows

I was trying to batch updating all my drawables.
Got this error message:
Error: No such file or directory 'D:\Development\myfoody-app-android-2019\app\src\main\res\drawable*.xml'.
at checkOptimizeFileError (C:\Users\Nicola\AppData\Roaming\npm\node_modules\avocado\dist\lib\index.js:212:31)
at C:\Users\Nicola\AppData\Roaming\npm\node_modules\avocado\dist\lib\index.js:162:16
Thanks for your time!

this is an example you should write your xml file name insted of copy this one

copy the complete path reference and do inside android studio terminal, will work


How is your WMT16 EN-Ro Dataset Preprocessed?

Thank you for providing us the preprocessed dataset.
Could do please tell me How is your WMT16 EN-Ro Dataset Preprocessed?
From raw 612422 sentence pairs to 608319 sentence pairs?
Also, it seems that the dataset (En-Ro) has been shuffled or reorganized?

We used the preprocessing scripts provided by Rico Sennrich, which filters out sentences too long or too short.


Remove redundant code with deploy tools dependency

Due to the history of the deploy tools as extraction from the auction
deploy tool, a huge bunch of code is replicated in both packages.
Therefore the auction deploy tool could be simplified by re-using the
functionality of the deploy tools.
Mark that also the common click CLI options are taken from there. This
means that the associated environment variables are named differently
(DEPLOY_TOOLS_...). CLI options specific to the deploy tools keep the
prefix AUCTION_DEPLOY_
Related to: trustlines-protocol/contract-deploy-tools#53
Note: For the usage of the CLI option environment variables, this needs a new version of the deploy-tools by the former mentioned PR.

@schmir-at-bb that was the idea. Was not clear enough in the description.

contract-deploy-tools 0.4.4 has been released.
Can you please make sure that you also upgrade the package in all of the repos listed here:
https://github.com/trustlines-network/project/issues/607
(note: not all of them have contract-deploy-tools as a dependency)

All done. :heavy_check_mark:


pulsar-admin cli: pulsar functions api issues after changing function parallelism > 1

Describe the bug
Pulsar v2.3.2
Commands such as the following work as long as your function has a parallelism of 1...
$PULSAR_HOME/bin/pulsar-admin functions getstatus --tenant public --namespace default --name exclamation
The results on the functions worker logs show a good return of:
"GET /admin/v3/functions/public/default/exclamation/status HTTP/1.1" 200 354 "-" "Pulsar-Java-v2.3.2" 14
{   "numInstances" : 1,   "numRunning" : 1,   "instances" : [ {     "instanceId" : 0,     "status" : {       "running" : true,       "error" : "",       "numRestarts" : 0,       "numReceived" : 0,       "numSuccessfullyProcessed" : 0,       "numUserExceptions" : 0,       "latestUserExceptions" : [ ],       "numSystemExceptions" : 0,       "latestSystemExceptions" : [ ],       "averageLatency" : 0.0,       "lastInvocationTime" : 0,       "workerId" : "localhost-6750"     }   } ] }
Changing the parallelism to >1 results in a bad return and the following output in the logs:
"GET /admin/v3/functions/public/default/exclamation/0/status HTTP/1.1" 500 110 "-" "Pulsar-Java-v2.3.2" 57
org.apache.pulsar.client.admin.PulsarAdminException$NotAuthorizedException: HTTP 401 Unauthorized Reason: HTTP 500 Internal Server Error
It looks like the API is not able to pickup the numbers that are being appended to the URL when you add the parallelism, i.e.
GET /admin/v3/functions/public/default/exclamation/0/status
GET /admin/v3/functions/public/default/exclamation/1/status
GET /admin/v3/functions/public/default/exclamation/2/status
To Reproduce

Create the exclamation function:
$PULSAR_HOME/bin/pulsar-admin \ functions create \ --jar examples/api-examples.jar \ --classname org.apache.pulsar.functions.api.examples.ExclamationFunction \ --inputs persistent://public/default/exclamation-input \ --output persistent://public/default/exclamation-output \ --name exclamation
Run the following to see good output
$PULSAR_HOME/bin/pulsar-admin functions getstatus --tenant public --namespace default --name exclamation
Change the parallelism to >1
$PULSAR_HOME/bin/pulsar-admin \ functions update \ --jar examples/api-examples.jar \ --classname org.apache.pulsar.functions.api.examples.ExclamationFunction \ --inputs persistent://public/default/exclamation-input \ --output persistent://public/default/exclamation-output \ --tenant public \ --namespace default \ --name exclamation \ --parallelism 3 \
Rerun the command from step 2
``$PULSAR_HOME/bin/pulsar-admin functions getstatus --tenant public --namespace default --name exclamation`

Expected behavior
Should respond with a 200 and a result

I tested in the latest version and version 2.3.2, but I didn't find this problem. I don't know what else the broker reported wrong

It's like it can't route do to the URL adding the /0 or /1 etc. If that is not there, it works fine. I rebuilt the cluster from scratch and it still has this issue in 2.3.2. Not sure why it would not happen to your cluster. Is your conf file different than mine?

I used this image of 2.3.2 version to test, you can see what is different from your configuration.

@one70six what is your cluster setup? Single node standalone or multi node cluster?  Running function worker with broker or alone?

@jerrypeng It's a multi node cluster

6 brokers
6 bookies
6 Zookeepers
6 Functions Workers (outside brokers)

@one70six Does the problem still exist in your cluster?

Closed as stale and no response. Please open a new issue if it's still relevant to the maintained versions.


Include gp3 Volume type in create_launch_configuration

As AWS come up with new Volume type, the "gp3" is missing as option in create_launch_configuration - VolumeType

Hi @free88dom,
Thanks for pointing this out!  Just to clarify, are you suggesting we add the gp3 value to our documentation, or does the gp3 value not work when provided (or both)?  I looked at the botocore model for autoscaling and it appears the values for BlockDeviceMappings -> Ebs -> VolumeType are not defined there, but rather validated by the service itself.

Hi @stobrien89,
it's missing completely there, you can't use it if you provide it as an option. The botocore raises an error. By now, at BlockDeviceMappings -> Ebs -> VolumeType are defined only Valid Values: standard | io1 | gp2 | st1 | sc1

Hi @free88dom,
I did some testing this morning and confirmed that it looks like this is a matter of implementation by the service:
<ErrorResponse xmlns="http://autoscaling.amazonaws.com/doc/2011-01-01/">\n  <Error>\n    <Type>Sender</Type>\n
ValidationError\n    <Message>gp3 is invalid. Valid volume types are standard, io1, gp2, st1 and sc1.
</Message>\n  </Error>\n  <RequestId>RequestID</RequestId>\n</ErrorResponse>\n'

Most of the code in botocore service models is generated by the service, but you've still reached the right place!  I'm going to send a feature request to the autoscaling team.  I can't guarantee response/implementation time on their behalf, but I'll let you know as soon as I have an update.

P46519029

Hi @free88dom,
I heard back from the service team— They are currently working on adding the additional gp3 VolumeType.  I wasn't given a timeline for implementation, but I'll let you know as soon as I have an update!

Hi AWS Team,
We have a customer requirement inorder to enable the launch Configuration to support gp3 in CloudFormation. Please let us know the current update!!

Hi @CA096339,
Thanks for reaching out.  It's still a work in progress, but I'm tracking their ticket on this issue and will provide any updates I can once received!


Allow usage of async when returning void in an effect

This allows usage of async in combination with void effects. E.g.:
useStateMachine({
  initial: "downloading",
  states: {
    idle: {
      on: {
        DOWNLOAD: "downloading",
      },
    },
    downloading: {
      on: {
        OK: "idle",
      },
      async effect({ setContext }) {
       await Promise.resolve(42)
       setContext({..}).send(..)
      },
    },
  },
});

Just saw your codesandbox example. I think I might like that better actually.


Auth

Added implementation of user login, required in order for comments to show. At some point username will be autofilled with login, haven't added this feature yet for MVP.

All changes should be addressed, I haven't been merging into master so I will open a large pull request where all changes have been  merged to merge into master


Decouple FollowModes

Project Type
3D
Feature Description
Separate out the FollowMode code and allow for custom FollowModes to be registered.
Use Cases
I'm finding myself wanting a custom FollowMode but the current system isn't extensible. Here's an example:
https://github.com/ramokz/phantom-camera/assets/334808/9b2e9cc4-ef72-4e22-84f9-e5fb0948967d
I'm using the Framed FollowMode and it's working exactly how I want except I'd like the camera to have a min/max bounding so that it doesn't pan too far to the right/left/up/down and see far outside of the room in the video above. I tried using invisible StaticBodies to restrict camera movement but the camera flies right through them regardless in this mode.
For this reason I wanted to create a BoundFramed FollowMode that is the same as Framed but accepts an AABB property clamping how far the camera is able to move in each direction.
Importance
Medium - the feature would unlock new possibilities, but it's not a showstopper
Usage
Rarely - just a handful of projects can likely benefit from this
(Optional) Proposed Solution
Pull the FollowMode code out of Constants, Properties and 2D/3D classes and move them into their own classes to be called from the previously mentioned as required. Provide a register_follow_mode() function to register new FollowModes.

I don't think the solution here is a custom Follow Mode, but rather a 3D version of the Limit Node system that the 2D version already supports. The Follow Mode itself shouldn't be what dictates where the camera can or cannot go within a scene. Instead, it ought to be an external source that clamps it, as the behaviour can be desirable from all follow modes — including Framed Follow.
Have been tinkering with the idea of making a similar system for it for 3D scenes, but got a few things planned out before digging into that — in particular #161 as I suspect they would end up sharing a lot of logic.

I like the idea of eventually decoupling logic into their own component Nodes in an eventual version of this add-on, but that's probably several versions off. That's how I write my own custom logic.


Access to uninitialized memory

https://github.com/dfsp-spirit/neuroformats-rs/blob/4235e974391863c2f070821cd7294015fee7ff93/src/fs_annot.rs#L195-L208
The function Vec::with_capacity pre-allocate the memory, but the memory is uninitialized and can't be read/write directly, it need to be initialized with a function like Vec::push, in this case accessing the uninitiated entry at line 203 will cause a panic or UB.

Fixed at #5 in https://github.com/dfsp-spirit/neuroformats-rs/pull/5/commits/e26411b847ba1180fd2d11e96c6cce9957776ef2

Yes, correct. Thanks for reporting and providing a PR.


UnixPB: Correct issues with Git on SLES12 SP5.

Fixes #2743
Checklist

[X] commit message has one of the standard prefixes
[X] VPC/QPC not applicable for this PR
[X] Playbook deployed to host machine (  test-marist-sles12-s390x-2 )
[X] Sanity Test Run Completed Against Machine (test-marist-sles12-s390x-2) here

We'll need to reviewers to merge, ping @zdtsw


I don’t know if this issue goes here specifically, but...

Context: On mobile. Don’t know if that’s important or not
The parts of Volume 6 seems to have “Ultimate Skill” spelled as “Ultimate Skil”

noted x'D


Ref: JAR roadRunner

Hello Krishnan,
How do i download the JAR; as I would need to provide that the my team to use it in my company.

It's published to Maven central. So you just need to add a dependency to it in your pom file and then use. Details are available in the README.md file.

Sir there are 4 instances in maven Central. I would highly appreciate if
you could send me the URL to download it. To use with intranet.. I would
have to setup the jar. Can't go outside network to access maven Central.
On Mon, May 13, 2019, 8:44 PM Krishnan Mahadevan<EMAIL_ADDRESS>wrote:

It's published to Maven central. So you just need to add a dependency to
it in your pom file and then use. Details are available in the README.md
file.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/RationaleEmotions/cucumber-roadrunner/issues/2?email_source=notifications&email_token=AKLOKE3OYADNI3I7XXULL5TPVIKQVA5CNFSM4HMT53AKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODVKAT4I#issuecomment-492046833,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AKLOKEYOOLX4G3SGXVONR6LPVIKQVANCNFSM4HMT53AA
.

@skAutomation12 - Ok, sounds like you aren't familiar with how Maven works.
When it comes to SNAPSHOT dependency consumption, here's some general information
In the URL https://oss.sonatype.org/content/repositories/snapshots/com/rationaleemotions/roadrunner/1.0.0-SNAPSHOT/
open up the maven-metadata.xml.
In that file the section
<snapshot>
<timestamp>20180407.081406</timestamp>
<buildNumber>2</buildNumber>
</snapshot>

will tell you the latest published buildNumber. In this case 2.
So in the afore-mentioned URL, you look for a jar whose name contains -2.
That would be https://oss.sonatype.org/content/repositories/snapshots/com/rationaleemotions/roadrunner/1.0.0-SNAPSHOT/roadrunner-1.0.0-20180407.081406-2.jar
PS: Merely downloading this jar manually on your own, will not work. You would need to get all the dependencies that have been called out in the pom file.
So I would strongly advise you to have maven do the job for you.
If you have an intranet Maven repository (typically companies do that), then you should have your DevOps team mirror this library into your intranet maven repository.


json: add an optional strict mode, and enforce

After this commit, the https://github.com/nst/JSONTestSuite reports no
more "should have failed" issues.

Hi! I wasn't sure whether you preferred to have a "strict" mode or just have pdjson always be correct. One disadvantage with having strict mode be the default is that pdjson would not be able to support streams of discrete JSON data (things like NDJSON), which would otherwise be supported by reading JSON_DONE from json_next and calling json_reset. This is the primary reason I've made strict mode optional.

(Actually, please hold off on merging this; I'm trying to fix the "failed but should have succeeded" test cases, and some of them have overlap)

Wow! Nice work! This is great, Devon!
So if I understand correctly, "strict" means it validates that the input
stream terminates without any trailing garbage, and another JSON object
would be trailing garbage. I really do like the idea of supporting both
a valid stream of discrete data, but also validating the remainder of
the stream for a single piece of data. I don't have any personal
preferences about the default mode, but I like having it as an option.
Do you think it should be strict by default? Either way it will be
documented in the README (which I'll do if you don't), so it's not too
important.

Thanks!
There are a couple places where "strict" kicks in, and maybe we should figure out how we want it to work. One is this case where there is some input like:
[1,2,3][4,5,6]

Anything after the [1,2,3] (other than JSON whitespace) is technically invalid (even if it's a valid JSON payload). However, it would be useful to read [1,2,3], consume the JSON_DONE, call json_reset, and then enter json_next again, we would get another valid stream. I think this is a reasonable default use case.
The other case where the code succeeded when it should've failed a lot were cases like 1e; per the spec this is invalid (1e what?). I have this gated on strict mode as well, but it might be useful to remove that.
To be honest, I think the json_reset streaming case is compelling enough to leave "strict" mode off by default. In fact, I have an almost immediate use-case for it, which will be supporting a new NDJSON format in CasTTY, once finalized: https://github.com/asciinema/asciinema/pull/196

(I'm happy to do the README documentation once we've settled on ideas for how it should behave, also to add information on allocator callbacks, which I realize now I've also forgotten to do.)

The other case where the code succeeded when it should've failed a lot were cases like 1e; per the spec this is invalid (1e what?). I have this gated on strict mode as well, but it might be useful to remove that.

Is there any reason we'd ever want to accept "1e"? I'm fine with that not even being an option. You've already changed "strict" to "streaming" in #5, so that fits with this theme.

compelling enough to leave "strict" mode off by default.

That sounds good to me, particularly if the only difference is streaming.

I think #5 addresses everything I mentioned here, so 1e & friends just aren't accepted anymore under any mode.
I also opened https://github.com/nst/JSONTestSuite/pull/69, but it seems that repo doesn't get PRs merged much. But at least a record of how to go about running the tests in it.


Why the DPM solver is only used in sampling but not training?

Hello, I found that the DPM solver can only be found in the function p_sample_loop_known. But I can not find them in training codes. Can you tell me?

DPM solver is used for sampling/inference, not for training. see their paper for more details: https://arxiv.org/abs/2206.00927

Thank you. I want to know how to release the memory since it keep increasing.

it's a bug caused by pytorch version, see this issue: https://github.com/WuJunde/MedSegDiff/issues/23

Thank you!


Google maps does not render KML polygons with inner boundaries correctly (one or more polygons never get rendered)

Background
While creating bathymetric maps as KML I like to make the map earier to read by adding different colored polygons to each 1m level. If using completely filled polygons, the KML is rendered differently each time I do a addLayerToMap (leading me to believe Google Maps have no way to control the order the polygons are added like Google Earth has).
Problem
To solve this I altered the KML to also include inner boundaries to "cut out" the inner and eliminate the need for the rendering of the polygons to come in a particular order. Using Google Earth I can verify that the filled polygons never overlap. Google Earth also renders this KML perfectly. But Google Maps can no longer render them all. No clear pattern. On one water every other, on another water perhaps one or two of them are missing.
Expected behavior
Using Google Earth: Sample water with all colored polygons selected. Each meter level rendered:

Also using Google Earth, I deselected the all levels but 2-3 meters to illustrate that its inner is "cut out". All other polygons but the deepest one have their inner "cut out":

I have built my KMLs in two ways: The "hard way" by writing strings with tabs and tags "manually" and by using Python and "simpleKml". I first thought the problem (see below) was caused by simpleKml adding multiple (when applicable, often needed for a water) "LinerarRing" within a single "innerBoundaryIs". So I dropped simpleKml and coded manually to get multiple "innerBoundaryIs" with a single "LinearRing" inside each. But for Google Maps that did not matter, behaviour is identical.
Sample from the KML-file for the illustrated 2 meter polygon (coordinates are abbreviated - this polygon has one outer boundary (always) and 1+ inner boundaries, this one has 3):
			<Placemark> 				<name>2</name> 				<styleUrl>#2</styleUrl> 				<Polygon> 					<tessellate>true</tessellate> 					<altitudeMode>clampToGround</altitudeMode> 					<outerBoundaryIs> 						<LinearRing> 							<coordinates>10.592408209489095,59.64232214633835,0 ... 10.592408209489095,59.64232214633835,0</coordinates> 						</LinearRing> 					</outerBoundaryIs> 					<innerBoundaryIs> 						<LinearRing> 							<coordinates>10.592191189077477,59.642402279689236,0 ... 10.592191189077477,59.642402279689236,0</coordinates> 						</LinearRing> 					</innerBoundaryIs> 					<innerBoundaryIs> 						<LinearRing> 							<coordinates>10.590486028700466,59.643027621876,0 ... 10.590486028700466,59.643027621876,0</coordinates> 						</LinearRing> 					</innerBoundaryIs> 					<innerBoundaryIs> 						<LinearRing> 							<coordinates>10.589741958717772,59.64305730583021,0 ... 10.589741958717772,59.64305730583021,0</coordinates> 						</LinearRing> 					</innerBoundaryIs> 				</Polygon> 			</Placemark>
The KML code is not easy to read in the code editor, here's a picture to easier see the typical structure:

Observed behavior
As stated and visualized above, while Google Earth renders each polygon and also the entire "depth map" perfectly, Google Maps using Android does not. For this particular depth map only one colored polygon is missing. On another water depth map every second is invisible. Here's a screen shot:

Environment details
Multiple devices used, all experience the same behaviour. My development device is a Samsung Galaxy Tab S6 lite (SM-P610), running Android 12 and One UI 4.1.1.
Environment for the app is:

com.google.android.gms:play-services-maps:18.0.2
com.google.maps.android:android-maps-utils:2.4.0

Steps to reproduce
The behaviour in Google Maps is fairly consistent, at least it never displays all polygons properly. But the amount of polygons gone missing is not consistent.
Using a second water map, first in Google Earth:

Then using Google Maps:

I have also attached the KML for this latter sample (file type altered to "txt", change back to "kml" to use):
sample.txt

@OlavAa Thank you for opening this issue. 🙏
Please check out these other resources that might help you get to a resolution in the meantime:

Support Console - If you have a support contract.
Discord - chat with other developers
StackOverflow - use the google-maps tag
Google Maps Platform issue trackers

This is an automated message, feel free to ignore.

After playing around with a sample "depth map" I see the root cause may be some polygons within the KML. The fact that Google Earth is able to correctly render the polygons may also be a result of GE filtering away bad information somehow. Will have to look more closely an how I build my polygons outer and in particular inner boundaries.

@OlavAa Do you still think this is a bug or was the problem all with the input polygons? Feel free to re-open if you've found that it's a bug after fixing the polygons.


task: Flux already installed, precondition not met during flux:bootstrap

While setting up a new k3s cluster following this guide, I ran into this issue during the flux:bootstrap step:
task: Flux already installed
task: precondition not met

Following a previous case of this (from Discord) I disabled the precondition and the bootstrap was able to complete successfully.
Additional info:
daniel@Daniels-MacBook-Air  ~/GitHub/k3s-homelab   main  task flux:bootstrap
task: Flux already installed
task: precondition not met
 ✘ daniel@Daniels-MacBook-Air  ~/GitHub/k3s-homelab   main  kubectl -n flux-system get pods -o wide
No resources found in flux-system namespace.
 daniel@Daniels-MacBook-Air  ~/GitHub/k3s-homelab   main  flux check --pre
► checking prerequisites
✔ Kubernetes 1.29.1+k3s1 >=1.26.0-0
✔ prerequisites checks passed
 daniel@Daniels-MacBook-Air  ~/GitHub/k3s-homelab   main  task flux:bootstrap
task: Flux already installed
task: precondition not met

Fixed in https://github.com/onedr0p/cluster-template/commit/2c62c139059062ece13356633bc0dee153669682
Thanks for reporting!


Titanfall 2014 support

so i have a legitimate copy of not only Titanfall 2, but Titanfall as well. i bought them both through EA's Origin service.

I read on the discord that it's being worked on but it will probably be made on another repository since Northstar is Titanfall 2 specific

alright.

Titanfall 1 isn't planned to be supported, it doesn't include a server.dll like Titanfall 2 does for singleplayer, so method like what we do for Northstar isn't possible

I am wondering that is it possible to make the maps of Titanfall 1 to be transplanted on Titanfall 2 .And so it is with Titans?

would it not be possible to intercept the connection from tf 1 and thus run with the server from 2 or are they very different?

For TF1, the Titanfall Online remake (till in private development) is probably your best bet.
Regarding making TF1 client communicate with TF2, TFO is basically Titanfall 1.2 and even there the consensus seems to be that it's too much effort to get Titanfall 1 client to talk to TFO. So it it's likely infeasible :/

For TF1, the Titanfall Online remake (till in private development) is probably your best bet.
Regarding making TF1 client communicate with TF2, TFO is basically Titanfall 1.2 and even there the consensus seems to be that it's too much effort to get Titanfall 1 client to talk to TFO. So it it's likely infeasible :/

here the client is not opening someone already did the test?

here the client is not opening someone already did the test?


Serializer changes

This removes Serializer from core.

Just waiting to update existing serializers, then this should be merged.


UI Plugin

First version of UI plugin coming into the project.

@marksoper - the change should not come in a big bulk of original ESXUI code and deltas.
a pure copy of esxui original code should go to vendor/ folder - at least that's what we do for GO code to simplify versions racking and updates. And the fixes should go in as a separate reviewable change with a few (desirably one) commit. Currently its very hard to understand what to review, and even harder to review it ...


Hiding + Renaming can give programs the same name

By hiding files you are really just renaming them, because of this, Cesium sees the two (hidden and unhidden) as different programs, in this way, you can create multiple programs with the same name as seen below:

This can cause problems as seen here:

Note: This bug has been around since the first releases.
Also, can the right arrow be added as an alternate way to enter the properties menu and the left arrow to exit the properties menu?

It's not a bug.

Fine.

The left and right keys will eventually open a menu for usb things.


[WIP] X11 improvements

This is a work in progress implementation for a few of the missing X11 graphics features, mainly full screen and cursor support.
The X11 fullscreen and isFullScreen should now work, along with the cursor hiding.
I had some questions regarding the rest:

What's the recommended way to log in this project, such as a project utility to do so? Was mainly just wanting to log out when the isFullScreen had been called for temporary debug purposes.
For the game to go fullscreen, I had to manually add a setAsFullscreen function call when the window was being created. It appears that that would normally occur automatically, since I didn't pass in the windowed flag. Could there be an issue with my implementation of looking for the full screen flag?
I attempted to implement implSetCursorPosition but it just caused the mouse to go crazy and for the keyboard input to no longer work (couldn't use the w and s keys to navigate the menu). When is this function usually called? I saw some times where if it gets mouse movement, it calls back to re-center it. I'm wondering if it might be being called too often for Linux, or something might be wrong with an event getting propagated too much (as in if the manual mouse move could trigger another event, and so on).

recommended way to log

#include <Tempest/Log>
// functions:
Log::i - info
Log::d - debug
Log::e - error
// usage example
Log::d("x = ", npc->position().x," y = ",npc->position().y);

Could there be an issue with my implementation of looking for the full screen flag?

Normally it not suppose to work like that. The idea is:
implCreateWindow(Tempest::Window*,SystemApi::ShowMode) - creates a windows with default size, and specified show-mode.
Possible usage - implCreateWindow(nullptr,SystemApi::Maximized)
implCreateWindow(Tempest::Window *owner, uint32_t w, uint32_t h) - creates a window with specified size and ShowMode = Normal.
Workflow for opengothic:

create 1x1 Hidden window to query Vulkan-queues properties
delete this hidden window
create Maximized window for game itself
switch to fullscreen, if necessary(mainwindow.cpp):

  if(!gothic.isWindowMode())
    setFullscreen(true);

When is this function usually called?

There is  only one place:
void MainWindow::mouseMoveEvent(MouseEvent &event) {
  const bool fs = SystemApi::isFullscreen(hwnd());
  if(fs) {
    if(auto camera = gothic.gameCamera())
      spin = camera->getSpin();
    processMouse(event,true);
    mpos = Point(w()/2,h()/2);
    SystemApi::setCursorPosition(mpos.x,mpos.y);
    }
  }

Idea is similar to behavior of original game: read mouse position change in mouseMoveEvent and then return cursor to center of game window.

I've pushed some improvements to this:

Mouse cursor grab and center appears to be working now. I can move the mouse around and use the Left Click to interact with items. The activeCursorChange variable was due to the mouse events that are manually generated still cause X11 mouse events, so it'll ignore a mouse event until it clears the flag.
Switched the display setup to use a switch statement as requested.

Remaining issues:

For the setFullScreen call (if(!gothic.isWindowMode()) setFullscreen(true);), is there possibly a piece missing for that to work? I tried without the explicit call to set it fullscreen in the implCreateWindow function, but then it is only in maximized mode, instead of fullscreen.
The F3 key to flip between fullscreen and windowed mode does not appear to work. Forcing it to fullscreen at the beginning does work well. It looks like the isFullScreen call is working correctly (where it checks if it is full screen or not). Do you have some pointers as to where to look?

Other than that, the graphics side of things seem to be working ok from a quick glance.

I've tried to setup window creation on VirtualMachine:
have a similar result: for simple X11 app XChangeProperty doesn't take effect on already created window, meanwhile XSenEvent work:
bool X11Api::implSetAsFullscreen(SystemApi::Window *w, bool fullScreen) {
  XEvent e = {};
  e.xclient.type         = ClientMessage;
  e.xclient.window       = HWND(w);
  e.xclient.message_type = _NET_WM_STATE();
  e.xclient.format       = 32;
  e.xclient.data.l[0]    = 2;    // _NET_WM_STATE_TOGGLE
  e.xclient.data.l[1]    = _NET_WM_STATE_FULLSCREEN();
  e.xclient.data.l[2]    = 0;    // no second property to toggle
  e.xclient.data.l[3]    = 1;

  XSendEvent(dpy, DefaultRootWindow(dpy), False, SubstructureRedirectMask | SubstructureNotifyMask, &e);
  return true;
  }

Unfortunately, still can't figure-out what is wrong about XChangeProperty

Thanks, I tried XSendEvent and that seemed to work, as the extra call for setFullScreen was no longer needed. I went ahead and pushed that change up.
I updated implSetCursorPosition to use the root window instead of the windows->first. I tried doing the same to implShowCursor but that resulted in the cursor still being visible.

Hi, @d10sfan !
Your PR look good to me, since it still marked as WIP, just want to ask:
Are you ok to merge now, and create a followup tickets for known linux issues:

mouse is now only going left and right (I can't look up and down anymore).
better implementation for cursor hiding
?

Yeah I think this one is good to merge. I'll see what I can find out above the left and right issue. I believe it may have been introduced in a recent game update. I'll try to narrow it down which commit may have done it, or if it's something in my code.

I created a ticket for the mouse movement issue (https://github.com/Try/MoltenTempest/issues/12). Figured you could assign that to me if you want and I'll research into it what could be happening.


Added a Kindle ebook recommendation

This ebook is one of the top 5 books about Python on Amazon at the moment.

[x ] I have read freeCodeCamp's contribution guidelines.
[ x] My pull request has a descriptive title (not a vague title like Update index.md)
[x ] My pull request targets the master branch of freeCodeCamp.
[x ] None of my changes are plagiarized from another source without proper attribution.
[ x] My article does not contain shortened URLs or affiliate links.

If your pull request closes a GitHub issue, replace the XXXXX below with the issue number.
Closes #XXXXX

Thank you for opening this pull request.
Book recommendations are beyond the scope of the freeCodeCamp Guide, so we've decided to go ahead and remove these book recommendation articles.
I encourage you to review this book in the ratings category of the freeCodeCamp forum. Your recommendation will reach way more people there.
Thanks again recommending this book, and for contributing to the freeCodeCamp Guide.


How can I implement Karpenter On-Demand/Spot Ratio Split with argo-workflows?

Description
What problem are you trying to solve?
I am testing with argo-workflows with Karpenter scheduler.
My understanding is that it requires the argo workflow pod to set topologySpreadConstraints, in order for it to work.  But I do not see a way to set it in argo.   Did I miss something?  Anyone had experience with this?
Thanks.
How important is this feature to you?
Blocker from us to switch to Karpenter.

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

I'd recommend reaching out on the #karpenter Slack channel to see if other users have run into this specific problem. I'd imagine that channel is going to be more responsive getting feedback from users of Karpenter vs. contributors to it.


updated policy for kubernetes

This PR includes update to a k8s policy to include spec in rego parsing of resource normalise json

Codecov Report

Merging #1288 (bd6d279) into master (c729550) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master    #1288   +/-   ##
=======================================
  Coverage   77.20%   77.20%
=======================================
  Files         272      272
  Lines        7748     7748
=======================================
  Hits         5982     5982
  Misses       1406     1406
  Partials      360      360


The example code in the doc isn't working

The example code in the doc isn't working - empty items are appended.

@Maaark Which example are you looking at?

@dustincoates https://www.algolia.com/doc/search/infinite-scroll#browsing-records
It seems to go wrong with the template rendering part, the hits aren't parsed or so.

@Maaark Thanks for pointing that out. There's a typo, it appears: var results should be var result. We'll get it fixed.
No need to use Hogan--the widgets are completely agnostic to the technology and in fact the default instantsearch.js widgets are with React.

@dustincoates Thanks :)
About the template part, I meant to ask if I could use the templating functions in my own custom widget? So I wouldn't need to include Mustache/Hogan/React myself? Building a custom pagination widget that appends the next page results to the hits container after clicking a button and I'm a bit lost since I'm not familiar with React or any other javascript framework besides jQuery :P

@Maaark If I understand correctly, you can render the templates without needing a templating library. You'll need to build the elements and add to the DOM.

@dustincoates Nvm, already solved.


Added cgmatane.qc.ca

@Canardlaquay I am sorry for a delay with processing your request. It is now merged. Thank you!


Does YouTransfer have any API?

Does YouTranfer have any API support? REST/JSON for example?

For accessing the files you can read the json in the /opt/youtransfer/uploads directory. Each file has a corresponding json file that has all the meta data including the download link. I found this was easy enough to read and use for a bot I built.

Didn't test it. If I understand right, I can list everything by single json? I don't think it's safe if anyone can see every file available.
By API I also meant a possibility to upload things.

Each file has its own corresponding json file. There isn't currently any sort of user support so you'd need to build that yourself.


Simplify font registration, fix splice skipping directories.

Remove dirs.splice which can skip a path if a path prior to it does not exist. Example:
var foo = ['a', 'b', 'c'];
for (var idx in foo) {
    console.warn(foo[idx]);
    if (foo[idx] === 'b') foo.splice(foo.indexOf('b'), 1);
}
> a
> b

Guessing this splice is here from the early days of node-mapnik and just never got removed. In my particular case it was preventing ~/.fonts from being registered because /usr/local/share/fonts/truetype does not exist on my system.

yes, looks like very stale code. thanks for finding it. I'll take a look and likely remove fully.

fixed up in c4e9a57f79983feb.


Add support for OpenTelemetry Span Links.

What does this PR do?
Adds support for OpenTelemetry span links to the Trace Agent.
During the conversion from OTLP to the Datadog trace protobuf, any span with span links will have the span links added to the metadata with the key '_dd.span_links'.
Motivation
This change is part of an ongoing effort to support OpenTelemetry Span Links at Datadog.
Additional Notes
Span links will be JSON encoded as:
{ "trace_id":trace_id, "span_id":span_id[,"trace_state":trace_state]
[,"attributes":{ (key:value)+ }] [,"dropped_attributes_count":uint64] }
where trace_id & span_id are hex-encoded unsigned ints, trace_state is the W3C TraceState encoding as a string,  and key & value are arbitrary strings.
Note that "trace_state", "attributes", and "dropped_attributes_count" are optional and will only be present if they contain non-empty/non-zero values.
Possible Drawbacks / Trade-offs
This change only affects the OTel path and only for spans that contain span links so it will only impact a small percentage of spans. The main possible drawback will be the added processing overhead (converting span links to JSON) and the added metadata.
Describe how to test/QA your changes
Send a span with span links from an OpenTelemetry service and check the resulting converted span has the links in the metadata.
Reviewer's Checklist

[ ] If known, an appropriate milestone has been selected; otherwise the Triage milestone is set.
[ ] Use the major_change label if your change either has a major impact on the code base, is impacting multiple teams or is changing important well-established internals of the Agent. This label will be use during QA to make sure each team pay extra attention to the changed behavior. For any customer facing change use a releasenote.
[ ] A release note has been added or the changelog/no-changelog label has been applied.
[ ] Changed code has automated tests for its functionality.
[ ] Adequate QA/testing plan information is provided if the qa/skip-qa label is not applied.
[ ] At least one team/.. label has been applied, indicating the team(s) that should QA this change.
[ ] If applicable, docs team has been notified or an issue has been opened on the documentation repo.
[ ] If applicable, the need-change/operator and need-change/helm labels have been applied.
[ ] If applicable, the k8s/<min-version> label, indicating the lowest Kubernetes version compatible with this feature.
[ ] If applicable, the config template has been updated.

As requested by @dineshg13 , attaching a screenshot of the span link encoding from a test case.


How to manually select items after page loaded?

I'm using Ajax-Bootstrap-Select in a form that should be filled with data when page is loaded. How do I manually select items? My selectpicker is multiple-selection.
I've tried both:
var selectedElements = ["20958", "359", "327"] // These are item.value, they exist at the server
element.val(selectedElements);
element.selectpicker('render');

And
element.selectpicker('val', selectedElements);

Nothing happens. I assume this is because ajax-bootstrap-select didn't perform an ajax request yet, so there are no items. If I click on a select, execute some request against the server, this code start to work.
Is there any way how can I force to make ajax-bootstrap-select perform an ajax request, so I could fill the selected items in?
P.S.
My select definition is next:
<select id="@Html.IdForModel()" name="@Html.NameForModel()" class="selectpicker form-control" data-live-search="true" multiple></select>
...
 element.selectpicker().ajaxSelectPicker({
                     ajax: {
                         url: '@url',
                         type: 'GET'
                     },
                     preprocessData: function(data) {
                         var result = [];
                         for (var i = 0; i < data.length; i++) {
                             result.push({
                                 value: data[i].ProjectNo,
                                 text: data[i].Name,
                                 data: {
                                     content: "

" +
                                         data[i].ProjectNo +
                                         "

" +
                                         data[i].Name +
                                         "

"
                                 }
                             });
                         }
                         return result;
                     }
             });

I'm using bootstrap-select v1.11.2, bootstrap v3.3.7, jquery v3.1.0

I just realized that I can just generate a select with selected options inside:
<select id="@Html.IdForModel()" name="@Html.NameForModel()" class="selectpicker form-control" data-live-search="true" multiple>
       <option value="20958" data-content="

20958

Name1

">20958</option>
       <option value="359" data-content="

359

Name2

">359</option>
       <option value="327" data-content="

327

Name3

">327</option>
   </select>

This seems to work and is OK way to do this for me, but I just wanted to check out whether this is the most simple way to do this. It would be more elegant if I didn't have to generate option elements by myself

@archeg as you saw setting with .val and selectpicker('val', values) doesn't work because the options aren't there.  There is no way right now to trigger an ajax request with Ajax-Bootstrap-Select.  I don't think this is something we will add either, this is something I would expect the backend to fill in not Ajax-Bootstrap-Select to handle.  If you can give me a good reason that feature should exist I might consider it but as of right now I don't consider that in the scope of the project.

@truckingsim That's fine. I just wanted to hear your opinion. If you say the best way is to fill it from the server-side, then let it be that. Thanks for the answer.


Where is the source code for page-with and @open-draft/test-server packages?

Hi, thanks for the great libraries!
I'm working on a PR to (hopefully) improve support for Node 18 and native fetch. So far I've found a few related bugs caused by incorrect serialization of IPv6 host in URLs, which is a problem on Node 18 when running in dual stack environments like GitHub Actions because localhost can resolve to ::1, and some code in page-with and test-server libraries incorrectly serializes any IPv6 host to an invalid URL. The fix is to surround an IPv6 host with square brackets.
This is an easy bug to fix, but I don't know where to make the PR. I haven't been able to find the source code for page-with (no source listed) or @open-draft/test-server (source link 404). Is the source code for these packages available somewhere? I see that @kettanaito is their maintainer, but I cannot find the source repositories on his profile nor anywhere in the mswjs organization.
In the meantime, I'm able to workaround the bug by fixing it with re-exports and prototype patching, but that's not ideal

Hey, @milesrichardson.
Well, that's a mess. I'm glad to have this opportunity to clean things up.
You can find the source code for page-with here: https://github.com/kettanaito/page-with. If you could also add the repository url in package.json as a part of your changes I'd be grateful!
As for the @open-draft/test-server, it's a private package I've developed, so its source code is private for now. I don't have intention to open source it yet, but I can add the fix you propose manually and publish a new version so we can continue with proper testing of this, and many other dependent libraries.
On the related note, is the issue you're experiencing related to https://github.com/mswjs/interceptors/pull/215 by any chance?

Thanks! I pushed my changes with the hacky patch version of these fixes in #283. I made sure the commits with the patches are atomic so that reverting them can be done with git revert.

You can find the source code for page-with here: https://github.com/kettanaito/page-with. If you could also add the repository url in package.json as a part of your changes I'd be grateful!

Cool, I will take a look at this and hopefully open a PR (probably should spend the next few hours on other priorities -_-)
Basically there are two issues: the version of msw needs to be upgraded (latest version fixes Node v18 and has no breaking changes on earlier versions AFAICT); and the IPv6 serialization needs to be fixed in PreviewServer and possibly other places that didn't surface bugs here.

As for the @open-draft/test-server, it's a private package I've developed, so its source code is private for now. I don't have intention to open source it yet, but I can add the fix you propose manually and publish a new version so we can continue with proper testing of this, and many other dependent libraries.

Understood. The fix is simple here (same as page-with really) - you can see it in the PR. Unfortunately this is the package I had to patch by mutating its prototype and re-exporting it, which meant I needed to update the import of every file that uses @opendraft/test-server. This makes the PR dirty, but at least it's an easy revert.

On the related note, is the issue you're experiencing related to https://github.com/mswjs/interceptors/pull/215 by any chance?

Yes, I think this is one of the issues I fixed, but that change alone did not fix all the issues for some reason, I can't remember exactly why, but you can see the various fixes in the commits which are all related to IPv6 handling, except for the one that was incorrectly accessing URL.url instead of URL.href.

@kettanaito I fixed the upstream page-with bug in https://github.com/kettanaito/page-with/pull/9
Once that's fixed and released, I can update #283 to use the new page-with dependency, although that could be merged regardless (since it has the patch fix).
I'll close this issue since the question was answered. Thanks for open sourcing page-with, and for taking a look at @opendraft/test-server (the fix for which you can copy from #283).

Thank you for your involvement, @milesrichardson! It's my pleasure to review pull requests like this one.


Add support of collection assignment for Active Records

Right now only singular association assignment is supported, consider adding support for assignment for CollectionAssociation as well.

Resolved in #99 #101 #103 #104


refactor: Change query to get a percent for replicas ready

The query for Replicas_ready is modified to obtain the percentage of available replicas and this can be used across any size of Replicaset

Please, add a description to the PR, add a justify and explain why this change is needed

LGTM!


How to use a WebSocket offline?

Describe what you would like to know or do
I am working on an IoT project where two devices communicate; a phone and a camera.

The camera opens a hotspot.
The phone connects to a hotspot
And now I need communication between devices using socket.

How can I use a socket over a hotspot without access to the internet?

hello @denebchorny,
as long as they are both in the same network and have two different ip addresses, you should be able to access them.
Best regards,
Marcel


[RFC] logging: Default to redirecting printk() through it

Default to redirecting the printk() calls through the logging subsystem.
This has 2 advantages:

Removes potential race conditions between printk() and the logger
backend usage of the UART or any other backend
Printsk the printk() statements in-order with the rest of the
logs, since now by default printk() messages are deferred

Disadvantages:

printk() statements are limited in length
Additional memory consumption by default

Signed-off-by: Carles Cufi<EMAIL_ADDRESS>

I didn't yet even looked into details of new logging (i.e. not enabled it "for real" to debug some issue), but already see artifacts due to its buffering nature: lack of output in case of crash and:

Printsk the printk() statements in-order with the rest of the
logs

this, yes.
But for me this "solution" looks like a workaround of deficiencies of new logging (disclaimer: not trying to diminish "efficiencies" of it, just again, I haven't had a chance to witness them yet in real life). Instead, there should be an easy to access switch to make logging synchronous and it should be spammily advertized, so no developer had a chance to miss it.
So, informally I'm -1, and happy to move this into formal review. (Just trying to avoid knee-jerk reactions re: new things introduced). At the very least, it's too early for such changes yet, IMHO, there should be more time left to let people "feel" thru it.

Codecov Report

Merging #10715 into master will decrease coverage by 0.13%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master   #10715      +/-   ##
==========================================
- Coverage   53.23%   53.09%   -0.14%
==========================================
  Files         214      214
  Lines       25831    25831
  Branches     5697     5697
==========================================
- Hits        13752    13716      -36
- Misses       9762     9806      +44
+ Partials     2317     2309       -8

Impacted Files
Coverage Δ

include/posix/posix_sched.h
0% <0%> (-100%)
:arrow_down:

lib/posix/pthread_barrier.c
0% <0%> (-100%)
:arrow_down:

lib/posix/pthread_cond.c
62.5% <0%> (-20.84%)
:arrow_down:

lib/posix/pthread.c
68.03% <0%> (-12.33%)
:arrow_down:

lib/posix/pthread_mutex.c
76.38% <0%> (-1.39%)
:arrow_down:

misc/printk.c
91.56% <0%> (+3.01%)
:arrow_up:

lib/posix/pthread_sched.c
62.5% <0%> (+20.83%)
:arrow_up:

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 a794e39...f777831. Read the comment docs.

@pfalcon please note that with #10098 logger will flush all buffered logs in case of captured error so there are few cases when you won't see the log:

stop on breakpoint. In that case what i do if i need log is to temporarly put LOG_PANIC() before breakpoint line
error/reset which is not caputred by sw (e.g. power loss)

Please show us screen captures of samples/hello_world before and after the change.
(And may I say that such information should go into the commit message (of course, if there's interest in the quicker turnaround on the matter, otherwise can indeed wait until 10-20 people try themselves and form an opinion)).

Please show us screen captures of samples/hello_world before and after the change.
(And may I say that such information should go into the commit message (of course, if there's interest in the quicker turnaround on the matter, otherwise can indeed wait until 10-20 people try themselves and form an opinion)).

hello_world does not change at all its output with this PR. The difference is when there's intermingled messages, in which case this PR fixes the order in which the output messages are printed:
** Without this PR **
***** Booting Zephyr OS zephyr-v1.13.0-1191-gfbe43203b2 *****
Bluetooth initialized
Advertising successfully started
[00:00:00.007,629] <inf> bt_hci_core: HW Platform: Nordic Semiconductor (0x0002)
[00:00:00.007,659] <inf> bt_hci_core: HW Variant: nRF52x (0x0002)
[00:00:00.007,659] <inf> bt_hci_core: Firmware: Standard Bluetooth controller (0x00) Version 1.13 Build 99
[00:00:00.007,904] <wrn> bt_hci_core: bt_init: No ID address. Expecting one to come from storage.
[00:00:00.013,336] <inf> bt_hci_core: Identity: fb:d0:38:54:d1:7a (random)
[00:00:00.013,336] <inf> bt_hci_core: HCI: version 5.0 (0x09) revision 0x0000, manufacturer 0x05f1
[00:00:00.013,336] <inf> bt_hci_core: LMP: version 5.0 (0x09) subver 0xffff

** With this PR **
***** Booting Zephyr OS zephyr-v1.13.0-1191-gfbe43203b2 *****
[00:00:00.007,720] <inf> bt_hci_core: HW Platform: Nordic Semiconductor (0x0002)
[00:00:00.007,720] <inf> bt_hci_core: HW Variant: nRF52x (0x0002)
[00:00:00.007,751] <inf> bt_hci_core: Firmware: Standard Bluetooth controller (0x00) Version 1.13 Build 99
[00:00:00.007,995] <wrn> bt_hci_core: bt_init: No ID address. Expecting one to come from storage.
Bluetooth initialized
[00:00:00.011,383] <inf> bt_hci_core: Identity: fb:d0:38:54:d1:7a (random)
[00:00:00.011,413] <inf> bt_hci_core: HCI: version 5.0 (0x09) revision 0x0000, manufacturer 0x05f1
[00:00:00.011,413] <inf> bt_hci_core: LMP: version 5.0 (0x09) subver 0xffff
Advertising successfully started

hello_world does not change at all its output with this PR.

Wait, do you want to say that "redirecting thru logging" doesn't mean that usual logging message envelope will be added to it? Because for me, that's what phrase "redirect thru logging" means, and then again, the commit message could be improved to avoid confusion.

hello_world does not change at all its output with this PR.

Wait, do you want to say that "redirecting thru logging" doesn't mean that usual logging message envelope will be added to it? Because for me, that's what phrase "redirect thru logging" means, and then again, the commit message could be improved to avoid confusion.

That's right, I edited the commit message to clarify this.

@aescolar the native_posix build of tests/kernel/common and tests/posix/common is failing. Are you somehow synchronizing on the state of printk() output and therefore failing because this is now deferred?

@carlescufi : regarding tests/posix/common see #10508

@carlescufi : regarding tests/kernel/common it seems it is failing like in all the other platforms.

@carlescufi : regarding tests/posix/common see #10508

ACK, thanks!

@carlescufi : regarding tests/kernel/common it seems it is failing like in all the other platforms.

Oops, my mistake. Pushed a fix. Thanks!

This sounds awful to me. Given that the logging subsystem is up and available now, the ONLY remaining use should be for synchronous debug logging, right?

The only remaining use of printk() is synchronous debug logging and also providing a simple way of outputting strings to a serial backend without additional code (the logging subsystem requires defining a module AFAIK).

And making printk asynchronous and forcing it to depend on another rather large subsystem is absolutely a hardship for debugging.

That is not what we are doing though. We are only making it asynchronous when the users enable CONFIG_LOG. Without CONFIG_LOG enabled, printk remains exactly as it was. So you only need to disable CONFIG_LOG (which is not enabled by default btw).

I mean, I need to get printk output from interrupt handlers. I need it to work in early boot. I need to see it synchronously so I can debug SMP ordering issues. If that doesn't work by default then I'll be constantly turning this feature off and complaining when support for "traditional" printk bitrots, as it surely will.
I guess the meat of my question is: who are the printk() users who will actually benefit from this change?

Most samples use printk(). When using synchronous printk() with asynchronous LOG(), the output is not shown in the right order. Synchronous printk() in ISRs typically yields to non-functioning hardware because of delays introduced. So I'd say most  user would benefit.

@nordic-krch @jarz-nordic @andyross @nashif @jhedberg
That said, @andyross has a point, so there could be an alternative solution. Instead of doing this, we could do the following:

Create a new default logger that the app/sample can LOG() from directly without any extra additions, enabled by default
Replace the calls to printk with LOG() in all samples
Show the usage of printk() as a synchronous logging mechanism in a new sample
Keep CONFIG_LOG_PRINTK=n as of today

Thoughts?

does this work for fatal CPU exceptions?

@andyross logger is intended to be used in interrupt handlers and actually it's much more convenient there since it does not block interrupt for significant amount of time (like synchronous printk will do). It takes <5us to log a message while it will take >200us when synchronous approach is used. Logger is ready from the start (initiliazed as early as possible in _Cstart). Ordering is also ensured since messages are queued sequentially and timestamp is added.
Logger supports multiple backends and each backend can have different filter settings so in future we can add something like dmesg where messages from kernel would be buffered in ram and flushed on shell command.
Another thing is that when printk goes through logger, output is multiplexed on message basis. If printk goes directly to the output it will compete with the logger, or shell or any other user.
@andrewboie
Logger supports panic mode. Once panic mode is triggered logger switches all backends to synchronous mode and starts working in synchronous mode. #10098 added triggering panic modes to fault handlers.

Having fast logging doesn't do any good if I never see the message.  All I'm saying is that to do my job I absolutely need a trivially easy synchronous output routine I can use anywhere.  If that's not going to be printk() then what is it?  If it's a non-default mode of the logging subsystem, are we testing it to make sure it always works?

Since there is no consensus here I will instead send PRs to switch the samples to using LOG() instead of printk(), which probably makes sense anyway.

@carlescufi : Well, it's hard to refrain from comment that road to far and roundabout is paved with intentions. We've got so advanced, so interstellar logging ... that now we have to try hard to find a way to work it around.

using LOG() instead of printk(), which probably makes sense anyway.

... And while doing so, we're trying to hog the notion of "console", first by shell, now by logging, round and round. Dare I say what I've said before https://github.com/zephyrproject-rtos/zephyr/issues/8168: the only thing we needed in is interrupt-driven, not thread-driven logging, with clear way to make it fully blocking, as it was before This is in turn addressed by https://github.com/zephyrproject-rtos/zephyr/pull/10765.
But surely, let's keep working it around. I don't see that converge to anything though, until logging is scaled down to work in down-to-earth mode.

@pfalcon not sure I follow the irony-charged statements. The logger might not be ideal, but it's functional and it certainly works better than what we had before.
You say we only needed interrupt-driven logging, but the problem was not only that it was blocking, but also the cycles it took to format the string. That's why we use deferred logging, to be able to log anywhere without impacting the timing too much.

The logger might not be ideal, but it's functional and it certainly works better than what we had before.
You say we only needed interrupt-driven logging, but the problem was not only that it was blocking, but also the cycles it took to format the string. That's why we use deferred logging, to be able to log anywhere without impacting the timing too much.

Logger is way too good for task which most people have at hand. You know rsyslog? Like, there was normal syslogd, but then they wrote rsyslog. You probably can't run 1024 CPU cluster without it. Not sure anybody need it at home. Or some advanced NoSQL database - not sure about Redis, but MongoDB just must have it. But embedded system? Well, nice niche feature which may be needed sometimes.

That's why we use deferred logging, to be able to log anywhere without impacting the timing too much.

Yes, that's why we use deferred logging. But turns out, deferred logging doesn't play well with non-deferred output. Our solution? Defer output! Just imagine, what is printed as normal output by one thread, will be output by another thread. Nobody else has that, but Zephyr will. There's no irony here - it's plain-word description of the situation we find ourselves in.

@andyross

Having fast logging doesn't do any good if I never see the message. All I'm saying is that to do my job I absolutely need a trivially easy synchronous output routine I can use anywhere.

Have you been experiencing any issues with new deferred logging? We've been using same architecture for some time and it worked well. There is CONFIG_LOG_INPLACE_PROCESS option which handles logs synchronously. Currently i see following cases when you will not see latest logs:

breakpoint
sudden death (e.g power loss, pin reset)
fault before logger is initialized
log thread not being executed.

For each case there is countermeasure you can apply (except sudden death).

@pfalcon

Logger is way too good for task which most people have at hand.

I must disagree. When we want to log in interrupts, log to different backends with independent filtering, log from multicores and we have kb of rom and ram and mHz not gHz we need something different than simple printk. You are mainly focusing on the cost of deferred logging forgetting benefits. I heard that using sys_log couldn't be used in usb, i've seen that net ping was decreased hundred times by switching to new logger (https://github.com/zephyrproject-rtos/zephyr/pull/8816#issuecomment-403818798) and i have seen how we benefited in nordic sdk by switching to deferred logging.
I think we should focus on closing those gaps where possible (like logging in initial phase).


Support for Snappy content compression

Motivation:
Addresses https://github.com/line/armeria/issues/5125
Modifications:

Added support for Snappy content compression

Result:

Closes #5125

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

Hi All, thanks for the feedback. I will be traveling for a month starting tomorrow and I won't be able to dedicate a lot of time to work on this feature. I was hoping to wrap it up before my trip, but I couldn't. So please feel free to unassign this issue if it's taking too long.

I will be traveling for a month starting tomorrow and I won't be able to dedicate a lot of time to work on this feature.

Enjoy your trip! 🏖 I will handle the remaining comments.

All comments are addressed. PTAL.

🚀 🚀 🚀


Add kubelet-cert-authority as default

Summary
Add the argument --kubelet-certificate-authority as default in kube api-server.
Testing
Tested locally by building the snap and enabling and disabling CIS addon.
Related PR: https://github.com/canonical/microk8s/pull/4044

Lets keep the current behavior. We need to make sure deployments that came from refreshing from an old revision (eg 1.27) that they do not have this argument set will be able to switch to CIS hardening.


feat(search) : match phrase, multi match with and operator

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

2 of 6 (33.33%)  changed or added relevant lines in 1 file are covered.
6 unchanged lines in 1 file lost coverage.
Overall coverage decreased (-0.2%) to 85.604%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

internal/store/elasticsearch/discovery_search_repository.go
2
6
33.33%

Files with Coverage Reduction
New Missed Lines
%

internal/store/elasticsearch/discovery_search_repository.go
6
79.17%

Totals

Change from base Build<PHONE_NUMBER>:
-0.2%

Covered Lines:
5203

Relevant Lines:
6078

💛  - Coveralls


Waiting on first live trade to display reports, could be a few minutes ...

I have below command running successfully
zenbot trade --paper
But it never runs successfully and keep on the below line for hours and hours . No execution below this line "Waiting on first live trade to display reports, could be a few minutes ..."
Command : zenbot trade --paper  bittrex.XRP-BTC
console log :
api running on <IP_ADDRESS>:7117/trades
fetching pre-roll data:
please note: the bittrex api does not support backfilling (trade/paper only).
please note: make sure to set the --period=1m to make sure data for trade/paper is fetched.
bittrex.XRP-BTC saved 100 trades 1 days left
download complete!
           DATE            PRICE     DIFF            VOL         RSI                         ACTIONS                      BAL                PROFIT

---------------------------- STARTING PAPER TRADING ----------------------------
!!! Paper mode enabled. No real trades are performed until you remove --paper from the startup command.
Press  l  to list available commands.
please note: the bittrex api does not support backfilling (trade/paper only).
please note: make sure to set the --period=1m to make sure data for trade/paper is fetched.
Waiting on first live trade to display reports, could be a few minutes ...
---------- Log ends -----------
Here is
System information

using Vanilla Zenbot version:
OS Platform and Distribution (Mac osx 10.11.6):
Zenbot version = 4.0.5:
NodeJS version = 9.2.1:
Python version = 2.7.10:
**Exact command to reproduce =  zenbot trade --paper  bittrex.XRP-BTC
**:

This issue was moved to highvelocityspace/zenbot#46

I'm getting this today on live trading with Binance

Dear issue reporter,
We have slightly changed our github issue policy and would now kindly request folks that have questions that they ask them in our zenbot subreddit.
You can find it here: https://reddit.com/r/zenbot
This issue will be closed, but if you disagree with your ticket being marked as a question feel free to leave a comment defending your case.
Thanks for contributing time and effort!
Greetings,
🤖


Implement deploy token managed resource

Signed-off-by: Stanislav2017<EMAIL_ADDRESS>Description of your changes
Added DeployToken api, client side and controller side. Added referencers for relation DeployToken with Project without hardcoded IDs

Fixes https://github.com/crossplane-contrib/provider-gitlab/issues/20
I have:

[x] Read and followed Crossplane's contribution process.
[x] Run make reviewable test to ensure this PR is ready for review.

How has this code been tested
manually and tests

LGTM
Thanks a lot @Stanislav2017!


Documentation Request: How to use flynn-host

Hi,
it would be great if there was a chapter in the docs available about how to upgrade flynn in my cluster in case a new version is released.
I just found out that
flynn-host update

is used for this. So I reformulate: It would be great if there was a chapter in the docs available about how to use the tool flynn-host. :)

We will be adding full documentation on the update process once #2003 is merged.

Many details are available at https://flynn.io/docs/production
Please open new issues for anything you notice that is missing.


SpreadsheetComparatorNameListDialogComponent

Closes https://github.com/mP1/walkingkooka-spreadsheet-dominokit/pull/3630


Cask request: microsoft-azure-storage-explorer

Cask details
This cask already exists, but I'm curious about a modification.
Currently:
This cask does not use a SHA checksum. It also only downloads the "latest" version so updating involves either an uninstall/reinstall or forcefully reinstalling.
Proposal:
I'd like to update the cask so it depends on a version, includes a SHA sum, and downloads from the final URL. Would this be an issue or is it preferred to use "current" and force reinstall packages?

We always prefer versioned Casks, so this change is welcomed (assuming you can actually find a stable download url. Hashes that change per version aren't an issue, FYI. (ie. see visual-studio-code).
Closing, as the question was answered, but more than happy to answer technical/implementation questions on the PR.


Create the generic Prover

After we are done with Phase 1 of the large MSM project we will have created a few different Provers. This task aims to make one generic Prover that we can instantiate and customize for each context in which it will be used.

This was done :tada:


current nightly does not compile

thrdlist.c references a member of PPH_THREAD_NODE which literally does not exist : IdealProcessorMask :

typedef struct _PH_THREAD_NODE
{
    PH_TREENEW_NODE Node;

    PH_SH_STATE ShState;

    HANDLE ThreadId;
    PPH_THREAD_ITEM ThreadItem;
// end_phapppub

    PH_STRINGREF TextCache[PH_THREAD_TREELIST_COLUMN_MAXIMUM];

    ULONG ValidMask;

    HANDLE ThreadContextHandle;
    HANDLE ThreadReadVmHandle;
    BOOLEAN ThreadContextHandleValid;
    BOOLEAN ThreadReadVmHandleValid;

    ULONG PagePriority;
    IO_PRIORITY_HINT IoPriority;
    BOOLEAN BreakOnTermination;
    BOOLEAN PendingIrp;
    USHORT LastSystemCallNumber;
    ULONG LastStatusCode;
    ULONG ApartmentState;
    PH_THREAD_TOKEN_STATE TokenState;
    WCHAR ThreadIdText[PH_INT32_STR_LEN_1];
    WCHAR CpuUsageText[PH_INT32_STR_LEN_1];
    PPH_STRING CyclesDeltaText; // used for Context Switches Delta as well
    PPH_STRING ContextSwitchesDeltaText;
    PPH_STRING StartAddressText;
    PPH_STRING PrioritySymbolicText;
    PPH_STRING CreatedText;
    PPH_STRING NameText;
    PPH_STRING StateText;
    PPH_STRING LastSystemCallText;
    PPH_STRING LastErrorCodeText;
    PPH_STRING ApartmentStateText;
    WCHAR ContextSwitchesText[PH_INT64_STR_LEN_1];
    WCHAR PriorityText[PH_INT32_STR_LEN_1];
    WCHAR BasePriorityText[PH_INT32_STR_LEN_1];
    WCHAR CyclesText[PH_INT64_STR_LEN_1];
    WCHAR KernelTimeText[PH_TIMESPAN_STR_LEN_1];
    WCHAR UserTimeText[PH_TIMESPAN_STR_LEN_1];
    WCHAR IdealProcessorText[PH_INT32_STR_LEN + 1 + PH_INT32_STR_LEN + 1];
    WCHAR ThreadIdHexText[PH_INT32_STR_LEN_1];
    WCHAR CpuCoreUsageText[PH_INT32_STR_LEN_1];
// begin_phapppub
} PH_THREAD_NODE, *PPH_THREAD_NODE;
// end_phapppub

I recommend enabling GitHub actions and setting up a proper, automated build - which will catch errors and missing code like this every time, all the time.

The project already uses CI and a nightly build?

It obviously doesn't. There are no github actions. Also : if nightly builds "actually" were implemented the very first run woud've failed.

CI runs with a US timezone... It reported a problem but someone has to be awake to actually do anything about it.


There is a issue on soft deleting .

customer model
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;

class Customer extends Model
{
    use SoftDeletes;

    protected $fillable  = ['name','place','address'];

    protected $dates = ['deleted_at','created_at','updated_at','amc_date'];

    protected $appends = ['amc_or_not','active_or_not','voice_or_not'];

    public function User()
    {
        return $this->hasMany('User');
    }

    public function Student()
    {
        return $this->hasManyThrough('Student','User');
    }

user model
use Illuminate\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Auth\Passwords\CanResetPassword;
use Illuminate\Contracts\Auth\Authenticatable as AuthenticatableContract;
use Illuminate\Contracts\Auth\CanResetPassword as CanResetPasswordContract;
use Illuminate\Database\Eloquent\SoftDeletes;

class User extends Model implements AuthenticatableContract, CanResetPasswordContract
{
    use Authenticatable, CanResetPassword;

    use SoftDeletes;

    protected $table = 'users';

    protected $fillable = ['name', 'email', 'password','mobno','type','active'];

    protected $hidden = ['password', 'remember_token'];

    protected $dates = ['deleted_at'];

    protected $appends = ['usertype'];

    public function Customer()
    {
        return $this->belongsTo('SmSPortal\Customer');
    }

student model

use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;

class Student extends Model
{
    use SoftDeletes;

    protected $table = 'studentsdata';

    protected $dates = ['deleted_at','created_at','updated_at'];

    protected $fillable = ['admno','name','mobno'];
}

when i perform this query
$delete = Customer::find($this->customer_id)->Student()->delete();

i get the following error
QueryException in Connection.php line 636:
SQLSTATE[23000]: Integrity constraint violation: 1052 Column 'updated_at' in field list is ambiguous (SQL: update `studentsdata` inner join `users` on `users`.`id` = `studentsdata`.`user_id` set `studentsdata`.`deleted_at` = 2015-10-05 10:46:56, `updated_at` = 2015-10-05 10:46:56 where `studentsdata`.`deleted_at` is null and `users`.`deleted_at` is null and `users`.`customer_id` = 2)

It's look like, query get confuse to select specific table column update_at, all table include this column, so you have to define table name if we talk about custom query tableName.update_at
I also face this issue already.

this is not a solution .its a bug of laravel eloquent.
can say how to fix it ??

@GrahamCampbell Isn't this a bug, but you just close it without providing some reason, Are there other ways around?

@trandaihung check https://github.com/laravel/framework/issues/13909 it's a duplicate.

use the functions has, withHas and doestnhave, these functions are used to join with the propeties of the models.
https://laraveldaily.com/eloquent-doesnthave-get-rows-children/
https://laravel.com/docs/5.8/eloquent-relationships#querying-relationship-existence


Attribute inherited from sibling in a v-if/v-else structure

Version
2.6.10
Reproduction link
https://codepen.io/anon/pen/YoygXR
Steps to reproduce

Keep the mouse out of the result iframe of Codepen. Initially "false" is printed and the <progress> is empty

Trigger mousemove on the result iframe. The text is changed to "true" since progress now is === null and the <progress> is still empty

What is expected?
Since progress is === null (verified by the text) the <progress> should be rendered without a value attribute, i.e. in an indeterminate state. This is expected because the v-if <progress> doesn't have a value attribute in the template.
What is actually happening?
The <progress> rendered when progress === null has a value attribute set. I assume this is inherited from the v-else <progress>.

Tested in Chrome ~74. Please ask any questions and I'll provide further details.

I believe this might be related to 2.4.3.
With Vue 2.4.3 it doesn't work: https://codepen.io/anon/pen/zVvbWj
WIth Vue 2.4.2 it works as expected: https://codepen.io/anon/pen/dBYrer

You need to use key to let Vue stop reusing the same element in this case. See the docs.
If you do want to let Vue reuse the same element, just not put the logic in if/else branches, instead you should bind reactive values with v-bind.

@Justineo: I still think there may be a issue here.
Please see this variation with a single element and undefined instead of null:
Works with 2.4.2: https://codepen.io/anon/pen/VJvRVJ
Doesn't work with 2.4.3: https://codepen.io/anon/pen/xowBMm
Doesn't work with 2.6.10: https://codepen.io/anon/pen/xowBMm

Correct link to 2.4.3: https://codepen.io/anon/pen/MMaxRQ
It's also relevant that the behaviour changed between these versions. What caused that change?

I believe it's due to https://github.com/vuejs/vue/commit/7116af4e07520040ed7328c39d0a456808bfe1e1
You can see the difference here: https://jsbin.com/zecezop/1/edit?html,js,output

@Justineo: I'm not sure I follow.
Shouldn't this be considered a bug? Please see the new example here: https://codepen.io/anon/pen/pXjBQq
There are two <progress>

The first has :value="progress" where progress === undefined

The second has :value="undefined"

They are rendered differently, which seems counterintuitive.

I agree. Could you please open a new issue with the minimal repro you just found? It’s already quite different from the original issue.


Make quantized-mesh availability tile loading part of the tile content load process

This is a PR into #485.
In the process of writing https://github.com/CesiumGS/cesium-native/blob/main/doc/implicit-tiling.md, I realized there might be a pretty straightforward way to make sure all of the necessary availability tiles are loaded. This PR is an attempt to implement it, and I think it worked out ok. @joseph-kaile please take a look, and if you're happy you can merge both this PR and #485. Let me know if you have any concerns.
The basic idea here is that whenever we're loading a quadtree tile, consider whether that tile is also an "availability tile" in any layers. If it is, download that layer's version of the tile and add its availability data to the TileContext. And make these extra loads prerequisites for moving the tile into the ContentLoaded state. Because we never create implicitly-tiled children before the parent hits ContentLoaded, this guarantees that we won't try to create children - upsampled or otherwise - before we know whether or not they're available.
This eliminates the need to separately track availability tile loads and simplifies the code quite a bit.

I add about 4 layers with different resolutions and can confirm that it works as expected
In the image above, the wrinkled surfaces represent different layers on top the CWT


[TASK] Reference Architecture and Sizing Guidelines for Longhorn v1.7.x

What's the task? Please describe

In the ticket https://github.com/longhorn/longhorn/issues/2598, we built the report Reference Setup, Performance, Scalability, and Sizing Guidelines: Public Cloud - Medium Node Spec for Longhorn 1.6.x. The goal of this ticket is build similar reports for Longhorn 1.7.x and with more cluster spec:

[ ] Public Cloud Medium Node Spec
[ ] Public Cloud Big Node Spec
[ ] On-Prem Medium Node Spec
[ ] On-Prem Big Node Spec

Also, we should try to automate the process to save time

Note: the report for 1.7.x so it the milestone would be 1.8.0 (a.k.a before the release of 1.8.0 we should complete the report for 1.7.x)


Tweaks

[x] Add Warning with Confirmation Dialogue to bootstrap Command
[x] Update README with supported OS
[ ] Add --no-confirm flag for bootstrap

perfect!


split out into multiple crates + rename

I think I want to split the library into multiple parts.
I also want to if possible use a better name, twitch_api2 is only used because twitch_api was taken
e.g
come up with a name, say foo, and then

twitch_types (this should probably be just that as it should be pretty generic)
foo_helix
foo_eventsub
foo_pubsub
foo_core
implements all "base" types used for above crates.
foo
implements the rest, e.g clients and their actions

@simonsan would you two be willing to give me access to twitch_api on the crates.io registry? If deemed necessary we could also transition as you mentioned in https://github.com/Emilgardis/twitch_api2/issues/27#issuecomment-717757479 to an organization. I've pre-allocated twitch-rs for that.
also ping @Nerixyz who might be interested in this effort

Sorry for late reply, sent an invite on crates.io and would prefer the org on Github, also for future maintainability.

Joined the org, feel free to push this crate to twitch_api crate on crates.io. ;-)
Might make sense to yank the other pushed versions beforehand.

Once 0.7.0 is out for real, need to do mark twitch_api2 as deprecated


sql: support the GRANT ON SCHEMA command

PR: https://github.com/cockroachdb/cockroach/pull/53344
From release notes:

Added support for the GRANT ... ON SCHEMA command. [#53344][#53344] {% comment %}doc{% endcomment %}

Since this is a new feature, not sure if you want to handle this or pass over to @Amruta-Ranade. Please discuss.


[Feature] Support complete index meta

Fixes #34019
What type of PR is this:

[ ] BugFix
[x] Feature
[ ] Enhancement
[ ] Refactor
[ ] UT
[ ] Doc
[ ] Tool

Does this PR entail a change in behavior?

[x] Yes, this PR will result in a change in behavior.
[ ] No, this PR will not result in a change in behavior.

If yes, please specify the type of change:

[ ] Interface/UI changes: syntax, type conversion, expression evaluation, display information
[ ] Parameter changes: default values, similar parameters but with different default values
[ ] Policy changes: use new policy to replace old one, functionality automatically enabled
[ ] Feature removed
[ ] Miscellaneous: upgrade & downgrade compatibility, etc.

Checklist:

[x] I have added test cases for my bug fix or my new feature
[ ] This pr needs user documentation (for new or modified features or behaviors)

[ ] I have added documentation for my new feature or new function

Bugfix cherry-pick branch check:

[ ] I have checked the version labels which the pr will be auto-backported to the target branch

[x] 3.2
[ ] 3.1
[ ] 3.0
[ ] 2.5

Because you introduce index_id field in this change list. I hope you can explain the following things

When an old cluster upgrade, how do the existing indexes get id for both backend and frontend.
How do you make the index id in frontend and backend have the same id for BE and FE.

Add a new state in existing field in a big change for StarRocks. So I think you can separate the index-id part from the others into a new PR, then we can discuss and review it very carefully.

@imay When old cluster upgrade, all indexId of indexes are -1, but OlapTable.onReload() will be called and tryToAssignIndexId will assign monotonically increasing indexId and

Because you introduce index_id field in this change list. I hope you can explain the following things

When an old cluster upgrade, how do the existing indexes get id for both backend and frontend.
How do you make the index id in frontend and backend have the same id for BE and FE.

Add a new state in existing field in a big change for StarRocks. So I think you can separate the index-id part from the others into a new PR, then we can discuss and review it very carefully.

1、For GIN, the Indexes in the old cluster could not be assigned the IndexId, so it is fine when upgrade from the old; But for BITMAP index, it may have inconsistent indexId when upgrade from the old, but BITMAP would ignore it, so how about assigning the meaningful IndexId to GIN only and assigning -1 to BITMAP permanently.
2、In fact, We should not modify the state for old index type, the best way to be compatible with the old is to assign a default value for it then ignore this field during the all dataflow of BITMAP. Now, all we need to add is a meaningful IndexId for the new index type. Therefore, we have no need to concern about the consistence of indexId between FE and BE.

@dujijun007 could you please add some description about the PR?