[Performance] sort query improvement for sequential ordered data [e.g. timestamp field sort in log data]

Problem statement
Currently in TopFieldCollector, we have PriorityQueue (min heap binary implemenation) to find top K elements in asc or desc order. Whenever we find newly iterated document competitive, we insert that in PriorityQueue and if size is full, we remove min competitive document from PriorityQueue and replace with newly competitive document. Time complexity for this scenatio is O(nlog(K)) in worst case where n = current number of competitive documents.
Now what if n is pretty high and every document we try to insert in PriorityQueue take exact O(log(K)) ? We will end up spending lot of time in that case within PriorityQueue heapification process itself.
We have skipping logic to reduce iterator cost 'n' whenever we update PriorityQueue, but that doesnt work well in some scenario.
For example,
for time series based logs/metric data where sort query is performed on timestamp field. This field will be always ever increasing (nearly sorted) field and it has very high cardinality as well ! Triggering desc order queries wont optimize much with skipping logic as well PriorityQueue will always result O(log(K)) for almost all heapification insertion because incming documents are coming in increasing order.
Like imagine below scenario where we are inserting logical timestamp in incrwasing order 1, 2, 3, 4, .... and insertion of 16 will result in worst case to heapify 16 till leaf node, same is true for 17, 18, 19,......  (Imagine we need top 15 hit so PQ size is 15).

Here in above scenario, skipping logic doesnt work too to find top K in desc order. But we can do better on priorityqueue side since we know incoming documents are in asc order (nearly sorted) so can skip heapifying them.
Solution proposed
The crux of the solution proposed is, We dont need to heapify elements if the incoming order is sorted as per desired order.  The idea here is to keep incoming competitive documents in temporary circular array before inserting them into priorityqueue and trigger heapify.
Algorithm

Create circular array of same size as priority queue. We shoud be able  add element to last and remove element from first in this circular array implementation.
If incoming document qualifies after TopFieldCollector.checkThreshold(), keep inserting them in circular array until order breaks, i.e. if next document is smaller for descending order traveral or vice versa for ascending order. Remove first element from circular array if queue is full while inserting.
Once order breaks, insert entire circular array into priority queue and empty the circular array.

With this, we will able to skip millions of hits from going through heapification process.
POC : POC code
Implemented above POC for reference with LinkedList instead circular array. Also need some additional stuff to handle cases like duplicate element where docid is given preference (But those should be minor changes).
Caveat of this implementation
Above proposed solution works pretty well for ever increasing or ever decreasing ordered fields like time series based data.  But this could be additional overhead if data is completely random. This will incur additional comparison to add element in circular array first and then inserting to actual heap.
We have two ways to implement this,

Have this implementation by default for all types of BKD based indexed field.
Enable this implementation behind boolean flag, and it can be set true/false at collector level similar to what we have for PointBasedOptimization flag.

The approach 2 sounds very safe, but it results on more configuration overhead for users.
The approach 1 can introduce overhead, but with the random data the skipping logic based on BKD points works pretty well and insertion on priority queue itself wont be much and hence we dont see much overhead. I have tested this with 13 million documents randomly on a numeric field (long) and with solution 1, we didnt see any regression in latency since skipping logic skipped many hits already.
We dont have benchmark for numeric sort in Lucene itself, but I did indexed LongPoint in random order with 13 million points/documents. I see similar latency for sort 140 ms while with this additional circular queue it is 147 ms on r6g.2xlarge ec2 instances. (for finding desc order top 1000)
Suggestions from community
I would like to hear suggestion thoughts from community for above proposed change and better way to implement this. Specially time series based desc order usecase is pretty widely used, this can be covering larger pie for our users to get more optimized sort queries on such workload.

Lazily heapifying sounds interesting, and thanks for sharing performance numbers when data occurs in random order. Do you also have performance numbers for the case when the index sort is the opposite order compared to the query sort? I'm curious how much this optimization can save in that case since this is what you're trying to optimize.

We dont have benchmark for numeric sort in Lucene itself

Did you look at this task on nightly benchmarks? http://people.apache.org/~mikemccand/lucenebench/TermDTSort.html
You might also be interested in checking out this paper where Tencent describes optimizations that they made for a similar problem in section 4.5.2: they configure an index sort by ascending timestamp on their data, but still want to be able to perform both queries by ascending timestamp and descending timestamp. To handle the case when the index sort and the query sort are opposite, they query on exponentially growing windows of documents that match the end of the doc ID space.

@jpountz for looking at this.

Lazily heapifying sounds interesting, and thanks for sharing performance numbers when data occurs in random order. Do you also have performance numbers for the case when the index sort is the opposite order compared to the query sort? I'm curious how much this optimization can save in that case since this is what you're trying to optimize.

For this, I have inserted 36 million documents with below schema, keeping @timestamp long field in asc order almost.
{
  "@timestamp": 898459201,
  "clientip": "<IP_ADDRESS>",
  "request": "GET /english/index.html HTTP/1.0",
  "status": 304,
  "size": 0
}

Below were the results, units are in ms, when I query top(K) in descending order. where k = 5, 100, 1000....
before my changes,
top(K)  | pq time | total time |
-- | -- | -- | --
5 hits | 4 | 58 |
100 hits | 70 | 130 |
1000 hits | 95 | 197 |
after my changes,
top(K)  | pq time | total time |
-- | -- | -- | --
5 hits | 0 | 47 |
100 hits | 1 | 59 |
1000 hits | 2 | 101 |
The higher the value of k the higher heapifycation time is going to take.

You might also be interested in checking out this paper where Tencent describes optimizations that they made for a similar problem in section 4.5.2: they configure an index sort by ascending timestamp on their data, but still want to be able to perform both queries by ascending timestamp and descending timestamp. To handle the case when the index sort and the query sort are opposite, they query on exponentially growing windows of documents that match the end of the doc ID space.

Yeah, I have read this paper :) The main thing which I kind of felt bottleneck there is they use index sort in timestamp field which leads higher indexing latencies. That's a trade off there.
I like our current implementation without index sort and use BKD points to skip non-competitive hits.
And if we add this Leazy heapifycation as proposed here, that will give good advantage on current implementation itself.

I have updated original issue description with performance gain with this optimization.

Thinking a bit more about this optimization, I wonder if it would still work well under concurrent indexing. If I understand the optimization correctly, it relies on the fact that the n-th collected document would generally have a more competitive value than the (n-k)-th collected document to keep inserting into the circular buffer. But this wouldn't be true, e.g. under concurrent indexing if flushing segments that have (k+1) docs or more?
For instance, assume two indexing threads that index 10 documents each between two consecutive refreshes. The first segment could have timestamps 0, 2, 4, ..., 18 and the second segment could have timestamps 1, 3, 5, ..., 19. Then when they get merged, this would create a segment whose timestamps would be 0, 2, 4, ..., 18, 1, 3, 5, ..., 19. Now if you collect the top-5 hits by descending timestamp, the optimization would automatically disable itself when it has timestamps [10, 12, 14, 16, 18] in the queue and sees timestamp 1, since 1 < 10?

Thinking a bit more about this optimization, I wonder if it would still work well under concurrent indexing. If I understand the optimization correctly, it relies on the fact that the n-th collected document would generally have a more competitive value than the (n-k)-th collected document to keep inserting into the circular buffer. But this wouldn't be true, e.g. under concurrent indexing if flushing segments that have (k+1) docs or more?
For instance, assume two indexing threads that index 10 documents each between two consecutive refreshes. The first segment could have timestamps 0, 2, 4, ..., 18 and the second segment could have timestamps 1, 3, 5, ..., 19. Then when they get merged, this would create a segment whose timestamps would be 0, 2, 4, ..., 18, 1, 3, 5, ..., 19. Now if you collect the top-5 hits by descending timestamp, the optimization would automatically disable itself when it has timestamps [10, 12, 14, 16, 18] in the queue and sees timestamp 1, since 1 < 10?

Yes, this wont optimize scenario where concurrent flush is invoked with very less document say 10 documents per flush. Reading at this article concurrent flush (it might be old article and not the latest detail on concurrent flushing, and I hope you are talking about this as concurrent indexing), it looks like a single flish would still contain 1000s of document to be flushed if we talk about millions.
This optimization would still work very well if this number of document per single flush is higher and the top(k) is smaller.
i.e If single flush is 1000 and if we need top(100) in descending order, we will still able to skip 900 documents from going through heapifycation process.

For instance, assume two indexing threads that index 10 documents each between two consecutive refreshes. The first segment could have timestamps 0, 2, 4, ..., 18 and the second segment could have timestamps 1, 3, 5, ..., 19. Then when they get merged, this would create a segment whose timestamps would be 0, 2, 4, ..., 18, 1, 3, 5, ..., 19. Now if you collect the top-5 hits by descending timestamp, the optimization would automatically disable itself when it has timestamps [10, 12, 14, 16, 18] in the queue and sees timestamp 1, since 1 < 10?

Like in the example you have given, lets modify it slightly like below,
assume two indexing threads that index 100 documents each between two consecutive refreshes. The first segment could have timestamps 0, 2, 4, ..., 198 and the second segment could have timestamps 1, 3, 5, ..., 190. Then when they get merged, this would create a segment whose timestamps would be 0, 2, 4, ..., 198, 1, 3, 5, ..., 197. Now if you collect the top-5 hits by descending timestamp
In this case,

once we have 0,2,4,6,8 in the priority queue, 10 will be insterted in circular array, similarly 12, 14, 16 & 18. Those wont go through heapifycation as we are delaying it.
Now 20 comes, we know order is still maintained, so we will insert 20 in circular array and remove 12 (12 is completely removed, neither it goes to priority queue). Same thing will happen for 22, 24,, ....198.
At this stage, we are left with 0,2,4,6,8 in priority queue & 192,194,196,198 in circular array.
Now 1 comes, and it breaks the sequence, so we will insert 192,194,196,198 in the priority queue and since priority queue size is 5, it will remove 0,2,4,6,8.  1 will be only present in circular array.
3, 5, 7, 9 comes and those will be instered in circular array since order is intact. (Those wont pass checkThreshold() but lets assume checkThreshold() is not there.)
11 comes and it will be insterted in circular array and and 5 will be removed. Same thing will keep going until we have 191, 193, 195, 197, 199 in curcular array.
We are done now, we need to empty circular array and insert remaining 5 element in priority queue.

So we ended up skipping 190 hit going through heapification process out of 200.
Just for explanation I didnt take skipping logic in consideration else in step 4, we will have all the hits from 1 to 189 would be non-comprtitive marked by BKD point based competitive.
Thank you for reading this long explanation and I hope this makes clarity to your doubt.
I know it might not look like a very clean solution but desc sort order on timestamp field, specialy for logs/metrics scenario are very common and it gives sizable improvement to those queries.

