Watch of individual objects is effectively broken

Using a watch expression on endpoints can lead to unpredictable behavior that includes returning a watch stream that ignores filters (e.g. a {name} determination) and returns items of the wrong type (e.g. changes to PODS in the ENDPOINTS stream).
Repro Steps
curl http://localhost:8080/api/v1beta1/watch/endpoints/guestbook?namespace=default

returns
{"type":"ADDED","object":{"kind":"Endpoints","id":"kubernetes","uid":"b0f8c701-d7df-11e4-88b2-a0481c7e9013","creationTimestamp":"2015-03-31T19:54:07Z","selfLink":"/api/v1beta1/endpoints/kubernetes?namespace=default","resourceVersion":7,"apiVersion":"v1beta1","namespace":"default","protocol":"TCP","endpoints":["<IP_ADDRESS>:6443"],"subsets":[{"addresses":[{"IP":"<IP_ADDRESS>"}],"ports":[{"port":6443,"protocol":"TCP"}]}]}}
{"type":"ADDED","object":{"kind":"Endpoints","id":"kubernetes-ro","uid":"b0fe3434-d7df-11e4-88b2-a0481c7e9013","creationTimestamp":"2015-03-31T19:54:07Z","selfLink":"/api/v1beta1/endpoints/kubernetes-ro?namespace=default","resourceVersion":8,"apiVersion":"v1beta1","namespace":"default","protocol":"TCP","endpoints":["<IP_ADDRESS>:7080"],"subsets":[{"addresses":[{"IP":"<IP_ADDRESS>"}],"ports":[{"port":7080,"protocol":"TCP"}]}]}}
{"type":"ADDED","object":{"kind":"Endpoints","id":"redis-master","uid":"e75b5a4e-d7f2-11e4-88b2-a0481c7e9013","creationTimestamp":"2015-03-31T22:11:39Z","selfLink":"/api/v1beta1/endpoints/redis-master?namespace=default","resourceVersion":4066,"apiVersion":"v1beta1","namespace":"default","protocol":"TCP","endpoints":["<IP_ADDRESS>:6379"],"targetRefs":[{"endpoint":"<IP_ADDRESS>:6379","targetRef":{"kind":"Pod","namespace":"default","name":"redis-master-controller-pflbd","uid":"9d0ee66a-d7f1-11e4-88b2-a0481c7e9013","resourceVersion":"3815"}}],"subsets":[{"addresses":[{"IP":"<IP_ADDRESS>","targetRef":{"kind":"Pod","namespace":"default","name":"redis-master-controller-pflbd","uid":"9d0ee66a-d7f1-11e4-88b2-a0481c7e9013","resourceVersion":"3815"}}],"ports":[{"port":6379,"protocol":"TCP"}]}]}}
{"type":"ADDED","object":{"kind":"Endpoints","id":"redis-slave","uid":"52c784ab-d7f3-11e4-88b2-a0481c7e9013","creationTimestamp":"2015-03-31T22:14:39Z","selfLink":"/api/v1beta1/endpoints/redis-slave?namespace=default","resourceVersion":4178,"apiVersion":"v1beta1","namespace":"default","protocol":"TCP","endpoints":["<IP_ADDRESS>:6379","<IP_ADDRESS>:6379"],"targetRefs":[{"endpoint":"<IP_ADDRESS>:6379","targetRef":{"kind":"Pod","namespace":"default","name":"redis-slave-controller-iebcg","uid":"0b95b8b0-d7f3-11e4-88b2-a0481c7e9013","resourceVersion":"4114"}},{"endpoint":"<IP_ADDRESS>:6379","targetRef":{"kind":"Pod","namespace":"default","name":"redis-slave-controller-aiuwh","uid":"0b95c218-d7f3-11e4-88b2-a0481c7e9013","resourceVersion":"4122"}}],"subsets":[{"addresses":[{"IP":"<IP_ADDRESS>","targetRef":{"kind":"Pod","namespace":"default","name":"redis-slave-controller-iebcg","uid":"0b95b8b0-d7f3-11e4-88b2-a0481c7e9013","resourceVersion":"4114"}},{"IP":"<IP_ADDRESS>","targetRef":{"kind":"Pod","namespace":"default","name":"redis-slave-controller-aiuwh","uid":"0b95c218-d7f3-11e4-88b2-a0481c7e9013","resourceVersion":"4122"}}],"ports":[{"port":6379,"protocol":"TCP"}]}]}}
{"type":"MODIFIED","object":{"kind":"Endpoints","id":"guestbook","uid":"d036af74-d7f3-11e4-88b2-a0481c7e9013","creationTimestamp":"2015-03-31T22:18:09Z","selfLink":"/api/v1beta1/endpoints/guestbook?namespace=default","resourceVersion":253567,"apiVersion":"v1beta1","namespace":"default","protocol":"TCP","endpoints":["<IP_ADDRESS>:3000","<IP_ADDRESS>:3000","<IP_ADDRESS>:3000"],"targetRefs":[{"endpoint":"<IP_ADDRESS>:3000","targetRef":{"kind":"Pod","namespace":"default","name":"guestbook-controller-k5zf8","uid":"89cc6848-d7fd-11e4-88b2-a0481c7e9013","resourceVersion":"6422"}},{"endpoint":"<IP_ADDRESS>:3000","targetRef":{"kind":"Pod","namespace":"default","name":"guestbook-controller-7muj6","uid":"26e07ca5-da6d-11e4-88b2-a0481c7e9013","resourceVersion":"137761"}},{"endpoint":"<IP_ADDRESS>:3000","targetRef":{"kind":"Pod","namespace":"default","name":"guestbook-controller-4mot1","uid":"933d82a7-dc93-11e4-88b2-a0481c7e9013","resourceVersion":"253562"}}],"subsets":[{"addresses":[{"IP":"<IP_ADDRESS>","targetRef":{"kind":"Pod","namespace":"default","name":"guestbook-controller-k5zf8","uid":"89cc6848-d7fd-11e4-88b2-a0481c7e9013","resourceVersion":"6422"}},{"IP":"<IP_ADDRESS>","targetRef":{"kind":"Pod","namespace":"default","name":"guestbook-controller-7muj6","uid":"26e07ca5-da6d-11e4-88b2-a0481c7e9013","resourceVersion":"137761"}},{"IP":"<IP_ADDRESS>","targetRef":{"kind":"Pod","namespace":"default","name":"guestbook-controller-4mot1","uid":"933d82a7-dc93-11e4-88b2-a0481c7e9013","resourceVersion":"253562"}}],"ports":[{"port":3000,"protocol":"TCP"}]}]}}

This result includes updates for services "kubernetes", "kubernetes-ro", "redis-slave", "redis-master", etc.  Even though the requesting URL indicated only "guestbook" updates were to be watched.
This seems to only occur when no resourceVersion is specified and the most recent resourceVersion has fallen off the etcd watch window.
Expected Behavior
The expected behavior when resourceVersion is not specified I would think should be either:

an initial update with the latest version of the resource, followed by filtered updates.
nothing, followed by filtered updates.

Though I'm not sure which of these is actually the spec.  I would prefer (1) since it allows you to do a resource watch without having to first do a separate GET.  But (2) coupled with a preceding GET would yield the same results.

IRC: https://botbot.me/freenode/google-containers/2015-04-06/?msg=35967134&page=6
cc @lavalamp @brendandburns

The pods mentioned in the stream are references to the pods corresponding to endpoints. See #4482 for discussion behind the feature.
We probably need to distinguish the resourceVersion at which an object was last modified, which is also used as an update precondition, vs. the current (global) resourceVersion needed for watch.

@smarterclayton Does the change to use GET with watch as a query parameter enable the GET to both return the latest version and subscribe to changes, or is a separate non-watch GET still required?

/subscribe

If you pass resourceVersion=0 you get list then watch (for single or multiple).

On Apr 6, 2015, at 4:33 PM, Brian Grant<EMAIL_ADDRESS>wrote:
@smarterclayton Does the change to use GET with watch as a query parameter enable the GET to both return the latest version and subscribe to changes, or is a separate non-watch GET still required?
—
Reply to this email directly or view it on GitHub.

That behavior has been there for a while - the only challenge is you don't know when the list is complete, and we felt that list then watch more clearly delineated that.

We probably need to distinguish the resourceVersion at which an object was last modified, which is also used as an update precondition, vs. the current (global) resourceVersion needed for watch.

This.

Watching with resourceVersion=0 should return an error, IMO.

I think the semantics for {watch a single resource} vs. {watch all resources of the same type} should be separated.
Single Resource
When watching a single resource I would expect the watch to have consistent semantics.  That is, I would expect it to be possible to watch an item and be guaranteed either:

I saw every change to the item, or
I knew that a change was missed (and so could do a raw GET to re-sync).

To this end it would be ideal if watch for a single item had the following semantics:
Basic Watch
curl http://localhost:8080/api/v1beta1/watch/endpoints/guestbook?namespace=default

Delivered the current state, followed by a list of all changes.  If any change is missed or can't be delivered then the watch is terminated.
Reconnect Watch
curl http://localhost:8080/api/v1beta1/watch/endpoints/guestbook?namespace=default&resourceVersion=253567

Delivers either a guarantee of all changes that occurred on that resource from 253567 (exclusive) to present.  If the server cannot prove that there were no missing changes then it should return an error and terminate the watch.
This would imply that:
curl http://localhost:8080/api/v1beta1/watch/endpoints/guestbook?namespace=default&resourceVersion=0

Would always return an error unless the server can prove that it can deliver all changes to the resource (e.g. when the resource hasn't been created yet.)
Multi-Resource Watch
I'm surprised that the interface wants to provide multi-resource watch.  It would seem that the semantics of this watch would either be potentially expensive to deliver or "best effort" such that it is basically useless for anything other than casual human consumption.
Imagine a future where the master is sharded such that even different resources of the same type are on different shards.  To provide meaningful semantics to a multi-resource watch would require that resource versions be meaningful in a global sense and in a way that spans all shards.  Wouldn't this be undesirable?  It would require that any write at any shard would need a round-trip message to all other shards to ensure that the logical clocks remain in sync.  A multi-watch would similarly have to be fanned out to all shards in the backend.  Both of these would defeat the benefits of sharding the data in the first place.
I could understand providing a multi-resource watch for the creation and deletion of resources of a particular type (handled potentially by a secondary index in the sharded scheme) without providing a full watch of the contents.  You could then use this watch to establish resource-specific watches for the resources you needed to track the contents of.  Maintaining a secondary index wouldn't have to be transactional with changes that produced or destroyed items.

resourceVersion=0 is the same thing as saying watch resourceVersion=ObjectModifiedResourceVersion-1.  Perhaps it should be more explicit, but it is generally useful.  Why is blind watch bad?
----- Original Message -----

Watching with resourceVersion=0 should return an error, IMO.

Reply to this email directly or view it on GitHub:
https://github.com/GoogleCloudPlatform/kubernetes/issues/6480#issuecomment-90241358

Also, I don't see it mentioned above but watch/<resourceType>/* - everything in * is ignored.  Confusing, but already fixed by the deprecation of watch.

cc @hchoudh

We don't offer multi-resource watch today, but in the future you're likely to correlate very strongly with a shard based on your namespace, rather than a shard on your type.  I don't think sharding by type will be common except on a few types of resources (events, namespaces, possibly endpoints).
The access pattern for most clients is going to be "in namespace Foo, get type X, get type Y, get type Z, get type A".  Most UIs that want to watch anything will watch on the namespace.  So the access pattern is less likely to reward sharding by type.

We don't offer multi-resource watch today.

The query:
http://localhost:8080/api/v1beta1/watch/endpoints

Is a multi-resource watch.  It watches for all resources of type Endpoints.

future you're likely to correlate very strongly with a shard based on your namespace
But do you want the interface to guarantee that all objects in the same namespace are updated with consistency?

I agree that shard boundaries are almost certainly NOT type-boundaries.  For instance there is clearly a consistency relationship between a Service and its Endpoint object.  I would hope that it would be impossible for me to observe a change to a Service object and then to subsequent query for its Endpoint object and get a stale read.  But this is a query across type.  Suggesting that the appropriate shard boundaries are certainly not type-boundaries.

Sorry, I was referring to "multi-resource" as "watching over multiple resource types".  It is possible to emulate a watch across a small number of stable shards by creating a resource version tuple (a vector clock, essentially) - for medium sized clusters I see that as a reasonable option.  It's more likely though that infrastructure components that want to "watch the world" are either themselves shardable (such that it's acceptable for world to be defined as "my shard") or an intermediate component supports them.  That intermediate component might be something like a partially ordered event stream that provides a firehose to the cluster as an aggregator of the cluster changes.
Today, we require that API consumers assume resource version is internally consistent across a single type in a single namespace.  Controllers are allowed to watch the world until such a time as we implement a sharding solution.
There is no consistency relationship across resource types - services and endpoints are independent objects with independent lifecycles.  It is by design that Endpoints can be updated out of band with Services, to allow downstream components to offload them.  We relax referential rules across resource types - there is no guarantee a referenced object will be created before or after you, or that it should exist only if you exist.

