feat: new canonical link action

This pull-request includes a new reusable private action named _doc-gen-canonical. Its goal is to ensure that the <link rel="canonical" href="..." /> is included in any HTML of the version/stable directory.

Converting this to draft and blocking it. I just want to prevent any modifications in the HTML pages for geometry before we get the latest results on SEO improvements.

It looks like Google prefers the project.docs.pyansys.com as the canonical URL for the /version/stable/index.html page.


.mbedignore with venv

To avoid some nasty surprises in case you do a "proper clean installation of Python 2" for mbed cli (in case you want to run Mbed OS 5.15.x).
I.e.
virtualenv venv -p /usr/bin/python2.7
pip install mbed-cli
pip install mbed-os/requirements.txt

It will try to compile EVERYTHING - as per usual and then fails when it does not find various Python compilation things.
Compile [ 97.3%]: _speedups.c
[Error] pyconfig.h@122,3: #error unknown multiarch location for pyconfig.h
[Error] pyconfig.h@122,3: #error unknown multiarch location for pyconfig.h
[Error] pyconfig.h@122,3: #error unknown multiarch location for pyconfig.h
[Error] _speedups.c@18,8: unknown type name 'Py_UNICODE'
1:32

Seems reasonable, thanks!


Support macOS operating system

Compiling Bullet with Bazel for macOS will require a few updates to the corresponding package.BUILD file.
This PR gathers the required compilation flags from Bullet's setup.py.
@boragokbakan FYI.

Hmm not ready yet, I've converted this PR to draft :sweat_smile:

No worries. It should be ready now. Tested on an x86_64 Intel MacBook pro. @boragokbakan how does it fare on M1?

Oh I hadn't seen that one! There was actually a compiler error about interfaces having "virtual functions but non-virtual destructor". This point is discussed e.g. in this SO question.
Adding a default virtual destructor to Interface in 6e08dfa seems to have solved it.

The relevant file would be requirements_lock.txt in tools/workspace/pip_vulp, but I don't know if we can specify an architecture there.
That being said, we are at 1.0.5 from 2020, this is quite old. Maybe try to bump it to 1.1.1?

Great! Thanks for checking :smiley:

Is that expected or did you disable some tests? I remember having 90.

Likely the consequence of https://github.com/tasts-robots/vulp/pull/37/commits/6b99c6ef01f2aa62fedaa088574348dfda8fdeec. Linter tests are only run with ./tools/bazel --config lint now.


container unhealthy possible issue with beast-splitter

Hi,
Setup: dump1090 beast on a different host
pi4: running mikenye/adsbexchange mikenye/planefinder and docker-piware
mikenye/adsbexchange and mikenye/planefinder reports aircrafts with no issues (which means no connection issues etc)
docker-piaware enters unhealthy status almost everyday last messages are like the following:
[piaware] 2022/01/03 23:20:15 no new messages received in 3888 seconds, it might just be that there haven't been any aircraft nearby but I'm going to try to restart everything, just in case...
[piaware] 2022/01/03 23:20:16 faup1090 exited with SIG SIGHUP
[piaware] 2022/01/03 23:20:16 attempting to restart beast-splitter..
[piaware] 2022/01/03 23:20:16 can't restart beast-splitter, no services that look like beast-splitter found
Following the last message you need to restart the connection and data continues to be send

just pulled the latest container just in case

Created the following:
/etc/init.d/beast-splitter
#!/usr/bin/env sh
"dummy" SysV-style init script, to allow piaware to restart beast-splitter.
piaware calls SysV init script to restart beast-splitter (package/fa_services.tcl invoke_service_action).
this script allows that, while still using s6-supervise.
pkilling beast-splitter causes s6-supervise to restart it.
case "$1" in
restart)
pkill /usr/local/bin/beast-splitter
;;
*)
echo "Usage: $0 {start|stop|restart|status}"
exit 1
;;
esac
exit 0
If it will work as expected i will fire a pull request

Unfortunately it tries to restart it using
invoke-rc.d beast-splitter restart
invoke-rc.d: could not determine current runlevel
invoke-rc.d: policy-rc.d denied execution of restart.
2022-01-08 19:32:01.600822930  [piaware] 2022/01/08 19:32:01 no new messages received in 3889 seconds, it might just be that there haven't been any aircraft nearby but I'm going to try to restart everything, just in case...
2022-01-08 19:32:02.603323782  [piaware] 2022/01/08 19:32:02 faup1090 exited with SIG SIGHUP
2022-01-08 19:32:02.604424458  [piaware] 2022/01/08 19:32:02 attempting to restart beast-splitter..
2022-01-08 19:32:02.626829558  [piaware] 2022/01/08 19:32:02 invoke-rc.d: could not determine current runlevel
2022-01-08 19:32:02.646426533  [piaware] 2022/01/08 19:32:02 invoke-rc.d: policy-rc.d denied execution of restart.
2022-01-08 19:32:02.646831807  [piaware] 2022/01/08 19:32:02 can't restart beast-splitter, no services that look like beast-splitter found
2022-01-08 19:32:12.669863659  [piaware] 2022/01/08 19:32:12 ADS-B data program 'dump1090' is listening on port 30005, so far so good
2022-01-08 19:32:12.670966224  [piaware] 2022/01/08 19:32:12 Starting faup1090: /usr/lib/piaware/helpers/faup1090 --net-bo-ipaddr localhost --net-bo-port 30005 --stdout --lat 38.028 --lon 23.858
2022-01-08 19:32:12.676913270  [piaware] 2022/01/08 19:32:12 Started faup1090 (pid 4524) to connect to dump1090
2022-01-08 19:32:32.648537083  [piaware] 2022/01/08 19:32:32 76261 msgs recv'd from dump1090 (0 in last 5m); 76248 msgs sent to FlightAware
2022-01-08 19:35:27.579919197  [piaware] 2022/01/08 19:35:27 mlat-client(23696): Receiver status: connected
2022-01-08 19:35:27.581058650  [piaware] 2022/01/08 19:35:27 mlat-client(23696): Server status:   not synchronized with any nearby receivers
2022-01-08 19:35:27.582002013  [piaware] 2022/01/08 19:35:27 mlat-client(23696): Receiver:    0.0 msg/s received        0.0 msg/s processed (0%)
2022-01-08 19:35:27.583077209  [piaware] 2022/01/08 19:35:27 mlat-client(23696): Server:      0.0 kB/s from server    0.0kB/s TCP to server     0.0kB/s UDP to server
2022-01-08 19:35:27.584107923  [piaware] 2022/01/08 19:35:27 mlat-client(23696): Aircraft: 0 of 0 Mode S, 0 of 0 ADS-B used
2022-01-08 19:37:31.601968755  [piaware] 2022/01/08 19:37:31 76261 msgs recv'd from dump1090 (0 in last 5m); 76248 msgs sent to FlightAware

I have corrected them both on my repo but still not pushed it yet.
There is another change needed on the fa_services.tcl to ignore the invoce-rc.d. Still testing it (and of course on the dockerfile to include it on the build). Renamed it to txt in order to uploaded it
fa_services.tcl.txt

And a log file
2022-01-09 11:16:28.479957353  [piaware] 2022/01/09 11:16:28 Receiver location changed, restarting dump1090 and skyaware978
2022-01-09 11:16:28.480548348  [piaware] 2022/01/09 11:16:28 attempting to restart dump1090..
2022-01-09 11:16:28.482201983  [piaware] 2022/01/09 11:16:28 has_invoke_rcd: Running on docker ignoring invoke-rc.d
2022-01-09 11:16:28.482922070  [piaware] 2022/01/09 11:16:28 has_invoke_rcd: Running on docker ignoring invoke-rc.d
2022-01-09 11:16:28.483649416  [piaware] 2022/01/09 11:16:28 attempting to restart dump1090 using '/etc/init.d/dump1090 restart < /dev/null &'...
2022-01-09 11:16:28.489037853  [piaware] 2022/01/09 11:16:28 dump1090 restart appears to have been successful
Which means it looks like it worked yesterday but i will give it some more testing

That's promising - thanks for the update. Please keep me updated.

You have a pull request, works for me without issues


Java SDK - Streaming requests fail

Summary
What happened/what you expected to happen?
When using the Java SDK v3.2.4 doing a streaming request such as WorkflowService.WatchWorkflows will never return successfully and always throws an exception. The expectation is the SDK can successfully return a result.
What version of Argo Workflows are you running?
v3.2.4
Diagnostics
Either a workflow that reproduces the bug, or paste you whole workflow YAML, including status, something like:

Create a simple workflow that waits indefinitely.

apiVersion: argoproj.io/v1alpha1
kind: Workflow
metadata:
  generateName: steps-
spec:
  entrypoint: hello-hello-hello

  templates:
  - name: hello-hello-hello
    steps:
    - - name: hello1
        template: whalesay
        arguments:
          parameters:
          - name: message
            value: "hello1"
    - - name: wait1
        template: wait

  - name: whalesay
    inputs:
      parameters:
      - name: message
    container:
      image: docker/whalesay
      command: [cowsay]
      args: ["{{inputs.parameters.message}}"]

  - name: wait
    suspend: {}

Submit the workflow on the UI

Create an application using the WorkflowService.WatchWorkflows example.

Amend the example with the following:

// Missing deserializers
Gson gson = defaultClient.getJSON().getGson().newBuilder().setLenient().registerTypeAdapter(DateTime.class, new JsonDeserializer<DateTime>() {
    @Override
    public DateTime deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context)
            throws JsonParseException {
        return new DateTime(json.getAsString());
    }
}).registerTypeAdapter(Instant.class, new JsonDeserializer<Instant>() {
    @Override
    public Instant deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException {
        return ZonedDateTime.parse(json.getAsJsonPrimitive().getAsString()).toInstant();
    }
}).create();

defaultClient.setJSON(defaultClient.getJSON().setGson(gson))

defaultClient.setDebugging(true)
String namespace = <your argo namespace> //my-namespace
String listOptionsFieldSelector = "metadata.name=<name of your workflow>" //steps-5bsdf
Boolean listOptionsWatch = true
Boolean listOptionsAllowWatchBookmarks = true
String listOptionsTimeoutSeconds = "5" //If set to null Exception thrown is a client side socket timeout
// Set every other parameter to null

// try request catch ...

Observe an exception thrown