@gashutos - Slightly orthogonal to the proposal. Given that the optimization is primarily based on the order of the documents in the segment, would it makes sense to reverse the problem. Can it be sorted and stored (based on the input from the user), while retrieval, we should be able to skip the documents without heapify (or read in reverse order) as the order is guaranteed now.
What do you think?

@backslasht The overhead of Index Sort is very high. I ingested above 36 million documents with/without @timestamp indexsort and different is minimum 20% plus. Refer below numbers.
Without Index sort on @timestamp
|                                                 Min Throughput | index-append |   182029 | docs/s |
|                                                Mean Throughput | index-append |   197051 | docs/s |
|                                              Median Throughput | index-append |   195665 | docs/s |
|                                                 Max Throughput | index-append |   210468 | docs/s |
|                                        50th percentile latency | index-append |  165.423 |     ms |
|                                        90th percentile latency | index-append |  231.446 |     ms |
|                                        99th percentile latency | index-append |  908.578 |     ms |
|                                      99.9th percentile latency | index-append |  8934.86 |     ms |
|                                     99.99th percentile latency | index-append |  10348.3 |     ms |
|                                       100th percentile latency | index-append |  10806.6 |     ms |

With index sort on @timestamp on ascending order.
|                                                 Min Throughput | index-append |   141237 | docs/s |
|                                                Mean Throughput | index-append |   149861 | docs/s |
|                                              Median Throughput | index-append |   146907 | docs/s |
|                                                 Max Throughput | index-append |   167086 | docs/s |
|                                        50th percentile latency | index-append |  210.367 |     ms |
|                                        90th percentile latency | index-append |  315.659 |     ms |
|                                        99th percentile latency | index-append |  1458.79 |     ms |
|                                      99.9th percentile latency | index-append |  10476.3 |     ms |
|                                     99.99th percentile latency | index-append |  10963.3 |     ms |
|                                       100th percentile latency | index-append |  10994.6 |     ms |


Update label matching documentation.

This commit adds documentation about the limitations of empty
label matching and documents the __name__ label which is useful
for federation.
@beorn7 @juliusv

Not sure if you noticed - I added another comment before you force-pushed: https://github.com/prometheus/docs/pull/122#discussion-diff-32937572

:+1:


Support compressed OTA image

Introduction
This PR introduces the support for compressed OTA image on OTAclient, refinement and refactor for related OTAclient modules, and update/add test files.
Changes
1. ota_metadata: new implementation of OTAMetadata, now ota_metadata class can be defined pragmatically with MetaFieldDescriptor, without hard-coding field names,
2. ota_metadata: implement ParseMetadataHelper, split the verification logics from old OTAMetadata class and move to this helper class,
3. ota_metadata: implement many helper methods for OTAMetadata,
4. downloader: major refactor, now Downloader is self-contained and multi-threaded generic downloader with concurrent download limitation configured,
5. downloader: refinement over error handling,
6. downloader: introduce DecompressionAdapterProtocol, now transparent decompression support is introduced into Downloader by registering adapter, and ZstdDecompressor is introduced for zstd compression support,
7. create_standby, ota_client: integration for updated downloader module and ota_metadata module, now one update session will only have one downloader instance,
8. common: introduce urljoin_ensure_base helper function,
9. test_base/Dockerfile: enable OTA image compression,
10. test_downloader: updated according to downloader module's changes, implement test for zstd decompression support,
11. test_ota_metadata: updated accordingly, implement extra cases for backward-compatibility for previous ota_metadata format revision,
12. other minor fix and update.
Tests

[x] test via test files
[x] local VM test
[ ] full e2e test via FMS console

Ticket
T4PB-20716

An edge condition found in ota_proxy, I would like to cover it also in this PR. After all found problems/issues resolved, I will mark the PR as ready again.

@obi-t4 I conduct another test, and the ota_proxy's bugs should be fixed I think.


Add issue-to-project workflow

Closing this as it seems better to keep this repo separate from the TKET project board for now.


Parsing error with vertical projection information in PRJ file.

I have a shape file which has a PRJ file which defines a vertical projection. When trying to parse it, I get an error "Unexpected token ,".
The error appears to be from the first line this method, specifically the JSON.parse call.:
module.exports = function(wkt, self) {
  var lisp = JSON.parse(("," + wkt).replace(/\s*\,\s*([A-Z_0-9]+?)(\[)/g, ',["$1",').slice(1).replace(/\s*\,\s*([A-Z_0-9]+?)\]/g, ',"$1"]'));
  var type = lisp.shift();
  var name = lisp.shift();
  lisp.unshift(['name', name]);
  lisp.unshift(['type', type]);
  lisp.unshift('output');
  var obj = {};
  sExpr(lisp, obj);
  cleanWKT(obj.output);
  return extend(self, obj.output);
};

An example PRJ is:
PROJCS[
	"Custom_NAD_1983_UTM_Zone_17N",
	GEOGCS["GCS_North_American_1983",
		DATUM["D_North_American_1983",
			SPHEROID["GRS_1980",6378137.0,298.257222101]
		],
		PRIMEM["Greenwich",0.0],
		UNIT["Degree",0.0174532925199433]
	],
	PROJECTION["Transverse_Mercator"],
	PARAMETER["False_Easting",1640416.666666667],
	PARAMETER["False_Northing",0.0],
	PARAMETER["Central_Meridian",-81.0],
	PARAMETER["Scale_Factor",0.9996],
	PARAMETER["Latitude_Of_Origin",0.0],
	UNIT["Foot_US",0.3048006096012192]
],
VERTCS["NAVD_1988",
	VDATUM["North_American_Vertical_Datum_1988"],
	PARAMETER["Vertical_Shift",0.0],
	PARAMETER["Direction",1.0],
	UNIT["Meter",1.0]
]

we rely on proj4js when I comes to parsing those

This is fixed in proj4js issue #120.


yarn install not working

When trying to install with yarn instead of npm the folder is missing the assets folder.
yarn install

yarn version: 16
Works for me now with yarn 18.1 and a good connection.

@jontelm How did you fixed it ?

Why was this closed? It still keeps happening, would help to have an explanation.

@kesor I thought my problem was my connection so I closed it.

When I had this issue... turns out I had a .yarnignore file, that was ignoring the assets folder 🤦♂