I completely agree there are possible implementations that can tolerate sharded and/or inconsistent queries.  And deciding that certain kinds of JOINs, particularly across resource types and/or namespaces, are always going to be inconsistent seems like a fine place to land.  I was merely surprised that the API was designed to promote the appearance of consistency for these queries today.  I would have expected that the API would be more conservative to reserve these degrees of freedom around consistency for future implementations without requiring a future breaking change.  Offering less functionality in V1 or functionality with weaker semantics would allow weakly consistent future implementations to emerge later without breaking existing applications.
As a general rule I try to avoid APIs that give the appearance of consistency if they are not intended to actually deliver consistency.  I think most developers will always assume consistency unless there is a really good reason to believe otherwise.  This seems like human nature since people expect systems to exhibit the same causal behavior as the real world.
Take for instance Endpoints.  My impression of this after seeing the API was that Endpoints was simply a VIEW (in the SQL since) that provides a convenient way to express the JOIN between Service and Pods.  From that perspective I would certainly have expected there to be a causal relationship between a change in the Service and its corresponding Endpoints object.
I could easily imagine myself making that mistake when writing a application.  Perhaps my program changes the Service object and then wants to send a message to all of the Endpoints associated with the new Service definition.  After changing the Service, my program queries Endpoints.  Did it get the new set of Endpoints?  There are several possible outcomes:

The Endpoints is the same as it was before I changed the Service Definition:
1.  The new Service definition just happens to result in the same set of Endpoints as before.
2.  I have not waited long enough for Endpoints to be updated.  How long should I wait?  What indicates that I've waited long enough?
The Endpoints is different:
1.  Is this the correct one?  The one that corresponds to my Service definition change?
2.  Or is this the update that occurred due to a different Service definition change that happened just before mine? If so, I should wait longer for mine.
3.  Or is this the update that occurred due to a different Service definition change that happened just after mine?  If so, I should either use this one or attempt my Service definition change again.

In an inconsistent and asynchronously updated world we need to provide a way to answer these questions.  (e.g. perhaps Endpoints should include the the resourceVersion of the Service definition used to compute it.)  All applications need to properly deal with this extra information.  (e.g. need to ignore all updated Endpoints until one arrives that has a resourceVersion >= their change to the Service definition.)  I'd imagine it's possible to implement this and for customers to use it correctly, but I think it offers a lot of opportunity for bugs.  Users might simply wait for the next update and then take the wrong action leading to a misbehaving system.
If we could decide which relationships should exhibit consistency and provide it where the developer would expect it then the API is simply and easier to use and applications are more likely to be correct.  If we don't offer APIs which might lead the developer to make incorrect assumptions then applications are less likely to have those bugs.

I dug into this... it's more broken than I thought it was, so I've made a fix in #7263.
Once my fix goes in,