Nov 25, 2021 11:05:49 AM okhttp3.internal.platform.Platform log
INFO: <-- 200 https://argo-workflows.com/api/v1/workflow-events/my-namespace?listOptions.fieldSelector=metadata.name%3Dsteps-5bsdf&listOptions.watch=true&listOptions.allowWatchBookmarks=true&listOptions.timeoutSeconds=5 (46ms)
Nov 25, 2021 11:05:49 AM okhttp3.internal.platform.Platform log
INFO: server: nginx/1.19.2
Nov 25, 2021 11:05:49 AM okhttp3.internal.platform.Platform log
INFO: date: Thu, 25 Nov 2021 11:05:48 GMT
Nov 25, 2021 11:05:49 AM okhttp3.internal.platform.Platform log
INFO: content-type: application/json
Nov 25, 2021 11:05:49 AM okhttp3.internal.platform.Platform log
INFO: vary: Accept-Encoding
Nov 25, 2021 11:05:49 AM okhttp3.internal.platform.Platform log
INFO: grpc-metadata-content-type: application/grpc
Nov 25, 2021 11:05:54 AM okhttp3.internal.platform.Platform log
INFO:
Nov 25, 2021 11:05:54 AM okhttp3.internal.platform.Platform log
INFO: {"result":{"type":"ADDED","object":{"metadata":{"name":"steps-5bsdf","generateName":"steps-","namespace":"my-namespace","selfLink":"/apis/argoproj.io/v1alpha1/namespaces/my-namespace/workflows/steps-5bsdf","uid":"944224ab-2591-45fc-b28f-1d66011441f6","resourceVersion":"274937724","generation":3,"creationTimestamp":"2021-11-25T11:04:10Z","labels":{"workflows.argoproj.io/creator":"system-serviceaccount-my-namespace-argo-workflows-server","workflows.argoproj.io/phase":"Running"},"managedFields":[{"manager":"argo","operation":"Update","apiVersion":"argoproj.io/v1alpha1","time":"2021-11-25T11:04:10Z","fieldsType":"FieldsV1","fieldsV1":{"f:metadata":{"f:generateName":{},"f:labels":{".":{},"f:workflows.argoproj.io/creator":{}}},"f:spec":{".":{},"f:arguments":{},"f:entrypoint":{},"f:templates":{}},"f:status":{".":{},"f:finishedAt":{}}}},{"manager":"workflow-controller","operation":"Update","apiVersion":"argoproj.io/v1alpha1","time":"2021-11-25T11:04:20Z","fieldsType":"FieldsV1","fieldsV1":{"f:metadata":{"f:labels":{"f:workflows.argoproj.io/phase":{}}},"f:status":{"f:artifactRepositoryRef":{},"f:conditions":{},"f:nodes":{},"f:phase":{},"f:progress":{},"f:startedAt":{}}}}]},"spec":{"templates":[{"name":"hello-hello-hello","inputs":{},"outputs":{},"metadata":{},"steps":[[{"name":"hello1","template":"whalesay","arguments":{"parameters":[{"name":"message","value":"hello1"}]}}],[{"name":"wait1","template":"wait","arguments":{}}]]},{"name":"whalesay","inputs":{"parameters":[{"name":"message"}]},"outputs":{},"metadata":{},"container":{"name":"","image":"docker/whalesay","command":["cowsay"],"args":["{{inputs.parameters.message}}"],"resources":{"limits":{"cpu":"50m","memory":"64Mi"},"requests":{"cpu":"50m","memory":"64Mi"}}}},{"name":"wait","inputs":{},"outputs":{},"metadata":{},"suspend":{}}],"entrypoint":"hello-hello-hello","arguments":{}},"status":{"phase":"Running","startedAt":"2021-11-25T11:04:10Z","finishedAt":null,"progress":"0/1","nodes":{"steps-5bsdf":{"id":"steps-5bsdf","name":"steps-5bsdf","displayName":"steps-5bsdf","type":"Steps","templateName":"hello-hello-hello","templateScope":"local/steps-5bsdf","phase":"Running","startedAt":"2021-11-25T11:04:10Z","finishedAt":null,"progress":"0/1","children":["steps-5bsdf-2996575271"]},"steps-5bsdf-288291960":{"id":"steps-5bsdf-288291960","name":"steps-5bsdf[0].hello1","displayName":"hello1","type":"Pod","templateName":"whalesay","templateScope":"local/steps-5bsdf","phase":"Running","boundaryID":"steps-5bsdf","startedAt":"2021-11-25T11:04:10Z","finishedAt":null,"progress":"0/1","inputs":{"parameters":[{"name":"message","value":"hello1"}]},"hostNodeName":"gke-standard2021031516343079160-2833fcfe-4giz"},"steps-5bsdf-2996575271":{"id":"steps-5bsdf-2996575271","name":"steps-5bsdf[0]","displayName":"[0]","type":"StepGroup","templateScope":"local/steps-5bsdf","phase":"Running","boundaryID":"steps-5bsdf","startedAt":"2021-11-25T11:04:10Z","finishedAt":null,"progress":"0/1","children":["steps-5bsdf-288291960"]}},"conditions":[{"type":"PodRunning","status":"True"}],"artifactRepositoryRef":{"default":true,"artifactRepository":{}}}}}}
{"error":{"grpc_code":2,"http_code":500,"message":"EOF","http_status":"Internal Server Error"}}
Nov 25, 2021 11:05:54 AM okhttp3.internal.platform.Platform log
INFO: <-- END HTTP (3210-byte body)
Exception in thread "main" com.google.gson.JsonIOException: JSON document was not fully consumed.
	at com.google.gson.Gson.assertFullConsumption(Gson.java:905)
	at com.google.gson.Gson.fromJson(Gson.java:898)
	at com.google.gson.Gson.fromJson(Gson.java:846)
	at io.argoproj.workflow.JSON.deserialize(JSON.java:146)
	at io.argoproj.workflow.ApiClient.deserialize(ApiClient.java:797)
	at io.argoproj.workflow.ApiClient.handleResponse(ApiClient.java:1003)
	at io.argoproj.workflow.ApiClient.execute(ApiClient.java:927)
	at io.argoproj.workflow.apis.WorkflowServiceApi.workflowServiceWatchWorkflowsWithHttpInfo(WorkflowServiceApi.java:2478)
	at io.argoproj.workflow.apis.WorkflowServiceApi.workflowServiceWatchWorkflows(WorkflowServiceApi.java:2448)
	at io.argoproj.workflow.apis.WorkflowServiceApi$workflowServiceWatchWorkflows$0.call(Unknown Source)
	at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47)
	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116)

As can be seen in the logs above a result can be produced both the initial get from the watch and the following EOF message. However it always produces an exception because the return type StreamResultOfIoArgoprojWorkflowV1alpha1WorkflowWatchEvent has no concept of storing multiple JSON documents (hence the exception around document not fully consumed).
Ultimately I think the problem is the code is generated from the swagger docs and it does not represent the streaming nature of this HTTP call.
What Kubernetes provider are you using?
GKE
What executor are you running? Docker/K8SAPI/Kubelet/PNS/Emissary
Docker
# Logs from the workflow controller:
kubectl logs -n argo deploy/workflow-controller | grep ${workflow}

No logs produced

# The workflow's pods that are problematic:
kubectl get pod -o yaml -l workflows.argoproj.io/workflow=${workflow},workflow.argoproj.io/phase!=Succeeded

Workflow isn't problematic

# Logs from in your workflow's wait container, something like:
kubectl logs -c wait -l workflows.argoproj.io/workflow=${workflow},workflow.argoproj.io/phase!=Succeeded

Workflow isn't problematic

Message from the maintainers:
Impacted by this bug? Give it a 👍. We prioritise the issues with the most 👍.

I think there might be two problems here:

Your server return 500 error.
Maybe SDK does not support steaming.

Could you please attach the argo-server logs detailing the 500 error so we can understand more?

I've finally gotten around to looking into this. The Java SDK is generated from OpenAPI specs. OpenAPI does not support server-send events (aka SSE). So this cannot be fixed.

This works:
https://adambien.blog/roller/abien/entry/receiving_server_sent_events_sses


Clarified how to upload a sketch

I fell into the trap of trying to run the upload configuration which failed rather cryptically with a 127 exit code while it seemed to want to execute a .elf file. It pains me to admit that I spent way too much time trying to figure out the interpreter that the .elf requires, installing 32 bit dependencies, ...
After I finally found out that I had to build rather than run I felt like this -> :man_facepalming:.
To prevent other people from sharing my despair I've clarified in the README that running these configurations should be build rather than run.

@MatthiasKunnen, thank you.


Added response when search query returns no SO items

Currently, stackit exits when search returns no stack overflow responses.
This just adds functionality to either launch browser into stack overflow, search again with new/edited terms or exit the program.
The os.system call to return to search isn't great, but any other way I could think of required complete restructure.
I'm pretty new to this, so feel free to be as critical as you want.
Thanks,
Rob

Rob:
Thanks so much for the pull request! Several of us (me included) are super new to this too. I made some line comments in your code, and we'd love to see those changes in a new commit!
We agree that there should be some way to handle result-less queries, but I'm not sure the best way to handle that is to drop the user into an interface (the one you've created) that tries to recreate the functionality at the command line––that seems to be two ways to do functionally the same thing, start from scratch.
Additionally, because it bypasses the command line parsing process, dropping the user into such an interface could lose some functionality (such as tags or stderr piping) when you remove the messy os.system() call.
This is something we'll talk about as a team, and get back to you ASAP!
Just some brainstorming:

What if we just print some sort of 'search failed' warning and then return the user to the command line?
We should give the user the search terms––that already happens before listing the search results, and before this condition could be triggered, so this shouldn't be an issue.
I want to print all error warnings in red––making this a Trello card.

Thanks again!

@grobbie94 I just merged in another pull request, which means you're also going to have to rebase onto master. Just a heads up!

Hey Lukas,
Removed the option to 're-search' with new terms, that does indeed take away some of the main functionality of piping in errors.
Now, a warning comes up with the search terms used. If the user wants to enter the browser, it directs to stackoverflow with the search completed so it can be easily altered.

@grobbie94 something about your git rebase seems a bit odd–-see the 'Files Changed' tab on this pull request.
The master code has changed quite a bit since this pull request was opened, including major refactoring, which I think would make the continued modification of this pull request tricky. My suggestion is that you watch PR 9: Refactoring, re-branch when that pull request is merged, and then re-implement your functionality.
If you aren't liking this, I'd be happy to implement it myself and give you credit for this pull request conversation in README.md.
Just let me know!

@lukasschwab I haven't been watching very closely. I'll re fork it and add it in.
Thanks,
Rob


adding more worker nodes

Hi @ihcsim
I initially started with 1 etcd and 1 worker nodes.  Now I want to add another worker node to my existing  running cluster.  Can this repo do that?

You can update the k8s_workers_count variable in the vars.tf file and run terraform apply again.

update worker count from 2 to 3.
I issued terraform apply  command.  It crashed.  The following is a partial log from the end:

Error: Error applying plan:
1 error(s) occurred:

digitalocean_droplet.etcd: 1 error(s) occurred:

digitalocean_droplet.etcd: Error creating droplet: POST https://api.digitalocean.com/v2/droplets: 422 error processing droplet creation, invalid parameters

I configured mine to be just 1 etcd node.  So I wonder if it is because of just that.  I will test.

Closing this issue due to inactivity.


Cannot even npm install it

Is this library completely deprecated?

Hi, Do you have any information if the library is still supported?


Allow shared object (no Foreign Key) relationships

I run in to a number of situations where I want to share an object type across multiple parents.. Could be a Contact, Address, Image&MetaData. I would like support for a "shared" entity.. one that is based on a parent ID and discriminator.. While navigating from the child (Contact, address, image, etc) to the parent would be non-trivial, the vast majority of the time this use case is from the parent to a collection of children. Currently without adding a bunch of one off inherited objects and a nullable FK for each parent type this is not doable, and that approach is disliked by many a DBA..
Ideal use case:
Contact:

Id
ParentId
ParentDiscriminator
[the rest of the fields that make up a contact]

Customer:

Id
Fields that make up a customer
ICollection Contacts

Supplier:

Id
Fields that make up a supplier
ICollection Contacts

Partner:

Id
Fields that make up a partner
ICollection Contacts

Warehouse:

Id
Fields that make up a partner
ICollection Contacts

etc...   Currently the best I can do is create a ContactBase, then a contact per parent, and that adds an FK per parent to the database model. And that approach just seems overly complicated, causes code bloat (if a contact is truly is identical every time) and adds fields and un-needed indexes to the database.
Thanks

From our best understanding this looks like an example of mapping interfaces with polymorphic associations, which is tracked by #757


tripleo_cleanup: Fix a task that was always skipped and it shouldn't be

Apparently the 'when' condition on a block is not evaluated only before the block begins executing, but it is evaluated for each task separately. That means that if the fact that is used in the 'when' condition changes during the block execution, it affects whether the following tasks in the block will execute or not.
In our case, the "Filter for tripleo services" task set the tripleo_services fact, and due to that the following "Filter services in skip list" task never executed because the "when" condition on the block says to execute only if tripleo_services is empty.
I've pulled the two set_fact tasks into a single one to get around this issue, since i didn't want to pollute the facts list with a temporary fact. (Facts can't be undefined.)
Resolves: OSPRH-8584

Pending testing with testproject - this is only caught by tempest

/hold

recheck

lgtm, can we also include the edpm_tripleo_cleanup role in
https://github.com/openstack-k8s-operators/edpm-ansible/blob/10eb44961c04c19aabcc81225ca54f38035a862f/zuul.d/projects.yaml#L24
could be followup as i think this is on the way to merge

a i just saw it has the do not merge label still so ... could update here goign to ping jistr now

lgtm, can we also include the edpm_tripleo_cleanup role in
https://github.com/openstack-k8s-operators/edpm-ansible/blob/10eb44961c04c19aabcc81225ca54f38035a862f/zuul.d/projects.yaml#L24
could be followup as i think this is on the way to merge

ah, i just saw it has the do not merge label still so ... could update here goign to ping jistr now

so, actually if we do this, we would get the 'ceph job' which is fine, but it wouldn't catch the issue being fixed here (which was hitting the non ceph job). Still though I think it is worth running the job on that role since it is being consumed by the adoption tests

/unhold

/hold

Forgot to check the logs as we planned... doing so now

https://logserver.rdoproject.org/95/695/bc8c70075366ff31bbe868bdbc6fdc39eeafe0f5/github-check/cifmw-data-plane-adoption-osp-17-to-extracted-crc/8e65bc4/controller/ci-framework-data/logs/openstack-k8s-operators-openstack-must-gather/namespaces/openstack/pods/tripleo-cleanup-tripleo-cleanup-openstack-lnxhv/logs/openstackansibleee.log
Looks like the only stopped Swift service now is tripleo_swift_proxy.service, the storage services were correctly skipped.

/unhold

/cherry-pick 18.0.0-proposed


TSHttpTxnIsCacheable not defined as a c function

Sphinx reports:
/trafficserver/doc/admin-guide/plugins/background_fetch.en.rst:55: WARNING: c:func reference target not found: TSHttpTxnIsCacheable

May be related to #4971

I do not see this on the "master" builds, so closing for now.


add oneOf

My try on generic function for use case #6
For the following structure:
const OneOf = sd.oneOf({
  a: sd.uint8,
  b: sd.array(sd.uint8, sd.uint8)
});

It will create Serdes<T> where T is:
type OneOf = {
  type: 'a';
  value: number;
} | {
  type: 'b';
  value: number[];
}

P.S. Thank you for such an elegant and nice to use library

Thank you for contributing! Seems like it fails in automated tests. I will investigate why.


TagBot trigger issue

This issue is used to trigger TagBot; feel free to unsubscribe.
If you haven't already, you should update your TagBot.yml to include issue comment triggers.
Please see this post on Discourse for instructions and more details.
If you'd like for me to do this for you, comment TagBot fix on this issue.
I'll open a PR within a few hours, please be patient!

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/79005

Triggering TagBot for merged registry pull request
This extra notification is being sent because I expected a tag to exist by now, but it doesn't.
You may want to check your TagBot configuration to ensure that it's running, and if it is, check the logs to make sure that there are no errors.

Triggering TagBot for merged registry pull request
This extra notification is being sent because I expected a tag to exist by now, but it doesn't.
You may want to check your TagBot configuration to ensure that it's running, and if it is, check the logs to make sure that there are no errors.


Add strong and weak ETag comparisons

The implementation of Equals simply checks whether two ETags are equivalent but does not comform to the RFC's specifications in terms of comparing ETags listed here: https://tools.ietf.org/html/rfc7232#section-2.3.2.
cc @Tratcher

:up::date:

:shipit:


fixed README

Fixed the README file by updating links, correcting package names (nodejs was jodejs originally), and writing more explicit documentation.
This should resolve Issue #365.

Thanks Matt. Appreciate you making these updates!


Image quality test

Tracked on [LRS-902]

@AviaAv please work with @OhadMeir on how to understand the failures:

Overall looks good. Since we had problems with some runs that may be affected from the camera positioning and lighting condition, and currently we all work from home, try changing the resolution to 1cm. Check both day and night (lights out in the lab) if we get a meaningful depth, it might help.

Please check he CI failure, always.
You need to make sure your test run on  all required platforms, and passed

Great first PR!!!


Adding new module DataMigration

This checklist is used to make sure that common guidelines for a pull request are followed.

For new extensions:

[x] My extension description/summary conforms to the Extension Summary Guidelines.

About Extension Publish
There is a pipeline to automatically build, upload and publish extension wheels.
Once your PR is merged into master branch, a new PR will be created to update src/index.json automatically.
The precondition is to put your code inside this repo and upgrade the version in the PR but do not modify src/index.json.

DataMigration

/azp run

/azp run


Decompose rw flows

See individual commits for further dtails

[Current coverage][cc-pull] is 70.71%

Merging [#12][cc-pull] into [master][cc-base-branch] will decrease coverage by 20.43%

5 files in ...m/fns/grivet/service were modified. more

Misses +31
Partials +14
Hits -45

4 files in ...com/fns/grivet/query were modified. more

Misses +26
Partials +20
Hits -46

3 files in ...ns/grivet/controller were modified. more

Misses +32
Hits -32

2 files in .../java/com/fns/grivet were modified. more

Misses +7
Partials +9
Hits -16

3 files in core were modified. more

Misses +9
Partials +5
Hits -14

@@             master        #12   diff @@
==========================================
  Files            29         31     +2
  Lines           847        857    +10
  Methods           0          0
  Messages          0          0
  Branches        107        107
==========================================
- Hits            772        606   -166
- Misses           75        197   +122
- Partials          0         54    +54

Powered by Codecov. Last updated by [691f01c...267740c][cc-compare]
[cc-base-branch]: https://codecov.io/gh/fastnsilver/grivet/branch/master?src=pr
[cc-compare]: https://codecov.io/gh/fastnsilver/grivet/compare/691f01c6d1a5f6f69419db7fe9617699809de64f...267740c722710a7f05d339706139eaa7ee453110
[cc-pull]: https://codecov.io/gh/fastnsilver/grivet/pull/12?src=pr


Support for https://n.news.naver.com/mnews/article(+ and willing to contribute to this)

Checklist

[x] I'm reporting a new site support request
[x] I've verified that I'm running youtube-dl version 2021.12.17
[x] I've checked that all provided URLs are alive and playable in a browser
[x] I've checked that none of provided URLs violate any copyrights
[x] I've searched the bugtracker for similar site support requests including closed ones

Example URLs

Single video: https://n.news.naver.com/mnews/article/052/0001813167?sid=291
Single video: https://n.news.naver.com/mnews/article/374/0000310300

Description
C:\Users\jinhere>youtube-dl -v -F https://n.news.naver.com/mnews/article/052/0001813167?sid=291
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: ['-v', '-F', 'https://n.news.naver.com/mnews/article/052/0001813167?sid=291']
[debug] Encodings: locale cp949, fs utf-8, out utf-8, pref cp949
[debug] youtube-dl version 2021.12.17
[debug] Python version 3.10.4 (CPython) - Windows-10-10.0.19044-SP0
[debug] exe versions: none
[debug] Proxy map: {}
[generic]<PHONE_NUMBER>?sid=291: Requesting header
WARNING: Falling back on generic information extractor.
[generic]<PHONE_NUMBER>?sid=291: Downloading webpage
[generic]<PHONE_NUMBER>?sid=291: Extracting information
ERROR: Unsupported URL: https://n.news.naver.com/mnews/article/052/0001813167?sid=291
Traceback (most recent call last):
  File "C:\Users\jinhere\AppData\Local\Programs\Python\Python310\lib\site-packages\youtube_dl\YoutubeDL.py", line 815, in wrapper
    return func(self, *args, **kwargs)
  File "C:\Users\jinhere\AppData\Local\Programs\Python\Python310\lib\site-packages\youtube_dl\YoutubeDL.py", line 836, in __extract_info
    ie_result = ie.extract(url)
  File "C:\Users\jinhere\AppData\Local\Programs\Python\Python310\lib\site-packages\youtube_dl\extractor\common.py", line 534, in extract
    ie_result = self._real_extract(url)
  File "C:\Users\jinhere\AppData\Local\Programs\Python\Python310\lib\site-packages\youtube_dl\extractor\generic.py", line 3489, in _real_extract
    raise UnsupportedError(url)
youtube_dl.utils.UnsupportedError: Unsupported URL: https://n.news.naver.com/mnews/article/052/0001813167?sid=291

Hello, the website i want support is 'naver news' which has a video and news letters at a single page. I ran the command and it says it is unsupported url. So i thought it could be solved by adding new extractor, but I've found there is an extractor called naver.py that extracts video from 'naver tv'(the video player looked similar). So my question is: do i have to make a new extractor or add codes in naver.py?
I might be asking obvious question but this is my first time reading&contributing to big project so i want to ask you before starting.

Thanks for your offer. I'd definitely add it to the same module. Depending on how similar the page structure and URL patterns are, it may be possible to modify the NaverIE class or otherwise a new extractor class, perhaps derived from NaverIE or NaverBaseIE.
The existing extractor handles pages whose URLs contain a fragment like /v/{numeric_video_id}. Then it uses "secret knowledge" to look that ID up using an API URL that returns JSON metadata for the ID.
The problem page has this interesting chunk:
		<div class="_VOD_PLAYER_WRAP"
			 data-video-index="0"
			 data-video-id="0021E0A5FD56A21AF775A26D7F39FD5EFBC1"
			 data-inkey="V1284101883929cd8aa8a81e760f310062bc742c134593abb80254509b668f9fc60b381e760f310062bc7"
			 data-cover-image-url="https://mimgnews.pstatic.net/image/052/2022/11/13/cover_cover_202211132227471923_t_20221113223902322.jpg"
			 data-cover-image-thumbnail-url="https://mimgnews.pstatic.net/image/052/2022/11/13/cover_cover_202211132227471923_t_20221113223902322.jpg?type=w647"
			 data-nvp-playable="true">
		</div>

This data-video-id doesn't seem to be the sort of ID at all. You'll probably have to track the web traffic using your browser development tools to see how the data-video-id gets transformed into the media URL.


Create a project template

Similar to cortex-m-quickstart, we should provide a cargo-generate template for AVR.  I'm not sure how exactly to design that to make it easy to start with any device from the same template but I'm sure there is a way to make this work.  Otherwise, several templates for different popular boards could also work.

I wrote this for my own use a few days ago:
https://github.com/ToddG/arduino-rust-seed
Basically it uses python + cookiecutter to generate an application from templates.

I vote for orphan template-{board name} branches. Despite of branching support in liquid templates it will be a mess to write common template for every supported board. Separate branches are harder to support but easier to understand what is going on and easier to get involved for newcomers.

I like the idea of having the templates as branches in this repo!  We just need to make it super obvious where they are, because otherwise people will not find them...
I wouldn't go with a separate template for each board, but I do agree that we might need multiple templates for very diverging designs.  But I would say that, for example, every board supported by the new arduino-hal from #117 can be supported from a single template.
I saw that cargo-generate is making progress on their issue https://github.com/cargo-generate/cargo-generate/issues/17, so I think we can make use of that in the near future :)

For reference: The template should contain a rust-toolchain file (https://github.com/Rahix/avr-hal/issues/124#issuecomment-795585670 and the toolchain file docs).

https://github.com/Rahix/avr-hal-template


Obtaining token to run in another repo

How do I checkout the repo? In other words, how to obtain the token? I am confused about the README instructions  :slightly_smiling_face:

I was able to use the action directly. This is how I called it.
Change the on tag as needed.
name: OIDC Debug
on: workflow_dispatch

jobs:
  oidc_debug_test:
    permissions:
      contents: read
      id-token: write
    runs-on: ubuntu-latest
    name: A test of the oidc debugger
    steps:
      - name: Debug OIDC Claims
        uses: github/actions-oidc-debugger@main
        with:
          audience: '${{ github.server_url }}/${{ github.repository_owner }}'


Removing "Microsoft Tips" breaks Troubleshooting

If the option to remove bloatware is used, Microsoft Tips is also uninstalled. The application is required for Troubleshooting in system settings to work. It can be redownloaded from https://www.microsoft.com/store/productId/9WZDNCRDTBJJ, but it shouldn't be uninstalled in the first place.
Running on Windows 11.

Heya, thanks for bringing this to my attention. Do you mean the Get Help App? Microsft did indeed move a lot of the troubleshooters to this app.
Considering I don't want to break any core windows features or settings with this script and the troubleshooters are actually useful to users I have removed Get Help from the list of apps that are removed.


FromClause.Clone() should preserve Engine

Fixes #239

I'm not sure why GitHub says there's a conflict -- I branched directly from master, and I only changed two files.

Nevermind, user error.

@asherber, we can now safely clause this right?


Graphql to Json

I'm thinking there should be a Graphql to Json function in this library.
Use case would be to alter existing graphql queries dynamically.

This would take quite a lot of development effort and maintenance to support every permutation of GraphQL queries, and not something I would consider taking on at the moment.
You can use the "gql" template tag to get a full AST for your queries: https://www.npmjs.com/package/graphql-tag
It probably wouldn't be too hard from there to convert back to our JSON format, but I feel that is beyond the scope of this library.
The "graphql-to-json-query" package name is available on npm if you fancy it ;)


Inconsistent colorization of multiline union and intersection types

VSCode Version: 1.3.0
OS Version: Windows 7

Steps to Reproduce:
I'm using Dark+ (default dark) theme but some other themes have same issue:

As you can see B and C are never colorized in multiline declarations and A is colorized in some cases. Same for string literal types.

This issue was moved to Microsoft/TypeScript-TmLanguage#206


Cookies don't update when state changes

When i load the application i see that the initial value of the reducer is stored in the cookies, but after i update the state it doesn't change the cookie,
App.js
export const { store, persistor } = configureStore();

const App = () => {
    return (
        <Provider store={store}>
            <PersistGate loading={null} persistor={persistor}>
                <div className="App">
                    <Router history={history}>
                        <Switch>
                            <Route path="/app" component={AppLayout}/>
                            <Route path="/" exact render={() => <Redirect push to={`${defaultRoute()}`}/>}/>
                            <Route path='*' exact={true} component={NotFoundPage}/>
                        </Switch>
                    </Router>
                </div>
                <AppSnackbar />
            </PersistGate>
        </Provider>
    );
};

store.js
const persistConfig = {
    key: 'root',
    storage: new CookieStorage(Cookies),
    whitelist: ['auth']
};

const persistedReducer = persistReducer(persistConfig, rootReducer);

export default function configureStore() {
    const middlewares = [sagaMiddleware, redirector];
    const middleWareEnhancer = applyMiddleware(...middlewares);

    const store = createStore(
        persistedReducer,
        composeWithDevTools(middleWareEnhancer)
    );

    const persistor = persistStore(store, {});

    sagaMiddleware.run(rootSaga);

    return {
        store,
        persistor
    };
}

我的也是不更新

I'm seeing this same behavior. Were you able to fix it?

I'm pretty sure, this is the same issue as mentioned in #15 and since that issue is already 2 years old without any solution I think we can agree this repo is dead..

I'm pretty sure, this is the same issue as mentioned in #15 and since that issue is already 2 years old without any solution I think we can agree this repo is dead..

@marsbergen what is the alternative for this?

I had a similar issue when I used SSR, I changed httpOnly to false on the server side and it works for me:
  const persistConfig = {
    key: "root",
    storage: new CookieStorage(cookieJar, {setCookieOptions: {httpOnly: false}}),
    stateReconciler(inboundState, originalState) {
      // Ignore state from cookies, only use preloadedState from window object
      return originalState
    }
  }


[$500] Tag - Child tags are not indented on list

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

Version Number: 1.4.2-0
Reproducible in staging?: Y
Reproducible in production?: Y
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Expensify/Expensify Issue URL:
Issue reported by: Applause - Internal Team
Slack conversation:
Issue found when executing PR https://github.com/Expensify/App/pull/31494
Action Performed:
Precondition: enable and add parent and child tags as an admin on OD

Log in to ND as an employee
Navigate to workspace chat
Tap the "+" > Request money
Enter the amount
On the confirmation screen, tap the "Show more" button
Select "Tags"

Expected Result:
Child tags are indented on the list
Actual Result:
Child tags are not indented. It is a different behavior with categories: child categories are indented
Workaround:
Unknown
Platforms:

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

[x] Android: Native
[x] Android: mWeb Chrome
[x] iOS: Native
[x] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[x] MacOS: Desktop

Screenshots/Videos
Add any screenshot/video evidence

View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~01f5ae8cc738a492b2
Upwork Job ID:<PHONE_NUMBER>562772480
Last Price Increase: 2023-11-29
Automatic offers:

c3024 | Reviewer | 27886979
wlegolas | Contributor | 27886980

Proposal
Please re-state the problem that we are trying to solve in this issue.
Tag - Child tags are not indented on list
What is the root cause of that problem?
The method getTagsOptions is used to get the Tags to be displayed, this method does not create a tree structure when the tag name has the format [parent]:[child].
https://github.com/Expensify/App/blob/a5e4fb3f975e4e2a769ccef01b4b4fec4172bef6/src/libs/OptionsListUtils.js#L912-L925
To generate the Tag options is used the sequence of methods from the OptionsListUtils: getFilteredOptions -> getOptions -> getTagListSections -> getTagsOptions
What changes do you think we should make in order to solve the problem?
We should change the getTagsOptions method to call the getCategoryOptionTree method with the tags to create the tree structure when the tag name has the format [parent]:[child].
For example,
/**
 * Transforms the provided tags into objects with a specific structure.
 *
 * @param {Object[]} tags - an initial tag array
 * @param {Boolean} tags[].enabled - a flag to enable/disable option in a list
 * @param {String} tags[].name - a name of an option
 * @returns {Array<Object>}
 */
function getTagsOptions(tags) {
    const normalizedTags = _.map(tags, (tag) => {
        // This is to remove unnecessary escaping backslash in tag name sent from backend.
        const tagName = tag.name && tag.name.replace(/\\{1,2}:/g, ':');

        return {
            ...tag,
            name: tagName,
        };
    });

    return getCategoryOptionTree(normalizedTags);
}

What alternative solutions did you explore? (Optional)
N/A

Having some trouble reproducing this, do you have a video of your reproduction @lanitochka17 ?

I used the mocking in this comment to get tags. However, I am unable to get multitags with the steps here.
Could you share the csv file you uploaded to get multitags? @lanitochka17  @wlegolas

@c3024 Hello
Multitags were entered manually with PR https://github.com/Expensify/App/pull/31494

I used the mocking in this comment to get tags. However, I am unable to get multitags with the steps here.
Could you share the csv file you uploaded to get multitags? @lanitochka17 @wlegolas

Hi @c3024 to help I created the code below to set the Tags for a specific Policy. You can get a Policy ID and execute the code below.
Onyx.set('policyTags_C0C6E22CBEB45222', {
  Tag: {
    name: 'Custom',
    required: false,
    tags: {
        Movies: {
            enabled: true,
            name: 'Movies'
        },
        'Movies: Avengers: Endgame': {
            enabled: true,
            name: 'Movies: Avengers: Endgame',
            unencodedName: 'Movies: Avengers: Endgame'
        },
        Places: {
            enabled: true,
            name: 'Places'
        },
    }
  }
})

I am still unable to reproduce this, how are you all seeing Custom, all I see is Categories after clicking "Show more":

I am still unable to reproduce this, how are you all seeing Custom, all I see is Categories after clicking "Show more":

Hi @MitchExpensify, to show the component to select the Tags, the condition below must be true:
https://github.com/Expensify/App/blob/679d770c439bc26e4d8877c3f556fb26d33fa36e/src/components/MoneyRequestConfirmationList.js#L242
Maybe the problem is opening the MoneyRequestConfirmationList without Tags for the related policy.
In the video below, I show how you can set the Tags for a specific policy. In this video, I got the Policy ID before starting the video.
The first time I showed the confirm page without the Tags, and the next time I manually created the Tags for the specific Policy (using the script in this comment https://github.com/Expensify/App/issues/31753#issuecomment-1828733882), and the Tags field is shown on the confirm page.
Note: in this video, you can see the Tags are not shown in the format [parent]:[child], I've been using a branch without the changes to show in the correct format.
I hope this video helps you to validate this issue.
https://github.com/Expensify/App/assets/698363/7ece96a2-2abe-4412-8804-9cb705aea1ae

@wlegolas Your RCA is correct and the proposal looks good.
But when we search for a child in Category Page there is no tree structure shown in the results but in Tag Page there is. Can we make this consistent?

https://github.com/Expensify/App/assets/102477862/8d439675-57bb-44b8-9079-a798c5c284c0

I think the search results indentation in Tag page is the correct way and changing the search results indentation in Category page is not within the scope of this issue.
So, @wlegolas proposal here looks good to me.
🎀 👀 🎀 C+ reviewed

I think the search results indentation in Tag page is the correct way and changing the search results indentation in Category page is not within the scope of this issue.
So, @wlegolas proposal here looks good to me.
🎀 👀 🎀 C+ reviewed

I agree. The only thing is I think we should rename the function getCategoryOptionTree to something more general like getIndentedOptionTree.

Hello there.
Just to keep you up to date, I'm facing some problems running Android in my environment, maybe tomorrow I can send the PR here.

How is progress here?

PR merged and deployed to staging.

nice one!

Compensation has been sent for your work all the same! Thanks

Hi, @MitchExpensify, thank you for sharing this context.
Thank you very much for the payment, even after it was completed and you saw that it was not a bug, this shows the great respect that Expensify has with the collaborators.


Update Access Request Information Hex Value for AppendData

The Access Request Information Hex Value for AppendData inform the Hex Value '0x4'.
But when working on Event Viewer for a File System Audit, the Event for AppendData has a different Hex value on the Access Mask.
As can be checked in the following print I modified a text file with notepad.
And the Access Mask for AppendData has a Hex Value of '0x6'.
General View

Friendly View

XML View

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 5ec83662-ba89-4745-9dba-93b9c9308ca5
Version Independent ID: 36c613c0-14cb-8926-55d5-89ac6c726051
Content: 4663(S) An attempt was made to access an object. (Windows 10) - Windows security
Content Source: windows/security/threat-protection/auditing/event-4663.md
Product: m365-security
Technology: windows-sec
GitHub Login: @Dansimp
Microsoft Alias: dansimp

@tecnojp Thank you for your feedback. We have made changes to the document via PR#https://github.com/MicrosoftDocs/windows-itpro-docs/pull/11092
Once the author approves, the changes will be live.
Thanks
Sri

Thanks @tecnojp for the feedback and thanks @msbemba for submitting the edit...but I want to get another opinion from @vinaypamnani-msft when he's back from holiday. I'm wondering if you're seeing 0x6 as the sum of 0x2 and 0x4 (but there are other hex values that aren't powers of 2, so my logic might be flawed)

@aczechowski You're right, the Access Mask values are bitwise flags, so a value 0x6 means 0x2 (WriteData) and 0x4 (AppendData) are set. I'll close the related PR and this issue.


fix: make Input widget text property into a meta property

Description

Derived properties of List widget children won't work. so having the text
property of the Input widget as a derived property causes issues. hence
changing it to a meta property.

Fixes #11833
Type of change

Bugfix (non-breaking change which fixes an issue)

How Has This Been Tested?

Please describe the tests that you ran to verify your changes. Provide instructions, so we can reproduce.
Please also list any relevant details for your test configuration.

Test A
Test B

Checklist:

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[x] I have added tests that prove my fix is effective or that my feature works
[x] New and existing unit tests pass locally with my changes

/ok-to-test sha=1bba747

@sbalaji1192 i am facing below issue in s3 page can you please look into it this behavior i am seeing in Dp doesn't occur in the release instance https://www.loom.com/share/2664d7e813ef49dba628f57b2a009949

@RakshaKShetty Seems like the issue is related to a query ListItems from the generated app. When you go back, List item should run on page load but it's not. Manually rerunning it fixes the issue - https://www.loom.com/share/34a84c6736e946f6af6a1c88c84b9aff
@sumitsum Could you take a look at this? (sorry, not sure on the correct person to tag from BE coders)


fix(aurora): update KDE settings homepage link

Resolves #1653
The current link is invalid, since it is missing the colon in the protocol name.

You got to it before I could!

You got to it before I could!

Apologies, happy to close this if you want to make a contribution 😄

No problem, thanks for being quick!


docs: Warn against running python setup.py

It is not the same as pip install, as pointed out in issue #315. We should warn users in the documentation.

@mihaic I would like to work on this. Is it fine to add a warning at the end of quickstart guide?

@sameshl, thanks for the offer. I think it is best to keep the quickstart guide short as simple; the installation guide is a more appropriate place:
https://brainiak.org/docs/installation.html

@mihaic I see. Will make the required change


Fix: stale resource in details panel after update from apis/store

https://user-images.githubusercontent.com/6377066/219681715-d1696ea9-82ce-458f-90f5-2e7559045d4e.mov
TODO

to get rid of old injectable for getting actively matching KubeObject from details url we have to update other detail panel enablers for other resource types (currently updated & demoed for ReplicationControllers & Namespaces), but anyway live-update of resource in details panel now works everywhere (for all kind of resources)
fix tests

fix #7186

Another solution would be something like asyncSubscribableComputed which @Iku-turso says is already mostly created for computedChannel. That way we don't have to fix each details panel individually and the contract of currentKubeObjectForDetailsViewInjectable stays the same.

Another solution would be something like asyncSubscribableComputed which @Iku-turso says is already mostly created for computedChannel. That way we don't have to fix each details panel individually and the contract of currentKubeObjectForDetailsViewInjectable stays the same.

This is more complex solution/more abstraction which is not good.
All what we need is just get rid of currentKubeObjectInDetailsInjectable (update all other places)

You solution doesn't work though. If a KubeObject is opened in details without that list view being navigated to then the bug presented still happens.

You solution doesn't work though. If a KubeObject is opened in details without that list view being navigated to then the bug presented still happens.

didn't get what you mean.. can you record some demo? or exact set of instructions how to represent the issue..

Sure. I think the following will show the error.

Go to Pods
Click on a pod that is controlled by a deployment
Click on the link to the deployment
Update a label on that deployment
See that the details panel doesn't update.

@aleksfront for some reasons I've able to caught the bug Sebastian was talked about..
@Nokel81 is this the case? If so it's not updated after sequential navigations within opened detail-view, right?
Anyway I think could be even fixed in follow-up PR since now opening details panel works as expected and active object is up-to-date with it's store.
https://user-images.githubusercontent.com/6377066/220101739-eb6d19d6-b23c-461d-a6d0-ae7ff0aad01f.mov

@lensapp/lens-maintainers any ideas how to fix tests?

Marking as 6.5.0 since this is a longer standing bug and this won't be blocking that release.

https://github.com/mobxjs/mobx-utils#fromresource is what I think we should use for this case.
The URL seems to be something like: http://<IP_ADDRESS>:52267/e54971f316520ea4fa8d54555edc3054/api/v1/nodes?fieldSelector=metadata.name%3Dlens-desktop-kube&resourceVersion=0&watch=true


Missing backslash causing docker containers to fail to launch

https://github.com/lightningnetwork/lnd/blob/master/docker/lnd/start-lnd.sh#L49
On the arguments for lnd, you have forgotten to add a backslash to the new argument implemented in 5ced45af01b0fe4d20f08a32b3cef91d18b35a89. This causes lnd to return back complaining about no coin (I.E. --$CHAIN.active) selected.

This should be fixed by https://github.com/lightningnetwork/lnd/pull/427.


Spelling Mistake

"Gets or sets the content tpye descriptor." should be "Gets or sets the content type descriptor.". This spelling mistake is also shown in Intellisense in VS 2017.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 8a0581e7-68ff-0c80-06b3-7a23c7a9b951
Version Independent ID: 2967ab14-a187-8880-337d-611715eeca79
Content: Message.ContentType Property (Microsoft.Azure.ServiceBus)
Content Source: xml/Microsoft.Azure.ServiceBus/Message.xml
Service: service-bus
GitHub Login: @erickson-doug
Microsoft Alias: douge

Closing; though the referenced content seems to be blank, the source shows the correction has been made.


Error: "tensorflow.python.framework.errors_impl.InvalidArgumentError" when training Mask RCNN Inception Resnet V2 1024x1024 model

I am training a Mask R-CNN Inception ResNet V2 1024x1024 algorithm using my computer's GPU. This was downloaded from the TensorFlow Detection Model Zoo, and I labeled my images (dimensions of 1100x1100 pixels) with Label-img. Here is what I am working with:

GPU: NVIDIA GEFORCE RTX 2060
GPU: 16GB RAM, 6 processor cores
TensorFlow: 2.3.1
Python: 3.8.6
CUDA: 10.1
cuDNN: 7.6
Anaconda 3 command prompt

All tfrecord files have been generated, and when I start to train my model using python model_main_tf2.py --model_dir=models/my_faster_rcnn --pipeline_config_path=models/my_faster_rcnn/pipeline.config, I get the following errors:
Traceback (most recent call last):
  File "model_main_tf2.py", line 113, in <module>
    tf.compat.v1.app.run()
  File "C:\user\anaconda3\envs\object_detection_api\lib\site-packages\tensorflow\python\platform\app.py", line 40, in run
    _run(main=main, argv=argv, flags_parser=_parse_flags_tolerate_undef)
  File "C:\user\anaconda3\envs\object_detection_api\lib\site-packages\absl\app.py", line 303, in run
    _run_main(main, args)
  File "C:\user\anaconda3\envs\object_detection_api\lib\site-packages\absl\app.py", line 251, in _run_main
    sys.exit(main(argv))
  File "model_main_tf2.py", line 104, in main
    model_lib_v2.train_loop(
  File "C:\user\anaconda3\envs\object_detection_api\lib\site-packages\object_detection\model_lib_v2.py", line 564, in train_loop
    load_fine_tune_checkpoint(detection_model,
  File "C:\user\anaconda3\envs\object_detection_api\lib\site-packages\object_detection\model_lib_v2.py", line 350, in load_fine_tune_checkpoint
    features, labels = iter(input_dataset).next()
  File "C:\user\anaconda3\envs\object_detection_api\lib\site-packages\tensorflow\python\distribute\input_lib.py", line 645, in next
    return self.__next__()
  File "C:\user\anaconda3\envs\object_detection_api\lib\site-packages\tensorflow\python\distribute\input_lib.py", line 649, in __next__
    return self.get_next()
  File "C:\user\anaconda3\envs\object_detection_api\lib\site-packages\tensorflow\python\distribute\input_lib.py", line 694, in get_next
    self._iterators[i].get_next_as_list_static_shapes(new_name))
  File "C:\user\anaconda3\envs\object_detection_api\lib\site-packages\tensorflow\python\distribute\input_lib.py", line 1474, in get_next_as_list_static_shapes
    return self._iterator.get_next()
  File "C:\user\anaconda3\envs\object_detection_api\lib\site-packages\tensorflow\python\data\ops\multi_device_iterator_ops.py", line 581, in get_next
    result.append(self._device_iterators[i].get_next())
  File "C:\user\anaconda3\envs\object_detection_api\lib\site-packages\tensorflow\python\data\ops\iterator_ops.py", line 825, in get_next
    return self._next_internal()
  File "C:\user\anaconda3\envs\object_detection_api\lib\site-packages\tensorflow\python\data\ops\iterator_ops.py", line 764, in _next_internal
    return structure.from_compatible_tensor_list(self._element_spec, ret)
  File "C:\user\anaconda3\envs\object_detection_api\lib\contextlib.py", line 131, in __exit__
    self.gen.throw(type, value, traceback)
  File "C:\user\anaconda3\envs\object_detection_api\lib\site-packages\tensorflow\python\eager\context.py", line 2105, in execution_mode
    executor_new.wait()
  File "C:\user\anaconda3\envs\object_detection_api\lib\site-packages\tensorflow\python\eager\executor.py", line 67, in wait
    pywrap_tfe.TFE_ExecutorWaitForAllPendingNodes(self._handle)
tensorflow.python.framework.errors_impl.InvalidArgumentError: indices[16] = 16 is not in [0, 0)
         [[{{node GatherV2_7}}]]
         [[MultiDeviceIteratorGetNextFromShard]]
         [[RemoteCall]]

The config file that was used to run the model is:
# Mask R-CNN with Inception Resnet v2 (no atrous)
# Sync-trained on COCO (with 8 GPUs) with batch size 16 (1024x1024 resolution)
# Initialized from Imagenet classification checkpoint
#
# Train on GPU-8
#
# Achieves 40.4 box mAP and 35.5 mask mAP on COCO17 val

model {
  faster_rcnn {
    number_of_stages: 3
    num_classes: 1
    image_resizer {
      fixed_shape_resizer {
        height: 1024
        width: 1024
      }
    }
    feature_extractor {
      type: 'faster_rcnn_inception_resnet_v2_keras'
    }
    first_stage_anchor_generator {
      grid_anchor_generator {
        scales: [0.25, 0.5, 1.0, 2.0]
        aspect_ratios: [0.5, 1.0, 2.0]
        height_stride: 16
        width_stride: 16
      }
    }
    first_stage_box_predictor_conv_hyperparams {
      op: CONV
      regularizer {
        l2_regularizer {
          weight: 0.0
        }
      }
      initializer {
        truncated_normal_initializer {
          stddev: 0.01
        }
      }
    }
    first_stage_nms_score_threshold: 0.0
    first_stage_nms_iou_threshold: 0.7
    first_stage_max_proposals: 300
    first_stage_localization_loss_weight: 2.0
    first_stage_objectness_loss_weight: 1.0
    initial_crop_size: 17
    maxpool_kernel_size: 1
    maxpool_stride: 1
    second_stage_box_predictor {
      mask_rcnn_box_predictor {
        use_dropout: false
        dropout_keep_probability: 1.0
        fc_hyperparams {
          op: FC
          regularizer {
            l2_regularizer {
              weight: 0.0
            }
          }
          initializer {
            variance_scaling_initializer {
              factor: 1.0
              uniform: true
              mode: FAN_AVG
            }
          }
        }
        mask_height: 33
        mask_width: 33
        mask_prediction_conv_depth: 0
        mask_prediction_num_conv_layers: 4
        conv_hyperparams {
          op: CONV
          regularizer {
            l2_regularizer {
              weight: 0.0
            }
          }
          initializer {
            truncated_normal_initializer {
              stddev: 0.01
            }
          }
        }
        predict_instance_masks: true
      }
    }
    second_stage_post_processing {
      batch_non_max_suppression {
        score_threshold: 0.0
        iou_threshold: 0.6
        max_detections_per_class: 100
        max_total_detections: 100
      }
      score_converter: SOFTMAX
    }
    second_stage_localization_loss_weight: 2.0
    second_stage_classification_loss_weight: 1.0
    second_stage_mask_prediction_loss_weight: 4.0
    resize_masks: false
  }
}

train_config: {
  batch_size: 1
  num_steps: 200000
  optimizer {
    momentum_optimizer: {
      learning_rate: {
        cosine_decay_learning_rate {
          learning_rate_base: 0.008
          total_steps: 200000
          warmup_learning_rate: 0.0
          warmup_steps: 5000
        }
      }
      momentum_optimizer_value: 0.9
    }
    use_moving_average: false
  }
  gradient_clipping_by_norm: 10.0
  fine_tune_checkpoint_version: V2
  fine_tune_checkpoint: "pre-trained-models/mask_rcnn_inception_resnet_v2_1024x1024_coco17_gpu-8/checkpoint/ckpt-0"
  fine_tune_checkpoint_type: "detection"
  data_augmentation_options {
    random_horizontal_flip {
    }
  }
}

train_input_reader: {
  label_map_path: "annotations/label_map.pbtxt"
  tf_record_input_reader {
    input_path: "annotations/train.record"
  }
  load_instance_masks: true
  mask_type: PNG_MASKS
}

eval_config: {
  metrics_set: "coco_detection_metrics"
  metrics_set: "coco_mask_metrics"
  eval_instance_masks: true
  use_moving_averages: false
  batch_size: 1
  include_metrics_per_category: true
}

eval_input_reader: {
  label_map_path: "annotations/label_map.pbtxt"
  shuffle: false
  num_epochs: 1
  tf_record_input_reader {
    input_path: "annotations/test.record"
  }
  load_instance_masks: true
  mask_type: PNG_MASKS
}

What can be done to fix this?
##############################################
Below are the scripts that are referenced in the error:
File "model_main_tf2.py", line 113:
#Lines 74-113:
def main(unused_argv):
  flags.mark_flag_as_required('model_dir')
  flags.mark_flag_as_required('pipeline_config_path')
  tf.config.set_soft_device_placement(True)

  if FLAGS.checkpoint_dir:
    model_lib_v2.eval_continuously(
        pipeline_config_path=FLAGS.pipeline_config_path,
        model_dir=FLAGS.model_dir,
        train_steps=FLAGS.num_train_steps,
        sample_1_of_n_eval_examples=FLAGS.sample_1_of_n_eval_examples,
        sample_1_of_n_eval_on_train_examples=(
            FLAGS.sample_1_of_n_eval_on_train_examples),
        checkpoint_dir=FLAGS.checkpoint_dir,
        wait_interval=300, timeout=FLAGS.eval_timeout)
  else:
    if FLAGS.use_tpu:
      # TPU is automatically inferred if tpu_name is None and
      # we are running under cloud ai-platform.
      resolver = tf.distribute.cluster_resolver.TPUClusterResolver(
          FLAGS.tpu_name)
      tf.config.experimental_connect_to_cluster(resolver)
      tf.tpu.experimental.initialize_tpu_system(resolver)
      strategy = tf.distribute.experimental.TPUStrategy(resolver)
    elif FLAGS.num_workers > 1:
      strategy = tf.distribute.experimental.MultiWorkerMirroredStrategy()
    else:
      strategy = tf.compat.v2.distribute.MirroredStrategy()

    with strategy.scope():
      model_lib_v2.train_loop(
          pipeline_config_path=FLAGS.pipeline_config_path,
          model_dir=FLAGS.model_dir,
          train_steps=FLAGS.num_train_steps,
          use_tpu=FLAGS.use_tpu,
          checkpoint_every_n=FLAGS.checkpoint_every_n,
          record_summaries=FLAGS.record_summaries)

if __name__ == '__main__':
  tf.compat.v1.app.run()

File "C:\user\anaconda3\envs\object_detection_api\lib\site-packages\tensorflow\python\platform\app.py", line 40:
#Lines 17-40:
from __future__ import absolute_import
from __future__ import division
from __future__ import print_function

import sys as _sys

from absl.app import run as _run

from tensorflow.python.platform import flags
from tensorflow.python.util.tf_export import tf_export

def _parse_flags_tolerate_undef(argv):
  """Parse args, returning any unknown flags (ABSL defaults to crashing)."""
  return flags.FLAGS(_sys.argv if argv is None else argv, known_only=True)

@tf_export(v1=['app.run'])
def run(main=None, argv=None):
  """Runs the program with an optional 'main' function and 'argv' list."""

  main = main or _sys.modules['__main__'].main

  _run(main=main, argv=argv, flags_parser=_parse_flags_tolerate_undef)

File "C:\user\anaconda3\envs\object_detection_api\lib\site-packages\absl\app.py", line 303:
#Lines 294-328:
try:
    args = _run_init(
        sys.argv if argv is None else argv,
        flags_parser,
    )
    while _init_callbacks:
      callback = _init_callbacks.popleft()
      callback()
    try:
      _run_main(main, args)
    except UsageError as error:
      usage(shorthelp=True, detailed_error=error, exitcode=error.exitcode)
    except:
      exc = sys.exc_info()[1]
      # Don't try to post-mortem debug successful SystemExits, since those
      # mean there wasn't actually an error. In particular, the test framework
      # raises SystemExit(False) even if all tests passed.
      if isinstance(exc, SystemExit) and not exc.code:
        raise

      # Check the tty so that we don't hang waiting for input in an
      # non-interactive scenario.
      if FLAGS.pdb_post_mortem and sys.stdout.isatty():
        traceback.print_exc()
        print()
        print(' *** Entering post-mortem debugging ***')
        print()
        pdb.post_mortem()
      raise
  except Exception as e:
    _call_exception_handlers(e)
    raise

# Callbacks which have been deferred until after _run_init has been called.
_init_callbacks = collections.deque()

File "C:\user\anaconda3\envs\object_detection_api\lib\site-packages\absl\app.py", line 251:
#Lines 231-251:
def _run_main(main, argv):
  """Calls main, optionally with pdb or profiler."""
  if FLAGS.run_with_pdb:
    sys.exit(pdb.runcall(main, argv))
  elif FLAGS.run_with_profiling or FLAGS.profile_file:
    # Avoid import overhead since most apps (including performance-sensitive
    # ones) won't be run with profiling.
    import atexit
    if FLAGS.use_cprofile_for_profiling:
      import cProfile as profile
    else:
      import profile
    profiler = profile.Profile()
    if FLAGS.profile_file:
      atexit.register(profiler.dump_stats, FLAGS.profile_file)
    else:
      atexit.register(profiler.print_stats)
    retval = profiler.runcall(main, argv)
    sys.exit(retval)
  else:
    sys.exit(main(argv))

File "model_main_tf2.py", line 104:
#Lines 74-113:
def main(unused_argv):
  flags.mark_flag_as_required('model_dir')
  flags.mark_flag_as_required('pipeline_config_path')
  tf.config.set_soft_device_placement(True)

  if FLAGS.checkpoint_dir:
    model_lib_v2.eval_continuously(
        pipeline_config_path=FLAGS.pipeline_config_path,
        model_dir=FLAGS.model_dir,
        train_steps=FLAGS.num_train_steps,
        sample_1_of_n_eval_examples=FLAGS.sample_1_of_n_eval_examples,
        sample_1_of_n_eval_on_train_examples=(
            FLAGS.sample_1_of_n_eval_on_train_examples),
        checkpoint_dir=FLAGS.checkpoint_dir,
        wait_interval=300, timeout=FLAGS.eval_timeout)
  else:
    if FLAGS.use_tpu:
      # TPU is automatically inferred if tpu_name is None and
      # we are running under cloud ai-platform.
      resolver = tf.distribute.cluster_resolver.TPUClusterResolver(
          FLAGS.tpu_name)
      tf.config.experimental_connect_to_cluster(resolver)
      tf.tpu.experimental.initialize_tpu_system(resolver)
      strategy = tf.distribute.experimental.TPUStrategy(resolver)
    elif FLAGS.num_workers > 1:
      strategy = tf.distribute.experimental.MultiWorkerMirroredStrategy()
    else:
      strategy = tf.compat.v2.distribute.MirroredStrategy()

    with strategy.scope():
      model_lib_v2.train_loop(
          pipeline_config_path=FLAGS.pipeline_config_path,
          model_dir=FLAGS.model_dir,
          train_steps=FLAGS.num_train_steps,
          use_tpu=FLAGS.use_tpu,
          checkpoint_every_n=FLAGS.checkpoint_every_n,
          record_summaries=FLAGS.record_summaries)

if __name__ == '__main__':
  tf.compat.v1.app.run()

File "C:\user\anaconda3\envs\object_detection_api\lib\site-packages\object_detection\model_lib_v2.py", line 564:
#Line 545-569:
if record_summaries:
    summary_writer = tf.compat.v2.summary.create_file_writer(
        summary_writer_filepath)
  else:
    summary_writer = tf2.summary.create_noop_writer()

  if use_tpu:
    num_steps_per_iteration = 100
  else:
    # TODO(b/135933080) Explore setting to 100 when GPU performance issues
    # are fixed.
    num_steps_per_iteration = 1

  with summary_writer.as_default():
    with strategy.scope():
      with tf.compat.v2.summary.record_if(
          lambda: global_step % num_steps_per_iteration == 0):
        # Load a fine-tuning checkpoint.
        if train_config.fine_tune_checkpoint:
          load_fine_tune_checkpoint(detection_model,
                                    train_config.fine_tune_checkpoint,
                                    fine_tune_checkpoint_type,
                                    fine_tune_checkpoint_version,
                                    train_input,
                                    unpad_groundtruth_tensors)

File "C:\user\anaconda3\envs\object_detection_api\lib\site-packages\object_detection\model_lib_v2.py", line 350:
#Lines 312-350:
def load_fine_tune_checkpoint(
    model, checkpoint_path, checkpoint_type, checkpoint_version, input_dataset,
    unpad_groundtruth_tensors):
  """Load a fine tuning classification or detection checkpoint.

  To make sure the model variables are all built, this method first executes
  the model by computing a dummy loss. (Models might not have built their
  variables before their first execution)

  It then loads an object-based classification or detection checkpoint.

  This method updates the model in-place and does not return a value.

  Args:
    model: A DetectionModel (based on Keras) to load a fine-tuning
      checkpoint for.
    checkpoint_path: Directory with checkpoints file or path to checkpoint.
    checkpoint_type: Whether to restore from a full detection
      checkpoint (with compatible variable names) or to restore from a
      classification checkpoint for initialization prior to training.
      Valid values: `detection`, `classification`.
    checkpoint_version: train_pb2.CheckpointVersion.V1 or V2 enum indicating
      whether to load checkpoints in V1 style or V2 style.  In this binary
      we only support V2 style (object-based) checkpoints.
    input_dataset: The tf.data Dataset the model is being trained on. Needed
      to get the shapes for the dummy loss computation.
    unpad_groundtruth_tensors: A parameter passed to unstack_batch.

  Raises:
    IOError: if `checkpoint_path` does not point at a valid object-based
      checkpoint
    ValueError: if `checkpoint_version` is not train_pb2.CheckpointVersion.V2
  """
  if not is_object_based_checkpoint(checkpoint_path):
    raise IOError('Checkpoint is expected to be an object-based checkpoint.')
  if checkpoint_version == train_pb2.CheckpointVersion.V1:
    raise ValueError('Checkpoint version should be V2')

  features, labels = iter(input_dataset).next()

File "C:\user\anaconda3\envs\object_detection_api\lib\site-packages\tensorflow\python\distribute\input_lib.py", issues with line 645, 645, 694:
#Lines 615-728:
class DistributedIteratorBase(DistributedIteratorInterface):
  """Common implementation for all input iterators."""

  # pylint: disable=super-init-not-called
  def __init__(self, input_workers, iterators, strategy):
    static_shape = _get_static_shape(iterators)

    # TODO(b/133073708): we currently need a flag to control the usage because
    # there is a performance difference between get_next() and
    # get_next_as_optional(). And we only enable get_next_as_optional when the
    # output shapes are not static.
    #
    # TODO(rxsang): We want to always enable the get_next_as_optional behavior
    # when user passed input_fn instead of dataset.
    if getattr(
        strategy.extended, "experimental_enable_get_next_as_optional", False):
      self._enable_get_next_as_optional = (
          not static_shape) or strategy.extended._in_multi_worker_mode()
    else:
      self._enable_get_next_as_optional = False

    assert isinstance(input_workers, InputWorkers)
    if not input_workers.worker_devices:
      raise ValueError("Should have at least one worker for input iterator.")

    self._iterators = iterators
    self._input_workers = input_workers
    self._strategy = strategy

  def next(self):
    return self.__next__()

  def __next__(self):
    try:
      return self.get_next()
    except errors.OutOfRangeError:
      raise StopIteration

  def __iter__(self):
    return self

  def get_next_as_optional(self):
    global_has_value, replicas = _get_next_as_optional(self, self._strategy)

    def return_none():
      return optional_ops.Optional.empty(self._element_spec)

    def return_value(replicas):
      """Wraps the inputs for replicas in an `tf.experimental.Optional`."""
      results = []
      for i, worker in enumerate(self._input_workers.worker_devices):
        with ops.device(worker):
          devices = self._input_workers.compute_devices_for_worker(i)
          for j, device in enumerate(devices):
            with ops.device(device):
              result = replicas[i][j]
              results.append(result)
      replicas = results

      return optional_ops.Optional.from_value(
          distribute_utils.regroup(replicas))

    return control_flow_ops.cond(global_has_value,
                                 lambda: return_value(replicas),
                                 lambda: return_none())  # pylint: disable=unnecessary-lambda

  def get_next(self, name=None):
    """Returns the next input from the iterator for all replicas."""
    if not self._enable_get_next_as_optional:
      replicas = []
      for i, worker in enumerate(self._input_workers.worker_devices):
        if name is not None:
          d = tf_device.DeviceSpec.from_string(worker)
          new_name = "%s_%s_%d" % (name, d.job, d.task)
        else:
          new_name = None
        with ops.device(worker):
          # Make `replicas` a flat list of values across all replicas.
          replicas.extend(
              self._iterators[i].get_next_as_list_static_shapes(new_name))
      return distribute_utils.regroup(replicas)

    out_of_range_replicas = []
    def out_of_range_fn(worker_index, device):
      """This function will throw an OutOfRange error."""
      # As this will be only called when there is no data left, so calling
      # get_next() will trigger an OutOfRange error.
      data = self._iterators[worker_index].get_next(device)
      out_of_range_replicas.append(data)
      return data

    global_has_value, replicas = _get_next_as_optional(self, self._strategy)
    results = []
    for i, worker in enumerate(self._input_workers.worker_devices):
      with ops.device(worker):
        devices = self._input_workers.compute_devices_for_worker(i)
        for j, device in enumerate(devices):
          with ops.device(device):
            # pylint: disable=undefined-loop-variable
            # pylint: disable=cell-var-from-loop
            # It is fine for the lambda to capture variables from the loop as
            # the lambda is executed in the loop as well.
            result = control_flow_ops.cond(
                global_has_value,
                lambda: replicas[i][j],
                lambda: out_of_range_fn(i, device),
                strict=True,
            )
            # pylint: enable=cell-var-from-loop
            # pylint: enable=undefined-loop-variable
            results.append(result)
    replicas = results

    return distribute_utils.regroup(replicas)

File "C:\user\anaconda3\envs\object_detection_api\lib\site-packages\tensorflow\python\distribute\input_lib.py", line 1474
#Lines 1459-1474:
def get_next_as_list_static_shapes(self, name=None):
    """Get next element from the underlying iterator.

    Runs the iterator get_next() within a device scope. Since this doesn't use
    get_next_as_optional(), is is considerably faster than get_next_as_list()
    (but can only be used when the shapes are static).

    Args:
      name: not used.

    Returns:
      A list consisting of the next data from each device.
    """
    del name
    with ops.device(self._worker):
      return self._iterator.get_next()

File "C:\user\anaconda3\envs\object_detection_api\lib\site-packages\tensorflow\python\data\ops\multi_device_iterator_ops.py", line 581:
#Lines 572-588:
def get_next(self, device=None):
    """Returns the next element given a `device`, else returns all in a list."""
    if device is not None:
      index = self._devices.index(device)
      return self._device_iterators[index].get_next()

    result = []
    for i, device in enumerate(self._devices):
      with ops.device(device):
        result.append(self._device_iterators[i].get_next())
    return result

  def __iter__(self):
    return self

  def __next__(self):
    return self.next()

File "C:\user\anaconda3\envs\object_detection_api\lib\site-packages\tensorflow\python\data\ops\iterator_ops.py", line 764 and 825:
#Lines 750-834:
with context.execution_mode(context.SYNC):
      with ops.device(self._device):
        # TODO(ashankar): Consider removing this ops.device() context manager
        # and instead mimic ops placement in graphs: Operations on resource
        # handles execute on the same device as where the resource is placed.
        ret = gen_dataset_ops.iterator_get_next(
            self._iterator_resource,
            output_types=self._flat_output_types,
            output_shapes=self._flat_output_shapes)

      try:
        # Fast path for the case `self._structure` is not a nested structure.
        return self._element_spec._from_compatible_tensor_list(ret)  # pylint: disable=protected-access
      except AttributeError:
        return structure.from_compatible_tensor_list(self._element_spec, ret)

  @property
  def _type_spec(self):
    return IteratorSpec(self.element_spec)

  def next(self):
    try:
      return self._next_internal()
    except errors.OutOfRangeError:
      raise StopIteration

  @property
  @deprecation.deprecated(
      None, "Use `tf.compat.v1.data.get_output_classes(iterator)`.")
  def output_classes(self):
    """Returns the class of each component of an element of this iterator.

    The expected values are `tf.Tensor` and `tf.sparse.SparseTensor`.

    Returns:
      A nested structure of Python `type` objects corresponding to each
      component of an element of this dataset.
    """
    return nest.map_structure(
        lambda component_spec: component_spec._to_legacy_output_classes(),  # pylint: disable=protected-access
        self._element_spec)

  @property
  @deprecation.deprecated(
      None, "Use `tf.compat.v1.data.get_output_shapes(iterator)`.")
  def output_shapes(self):
    """Returns the shape of each component of an element of this iterator.

    Returns:
      A nested structure of `tf.TensorShape` objects corresponding to each
      component of an element of this dataset.
    """
    return nest.map_structure(
        lambda component_spec: component_spec._to_legacy_output_shapes(),  # pylint: disable=protected-access
        self._element_spec)

  @property
  @deprecation.deprecated(
      None, "Use `tf.compat.v1.data.get_output_types(iterator)`.")
  def output_types(self):
    """Returns the type of each component of an element of this iterator.

    Returns:
      A nested structure of `tf.DType` objects corresponding to each component
      of an element of this dataset.
    """
    return nest.map_structure(
        lambda component_spec: component_spec._to_legacy_output_types(),  # pylint: disable=protected-access
        self._element_spec)

  @property
  def element_spec(self):
    return self._element_spec

  def get_next(self):
    return self._next_internal()

  def get_next_as_optional(self):
    # pylint: disable=protected-access
    return optional_ops._OptionalImpl(
        gen_dataset_ops.iterator_get_next_as_optional(
            self._iterator_resource,
            output_types=structure.get_flat_tensor_types(self.element_spec),
            output_shapes=structure.get_flat_tensor_shapes(
                self.element_spec)), self.element_spec)

File "C:\user\anaconda3\envs\object_detection_api\lib\contextlib.py", line 131:
#Lines 97-162:
class _GeneratorContextManager(_GeneratorContextManagerBase,
                               AbstractContextManager,
                               ContextDecorator):
    """Helper for @contextmanager decorator."""

    def _recreate_cm(self):
        # _GCM instances are one-shot context managers, so the
        # CM must be recreated each time a decorated function is
        # called
        return self.__class__(self.func, self.args, self.kwds)

    def __enter__(self):
        # do not keep args and kwds alive unnecessarily
        # they are only needed for recreation, which is not possible anymore
        del self.args, self.kwds, self.func
        try:
            return next(self.gen)
        except StopIteration:
            raise RuntimeError("generator didn't yield") from None

    def __exit__(self, type, value, traceback):
        if type is None:
            try:
                next(self.gen)
            except StopIteration:
                return False
            else:
                raise RuntimeError("generator didn't stop")
        else:
            if value is None:
                # Need to force instantiation so we can reliably
                # tell if we get the same exception back
                value = type()
            try:
                self.gen.throw(type, value, traceback)
            except StopIteration as exc:
                # Suppress StopIteration *unless* it's the same exception that
                # was passed to throw().  This prevents a StopIteration
                # raised inside the "with" statement from being suppressed.
                return exc is not value
            except RuntimeError as exc:
                # Don't re-raise the passed in exception. (issue27122)
                if exc is value:
                    return False
                # Likewise, avoid suppressing if a StopIteration exception
                # was passed to throw() and later wrapped into a RuntimeError
                # (see PEP 479).
                if type is StopIteration and exc.__cause__ is value:
                    return False
                raise
            except:
                # only re-raise if it's *not* the exception that was
                # passed to throw(), because __exit__() must not raise
                # an exception unless __exit__() itself failed.  But throw()
                # has to raise the exception to signal propagation, so this
                # fixes the impedance mismatch between the throw() protocol
                # and the __exit__() protocol.
                #
                # This cannot use 'except BaseException as exc' (as in the
                # async implementation) to maintain compatibility with
                # Python 2, where old-style class exceptions are not caught
                # by 'except BaseException'.
                if sys.exc_info()[1] is value:
                    return False
                raise
            raise RuntimeError("generator didn't stop after throw()")

File "C:\user\anaconda3\envs\object_detection_api\lib\site-packages\tensorflow\python\eager\context.py", line 2105:
#Lines 2001-2013:
def graph_mode():
  """Context-manager to disable eager execution for the current thread."""
  return context()._mode(GRAPH_MODE)  # pylint: disable=protected-access

def eager_mode():
  """Context-manager to enable eager execution for the current thread."""
  return context()._mode(EAGER_MODE)  # pylint: disable=protected-access

def scope_name():
  """Name of the current scope."""
  return context().scope_name

File "C:\user\anaconda3\envs\object_detection_api\lib\site-packages\tensorflow\python\eager\executor.py", line 67:
#Lines 24-76:
class Executor(object):
  """A class for handling eager execution.

  The default behavior for asynchronous execution is to serialize all ops on
  a single thread. Having different `Executor` objects in different threads
  enables executing ops asynchronously in parallel:

  ```python
  def thread_function():
    executor = executor.Executor(enable_async=True):
    context.set_executor(executor)

  a = threading.Thread(target=thread_function)
  a.start()
  b = threading.Thread(target=thread_function)
  b.start()

  """

  def __init__(self, handle):
    self._handle = handle

  def __del__(self):
    try:
      # pywrap_tfe.TFE_ExecutorWaitForAllPendingNodes(self._handle)
      pywrap_tfe.TFE_DeleteExecutor(self._handle)
    except TypeError:
      # Suppress some exceptions, mainly for the case when we're running on
      # module deletion. Things that can go wrong include the pywrap module
      # already being unloaded, self._handle. no longer being
      # valid, and so on. Printing warnings in these cases is silly
      # (exceptions raised from __del__ are printed as warnings to stderr).
      pass  # 'NoneType' object is not callable when the handle has been
      # partially unloaded.

  def is_async(self):
    return pywrap_tfe.TFE_ExecutorIsAsync(self._handle)

  def handle(self):
    return self._handle

  def wait(self):
    """Waits for ops dispatched in this executor to finish."""
    pywrap_tfe.TFE_ExecutorWaitForAllPendingNodes(self._handle)

  def clear_error(self):
    """Clears errors raised in this executor during execution."""
    pywrap_tfe.TFE_ExecutorClearError(self._handle)

def new_executor(enable_async):
  handle = pywrap_tfe.TFE_NewExecutor(enable_async)
  return Executor(handle)

@ib124,
The code provided is fairly complex hence it would be difficult for us to pinpoint the issue. Could you please get the example down to the simplest possible repro? That will allow us to determine the source of the issue easily. Thanks!
Also, please go through issue #23698 with a similar error and let us know if it helps. Thanks!


Create a new partition on the test system as working directory

Sent an email to<EMAIL_ADDRESS>asking for a new partition.

The new partition is available on the test system


Fix bug when generating docs

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

Project coverage is 100.00%. Comparing base (650ed47) to head (52efd2d).

Additional details and impacted files
@@            Coverage Diff            @@
##              main      #712   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files           75        75
  Lines         2103      2103
  Branches       261       261
=========================================
  Hits          2103      2103

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


Jest not properly mocking library

When trying to run tests on Jest for my app which uses react-native-fcm I get error:
Invariant Violation: Native module cannot be null.

      at invariant (node_modules/fbjs/lib/invariant.js:44:15)
      at new NativeEventEmitter (node_modules/react-native/Libraries/EventEmitter/NativeEventEmitter.js:32:1)
      at Object.<anonymous> (node_modules/react-native-fcm/index.js:3:18)
      at Object.<anonymous> (app/components/MyComponent.js:6:21)

(MyComponent.js:6 is import FCM from 'react-native-fcm';)
Version info:
<EMAIL_ADDRESS><EMAIL_ADDRESS>
This problem has been earlier reported, but closed as https://github.com/evollu/react-native-fcm/issues/435

shouldn't jest just mock out the whole FMC package?
Does this issue happen for other 3rd party react native packages?

I didn't get this issue for other 3rd party react-native packages in my project, which included e.g.:
    "react-native-communications": "^2.2.1",
    "react-native-config": "^0.3.1",
    "react-native-google-analytics-bridge": "^5.0.1",
    "react-native-maps": "^0.15.2",
    "react-native-menu": "^0.20.2",
    "react-native-permissions": "^1.0.0"

try replace this like https://github.com/evollu/react-native-fcm/blob/master/index.js#L3
with const EventEmitter = new NativeEventEmitter(NativeModules.RNFIRMessaging || {});

Hey @evollu,
That seemed to fix the problem.
Thank you for the temporary fix!

will update code


stdin and stdout support added to report commands #220

report and spectral-report commands now support new -i (use stdin) and -o (use stdout) flags.
Docs have been updated:

https://quobix.com/vacuum/commands/report/
https://quobix.com/vacuum/commands/spectral-report/

Codecov Report

Merging #223 (fa8c686) into main (f223067) will decrease coverage by 0.22%.
The diff coverage is 75.00%.

@@            Coverage Diff             @@
##             main     #223      +/-   ##
==========================================
- Coverage   85.44%   85.22%   -0.23%
==========================================
  Files          77       77
  Lines        3484     3526      +42
==========================================
+ Hits         2977     3005      +28
- Misses        507      521      +14

Flag
Coverage Δ

unittests
85.22% <75.00%> (-0.23%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

cmd/vacuum_report.go
88.04% <71.42%> (-5.38%)
:arrow_down:

cmd/spectral_report.go
84.61% <75.75%> (-7.84%)
:arrow_down:

motor/rule_applicator.go
97.52% <100.00%> (+0.02%)
:arrow_up:

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


feat: Added Support for Notification API

Addresses #50 .  Added Support for the following APIs

Send Notification to Authenticated User (crowdin.com)
Send Notification To Project Members (crowdin.com and Crowdin Enterprise)
Send Notification To Organization Members (Crowdin Enterprise)

Hi @MohanThanigaivelan, the CI has failed, could you please take a look? https://github.com/crowdin/crowdin-api-client-ruby/actions/runs/6697254718/job/18213558724

Seems like endpoint for Authenticated user and organisational member same(POST /notify) . can you confirm ?

The Send Notification to Authenticated User and Send Notification To Organization Members endpoints have the same path but the host will be different in these cases.

Hi @andrii-bodnar . Fixed the CI build.  Please let me know if there are any review comments. Thanks.

Hi @andrii-bodnar . Done with the suggested changes.

Happy to contribute @andrii-bodnar  🥳

@MohanThanigaivelan feel free to take other issues 😉


[HTTP] Test and review behaviour of the HTTP transport in error scenarios

Need to verify for 4xx and 5xx responses

that the correct error codes are returned in case of failures
the returned messages are correct
the returned messages do not contain implementation details

A lot of improvement is done in this area. Hence closing this.


unable to start terminalprocess: CreateProcess

I am getting below error while in VS .
The terminal process failed to launch: A native exception occurred during launch (Unable to start terminal process: CreateProcess failed).

Do you have anti-virus software installed? If so, try whitelisting the files listed here: https://code.visualstudio.com/docs/supporting/troubleshoot-terminal-launch#_error-connectnamedpipe-failed-windows-error-232


chore: release main

:robot: I have created a release beep boop
parser: 1.0.2
1.0.2 (2023-05-22)
Bug Fixes

update README with valid API (97f0e06)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/aversini/node-cli/releases/tag/parser-v1.0.2 :sunflower:


npm support

Please add a package.json file.

done, thanks
https://www.npmjs.com/package/fg-appendaround


Quay.io jupyter baseimage

Following major changes:

ubuntu 24.04
jupyter lab 4.2.6
jupyter hub 5.2.1
python 3.12.7
install datalad via pip
openjdk-21-jre

*dockerhub base-notebooks are no longer updated

@stebo85, this is a new base image and using ubuntu 24.04. Will push this to main.
Should we push this to main? But image will need testing before issuing a release.

looks great - will test and we can do a new release in January :)


syscall: Windows Errno.Temporary and Errno.Timeout are incomplete

What version of Go are you using (go version)?
go version go1.6 windows/amd64
I read src/syscall/syscall_windows.go and find Errno.Temporary() just check EINTR, EMFILE and Errno.Timeout, but the src/syscall/syscall_unix.go, Errno.Temporary() additional check ECONNRESET and ECONNABORTED.
so why different between windows and linux?
Sorry my poor English.

why different between windows and linux?

Originally Go had linux and darwain, but no support for windows. So when adding windows, we had to define all unix constants like EINTR and EMFILE, because os package used to use them. Otherwise os package wouldn't build.
But Windows syscalls do not really return EINTR or EMFILE or ECONNRESET or ECONNABORTED.
When time came to implement net package, windows version was very much separate code. So net package does not use ECONNRESET or ECONNABORTED.
I just checked our current source:
# cd $GOROOT
# grep syscall.ECONNRESET * -r
# grep syscall.ECONNABORTED * -r
src/net/fd_unix.go:                     case syscall.ECONNABORTED:
src/net/error_unix_test.go:     abortedConnRequestErrors = []error{syscall.ECONNABORTED} // see accept in fd_unix.go
#

No windows code uses ECONNRESET or ECONNABORTED.
Alex

Yes. windows WIN32 API do not really return ECONNRESET,just return such as WSAECONNRESET.
Hmm, I don't known whether if it is a bug. When I want to check net.OpError to determine CONNREST like this: https://play.golang.org/p/hnxswTG_Sl (forgive me.. I also want to markdown to paste the code, but the format....)
So, Is the way right? Or is there another way to do this?

So, Is the way right? Or is there another way to do this?

I don't know. I will let @mikioh and @bradfitz answer this.
Alex

Basically none of the actual temporary/timeout errors are checked by Errno.Temporary and Errno.Timeout. Like you said, all the WSA* forms are missing to start. I am not sure how to enumerate all the ones that should match, though. There are many more error codes on Windows than on Unix.

After 7f6105f13, there's no more discrepancy between Unix and Windows. Is adding Windows-specific error codes still desireable?