Question about span contexts/traces

We added a with-span! around our app's start function. Now all spans appear inside that single application start span. What we wanted was a single span that could give some insight about the startup, and then top-level traces for each top-level activity (e.g. message consumption).
Is it wrong to wrap the app start function with a span, or is there some way for us to break out of the context created by the first span? More generally: how do we explicitly start a new trace?

Each trace encapsulates a unit of work (transaction) performed in a system. For example, a trace captures all work performed in an HTTP server due to a single request.
Application startup is not considered a unit of work in this model, so a trace is not the correct telemetry signal to use here. To capture telemetry outside transaction processing, consider using signals other than traces, such as logs and metrics. In your case, adding log statements is likely the correct approach.
OpenTelemetry does not introduce a logging API. Instead, OpenTelemetry offers integration and adaptation of existing logging systems. clj-otel support for OpenTelemetry logs is planned for a future release.
OpenTelemetry has an experimental Events API designed for application developers to create named events that are added to logs. clj-otel will also support this in a future release.

I disagree with your narrow definition of a unit of work. The application startup is a unit of work that consists of multiple steps, and that I would like to detect anomalies and patterns in over time. Let's say I where to use logs instead as you suggest, here's what I'd need to do:

Record the start time
For each sub-system, record the start time, then log a message with the elapsed time and relevant configuration
Log a "system started" with elapsed time and relevant configuration

In other words: I'd have a homemade trace with log messages, manual code and log messages for spans. Not good.
In any case, my original question is still unanswered: how do I start a new trace? There are several cases where this would be useful. We have a persistent log in our application, I would like to put a message on a queue with the trace id, and resume the same trace in the consumer. This would require me to start a trace with a pre-determined trace-id. I imagine the same is true for client/server flows. How can I achieve this?

When using with-span!, you start a new trace by setting the :parent option to nil. In the following example, the ::doing-bar-things span appears in a distinct trace:
(defn do-bar
  []
  (span/with-span! {:name ::doing-bar-things
                    :parent nil}
    (span/add-event! "Inside do-bar")))

(defn do-foo
  []
  (span/with-span! ::doing-foo-things
    (span/add-event! "Start of do-foo")
    (do-bar)
    (span/add-event! "End of do-foo")))

The :parent option is a context value. Context propagation is a general concept in OpenTelemetry in which the context is transmitted across API boundaries, such as from server to client. opentelemetry-java provides text map propagators that read and write HTTP request headers to transmit the context. The W3C Trace Context propagation protocol is specifically for trace contexts. The OpenTelemetry instrumentation agent enables this propagator by default for supported libraries. For manual instrumentation, clj-otel supports this and other propagators with the functions context/->headers and context/headers->merged-context. You can see examples of these being used here and here.


Number of hits before searching..Feature Will be awesome..

If number of hits displayed before searching..It would be great...
Even google doesn't have the number of hits....
But number of hits are done and possible
ex: http://table.branham.org/#/main
Type any word and wait for 2 second it will show the number of hits possible for the given word or sentence.

Hello @jkathir , when this feature will be useful? We already have number of results in response it simply not displayed in UI

we might type a single word or multiple words based on the number of hits shown. For example, when we say buyer assume it shows  1 lakh hits..we will add buyer protection...assume it shows 10,000 hits...we will add buyer user protection ...assume it shows 5,000 hits, we will add buyer user protection offer...this will be really great when we don't like to change the screen or search the hits and making the changing in the same page and same cursor itself...

@jkathir we will not add it to Ambar UI. You can use our REST API to display some information based on count of results.
Check the search method. The count of results will be in total field.

That will slow down the response of type-ahead as it depends upon network latency.


Windows Support: Process exited with status -4058

I'm seeing the error process exited with status -4058 when trying to run a sample app and/or the mocha tests. Saw a couple commits in the project history about adding Windows support so I assumed that this project supports Windows, or am I just doing something funky?
$ mocha
child_process: customFds option is deprecated, use stdio instead.

  gitane
    #run
      1) should run the command with correct GIT_SSH environment
      2) should run the command in the correct baseDir
      √ should correctly handle failed commands
    #writeFiles
      √ should create a random file if none specified
      √ should use passed-in file if specified
      3) should create an executable script and an 0600-mode key by default
      4) should create an executable script and honour keyMode param
      5) should support event emitter parameter for real-time updates

  3 passing (62ms)
  5 failing

  1) gitane #run should run the command with correct GIT_SSH environment:
     Uncaught AssertionError: expected 'process exited with status -4058' to be null

  2) gitane #run should run the command in the correct baseDir:
     Uncaught AssertionError: expected 'process exited with status -4058' to be null

  3) gitane #writeFiles should create an executable script and an 0600-mode key by default:
     Uncaught AssertionError: expected '100666' to deeply equal '100755'

  4) gitane #writeFiles should create an executable script and honour keyMode param:
     Uncaught AssertionError: expected '100666' to deeply equal '100755'

  5) gitane #writeFiles should support event emitter parameter for real-time updates:
     Uncaught AssertionError: expected 'process exited with status -4058' to be null

My Setup:

Windows 8.1
Node v0.12

Yes please @niallo :) Strider needs better Windows support.

I take it this project is used in Strider? Any thoughts on adding a "Deploy to Azure" button? :)

@jpoon would totally take a PR. I don't work with Azure, so I wouldn't be the best one to do that.


Custom 3d model

Hello. Is there a way we can import a custom 3d model with blendshapes, similar to animojis, into your app.

Not currently, but you can implement that in a PR if you want to 😄

There doesn't seem to be any interest in this feature, so I'll close it for now.


Unable to enable MySQL plug-in authentication: there were 102 errors

Environment

OS:
Erlang/OTP:
EMQ:

Description
A description of the issue
Configure emq_auth_mysq.conf file according to the official document. I am configuring the address on my server. What was the reason for the error after the CMD was executed?
error:
:\emqttd\bin>emqttd_ctl plugins load emq_auth_mysql
load plugin error: {emq_auth_mysql,
{bad_return,
{{emq_auth_mysql_app,start,[normal,[]]},
{'EXIT',
{{badmatch,
{error,
{shutdown,
{failed_to_start_child,emq_auth_mysql,
{shutdown,
{failed_to_start_child,worker_sup,
{shutdown,
{failed_to_start_child,
{worker,1},
{1045,<<"28000">>,
<<"Access denied for user<EMAIL_ADDRESS>(us
ng password: NO)">>}}}}}}}}},
[{emq_auth_mysql_app,start,2,
[{file,
"d:/emqtt/v2.3/2.3.1/emq-relx/deps/emq_auth_mysql/sr

I have the same issue showing that the auth.mysql.* in the conf file don't work.  my conf:

auth.mysql.server = <IP_ADDRESS>3:3306
auth.mysql.username=xxxx
auth.mysql.password=xxxx

Found that the service need to be started when the plugin settings was changed.


Move to open source

Done by https://github.com/cerner/cerner_tomcat/commit/35711bc0aa32448848e289bbeb91417efe223d2a


Some generated VIs use the grpcId.ctl from grpc-lvsupport.lvlib

MeasurementLink is trying to regenerate our grpc libraries using grpc-labview <IP_ADDRESS>. The regeneration succeeds and the code works, but the server implementation has a dependency on grpcId.ctl from grpc-lvsupport.lvlib, which is distributed in the gRPC Server and Client Template VI package. This dependency should not be required for deployed code. Instead, all grpcId.ctl dependencies should come from grpc-lvsupport-release.lvlib.
This is easily reproducible using the helloworld.proto example. Simply generate a gRPC Server from that proto file and then open Get helloworld_HelloRequest.vi. You will see that one of the grpcId.ctl is from the wrong library.

AB#2483543

This issue has been fixed, and v<IP_ADDRESS> has been re-released with the fix included. Please do download the binaries again, and uninstall the existing packages you have on your machine before you use the new binaries.
Please let us know if you face any other issues.

I can't seem to reopen it. @pratheekshasn, can you fix the remaining issues?

I have submitted the fix for the issue in the following PRs:
#290
#296


Docs: update the devicemapper default basesize from 10G to 100G

Signed-off-by: Lei Jitang<EMAIL_ADDRESS>#14709  has changed default basesize to 100G, but the docs wasn't updated

Oh, thanks for paying attention!
LGTM


Keep showing Starting bot...

Describe the bug
BF Composer can not start the bot and keep showing Starting bot... Even when I restart the computer, the problem still exist.

Version
Version:  2.1.0
Electron: 8.2.4
Chrome: 80.0.3987.165
NodeJS: 12.13.0
V8: 8.0.426.27-electron.0
Browser

Microsoft Edge
Chrome

OS

[x] Windows

@nguyenhuy200900 Could you open the bot folder and run the sln file in Visual Studio? Essentially we want to see if the bot is able to run outside the context of Composer.

Yes, it is possible @srinaath thank you very much.

Hi @nguyenhuy200900, are you still having issues with composer?


Overhaul how wxFont information is stored/generated

Description:

Now that the issue with selecting a font from the property panel has been resolved, the way fonts are dealt with needs an overhaul. The wxGrid needs a code generate for creating a font, and probably several other controls as well.

Resolved in PR #599


store document under tenant

Hi.
It would be nice to store document under tenant objects or ever all objects.

Since I needed it for device types, I have extended it for this and am waiting for release. He will certainly not implement it for everyone, as it was already time-consuming for one.

I'm going to link this under #10 and consolidate the various models to 1 with a relationship to avoid duplicating models for each use case.


Can I training using this?

Hello,
Thank you for good matierial.
Can I training using this?
Thank you.

@leeyunhome No. This is only for inference.


store_var/get_var not compatible between Godot 3 and Godot 4

Godot version
4.0.rc2
System information
n/a
Issue description
Due to new Variant.Type enums inserted into existing Variant.Type enums, a file containing data written with File.store_var() in Godot 3 may not be read properly with FileAccess.get_var() in Godot 4.
This was reported in the earlier issue https://github.com/godotengine/godot/issues/69114. Since that issue contains replies that may cause confusion, I'm creating this new issue to clarify the problem.
In Godot 3, if File.store_var() is used to write a Dictionary, the Variant.Type written to the file is 18 (Variant.Type.TYPE_DICTIONARY).
In Godot 4, if FileAccess.get_var() is used to read the Dictionary, it will fail, since in Godot 4, 18 is Variant.Type.TYPE_TRANSFORM3D, not Variant.Type.TYPE_DICTIONARY.
This can affect data types other than Dictionary. That's only one example.
Godot 3 Variant.Type enums documentation:
https://docs.godotengine.org/en/3.5/classes/class_%40globalscope.html#enum-globalscope-variant-type
Godot 4 Variant.Type enums documentation:
https://docs.godotengine.org/en/4.0/classes/class_%40globalscope.html#enum-globalscope-variant-type
My suggested fix is to move the Variant.Type enums added in Godot 4 to the end, so that the values of the Godot 3 Variant.Type enums are unchanged.
Alternatively, the declaration order of the enums could be kept, but the enums could be assigned numerical values. But I think this would be more error-prone.
These files require changing. I don't know if this list is complete.
https://github.com/godotengine/godot/blob/master/core/extension/gdextension_interface.h
https://github.com/godotengine/godot/blob/master/doc/classes/%40GlobalScope.xml
https://github.com/godotengine/godot-docs/blob/master/classes/class_%40globalscope.rst
Steps to reproduce
n/a
Minimal reproduction project
n/a

This is not going to change, Godot 4.0 is expected to break compatibility, and does on pretty much all accounts. Opening binary files saved in 3.x with Godot 4.0 is not supported.
Reordering the Variant types now would break compatibility for all Godot 4.0 users, which is not an option.
If you need to load Godot 3.x data, I can think of two options:

Make an intermediate tool with Godot 3.x that can load your data and convert it to a different format (e.g. JSON).
Write a custom binary loader for Godot 4.x that can remap the 3.x enum values to 4.x Variants.

Write a custom binary loader for Godot 4.x that can remap the 3.x enum values to 4.x Variants.

My new addon uses this method to solve this issue.
Godot3To4FileConversion

You can't transfer RIDs, they shouldn't be stored in the first place, so that's not a limitation, they aren't persistent across runs


Add an option to control verbosity

Currently it's outputing a lot of messages to my console. Can you add an option, such as the noInfo or quiet in webpack-dev-middleware, so that people can control the verbosity of output?

Seems sensible, would need to be added to the querystring for the client.js like the other existing options: https://github.com/glenjamin/webpack-hot-middleware/blob/master/client.js#L10

83b5dcc

Will be released in 2.4.0

@glenjamin Appreciate it. Thanks a lot!


Not working using Android (Chrome) browser

This directive is not working when accessing from a Android(Chrome). I've tried both the live demo and a local project. None of them works.
I've pressed the "@" but the dropdown list doesn't appear.
Tried several android phones with different browsers. The only browser that worked was Firefox. On iOS, it works fine.

BTW the error is caused due the way android keyboard handle the keyup and keydown events. it always comes as 229 code and unidentified...

So any workarounds to tackle this issue?

I've committed a potential fix to the "android" branch. If someone can take a look and test the fix, that would be great.

Sure, will take a look into it.
On 30-Jul-2017 12:13 AM, "Dan MacFarlane"<EMAIL_ADDRESS>wrote:

I've committed a potential fix to the "android" branch. If someone can
take a look and test the fix, that would be great.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/dmacfarlane/angular2-mentions/issues/33#issuecomment-318850389,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AL_noQuMSq2RjYNh2II_rdW3-o4a8GSPks5sS31qgaJpZM4OVBUD
.

Hey @dmacfarlane it worked in one of my devices (Motorola Moto G with Android 6.0)
I've built your branch and uploaded it in a host in case more folks decide to test.
[(http://angular-2-mentions-android.s3-website-us-west-2.amazonaws.com)]

Hey @dmacfarlane UPDATE

it works in Android version 6.0

It's not working in android version greater then 6.0 (I've tested in two devices with Android version 6.1 and none of them worked

Fixed with #94


Radio and checkbox not properly left aligned in code

Radio and Checkbox are not aligned properly because of the hover effect that is outside of the visual bounding box.
Suggest adding a minus margin on both. This is done in Figma.
Codesandbox: https://codesandbox.io/p/sandbox/objective-heyrovsky-vty4pj?file=%2Fsrc%2Findex.js

Blocked by #1735

This will be solved by #1735


Pub/sub Topic returns subscriptions from different topic

Environment details

OS: Ubuntu 16.04
PHP version: 7.2
Package name and version: google/cloud-pubsub 1.8.2

Steps to reproduce

Create two topics, A and B$topicA = $pubsub->topic('A')->create();
$topicB = $pubsub->topic('B')->create();

Create a subscription to A, with name S$subA = $topicA->subscribe('S');

Create a subscription to B, with name S$subB = $topicB->subscribe('S');

Expected result
Initially I expected two different subscriptions, one to topic A and one to topic B - since subscription names could be unique within a topic.
But when I found that subscription names must be unique within a project -not within a topic- I would expect some sort of exception on $topicB->subscribe('S').
Actual result
One subscription S is created, as a subscription for topic A.
Both $subA and $subB are subscribed to topic A. Nobody is subscribed to topic B. No exception was thrown about the fact that I retrieved a named subscription on a topic that the subscription is not for.

Hi @rpkamp,
As you discovered, subscription names are unique to the project. They are not scoped to a topic: projects/{project}/subscriptions/{sub}.
That said, when running your steps, I receive an error when running step 3:
Google\Cloud\Core\Exception\ConflictException: {
  "error": {
    "code": 409,
    "message": "Resource already exists in the project (resource=sub-a).",
    "status": "ALREADY_EXISTS"
  }
}

If I were to call Topic::subscription() with a subscription name which does not belong to the topic, you are correct that I would not encounter any errors. Since topics and subscriptions are separate resources (i.e. subscriptions are not children of topics), we can't determine at runtime whether this is correct or not without an additional service request to get the subscription resource and compare it to the topic.
If this latter point is the source of your concern, let me know. Perhaps we can figure out a solution allowing you to ensure correctness.

Indeed I was a bit too fast. I don't call create always, I call exists first to check that the subscription already exists.
So it's more like this:
$topicA = $client->topic('A');
$topicB = $client->topic('B');

$subA = $topicA->subscription('S');
$subB = $topicB->subscription('S');

if (!$subA->exists()) {
  $subA->create();
}

if (!$subB->exists()) {
  // this doesn't happen because $subB finds it exists
  $subB->create();
}

Perhaps in this case $subB->exists() should be throwing the exception, something like Subscription "S" exists, but is not for "B", instead it is for "A"
But I think $subscription->exists() could check this:
public function exists(array $options = [])
{
    try {
        $info = $this->info($options);
        if (null !== $this->topicName && $info['topic'] !== $this->topicName) {
            throw new SomeException(sprintf(
				'Subscription "%s" exists, but is not for "%s", instead it is for "%s"',
                $this->name,
                $this->topicName,
                $info['topic']
            ));
        }
        return true;
    } catch (NotFoundException $e) {
        return false;
    }
}

This would not even require any additional network calls.

We'll certainly consider whether this is something we should add.
You can accomplish something similar in the interim:
function subscriptionBelongsTo(Subscription $sub, Topic $topic)
{
    $topicName = $topic->name();
    $subscribedTopic = $sub->info()['topic'];

   return $topicName === $subscribedTopic;
}

If you've already run Subscription::exists(), it won't require another service request.


Add transform to chart

fixes #190

Please make sure that all the checks pass. Please add here any additional information regarding this pull request. It's highly recommended that you link this PR to an issue (please create one if it doesn't exist for this PR)

@roll I am still working on it but wanted to get your feedback .

@roll I was able to add these new features only:

filter, bin, axis, sort, tooltip,
Simplest form of Facet is already working

{
  "data": {"url": "data/cars.json"},
  "mark": "bar",
  "encoding": {
    "x": {
           ...
    },
    "y": {
          ....
    },
    "row": {"field": "Origin"}
  }
}

I request for your feedback.  I will then clean up the code and submit final PR tomorrow.
Thank you!

@shashigharti
Good progress! Not everything works for me (for example, "channels[].Title" changing). Can you please also add a few screencasts with the most exciting new features?
In-general, let's proceed to the final PR :+1:

@shashigharti
Do you think it's possible to add https://vega.github.io/vega-lite/docs/fold.html as well to transforms? It seems to be a simple one

@shashigharti Do you think it's possible to add https://vega.github.io/vega-lite/docs/fold.html as well to transforms? It seems to be a simple one

yes I will add it. I am adding stack also.


Give graylog address to init in one arg instead of two

:+1:

Codecov Report

Merging #90 into master will decrease coverage by 0.01%.
The diff coverage is 75%.

@@            Coverage Diff             @@
##           master      #90      +/-   ##
==========================================
- Coverage   96.45%   96.44%   -0.02%
==========================================
  Files           2        2
  Lines         282      281       -1
==========================================
- Hits          272      271       -1
  Misses         10       10

Impacted Files
Coverage Δ

loggo/loggo.py
96.41% <75%> (-0.02%)
:arrow_down:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update c947699...7a8f184. Read the comment docs.


Package updates are not included in Docker images

This is more important to the standard Docker images, but it also applies to the slim and alpine editions as well. The issue here is that no apt-get upgrade or apk upgrade command is included when installing packages, so several outdated packages (which include many patched CVEs; check out this scanner for example) remain with vulnerabilities. For enterprises with strict security standards, this makes the image unusable.
This also arises as an issue due to openjdk Docker images themselves being out of date from openjdk releases currently.

You might be using the deprecated jenkins:latest image, instead of the new jenkins/jenkins:lts. I just worked out why repeated builds were not updating, and it was because I was using the old image.
The old image : https://hub.docker.com/_/jenkins/
The new image : https://hub.docker.com/r/jenkins/jenkins/

we use the upstream openjdk images that are regularly upgraded

The upstream openjdk images themselves are regularly out of date with openjdk let alone the addon packages they include for no reason (like Mercurial).

@jvz This kind of issue should not be filed nor discussed here, but in the SECURITY tracker. Please follow https://jenkins.io/security/

Alright, can do.


github-status: allow to filter pr lists by branch name

Support to filter the PR listing by branch name.
If not filtered all PRs with all target branch names are listed, otherwise its filtered by target branch name.

+0.5 code looks good, commit message could be improved

Updated commit message.


How/where do I import index.js ?

The examples are not complete ?
I've created index.js and App.svelte but the routing don't work ?
Do I need to import index.js somewhere ?

None of this stuff works !

Sorry for the late reply, I'm busy with my study. I've created a simple REPL, please check it out.
https://svelte.dev/repl/47eaf2b35f4f4c98b533031f3b749c89?version=3.32.2


Rename DMD_REL to DMD_STABLE

The naming here is quite confusing - everything else is named _STABLE.

Please rebase

Please rebase

Rebased.

Two instances on this line. (sed without /g I guess?) Perhaps this is why the build is failing?

Yes. Good that we have a CI to catch such silly mistakes.


Most of wavefunction framework; cleanup Broombridge; Generic ladder operators.

This is a continuation of work on improving the modularity, extensibility, and readability of the chemistry library.
Related issues:
#54 Improve chemistry library modularity and clean up code.
#65 Update Broombridge for v0.7 release of chemistry librar
Additions:

Broombridge logic has been cleaned up.
Added and filled in most of the framework for representing wavefunction ansatzes
Added generic ladder operators to support various improvements.
General cleanup and bugfixes
A few more tests, e.g. H2.

Notes: Currently fails only the json tests.

Thanks for the comment Chris! That taught me a couple new tricks. I have addressed all of them except for documentation errors. There seems to be an issue with making interface implementations internal instead of public, so I have appended _Json to all methods that implement interfaces only for the purposes of serialization.
There will be a subsequent PR for documentation fixes, and completing the convenience functions and remaining features.

Thanks for the comment Chris! That taught me a couple new tricks. I have addressed all of them except for documentation errors. There seems to be an issue with making interface implementations internal instead of public, so I have appended _Json to all methods that implement interfaces only for the purposes of serialization.
There will be a subsequent PR for documentation fixes, and completing the convenience functions and remaining features.

No worries, happy to help! With respect to internal interfaces, by the way, it looks like you can always specify that you're implementing an internal interface explicitly (for instance, https://stackoverflow.com/a/6117670/267841).


extension of thumbnail embedding ?

Make sure you are using the latest version: run youtube-dl --version and ensure your version is 2017.02.14. If it's not read this FAQ entry and update. Issues with outdated version will be rejected.

[X] I've verified and I assure that I'm running youtube-dl 2017.02.14

Before submitting an issue make sure you have:

[X] At least skimmed through README and most notably FAQ and BUGS sections
[X] Searched the bugtracker for similar issues including closed ones

What is the purpose of your issue?

[ ] Bug report (encountered problems with youtube-dl)
[ ] Site support request (request for adding support for a new site)
[ ] Feature request (request for a new functionality)
[X] Question
[ ] Other

Description of your issue, suggested solution and other information
Just wondering if you guys plan on extending the thumbnail embedding to more file types like mkv/webm etc. because when using e.g. -f bestaudio+bestvideo the created container will never have a thumbnail which is really distracting in organized libraries
It does say "for now" that's why I was wondering if it's still in the works.
"youtube_dl.postprocessor.embedthumbnail.EmbedThumbnailPPError: Only mp3 and m4a/ mp4 are supported for thumbnail embedding for now."
It does say "for now" that's why I was wondering if it's still in the works.
kind regards

Just wondering if you guys plan on extending the thumbnail embedding to more file types like mkv/webm etc.

No ETA yet.
Close as that's a duplicate of #10359.

http://github.com/rg3/youtube-dl/issues/11981

http://github.com/rg3/youtube-dl/issues/12459

http://github.com/rg3/youtube-dl/issues/6046

http://github.com/rg3/youtube-dl/issues/8379

https://github.com/rg3/youtube-dl/pull/15445


Question: best option to handle temporary closure

What is the best option to handle temporary closure of a street?
This should be handle without rebuilding the router db.
Thanks

At the moment this is not supported but you could adapt the current code to do something similar or wait for the feature that makes it possible to edit edge meta-data.

Ok. Thanks Ben.
I'll take a look at the code trying to find out the right place to handle this option.
I simply tried to remove an edge with no luck.

This is directly related to #146 and that's in progress so closing (but @alecava58, removing an edge should work but you have to rebuild the contracted graph after every change)


ThrottlingHandler - SetIndentity should be renamed to SetIdentity

Surprised this typo has been out there for so long.

Indeed!

#29 duplicate


Segfault in one of OpenLane's steps (or_replace.tcl)

Description
I'm getting a segfault in one of OpenLane's steps, but can't see what a possible reason for this could be (sorry, I don't "speak" TCL nor do I use docker for my own work - I'm only doing a few assembler styles, C, C++, Python, Java, some HDL, and CS Theory).
The project on which the problem occurs is a test project for integrating OpenRAM blocks into a design - it is a shortened version of the project at https://github.com/VLSIDA/openram_testchip.git using only two SRAM blocks.
Environment
The problem occurs both with the mpw-3a version of the workflow as well as with the "latest" (b911a5bbbcaa) version of the OpenLane docker images (selected by changing the respective lines in the files "Makefile" and "openlane/Makefile"). In the case of the "latest" version latter case, the gds.gz files in the gds/ directory of the project need to be gunzipped for the flow to reach the segfault. Also, when using the "latest" version, there is a warning for me that the PDK version is then not the right one - not sure if this is relevant because the segfault is the same.
Python: v3.8.10
Kernel: Linux v5.4.0-91-generic
Distribution: ubuntu 20.04
Container Engine: docker v20.10.7
OpenLane Git Version: 2021.10.25_20.35.00
---
PDK Version Verification Status: OK

---
Git Log (Last 5 Commits)

commit e8f4a88f668b366f126bba40861153bf478a33c1
Author: Donn<EMAIL_ADDRESS>Date:   Mon Oct 25 20:32:41 2021 +0200

    Last Minute Fixes for MPW3 (#675)

Reproduction Material
Github doesn't let me upload the project as a tar.gz file or a .zip file with the message "is not included in the list". Maybe it is too large. So I've committed the project as a project to github at: https://github.com/progirep/openram_testchip/tree/8ae25c1d4a85146cf2a7d277da1f87e1234a4b85
The following zip file is just a dummy to be able to submit the issue anyway:
The command to run is simply:
make user_project_wrapper

from the project directory.
Expected behavior
The workflow should not segfault. The project I'm trying to run it on may be wrong in some aspects, but right now it's not possible for me to tell because of the segfault.
Logs
...[stuff that seems to work]....
[INFO GRT-0104] Minimal overflow 1 occurring at round 0.
[INFO GRT-0111] Final number of vias: 3700
[INFO GRT-0112] Final usage 3D: 89696
*** Error in `openroad': corrupted double-linked list: 0x0000000014d8d870 ***
======= Backtrace: =========
/lib64/libc.so.
[test.zip](https://github.com/The-OpenROAD-Project/OpenLane/files/7683839/test.zip)
6(+0x7f3e4)[0x7f47d70043e4]
/lib64/libc.so.6(+0x82ba8)[0x7f47d7007ba8]
/lib64/libc.so.6(__libc_malloc+0x4c)[0x7f47d700a6fc]
/lib64/libstdc++.so.6(_Znwm+0x1d)[0x7f47d78ca18d]
openroad[0xc3ac4b]
openroad[0x10293e2]
openroad[0x102afd9]
openroad[0xc349ab]
openroad[0xc38e6a]
openroad[0x51d454]
openroad[0x4fad98]
openroad[0x525ad1]
/lib64/libtcl8.5.so(+0x34eb2)[0x7f47d892feb2]
/lib64/libtcl8.5.so(+0x7936c)[0x7f47d897436c]
/lib64/libtcl8.5.so(+0x81647)[0x7f47d897c647]
/lib64/libtcl8.5.so(TclEvalObjEx+0x87)[0x7f47d89316b7]
/lib64/libtcl8.5.so(+0xbc27f)[0x7f47d89b727f]
/lib64/libtcl8.5.so(+0x34eb2)[0x7f47d892feb2]
/lib64/libtcl8.5.so(+0x7936c)[0x7f47d897436c]
/lib64/libtcl8.5.so(+0x81647)[0x7f47d897c647]
/lib64/libtcl8.5.so(TclEvalObjEx+0x87)[0x7f47d89316b7]
/lib64/libtcl8.5.so(+0x3c1d0)[0x7f47d89371d0]
/lib64/libtcl8.5.so(+0x34eb2)[0x7f47d892feb2]
/lib64/libtcl8.5.so(+0x7936c)[0x7f47d897436c]
/lib64/libtcl8.5.so(+0x81647)[0x7f47d897c647]
/lib64/libtcl8.5.so(TclEvalObjEx+0x87)[0x7f47d89316b7]
/lib64/libtcl8.5.so(+0x3ff00)[0x7f47d893af00]
/lib64/libtcl8.5.so(+0x34eb2)[0x7f47d892feb2]
/lib64/libtcl8.5.so(+0x7936c)[0x7f47d897436c]
/lib64/libtcl8.5.so(TclObjInterpProcCore+0x34d)[0x7f47d89b7a4d]
/lib64/libtcl8.5.so(+0x34eb2)[0x7f47d892feb2]
/lib64/libtcl8.5.so(+0x7936c)[0x7f47d897436c]
/lib64/libtcl8.5.so(TclObjInterpProcCore+0x34d)[0x7f47d89b7a4d]
/lib64/libtcl8.5.so(+0x34eb2)[0x7f47d892feb2]
/lib64/libtcl8.5.so(+0x35f1e)[0x7f47d8930f1e]
/lib64/libtcl8.5.so(Tcl_EvalEx+0x16)[0x7f47d8931446]
/lib64/libtcl8.5.so(Tcl_Eval+0x15)[0x7f47d8931465]
openroad[0x66946f]
openroad[0x4dbfc3]
/lib64/libtcl8.5.so(Tcl_Main+0x1e5)[0x7f47d899f475]
openroad[0x4cbdc1]
/lib64/libc.so.6(__libc_start_main+0xf5)[0x7f47d6fa7555]
openroad[0x4d9097]
======= Memory map: ========
00400000-0267e000 r-xp 00000000 00:37 7425961                            /build/bin/openroad
0287e000-02888000 r--p 0227e000 00:37 7425961                            /build/bin/openroad
02888000-028cc000 rw-p 02288000 00:37 7425961                            /build/bin/openroad
028cc000-028ee000 rw-p 00000000 00:00 0
02d38000-23b16000 rw-p 00000000 00:00 0                                  [heap]
7f47cc000000-7f47cc021000 rw-p 00000000 00:00 0
7f47cc021000-7f47d0000000 ---p 00000000 00:00 0
7f47d1792000-7f47d2684000 rw-p 00000000 00:00 0
7f47d4589000-7f47d458a000 ---p 00000000 00:00 0
7f47d458a000-7f47d4e0a000 rw-p 00000000 00:00 0
7f47d4f4a000-7f47d4f8a000 rw-p 00000000 00:00 0
7f47d520a000-7f47d524a000 rw-p 00000000 00:00 0
7f47d528a000-7f47d52ca000 rw-p 00000000 00:00 0
7f47d53e1000-7f47d580d000 rw-p 00000000 00:00 0
7f47d580d000-7f47d5819000 r-xp 00000000 00:37 7345130                    /usr/lib64/libnss_files-2.17.so
7f47d5819000-7f47d5a18000 ---p 0000c000 00:37 7345130                    /usr/lib64/libnss_files-2.17.so
7f47d5a18000-7f47d5a19000 r--p 0000b000 00:37 7345130                    /usr/lib64/libnss_files-2.17.so
7f47d5a19000-7f47d5a1a000 rw-p 0000c000 00:37 7345130                    /usr/lib64/libnss_files-2.17.so
7f47d5a1a000-7f47d5ca0000 rw-p 00000000 00:00 0
7f47d5cf6000-7f47d5d36000 rw-p 00000000 00:00 0
7f47d5d36000-7f47d5d39000 r-xp 00000000 00:37 7411620                    /usr/lib64/python3.6/lib-dynload/_heapq.cpython-36m-x86_64-linux-gnu.so
7f47d5d39000-7f47d5f38000 ---p 00003000 00:37 7411620                    /usr/lib64/python3.6/lib-dynload/_heapq.cpython-36m-x86_64-linux-gnu.so
7f47d5f38000-7f47d5f39000 r--p 00002000 00:37 7411620                    /usr/lib64/python3.6/lib-dynload/_heapq.cpython-36m-x86_64-linux-gnu.so
7f47d5f39000-7f47d5f3b000 rw-p 00003000 00:37 7411620                    /usr/lib64/python3.6/lib-dynload/_heapq.cpython-36m-x86_64-linux-gnu.so
7f47d5f3b000-7f47d6b7e000 rw-p 00000000 00:00 0
7f47d6b7e000-7f47d6b80000 r-xp 00000000 00:37 7345249                    /usr/lib64/libutil-2.17.so
7f47d6b80000-7f47d6d7f000 ---p 00002000 00:37 7345249                    /usr/lib64/libutil-2.17.so
7f47d6d7f000-7f47d6d80000 r--p 00001000 00:37 7345249                    /usr/lib64/libutil-2.17.so
7f47d6d80000-7f47d6d81000 rw-p 00002000 00:37 7345249                    /usr/lib64/libutil-2.17.so
7f47d6d81000-7f47d6d83000 r-xp 00000000 00:37 7345016                    /usr/lib64/libdl-2.17.so
7f47d6d83000-7f47d6f83000 ---p 00002000 00:37 7345016                    /usr/lib64/libdl-2.17.so
7f47d6f83000-7f47d6f84000 r--p 00002000 00:37 7345016                    /usr/lib64/libdl-2.17.so
7f47d6f84000-7f47d6f85000 rw-p 00003000 00:37 7345016                    /usr/lib64/libdl-2.17.so
7f47d6f85000-7f47d7149000 r-xp 00000000 00:37 7344987                    /usr/lib64/libc-2.17.so
7f47d7149000-7f47d7348000 ---p 001c4000 00:37 7344987                    /usr/lib64/libc-2.17.so
7f47d7348000-7f47d734c000 r--p 001c3000 00:37 7344987                    /usr/lib64/libc-2.17.so
7f47d734c000-7f47d734e000 rw-p 001c7000 00:37 7344987                    /usr/lib64/libc-2.17.so
7f47d734e000-7f47d7353000 rw-p 00000000 00:00 0
7f47d7353000-7f47d7368000 r-xp 00000000 00:37 7345034                    /usr/lib64/libgcc_s-4.8.5-20150702.so.1
7f47d7368000-7f47d7567000 ---p 00015000 00:37 7345034                    /usr/lib64/libgcc_s-4.8.5-20150702.so.1
7f47d7567000-7f47d7568000 r--p 00014000 00:37 7345034                    /usr/lib64/libgcc_s-4.8.5-20150702.so.1
7f47d7568000-7f47d7569000 rw-p 00015000 00:37 7345034                    /usr/lib64/libgcc_s-4.8.5-20150702.so.1
7f47d7569000-7f47d766a000 r-xp 00000000 00:37 7345101                    /usr/lib64/libm-2.17.so
7f47d766a000-7f47d7869000 ---p 00101000 00:37 7345101                    /usr/lib64/libm-2.17.so
7f47d7869000-7f47d786a000 r--p 00100000 00:37 7345101                    /usr/lib64/libm-2.17.so
7f47d786a000-7f47d786b000 rw-p 00101000 00:37 7345101                    /usr/lib64/libm-2.17.so
7f47d786b000-7f47d7954000 r-xp 00000000 00:37 7345219                    /usr/lib64/libstdc++.so.6.0.19
7f47d7954000-7f47d7b54000 ---p 000e9000 00:37 7345219                    /usr/lib64/libstdc++.so.6.0.19
7f47d7b54000-7f47d7b5c000 r--p 000e9000 00:37 7345219                    /usr/lib64/libstdc++.so.6.0.19
7f47d7b5c000-7f47d7b5e000 rw-p 000f1000 00:37 7345219                    /usr/lib64/libstdc++.so.6.0.19
7f47d7b5e000-7f47d7b73000 rw-p 00000000 00:00 0
7f47d7b73000-7f47d7e00000 r-xp 00000000 00:37 7409574                    /usr/lib64/libpython3.6m.so.1.0
7f47d7e00000-7f47d8000000 ---p 0028d000 00:37 7409574                    /usr/lib64/libpython3.6m.so.1.0
7f47d8000000-7f47d8003000 r--p 0028d000 00:37 7409574                    /usr/lib64/libpython3.6m.so.1.0
7f47d8003000-7f47d8069000 rw-p 00290000 00:37 7409574                    /usr/lib64/libpython3.6m.so.1.0
7f47d8069000-7f47d809b000 rw-p 00000000 00:00 0
7f47d809b000-7f47d80c0000 r-xp 00000000 00:37 7409563                    /usr/lib64/libgomp.so.1.0.0
7f47d80c0000-7f47d82bf000 ---p 00025000 00:37 7409563                    /usr/lib64/libgomp.so.1.0.0
7f47d82bf000-7f47d82c0000 r--p 00024000 00:37 7409563                    /usr/lib64/libgomp.so.1.0.0
7f47d82c0000-7f47d82c1000 rw-p 00025000 00:37 7409563                    /usr/lib64/libgomp.so.1.0.0
7f47d82c1000-7f47d82c8000 r-xp 00000000 00:37 7345197                    /usr/lib64/librt-2.17.so
7f47d82c8000-7f47d84c7000 ---p 00007000 00:37 7345197                    /usr/lib64/librt-2.17.so
7f47d84c7000-7f47d84c8000 r--p 00006000 00:37 7345197                    /usr/lib64/librt-2.17.so
7f47d84c8000-7f47d84c9000 rw-p 00007000 00:37 7345197                    /usr/lib64/librt-2.17.so
7f47d84c9000-7f47d84de000 r-xp 00000000 00:37 7409643                    /usr/lib64/libz.so.1.2.7
7f47d84de000-7f47d86dd000 ---p 00015000 00:37 7409643                    /usr/lib64/libz.so.1.2.7
7f47d86dd000-7f47d86de000 r--p 00014000 00:37 7409643                    /usr/lib64/libz.so.1.2.7
7f47d86de000-7f47d86df000 rw-p 00015000 00:37 7409643                    /usr/lib64/libz.so.1.2.7
7f47d86df000-7f47d86f6000 r-xp 00000000 00:37 7345178                    /usr/lib64/libpthread-2.17.so
7f47d86f6000-7f47d88f5000 ---p 00017000 00:37 7345178                    /usr/lib64/libpthread-2.17.so
7f47d88f5000-7f47d88f6000 r--p 00016000 00:37 7345178                    /usr/lib64/libpthread-2.17.so
7f47d88f6000-7f47d88f7000 rw-p 00017000 00:37 7345178                    /usr/lib64/libpthread-2.17.so
7f47d88f7000-7f47d88fb000 rw-p 00000000 00:00 0
7f47d88fb000-7f47d8a17000 r-xp 00000000 00:37 7409576                    /usr/lib64/libtcl8.5.so
7f47d8a17000-7f47d8c16000 ---p 0011c000 00:37 7409576                    /usr/lib64/libtcl8.5.so
7f47d8c16000-7f47d8c1b000 r--p 0011b000 00:37 7409576                    /usr/lib64/libtcl8.5.so
7f47d8c1b000-7f47d8c22000 rw-p 00120000 00:37 7409576                    /usr/lib64/libtcl8.5.so
7f47d8c22000-7f47d8c23000 rw-p 00000000 00:00 0
7f47d8c23000-7f47d8c45000 r-xp 00000000 00:37 7344962                    /usr/lib64/ld-2.17.so
7f47d8c4f000-7f47d8ccf000 rw-p 00000000 00:00 0
7f47d8cf4000-7f47d8e3d000 rw-p 00000000 00:00 0
7f47d8e41000-7f47d8e44000 rw-p 00000000 00:00 0
7f47d8e44000-7f47d8e45000 r--p 00021000 00:37 7344962                    /usr/lib64/ld-2.17.so
7f47d8e45000-7f47d8e46000 rw-p 00022000 00:37 7344962                    /usr/lib64/ld-2.17.so
7f47d8e46000-7f47d8e47000 rw-p 00000000 00:00 0
7ffe35074000-7ffe350ad000 rw-p 00000000 00:00 0                          [stack]
7ffe35189000-7ffe3518c000 r--p 00000000 00:00 0                          [vvar]
7ffe3518c000-7ffe3518d000 r-xp 00000000 00:00 0                          [vdso]
ffffffffff600000-ffffffffff601000 --xp 00000000 00:00 0                  [vsyscall]
[ERROR]: during executing: "openroad -exit /openlane/scripts/openroad/or_replace.tcl |& tee >&@stdout /project/openlane/user_project_wrapper/runs/user_project_wrapper/logs/placement/16-replace.log"
[ERROR]: Exit code: 1
[ERROR]: Last 10 lines:
child killed: SIGABRT

[ERROR]: Please check openroad  log file
[ERROR]: Dumping to /project/openlane/user_project_wrapper/runs/user_project_wrapper/error.log
[INFO]: Calculating Runtime From the Start...
[INFO]: flow failed for user_project_wrapper/2021.12.08_23.11.01 in 0h3m12s
[INFO]: Generating Final Summary Report...
[INFO]: Design Name: user_project_wrapper
Run Directory: /project/openlane/user_project_wrapper/runs/user_project_wrapper
Source not found.
----------------------------------------

LVS Summary:
Source: /project/openlane/user_project_wrapper/runs/user_project_wrapper/results/lvs/user_project_wrapper.lvs_parsed.gds.log
Source not found.
----------------------------------------

Antenna Summary:
No antenna report found.
[INFO]: check full report here: /project/openlane/user_project_wrapper/runs/user_project_wrapper/reports/final_summary_report.csv
[INFO]: Saving Runtime Environment
invalid command name "17"
    while executing
"17"
    ("uplevel" body line 1)
    invoked from within
"uplevel #0 ${cmd}"
    (procedure "set_log" line 3)
    invoked from within
"set_log ::env($index) $escaped_env_var $::env(GLB_CFG_FILE) 1"
    (procedure "save_state" line 9)
    invoked from within
"save_state"
    (procedure "flow_fail" line 6)
    invoked from within
"flow_fail"
    (procedure "try_catch" line 25)
    invoked from within
"try_catch $::env(OPENROAD_BIN) -exit $::env(SCRIPTS_DIR)/openroad/or_replace.tcl |& tee $::env(TERMINAL_OUTPUT) [index_file $::env(replaceio_log_file_..."
    (procedure "global_placement_or" line 14)
    invoked from within
"global_placement_or"
    (procedure "run_placement" line 17)
    invoked from within
"run_placement"
    (procedure "run_placement_step" line 11)
    invoked from within
"[lindex $step_exe 0] [lindex $step_exe 1] "
    (procedure "run_non_interactive_mode" line 43)
    invoked from within
"run_non_interactive_mode {*}$argv"
    invoked from within
"if { [info exists flags_map(-interactive)] || [info exists flags_map(-it)] } {
	puts_info "Running interactively"
	if { [info exists arg_values(-file)..."
    (file "/openlane/flow.tcl" line 356)
make[1]: *** [Makefile:43: user_project_wrapper] Error 1
make[1]: Leaving directory '/home/...(my user name and install path here).../openram_based_monitoring/openlane'
make: *** [Makefile:83: user_project_wrapper] Error 2

@progirep mpw-3b is right version for caravel project. Try with mpw-3b tag

@progirep mpw-3b is right version for caravel project. Try with mpw-3b tag

Thanks, I will try that and report back in ~2-8 hours.

sorry, I don't "speak" TCL

@donn  this issue reproduced with mpw-3b tag as well

@vijayank88 Really not much I can do other than or_issue the reproducible and try it with the latest version of OpenROAD. However, I'm off this week, so that'll have to wait until Monday.

Ok, I've just checked with the "mpw-3b" version of the docker container. The segfault occurs as well, and the stack trace is the same up to the memory addresses (which are unlikely to be the same because of address space randomization).
The problem does not occur for the design from which my test design is forked. I'll have a look if there is something to be seen from the differences between the OpenLane warnings - in case the segfault only occurs for designs that have no chance to work anyway, there may be some useful information hidden to track down the problem.

@progirep This failure occurs inside the OpenROAD app specifically, so there's not much we can do on our side but package the issue and pass it on to the OpenROAD team. Likely there's a corner case exposed by your design that's just not handled properly.

@progirep
follow the instruction in https://github.com/The-OpenROAD-Project/OpenLane/blob/master/docs/source/using_or_issue.md and provide tar file to resolve it

@progirep segfault error comes openlane/Makefile.
Refer https://skywater-pdk.slack.com/archives/C016H8WJMBR/p1636840104299800?thread_ts=1636753036.268100&cid=C016H8WJMBR.
Solution is :+1:
change /openLANE_flow  to /openlane in openlane/Makefile

Ok, so I've attached the tar file for reproducing the issue built according to the using_or_issue.md document:
user_project_wrapper_or_replace_packaged.tar.gz
The proposal to change the Makefile didn't work for me. It had no effect on the error. If I get it correctly, the change is for "injecting" the local OpenLane checkout from OPENLANE_ROOT into the docker container. I was using the "mpw-3a" version for that previously (which seems to be the one coming from this pull request: https://github.com/The-OpenROAD-Project/OpenLane/pull/675). Updating to a newer version of leads to the whole build process failing with "[ERROR STA-0402] repair_design -slew_margin is not a known keyword or flag.".
I guess that the slack link was posted for internal use because signing up requires e-mail addresses from few domains (google but not gmail, efabless, ..)

Your packaged testcase suggests you are using an old version of openlane.

I can't reproduce the issue with a later version of OpenROAD. Meaning that this issue is waiting on #756.

No problem! Just happy we could help.


Not pulling 2015 data?

It could very well be that I'm doing something wrong, but I can't seem to get any data from the current season. I'm able to infer that this data is indeed supplied by the API because I can get with nba_py, which is a much less convenient package.

Can you paste your code so I can check exactly what lines I need to debug?

Nevermind, after looking through the code it looks like my mistake was not overriding the default season='2014' on some functions.

Cool. Your finding is useful. I need to update the default for this season and make that aspect more explicit.
Thanks for sharing and ease share more.

I was also fooled by the GameIDs function which does not include any 2015 games. But looking at the associated issue it appears that requires some manual updating on your part?

Yeah. There is a systematic way to create them but there isn't a database to pull them from.
At least not that I've found.
My goal is to get everything into a bash script and maybe spin up an Amazon instance that I can point that function to as well as some others that require manual updating. Using a cron job I can make it fairly automated.

@bradleyfay It might be easier to make a Docker image than an Amazon instance. Then any time something changes you just push to GitHub and Docker Hub or Quay.io rebuilds automatically. And you can deploy anywhere there's a Docker host, including on a desktop.

Interesting. Sounds very handy. I'll have to read up on that

I updated a couple small bugs and made all the default pulls for the 2015 season.
I haven't added gameids for 2015 yet but these changes should help


fix(plugin-chart-echarts): sort tooltip correctly

SUMMARY
The main ECharts series chart tooltips aren't sorting correctly. This is due to the tooltip keys being populated from Object.keys from an object that was originally an array, which of course doesn't have a guaranteed sort order. This issue appears to have been there for a very long time: I treid to hunt it down with Blame, and I stopped searching when I got to three years ago where the code had already changed considerably, but the same bug seemed to be there.
This PR fixes the bug, DRYs the code as the same logic is also needed in Mixed Timeseries chart, and adds simple tests for the new util. Naturally a full transformProps integration test would be preferable here, but it felt like too much added code for such a small fix. Also, the util test looks concise enough for people to understand what it's used for.
P.S. In the screenshots below please excuse my awful theme colors (I have those in my devenv to remind myself of the importance of theming work)
P.P.S. I suggest reviewing with hidden whitespace changes, as the changes are mostly that.
AFTER
Notice how "Tooltip sort by metric" is working as expected (biggest metric values are on the bottom due to stacking):

Also sorting series by "Category name" works as expected (this can be seen comparing the tooltip colors vs the bars):

BEFORE
Currently "Tooltip sort by metric" doesn't do anything (metric values are not monotonically growing):

When not sorting by metric, the series sort order isn't reflected in the tooltip order (the order is not the same in tooltip as on the bars):

TESTING INSTRUCTIONS

Create a bar/line chart with a dimension to sort by
Try changing the series sort order to see if it's reflected in the tooltip
Try toggling "Tooltip sort by metric" control

ADDITIONAL INFORMATION

[ ] Has associated issue:
[ ] Required feature flags:
[ ] Changes UI
[ ] Includes DB Migration (follow approval process in SIP-59)

[ ] Migration is atomic, supports rollback & is backwards-compatible
[ ] Confirm DB migration upgrade and downgrade tested
[ ] Runtime estimates and downtime expectations provided

[ ] Introduces new feature or API
[ ] Removes existing feature or API

P.S. In the screenshots below please excuse my awful theme colors (I have those in my devenv to remind myself of the importance of theming work)

🤣 🤣 🤣 🤣 🤣 🤣


Allow users to specify on which interface to bind

I added an option, -a, that allows users to specify on which interface to bind. It defaults to <IP_ADDRESS>. While trying to test my changes, I ran into the error I mentioned on !259. I ran into the same error without my changes, so there is a good chance my test was invalid.
Why not listen on <IP_ADDRESS> by default?
One could. A bit of research says that it would not bind to IPv6 addresses. Binding to both <IP_ADDRESS> and :: would solve that.
Resolves #259

I don't know why Rustfmt / format fails with the following error.  Running cargo fmt locally reports no changes.

Error: Resource not accessible by integration

Try running make fmt locally and pushing again.

It worked!

I ran make fmt again and pushed up my changes. I didn't expect formatting in the attribute macros!

we should just leave it as <IP_ADDRESS> on windows

Done!


Policy enforcement instructions

Hey Ranjit!
Here's some instructions on how you can verify policies currently. It's a bit limited, but works for now.
I think I'll make a toy database library on top of persistent to get refined queries, too.

Awesome, thanks @jbrown215 !!


README: Use the master branch build badge

This PR repairs the Travis build badge in the README, by pointing at the master branch instead of the add-travis branch.

Nice one, thanks!


Encoder Problem With Latest Raspberry Pi OS

So we discovered in internal testing, thanks to Chris, that after upgrading our Raspberry Pi's to the latest Raspberry Pi OS (with dist-upgrade, exact version below) that the DepthAI video encoder is not stable, so this example (04 - RGB Encoding) fails quickly.  Prior to this upgrade to Raspberry Pi OS (the latest as of this writing), this instability did not happen.  And we do not see the instability on other platforms (to our knowledge).
But on the latest Raspberry Pi OS, every Gen2 DepthAI version we tested has this instability.
The versions tested are below:
1.
depthai==<IP_ADDRESS>+4450dc3a7246f6d80f143c57db3f7f797f677882
segmentation fault after ~2 minutes
2.
depthai==<IP_ADDRESS>+31e14bdf1d2de39e85ab2d4806ad63f28970baf2
    h264Packet = q.get()  # blocking call, will wait until a new data has arrived
RuntimeError: Communication exception - possible device error/misconfiguration. Original message 'Couldn't read data from stream: 'h265' (X_LINK_ERROR)'
3.
depthai==<IP_ADDRESS>+c9a19df719cb668e438d6eafd193cdf60a0d9354
    h264Packet = q.get()  # blocking call, will wait until a new data has arrived
RuntimeError: Communication exception - possible device error/misconfiguration. Original message '[json.exception.parse_error.110] parse error at byte 1: syntax error while parsing MessagePack value: unexpected end of input'
4.
depthai==<IP_ADDRESS>+1adf28f17fc3c5409f8226f309eb7122a7eb24bb
    h264Packet = q.get()  # blocking call, will wait until a new data has arrived
RuntimeError: Communication exception - possible device error/misconfiguration. Original message 'Error while reading data from xlink channel: h265 (X_LINK_ERROR)'
5.
depthai==<IP_ADDRESS>+e9930fcf2bf2f6d81b7c5ba8455e9d2f6a8d8685
    h264Packet = q.get()  # blocking call, will wait until a new data has arrived
RuntimeError: Communication exception - possible device error/misconfiguration. Original message 'Error while reading data from xlink channel: h265 (X_LINK_ERROR)'
6.
depthai==<IP_ADDRESS>+9ad44703a6d25d42d1418cc8660f19a8ed8d5346
    h264Packet = q.get()  # blocking call, will wait until a new data has arrived
RuntimeError: Communication exception - possible device error/misconfiguration. Original message 'Error while reading data from xlink channel: h265 (X_LINK_ERROR)'

And we have found that Gen1 does not suffer from this issue on Raspberry Pi OS.  We are continuing to debug.
Raspberry Pi OS version where we first noticed the problem:
OS version:
VERSION="10 (buster)"
kernel version:
Linux raspberrypi 5.10.17-v7+ #1403 SMP Mon Feb 22 11:29:51 GMT 2021 armv7l GNU/Linux

What's the latest os verion that worked with Depthai? It'll be great to have a link to it for download/install.

Great question @jasonopto .  So I didn't write down what was on my Pi that was working, unfortunately.  So we'll need to test.  But I do know that we tested both 5.4.83 and 5.10.17 and they both have the problem (see here for a great version chart).  I think I was most likely running 5.4.51 (2020-08-20), but I'm checking.  We have logs as to what was flashed.  Will circle back.

I don't know if it can be a useful information @jasonopto, but 04_rgb_encoding.py works perfectly on my RPi4. I'm using the official Raspbian 5.10.9-v7l+ kernel (but after that everything else is Ubuntu 20.04 x86).

@aviogit Thanks for the info. @Luxonis-Brandon's crew shared a prebuilt wheel. It works well now. You can see details on depthai discuss, search for pi zero. I tested multiple examples in depthai, all working.  I also realized how slow Pi Zero is in handling videos.

So we are learning more as we dig in.  We have 2 engineers trying to figure out the crash behavior here.  One is full-time on this and the other wrapping up https://github.com/luxonis/depthai-core/issues/94 while testing.
What we've found so far is that it doesn't crash with non-blocking queue IIRC, which was the default behaviour in gen1 (if we remember correctly).
We were excited that we thought we found an is that was culprit, but it was from the previous PR.  (So that was found/fixed at least.)
As @aviogit mentioned, it definitely something related to the fact that the packets are not consumed in time by the host, on RPI4 is working fine, while RPI3 queues get full.
And yes, @jasonopto 's case it was because we do not yet have Pi Zero wheels prebuilt (which is largely because the thing is so slow/hard to work with, ha, like @jasonopto mentioned - we'd need to figure out some reliable cross or cloud-compile for armv6/PiZero).

I am also facing the same error on Raspberry Pi OS on gen2 API.
Please let me know how to solve this error:
'Error while reading data from xlink channel: (my_nn) (X_LINK_ERROR)'
and I am using Linux raspberry pi 5.10.17
I need some suggestions from you guys:

So should I downgrade from pi 5.10.17, and will it solve the error?
Or should I wait for the new update to come, and how long will it take?
Also, sometimes it crashes (throwing errors), and sometimes it's not crashing at all.
One of the errors I m getting is the device not found even when the device is connected properly.

with dai.Device(pipeline) as device:
RuntimeError: Failed to find device after booting, error message: X_LINK_DEVICE_NOT_FOUND
---- [After running the code, it freeze my Raspberry Pi and gives this error, and also I m getting this error when I run my program first time, when I start my Raspberry Pi, or when I removed connect my OAC-D to Pi]

Thanks for the report and sorry about the issue here @uchihatashi .
So actually a 3rd option could be if you can accomplish what you need from Gen1 API in the meantime.  If you are mainly trying to do say encoding in parallel with single-stage object detection (in 3D space or not) and depth, you can actually probably use our Gen1 API, which is currently seeming rock-stable on Pi.
Could you share a bit more on what you're trying to accomplish?
Thanks, and sorry about the bug/trouble here.  We're still hunting this one.

Hello sir, @Luxonis-Brandon
Thank you for the reply. We are trying to run Human Pose Estimation on multiple threads, and due to this, we can't use Gen1. Is it possible to run it if we downgrade the Pi version from 5.10.17-v7+?

Hi @uchihatashi ,
Sorry about the trouble here.  So I thought we had had a breakthrough this morning, but alas it was something different.  Downgrading might work.  For example I didn't see problems on my older Pi install, but it's a bit random it seems.  As some aren't seeing the issue with the latest Pi OS install.  So it may be in vane.  But it could bear fruit, as I think in my case 5.4.51 was running without a problem the multiple times I tested it (but the possibility exists that I was just getting lucky).
We're still heads down trying to figure out this crash.
Sorry again about the trouble here.
Best,
Brandon

To add here, 5.10.17-v7l+ version of Raspbian OS works well for me on Raspberry Pi 4b - 8gb
So, I think this version might have no issues with depthai as well

Ok sir, @Luxonis-Brandon
I will try to downgrade it and check whether it's running properly or not. I am also thinking of using ubuntu-OS on Pi because I m not getting an error when I run the same code on my laptop (ubuntu v18).
@dhruvsheth-ai sure!!!

Im using Linux raspberrypi 5.10.17-v7l+ on Raspberry Pi 4 8GB and having this problem when I run Gen2 Object Tracking example:
File "test.py", line 92, in <module>     with dai.Device(pipeline) as device: RuntimeError: Failed to find device (ma2480), error message: X_LINK_DEVICE_NOT_FOUND
And when I run depthai_demo.py this error:
`
WARNING: Usb rules not found
Set rules:
echo 'SUBSYSTEM=="usb", ATTRS{idVendor}=="03e7", MODE="0666"' | sudo tee /etc/udev/rules.d/80-movidius.rules
sudo udevadm control --reload-rules && udevadm trigger
Disconnect/connect usb cable on host! `
I have Python 3.7.3.
It works well on my Windows 10 PC.

Hi @diegomarvid ,
Sorry about the delay.  I think this is a separate issue actually.  After you set the USB rules on the pi, did you unplug the USB cable and plug it back in?
This step (the udev rule and unplug/replug) is not needed on Windows.  That's why I ask.
Thoughts?
Thanks,
Brandon

Yes my bad. Didnt know what was usb rules and didnt see it on the docs. I did that and verify that the device was correct with:
lsusb | grep 03e7
It printed Bus 001 Device 006: ID 03e7:2485 Intel Movidius MyriadX
And then I ran the demo, the following error appears:
No calibration file. Using Calibration Defaults. Using depthai module from:  /home/pi/.local/lib/python3.7/site-packages/depthai.cpython-37m-arm-linux-gnueabihf.so Depthai version installed:  <IP_ADDRESS> Compiled mode found: compiled for 14 shaves, 14 cmx_slices and 1 NN_engines XLink initialized. Sending internal device firmware Failed to boot the device: 1.1-ma2480, err code 3 depthai: Error initializing xlink ['metaout', 'previewout'] Available streams: [] device is not initialized Pipeline is not created.
I tried after setting the rules doing this command sudo udevadm control --reload-rules && udevadm trigger and it said need to be root. I was at pi user and in no specific directory using sudo. So instead of doing that I rebooted the Raspberry Pi. I plugged and unplug the camera as well.

We think we figured this one out.  We're testing now and it's looking good.  If anyone else is interested in testing it, see below:
https://github.com/luxonis/depthai-python/actions/runs/850855986
If someone has free rpi3/4 etc. when CI finishes (or build from sources), can you set up for test?
git fetch --all
git checkout origin/rpi_crash_mitigation
cd examples
./install_requirements.py
./04_rgb_encoding.py

So far running for more than 1 hour on rpi3 (although cpp, but shouldn't matter).
It will write a lot to the SD card, so optionally redirect output to /dev/null.

USB transfer is definitely more stable @Luxonis-Brandon; no XLINK crashes yet
FYI the video is unwatchable on the rpi3 using VLC; had to transfer to Windows PC for playback to work
There is a ffmpeg mux "fix your code to set timestamps properly" message but unclear if related to rpi3 playback failure

Sweet, thanks for testing @chris-piekarski !  And thanks for originally finding this bug and reporting as quickly/early as you did.
I'm not sure on the timestamps thing... that's been there for a while.  And yes, I think the Pi often just isn't performant enough to decode/play on the Pi itself.  Not sure if this is a result of something we can improve on our encoding settings, or if it's just that the Pi can't decode this bitrate of video real-time and play it.  Unsure.

Also, ./install_requirements.py might be missing 'sudo apt-get install libatlas-base-dev' package

On this - thanks for reporting.  Will ask internally.

VLC fails to play .h264/.h265 videos but mplayer (or MX Player on Android) can reproduce them. However, for every frame, it spams:

No pts value from demuxer to use for frame!
pts after filters MISSING

Also, it would be a real plus on the Pi to have video playable by Chrome/Firefox because this would allow serving videos via any web server, the ideal configuration for watching captured videos on the field.

Hi @VanDavv - so I used a fresh copy of rpi OS, cloned luxonis/depthai-python, executed install_req script, cloned luxonis/depthai, ran install_req script,  executed demo script and got failure from import cv2. Installed missing package and demo script executed successfully. More than possible I incorrectly assumed the two requirement scripts would cover this package. No big deal, was just an FYI comment.

Thanks for the report.

Fixed in https://github.com/luxonis/depthai-python/releases/tag/v<IP_ADDRESS>


FAS-17, FAS-9

Changes:
Modify get_run_uid method (metadata.py) [FAS-17].
Split fastqheat into separate modules [FAS-9].

As far I can tell, the new version of get_run_uid is expected to return different kinds of data in entirely different data structures based on an argument. Is this the intended behaviour? I think you're also passing the method argument by the wrong name (approach), and get_run_uid is missing some return statements (i.e. right now it always returns None).

@asuragan13 I agree with Dima, the code as it is now in branch temp won't work. I would suggest removing the function get_run_uid() and just calling separately _get_run_srp(), _get_run_ena(), _get_run_sra(), _get_run_check()


AAD 2.16.2 Add a link under Resources to Microsoft Documentation on Configuring PIM Alerts

💡 Summary
This is a recommendation from a public GitHub comment (#1)
Implementation notes

Add a bullet to the AAD 2.16.2 (numbers will change per new baselining versioning) under Resources with the following link:
https://learn.microsoft.com/en-us/azure/active-directory/privileged-identity-management/pim-how-to-configure-security-alerts
This will provide users with insights into how to configure PIM alerts

Acceptance criteria
How do we know when this work is done?

[ ] New link is tested and works when accessed through the baselines

Updated 16.2 to include the reference. (see: https://github.com/cisagov/ScubaGear/blob/203-adjudicate-aad-comments/baselines/aad.md#msaad162v1)


docs: Document handling noop migrations.

Inspired by #23377. We document a convention maneuver to avoid adding
noop migrations, which involves modifying the latest migration related
to the fields in question.

Screenshots and screen captures:
Self-review checklist

[x] Self-reviewed the changes for clarity and maintainability
(variable names, code reuse, readability, etc.).

Communicate decisions, questions, and potential concerns.

[x] Explains differences from previous plans (e.g., issue description).
[ ] Highlights technical choices and bugs encountered.
[ ] Calls out remaining decisions and concerns.
[ ] Automated tests verify logic where appropriate.

Individual commits are ready for review (see commit discipline).

[x] Each commit is a coherent idea.
[x] Commit message(s) explain reasoning and motivation for changes.

Completed manual review and testing of the following:

[ ] Visual appearance of the changes.
[ ] Responsiveness and internationalization.
[ ] Strings and tooltips.
[ ] End-to-end functionality of buttons, interactions and flows.
[ ] Corner cases, error conditions, and easily imagined bugs.

Merged, thanks @PIG208!


Dutch translation updated.

Updated the Dutch (nl_NL.lang) translation file for the new spawn controls.
Also fixed some grammar mistakes and compared it more thoroughly with the English (en_US.lang) translation file.

Nice, thank you!

Ha, thank you for making such a small but very great mod ^^


Coverage cleanup

Stop running daily service tests in the main repo (since they're now handled over here
Add coverage and separate daily tests badges with links to coveralls
Update our coverage ignores

Move scripts, which do not need coverage, into scripts/

Split out coverage test for npm package
Remove spurious env var

Ref: #1584 #2314

Warnings

:warning:
This PR modified `package.json`, but not `package-lock.json` - Perhaps you need to run `npm install`?

Messages

:book:
:sparkles: Thanks for your contribution to Shields, @paulmelnikow!

:book:
Thanks for contributing to our documentation. We :heart: our [documentarians](http://www.writethedocs.org/)!

  Generated by :no_entry_sign: dangerJS


Changed directory of license

As LICENSE.txt was in another directory, Github was not showing up the license when entered in the repository. This will confuse open-source contributors that this is a open-source library or free library. That is why I think license should be in root directory although mentioned in the readme.

Sure, but fix the link address and copy, don't move the license.

should I create a symbolic link to root?

Just a copy.

do you mean I should make a copy in root and change the link, but not to move that one?

@davisking
do I need any other changes?


vim 7.4 support

I noticed upon upgrading my vim to 7.4, you can have both number and relativenumber enabled at the same time, which results in my display looking like this:

so in this PR, I've simply changed the EnableRelativeNumbers function to
set nonumber
set relativenumber

Maybe there was a typo in this function initially, because it used to have
set number
set relativenumber

If the behavior shown in my screenshot is desired, then please disregard this PR - but I thought it was a little bit jarring. Maybe there could be a config option added that enables the user to choose whether they want mixed numbering or not when viewing relative numbers.

Please disregard this PR - I did not check earlier, but I see there are multiple PRs addressing this issue.


fix(hooks): generate other https methods

Before this patch, only GET queries and POST mutations were created.
We now generate mutation hooks for PUT, PATCH, and DELETE
This patch also fixes an issue where if prettier was installed, it would format the generated service files, changing the quotes around and breaking our checks to determine the HTTP method type.
Example before prettier: 'GET'
Example after prettier:  "GET"
The prettier style of writing functionality was added by the underlying service file generator @hey-api/openapi-ts
I updated the checks to not care about quotes.
Added prettier as a dependency of the example app so that prettier will now run on the generated service files to act as a test for that feature.
fixes: #70
fixes: #75

Released a test version with this patch under: @seriouslag/openapi-react-query-codegen@next


Prefer std::atomic over MemoryBarrier

In port/atomic_pointer.h, the preference is to use MemoryBarrier if available, and only fall back to std::atomic if it isn't available.
I believe it would be preferable to use std::atomic, as it may allow better performance, and integrates without changes into ThreadSanitizer.
This PR changes the preference to std::atomic if available.

I signed it!

tACK
Compiled and confirmed there were no errors. All tests passed, and the benchmarks (static and shared) seemed reasonable at a glance. Didn't benchmark vis-à-vis my fix (#422). sipa's fix, after thinking about it, seems preferable to mine, although I'll leave mine open in case the team thinks otherwise.

Thank you very much for your contribution!
The comment at the top of atomic-pointer.h states "Also, some  implementations are much slower than a memory-barrier based implementation (~16ns for  based acquire-load vs. ~1ns for a barrier based acquire-load)."
While I'm not sure this toolchain issue is relevant anymore, we'd need to do some testing to confirm. Do you happen to have access to the platforms that have MemoryBarrier implementations? If it turns out that std::atomic implementations in modern toolchains are good enough, we can remove the MemoryBarrier code altogether, because we'll require C++11 soon.

@googlebot rescan

@googlebot rescan

We removed AtomicPointer a while back. The codebase uses std::atomic directly now.


about pose control

Hi, I saw that on the home page of GitHub, you posted the results about pose control, but I didn’t see this result in the paper. I would like to ask how you implemented this part specifically, and how I should test it.
Thank you very much !

Hi, this a further application that we will introduce in the new version of paper,  in which setting we follow DISCO[1] that uses a novel pose controller.
[1]disco: disentangled control for referring human dance generation in real world

OK, Thanks for your reply.  Looking forward to the new version of the paper


Add the device features page

Problem with others bottoms in list devices, because does not work edit name, terminal and delete not function.


Space before/around exclamation operator

How to remove space before/around exclamation operator?!

Any luck with this? I would love to use uncrustify with swift, but it ads spaces around the ! and ? operators.

For ? there's a solution but not for !.

I'm sorry but it's not an issue related to the plugin, please take a look at the documentation of the parsers themselves.


Add Accessor methods that overwrite DataFrame methods

Adds methods to the Accessor that will be useful for users--like rename and drop and pop that might otherwise produce invalid schemas.
(Worth noting that for something like drop, a user might still want to be able to access the Pandas drop through the Woodwork accessor so they can drop rows but keep the schema, so it might not be ideal to overwrite the Pandas call wit hdf.ww.drop)
   def rename(self, columns):
        new_schema = self._datatable.rename(columns)
        new_df = self._dataframe.rename(columns)

        new_df.ww.init(new_schema)

        return new_df

Closing after dividing into separate issues - #614 , #615 , #616


PyFerret contour labels spill outside of plot

Reported by andrew wittenberg on 1 Dec 2015 00:55 UTC
In vanilla Ferret the contour labels are clipped at the edge of the plot -- I think according to the value of the "PPL WINDOW" setting.
But in PyFerret with a font other than Hershey, the contour labels can spill outside of the plot:
 	NOAA/PMEL TMAP
 	FERRET v6.95 (PyFerret 1.2)
 	Linux 2.6.32-504.23.4.el6.x86_64 - 10/07/15
 	30-Nov-15 19:49

yes? set text/font=arial; use coads_climatology
yes? contour/l=1/lev=20/hl=150:280/vl=-20:20 sst*100

Migrated-From: http://dunkel.pmel.noaa.gov/trac/ferret/ticket/2328

Comment by ansley.b.manke on 1 Dec 2015 17:29 UTC
ok, I'd worked with of this kind of case, but clearly not all. PPLUS just doesn't draw outside the lines but in PyFerret we're using nice fonts for these labels so it needs to be handled in separate logic.

Comment by ansley.b.manke on 9 Dec 2015 18:25 UTC
This is fixed.  I compute the location of the end of the label and if it lies outside the plot box, I don't draw the label.
When classic-Ferret draws this plot, it makes the label but just displays the portion of it that lies in the plot  it. I don't think this responds to the PPL WINDOW command. In PyFerret I dont' see a good way to do that, and it's not necessarily a good thing to have partial label strings anyway.

Comment by andrew.wittenberg on 13 Feb 2016 20:23 UTC
Not worth reopening the ticket, but just to mention a tiny loose end.
When the label isn't plotted because it'd spill outside the plot bounds, the gap that was made for it in the contour remains -- instead of going all the way to the plot bounds as it should.  See e.g. the little blue extension of the red line in the following, intersecting the bottom right edge of the plot near 105W:
 	NOAA/PMEL TMAP
 	FERRET v6.97 (PyFerret 1.3 beta/opt)
 	Linux 2.6.32-573.1.1.el6.x86_64 - 02/13/16
 	13-Feb-16 15:09

yes? set text/font=arial; use coads_climatology
yes? contour/l=1/lev=20/hl=150:280/vl=-20:20/si=1000/col=4 sst*100
yes? contour/l=1/lev/ov/col=2 sst*100

No big deal, but would it be hard to fix?  (Maybe, since vanilla Ferret applies the label but clips it at the plot edges; so the logic might be down deep in PPLUS.)

Comment by andrew.wittenberg on 13 Feb 2016 20:41 UTC
Here are a couple of larger remaining bugs:
 	NOAA/PMEL TMAP
 	FERRET v6.97 (PyFerret 1.3 beta/opt)
 	Linux 2.6.32-573.1.1.el6.x86_64 - 02/13/16
 	13-Feb-16 15:31

yes? use coads_climatology; set reg/l=1
yes? set text/font=arial; contour/lev=20/hl=150:280/vl=-20:20 sst*100

Fine so far, apart from the small gap mentioned in comment:3.  But now:
yes? set text/font=hershey; contour/lev=20/hl=150:280/vl=-20:20 sst*100

All the contour labels disappear!  Seems like something is not getting reset.  And:
yes? set text/font=times; contour/lev=20/hl=150:280/vl=-20:20 sst*100

Now the contours labels are back -- but unlike all the other plot labels (which are now in Times font as requested), the contour labels are in Arial font!

Comment by ansley.b.manke on 16 Feb 2016 17:24 UTC
The partial was down deep in PPLUS.  The contouring code stops drawing a line, makes a label, and continues.  In classic Ferret, this meant just going and drawing some lines that make the label text, and if that happened to go outside the boundary, the lines would not be drawn.  Because line drawing stops at the boundary.
In PyFerret, we instead stop drawing and make the label, at the chosen size and at an angle to run along the contour line.
So the PyFerret quick and dirty fix for this was simply to check whether the PyFerret put-text in the chosen font would extend outside the box, and if so don't make the label.  The correct fix will be to make that check, and if the text would go outside the box, instead continue drawing the contour line.

Attachment from andrew.wittenberg on 1 Dec 2015 00:55 UTC
The resulting plot.
REPLACE THIS TEXT WITH UPLOADED FILE ./attachments/TRAC_2328_GIT_1600/plot.png

Attachment from ansley.b.manke on 9 Dec 2015 18:18 UTC
REPLACE THIS TEXT WITH UPLOADED FILE ./attachments/TRAC_2328_GIT_1600/fix2328.png

Attachment from andrew.wittenberg on 13 Feb 2016 20:42 UTC
REPLACE THIS TEXT WITH UPLOADED FILE ./attachments/TRAC_2328_GIT_1600/plot2.png

Attachment from andrew.wittenberg on 13 Feb 2016 20:43 UTC
REPLACE THIS TEXT WITH UPLOADED FILE ./attachments/TRAC_2328_GIT_1600/plot3.png


Add support for Combine/SwiftUI

This is currently missing API documentation, which I plan to write after finishing up the first draft of the release post.
The public API here is:

function
description

RealmCollection.objectWillChange
A publisher which publishes Void each time the collection changes.

RealmCollection.publisher
A publisher which publishes the collection each time it changes.

RealmCollection.changesetPublisher
A publisher which publishes a RealmCollectionChangeset each time the collection changes.

Object.objectWillChange
A publisher which publishes Void each time the collection changes.

publisher(Object)
A publisher which publishes the object each time it changes.

changesetPublisher(Object)
A publisher which publishes an ObjectChange each time the object changes.

Publisher.freeze()
A transform operator which is conceptually equivalent to .map { $0.freeze() } but also support object and collection changesets.

Publisher.threadSafeReference()
A transform operator which allows calling receive(on:) on a publishers which outputs thread-confined objects.

publisher(Object) and changesetPublisher(Object) free functions rather than properties due to a shortcoming of Swift's type system: it's impossible to have a function/property which returns Foo<Self> when subclassing is involved. Defining var publisher: Publishers.Value<Self> on Object results in subclasses actually having var publisher: Publishers.Value<Object> and not the subclass type.
Most of the code here ends up being related to making subscribe(on:) and receive(on:) work properly.
The SwiftUI support mostly comes in the form of a small sample app which shows that things work without anything explicit. The main SwiftUI-specific thing is the objectWillChange property (and supporting WillChange publisher) to support @ObservedObject. There is also a ObjectKeyIdentifable protocol which users can declare their object type as conforming to in order to get Identifiable conformance. Since this defines a property named id I don't think it's something we want to do automatically on Object.

The API docs are now complete and could use a look over them.

I'll take a look today.

Is there a publisher for observing any change made to a Realm? Currently, I have to call realm.observe and invoke the view update myself in my SwiftUI app.


Boxstring

Boxstring is not obvious, would be good if the substance box ls echoed a boxstring after the hash

I'm not sure I follow this issue. At what stage would it be useful to output the list of boxes?
After creation?


user/issues doesn't work when using OAuth

Hello,
Locally I've added an additional API call on Github.User called .issues() (when authenticated via access token in OAuth) which does this:
// Authenticated via
/*
GH = new Github({
  token: validToken,
  auth: 'oauth'
});
*/
Github.User = function() {
  //...
  this.issues = function(cb) {
    _request("GET", '/user/issues', {
      filter: 'subscribed',
      state: 'all',
      sort: 'updated',
      direction: 'desc'
    }, function(err, res) {
      cb(err, res);
    }, true);
  };
  // ...
}

Based on the GitHub API documentation here, shouldn't this work?
This is the error I get back:
{
  "error": 404,
  "path": "/user/issues",
  "request": {
    "onabort": null,
    "onerror": null,
    "onload": null,
    "onloadend": null,
    "onloadstart": null,
    "onprogress": null,
    "ontimeout": null,
    "readyState": 4,
    "response": "{\n  \"message\": \"Not Found\",\n  \"documentation_url\": \"https://developer.github.com/v3\"\n}\n",
    "responseText": "{\n  \"message\": \"Not Found\",\n  \"documentation_url\": \"https://developer.github.com/v3\"\n}\n",
    "responseType": "",
    "responseURL": "https://api.github.com/user/issues?1432435698158",
    "responseXML": null,
    "status": 404,
    "statusText": "Not Found",
    "timeout": 0,
    "upload": {
      "onabort": null,
      "onerror": null,
      "onload": null,
      "onloadend": null,
      "onloadstart": null,
      "onprogress": null,
      "ontimeout": null
    },
    "withCredentials": false
  }
}

I just tried adding your code to a new test in aendrew/github#user_issues and it works perfectly fine when using basic auth, but I can't seem to return any of my issues when using Oauth, for some reason. Can't seem to reproduce the error you have, though.
Will leave issue open pending further investigation. In the meantime, @rclai — would you consider expanding on your code a bit and writing a PR? user.issues seems like something this library should have... Thanks!

The commit was literally the same code I used to get the issues. But what error were you getting?
Could this be an issue in the endpoint? My Github application simply has "public information" permissions.

Also, I'm running this on localhost, I don't know if that might have anything to do with it?

@rclai I'm not getting any errors; if I use OAuth, I just get back an empty array. It's not localhost, I was running the tests from there myself.
If you fetch my branch and run the tests yourself locally (cd test && node test.user.js), does it work?

Let me try.

I also got an empty array of issues too in basic auth. However, when I switched to oauth with my user token, I got a 404 on it (among other errors with the other tests).

Hello, :smile: just wondering how this issue is going? Is there any more information you guys need?

After a bit of investigation, it's working as intended for me — try changing it from /user/issues to just /issues. Try the following:
curl -H "Authorization: token <YOURTOKENHERE>" https://api.github.com/user/issues
curl -H "Authorization: token <YOURTOKENHERE>" https://api.github.com/issues
The former returns an empty array for me, the latter all the issues I'm currently subscribed to. TBH I have no idea what the difference between those two endpoints is.
See: https://developer.github.com/v3/issues/#list-issues

Update: I emailed GitHub about that and they got back to me with the following:

Hi Ændrew,

I believe the confusion here may be related to the parameters available on those endpoints:
https://developer.github.com/v3/issues/#parameters
Do you see what you expect if you use the following URL instead?
https://api.github.com/user/issues?filter=all
The default "filter" value is "assigned", and you may not be assigned to any issues in your repositories.
Let me know if that's still not clear.

For user/issues?

Yep, try it yourself:
curl -H "Authorization: token <YOURTOKENHERE>" https://api.github.com/user/issues\?filter\=all

Okay, but what happened to the subscribed filter option? I have some subscribed issues.

Hmm, okay, that's a valid point. Okay, will take another look.
In the meantime, could you extend the code you've added and submit it as a PR? I'd like to ultimately add the /user/issues API and doing so will make it easier for me to support. Thanks!

Okay will do so tonight.

Well, since the roll out of the new Github header, I've since dropped the project that I was working on that relied on this /issues/ endpoint. Took them long enough.. Geez..


Error when tsconfig paths object values aren't arrays.

TypeScript Version:  2.6.0-dev.20171017
Code
// tsconfig.json
{
  "compilerOptions": {
    "baseUrl": ".",
    "paths": {
      "imports/*": "./*"
    }
  }
}
// index.ts
import * as Foo from 'imports/whatever'

Expected behavior:
ERROR: paths object values must be arrays.
Actual behavior:
TS will use ".", "/" and "*" as search paths.

We are correctelly reproting an error now:
c:\test\19272>type tsconfig.json                                                                                {                                                                                "compilerOptions": {                                                                                "baseUrl": ".",                                                                                "paths": {                                                                                "imports/*": "./*"                                                                                }                                                                                }                                                                                }                                                                                c:\test\19272>tsc --v                                                                                Version 2.6.0-dev.20171017                                                                                c:\test\19272>tsc                                                                                tsconfig.json(5,20): error TS5063: Substitutions for pattern 'imports/*' should be an array.

what am i missing?

I'm up too late... sorry about that!


What does the model.meta store?

Hello, these days we are trying to change your code to make it run on 4 gpus. We have finished the part of training, but there are some problems while vilidating. After using 4 gpus to do the trianing, model.meta stores the information about gpus,for example
these are some information in model.meta, you can see it stores which tower uses which gpu
wtower_0/gradients/tower_0/InceptionResnetV1/Repeat_2/block8_2/Branch_0/Conv2d_1x1/convolution_grad/Conv2DBackpropFilterConv2DBackpropFilter0tower_0/InceptionResnetV1/Repeat_2/block8_1/Relujtower_0/gradients/tower_0/InceptionResnetV1/Repeat_2/block8_2/Branch_0/Conv2d_1x1/convolution_grad/Shape_1tower_0/gradients/AddN_7/device:GPU:0*(
So when we use the validate_on_lfw.py, there is an erroe that can't find gpu.
I want to know what does the model.meta store. I know that we use saver.save(sess,checkpoint_path,global_step=step) to store sess, but I don't know which variable in session stores the information about device. Is there anyway to ignore the device information when store or validate?
We can send our changed code about training to you if neccessary.
I hope you can understand my problems.
Sorry for my poor English.
Thanks so much.

What's more, in validate_on_lfw.py, you don't reload the inception_resnet_v1.py, so does model.meta store the information about the network?
Thanks.

Hi @BingoTiger ,
The metagraph file contains the computational graph (without any parameter values). Some more details can be found here. I think the problem you have is addressed here.
Import a graph with preset devices.
Sometimes an exported meta graph is from a training environment that the importer doesn't have. For example, the model might have been trained on GPUs, or in a distributed environment with replicas. When importing such models, it's useful to be able to clear the device settings in the graph so that we can run it on locally available devices. This can be achieved by calling import_meta_graph with the clear_devices option set to True.
with tf.Session() as sess:
  new_saver = tf.train.import_meta_graph('my-save-dir/my-model-10000.meta',
      clear_devices=True)
  new_saver.restore(sess, 'my-save-dir/my-model-10000')
  ...

ok, I will read these links, thanks


Evaluate regular-table web component and switch to using its virtual data model for large datasets

Regular table web component and virtual data model docs:
https://github.com/jpmorganchase/regular-table#setdatalistener-virtual-data-model
Examples: https://github.com/jpmorganchase/regular-table#examples

Regular table and its primitive virtual data model look nice, but the rest will require a lot of custom coding to support the features we target.
We'll provide bull-blown Perspective View option instead (#65).


[Cordova] Use the correct app name for shared mode

Use the separate size range to check shared mode app size

Impacted tests(approved): new 0, update 3, delete 0
Unit test platform: Crosswalk Project for Android 18.48.477.11
Unit test result summary: pass 3, fail 0, block 0
https://crosswalk-project.org/jira/browse/XWALK-6433

LGTM


FBrf0249161 - neuroendocrine connectome

from novel_anat list

This paper consolidates Siegmund and Korge (2001) - FBrf0134726 nomenclature with expressed peptides, which will allow merging of several terms for larval peptidergic neurons that project to the ring gland. See Fig 2 sup 1 in FBrf0249161 for details.


Refactor core to more command-based pattern

Current core functionality of the extension is attached as direct handlers of the keymaster events. This causes me problems when debugging/fiddling around with the extension. For example it is not easy to invoke "navigate to the next result" command directly from the developer console.
I would like to refactor the main script of the extension to be more "object" oriented. I think it will provide many benefits aside from what I mentioned. I imagine the core somewhat like:
const extension = {
  options: { },

  init: function() {
    // ...
  },

  commands: {
    focusNextResult: function() {
      // ...
    },
    focusPreviousResult: function() {
      // ...
    },
  }
};

extension.init();

What do you think about this? I would implement that but I want to discuss it first.

I think it's a good idea! feel free to send a PR.

@mancze Great indeed! My plus vote to proceed to a PR if you have the time!

I want just to confirm that I'm still working on this and I'm done with the major part. Now just some final polishing and it will be ready. I must admit I have maybe got I little more involved than needed and the code-base now looks pretty different. Yet I hope it is toward better code organization and reuse.


How to get decent results with SDXL

Seems to be quite a tricky task, but HiDiffusion eclipsed every solution I found for 1-step generating high-res pictures.
In my experience the ca_start_time and end time makes things extremely messy, and somehow it ends up generating a lot of patterns (cant generate a person with a single color background, or a clean cityscape).
Adding "trash" or busyness to the composition solves this or e.g.: prompting for an autumn forest. But I found out we can get rid of this by lowering the ca_, and I managed to generate some very good backgrounds with the following settings:

I mainly use 2048x2048, or fractions of it, for portraits I would go with 1536x2048. Should be generally compatible with every model, I mainly used DreamShaper lightning.
Interestingly, laying people will lead to the same type of body horror as SD3. It also has a problem with prompt following, so only the simple prompts and compositions will work.
I went over the original hidiffusion paper, and I'm pretty sure the examples were cherry-picked. I'm also sure my settings can be improved, so please try it and experiment with it. If someone is up for it, a combination can be created that generates all the possible settings and sorts out the results based on the aesthetic score.
Any ideas for improvements?

The above settings worked a charm for me up to until recently, which I guess is due to an update. Popping an old image into ComfyUI now gives me total different results and not for the better.

In the attached images the freaky male figure on the hill is before the update and the other attachment is nothing as remotely close.
Any suggestions as to what is causing this mayor change suddenly?

Any suggestions as to what is causing this mayor change suddenly?

i haven't made any changes for about 2 weeks. without knowing what version you updated from, it's hard to help (actually, i don't even know if you're using the latest version currently either).
i've been fairly good about documenting user visible changes in the changelog: https://github.com/blepping/comfyui_jankhidiffusion/blob/main/changelog.md
you might not have generated what you want, but your images both look fine from a quality standpoint. if you updated other stuff at the same time, it's possible something just changed the seed, it doesn't look like a problem with jankhidiffusion parameters.


FAT2-75 - Update View to show Training Provider content box.

Note: this is missing a style that needs adding to CDN (the grey background box for the content).

New PR created


Working with Windows

Great tool! really well done btw.
Is there a way to manage/disable notifications when I have this open in terminal on Windows?
Many thanks

This is fixed, figured it works fine in Powershell. I was using Bash instead.


WAL and Index checksums are broken

There is mistake in MapDB code. Index checksum and WAL checksum use | operator instead of +. As result checksum value converges to zero and renders checksum useless.
Solution is to change storage format. But I am not really sure how to do it, perhaps MapDB 2.0 should be started

Not going to reenable checksums in 1.0.7


Align legend wording with custom-select dropdown

This harmonizes this currently diverging wording:

Couldn't find the source for zurückgestellt in custom-select (An  external, maybe?), so I went this way. I'd be happy to switch it around if you let me know where.

Thank you for raising this issue und creating a PR.
IMHO verschoben would be the nicer term here. I think the problem is that deferrred is also used in froide the translation. The fix should be to use contextual markers