Watching a single object acts as if you didn't pass a name: this will be fixed directly (at least for the resource types I checked).
To get an appropriate resource version, you will have to LIST with a fieldselector ("?fields=name%3Dfoo" or some such-- don't recall exact syntax) instead of GETting. This way we don't have to modify the API to pass a special "watch at" resource version.


isStatic field for annotations of loggers #1597

It is an implementation of issue #1597

Oof, I'm sorry to have to deny this one. You did good work on the pullreq. Please contact us or wait for a green light before going all in on a feature request. For reasons, please see: https://github.com/rzwitserloot/lombok/issues/1597


Split logical expressions out into separate source files

Note: migrated from original JIRA: https://issues.apache.org/jira/browse/ARROW-10713
We should split the logical expressions out into separate source files to make the code based easier to work with.

The issue seems stale.

I agree --  I think it is covered by https://github.com/apache/arrow-datafusion/issues/1750


Dollar characters in .env

The following happened on a new bare repo and with and .env containing a password with a $ :
❯ setver new major
./.env: line 12: fkNIPHMO: unbound variable
× setver: ERROR 1 after 0 seconds
> last command : 'source "$env_file"'
${error_prefix} from line 1 : #!/usr/bin/env bash

This is a questio  I have been asking myself: can I just source .env or should I have a more complicated processing?
Your error is an example of why source .env can be too simplistic.
Quick fix (for you):
# don't use this
PASSWORD=ab$cdef
# but escape it
PASSWORD='as$cdef'

Better long-term solution (for me): no source .env but a dedicated read_env_file function.

fixed with the usage of the Os:clean_env function


Stricter number parsing in Float.fromString and Int.fromString

Implements the changes proposed in #86. See the differences in the tests for specifics on behavioural changes.
Note also that this drops the radix option of Int.toString, but on the other hand improves parsing of radix prefixes in the string itself, i.e. 0x, 0o and 0b.

Got a big laugh reading this. Especially “worst of all the bad options”. And interesting to learn there is a Number object distinct from the primitive - glad to have that in my toolbox. A couple thoughts…
Group them together so the user will see a menu of related choices. So parseString not fromString. If you want to encourage use of your implementation call it parse.
In the doc help for each explain the limitations and behavior like “Unreliable behavior if the string includes separators or characters not part of the number.” Give a few bad examples. Point to MDN.


How to finetune on custom dataset

How does on finetune the model on custom dataset? Should we modify finetune.py?

TinyLlama is compatible with Llama1/2. You can hassle-free fine-tune our model on many FT codebases built for llama, such as:

https://github.com/lm-sys/FastChat
https://github.com/imoneoi/openchat
https://github.com/artidoro/qlora

If you use a different data format, you might need to modify some code.

Do you plan to release a Qlora based finetune that could work with something simple, like a text file?

@VatsaDev can't you just use transformers bitsandbytes and do QLoRA like any other Llama model?

@RonanKMcGovern I tried running it off the Qlora script for oasst guanaco on the repo, but whenever I go for a custom dataset, its tends to fail

ok, I had no trouble, maybe try the bitsandbytes script: https://colab.research.google.com/drive/1VoYNfYDKcKRQRor98Zbf2-9VQTtGJ24k?usp=sharing

@RonanKMcGovern, thanks! try it out soon

@RonanKMcGovern  The script takes 135 hours to tokenize the dataset? Its around 20gb, seems unnaturally long

What dataset are you using.
Sorry, I meant Tim Dettmers filtered openassistanr

https://huggingface.co/datasets/VatsaDev/UnagamiData, a personal dataset, its around ~13m rows of chat sentences, kinda long, it takes two hours to prepare with my custom data loader. For HF datasets implementation with NanoGPT, It takes 8 hours, but with the bnb script, it always goes to around 135hrs

Hmm @VatsaDev I'm not entirely sure but I do see this message:
You're using a GPTNeoXTokenizerFast tokenizer. Please note that with a fast tokenizer, using the `__call__` method is faster than using a method to encode the text followed by a call to the `pad` method to get a padded encoding.

So there may be something about the default configuration that is slowing things down owing to padding. Perhaps your custom method also does a better job of tokenizing in batches (that's a wild guess though, I believe that batching doesn't necessarily improve tokenization speed a lot). Sorry I'm not of more use here.

Thanks for the effort.
The custom method uses Tiktoken, which is supposably faster, check on that error msg.


Add flag --break-on-reject-date

IMPORTANT: PRs without the template will be CLOSED
Description of your pull request and other information
Implement the --break-on-reject-date flag.
When downloading all videos a channel/playlist after some date  it can save a lot of time to use --break-on-reject --lazy-playlist.
This works fine, until you also want to use some --match-filters. Then you have to drop  --break-on-reject or the download will not work. The new flag solves this by only breaking, when a date filter (--date, --datebefore, --dateafter) is hit.
Example:
List:  https://www.youtube.com/playlist?list=UUYO_jab_esuFRV4b17AJtAw
Videos in date range:

But what is a convolution?
Researchers thought this was a bug (Borwein integrals)

Broken call using --break-on-reject
python3 -m yt_dlp --break-on-reject --lazy-playlist --dateafter 20221101 --match-filters 'fulltitle!*="convolution"' 'https://www.youtube.com/playlist?list=UUYO_jab_esuFRV4b17AJtAw'

[youtube:tab] Extracting URL: https://www.youtube.com/playlist?list=UUYO_jab_esuFRV4b17AJtAw
[youtube:tab] UUYO_jab_esuFRV4b17AJtAw: Downloading webpage
[youtube:tab] UUYO_jab_esuFRV4b17AJtAw: Redownloading playlist API JSON with unavailable videos
[download] Downloading playlist: Uploads from 3Blue1Brown
[youtube:tab] Playlist Uploads from 3Blue1Brown: Downloading N/A items of 127
[download] Downloading item 1 of N/A
[youtube] Extracting URL: https://www.youtube.com/watch?v=KuXjwB4LzSA
[youtube] KuXjwB4LzSA: Downloading webpage
[youtube] KuXjwB4LzSA: Downloading android player API JSON
[download] But what is a convolution? does not pass filter (fulltitle!*="convolution"), skipping ..
[info] Encountered a video that did not match filter, stopping due to --break-on-reject
Aborting remaining downloads

-> no video was downloaded, since the first was filtered out
Call using --break-on-reject-date
python3 -m yt_dlp --break-on-reject-date --lazy-playlist --dateafter 20221101 --match-filters 'fulltitle!*="convolution"' 'https://www.youtube.com/playlist?list=UUYO_jab_esuFRV4b17AJtAw'

[youtube:tab] Extracting URL: https://www.youtube.com/playlist?list=UUYO_jab_esuFRV4b17AJtAw
[youtube:tab] UUYO_jab_esuFRV4b17AJtAw: Downloading webpage
[youtube:tab] UUYO_jab_esuFRV4b17AJtAw: Redownloading playlist API JSON with unavailable videos
[download] Downloading playlist: Uploads from 3Blue1Brown
[youtube:tab] Playlist Uploads from 3Blue1Brown: Downloading N/A items of 127
[download] Downloading item 1 of N/A
[youtube] Extracting URL: https://www.youtube.com/watch?v=KuXjwB4LzSA
[youtube] KuXjwB4LzSA: Downloading webpage
[youtube] KuXjwB4LzSA: Downloading android player API JSON
[download] But what is a convolution? does not pass filter (fulltitle!*="convolution"), skipping ..
[download] Downloading item 2 of N/A
[youtube] Extracting URL: https://www.youtube.com/watch?v=851U557j6HE
[youtube] 851U557j6HE: Downloading webpage
[youtube] 851U557j6HE: Downloading android player API JSON
[info] 851U557j6HE: Downloading 1 format(s): 313+251
[download] Destination: Researchers thought this was a bug (Borwein integrals) [851U557j6HE].f313.webm
[download] 100% of  334.38MiB in 00:00:17 at 19.42MiB/s
[download] Destination: Researchers thought this was a bug (Borwein integrals) [851U557j6HE].f251.webm
[download] 100% of   17.00MiB in 00:00:00 at 21.37MiB/s
[Merger] Merging formats into "Researchers thought this was a bug (Borwein integrals) [851U557j6HE].webm"
Deleting original file Researchers thought this was a bug (Borwein integrals) [851U557j6HE].f251.webm (pass -k to keep)
Deleting original file Researchers thought this was a bug (Borwein integrals) [851U557j6HE].f313.webm (pass -k to keep)
[download] Downloading item 3 of N/A
[youtube] Extracting URL: https://www.youtube.com/watch?v=cDofhN-RJqg
[youtube] cDofhN-RJqg: Downloading webpage
[youtube] cDofhN-RJqg: Downloading android player API JSON
[download] 2022-10-01 upload date is not in range 2022-11-01 - 9999-12-31
[info] Encountered a video that did not match the allowed range of dates, stopping due to --break-on-reject-date
Aborting remaining downloads

-> downloading the second video and stopping due to dateafter.
Template

Before submitting a pull request make sure you have:

[x] At least skimmed through contributing guidelines including yt-dlp coding conventions
[x] Searched the bugtracker for similar pull requests
[x] Checked the code with flake8 and ran relevant tests

In order to be accepted and merged into yt-dlp each piece of code must be in public domain or released under Unlicense. Check one of the following options:

[x] I am the original author of this code and I am willing to release it under Unlicense
[ ] I am not the original author of this code but it is in public domain or released under Unlicense (provide reliable evidence)

What is the purpose of your pull request?

[ ] Fix or improvement to an extractor (Make sure to add/update tests)
[ ] New extractor (Piracy websites will not be accepted)
[ ] Core bug fix/improvement
[x] New feature (It is strongly recommended to open an issue first)

What happens when you want to break with filter, but not date? Or with date-after, but not date-before? This PR is adding a new switch to address just a special case of this underlying problem. I also want to eventually deprecate --date options once match-filter syntax is improved enough to handle all its usecases - which would become impossible once this is implemented. A more general solution is needed

I agree, a separate option for a different kind of filter would be better and more general.
But i think it should be  --breaking-match-filters, since the default is non breaking.
In this case the filters for --breaking-match-filters would always break and the filters for --match-filters only if --break-on-reject is set as well.

sounds good. It effectively deprecates --breka-on-reject, but that's okay

I cleaned up the code duplication

Anything i still need to do for this PR?


Adding Azure AI inference

What feature would you like to be added?
Adding  Azure AI Model Inference is an API that exposes a common set of capabilities for foundational models and that can be used by developers to consume predictions from a diverse set of models in a uniform and consistent way
https://learn.microsoft.com/en-us/azure/ai-studio/reference/reference-model-inference-api?tabs=python
Why is this needed?
It will improve the integration of Autogen with leading model in Azure ecosystem with 20 foundation models
https://learn.microsoft.com/en-us/azure/ai-studio/reference/reference-model-inference-api?tabs=python

I have this close to completion. I will submit a draft PR in a few hours.

I have this close to completion. I will submit a draft PR in a few hours.

@rohanthacker please let us know by tomorrow as we would like to proceed without being blocked thanks.

@ekzhu and @yanivvak I've opened a draft PR for the same. Do let me know your feedback.


PHP Fatal error:

PHP Fatal error: Call to a member function count() on null in src/Model/Chat.php on line 186

fixed with 4bd3e990f78f61ec468f35d5c29c8d2455625d91


ExecCtxWorkSerializer

Ability to run functions in a synchronized manner on ExecCtx.
Based on WorkSerializer and very similar in its working with the only difference being that the callbacks are invoked on ExecCtx instead.

Can I get a rundown on the why for this?
On Mon, Nov 1, 2021, 4:12 AM Yash Tibrewal @.***> wrote:

Ability to run functions in a synchronized manner on ExecCtx.
Based on WorkSerializer and very similar in its working with the only
difference being that the callbacks are invoked on ExecCtx instead.
You can view, comment on, or merge this pull request online at:
https://github.com/grpc/grpc/pull/27889
Commit Summary

ExecCtxWorkSerializer
https://github.com/grpc/grpc/pull/27889/commits/4efd10015d29fb0f6371ec88d70d84cf90033d92

File Changes
(5 files https://github.com/grpc/grpc/pull/27889/files)

M BUILD
https://github.com/grpc/grpc/pull/27889/files#diff-3053677e4333a96b20ed76c662bca07fb2e1ce059479170139209356787da09c
(15)
A src/core/lib/iomgr/exec_ctx_work_serializer.cc
https://github.com/grpc/grpc/pull/27889/files#diff-e1a3d9f78d80c248c834c084d7f645ba010d2369ff27047d3219e07d1f910792
(159)
A src/core/lib/iomgr/exec_ctx_work_serializer.h
https://github.com/grpc/grpc/pull/27889/files#diff-69a25260946c529fd5bb6cb07fffea9d312e8d799fac0b82bcb14dd6a96b17e6
(86)
M test/core/iomgr/BUILD
https://github.com/grpc/grpc/pull/27889/files#diff-70a9c33f9b5be3d6327506bae8aee0fcab3d37742bcaba60d36709574f7bae84
(19)
A test/core/iomgr/exec_ctx_work_serializer_test.cc
https://github.com/grpc/grpc/pull/27889/files#diff-8260c6f8bc6eb99dccd32ffb6eeba1ad2abfe7c5bd97e21cd58443d6df11072c
(123)

Patch Links:

https://github.com/grpc/grpc/pull/27889.patch
https://github.com/grpc/grpc/pull/27889.diff

—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/grpc/grpc/pull/27889, or unsubscribe
https://github.com/notifications/unsubscribe-auth/ACNG45I4T2MNX2VR3WCOWNDUJZYYRANCNFSM5HDZB6UA
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

This is one of the approaches that we are thinking of to solve a synchronization and ordering issue when using the watcher APIs in xDS, but this might not be needed anymore.


Possibly simplified temperature example

I don't have a CHIP here to test this on, but I believe that example could be simplified to:
var five = require('johnny-five');
var Chip = require('chip-io');

var board = new five.Board({
  io: new Chip()
});

board.on('ready', function() {
  var temp = new five.Sensor("INTTEMP");
  var c = 0;

  temp.on("change", function() {
    c = this.value * 0.1 - 144.7;
    console.log('Internal temperature is ' + c.toFixed(2) + ' °C');
  });
});

If someone could try that out for me, that would be awesome!

@rwaldron thanks for the suggestion! It makes the example much simpler.
I've pushed the change for the battery voltage example (https://github.com/sandeepmistry/node-chip-io/commit/03b645829ea75c04ec649e36cab3c1cf0869acc0).
However, I need to take another look at the internal temperature code, without your suggestion after a few seconds it flip-flops between 56.70 °C and -137.30 °C. (Nice to see five.Sensor collects samples and uses the median).

Another option would be to have Chip-IO provide its own controller for Thermometer class. I've been wanting to experiment doing this for other io plugins, eg. Particle Core/Photon could provide a controller for its RGB LED, that could be used with Led.RGB); until now I just haven't been very motivated to write the code. I will open an issue for that and submit a patch with implementation and examples for you to review

Closed via #3.


Added Euler Solutions

Developer Checklist

[x] Adhered to the guidelines outlined in the README & Contributing file.
[x] Maintained the correct directory structure (e.g., ProjectName/...yourfiles).
[x] Please ensure to include a README file for enhanced project clarity.
[x] Starred ⭐ the repository (optional).

Summary
Added Solutions To Problems On Project Euler In Typescript (https://projecteuler.net/archives)
Screenshot
N/A
Live Project Link
N/A

@king04aman Sir please review :)

Developer Checklist

[x] Adhered to the guidelines outlined in the README & Contributing file.
[x] Maintained the correct directory structure (e.g., ProjectName/...yourfiles).
[x] Please ensure to include a README file for enhanced project clarity.
[x] Starred ⭐ the repository (optional).

Summary
Added Bigints Package - https://npmjs.com/package/bigints . It is a good starting point to learn building a Typescript Starter Along With Semver Release On NPM and GitHub
Screenshot

Live Project Link
https://npmjs.com/package/bigints

@king04aman Sir

@king04aman I have moved my projects in submodules directory sir.

LGTM


Seeking further explanation on the meaning, calculation method and size of each key in the observation

I noticed that each virtual environment object has a DEFAULT_OBS_KEYS list, which gives the names of the different parts of the observation, but I couldn’t find the code for the meaning as well as calculation method corresponding to these key abbreviations, nor am I sure about the size of each key. Could you please explain more about this? Or could you point out the code module that can answer these questions?

MyoSuite follows the OpenAI-Gym API
Gym environments return observations as vectors when env.get_obs() method is called. Compressing various information into a single vector loses the interpretability of the various features present in the vector. To get around this issue, MyoSuite amongst various frameworks, uses observation dictionaries.
In MyoSuite, every env has a method env.get_obs_dict(sim) where the user defines any feature from the environment (eg RelocateEnvV0.get_obs_dict()) that might be interesting to the user.
Note that to comply with the gym API, we still need to convert this over-complete dictionary of all features into an observation vector (remember env.get_obs() needs to return a vector as per the gym API) of desired features. This is done via obs_keys which specifies an ordered list of keys to extract from the observation dictionary and stack them as observation vector that is then returned by the env.get_obs()
For each env a default set of these keys is provided as DEFAULT_OBS_KEYS. User can change these keys -

By directly editing in the class definitions
By passing a new set of keys during the registration. Note that the set can only contain keys already present in the feature space of the observation dictionary that is available to the env.

For the meaning, sizes, and calculation methods please take a look inside the def get_obs_dict(self, sim) method of the env you are interested in.


Interactive tooltip

How can I make a tooltip interactive? So that it can be hovered over and clicked inside?
What I'm looking for is exactly this: https://atomiks.github.io/tippyjs/v6/all-props/#interactive but for floating-ui

So you're using the vanilla package, not React? The vanilla package only offers positioning, so you'd have to implement that yourself.

Hi @atomiks , I'd like to second this question. I am using @floating-ui/react but I can't seem to find the right property to turn on. I've tried using handleClose: safePolygon() but that doesn't seem to work.
What's the current way of implementing an interactive tooltip like the one from Tippy.js?
Thanks!


emmet feature does not work

Type: Feature Request
when i write a code emmet feature is not work .
Please solve this problem
VS Code version: Code 1.78.0 (252e5463d60e63238250799aef7375787f68b4ee, 2023-05-03T20:09:00.748Z)
OS version: Windows_NT x64 10.0.22621
Modes:
Sandboxed: No

\gifPlease

Thanks for reporting this issue! Unfortunately, it's hard for us to understand what issue you're seeing. Please help us out by providing a screen recording showing exactly what isn't working as expected. While we can work with most standard formats, .gif files are preferred as they are displayed inline on GitHub. You may find https://gifcap.dev helpful as a browser-based gif recording tool.
If the issue depends on keyboard input, you can help us by enabling screencast mode for the recording (Developer: Toggle Screencast Mode in the command palette). Lastly, please attach this file via the GitHub web interface as emailed responses will strip files out from the issue.
Happy coding!

This issue has been closed automatically because it needs more information and has not had recent activity. See also our issue reporting guidelines.
Happy Coding!


✨ ❣ Hacktoberfest: a better perl Hello World.

What does the program do ?

The ./hello.pl program prints 'Hello World' to the console, and logs every use in $HOME/log/
The ./review_perl.sh script does perl -c, perlcritic on 5 levels, and prove and reports to TeamCity.
In what programming language it is written?
Perl5
Why use this program over the others?

Passes perlcritic --brutal
Has 3 test-cases. #4623

Fix for #4631 and #166

✅LGTM

Thank you for participating  in hacktoberfest ❣ if you liked working on this repo you can share it with friends and star this project for helping others


Regression tests for MSVC

Fixes #1543 (and avoid regression to issues like #1531 and #1536).
Fixes #1608.
This pull request:

Adds Debug builds on Appveyor for VS2015 and VS2017.

Add a separate build job that first injects #include <Windows.h> line to the top of json.hpp header. This build job helps to detect whether the presence of Windows.h could have any undersiable side-effects.

On point 2: Currently the unit-test for case 2 doesn't do much and only can catch compile errors. Also, I tested it on my json.hpp with some unfixed numeric_limits<>::max() and numeric_limits<>min() functions and it only caused compiler errors on Debug builds. Probably on Release builds, the compiler eliminates the codes related to unfixed macro definitions. Therefore, the unit-test only can catch compiler errors on Debug mode.
A more thorough approach is that instead of adding a unit-test with #include <Windows.h> on top, we add a separate build configuration in which the #include <Windows.h> gets  injected to the top of json.hpp. In this build, all codes and unit-tests will be complied and checked in presence of Windows.h.
I have implemented and tested the second approach on my fork but and wanted to double check and get some feedback before adding it to the PR.

Pull request checklist
Read the Contribution Guidelines for detailed information.

[x]  Changes are described in the pull request, or an existing issue is referenced.
[ ]  The test suite compiles and runs without error.
[x]  Code coverage is 100%. Test cases can be added by editing the test suite.
[x]  The source code is amalgamated; that is, after making changes to the sources in the include/nlohmann directory, run make amalgamate to create the single-header file single_include/nlohmann/json.hpp. The whole process is described here.

Please don't

The C++11 support varies between different compilers and versions. Please note the list of supported compilers. Some compilers like GCC 4.7 (and earlier), Clang 3.3 (and earlier), or Microsoft Visual Studio 13.0 and earlier are known not to work due to missing or incomplete C++11 support. Please refrain from proposing changes that work around these compiler's limitations with #ifdefs or other means.
Specifically, I am aware of compilation problems with Microsoft Visual Studio (there even is an issue label for these kind of bugs). I understand that even in 2016, complete C++11 support isn't there yet. But please also understand that I do not want to drop features or uglify the code just to make Microsoft's sub-standard compiler happy. The past has shown that there are ways to express the functionality such that the code compiles with the most recent MSVC - unfortunately, this is not the main objective of the project.
Please refrain from proposing changes that would break JSON conformance. If you propose a conformant extension of JSON to be supported by the library, please motivate this extension.
Please do not open pull requests that address multiple issues.

Coverage remained the same at 100.0% when pulling 992a5d0e9742139b17c6aa8e8c9a609d54cf39a1 on nickaein:msvc-regression-tests into ee4028b8e4cf6a85002a296a461534e2380f0d57 on nlohmann:develop.

The AppVeyor tests seem to be broken. Any idea on this?

There were two errors:

The test-unicode_all was timing out due to slower binary in Debug mode. I've pushed a fix to increase the timeout for this particular unit-test on Debug build.

The second error, which is still present, is unit-concepts failing on this check:

CHECK(std::is_nothrow_copy_constructible<json::const_iterator>::value)

By borrowing build flags for VS2015-Debug it can be reproduced: https://godbolt.org/z/MOkndK
It seems that /MDd flag causes this error. This could be similar to #1536 where the C++ compiler on VS2015 added some definitions in debug mode. This error only happens on VS2015 (msvc 19.0) Debug build (where /MDd is present) and doesn't happen in Release build and/or later compiler versions.
That's how far I was be able to get. Maybe @mistersandman or @theodelrieu could shed some light on what is causing json::const_iterator to fail is_nothrow_copy_constructible criteria when we are building on debug mode (msvc 19.0).

Also, do you have any suggestion on the choices in https://github.com/nlohmann/json/pull/1570#issue-271436407 to have a build with Windows.h?

@nlohmann: Hey Niels! No problem at all. This was blocked until yesterway anyway.
The build seems to be passing. While reviewing, you might take a closer look at  https://github.com/nlohmann/json/commit/4c23af159b99c592b6d54d64ff79b5543f39c4c0 which is intended to define copy-constructor for const_iterator explicitly. Is it OK?

Now the latest CI build at AppVeyor is failing again... Either we set up the timeout or we only use the small test suite in the Debug build. What do you think?

In the last succesful CI build, MSVC debug builds has taken ~1 hour. It seems we are almost exceeding the 1 hour time restriction of AppVeyor.
As you suggested, we can skip time-consuimg test(s) for MSVC debug, at least test-unicode --all which seems to be the worst offender. Since they still will be run in other build jobs (including MSVC 2015/2017 Release mode), I think this would be a good compromise between keeping the integerity of test and speeding up (and fixing!) the CI.

Now I just wait until the CI jobs run through and we're set. Thanks!

🔖 Release item
This issue/PR will be part of the next release of the library. This template helps preparing the release notes.
Type

[ ] ✨ New Feature
[x] 🐛 Bug Fix
[ ] ⚡ Improvement
[x] 🔨 Further Change
[ ] 🔥 Deprecated function

Description

Add regression tests for MSVC.
Fix MSVC Debug build.

Thanks!

Thank you!


How to use this?

Hey thanks for making this.. but how would one go about using this? Thanks.

You mean the plugin? The official site is here.


Problem with CURL Request in Downloader.php

System Info
Windows 10, PHP built-in Webserver, Laravel 11
PHP Version
8.3.1
Environment/Platform

[ ] Command-line application
[X] Web application
[ ] Serverless
[ ] Other (please specify)

Description
If the config.json file for a model does not yet exist, I encounter the following error:
Codewithkyrian\Transformers\Utils\AutoConfig::__construct(): Argument #1 ($config) must be of type array, null given, called in C:\Users\Gani\Desktop\transformers\vendor\codewithkyrian\transformers\src\Utils\AutoConfig.php on line 53

However, if the config.json file for a model does exist, I get this error:
Error 0 occurred while trying to load file from https://huggingface.co\Xenova/distilbert-base-uncased-finetuned-sst-2-english/resolve/main/onnx\model_quantized.onnx

The issue seems to stem from this line in the code for me:
// Downloader.php
curl_setopt($curlHandle, CURLOPT_URL, $url);

When I dump the value of $url, it appears correct:
https://huggingface.co\Xenova/distilbert-base-uncased-finetuned-sst-2-english/resolve/main/config.json

However, when I dump the URL using curl_getinfo($curlHandle), the URL value is:
https://huggingface.co\\Xenova/distilbert-base-uncased-finetuned-sst-2-english/resolve/main/config.json

It seems the backslash character is being escaped for me. The line $error = curl_error($curlHandle); also indicates a hostname error:
Log::info($error); -> URL rejected: Bad hostname

For me it worked when I changed this:
// Downloader.php
curl_setopt($curlHandle, CURLOPT_URL, $url);

to this:
curl_setopt($curlHandle, CURLOPT_URL, str_replace('\\', '/', $url));

This fixed both errors for me. However, this issue with the backslash being escaped might be specific to my configuration (although I don't know how), and I'm not certain if it occurs for others aswell.
Reproduction

$classifier = pipeline('sentiment-analysis');
$result = $classifier('I love everything!');

Fixed in https://github.com/CodeWithKyrian/transformers-php/releases/tag/0.4.2


Index of sections

[ ] Add index to readme
[ ] decide if we want an index in the user.js
[ ] mention index in wiki implementation? (if we don't add it to the user.js)

From The Big E ... @Thorin-Oakenpants if you don't want to list the headers in the user.js itself, maybe it would help some people to at least have it in the README.MD?
- 0100: STARTUP
- 0200: GEOLOCATION
- 0300: QUIET FOX
- 0400: BLOCKLISTS / SAFE BROWSING / TRACKING PROTECTION
- 0500: SYSTEM ADD-ONS / EXPERIMENTS
- 0600: BLOCK IMPLICIT OUTBOUND
- 0700: HTTP* / TCP/IP / DNS / PROXY / SOCKS etc
- 0800: LOCATION BAR / SEARCH BAR / SUGGESTIONS / HISTORY / FORMS
- 0900: PASSWORDS
- 1000: CACHE
- 1200: HTTPS ( SSL/TLS / OCSP / CERTS / HSTS / HPKP / CIPHERS )
- 1400: FONTS
- 1600: HEADERS / REFERERS
- 1700: CONTAINERS
- 1800: PLUGINS
- 2000: MEDIA / CAMERA / MIC
- 2200: WINDOW MEDDLING & LEAKS / POPUPS
- 2300: WEB WORKERS
- 2400: DOM (DOCUMENT OBJECT MODEL) & JAVASCRIPT
- 2500: HARDWARE FINGERPRINTING
- 2600: MISCELLANEOUS
- 2700: PERSISTENT STORAGE
- 2800: SHUTDOWN
- 4000: FIRST PARTY ISOLATION
- 4500: privacy.resistFingerprinting
- 4600: RFP (4500) ALTERNATIVES
- 4700: RFP (4500) ALTERNATIVES - NAVIGATOR / USER AGENT (UA) SPOOFING
- 5000: PERSONAL
- 9999: DEPRECATED / REMOVED / LEGACY / RENAMED

From :jeans:
Readme can definitely have one, because it can be behind a collapsible element. e.g.

The ghacks user.js is categorized into logical sections blah blah.Click here for the index

But do we really want to add another 31+ lines to the js before the user even gets to the settings?

Just add an index.md
List the Articles, as: /*** 0100: ARTICLE STARTUP ***/
Tell users to look for: Article in user.js for a comfortable search. I put Article as a new word that's not used yet. Section makes more sense, but it's already present in some entries. Or use another word as CHAPTER

Just add an index.md

People won't read it. Would just be another link to tell them about. And an index.md IMO implies it belongs/referes to the repo, not the user.js. In the readme.md is better

Tell users to look for: Article

Wrong word, but I like it. [SECTION 0100], etc.

main user.js is big enough now IMHO

actually, we don't need to add anything to the wiki or readme.md IF we add to the user.js, and I'm starting to come around to the idea

I would say add it to both for redundancy :) There's already lots of clutter in the user.js, but then again it could help, organizationally speaking.

either or both, I don't really care as long it's listed somewhere

orphaned numbers with no section: suggestions

START (first parrot) - ??
0000 (auto:config warning) -> personal?
0001 (PB mode) could move into startup, e.g as 0110?

That only leaves the START & END parrots and I don't think we'll come up with a solution for those, they're not meant to be in a section and don't even have numbers, and the pref is duplicitous throughout the user.js.


Escape Sequences in Strings

var myStr="FirstLine(2 backslash)n\SecondLine(3 backslash)rThirdLine"; // Change this line
is there any problem with this?
Browser : Crome
Windows 10

The order of the backslashes between FirstLine and SecondLine is incorrect. Use FirstLine\n\\SecondLine. Please ask questions about your code first at  before submitting an issue here.


Voice Commands in Editor do not work after focus transferred to headset

(Ported to GitHub, reference 19337743)
From Alex:

Add some voice commands to an MRTK Scene
Press play in the editor
Say some commands, observe that they run
Put focus into headset
Say Commands
Observe that they do not work
Remove focus from headset
Say Commands
Observe that they do not work

Expected: Commands should run in all of 3, 6, and 9
Actual: Commands only run in step 3.
I suspect this is an input routing issue that may not be easily resolved; but perhaps if we have communication/documentation on where to put focus back to?

Comment from David:
Best of my knowledge is that the platform (Windows) is responsible for mic / speaker switching when using headsets.
There may also be an issue with Unity's play mode.
Should continue to investigate. Perhaps asking for help from the audio team.

This is a dupe of https://github.com/microsoft/MixedRealityToolkit-Unity/issues/4320


Implement twitter cards

Article issue
The template currently does not render the header image when posting a link to twitter. We should update our template to provide the required OpenGraph or Twitter info to render images propperly.
We can use https://cards-dev.twitter.com/validator to validate our current template.

I'll pick this one up, for future reference:
Remove the following snippet to fall back to custom implementation
https://github.com/pnp/blog/blob/1c05096b6f8a83cbf6ff005b0427761eb506a21f/themes/reader-hugo/layouts/partials/head.html#L77-L78
Rewrite to use correct image (currently using the svg logo)
https://github.com/pnp/blog/blob/1c05096b6f8a83cbf6ff005b0427761eb506a21f/themes/reader-hugo/layouts/partials/head.html#L46-L75

hey @appieschot  can you please only change the files in the blog/layouts folder and not in the blogs/themes/reader-hugo/layouts folder? This way we don't override the theme. This was @hugoabernier s suggestion :-)

Will look into it, we should be able to do I think 🦾

@hugoabernier do you want me to revert #127 and implement a custom file in the /layouts folder as well? That way we could keep the reader-hugo as is I guess?

that would be perfect!

Solved with last PR, cards should be visible now.


Make tags case insensitive.

Currently tags are case sensitive. It might be good to change that.

done


HNC: create constants for API types

Issue #144 exposed a bug there the string "hierarchies" was hardcoded, but should have been changed to "hierarchyconfigurations" as a part of #98 . PR #145 fixes the immediate problem by changing the hardcoded string, but I think that in addition to the tenancy.Singleton const that defines the singleton name, we should also have a tenancy.Resource const with the correct string, rather than hardcoding it in several places.
/assign @shivi28

/assign @shivi28


Submission warnings when submitting to the Mozilla extension registry

There aren't any errors (thankfully) but there are quite a few warnings. Most involve an "unsafe assignment to innerHTML" somewhere in the minified index.js file.
There is also a "function constructor is eval" warning, in addition to a bunch of hidden files which are being included in the packaging process.
To reduce possibility of rejection, these warnings should be fixed.

All in-project warnings fixed in 4f4425dde98078e1e6c5391d1945e8341e7fab02, extension submitted and approved.


Fixed alert profile assignments

fixes #2164

@martinpovolny I did this change manually and it fixed it for me


Lack of edge events

Is there a plan to add edgeClick edgeRightClick edgeHover events or are those provided via plugins or something else?
I can't see that in the events.html example and I don't see how to create those events.
Am I missing something?

clickEdge, doubleClickEdge, and rightClickEdge are already there.  See
https://github.com/jacomyal/sigma.js/blob/c6fa5ba6bc8fa98ea1ef439454bfe833411482b1/src/misc/sigma.misc.bindEvents.js

@opdb, for another example, you can see this example.

On 2015-02-02 01:04, Qinfeng Chen wrote:

clickEdge, doubleClickEdge, and rightClickEdge are already there.
See
https://github.com/jacomyal/sigma.js/blob/c6fa5ba6bc8fa98ea1ef439454bfe833411482b1/src/misc/sigma.misc.bindEvents.js

Reply to this email directly or view it on GitHub:
https://github.com/jacomyal/sigma.js/issues/512#issuecomment-72400960

Apologies, I don't know how I missed that. It was puzzling that I
couldn't find them.

On 2015-02-02 07:04, Guillaume Plique wrote:

@opdb, for another example, you can see
this
example.

Reply to this email directly or view it on GitHub:
https://github.com/jacomyal/sigma.js/issues/512#issuecomment-72424627

Thank you, I think I must have been using an outdated release that
didn't yet have those events.
Will update accordingly.

Is it correct that all these events are only available when EdgeHovering has been enabled?

Yes indeed @bornakke.

Hello,
I have just tried the event "edgeClick" that is provided by the indicated plugin in my setup.
Hereby, I noticed two things:

Clicking on edges that are perfectly aligned horizontally especially those close to the borders of the graph is really hard and sometimes even impossible (as if there was no dedicated area to click on).
Everytime a new graph is loaded and the functionality is assigned, there is ~100MB added to my RAM which is not deleted until closure of the webpage. I am using Ubuntu 14 with the most recent versions of Firefox and Chromium (I encounter this problem with both browsers).

Can anyone help?

Hello @ThorbenQuast:

The edges are indexed by a quadtree which makes some edges which are perfectly horizontal or vertical sometimes hard to index correctly.
What is the size of your graph's data?

I would claim my graphs have a rather moderate size. By reload, it is meant that the div in which the sigma graph is placed is emptied using jquery's .empty() method. After placing the control bar (top right corner in the pictures), I call "this.s = new sigma({
graph: this.structure,
renderer: {
container: this.Node.children()[0],
type: 'canvas'
},
settings: this.sSettings
});" as it is done in most of the provided examples.
The graph settings in this.sSettings include "enableEdgeHovering: true" as it must in order for the edges to be clickable. If this option is set to false, besides giving up on the desired functionality, the RAM is not stacked at each reload. In addition, when reloading a similar graph with clickable nodes, the allocated RAM at each reload is just a minor fraction of what is needed here.
Therefore, I assume that something is not completely efficient for the edge events.
The appropriate code ("update()" = relevant function) is available in a non-github repository:
https://forge.physik.rwth-aachen.de/projects/vispa-pxl/repository/revisions/55b2fb5bb175/entry/pxlbrowser/static/js/views/feynman.js
Any help is highly appreciated.

 Else you would probably have memory leaks.
The edge quadtree is by no mean efficient and, not being its author, I cannot assess whether something is broken or if some leak is present somewhere (I will try nonetheless, to find the problem). If I sum up what you say: there seems to be something consuming an absurdly high amount of RAM when using the edge events? Is that it?

@Yomguithereal:

No, I had not killed the graph when reloading but have now added it.
Yes, that is what I have meant.

Since the the usage of s.kill() I have noticed that making the graph still requires lots of RAM (~100MB) but unlike before most of the allocated memory is now deallocated after a couple of seconds posterior to the reload. I think this should be something I can live with.
Thank you very much for the help.


Handle adaptive card sent to the bot

Hello! I can't find any examples how to parse adaptive cards sent to the bot in the personal chat with that bot:

How to understand that the message is a card?
How to get meta information about that card? Who composed that card (what bot)? How to get buttons/actions with bound values and action types?

Hi @GDreyV - I would like to help but I have a few questions.

When you arrive at the new issue page, what option are you choosing?
Are you developing a bot or a channel client?
What channel are you using?
What programming language are you using?
Since you're posting in the samples repo, are you following a specific sample?
When you say "parse adaptive cards" do you mean read Adaptive Card JSON and convert it into a runtime object?
What do you mean by "adaptive cards sent to the bot"? Cards are meant to be sent by the bot to the user.

Also, please post a screenshot/gif to help us understand the issue you're facing

I got you, for current case I should choose create new Question, my fault, sorry about that.
I'm working on the bot like in the example https://github.com/microsoft/BotBuilder-Samples/tree/master/samples/csharp_dotnetcore/52.teams-messaging-extensions-search-auth-config
I suppose Teams channel, did I get you right?
it's C#
I'm following example 52.teams-messaging-extensions-search-auth-config
Example 52 creates adaptive card in compose message block. User can send this card back to bot just by pressing send button. In that case handler protected override async Task OnMessageActivityAsync(ITurnContext<IMessageActivity>, CancellationToken) is fired. And I need to understand if the message is a card and get details of that card. Runtime object will be perfect, but json also will work.
You are right. But when user runs compose extension query command bot produces adaptive card which is not sent but placed into the compose message block. So it can be sent to anybody including conversation with bot. Also bot can be mentioned in that message.

@GDreyV - Yes, you did get me right. Thank you for the answers.
In your second question, you ask how to get metadata about the card including the bot that composed the card. Are you in a conversation with a bot while using messaging extensions from multiple other bots?

Correct me if I'm wrong but if user has 1-to-1 conversation with the bot user can use compose extension command provided by different bot and send card built by that bot into the chat. So I need to identify who created the card and should I process it somehow or not.
Just to add some background to the flow. I was asked by the certification team to support flow when card was sent to the bot but I didn't manage to find any examples of such flow, specifically how to handle incoming cards while messaging.

@v-kydela, sorry to disturb you, if you can say that it's impossible for now it will work for us because right now we just stuck with certification because of requirements which we don't know how to implement.

@GDreyV - I have no reason to believe it's impossible, but I cannot work on your issue because I don't have access to a Teams tenant where I can install app manifests. I'm transferring this to a colleague.

@GDreyV, I just want to make sure I'm caught up on what you are wanting. In a 1:1 conversation between a user and your bot, you want to be able to capture any card attachment meta data sent back to the bot from a messaging extension in order to identify where the card originated from, correct? To be able to tell if the card returned came from your bot, Bing News, GitHub, or any other bot/app messaging extension the user has installed and is interacting with?
If this is so, the card returned to the bot from the messaging extension is, as you guessed, an activity type of "message". The activity attachment property contains the generated card. You can access this via OnTurnAsync or one of the other regular or Teams specific activity handlers in your bot.
Does this help or did I shoot wide of the mark?

You are completely right. Except the point it's requested by certification team instead of wanted by us :) I found what you are talking about but it's still not clear how to find actions and values bound to the buttons and who (what bot) composed the card.
So here's the card:

And here's what is in attachment:

SMP-5706

3 designs

OpenSubscribe

Activity.Attachments is an IList<Attachment>. It has no Items property, and if it did then it would give you an Attachment object and not an HTML string. So that can't be right.

You are completely right. Items is a property from Debug view. So what property should I check?

Okay, that's what we needed to see. That HTML was in the content property of the attachment, and the type is text/html instead of a card type. Also, it looks like the HTML is sanitized to remove the button elements etc., so it will be very difficult for you to include any hidden metadata in the card that will show up in the HTML the bot receives.

Am I getting it right that for now there is no api to obtain adaptive card details from activity and the only way to understand that message content is a card is try to parse html?

Unfortunately, no, at this time there does not appear to be any API or other method beyond what you already see and know. You may want to check out Microsoft Graph. There are some Teams APIs that are available that you may be able to put to use by integrating into your bot. I haven't checked the APIs out too closely, but with the correct permissions and the correct meta data (group Id, channel Id, etc.) you could possibly get the returned messaging extension activity. This could be easier than parsing the HTML.
I'm going to go ahead and close this issue as resolved, in the mean time.


Revamp & refactor Alexa support

So that we can build proper Alexa language models that use Alexa's AI rather than ours, but are still backed by Thingpedia devices.

Pull Request Test Coverage Report for Build 1229

208 of 417 (49.88%)  changed or added relevant lines in 15 files are covered.
6 unchanged lines in 4 files lost coverage.
Overall coverage decreased (-0.7%) to 62.329%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

model/example.js
0
1
0.0%

routes/thingpedia_translate.js
1
2
50.0%

util/commandpedia.js
23
24
95.83%

frontend.js
21
23
91.3%

util/pagination.js
14
16
87.5%

util/import_device.js
2
10
20.0%

util/validation.js
13
21
61.9%

routes/commandpedia.js
15
24
62.5%

routes/thingpedia_api.js
7
16
43.75%

util/example_names.js
62
85
72.94%

Files with Coverage Reduction
New Missed Lines
%

routes/my_api.js
1
61.94%

frontend.js
1
80.5%

model/example.js
1
69.23%

almond/worker.js
3
82.18%

Totals

Change from base Build 1219:
-0.7%

Covered Lines:
5378

Relevant Lines:
8047

💛  - Coveralls


Array spread to object and interate over array type.

TypeScript Version: 3.9.2
Description
Hey, there. Here is the thing.

This is very strange when I want to spread array in an object, all prototype methods go to object too.
When you want to iterate over  type any[] you will get [k: number]: a union of all types of your array

Code

Issue:

const arr = [1, 2, 3, 4];

const obj = { ...arr };
// it's fine, just do it :)
obj.pop();

But when ts compiles to js, we know that object doesn't have pop(if there is no property pop set by a developer), but the spread of array causes this thing to happen in typescript.

Issue:

const arr = [1, 2, "ts", true];
const obj = {
  a: 1,
  b: 1,
  c: 'ts',
  d: true
}

type type<T> = T extends any[]
  ? { [K in keyof T]: T[K] }
  : T extends object
  ? { [K in keyof T]: T[K] }
  : never;

// (string|number|boolean)[]
// no keys :(
type test = type<typeof arr>;
// brings types with keys
type test1 = type<typeof obj>

Why I've mentioned this because some want to iterate array { [K in keyof T]: T[K] extends number ? 'hey' : 'no' }, he/she will always get 'no'[] if the array has various types.
Expected behavior:
1 Issue: Should give an error, that pop() is not a function of an object.
2. Issue: There should be keys that show, that arr[idx] has this kind of type not a union of all types of an array.
Something like this: {0: number, 1: number, 2: string, 3:boolean}
Actual behavior:

Issue: obj.pop(); works fine when we spread array into an object.
Issue: array will show (number | string | etc. ...)[]

Playground Link:

https://www.typescriptlang.org/play/index.html?ssl=4&ssc=11&pln=1&pc=1#code/MYewdgzgLgBAhgJwTAvDA2gRgDQwEy4DMuALALoDcAsAFC2iSwgBGAVqjAN4wB0fiyAL7UaLVjwAOICQAoAlBSA
https://www.typescriptlang.org/play/index.html?ssl=1&ssc=1&pln=20&pc=30#code/MYewdgzgLgBAhgJwTAvDA2gRgDQwEy4BEUEhuUCArgKYC6A3ALABQoksIARgFaowDeLGPABcMHEJicxE5sOBiA5CUXZJAEzEUaLAL4sWUAJ4AHajGNmAPABUAfHxsxqADyjUw6iPDBH0tSQB+AQwAaRgASzAYAGtqIxAAMxgbWjEbdFDaGH05GHTnNw8vGC5uamAoIJDMyOi4hOTU9Mzs3OExMGoAN2oEJmYWAHohmAAKaAQogHMAHzBKAFtOPtnOEBAAG2o4MABKf2HRsBBY+O8RMclhEZCABk6llYRcTEflvtw8MUmZ3ABmMTrLY7MC6GAQAAWIEom3UUnM0w28MMpnM7mgfEs1Cs2KS8CQdgGt04UzA0282O8AHcIlBIWcjBBUWYLNRoJgsWjcWj8WU7EA

First one is related to #34780
Second is usual behavior types for array items - union of all types, but if you need to see exact types for fixed length array you need to use tuple types. Example


certificate ready false

Bugs should be filed for issues encountered whilst operating cert-manager.
You should first attempt to resolve your issues through the community support
channels, e.g. Slack, in order to rule out individual configuration errors.
Please provide as much detail as possible.

Describe the bug:
A clear and concise description of what the bug is.
Cetificate ready false

Expected behaviour:
A concise description of what you expected to happen.
Cetificate ready true
Steps to reproduce the bug:
Steps to reproduce the bug should be clear and easily reproducible to help people
gain an understanding of the problem.
i just create issuer and certificate, but can not accessed https url
apiVersion: cert-manager.io/v1
kind: Issuer
metadata:
  name: letsencrypt-staging
  namespace: inarisk
spec:
  acme:
    # You must replace this email address with your own.
    # Let's Encrypt will use this to contact you about expiring
    # certificates, and issues related to your account.
    email: ...
    server: https://acme-staging-v02.api.letsencrypt.org/directory
    privateKeySecretRef:
      # Secret resource that will be used to store the account's private key.
      name: example-issuer-account-key
    # Add a single challenge solver, HTTP01 using nginx
    solvers:
    - http01:
        ingress:
          class: nginx

apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
  name: acme-crt
  namespace: inarisk
spec:
  secretName: acme-crt-secret
  dnsNames:
  - kubernetes
  issuerRef:
    name: letsencrypt-staging
    # We can reference ClusterIssuers by changing the kind here.
    # The default value is Issuer (i.e. a locally namespaced Issuer)
    kind: Issuer
    group: cert-manager.io

Anything else we need to know?:

subdomain kubernetes.inarisk2.bnpb.go.id already have public ip,
we can access subdomain kubernetes.inarisk2.bnpb.go.id with http
after implement above certificate.yaml file cert-manager automatically create :

kubernetes pod cm-acme-http-solver-zfh6m with inarisk namespace port 8089
kubernetes svc cm-acme-http-solver-j5jk4 with inarisk namespace port 8089
kubernetes ingress cm-acme-http-solver-t9t6t with inarisk namespace port 8089

Environment details::

Kubernetes version (e.g. v1.10.2): v1.16.13
Cloud-provider/provisioner (e.g. GKE, kops AWS, etc): vsphere
cert-manager version (e.g. v0.4.0): v1.0.0
Install method (e.g. helm or static manifests): static manifests
sudo kubectl apply -f https://github.com/jetstack/cert-manager/releases/download/v1.0.0/cert-manager.yaml

/kind bug

core@manager-01 ~ $ sudo kubectl describe issuer letsencrypt-staging -n inarisk
Name:         letsencrypt-staging
Namespace:    inarisk
Labels:       <none>
Annotations:  <none>
API Version:  cert-manager.io/v1
Kind:         Issuer
Metadata:
  Creation Timestamp:  2020-09-07T00:17:38Z
  Generation:          1
  Resource Version:    15764634
  Self Link:           /apis/cert-manager.io/v1/namespaces/inarisk/issuers/letsencrypt-staging
  UID:                 cf76a7a8-7f57-41d7-9c95-e9cf3a6d5025
Spec:
  Acme:
    Email<EMAIL_ADDRESS>    Preferred Chain:
    Private Key Secret Ref:
      Name:  example-issuer-account-key
    Server:  https://acme-staging-v02.api.letsencrypt.org/directory
    Solvers:
      http01:
        Ingress:
          Class:  nginx
Status:
  Acme:
    Last Registered Email:  ...
    Uri:                    https://acme-staging-v02.api.letsencrypt.org/acme/acct/15516239
  Conditions:
    Last Transition Time:  2020-09-07T00:17:40Z
    Message:               The ACME account was registered with the ACME server
    Reason:                ACMEAccountRegistered
    Status:                True
    Type:                  Ready
Events:                    <none>

core@manager-01 ~ $ sudo kubectl describe certificate acme-crt -n inarisk
Name:         acme-crt
Namespace:    inarisk
Labels:       <none>
Annotations:  <none>
API Version:  cert-manager.io/v1
Kind:         Certificate
Metadata:
  Creation Timestamp:  2020-09-07T00:17:42Z
  Generation:          1
  Resource Version:    15764654
  Self Link:           /apis/cert-manager.io/v1/namespaces/inarisk/certificates/acme-crt
  UID:                 9510e09a-125e-4285-adbf-7fb203b87317
Spec:
  Dns Names:
    kubernetes.inarisk2.bnpb.go.id
  Issuer Ref:
    Group:      cert-manager.io
    Kind:       Issuer
    Name:       letsencrypt-staging
  Secret Name:  acme-crt-secret
Status:
  Conditions:
    Last Transition Time:        2020-09-07T00:17:42Z
    Message:                     Issuing certificate as Secret does not exist
    Reason:                      DoesNotExist
    Status:                      True
    Type:                        Issuing
    Last Transition Time:        2020-09-07T00:17:42Z
    Message:                     Issuing certificate as Secret does not exist
    Reason:                      DoesNotExist
    Status:                      False
    Type:                        Ready
  Next Private Key Secret Name:  acme-crt-9bvv5
Events:                          <none>

core@manager-01 ~ $ sudo kubectl get all -n inarisk
NAME                            READY   STATUS    RESTARTS   AGE
pod/cm-acme-http-solver-zfh6m   1/1     Running   0          4h5m
pod/inarisk-6b5c7484df-2r87d    1/1     Running   0          4h7m
pod/inarisk-6b5c7484df-fwqkj    1/1     Running   0          4h7m
pod/inarisk-6b5c7484df-j7wcg    1/1     Running   0          4h7m
pod/inarisk-6b5c7484df-k2k5f    1/1     Running   0          4h7m
pod/inarisk-6b5c7484df-qz6c4    1/1     Running   0          4h7m
pod/inarisk-6b5c7484df-rjd7h    1/1     Running   0          4h7m
pod/inarisk-6b5c7484df-vgsf9    1/1     Running   0          4h7m

NAME                                TYPE           CLUSTER-IP       EXTERNAL-IP      PORT(S)          AGE
service/cm-acme-http-solver-j5jk4   NodePort       <IP_ADDRESS>   <none>           8089:32433/TCP   4h5m
service/inarisk                     LoadBalancer   <IP_ADDRESS>     <IP_ADDRESS>   3035:32692/TCP   4h7m

NAME                      READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/inarisk   7/7     7            7           4h7m

NAME                                 DESIRED   CURRENT   READY   AGE
replicaset.apps/inarisk-6b5c7484df   7         7         7       4h7m

core@manager-01 ~ $ sudo kubectl logs cm-acme-http-solver-zfh6m -n inarisk
I0907 00:17:47.276065       1 solver.go:39] cert-manager/acmesolver "msg"="starting listener"  "expected_domain"="kubernetes.inarisk2.bnpb.go.id" "expected_key"="wWhmy1SQWU7IdvrbvOTbL-VOqwy7aiHM3ZYOOSXUwfo.MA8xsAFEWSOCiWdC71-5Awe7NfBq-cNXQ4KvF7PtzfY" "expected_token"="wWhmy1SQWU7IdvrbvOTbL-VOqwy7aiHM3ZYOOSXUwfo" "listen_port"=8089
I0907 00:41:04.549571       1 solver.go:59] cert-manager/acmesolver "msg"="responding OK to health check" "base_path"="/" "host"="<IP_ADDRESS>" "path"="/" "token"="/"
I0907 00:41:10.659144       1 solver.go:59] cert-manager/acmesolver "msg"="responding OK to health check" "base_path"="/" "host"="<IP_ADDRESS>" "path"="/" "token"="/"