It seems to be called .yarnclean now (https://yarnpkg.com/en/docs/cli/clean), and yes, it includes assets by default.
Docs say that "yarn clean" is "an advanced command" and should be used with care. I agree but this is such a common name for cleaning artifacts after some build (e.g. similar to gradle clean or mvn clean) that most people try to invoke it and might end up with a non-functioning project because of a hard-to-detect bug.
IMHO it is better to change the name or to print out a big colorful WARNING when "yarn clean" is invoked.

yup, should notclean the assets dir.


Fix typo

In django 1.3, 1.4 fixtures, interable used instead of iterable in doc
string of get_queryset method, ListView.
modified:   cbv/fixtures/1.3.json
modified:   cbv/fixtures/1.4.json

Well spotted, and thanks for this, but I'm afraid that this wasn't fixed until django 1.5 and I'd rather keep these dumps true to the source material.


Update deploy-cockroachdb-with-kubernetes-openshift.md

Looking at the page today I discovered a very minor issue in the wording of "This article assumes you have already installed the OpenShift Container Platform on a Kubernetes cluster" and have proposed a change.

This change is

@keith-mcclellan @taroface

LGTM! Thank you.


steam: add indication for the nix option

Description of changes
Add an indication for the nix option programs.steam.enable in longDescription.
Things done

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
23.05 Release Notes (or backporting 22.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

Please backport to 22.11 also.


Using AsyncAPI as source?

We're moving from specifying our schemas in individual JSON files to storing multiple schemas inside a yaml file following the AsyncAPI specification.
But I would still like to use Corvus.JsonSchema to generate the models (since nothing comes even close to being as awesome 😄).
Is there a good way of doing this? My initial idea was to parse the yaml file to extract a schemas, convert it to JSON, and then pass it to Corvus.JsonSchema.
Any other ideas?
Of course it would be awesome to be able to just pass an asyncapi spec file as input and it would generate the models for me but I guess that's not built in as of now.
Edit: I managed to hack something together by using yq:
yq -o=json .components.schemas.my_schema < asyncapi.yaml > my_schema.json && dotnet tool run generatejsonschematypes -- my_schema.json

That is exactly what I was going to suggest as a "quick workaround".

However, YAML support in the generator would be good. And then support for direct generation from https://www.asyncapi.com/docs/reference/specification/v3.0.0.

Although this is not directly relevant to your case (as we would already have loaded and parsed the document before getting to the schema!) I've opened #499 to provide YAML support.

I will leave this open to track supporting AsyncAPI documents directly.


Operator API

Operator Protocol and Client that implements AgentManagment and can be used instead of KubernetesAPI to connect to mirrord-agent

bors r+

bors r+


Commands For Mod Not Showing

Im using the most recent version of the tommy-tek modpack which has version 1.7.10-1.2.2 of Advanced Rocketry on it. All of the commands listed on the site are showing up as unknown commands. If anyone has any suggestions please  let me know how to get them  working.

Is this on a server?  If so, are you op?

Is this still a issue? Please comment if it is and i will reopen if if you are unable? We are closing old issues to see what is still relevant and needs to be fixed.


Ignore order of query params

Is your feature request related to a problem? Please describe.
We have urls generated by a 3rd party framework and the order some query params are added is not always deterministic.
It would be helpful if the matcher was able to determine if query params were the same when not added in the same order.
Describe the solution you'd like
Ideally this would just work.  If there's concern of introducing a breaking change, consider adding a property like HttpClientInterceptorOptions.IgnoreQueryParamOrder.
The matcher would split the query string into parts before comparing.
Describe alternatives you've considered
I created a custom matcher to do this, but I don't want to copy that code into every solution that uses this package and it seems silly to create a custom nuget just for that.

This sounds reasonable - would you like to submit a PR with a proposed implementation?

I can do that. With my current bandwidth restrictions it will likley be a few weeks before I will get to it.

@drewburlingame Any status on this? Would have been really useful.

@silkfire no progress.  We ended up using a slightly different approach before I could get to this and it's now a low priority.  I don't know when or if I'll be able to work on this.


Unable to resolve module 'react-big-calendar/lib/css/react-big-calendar.css

I have tried every single solution has been stated here but did not find a way to get rid of this error. I am newbie to js and react environment. Is it something caused by web pack or might be related to how I load this?
Tried this import 'react-big-calendar/lib/css/react-big-calendar.css';
and tried this import '!style-loader!css-loader!react-big-calendar/lib/css/react-big-calendar.css' instead
Both throw the same error

Any idea?? I really can't figure out what to do.

I don't know :( I would check that the file is in node_modules/react-big-calendar/lib/css/react-big-calendar.css, if not reinstall. If it is the problem is your webpack configuration. I'd suggest trying one of their support avenues like the discord channel

This should be pretty easy if you are using create-react-app. If you are rolling your own webpack then you need to make sure you are using the right loaders.

I'm having the same issue.

I don't think Calendar.css is a module

Hi,
Easiest way to solve that problem is to add the css file to your header :

This hasn't been responded to from the original poster for sometime so I am going to close. Please refer to https://github.com/arecvlohe/rbc-starter as an example to help.


Add URL for services

It would be nice to have a URL under which you can find all badges of a specific service like we currently for categories e.g. https://shields.io/service/pypi. This would allow sites to Link directly to shields.io (Check out our badges on shields.io).

I think the more reasonable thing to do would be to allow our existing search term to be set via a query parameter (e.g. ?pyyyyyy would be accepted just the same as ?pypi, but with just very different results)
We don't have an explicit mapping of upstream services to badge sets, and I'd have a lot of reservations about doing so or having to maintain explicit route paths with vendor/provider defined verbiage

This is somewhat related to (but not a duplicate of)
https://github.com/badges/shields/issues/7064

Badgen has pages for service families / providers and it seems useful. It's also nice place to put background and general doc on how to get badges working for a service, when it applies to the whole family.
That said I would probably prioritize #7064 ahead of this – think it's more useful.

to allow our existing search term to be set via a query parameter (e.g. ?pyyyyyy would be accepted just the same as ?pypi, but with just very different results).

This is a nice idea, and probably not so hard to do. It probably should be something like ?q=pypi or ?search=pypi.

We don't have an explicit mapping of upstream services to badge sets, and I'd have a lot of reservations about doing so or having to maintain explicit route paths with vendor/provider defined verbiage

The services/foo filesystem paths already provide some hierarchy. Many of the URL patterns have common prefixes too (though not all of them). Wouldn't using the services/foo hierarchy get us most of the way there?


WARP Split tunnel: excluding IP ranges

Product
WARP on Windows
Subject Matter
Excluding IP ranges
Content Location
Where would you expect this addition to be placed?
Additional information
I am using Warp on Windows using the warp application.
When I have it turned on everything works as it should except for a local streaming service.
I can find the IP address using the network panel of dev tools. This IP does however change every time another video is started. I can exclude this IP but this is only for one video.
I have already excluded the domain itself but this does not help (as this differs from the ips used for video streaming). The IPs do seem to follow a pattern something like 184.82.xx.xx (only as example)
Where xx and xx can be all the numbers in the range. for domains a wildcard can be used: *.domain.com. Is there a possibility to use wildcards for IPs?
If so update this in the documentation.
If not could you implement this?
I have looked at the documentation but couldn't find anything to solve my problem.

Thanks for opening this issue! Given the problems you are experiencing, I believe reaching out to community.cloudflare.com for assistance may provide more support for you.


Added uthentication options

Added a feature to pass authentication options to the docker run command as environment variables.
Now it is possible to bypass authentication or set a username/password as the container is created.
Also updated the README file to show the authentication options.

:+1:

Sorry for taking so long to check this.
LGTM.


[AMBARI-24319] Regenerating keytabs for the given service(s) only

What changes were proposed in this pull request?
When regenerating keytabs on service level (i.e. in Services / HDFS / Actions / Regenerating keytabs) Ambari regenerated shared keytabs too (i.e. SPNEGO keytabs that are referenced by other services too). This led several issues when tried to authenticate to other web based services.
The solution is to regenerate keytabs that belong to that  actual service only.
While at it, configuration changes are ignored during service- and host-specific keytab regeneration options.
NOTE: This is a slight change over the previously reverted patch, #1833.   The previous had an issue where it caused a failure when Kerberos-enabled clusters were created via Blueprints.  Kerberos identities that did not belong to a specific service were never created.  For example, SPNEGO (HTTP/_HOST) and the smoke test user (ambari-qa-cl1).   This patch attempts to fix that by creating missing Kerberos identities along with the requested service's identities.
How was this patch tested?
Latest JUnit test results in ambari-server:
mvn clean test package -pl ambari-server
...
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 26:17 min
[INFO] Finished at: 2018-07-28T15:14:51-04:00
[INFO] Final Memory: 105M/1425M
[INFO] ------------------------------------------------------------------------

In addition to this I've tested this scenario in a test cluster. After my change I regenerated HDFS service's keytabs with this result:
[root@c7401 ~]# ls -ltr /etc/security/keytabs/
total 28
-r--------. 1 root      root   348 Jul 29 11:54 ambari.server.keytab
-r--r-----. 1 root      hadoop 413 Jul 29 11:54 spnego.service.keytab
-r--------. 1 zookeeper hadoop 438 Jul 29 12:01 zk.service.keytab
-r--r-----. 1 ambari-qa hadoop 328 Jul 29 12:01 smokeuser.headless.keytab
-r--------. 1 hdfs      hadoop 403 Jul 29 12:03 nn.service.keytab
-r--------. 1 hdfs      hadoop 303 Jul 29 12:03 hdfs.headless.keytab
-r--------. 1 hdfs      hadoop 403 Jul 29 12:03 dn.service.keytab

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/Ambari-Github-PullRequest-Builder/3361/
Test PASSed.


fix: ReplaceFullPath not working for root path (/)

What type of PR is this?

What this PR does / why we need it:
ReplaceFullPath should support replacing root path during URL rewrite.
Which issue(s) this PR fixes:

@eternalphane can you share the config that not working ?
would be good to compare it with expectations from the spec https://gateway-api.sigs.k8s.io/reference/spec/#gateway.networking.k8s.io%2Fv1.HTTPPathModifier

@arkodg This simple example is not working when accessing the root path:
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
  name: http-filter-1
  namespace: gateway-api-example-ns1
spec:
  parentRefs:
  - name: my-filter-gateway
    sectionName: http
  hostnames:
  - my-filter.example.com
  rules:
  - filters:
    - type: URLRewrite
      urlRewrite:
        path:
          type: ReplaceFullPath
          replaceFullPath: /foo

@eternalphane is the request to my-filter.example.com  or my-filter.example.com/

is the request to my-filter.example.com or my-filter.example.com/

Both seem to be the same 😂

closed in favor of https://github.com/envoyproxy/gateway/pull/3530


In teaser image, hovering over spatial locations doesn't change the feature visualization

The interface design figure says: "For instance, let us consider our teaser ﬁgure again. (...) hovering over spatial locations gives us neuron-speciﬁc attribution." Perhaps I misunderstood the caption, but the figure shows a bidirectional arrow between image and feature visualization, so I thought hovering over the image would change the feature visualization, but it doesn't seem to change anything. Here's what I see:

Using Chrome on macOS. No obvious console errors.

@hypotext you're right—we removed this feature pretty much last minute as the attribution wasn't normalized and so all the values where too small to really see. @arvind is probably best suited to decide what we should do here—either remove the text mentioning it, or add back the feature (it's just disabled through CSS) and rethink how we display the magnitudes in a humanely meaningful way.

Thanks @hypotext. Fixed with 46dbec6 to make the teaser design space diagrams to reflect the final behavior of the teaser figure. As @ludwigschubert mentioned, we got rid of the neuron attribution because they were incorrect (and tedious to recompute).


[DO NOT MERGE] setting up scenaio Menus to test

https://nanopay.atlassian.net/browse/NP-6878

Used for testing purposes


Improve test environment

We could use a fixture to run the test server automatically for the integration tests.
We could use py.test syntax which is simpler and clearer to rewrite all the tests.

(See discussion https://github.com/aio-libs/aiosparql/pull/27#issuecomment-321023128 )

I believe I've completed these two tasks for the integration test in the following pull request: #37


fix: Run under coc.nvim

Hello,
I've recently started experimenting with this tool and https://github.com/neoclide/coc.nvim. I've noticed a few things:
1- The tool doesn't handle initialize method, so it crashes quickly.
2- glslang's diagnostics appear to print output to stdout as well as the message buffer. This causes the client to struggle with parsing when the input file is invalid.
With theses hacky patches in place I  got it to a mostly working state:

I'm not a regular C++ developer so admittedly I am not sure on the best style or approach. I'm not sure how paranoid I should be about exceptions being thrown and things like that where I might lose fp_old nor how I would do the same redirect in c++ directly.
I'd like to also see if newer versions of glslang behave a little better so I'll also explore upgrading that module.

I'd be interested in a rust based language server, been tinkering with it for a lot random things. I'll see if theres any easy to use jsonrpc crates out there and maybe could get to an equivalent state pretty quickly.


script for router firmware openwrt

Thank you very much. The script installs the ovpn server on my Ubuntu pc very smoothly.
Do you have plans to make the same script for the open source router firmware Openwrt / Lede?
Regards, Lucas

Hello,
Do you mean install the OpenVPN server on the router or to connect from the router?

Hello @Angristan,
Yes, an openvpn server on the router, so that with my mobile phone  outdoor  a) I can make a public wifi secure and b) I can use my ovpn abroad with my home IP.
advantage of a router with vpn server compared to an ubuntu pc is that the router is always up and uses less energy.
Openwrt is a linux distro based on Debian with the same possibilities as Debian and Ubuntu. Apt-get, Apt  is called opkg.  Many commands are about the same, so I thought it would be "easy" for you guys to make such a script. ;-))
Regards, Lucas

I understand it would be a nice feature for the script, however I don't plan to support (OpenWrt) routers. I don't even have one myself so I can't test. Sorry :/

Tnx for the reply.


updating JWT authentication section

Description

enabled: true is just plain wrong and will fail. corrected the sample config
Adding troubleshooting tips that I came across

side note... configuration documentation should really contain references to the currently "hidden" parameters of
opensearch_security.auth.type: "jwt"
opensearch_security.jwt.url_param: your_param_name_here

only reason I came across this is looking at the source code...
Issues Resolved
Helps resolve user complain on the wrong config mentioned in https://github.com/opensearch-project/security-dashboards-plugin/issues/872
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

@dvas0004: Looks good. Your commit requires the DCO sign-off to pass the PR check.
See fix DCO for details.

@cwillum: Want to review this one?

DCO sign-off added

@Naarcha-AWS - can we merge this?

@dvas0004: I added some copy edits to this PR. These edits can be found on PR #1279


HSEARCH-4157 Raise all the timeouts to make all tests working

https://hibernate.atlassian.net/browse/HSEARCH-4157

Merged, thanks!
Related discussion for anyone interested: https://hibernate.zulipchat.com/#narrow/stream/132092-hibernate-search-dev/topic/HSEARCH-4157

thank you!


I2C timeout calculated wrong for MCU !esp32

The current timeout() for the i2c bus is calculated using
impl From<Duration> for APBTickType {
    fn from(duration: Duration) -> Self {
        APBTickType(
            ((duration.as_nanos() + APB_TICK_PERIOD_NS as u128 - 1) / APB_TICK_PERIOD_NS as u128)
                as ::core::ffi::c_int,
        )
    }
}

Basically the calculation for some newer chips is different and the valid values for the low level api are now
1-22 and the actual timeout is calculated as: 2^12 * SCLK_PERIOD
In contrast to the idf api documenation the actual one for the chip correctly explains this:
Chips using the newer formula seems to be at least:
Using a 5 bit register with the new formular
ESP32-C2 21.4.7 https://www.espressif.com/sites/default/files/documentation/esp8684_technical_reference_manual_en.pdf
ESP32-C3 28.4.8 https://www.espressif.com/sites/default/files/documentation/esp32-c3_technical_reference_manual_en.pdf
ESP32-C6 28.4.8 https://www.espressif.com/sites/default/files/documentation/esp32-c6_technical_reference_manual_en.pdf
ESP32-S3 27.4.8 https://www.espressif.com/sites/default/files/documentation/esp32-s3_technical_reference_manual_en.pdf
ESP32-H2 27.4.8 https://www.espressif.com/sites/default/files/documentation/esp32-h2_technical_reference_manual_en.pdf
Using a 10bit register with calculation as currently
ESP32      11.5 https://www.espressif.com/sites/default/files/documentation/esp32_technical_reference_manual_en.pdf
ESP32-S2  25.3.3 https://www.espressif.com/sites/default/files/documentation/esp32-s2_technical_reference_manual_en.pdf
Unclear:
ESP32-P4 technical document linked on espressif website returns 404 https://www.espressif.com/sites/default/files/documentation/esp32-p4_technical_reference_manual_en.pdf
If someone else could check that I'm understanding this documents corrrectly, I would like to do a pull request for this.
Possible changes I see
a) Calculate the nearest valid timeout number for the api and print? if the wished for timeout is not exactly representable
b) Add a enum containing the valid 22 timeouts and implement From for APBTickType ?
what approach would be prefered?
Also how would one do the case difference based on the current MCU, is there somewhere a similar part of code, I can take a look at? (coming from a c world, I only know #define magic for this, but this is obviously not the rust way)
I also did take a look at the arduino wrapper how they do this...
https://github.com/espressif/arduino-esp32/blob/cf448906b3836fbe9368934713b697469254c62f/cores/esp32/esp32-hal-i2c.c#L133
They just set it to the maximum possible timeout, so apart from waiting now >100ms instead of ~13 most probably will not have noticed

The current timeout() for the i2c bus is calculated using
impl From<Duration> for APBTickType {
    fn from(duration: Duration) -> Self {
        APBTickType(
            ((duration.as_nanos() + APB_TICK_PERIOD_NS as u128 - 1) / APB_TICK_PERIOD_NS as u128)
                as ::core::ffi::c_int,
        )
    }
}

Basically the calculation for some newer chips is different and the valid values for the low level api are now 1-22 and the actual timeout is calculated as: 2^12 * SCLK_PERIOD In contrast to the idf api documenation the actual one for the chip correctly explains this:
Chips using the newer formula seems to be at least:
Using a 5 bit register with the new formular ESP32-C2 21.4.7 https://www.espressif.com/sites/default/files/documentation/esp8684_technical_reference_manual_en.pdf ESP32-C3 28.4.8 https://www.espressif.com/sites/default/files/documentation/esp32-c3_technical_reference_manual_en.pdf ESP32-C6 28.4.8 https://www.espressif.com/sites/default/files/documentation/esp32-c6_technical_reference_manual_en.pdf ESP32-S3 27.4.8 https://www.espressif.com/sites/default/files/documentation/esp32-s3_technical_reference_manual_en.pdf ESP32-H2 27.4.8 https://www.espressif.com/sites/default/files/documentation/esp32-h2_technical_reference_manual_en.pdf
Using a 10bit register with calculation as currently ESP32 11.5 https://www.espressif.com/sites/default/files/documentation/esp32_technical_reference_manual_en.pdf ESP32-S2 25.3.3 https://www.espressif.com/sites/default/files/documentation/esp32-s2_technical_reference_manual_en.pdf
Unclear: ESP32-P4 technical document linked on espressif website returns 404 https://www.espressif.com/sites/default/files/documentation/esp32-p4_technical_reference_manual_en.pdf
If someone else could check that I'm understanding this documents corrrectly, I would like to do a pull request for this.

PR welcome!

Possible changes I see a) Calculate the nearest valid timeout number for the api and print?

This one except for the "print" part.

Also how would one do the case difference based on the current MCU, is there somewhere a similar part of code, I can take a look at? (coming from a c world, I only know #define magic for this, but this is obviously not the rust way)

#cfg(esp32c3)] with the all, not and any combinators. Besides the esp32c3 config bool, you have similar constants defined for each MCU.

@ivmarkov @empirephoenix can this be closed now?

we also had #438 merged. i hope that makes it work now. If you still think its wrong after that feel free to reopen this issue


📝 docs: add session config.md

❓ Type of change

add a session-config.md to better document application-side session handling

update nuxt-config.md to match the new types

[x] 📖 Documentation (updates to the documentation, readme or JSdoc annotations)

[ ] 🐞 Bug fix (a non-breaking change that fixes an issue)

[ ] 👌 Enhancement (improving an existing functionality like performance)

[ ] ✨ New feature (a non-breaking change that adds functionality)

[ ] 🧹 Chore (updates to the build process or auxiliary tools and libraries)

[ ] ⚠ Breaking change (fix or feature that would cause existing functionality to change)

📚 Description
As mentioned in PR #715 the session config needs some love. This PR tries to give the developer a better understanding on how the package handles the session refresh.

Hi @blumewas 👋
Thanks for the contribution (and your last PR, which was already merged!) We appreciate it ❤

The session config needs some love.

I agree that the docs need some DESPERATE love. On that note, we are working on a complete rewrite of the NuxtAuth documentation for V2. We have already begun migrating to VitePress and have outlined a new and better documentation structure to communicate better how to use the Module. You can follow along here: https://github.com/sidebase/docs/pull/180
I will merge this PR and ensure that the new information is also included in the rewrite! Feel free to also give feedback on the new docs and structure in the PR linked above. It would be a great help to hear from the community about what is helpful!
Preview screenshot:


Problem when testing security-sample-shared with TestBench

I tried to test this application with Vaadin TestBench and I've got this error when I try to go on a secured view.

2017-02-20 16:38:50.003  WARN 5392 --- [o-auto-1-exec-8] com.vaadin.ui.ConnectorTracker           : org.vaadin.spring.samples.security.shared.views.AdminView$$EnhancerBySpringCGLIB$$d3aac251(19) claims that com.vaadin.ui.Button(20) is its child, but the child claims org.vaadin.spring.samples.security.shared.views.AdminView(19) is its parent.
2017-02-20 16:38:50.003  WARN 5392 --- [o-auto-1-exec-8] com.vaadin.ui.ConnectorTracker           : org.vaadin.spring.samples.security.shared.views.AdminView(19) claims that com.vaadin.ui.CssLayout(12) is its parent, but the parent does not acknowledge the parenthood.
2017-02-20 16:38:50.005 ERROR 5392 --- [o-auto-1-exec-8] com.vaadin.server.DefaultErrorHandler    : java.lang.AssertionError: The connector hierarchy is corrupted. Check for missing calls to super.setParent(), super.attach() and super.detach() and that all custom component containers call child.setParent(this) when a child is added and child.setParent(null) when the child is no longer used. See previous log messages for details.

I don't understand what the "real" problem.
I attached the edited security sample shared (you need to copy chromedriver inside the project)
security-sample-shared.zip

Have you tried to run your tests with disabled JVM Assertions? Surefire runs all tests with -ea flag by default, configure Surefire with <enableAssertions>false</enableAssertions>.

Thanks a lot.
It's working if I change my pom.xml.
I don't understand why the connector hierarchy is corrupted but I can run my tests.


Remove msleep in owl_scan_routine

To remove msleep, I introduce a method used by broadcom FullMAC
driver: set a timer in scan routine, and once the timer timeout, we
start informing "dummy" BSS to kernel, then call cfg80211_scan_done()
to finish scan. The detail is in github issue#19.

I'm not sure the method is suitable for virtual driver, because we don't really have to "scan" a BSS.

Thank @rickywu0421 for contributing. I amended the commit message.


Request to queue notification for domain '1.1.1.in-addr.arpa' was processed, but no valid nameservers or ALSO-NOTIFYs found. Not notifying!

Hello,
I create new template with correct SOA and NS record and everything are ok when I create a new domain.
Also when I create new ptr domain like 1.1.1.in-addr.arpa and use same template as above also everything good.
But when I set auto_ptr to true, ptr domain created only with "a.misconfigured.powerdns.server" or with value what I set in default-soa-name=
Its possible to use same template during auto create ptr?

Hello,
This request is stale for too long. Regarding our policy to clean up this project, we are closing it. Feel free to open a new issue later.
Regards
PowerDNS Admin Team
See https://github.com/PowerDNS-Admin/PowerDNS-Admin/issues/1153 for the policy


Consider documenting interactions with IDE tooling.

IDE's have some tools that have a certain set of assumptions that a project using rules_js does not fulfill.  For the most part, they can be worked around in various ways, but it can be a lot of trial-and-error that bumps up against the specifics of this project and ends up with unintuitive solutions.  In my case, VSCode doesn't pick up on TypeScript types, but the intuitive workaround was to use compilerOptions.path in tsconfig.json to map imports to bazel-bin/node_modules.  But because the lazy linking appears to only apply to direct dependencies and not transitive ones, some of the types would be incomplete.  I ended up getting a workable solution (install a "node_modules" folder independent of Bazel) from a comment on #105, but it is not a documented solution.  Would it be reasonable to document this pattern, or adding an example at https://github.com/aspect-build/bazel-examples to point to?

I added this section
https://github.com/aspect-build/rules_js/blob/main/docs/faq.md#making-the-editor-happy
do you think that covers it?

I believe so. although the lazy loading of dependencies might be worth mentioning.  Thank you.


Better labeling for Keyboard Manager Remap of NumPad non 0-9 keys

Description of the new feature / enhancement
The Keyboard Manager "Remap keys" function has remaps available for all the NumPad numbers (0-9), but there is one more NumPad key that is usually toggled with a NumLock key:  the NumPad '.' (decimal point) button.
Usually a NumLock toggle that turns OFF NumLock will allow that key to function as "Delete".  Unfortunately this one NumPad key has no listing in the "Remap keys" feature.  If you could add that remap, it would make the NumPad remap options complete.
Scenario when this would be used?
I have a keyboard where the manufacturer has decided to make the NumPad keys numeric-only.  (No NumLock toggle key)
For 30 years I've been using keyboards with a NumLock key that can toggle NumLock OFF.  That way I can use the standard NumPad placement for directional keys, etc.  (Home, End, PgUp, PgDn, etc. which are in standard placements on NumPads, but are in various non-standard placements elsewhere. Therefore my muscle memory is highly linked to the NumPad with NumLock toggled OFF.  With a standard NumLock toggled OFF, the decimal place '.' button on the NumPad acts as a Delete button.)  "Remap keys" is perfect for this remap purpose except for that one missing NumPad key remap option.
Supporting information
No response

Update - I just realized the NumPad '.' (decimal) key is actually available for remapping - it just isn't labeled any differently than the standard (non-NumPad) '.' key.  Unless you realize there are multiple '.' options, it's confusing since there's no separating labeling.  (I had to use Trial & Error to determine which was which.)  But otherwise the option is there - it just could use better labeling.

@rChaz58 thank you for contributing to your idea!
Could you please clarify what you would like to enhance?
Would be great to have some visualization here.
/needinfo

The above refers to the standard '.'

This one refers to the '.' on the NumPad (Note the highlighting, as this was my chosen source.)
There is no labeling to indicate that the NumPad version is any different than the separate standard '.'  It's easy to not even notice that there are different versions of the same keyboard symbol.
(Note: the NumPad '.' may be different for non-USA languages - eg ',' for Europe.)

There is also no (easy) way to find the "Numpad *" or "Numpad +" keys in the drop-down lists.


How to get the mitab dataset

Hello, I'm running the code in the notebook with my own dataset. However, a problem stuck me in at the step18 create/define a protein-protein interaction network.
filename <- "9606.mitab.05-29-2019_zcat.txt"

inetwork <- createPPI(filename = filename, expr = cellrouter@assays$ST@ndata)

How can I get this file? I try to download at iRefIndex website,but this website seems to have crashed. I look all over the internet and fail to download the ppi dateset of Mus Musculus.
I'd be more than happy if you can help me solve this issue.

Hello!
Thank you for your interest in using our software! We are working to make any missing files associated with the analysis available as quickly as possible.
I will let you know when this is available.
Thanks!

Thanks Edroaldo!
I downloaded mouse PPI here MIPPIE and changed some code to let it work.
And here are other bugs.

when the variables in cell type column have space or underscore, the code will have so many bugs. And it takes me long to fix it.
When I run the code at STEP 20 Find paths between sources (receptors) and targets (transcription factors), I failed to run findpaths.simpleRJava function ang got the warning No cells in the path. The gaph was not created. every time. And there is no subnet generated at all!

If there are any solutions plz tell me! Thanks!

Hello Gilbert,
Thank you for identifying these bugs. My apologies. I did not know that you
have mouse data.
We will work to fix them as soon as possible.  In the meantime, could you
please try changing your cell type names to remove any spaces and follow
the nomenclature from our tutorial in github?
You can also find a mouse PPI here, which I have previously tested.
https://drive.google.com/file/d/1NFULhAmWGfaeWNGTDtW6KpvRMoYMBIsv/view?usp=sharing
I believe the error you are getting with Find paths is related to the
fact that you might be using human ligand receptor pairs? If so, please see
also this list using gene symbols converted from human to mouse.
https://drive.google.com/file/d/1t-Bp1_ozjJVTUICXPeeF_wOdWaFMot2d/view?usp=sharing
Then, you can use the following code to open the file and continue the
tutorial:
lr_network <- readRDS("Mouse_Ligand_Receptor_Pairs.rds")
receptors <- unique(lr_network$to)
ligands <- unique(lr_network$from)
receptors <- intersect(receptors, @.@.))
ligands <- intersect(ligands, @.@.))
ligand.receptors <- unique(c(ligands, receptors))
mean.expr <- computeValue(cellrouter, assay.type = 'RNA',
genelist=ligand.receptors, column = 'cellcomm', fun='mean'); gc();
Other tutorial code
Please, let me know if that helps. Thank you!
On Sat, 23 Apr 2022 at 03:33, GilbertHan1011 @.***>
wrote:

Thanks Edroaldo!
I downloaded mouse PPI here MIPPIE
http://cbdm-01.zdv.uni-mainz.de/~galanisl/mippie/download.php and
changed some code to let it work.
And here are other bugs.

when the variables in cell type column have space or underscore,
the code will have so many bugs. And it takes me long to fix it.
When I run the code at STEP 20 Find paths between sources
(receptors) and targets (transcription factors), I failed to run
findpaths.simpleRJava function ang got the warning No cells in the
path. The gaph was not created. every time. And there is no subnet
generated at all!

If there are any solutions plz tell me! Thanks!
—
Reply to this email directly, view it on GitHub
https://github.com/edroaldo/fusca/issues/3#issuecomment-1107413298, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/ACNJIR5GI4TE7INIQRZ577DVGORTJANCNFSM5UCA3AOQ
.
You are receiving this because you commented.Message ID:
@.***>

Thanks for you generous help! It really helps!
I try with the update files and here are my feedbacks.

The mitab file from the download link above works, but it gave warnings “NAs introduced by coercion”. I don't think this is the best choice. The file from MAPPIE works better for me.
It turns out the warning "No cells in the path. The gaph was not created." is due to the low number of PPI interactions. I lower the threshold of cellnetworksPPI2 function and it works. But I don't know whether this solution will bring some terrible consequence, and what threshold is accetable.

Thanks again for your patient answers！
Gilbert

OK.
1-We will also incorporate the MAPPIE network in FUSCA.
2-The thresholds are based on positive gene-gene correlations, which we use to create a weighted protein interaction network. Ideally, you keep more highly correlated genes for your downstream analysis. There is no way to define acceptable thresholds given the variety of studies that CellComm can be applied. We extensively tested experirmentally CellComm's predictions. After obtaining the results you can check more specifically the expression of the prioritized genes, or intermediate genes in the path from cell surface to transcriptional regulators. We typically iterate over this process a few times before elaboraing a testable hypothesis from the analysis.
Hope it helps.
Thanks!

Thanks! It helps!


NaN's error when using the -p option

Using either an integer or a percentage with the -p option, getting the following error on r2013b
	NaN's cannot be converted to logicals.

	Error in export_fig>parse_args (line 740)
			if options.bb_padding

	Error in export_fig (line 210)
					[fig, options] = parse_args(nargout,
					varargin{:});

@falkben - I believe you specified the parameter value incorrectly. In any case, I just committed a change that improves the robustness of input-args processing. For the record, the following variants should work ok:
export_fig test.eps -p5
export_fig test.eps -p 5
export_fig test.eps -p0.3
export_fig test.eps -p .3


formToJSON() does NOT convert to JSON

The app method formToJSON() doesn't convert to JSON at all. It actually returns a key-value structured javascript OBJECT.
If this is the intended behavior, the name of the method is quite misleading. Even, the Framework7 manual says: "formToJSON(form) - convert form fields valus to JSON".
Suggestion: Either change the implementation of the formToJSON method so that it really returns a JSON string, or change the name of the method and the manual text to something that doesn't use the word JSON at all.

PS. I think there are several other occasions throughout Framework7 and the manual that add to this confusion between javascript objects and JSON strings. It would be great if you could clean these up consistently.
Notice: JSON is a text format (string), not a key-value javascript object. These are two completely different types.
In your manual you write things like "formData - object with form data in JSON format". This doesn't make any sense. There is no such thing as a javascript object in JSON format.

formToJSON method name will not be changed, and it will return JS object, not JSON string. Where says that JSON is a mandatory string?


Error reporting is useless when using z.function().implement()

I have multiple functions written with z.function().implement() that call each other and one of them was returning undefined instead of the an object fitting its return type. It took me about an hour to find the exact function that was throwing due to error messages like these that do not tell you anything about which object schema or function is throwing:
TypeError: Cannot convert undefined or null to object at Function.keys (<anonymous>)

      at ZodObject.parse (node_modules/zod/src/parser.ts:90:32)
      at Object.<anonymous> (node_modules/zod/src/parser.ts:268:35)
      at step (node_modules/zod/lib/src/parser.js:32:23)
      at Object.next (node_modules/zod/lib/src/parser.js:13:53)
      at fulfilled (node_modules/zod/lib/src/parser.js:4:58)

Non-object type: undefined

      at new ZodError (node_modules/zod/src/ZodError.ts:10:5)
      at Function.ZodError.create (node_modules/zod/src/ZodError.ts:17:19)
      at Function.ZodError.fromString (node_modules/zod/src/ZodError.ts:35:21)
      at ZodObject.parse (node_modules/zod/src/parser.ts:84:51)
      at Object.<anonymous> (node_modules/zod/src/parser.ts:268:35)
      at step (node_modules/zod/lib/src/parser.js:32:23)
      at Object.next (node_modules/zod/lib/src/parser.js:13:53)
      at fulfilled (node_modules/zod/lib/src/parser.js:4:58)

I am writing in TS, so this might be related to the TS compiler, but the errors are still useless if they don't tell you which schema or function is throwing.

Can you share some code and maybe an idea of how this can be improved? Perhaps a reference to the throwing schema could be included in the ZodError object? Schemas don't have any sort of identifier so there isn't an obvious way of indicating which schema or function is throwing.