core@manager-01 ~ $ sudo kubectl get ingress -n inarisk
NAME                        HOSTS                            ADDRESS          PORTS   AGE
cm-acme-http-solver-t9t6t   kubernetes.inarisk2.bnpb.go.id   <IP_ADDRESS>   80      4h6m

core@manager-01 ~ $ sudo kubectl describe ingress -n inarisk
Name:             cm-acme-http-solver-t9t6t
Namespace:        inarisk
Address:          <IP_ADDRESS>
Default backend:  default-http-backend:80 (<none>)
Rules:
  Host                            Path  Backends
  ----                            ----  --------
  kubernetes.inarisk2.bnpb.go.id
                                  /.well-known/acme-challenge/wWhmy1SQWU7IdvrbvOTbL-VOqwy7aiHM3ZYOOSXUwfo   cm-acme-http-solver-j5jk4:8089 (<IP_ADDRESS>:8089)
Annotations:
  field.cattle.io/publicEndpoints:                     [{"addresses":["<IP_ADDRESS>"],"port":80,"protocol":"HTTP","serviceName":"inarisk:cm-acme-http-solver-j5jk4","ingressName":"inarisk:cm-acme-http-solver-t9t6t","hostname":"kubernetes.inarisk2.bnpb.go.id","path":"/.well-known/acme-challenge/wWhmy1SQWU7IdvrbvOTbL-VOqwy7aiHM3ZYOOSXUwfo","allNodes":false}]
  kubernetes.io/ingress.class:                         nginx
  nginx.ingress.kubernetes.io/whitelist-source-range:  <IP_ADDRESS>/0,::/0