I've tried some code, but the only solution would be to add optional metadata properties.
This way you can keep defining anonymous schemas/types as you do right now.
And the second approach would be to supply the meta properties. I see someone opened a related issue (#76).
const userSchema = z.object({
  id: z.number(),
  name: z.string(),
}).meta({
  name: 'User'
});

I'm working on a big overhaul of the error handling system. I'm adding a zodPath property to the errors that will give you the path through the Zod schema hierarchy, e.g. ['function', 'tuple', 0, 'id']. You should be able to follow the execution of the parsing to find exactly where the error is being thrown.
I'm still a little dubious about adding metadata to the schemas, especially if you want to write custom validations/error messages that assume the existence of a particular metadatum. That seems like a fragile antipattern to me.
Could you send a code sample of these two ZodFunctions that call each other? I'd like to add that case into the testing suite, and I want to make sure this use case is covered.

I published a major overhaul to the error handling system in<EMAIL_ADDRESS>Every Zod suberror has an error code associated with it. Most notably, the errors thrown by function schemas will only every have two possible codes: ZodErrorCode.invalid_args and ZodErrorCode.invalid_return_type. These errors contain additional properties (argumentsError and returnTypeError respectively) that provide additional information about the actual validation issues:
const myFunc = z.function(
  z.tuple([ z.string() ]),
  z.boolean()
).implement((str)=>str.length > 5);

myFunc("asdf") // error

The resulting error:
ZodError {
  "errors": [
    {
      "code": "invalid_arguments",
      "argumentsError": ZodError {
        "errors": [
          {
            "code": "invalid_type",
            "expected": "string",
            "received": "number",
            "path": [
              "0"
            ],
            "message": "Invalid input: expected string, received number"
          }
        ]
      },
      "path": [],
      "message": "Invalid function arguments"
    }
  ]
}


County FIPS off in tracts file

County GEOID should be a 4-digit number (ex 1001), not a 1-digit number as is currently shown in the tracts file downloaded.

Ultimately this is caused by the CSV column being interpreted as an integer. In this case, the field is COUNTYFP so it should actually be 3 digits 001, but it's been shortened to 1. A county "GEOID" would be 5, as it is a concatenation of STATEFP + COUNTYFP.

Because all of this in the HEROP_ID, I'm thinking it may be best to calculate these derivative identifiers from that ID. For example, county GEOID would be the first 5 digits after US, so something like substr(x, 5, 10) (I may have the index positions wrong) would pull the id right out. This is something we could even wrap into the load_oeps function if that would be desirable.


Replace template_rule by Skylib expand_template

Use expand_template from Skylib instead of custom template_rule implementation (Skylib implementation is unit tested and is used already at some other places at TensorFlow - we need only one function to get the job done)

@penpornk Can you please review this PR?

@gbaned Any chance to get this in?

Hi @Vertexwahn Can you please resolve conflicts? Thank you!

Will split it in smaller PRs. Start here -> https://github.com/tensorflow/tensorflow/pull/58879

Hi @Vertexwahn Can you please resolve conflicts? Thank you!

@gbaned I resolved the conflicts

@penpornk Any chance to get a review for this?


Vertical Center Hompage ff.com

Description
Adjust the margin of the text on landing page of fluidframework.com.

Before

After


feat(ado/infra):  Generate release commit info during build

Details
Generate the release commit info in the build pipeline.
Motivation

Context

Pull request checklist

[ ] Addresses an existing issue: Fixes #0000
[x] Added relevant unit test for your changes. (yarn test)
[x] Verified code coverage for the changes made. Check coverage report at: <rootDir>/test-results/unit/coverage
[x] Ran precheckin (yarn precheckin)
[x] (after PR created) The Accessibility Checks (pull_request) check should fail. All other checks should pass.

Codecov Report

Merging #767 (3841bfe) into main (eae20c7) will not change coverage.
The diff coverage is n/a.

:exclamation: Current head 3841bfe differs from pull request most recent head 383891e. Consider uploading reports for the commit 383891e to get more accurate results

@@           Coverage Diff           @@
##             main     #767   +/-   ##
=======================================
  Coverage   94.34%   94.34%
=======================================
  Files          26       26
  Lines         566      566
  Branches       54       54
=======================================
  Hits          534      534
  Misses         32       32

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 eae20c7...383891e. Read the comment docs.


[VS Code] Joining collaboration session: Unable to join the host due to an authentication error. Verify the host is online, then sign out and sign in again and retry.

Error:
Joining collaboration session: Unable to join the host due to an authentication error. Verify the host is online, then sign out and sign in again and retry.
Steps to Reproduce:

join collaboration session and open an ediotr
login ( once opened a new editor, requires login )
reproduce this.

unnamed.zip

Version Data

extensionName
VSLS

extensionVersion
0.3.1071

protocolVersion
2.2

applicationName
VSCode

applicationVersion
1.30.1

platformName
MacOS

platformVersion
17.7.0

BTW, if select not to login, but join as readonly guest,  wont reproduce this issue, thats really weird


Increment version for formrecognizer releases

Increment package version after release of azure-ai-form-recognizer

Will address this manually due to the conflict with perf-ai-form-recognizer


2.4.0 Release

Before release:

[x] Force fetch origin remote tag with git fetch origin --tags --force
[ ] Write and format release notes from the ongoing changelog, including contributors and packagers

Release Split :

[x] Create, review and merge a MR from master branch into release: https://github.com/f3d-app/f3d/compare/release...master

Release Candidates :

[x] Commit, review and merge a v2.4.0-RC1 version change in https://github.com/f3d-app/f3d CMakeLists.txt and pyproject.toml in the release branch
[x] Tag and push to https://github.com/f3d-app/f3d: git tag v2.4.0-RC1 -m v2.4.0-RC1
[x] Trigger a release build using https://github.com/f3d-app/f3d-superbuild actions with v2.4.0-RC1 F3D version, superbuild main branch and prerelease publish true
[x] Download the prerelease from https://github.com/f3d-app/f3d/releases
[x] Locally test the prerelease on Linux
[ ] Locally test the prerelease on macOS (Intel)
[ ] Locally test the prerelease on macOS (Silicon)
[ ] Locally test the prerelease on Windows
[x] Locally test the python wheels on Linux
[ ] Locally test the python wheels on macOS (Intel)
[ ] Locally test the python wheels on Windows
[ ] If it fails, fix the issues in release branch, copy this paragraph and increment N
[ ] Else proceed to the next part

Release :

[ ] Commit, review and merge v2.4.0 version change in https://github.com/f3d-app/f3d CMakeLists.txt, pyproject.toml and the multiple doxygen\conf.py in the release branch
[ ] Tag v2.4.0 and push it to https://github.com/f3d-app/f3d: git tag v2.4.0 -m v2.4.0
[ ] Commit, review and merge adding 2.4.0 in https://github.com/f3d-app/f3d-superbuild versions.cmake in the main branch
[ ] Tag v2.4.0 and push it to https://github.com/f3d-app/f3d-superbuild: git tag v2.4.0 -m v2.4.0
[ ] Merge F3D release into master: https://github.com/f3d-app/f3d/compare/master...release
[ ] Trigger a release build using https://github.com/f3d-app/f3d-superbuild actions with v2.4.0 F3D version, v2.4.0 sb version and prerelease publish true
[ ] Finalize release note and add them to the release
[ ] Release
[ ] Update download links and update changelog in https://github.com/f3d-app/f3d doc
[ ] Update .github/ISSUE_TEMPLATE/new_release.md in https://github.com/f3d-app/f3d if needed
[ ] Communicate on discord
[ ] Communicate on reddit
[ ] Communicate on hackernews
[ ] Communicate on linkedin

Linux testing protocol:

Install F3D-2.4.0-RC1-Linux-x86_64-raytracing system wide
f3d testing/data/cow.vtp -> check render, orientation, press R and check raytracing
f3d testing/data/f3d.stp -> check render, orientation
f3d /path/to/any/new/file.format -> check render
rm -rf ~/.cache/thumbnails
pcmanfm (or another supported file manager)
Check that all supported files in testing/data have a generated thumbnails, especially for new file formats if any
Double click on supported file in testing/data, especially for new file formats if any and check it opens in F3D
Drag&Drop cow.vtp, Drag&Drop palermo_park.hdr, check render
cd examples/libf3d && mkdir build && cd build && cmake ../ && make
./cpp/check-engine/check-engine
./cpp/render-interact/render-interact testing/data/cow.vtp

macOS testing protocol:

Install F3D-2.4.0-RC1-macOS-x86_64-raytracing.dmg
Double click on cow.vtp, check render and orientation, press R and check raytracing (Intel only)
Double click on f3d.stp, check render and orientation
Double click on any new supported file.format, check render
Check all supported file in testing/data directory in finder have the f3d mark, if not, check that "open with" suggest F3D
Drag&Drop cow.vtp, Drag&Drop palermo_park.hdr, check render

Windows testing protocol:

Install F3D-2.4.0-RC1-Windows-x86_64-raytracing.exe, add F3D to path for all users
Start -> Disk Cleanup -> select thumbnails -> Ok -> Delete Files
Open testing/data directory in file manager
Wait for thumbnails to be generated
Check that every supported file has a generated thumbnails, except .tif.
Check that every supported file has a small "f3d" mark, for those that don't check that "Open with" -> "Use another app" suggest F3D.
Double click on cow.vtp, check render and orientation, press R and check raytracing
Double click on f3d.stp, check render and orientation
Double click on any new supported file format, check render
cd examples\libf3d && mkdir build && cd build && cmake ../ && cmake --build . --config Release
.\cpp\check-engine\Release\check-engine
.\cpp\render-interact\Release\render-interact testing\data\cow.vtp

Python testing protocol:

Use a venv or make sure f3d is not installed in your python environment
pip install f3d==2.4.0-RC1
python

import f3d
eng = f3d.Engine(f3d.Window.NATIVE)
eng.loader.load_geometry("/path/to/cow.vtp")
eng.window.render()
eng.interactor.start()

Release notes:
For F3D users:

Added a new option --point-type used to specify how to display points sprites
Add support for 3D Gaussians Splatting in binary .splat format
Added ability to cycle through available animations by pressing "W" hotkey
Added display of current animation name within cheatsheet

For libf3d users:

Added a new option model.point-sprites.type used to specify how to display points (only if model.point-sprites.enable is true)

@snoyer @Meakk please review the release note and focus points

Linux validated

Windows (11) testing:

OpenWith does not work
Splat reading or rendering does not work

MacOS intel and silicon validated, splat rendering is not working as expected.

2.4.0-RC2 test is successfull, moving forward!

Done

I push latest version to Flathub. Will appear in Flathub soon.


Json resource view

@acolebourne merge conflicts have cropped up, could you resolve them?

Hey @acolebourne, thanks for the pull request!
Unfortunately are merge conflicts that have cropped up that are blocking these changes from being merged.
I'm going to close this PR, feel free to re-open it if you have time to resolve the merge conflicts.


Composer should not raise warnings.

MacBook-Pro-van-Tim:iRail-work tim$ sudo composer require ircmaxell/tuli dev-master
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.
Problem 1
- The requested package ircmaxell/tuli could not be found in any version, there may be a typo in the package name.
Potential causes:

A typo in the package name
The package is not available in a stable-enough version according to your minimum-stability setting
see https://groups.google.com/d/topic/composer-dev/_g3ASeIFlrc/discussion for more details.

Read https://getcomposer.org/doc/articles/troubleshooting.md for further common problems.
Installation failed, reverting ./composer.json to its original content.
MacBook-Pro-van-Tim:iRail-work tim$

This should be fixed. can you try again?

Still the same error.

In your composer.json, you've set:
"name": "ircmaxell/php-tuli", just tuli would be okay.
Anyway, you should submit your app on https://packagist.org/ so that people can install it through composer :)

Renamed the package (I was originally going to name it php-tuli).
As far as packagist, it's still a bit early for that. I want to get it even remotely stable prior to that sort of publication...

Nevermind, submitted to packagist.


Fix CI badges

Per GitHub's own documentation, the syntax for the badge image is
https://github.com/<OWNER>/<REPOSITORY>/actions/workflows/<WORKFLOW_FILE>/badge.svg

Currently, ours is
https://github.com/<OWNER>/<REPOSITORY>/workflows/<WORKFLOW_FILE_MINUS_EXTENSION>/badge.svg

To follow GitHub's own documentation, use the filename plus extension.
After the split of the workflow files and the renaming in #305, the
links will no longer show just the workflow in question. Fix this by
grabbing the name of the workflow from the "name:" at the top of the
file and make it URL friendly with + instead of " ".
Link: https://docs.github.com/en/actions/monitoring-and-troubleshooting-workflows/adding-a-workflow-status-badge
NOTE: This is based on #305, due to the renaming of the workflows.

Rebased on main after #305 was merged and it turns out the URL can get a lot simpler so I did that. I am going to merge it now, holler if you don't like the change. Thanks for the review as always!


[ANCM] [out of process] Write stdout to EventLog when exit code is non-zero

Epic https://github.com/aspnet/AspNetCore/issues/8833
To better diagnose pre-main errors, we should buffer whatever's written to stdout and write to EventLog in event of a non-zero exit code.

To be clear, we mean both stdout and stderr.

Let's log the first 30KB and see where that takes us for now.

Acceptance checklist (check one item)

[ ] We decided not to take this fix.
[ ] The fix is tests-only.
[x] The fix contains product changes (check all items below).

[ ] Relevant XML documentation comments for new public APIs are present.
[] Narrative docs (docs.microsoft.com) are updated. (check one item below)

[ ] The change requires a new article. An issue with an outline has been filed here: [ISSUE LINK]
[ ] The change requires a change to an existing article. A closed docs PR with these changes is linked here:
[x] The change requires no docs changes.

[x] Verification has been completed. (check one item below)

[x] The change is in the shared framework and was verified against the following versions

SDK installer: 3.0.100-preview6-012113
ASP.NET Core Runtime: 3.0.0-preview6-19279-01
.NET Core Runtime: 3.0.0-preview6-27728-04

[ ] The change is in an OOB NuGet/NPM/JAR package and was verified against the following version of that package: [PACKAGE ID] [VERSION]


Performance hit from type instability in CompoundPeriods.CompoundPeriod

In canonical.jl, the function canonical:
function canonical(cperiod::ReverseCompoundPeriod)
    result = CompoundPeriod()
    for p in cperiod
        result = (result + sum(fldmod(p)))
    end
    return sum(fldmod(sum(result)))
end

Is not type stable. This makes arithmetic on different kinds of TimeDate quite slow:
@BenchmarkTools.btime TimesDates.TimeDate(Dates.unix2datetime(23)) + TimesDates.Millisecond(23)

outputs 79.224 μs (398 allocations: 69.86 KiB), and @code_warntype shows it contains an Any.
This is around three orders of magnitude slower than the operation would take if no type instability is present, and makes a noticeable difference when operating on large arrays/dataframes (for a million items, it adds ~79 seconds of overhead).
The problem seems inherent to using CompoundPeriod, due to it using an array with an abstract element type:
mutable struct CompoundPeriod <: AbstractTime
    periods::Array{Period, 1}

Even simple use cases produce any:
function slow(p::CompoundPeriods.CompoundPeriod)
    return CompoundPeriods.CompoundPeriod() + sum(fldmod(p.periods[1]))
end

@code_warntype slow(Dates.CompoundPeriod(Dates.Time(23)))

Body::Any
1 ─ %1 = $(Expr(:foreigncall, :(:jl_alloc_array_1d), Array{Dates.Period,1}, svec(Any, Int64), :(:ccall), 2, Array{Dates.Period,1}, 0, 0))::Array{Dates.Period,1}
│   %2 = invoke Dates.CompoundPeriod(%1::Array{Dates.Period,1})::Dates.CompoundPeriod
│   %3 = (Base.getfield)(p, :periods)::Array{Dates.Period,1}
│   %4 = (Base.arrayref)(true, %3, 1)::Dates.Period
│   %5 = (Main.fldmod)(%4)::Any
│   %6 = (Main.sum)(%5)::Any
│   %7 = (%2 + %6)::Any
└──      return %7

I don't see any way to fix this short of not using CompoundPeriod. If Period was a concrete rather than abstract type, with an enum member used to represent what kind of period it was, the performance issues would go away, but this would mean new period types could not be added after the fact.
One possible solution would be to use a struct containing a single member for each possible period type that a compound period might contain, all initialised to zero. Another is to stick to a UInt64 as the internal representation, like how nanosecond-precision Pandas datetimes are represented.

Thank you for the deeper dive.  As you know, CompoundPeriod is introduced by the stdlib Dates.  CompoundPeriods.jl was written to provide TimesDates.jl a fuller palette from which to reach over all TimePeriods.  CompoundPeriods was born of necessity -- Dates was not flexible enough in its own.  I share your desire for a stable and, so, cleaner implementation.  Please continue to offer thoughts.  I'll contemplate it too.

Thank you for the deeper dive.  As you know, CompoundPeriod is introduced by the stdlib Dates.  CompoundPeriods.jl was written to provide TimesDates.jl a fuller palette from which to reach over all TimePeriods.  CompoundPeriods was born of necessity -- Dates was not flexible enough in its own.  I share your desire for a stable and, so, cleaner implementation.  Please continue to offer thoughts.  I'll contemplate it too.

'''julia
mutable struct TimePeriods <: AbstractTime
nanosecond::Nanosecond
microsecond::Microsecond
...
hour::Hour
day::Day
week::Week
'''
then always construct 'TimePeriods(x::CompoundPeriod)' and compute using them, finally coverting back to Compound period.
(months, years either folded in or, as I have done in the past, keep then as distinct Annualesque vs Diurnalish unit set.)

( on phone .. formatting is out the window )

Improved speed of canonical in CompoundPeriods v3.1 (now 2x Dates.canonicalize).


Add Cloud (TSM) service notices and MQTT EOL notice

[x] Rebased/mergeable

@garylfowler Let me know when you're ready for this content to be available on the public docs.


Update prefix for NI local authorities

NI LA have LAN prefix here: https://dev.findthatcharity.uk/orgid/source/lan
It should be GB-LANI http://org-id.guide/list/GB-LANI

Fixed here: https://github.com/drkane/find-that-charity-scrapers/commit/6951cad47ac82b1ca5e7e8ad64ca0f803e701861 - But still need to delete the existing records & source

I noticed the prefix is still wrong in Dev version of FTC. Is the fix going into your new developments for data store?

Yep. It's in the dev dev version: https://ftc.ftc.dkane.net/orgid/GB-LANI-ANN


macOS/Safari console error message "ResizeObserver loop completed with undelivered notifications"

Hello,
I built a sticky-side visualization using this lines to include D3 and Scrollama:
<script src="https://d3js.org/d3.v5.min.js"></script>
<script src="https://unpkg.com/scrollama"></script>

When I visit the page in macOS (Big Sur) and Safari 14.1, I get this console error:

ResizeObserver loop completed with undelivered notifications

And the sticky section does not render.
In other browser, for example, Chrome, Firefox, Edge, I do not get this console error and the sticky section renders correctly.
Thank you very much,

I too are having issues with safari error messages for the site: https://www.antarctica.gov.au/news/explore-antarctica/auroras/
I'm not sure if it's an issue with how I'm debouncing/throttling anything but every other browsers seems okay.


Adds support for multiple urls in urlcondition

I noticed that the UrlCondition was limited to a single url and came across an old issue for this: https://github.com/OrchardCMS/Orchard/issues/1067
This adds support for checking each argument provided instead of the first argument.

@andrewcartwright1,
Thanks for having already signed the Contribution License Agreement. Your agreement was validated by .NET Foundation. We will now review your pull request.
Thanks,
.NET Foundation Pull Request Bot

Would be nice of you to update the documentation now. Thanks.

Done: https://github.com/OrchardCMS/OrchardDoc/pull/344 😃


[Security] Workflow package.yml is using vulnerable action actions/checkout

The workflow package.yml is referencing action actions/checkout using references v1. However this reference is missing the commit a6747255bd19d7a757dbdda8c654a9f84db19839 which may contain fix to the some vulnerability.
The vulnerability fix that is missing by actions version could be related to:
(1) CVE fix
(2) upgrade of vulnerable dependency
(3) fix to secret leak and others.
Please consider to update the reference to the action.

Fixed


Configure builds to run through Wercker.

Changes

Switch CI builds to Wercker because it's a billion times faster (and we're already using it for CI on a lot of other projects). :traffic_light:

For review: @DoSomething/front-end
Scientific Measurement

(Two Wercker builds have completed, while we're still waiting for the first Travis build to start...)

:+1:


Correctly rename endpoint_id field

What did you implement:
The endpoint_id field is stylized as EndpointID in the Docker API when returning container-details for a network (1).
How did you verify your change:
When previously I called .inspect on a Docker network, it failed with the (Serde) error:
missing field `EndpointId`

After changing the rename-definition of the endpoint_id field in NetworkContainerDetails it now works correctly.

sry for the delay @pitkley. thanks for the patch


⚠ ClamAV has degraded performance

In 53a7384, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 68 ms

Resolved: ClamAV performance has improved in 3ccb52a after 5 minutes.


Undefined reference to WriteTrackDescriptor error when calling TRACE_EVENT.

Using branch: v23.
compiling my program outputs the error below:
void perfetto::internal::TrackRegistry::SerializeTrack<perfetto::Track>(perfetto::Track const&, protozero::MessageHandle<perfetto::protos::pbzero::TracePacket>): ...../third-party/perfetto/sdk/perfetto.h:13451: undefined reference to perfetto::internal::TrackRegistry::WriteTrackDescriptor(std::string const&, protozero::MessageHandle<perfetto::protos::pbzero::TracePacket>)

occurs when program calls the TRACE_EVENT macro.
Project is compiled using Makefiles, which links object files to a shared library call libperfetto.so
Similiar to this:
g++ -I<path_to_perfetto_sdk_folder> -c main.cpp
g++ -I<path_to_perfetto_sdk_folder> -c includedHeader.cpp
g++ -L<path_to_shared_library> -o execuetable main.o includedHeader.o -lperfetto -lpthread

Any help is appreciated. Thanks

What you're doing is strongly discouraged and unsupported - see this page.
We're working on defining a C API which you will be able to do this which will be available in O(months).

If yuou really want to go there you need to NOT build with-fdefault-visibility=hidden
The current C++ API surface has never been designed to work across a .so boundary. Not even sure will ever work.
Also it's a C++ ABI so if you go there you need to be 100% sure to use the same c++ library, same compiler, same flags.

Any recommendations for how to integrate in a non-cmake environment? Makefiles only.

Hey :)
If you are using the amalgamated build then everything has already been bundled into two files:

perfetto.cc
perfetto.h

Include these files as you normally would any other C++ files in your makefile.
In terms of flags you'll need at least -std=c++11 or later and -lpthread but I doubt that is the issue here.
What does the trace event macro invocation look like? If it looks like:
  TRACE_EVENT("rendering", "LayerTreeHost::DoUpdateLayers");

you must declare the matching storage:
PERFETTO_DEFINE_CATEGORIES(
    perfetto::Category("rendering")
        .SetDescription("Events from the graphics subsystem"),
    perfetto::Category("network")
        .SetDescription("Network upload and download statistics"));

as in the example here: https://perfetto.dev/docs/instrumentation/tracing-sdk#track-events
Are you using a custom data source? If so have you ensured you have defined PERFETTO_DEFINE_DATA_SOURCE_STATIC_MEMBERS(CustomDataSource);?
Do debug this efficiently it would be useful to know:

Which operating system
Which architecture
Which compiler (I see gcc but which version?)
The full compile log

and, ideally, a minimal example that reproduces the issue.


v0.8.7_07: Boundary line of dropdown box is missing

SEVERITY:  Minor
MODULE:

Mountain Chart
Bubble chart
Line chart
Pop by age chart
Bar chart

Platform:  Windows 7 / Firefox  43.0
RELEASE: v0.8.7
STEPS TO REPRODUCE:

Navigate to the URL : http://static.gapminderdev.org/vizabi/release/v0.8.7/preview/mountainchart.html
Mountain Chart will be loaded.
Click “Color”
Click drop down arrow
Note that right boundary line of dropdown box is missing

ACTUAL RESULTS:
Right boundary line of dropdown box of colors is missing
EXPECTED RESULTS:
All boundary lines should be marked properly
SCREENSHOT:

This picker is/will be replaced. Let's put it on hold for now

this selector is removed now =)


scorecard package version wrong

Describe the bug
I have the latest unstable channel.
[root@gaming:~]# nix-channel --update nixos-unstable
unpacking channels...

[root@gaming:~]# nix-instantiate --eval -E '(import <nixos-unstable> {}).lib.version'
"22.11pre405311.97747d3209e"

[davidak@gaming:~/code/pyzufall]$ nix-shell '<nixos-unstable>' -p scorecard --run "scorecard version"
         __  ____     ____    ___    ____    _____    ____      _      ____    ____
        / / / ___|   / ___|  / _ \  |  _ \  | ____|  / ___|    / \    |  _ \  |  _ \
       / /  \___ \  | |     | | | | | |_) | |  _|   | |       / _ \   | |_) | | | | |
  _   / /    ___) | | |___  | |_| | |  _ <  | |___  | |___   / ___ \  |  _ <  | |_| |
 (_) /_/    |____/   \____|  \___/  |_| \_\ |_____|  \____| /_/   \_\ |_| \_\ |____/
./scorecard: Security Scorecards

GitVersion:    v4.2.0
GitCommit:     44ad5f53ad75aa220fc16c1bd2ab3facdf4d69c1
GitTreeState:  clean
BuildDate:     2022-04-22T23:22:43Z
GoVersion:     go1.17.10
Compiler:      gc
Platform:      linux/amd64

the version should be 4.6.0 according to https://search.nixos.org/packages?channel=unstable&show=scorecard&from=0&size=50&sort=relevance&type=packages&query=scorecard
maybe i'm doing something obvious wrong and i don't see it because i'm too tired
or it could be that it is actually the right version, but the output is wrong (had that before with go programs). but it has a check for that which does not fail
nix build -f "<nixos-unstable>" scorecard
Steps To Reproduce
Steps to reproduce the behavior:

...
...
...

Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Additional context
Add any other context about the problem here.
Notify maintainers
@06kellyjac
Metadata

system: "x86_64-linux"
host os: Linux 5.15.62, NixOS, 22.05 (Quokka), 22.05.2711.294ef54a1e8
multi-user?: yes
sandbox: yes
version: nix-env (Nix) 2.8.1
channels(root): "home-manager-22.05.tar.gz, nixos-22.05, nixos-hardware, nixos-unstable"
nixpkgs: /nix/var/nix/profiles/per-user/root/channels/nixos

@davidak I'm not the maintainer

@jk sorry. your github username is listed here. maybe that's someone else https://github.com/NixOS/nixpkgs/blob/nixos-unstable/pkgs/tools/security/scorecard/default.nix#L75

@06kellyjac could you change your nixpkgs maintainer name to the github user name to prevent such confusion?

@06kellyjac could you change your nixpkgs maintainer name to the github user name to prevent such confusion?

that's not a requirement of the nixpkgs maintainer list and I'm far from the only one. I kindly ask that you check the github attribute of the maintainer as that's what it's for.
> builtins.length (lib.filter (i: (lib.toLower i.n) != (lib.toLower i.gh)) (lib.mapAttrsToList (n: v: { inherit n; gh = v.github; }) lib.maintainers))
302

You can check that in much the same way that you check your channel version.
λ nix-instantiate --eval --strict -E "with import <nixos-unstable> {}; builtins.map (i: i.github) scorecard.meta.maintainers"
[ "06kellyjac" ]

or you can click this link on https://search.nixos.org

On the topic of fixing your issue:
There is a line that checks the version is accurate (and version drift is a problem with building go programs) but it's actually commented out at the moment.
However it can only be what's set via ldflags which is 4.6.0 or the fallback of devel
I've also validated that the actual copy in nixos-unstable is accurate
λ nix run github:nixos/nixpkgs/nixos-unstable#scorecard version
         __  ____     ____    ___    ____    _____    ____      _      ____    ____
        / / / ___|   / ___|  / _ \  |  _ \  | ____|  / ___|    / \    |  _ \  |  _ \
       / /  \___ \  | |     | | | | | |_) | |  _|   | |       / _ \   | |_) | | | | |
  _   / /    ___) | | |___  | |_| | |  _ <  | |___  | |___   / ___ \  |  _ <  | |_| |
 (_) /_/    |____/   \____|  \___/  |_| \_\ |_____|  \____| /_/   \_\ |_| \_\ |____/
./scorecard: Security Scorecards

GitVersion:    v4.6.0
GitCommit:     2cbf5afd5460b51fd40939f8c44b32543b1a0bcb
GitTreeState:  clean
BuildDate:     2022-08-18T21:58:35Z
GoVersion:     go1.18.5
Compiler:      gc
Platform:      linux/amd64

if you look at the output of your command not only is the git version old but so is the commit, and it's using go 1.17 which we moved from quite a long time ago
Looking at the output you provided I think it's highly likely you have <nixos-unstable> channels for both your root user and your normal davidak user
run nix-channel --list and nix-instantiate --eval -E '(import <nixos-unstable> {}).lib.version' on your normal user and we should have found the issue
From there you can decide whether you keep updating the channel for both or you remove it for one user or the other.

or you can click this link on https://search.nixos.org

thanks. didn't knew that

run nix-channel --list and nix-instantiate --eval -E '(import <nixos-unstable> {}).lib.version' on your normal user and we should have found the issue

the first has empty output, so i think it has no channels. the second puts out the same version as root
[root@gaming:~]# nix-channel --list
home-manager https://github.com/nix-community/home-manager/archive/release-22.05.tar.gz
nixos https://nixos.org/channels/nixos-22.05
nixos-hardware https://github.com/NixOS/nixos-hardware/archive/master.tar.gz
nixos-unstable https://nixos.org/channels/nixos-unstable

that does look correct and i think nix-channel --update should update all channels, but i also run the update for the specific channel, so it should be up to date
[root@gaming:~]# nix-instantiate --eval -E '(import <nixos-unstable> {}).lib.version'
"22.11pre405311.97747d3209e"

is that the latest version or maybe an old one?
[davidak@gaming:~/code/pyzufall]$ nix-shell '<nixos-unstable>' -p scorecard --run 'readlink -f $(which scorecard)'
/nix/store/nydkvcw9nqwhnlr665w9kaink3wk987k-scorecard-4.2.0/bin/scorecard

As I said nix-instantiate --eval -E '(import <nixos-unstable> {}).lib.version' on your normal user will likely give a different output to your root user
I've not spotted anything in hydra that matches that output path but I have no idea how to actually check everywhere
Or it could be a case of having overrides in your ~/.config/nixpkgs/config.nix?

As I said nix-instantiate --eval -E '(import <nixos-unstable> {}).lib.version' on your normal user will likely give a different output to your root user

[root@gaming:~]# nix-instantiate --eval -E '(import <nixos-unstable> {}).lib.version'
"22.11pre405311.97747d3209e"

[davidak@gaming:~]$ nix-instantiate --eval -E '(import <nixos-unstable> {}).lib.version'
"22.11pre405311.97747d3209e"

no, that's not it
[davidak@gaming:~]$ nix-channel --list

the normal has no channel configured

hmmmmm, do you get a newer version on root or also the old 4.2.0 copy?
Only other thing I can think of is keep adding -v flags (e.g. -vvvvvv) until you notice something weird

do you get a newer version on root or also the old 4.2.0 copy?

[root@gaming:~]# nix-shell '<nixos-unstable>' -p scorecard --run "scorecard version"
...
GitVersion:    v4.2.0

same version


Allow choose maven location to user default .m2 folder

Is your feature request related to a problem? Please describe.
No
Describe the solution you'd like
Currently, by default, .dbeaver-drivers\maven contains related maven jar. This is duplicate if user have a existing .m2 folder globally which already have those maven jar, This is a quite common case. Suggest to give user a option to use their curent .m2 folder location
Describe alternatives you've considered
Open for any other ideas
Additional context
No

Thank you for the suggestion. As a workaround you can add drivers manually from local repository.