Events:                                                <none>

How can we enable https://kubernetes.inarisk2.bnpb.go.id  ??
Do we need to create another kubernetes ingress for namespace inarisk, becaruse automatic created kubernetes ingress by cert-manager is used port 8089 while inarisk docker apps is used port 3035 ??

core@manager-02 ~/certificate $ sudo kubectl apply -f test-resources.yaml
namespace/cert-manager-test created
issuer.cert-manager.io/test-selfsigned created
certificate.cert-manager.io/selfsigned-cert created
core@manager-02 ~/certificate $ sudo kubectl describe certificate -n cert-manager-test
Name:         selfsigned-cert
Namespace:    cert-manager-test
Labels:       <none>
Annotations:  kubectl.kubernetes.io/last-applied-configuration:
                {"apiVersion":"cert-manager.io/v1","kind":"Certificate","metadata":{"annotations":{},"name":"selfsigned-cert","namespace":"cert-manager-te...
API Version:  cert-manager.io/v1
Kind:         Certificate
Metadata:
  Creation Timestamp:  2020-09-07T07:35:07Z
  Generation:          1
  Resource Version:    15900795
  Self Link:           /apis/cert-manager.io/v1/namespaces/cert-manager-test/certificates/selfsigned-cert
  UID:                 0a9d8339-971d-4936-8127-df2ec690fedc
Spec:
  Dns Names:
    example.com
  Issuer Ref:
    Name:       test-selfsigned
  Secret Name:  selfsigned-cert-tls
Status:
  Conditions:
    Last Transition Time:  2020-09-07T07:35:08Z
    Message:               Certificate is up to date and has not expired
    Reason:                Ready
    Status:                True
    Type:                  Ready
  Not After:               2020-12-06T07:35:08Z
  Not Before:              2020-09-07T07:35:08Z
  Renewal Time:            2020-11-06T07:35:08Z
  Revision:                1
Events:
  Type    Reason     Age   From          Message
  ----    ------     ----  ----          -------
  Normal  Issuing    15s   cert-manager  Issuing certificate as Secret does not exist
  Normal  Generated  14s   cert-manager  Stored new private key in temporary Secret resource "selfsigned-cert-gbwx7"
  Normal  Requested  14s   cert-manager  Created new CertificateRequest resource "selfsigned-cert-49cl2"
  Normal  Issuing    14s   cert-manager  The certificate has been successfully issued

Have you tried following https://cert-manager.io/docs/faq/acme/?
/triage support
/remove-kind bug

@meyskens ,
We will try tshoot, and get back with the result,
Thank you

core@manager-03 ~ $ sudo kubectl describe certificate -n inarisk
Name:         acme-crt
Namespace:    inarisk
Labels:       <none>
Annotations:  <none>
API Version:  cert-manager.io/v1
Kind:         Certificate
Metadata:
  Creation Timestamp:  2020-09-15T07:54:47Z
  Generation:          1
  Resource Version:    19466697
  Self Link:           /apis/cert-manager.io/v1/namespaces/inarisk/certificates/acme-crt
  UID:                 daec0d6b-c49f-4200-8496-cad1cec40c29
Spec:
  Dns Names:
    inarisk2.acme.kubernetes.bnpb.go.id
  Issuer Ref:
    Group:      cert-manager.io
    Kind:       Issuer
    Name:       letsencrypt-prod
  Secret Name:  acme-dns
Status:
  Conditions:
    Last Transition Time:        2020-09-15T07:54:47Z
    Message:                     Issuing certificate as Secret does not exist
    Reason:                      DoesNotExist
    Status:                      True
    Type:                        Issuing
    Last Transition Time:        2020-09-15T07:54:48Z
    Message:                     Issuing certificate as Secret does not exist
    Reason:                      DoesNotExist
    Status:                      False
    Type:                        Ready
  Next Private Key Secret Name:  acme-crt-cf4pn
Events:
  Type    Reason     Age    From          Message
  ----    ------     ----   ----          -------
  Normal  Issuing    3m13s  cert-manager  Issuing certificate as Secret does not exist
  Normal  Generated  3m13s  cert-manager  Stored new private key in temporary Secret resource "acme-crt-cf4pn"
  Normal  Requested  3m13s  cert-manager  Created new CertificateRequest resource "acme-crt-95sdx"

Name:         acme-dns
Namespace:    inarisk
Labels:       <none>
Annotations:  <none>
API Version:  cert-manager.io/v1
Kind:         Certificate
Metadata:
  Creation Timestamp:  2020-09-15T07:54:47Z
  Generation:          1
  Owner References:
    API Version:           extensions/v1beta1
    Block Owner Deletion:  true
    Controller:            true
    Kind:                  Ingress
    Name:                  inarisk2
    UID:                   18487977-397a-47fc-b97c-ebcf1d0586b5
  Resource Version:        19466706
  Self Link:               /apis/cert-manager.io/v1/namespaces/inarisk/certificates/acme-dns
  UID:                     a50e0e3a-6086-45f1-88fe-283e2d819e22
Spec:
  Dns Names:
    inarisk2.acme.kubernetes.bnpb.go.id
  Issuer Ref:
    Group:      cert-manager.io
    Kind:       Issuer
    Name:       letsencrypt-prod
  Secret Name:  acme-dns
Status:
  Conditions:
    Last Transition Time:        2020-09-15T07:54:47Z
    Message:                     Issuing certificate as Secret does not exist
    Reason:                      DoesNotExist
    Status:                      False
    Type:                        Ready
    Last Transition Time:        2020-09-15T07:54:48Z
    Message:                     Issuing certificate as Secret does not exist
    Reason:                      DoesNotExist
    Status:                      True
    Type:                        Issuing
  Next Private Key Secret Name:  acme-dns-8srts
Events:
  Type    Reason     Age    From          Message
  ----    ------     ----   ----          -------
  Normal  Issuing    3m13s  cert-manager  Issuing certificate as Secret does not exist
  Normal  Generated  3m13s  cert-manager  Stored new private key in temporary Secret resource "acme-dns-8srts"
  Normal  Requested  3m12s  cert-manager  Created new CertificateRequest resource "acme-dns-gxxlj"

core@manager-03 ~ $ sudo kubectl describe certificaterequest acme-dns-gxxlj -n inarisk
Name:         acme-dns-gxxlj
Namespace:    inarisk
Labels:       <none>
Annotations:  cert-manager.io/certificate-name: acme-dns
              cert-manager.io/certificate-revision: 1
              cert-manager.io/private-key-secret-name: acme-dns-8srts
API Version:  cert-manager.io/v1
Kind:         CertificateRequest
Metadata:
  Creation Timestamp:  2020-09-15T07:54:49Z
  Generate Name:       acme-dns-
  Generation:          1
  Owner References:
    API Version:           cert-manager.io/v1
    Block Owner Deletion:  true
    Controller:            true
    Kind:                  Certificate
    Name:                  acme-dns
    UID:                   a50e0e3a-6086-45f1-88fe-283e2d819e22
  Resource Version:        19466748
  Self Link:               /apis/cert-manager.io/v1/namespaces/inarisk/certificaterequests/acme-dns-gxxlj
  UID:                     fffbdf2b-6e38-4f0b-973a-9a3e66eeb0fd
Spec:
  Issuer Ref:
    Group:  cert-manager.io
    Kind:   Issuer
    Name:   letsencrypt-prod
  Request:  LS0tLS1CRUdJTiBDRVJUSUZJQ0FURSBSRVFVRVNULS0tLS0KTUlJQ25qQ0NBWVlDQVFBd0FEQ0NBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQQURDQ0FRb0NnZ0VCQUpvWgo4cmF5Mkh2RHNZU29BRkdTK0FjZi9OWjhhRGtsdTZweVFZMVkrNEtSOTZ2VXBCN2Rma0M3UE9SWVhpMzdUSTA5CmZMaHpFT01iRDlvM2hqVHQ0dnFlWXdRWG5FczlrcW1RRkJMUzRKRHdtZGpoOUJaMUVLTG1nbmdUb21YYkgxaHEKbHJDR09YQmhlMDl2VFZZTWJmS0JreWpaN2V1ZW1JdWdzNi9qS0dzVWpyWTZpMEZCSXF0L1prYUxTM3YweVpXeQpDdWs3N1RIcUdBU0JEaEk5bmVVVk01T09ZWjlZdW4wa3lwZjdUSW5TVEZNU2NzYnlCVXEzcmIwTzJjbCtoYmI0CjI0ekx3bFFhL2tVQTJqWlA5QWtzRDJ3RUlMZHRLVDRjWFprem93WDltbmU5UmNMRG9ZMVhSbU1seEVqUk1CMWcKTFI0SlpEYS8yL0twUkpmUDY2a0NBd0VBQWFCWk1GY0dDU3FHU0liM0RRRUpEakZLTUVnd0xnWURWUjBSQkNjdwpKWUlqYVc1aGNtbHphekl1WVdOdFpTNXJkV0psY201bGRHVnpMbUp1Y0dJdVoyOHVhV1F3Q3dZRFZSMFBCQVFECkFnV2dNQWtHQTFVZEpRUUNNQUF3RFFZSktvWklodmNOQVFFTEJRQURnZ0VCQUh0NEI3U3dxQWd6ZjRUTXZsclMKd1lQVFlrMlp2eUJ5QXR3SjJVWGp3QllQMlBKSlVwMnZyTCtIUkF2K2lCRGk1dEowUFRRYTFocmprNnBxWVlTRAo1b0g3QzB5cC9WdVV3WGd2RU1UdjNWWkFsL0h5OFhjMG9kdUtjRXpwaDlxRTJON2svem42dnZhUnJsOVpmZ2NIClJrQnVDNW5uUXE4ZkFzeG00TGI2OFp3eEQ5VzRJR2JyVjNDS2VXTHFud1dlVWNZdWErdUF0b3dlRHlQakxKdTMKUU9mNWNCSlpPc01hTS9PdGY2cDFvNDY4ZEZHNEhZUGtYQW1la0YvbGVTb2kwRTRFUlpYMFA1TE9uc2xZM1l1WApVd0lWUFliQncwTmtoNnFLdWFNYzh0WVNGNjQydGx5VGZhcmRnYXYrd3pQMlRaRi8zRmdvQ3BFeitxa09tTmRICmcvYz0KLS0tLS1FTkQgQ0VSVElGSUNBVEUgUkVRVUVTVC0tLS0tCg==
Status:
  Conditions:
    Last Transition Time:  2020-09-15T07:54:49Z
    Message:               Waiting on certificate issuance from order inarisk/acme-dns-gxxlj-3164666598: "pending"
    Reason:                Pending
    Status:                False
    Type:                  Ready
Events:
  Type    Reason          Age   From          Message
  ----    ------          ----  ----          -------
  Normal  IssuerNotReady  42m   cert-manager  Referenced issuer does not have a Ready status condition

core@manager-03 ~ $ sudo kubectl describe issuer -n inarisk
Name:         letsencrypt-prod
Namespace:    inarisk
Labels:       <none>
Annotations:  <none>
API Version:  cert-manager.io/v1
Kind:         Issuer
Metadata:
  Creation Timestamp:  2020-09-15T07:54:47Z
  Generation:          1
  Resource Version:    19466726
  Self Link:           /apis/cert-manager.io/v1/namespaces/inarisk/issuers/letsencrypt-prod
  UID:                 36a5b164-1c6c-4636-b9c9-70f3b2e64faa
Spec:
  Acme:
    Email<EMAIL_ADDRESS>    Preferred Chain:
    Private Key Secret Ref:
      Name:  letsencrypt-prod
    Server:  https://acme-v02.api.letsencrypt.org/directory
    Solvers:
      http01:
        Ingress:
          Class:  nginx
Status:
  Acme:
    Last Registered Email<EMAIL_ADDRESS>    Uri:                    https://acme-v02.api.letsencrypt.org/acme/acct/96693287
  Conditions:
    Last Transition Time:  2020-09-15T07:54:51Z
    Message:               The ACME account was registered with the ACME server
    Reason:                ACMEAccountRegistered
    Status:                True
    Type:                  Ready
Events:                    <none>

Issuer ready is true, but why CertificateRequest reason is pending ??

can you do kubectl describe challenge ?

@meyskens ,
core@manager-03 ~ $ sudo kubectl describe challenge -n inarisk
Name:         letsencrypt-prod-rvtf4-3348803566-418921010
Namespace:    inarisk
Labels:       <none>
Annotations:  <none>
API Version:  acme.cert-manager.io/v1
Kind:         Challenge
Metadata:
  Creation Timestamp:  2020-09-25T13:01:37Z
  Finalizers:
    finalizer.acme.cert-manager.io
  Generation:  1
  Owner References:
    API Version:           acme.cert-manager.io/v1
    Block Owner Deletion:  true
    Controller:            true
    Kind:                  Order
    Name:                  letsencrypt-prod-rvtf4-3348803566
    UID:                   009b5b0d-8736-490b-921a-47835ff6619d
  Resource Version:        24368547
  Self Link:               /apis/acme.cert-manager.io/v1/namespaces/inarisk/challenges/letsencrypt-prod-rvtf4-3348803566-418921010
  UID:                     60451e93-7a0c-4665-9ca9-ce639e1f3d1d
Spec:
  Authorization URL:  https://acme-v02.api.letsencrypt.org/acme/authz-v3/7457607187
  Dns Name:           inarisk2.acme.kubernetes.bnpb.go.id
  Issuer Ref:
    Group:  cert-manager.io
    Kind:   ClusterIssuer
    Name:   letsencrypt-prod
  Key:      isbDXmvCgxo_2HO7jrs9hv5bGL7DPmSJUYSh4zSCyls.VBxVDdNRa2eAp9bHSzoWvWH8RbSmeXEZjZ5VVl9qxUA
  Solver:
    http01:
      Ingress:
        Class:  nginx
  Token:        isbDXmvCgxo_2HO7jrs9hv5bGL7DPmSJUYSh4zSCyls
  Type:         HTTP-01
  URL:          https://acme-v02.api.letsencrypt.org/acme/chall-v3/7457607187/A4uOZQ
  Wildcard:     false
Status:
  Presented:   true
  Processing:  true
  Reason:      Waiting for HTTP-01 challenge propagation: failed to perform self check GET request 'http://inarisk2.acme.kubernetes.bnpb.go.id/.well-known/acme-challenge/isbDXmvCgxo_2HO7jrs9hv5bGL7DPmSJUYSh4zSCyls': Get "http://inarisk2.acme.kubernetes.bnpb.go.id/.well-known/acme-challenge/isbDXmvCgxo_2HO7jrs9hv5bGL7DPmSJUYSh4zSCyls": dial tcp: lookup inarisk2.acme.kubernetes.bnpb.go.id on <IP_ADDRESS>:53: no such host
  State:       pending
Events:
  Type    Reason     Age   From          Message
  ----    ------     ----  ----          -------
  Normal  Started    7m2s  cert-manager  Challenge scheduled for processing
  Normal  Presented  7m1s  cert-manager  Presented challenge using HTTP-01 challenge mechanism
core@manager-03 ~ $

@meyskens ,
We think that root cause due to, A record does not exist,
bash-5.0# nslookup inarisk2.acme.kubernetes.bnpb.go.id
Server:         <IP_ADDRESS>
Address:        <IP_ADDRESS>#53

** server can't find inarisk2.acme.kubernetes.bnpb.go.id: NXDOMAIN

bash-5.0# dig inarisk2.acme.kubernetes.bnpb.go.id

; <<>> DiG 9.14.12 <<>> inarisk2.acme.kubernetes.bnpb.go.id
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 63701
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
; COOKIE: ec34f7297605ead7d3c40cf45f6e1e43e1f5c2e16f6cc315 (good)
;; QUESTION SECTION:
;inarisk2.acme.kubernetes.bnpb.go.id. IN        A

;; AUTHORITY SECTION:
bnpb.go.id.             38400   IN      SOA     ns5.bnpb.go.id. contact.bnpb.go.id.<PHONE_NUMBER> 10800 3600<PHONE_NUMBER>0

;; Query time: 2 msec
;; SERVER: <IP_ADDRESS>#53(<IP_ADDRESS>)
;; WHEN: Fri Sep 25 16:43:47 UTC 2020
;; MSG SIZE  rcvd: 140

bash-5.0#

example subdomain with A record available,
bash-5.0# nslookup dashboard.kubernetes.bnpb.go.id
Server:         <IP_ADDRESS>
Address:        <IP_ADDRESS>#53

Non-authoritative answer:
Name:   dashboard.kubernetes.bnpb.go.id
Address: <IP_ADDRESS>

bash-5.0# dig dashboard.kubernetes.bnpb.go.id

; <<>> DiG 9.14.12 <<>> dashboard.kubernetes.bnpb.go.id
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 40573
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
; COOKIE: d1d640ecf99f08247b217b955f6e1eac6107cc82101b61cb (good)
;; QUESTION SECTION:
;dashboard.kubernetes.bnpb.go.id. IN    A

;; ANSWER SECTION:
dashboard.kubernetes.bnpb.go.id. 38400 IN A     <IP_ADDRESS>

;; AUTHORITY SECTION:
bnpb.go.id.             38400   IN      NS      ns5.bnpb.go.id.

;; ADDITIONAL SECTION:
ns5.bnpb.go.id.         38400   IN      A       <IP_ADDRESS>

;; Query time: 2 msec
;; SERVER: <IP_ADDRESS>#53(<IP_ADDRESS>)
;; WHEN: Fri Sep 25 16:45:32 UTC 2020
;; MSG SIZE  rcvd: 138

bash-5.0#

Can this issue be closed?

@meyskens,
We still trying to fixed dns,can we have time until 16 November 2020,
If it's not possible, you can closed this issue, thank you.

I have the same issue and when I describe the challenge it seems to be stuck. The HTTP01 challenge is valid and does return but nothing happens. The clusterissuer is True.
Spec:
  Authorization URL:  https://acme-v02.api.letsencrypt.org/acme/authz-v3/11970742980
  Dns Name:           mopani6.trublo.com
  Issuer Ref:
    Group:  cert-manager.io
    Kind:   ClusterIssuer
    Name:   letsencrypt-mopani-prod-2
  Key:      sToI9Gu_A21rSWES0-vXFH_kPwn-hJZddeDoE4Bb0cA.1_r9EU1SF9Zk_LhWw2j9abqHLmVa_jfAx4QaDQnOeoM
  Solver:
    http01:
      Ingress:
        Class:  nginx
  Token:        sToI9Gu_A21rSWES0-vXFH_kPwn-hJZddeDoE4Bb0cA
  Type:         HTTP-01
  URL:          https://acme-v02.api.letsencrypt.org/acme/chall-v3/11970742980/6xB2HQ
  Wildcard:     false
Status:
  Presented:   true
  Processing:  true
  Reason:      Waiting for HTTP-01 challenge propagation: failed to perform self check GET request 'http://mopani6.trublo.com/.well-known/acme-challenge/sToI9Gu_A21rSWES0-vXFH_kPwn-hJZddeDoE4Bb0cA': Get "http://mopani6.trublo.com/.well-known/acme-challenge/sToI9Gu_A21rSWES0-vXFH_kPwn-hJZddeDoE4Bb0cA": EOF
  State:       pending
Events:
  Type    Reason     Age   From          Message
  ----    ------     ----  ----          -------
  Normal  Started    60s   cert-manager  Challenge scheduled for processing
  Normal  Presented  59s   cert-manager  Presented challenge using HTTP-01 challenge mechanism


Move check for BaseFileNode in get_file, resolves #8888 [PLAT-1309]

Purpose
The get_file endpoint checked for the is_deleted property before making sure it was a BaseFileNode object - just move that a little bit!
Changes

Move check for BaseFileNode above check for is_deleted

QA Notes
Visiting a files detail endpoint like /v2/files/<real_guid>/ with a guid that's not a file (like a user or a node's guid) returns a 404 not found!
Documentation
Bug fix, no docs needed!

Side Effects
None anticipated

Ticket
https://openscience.atlassian.net/browse/PLAT-1309

Headed to staging1!


CAM bindings don't allow any track hierarchy

The raw CAM bindings allow users to specify a parent track to allow a hierarchy to be built. We don't current expose this in the C# bindings - it would be good to hit parity.

Fixed in #13


Vulnerability roundup 85: gksu-2.0.2: 1 advisory

search, files

[ ] CVE-2014-2886 (nixos-20.03, nixos-unstable)

Scanned versions: nixos-20.03: a84b797b28e; nixos-unstable: 22c98819ccd. May contain false positives.

Obsolete for nixos-unstable as of https://github.com/NixOS/nixpkgs/commit/b16e5d212e1963f8a036a8c2b8b1081153521993


Links detected as ads by Adguard Adblocker

Apparently the social links, and links in the footer with blue circle button detected as ads and hidden by Adguard Adblocker.
  <ul class="list-inline social-icon">

also I found these in the _includes/head.html :
  <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
  <script>
    (adsbygoogle = window.adsbygoogle || []).push({
      google_ad_client: "ca-pub-6196184668650108",
      enable_page_level_ads: true
    });
  </script>

Was it to show up ads? Where? I can't see any ads even if I disable adblock.

Thanks for this issue!
I wanted to add this ad to my own website and now I remove it at new commit.
Hope you like this Jekyll theme.


reproduce problem

@hoatle dev-setup/chef/berks-cookbooks is generated with:
$ vagrant ssh
$ ws
$ cd dev-setup/chef
$ docker-compose up
and then $ vagrant rsync-back from the host terminal to sync generated files back to the host.
vagrant reload --provision

@hieptranquoc this is wrong with teracy-dev v0.5.0-c1
$ cp workspace/dev-setup/vagrant_config_override.example.json vagrant_config_override.json

teracy-dev will auto discover workspace/dev-setup/vagrant_config_default.json

closed, bug detected and resolved.


error if adding repo with unsupported protocol

fixes part of #492

Let's not implement this here. Cosmos should do this for us instead. Please file an issues against it if we agree.

Sure! Filed an issue against cosmos.


Address CVE-2024-21508 by updating mysql2 package.

bump mysql2 package from v3.5.2 to v3.9.4

https://github.com/advisories/GHSA-fpw7-j2hg-69v5 for more information

Codecov Report

Merging #25 (d524194) into main (24e96eb) will not change coverage.
The diff coverage is n/a.

Additional details and impacted files
@@           Coverage Diff           @@
##             main      #25   +/-   ##
=======================================
  Coverage   80.40%   80.40%
=======================================
  Files          10       10
  Lines         990      990
  Branches      137      137
=======================================
  Hits          796      796
  Misses        194      194