Should ManagedSpan become ManagedSpanContext?

As @bensigelman pointed out, a Span behaviour is undefined after it is finished, but its SpanContext remains valid.
Would we lose any crucial functionality by switching to ManagedSpanContext instead of Span?
I know our tracing code that uses the current concept can be adapted relatively easy.
However, since this change potentially has massive impact, I'd suggest getting it over with sooner rather than later before there is no way back.
@adriancole @wu-sheng @yurishkuro I would love to hear your thoughts on this!

I think I'll start working on a PR for this either way to keep momentum going.

There will certainly be some loss of functionality (adding tags / logs to the active span without a preexisting reference)... I just think that's a fine price to pay in exchange for the elimination of a nasty race and generalization of span-starting overall.

There seems to be three use cases - possibly we can think of a mechanism that could help with both:

To establish a reference for a newly created span - this reference currently could either be ChildOf or FollowsFrom depending upon whether the referenced span has finished. Obtaining span or span context from the span manager would not provide this information - so possibly the span manager needs to provide some additional knowledge that can be used when adding the reference to the child span.

To enrich the current span - only relevant when the span is 'active'. I believe this is important if we have information that needs to be added during or at the end of the span (i.e. logs, tags such as http.status_code).

To finish the current span - again only relevant if the span is 'active', but necessary if starting and finishing a span are performed (for example) if separate callbacks.

@sjoerdtalsma @bensigelman How about providing a mechanism on the SpanManager (which could eventually move to Tracer?) to retrieve an active Span from its SpanContext - so returns null if not active. The SpanManager could just deal with SpanContext, but it would provide a way to deal with the three cases above.

@objectiser I have learned that it is probably best to keep the scope of the SpanManager or SpanContextManager as small as possible.
Initially I tried to solve many concerns in one library, but this led to huge discussions on where to go (https://github.com/opentracing-contrib/java-globaltracer/pull/1 got 185 comments!)
Therefore I think starting / finishing of spans should preferably be kept separate from managing / releasing them.
Let's try to keep this discussion limited to managing Span vs SpanContext. Do you have a pressing use-case that would not work with ManagedSpanContext?

@sjoerdtalsma No pressing use-case currently. Would be good if could obtain span from context though, but that is more a spec question.

@sjoerdtalsma I seem to be missing the rationale for this. Why not just manage the span? It's especially useful if you try to integrate logging, e.g. letting the code use the standard logging API (e.g. slf4j) which behind the scenes directs the logs into the current span.

@yurishkuro That would seem valid reasons for either managing the Span, or making the SpanContext richer.
I think another compelling reason is closing an active span where the span is not explicitly passed all the way through the code path and processing is split up between creation and closing (e.g. most async frameworks).
Just inviting everybody's opinion on this..

or making the SpanContext richer.

if by that you mean getting access to Span from SpanContext, as was mentioned above, then I fail to see the point of not storing Span to begin with. SpanContext is not meant to know about its span.

I think another compelling reason is closing an active span where the span is not explicitly passed all the way through the code path and processing is split up between creation and closing (e.g. most async frameworks).

I'd be careful with that, we've been bitten by it. Personally my preference is to use framework's native means (some form of context) to pass server-side span from in-interceptor to out-interceptor. But some frameworks do not provide anything such context, and then the thread-local active span is the only solution (with the usual caveat that it's very easy to screw up thread local in async frameworks).

@sjoerdtalsma @bensigelman @yurishkuro
At the risk of making the discussion more complex, rather than deciding whether Span or SpanContext is better, we could consider the issue from a different level of abstraction.
If we had a concept such as Conversation (name not important) which represented the stack of active Spans for the current thread (of control). Rather than propagating spans, we instead propagate conversations - so a conversation is only owned by a single thread at a time.
The Conversation can provide access to the current active span - allowing additional tags/logs to be defined. If handling a request asynchronously, the complete conversation would be propagated between threads.
Where additional threads are used to perform work (e.g. concurrently) on behalf of the Conversation, a conversation reference (which is essentially just a SpanContext) would be passed - thus avoiding the issue of multiple threads trying to access/modify a span - only the thread owning the conversation would be able to modify and affect the lifecycle of the spans.
The executors propagating the ref could optionally implicitly start a child span to scope the work performed in the executed thread, providing an active span (conversation) upon which logs etc could be recorded.

@objectiser we have a similar concept, in my company APM product, named transaction, which has the can provide access to the current active span - allowing additional tags/logs to be defined, and represented the stack of active Spans for the current thread
But, we don't propagation it, because there will be multi-threads to handle it, I think this is a bad situation. As you said:

thus avoiding the issue of multiple threads trying to access/modify a span - only the thread owning the conversation would be able to modify and affect the lifecycle of the spans.

I think it belongs to only one thread, it's not possible all the time. Thread-A calls Thread-B, and you propagation conversation from A to B, sometimes, Thread-A will not wait Thread-B, and trace in-Thread-A will continue. How can you handle this?

@wu-sheng This is where the nature of the relationship between Thread-A and Thread-B is important. If the conversation is being passed from A to B, then A should no longer have access to that converation. Thread-B will be the new owner of that conversation and be able to access/modify the current active span associated with it.
If the relationship between Thread-A and Thread-B is delegating some work on behalf of Thread-A to B, but A still retains control over the conversation, then the conversation reference (i.e. span context) would be passed to Thread-B instead. Whether Thread-B then creates a ChildOf or FollowsFrom reference would dependent on other factors.

@sjoerdtalsma I think SpanContext and Span have different purpose, when you propagation, only SpanContext is your concern, Span is about this rpc invocation or something like this.

or making the SpanContext richer.

-1 on this, it's not a good idea. This will mix SpanContext and Span.

@objectiser , clearly, you have your mechanism to propagation span-context, rather than conversion. Why do you need to propagation conversion? Not propagation span-context all the time? I thought it is good enough.
In order to choose your propagation ways, you must know the thread-model, from a tracer developer side, or need to explain the diff to users, I did not see the advantage.
Can you tell me more about your tracer implementation?

@wu-sheng This is not based on existing approach - just trying to think of a more general way to solve various issues.
As has been mentioned above, the benefit of having access to the span is being able to add logs/tags. The body of the work performed within the scope of a span may not be in the same thread that started the span - just to provide a simple example:
  public void doGet(HttpServletRequest request, HttpServletResponse response) {
      final AsyncContext acontext = request.startAsync();
      acontext.start(new Runnable() {
         public void run() {
            // Logging - where would it go?
            HttpServletResponse response = acontext.getResponse();
            ……
            // How would HTTP status code be associated with current span?
            acontext.complete();
   }

The http.status_code could be associated, if the framework can retain the Span as part of its local context (as mentioned by @yurishkuro ) but may not always be possible. It may cause problems in something like Camel, where the context is passed through complete flow, so means it would be necessary to maintain its own stack of Spans (I believe - still to investigate further).

@objectiser I see, thank you for your explanation. 👍

@wu-sheng no problem - although my suggestion would still have problems if the code tried to (for example) log a message at the end of the doGet method, as the conversation would have been transferred.

@objectiser , yes, it's true. I think avoid all situations, on coding level, is not unrealistic. It's more likely a development guide.
In that scene, you mentioned, if call span.log after transferred, as a tracer, you only can throw exception, do nothing, just return or still log, facing multi-thread issue. You can't forbid using span object in code-level.

BTW. In my experience, all APM/tracer user, if they need use sdk (not auto-instrumentation), I think they must know concepts, like span, trace, context, etc. And know how to propagation context between thread and cross-process, how to start/finish span. Because of this, nearly, all commercia-APM-products in China are using auto-instrumentation. OpenTracing Spec (all members) should help people understand these concepts.
Not only easy to understand/use for experts, but for rookies. Keep OT spec SDK as easy as possible. (Not include contrib-lib, like this one) @bensigelman

Maybe the Span api should have an isFinished() method?
I think managing Span over SpanContext isn't actually bad, but you should know whether you can actually do things with the span or it already finished and basically became a SpanContext container?

There are three reasons to thread Span or SpanContext through a la SpanManager:

Make it easy to start a span ~anywhere without having a local var referring to a parent SpanContext [only need to manage a SpanContext for this, obviously]
Make it easy to log to / tag / otherwise reference the current Span without having a local var referring to it [one must manage a Span for this, also obviously]
Knowing when to call finish() in the first place

For Dapper in C++ (note that this doesn't make nearly as much sense in Java), it was this final reason that pushed SpanContext (actually called "TraceContext" at Google, but that is not important here) into this role rather than Span... the SpanContext was reference-counted, and when the final reference dropped the Span was finished implicitly. In fact, that was the only way to finish the Span.
This was really elegant in some cases. It was also kind of a bug farm. In my defense, I didn't come up with the idea... but I wish I had killed it :)
Anyway, I am still forming my own opinion about how to resolve all of these interrelated concerns (esp about the core OT APIs), but my leaning du jour is to pass a Span instance around and have a hook to remove it from any Manager and/or thread-local storage when a Span is finished.

Anyway, I am still forming my own opinion about how to resolve all of these interrelated concerns (esp about the core OT APIs), but my leaning du jour is to pass a Span instance around and have a hook to remove it from any Manager and/or thread-local storage when a Span is finished.

+1

Closing this for now.
It is probabaly more important to gain experience with the SpanManager from real end-user experience, so there is merit to keeping the lib stable for now.
Besides, this discussion will almost certainly be repeated again in the standardisation effort to bring in-process propagation into the spec (https://github.com/opentracing/specification/issues/23).


youtube-music: init at 1.17.0

Description of changes
Youtube-music is a electron based app enabling to access youtube music through a native app
Things done

Built on platform(s)

[X] 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
[X] Tested basic functionality of all binary files (usually in ./result/bin/)
22.11 Release Notes (or backporting 22.05 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
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[X] Fits CONTRIBUTING.md.

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/prs-ready-for-review/3032/1400

thanks @SuperSandro2000 for the comments. I applied them and repushed it.


Microsoft Teams issue in Android

Most of the schools now are starting to use Microsoft Teams to interact with the students. There's an issue with Android App as it doesn't show the files for a team. Desktop app and IOS app works and shows the files. Can this be fixed a.s.a.p.? Thanks

@nunesric
thank you for submitting feedback.
I think the best way forward is if you open a service ticket in your tenant so this can get resolved ASAP. Based on the outcome let me know if it is something that can be called out in the docs.
Please follow this link to contact support for business products:https://docs.microsoft.com/office365/admin/contact-support-for-business-products
Please keep us posted here on the resolution so we can feed whatever information you discover into the content.


⚠ Bofrost.at has degraded performance

In 7e49195, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 976 ms

Resolved: Bofrost.at performance has improved in 39af706.


Add logs for authn config and token type

Please provide a description for what this PR is for: Add logs for authn config and token type.
[ ] Configuration Infrastructure
[ ] Docs
[ ] Installation
[ ] Networking
[ ] Performance and Scalability
[ ] Policies and Telemetry
[ X] Security
[ ] Test and Release
[ ] User Experience
[ ] Developer Infrastructure
Pull Request Attributes
Please check any characteristics that apply to this pull request.
[ ] Does not have any changes that may affect Istio users.

@lei-tang: PR needs rebase.

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

However: metrics on errors and types of tokens that are used would be very important.


gpt-4o-mini model

subj

I added it to my fork, https://github.com/infosechoudini/chat-gpt-lib-rs, i still need to write tests but if you want, you can pull my repo.


incremental crawling and starting URLs question

How can I implement an incremental crawler using Norconex HTTP Collector?   I implemented a simple crawler with a max # of documents, and when I ran it again, it appeared to start exactly where it left off.  If the crawler reaches max documents when many more are queued, what is the best way to identify what to crawl next time?
I can obtain the starting URLs from a CSV, and obtain the URLs to start with (e.g. those not finished) by implementing a crawl listener that can track this information.   The question is not whether it is possible, but what is the best way?
Is there a way to obtain the URLs to crawl via a database query?

Beginnings of the project are present at https://github.com/danizen/trynorconex.   For more context, https://medlineplus.gov/ has a large number of "approved organizations".  We need to crawl these periodically to identify new potential articles (monitoring).  We also need to crawl links already present in MedlinePlus for review (topic review).  As architect, I am helping the team out.

If you want to recrawl the same pages and pick-up changes each time, maybe max docs is not what you are after.   I recommend you do not limit the maximum documents and you restrict what you are crawling some other way, mainly using URL patterns.
For instance, to crawl your organizations, I would have this page as a start URL:
https://medlineplus.gov/organizations/all_organizations.html and use <maxDepth> to crawl X level deep in each sites you want.
I would add a mix of reference filters (taking place before download and links extraction), and document filter (taking place after document download and URL extraction).
The problem I see is if you want more than 1 level deep, then you'll have trouble sticking to each organization sites only (as those sites can have external links too).  If that is a concern, then it would be best to create a seed list instead (with stayOnDomain being true).
You mention a database query, which suggests you can obtain the org list from its database source.  Unfortunately, there is currently no way to support dynamic seed lists from the crawler config, but you can get there some other ways.  One approach would be to create a separate process that periodically generates a seed file (one URL per line) and reference it in your crawler config like this:
<startURLs stayOnDomain="true" stayOnPort="true" stayOnProtocol="true">
     <urlsFile>/path/to/generatedSeedFile</urlsFile>
</startURLs>

Alternatively, you can create a custom "sitemap.xml" that would be rendered dynamically somewhere on your site and replace <urlsFiles> with <sitemap>.
Does one of these approaches work for you?

Generating a file from the database and feeding it to urlsFile via a variable is quite reasonable.  Also, the maxDocuments limit was dictated because I'm still getting started, and I didn't want it to run too long.
I see the configurable recrawlableResolver - does that imply that if I repeat a crawl with the same directories and have such a configuration that the crawler will skip some URLs on a subsequent recrawl?
Related question - is there documentation on the data present in the crawl data store?   I am still using the default mvdata store, but it might be useful to understand what data is present.

RecrawlableResolver is to find out if a document should be recrawled or not based on whatever condition you have.  The GenericRecrawlableResolver does it based on a period of time.  Documents that have been crawled in less than X time ago will be skipped until next recrawl (if enough time has past then).
The crawl store is the crawler inner caching and not meant to be used directly in your own code. The same information is found as document fields sent to your committer (unless you toss them out) so you should be able to get what you need relying on document metadata.
Still, if you want to know, this is currently the list of possible information kept in the crawl store for each documents:
reference
parentRootReference
isRootParentReference
state
metaChecksum
contentChecksum
contentType
crawlDate
depth
sitemapLastMod
sitemapChangeFreq
sitemapPriority
originalReference
referrerReference
referrerLinkTag
referrerLinkText
referrerLinkTitle
referencedUrls

They are a serialization of HttpCrawlData

Thanks, Pascal.
I think my questions are answered.   I have to give you a lot of credit for writing this.  Our crawler and index of choice at work is IBM Watson Explorer.   I am no fan.   The problem replacing this with ManifoldCF/Solr er ES or with LucidWorks Fusion is that you are still configuring the crawl through a GUI.   Even my little repository shows that with Norconex, you can configure the crawl via a project checked into git, then can then be subjected to CI/CD to some sense.   This is a big win.

Thank you! We always appreciate good feedback like yours. You may be interested to know the latest snapshot now offers a way to obtain URLs dynamically.  If you do not mind a bit of Java coding, you can implement your own IStartURLsProvider class and configure it like this:
<startURLs ...>
    ...
    <provider class="YourProviderClass"/>
</startURLs>

The site documentation will be updated soon to reflect this addition.

Cool.    I will use that, and if the need arises, I will not hesitate to add an HDFS or WebDav committer to get a more robust pipeline involved.   The life of an architect involves too little coding, and Norconex is shaping up to scratch that itch for the nonce.

Let us know of your progress with creating HDFS/Webdav committers if you end up having time to build them.  They would be nice additions for sure!


Version 7.0.0 not working with os httphandlers

If I am using
AppContext.SetSwitch("System.Net.Http.UseSocketsHttpHandler", false);
with version 7.0.0 at least Indices api Exists doesnt work correctly. if I am using 7.0.0-beta1 everything is ok.
Here is code to reproduce
static void Main(string[] args)
{
AppContext.SetSwitch("System.Net.Http.UseSocketsHttpHandler", false);
var defaultIndex = "nonexist_index";
var pool = new SingleNodeConnectionPool(new Uri("http://localhost:9210"));
var settings = new ConnectionSettings(pool)
    .DefaultIndex(defaultIndex)
    .DisableDirectStreaming()
    .PrettyJson();

var client = new ElasticClient(settings);

var response = client.Indices.Exists(defaultIndex);
if (response.ApiCall.HttpStatusCode != (int)HttpStatusCode.NotFound)
   throw new Exception("Should be 404 status code.");

}

Thanks for opening @lukapor, we'll need to investigate.

I can replicate an issue. The HttpStatusCode is null in this scenario, and an exception has been thrown, which can be viewed on response.OriginalException
System.Net.Http.HttpRequestException: An error occurred while sending the request. ---> System.Net.Http.WinHttpException: Error 87 calling WinHttpSendRequest, 'The parameter is incorrect'.
   at System.Net.Http.WinHttpException.ThrowExceptionUsingLastError(String nameOfCalledFunction)
   at System.Net.Http.WinHttpHandler.InternalSendRequestAsync(WinHttpRequestState state)
   at System.Net.Http.WinHttpHandler.StartRequest(WinHttpRequestState state)
   --- End of inner exception stack trace ---
   at System.Net.Http.HttpClient.FinishSendAsyncUnbuffered(Task`1 sendTask, HttpRequestMessage request, CancellationTokenSource cts, Boolean disposeCts)
   at Elasticsearch.Net.HttpConnection.Request[TResponse](RequestData requestData)

This occurs when making the request, and before a HTTP request is actually sent.

My initial suspicion here is that this relates to the introduction of RequestDataContent in https://github.com/elastic/elasticsearch-net/commit/a525ac8fa5bbac0f387cc14c2689d137d517b893, which is used instead of StreamContent.
/cc @Mpdreamz

opened #3925 to address

This will be fixed in the next release


MoverScore

Adding MoverScore metric. A referenced heavy metric.

@jordiclive: thanks for adding this! I've just tested it locally and it works fine, there's just one slight problem with installation – pyemd doesn't install with the moverscore package, so I had to install it by hand. The moverscore repo has the dependency in requirements.txt, but not in setup.py.
I guess the correct solution would be asking the authors to add the dependency & wait, but maybe we just can add this explicitly into requirements-heavy.txt? What do you think?

No problem! Yes, I noticed that. I thought I added it to requirements-heavy.txt, so that was what I was going to suggest.

Oops, I can actually see it there now – maybe I messed up something in my checkout. Thanks @jordiclive !


conda requirements

Hi
Can you mention how to install the dependencies for DD protocol?
Also I have a 3 million small molecule library in sdf format, can I use it as a test for docking?
Thanks
Deb

The [https://github.com/jamesgleave/DD_protocol/blob/main/utilities/environment.yml](yml file) should help with installing the dependencies. SDF files should be good for docking, depending on what program you are going to use. Best,
Francesco

Hello Francesco.
Keras dependency is missing in https://github.com/jamesgleave/DD_protocol/blob/main/utilities/environment.yml. The version that is automatically installed in conda, based on the rest of the requirements, has this problem when loading the models.
"AttributeError: 'str' object has no attribute 'decode'"
https://stackoverflow.com/questions/53740577/does-any-one-got-attributeerror-str-object-has-no-attribute-decode-whi
What version of Keras should we install?
Thank you so much.

Hi,
Have you tried to reinstall the h5py package as they suggested in that post? In our machines, we have keras 2.6.0 and h5py 3.1.0

hola, yo tengo el mismo problema con conda, podrías proporcionarnos un listado de las dependencias necesarias e instaladas en tu sistema con su respectiva versión, de ante mano te agradezco


Preserve job logs

To debug it is important to preserve job logs. We need to explore the ability to preserve logs when jobs fails or completes

I am not sure what needs to be done here and how is this different from vanilla k8s behavior. the deep learning training logs can be relatively large, so is the idea to preserve these logs and for how long.
why not use the regular constructs of all logs get re-directed to sysout and can be then directed to appropriate logging system.
I understand the value in being able to see logs of failed jobs(assuming that appwrapper is just a job), but how/why/or should this be different from regular jobs behavior.
because appwrapper allows us to mix heterogenous resources, an alternative might be to just create a pvc along with the training and redirect the logs to there.
I feel like this might end up being how to write the appropriate appwrapper job vs a fundamental change on our end. what do you think?

Regular jobs get deleted explicitly by the user and here MCAD controller would delete the AW as soon as it completes.
I agree a better logging solution in the system, outside MCAD, is the right way to address this in the stack.
As a stop gap measure, MCAD can let the AWs hang around for a while after completion and lazy cleanup takes place.

@asyoussef @atinsood lazy cleanup of AWs will cause resources to be reserved for AW, App logs should be in the respective logging system or in COS. Closing this issue for now, please feel free to reopen.


Non-iterative solution for monin obukhov does not work

When running the monin_obukhov with noniterative_stable_sol = true, after a few hours the surface energy flux becomes very large, and the simulation breaks:

Strangely, It seems I cannot reproduce this surface energy flux with the saved state. We need to further look into it. I'm using this branch
cc @akshaysridhar

Here is what I get when I'm trying to reproduce it during the simulation with the cache p:
julia> lhf = copy(p.surface_conditions.lhf)
Float32-valued Field:
  Float32[1.25908f-9, 1.17824f-9, 1.07411f-9, 1.02467f-9, 1.4283f-9, 1.35636f-9, 1.23908f-9, 1.18067f-9, 57.1864, 50.0592  …  8.74563f-10, 8.25465f-10, 1.17824f-9, 1.09253f-9, 9.83754f-10, 9.33492f-10, 1.25908f-9, 1.17824f-9, 1.07411f-9, 1.02467f-9]
julia> Fields.bycolumn(axes(Y.c.uₕ)) do colidx
           (; coupled) = p
           !coupled && get_surface_fluxes!(Y, p, colidx)
       end
julia> extrema(parent(lhf))
(-1.0434099f-10, 95925.31f0)
julia> extrema(parent(p.surface_conditions.lhf))
(-1.0855042f-9, 148.58275f0)

I guess I shouldn't expect lhf and p.surface_conditions.lhf to be exactly the same as p has the current state while p.surface_condition.lhf is calculated from the previous state? But I don't understand why there could be a large difference, and I couldn't find the input that produces the extreme lhf values.

It's probably from a problem in SurfaceFluxes. See https://github.com/CliMA/SurfaceFluxes.jl/issues/71

I think this has been fixed.


Basic functionality of set in not working

@luanpotter Basic set functionality is not working in Dart VM version: 2.8.4 (stable)
OrderedSet<int> items = OrderedSet();
items.add(2);
items.add(1);
items.add(2);
print(items.toList());

Result:    [1, 2, 3]
Expected: [1, 2]

Unlike Dart's SplayTreeSet, it allows for several different elements with the same priority to be added.

So it's intended that elements with same priority are allowed. Not sure if we should allow or not identical elements, up to debate.
But there is indeed a weird issue if you are seeing 3 there haha. Should be [1, 2, 2]

Added a test for it here, seem to be working as expected: https://github.com/luanpotter/ordered_set/pull/7

So it's intended that elements with same priority are allowed. Not sure if we should allow or not identical elements, up to debate.

If identical elements are allowed, then it is not a Set any more by definition, it is a priority queue.

So it's intended that elements with same priority are allowed. Not sure if we should allow or not identical elements, up to debate.

If identical elements are allowed, then it is not a Set any more by definition, it is a priority queue.

It is a set since the objects are unique, not the priority of the objects.

@spydon That is precisely my point. That previous statement I quoted means that it is not clear whether uniqueness is guaranteed or not. If it is a set, then the objects must be unique according some definition of equality. If this is not guaranteed (the "up to debate" thing) then it should not be called a set.

@spydon That is precisely my point. That previous statement I quoted means that it is not clear whether uniqueness is guaranteed or not. If it is a set, then the objects must be unique according some definition of equality. If this is not guaranteed (the "up to debate" thing) then it should not be called a set.

Aah missed parts of the thread, you are correct.

This was fixed in #19.


BZ839630 reproducer

The 5.3.x branch is no longer maintained, but the I merged this one anyway. The issue has been fixed, the tests now passes and the merge was clean. See https://github.com/droolsjbpm/droolsjbpm-integration/commit/5bfe12b6d3de3970e83e5401ba29ee37bbd49ac1


Windows fftw3f

I rebuilt fftw3f on windows to make static libraries, so that you don't have to modify the PATH to use them.

Will push the built win32 binaries manually.


Apidocs update (Alice Jaques)

Hi @iglesu I just pip installed (from pypi) the latest astro-datalab. It downloaded and installed fine. The version reported though is v2.23.0 (but should be v2.23.1 I think?) Did we miss a version-string update somewhere maybe? Or should the CI job update that? Thanks.

(by "version reported" I mean when you do "datalab version")

do
pip uninstall astro-datalab
followed by
pip install astro-datalab
that should pick 2.23.1
also make sure you are not in the datalab repo as it might pick up the local version, perhaps one git pull behind

On May 29, 2024, at 6:25 PM, Robert Nikutta @.***> wrote:
Hi @iglesu https://github.com/iglesu I just pip installed (from pypi) the latest astro-datalab. It downloaded and installed fine. The version reported though is v2.23.0 (but should be v2.23.1 I think?) Did we miss a version-string update somewhere maybe? Or should the CI job update that? Thanks.
—
Reply to this email directly, view it on GitHub https://github.com/astro-datalab/datalab/pull/69#issuecomment-2138504556, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABX3HOEUABMYXDCNXDL3NJDZEZ5YHAVCNFSM6AAAAABIPX3LW6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCMZYGUYDINJVGY.
You are receiving this because you were mentioned.

Hi @iglesu , I did yesterday this
pip install --ignore-installed --no-cache-dir astro-datalab
which is the incantation we have in our README file. And I was not in the datalab repo dir.
Could it have picked up the wrong version because of my recent (local) experiment installing this from sources? (which ended up in $HOME/.local/bin/ rather than in any of my conda envs)

Ok fixed it. I needed to reload my .bashrc file, because it was still picking up the old $PATH before. v2.23.1 is now installed, and picked correctly. Thank you!

Robert, Since that command works in my environment and in other linux machines, I'm inclined to think it is environment related, for instance make sure your PYTHONPATH is not set.
This little program might shed some light on where are you sourcing your module from:
import inspect
import importlib
Import the module dynamically
module_name = 'dl'
module = importlib.import_module(module_name)
Use inspect to find the source file of the module
module_file = inspect.getfile(module)
print(f"Module {module_name} is located at: {module_file}")
Optionally, read the content of the module to find version
with open(module_file, 'r') as file:
for line in file:
if 'version' in line:
print(line.strip())
also did you try the commands I sent you yesterday. I assume they didn't work, correct?
Thanks,
Igor

On May 30, 2024, at 10:01 AM, Robert Nikutta @.***> wrote:
Hi @iglesu https://github.com/iglesu , I did yesterday this
pip install --ignore-installed --no-cache-dir astro-datalab
which is the incantation we have in our README file. And I was not in the datalab repo dir.
Could it have picked up the wrong version because of my recent (local) experiment installing this from sources? (which ended up in $HOME/.local/bin/ rather than in any of my conda envs)
—
Reply to this email directly, view it on GitHub https://github.com/astro-datalab/datalab/pull/69#issuecomment-2140278093, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABX3HOEBZ6AIZEMPNO6VTJDZE5LQPAVCNFSM6AAAAABIPX3LW6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCNBQGI3TQMBZGM.
You are receiving this because you were mentioned.


Update "stable" to latest releases

istio to v0.2.0 of serving

build to v0.2.0

serving to v0.2.0

eventing to v20181031-a2f9417

Fixes #919

👍


Footguns: WGET_ARGS, CURL_ARGS, SINGLEFILE_ARGS…

These options let the user shoot themselves in the foot, silently. I think the documentation or the variables themselves should be changed to be more ergonomic.
Did you need to add a header to wget?
WGET_ARGS=['--header=Accept-Language: en-US,en']

Look at this configuration, it looks inoffensive. Checking the documention, nothing ticks you off you're using it wrong. But no.
After this, your 🆆 button won't take you to the main html you archived, and wget archives things slighlty differently, silently.
Why? By setting WGET_ARGS you overwrote vital settings, as it turns out they're also stored in WGET_ARGS. The documentation doesn't tell you about this. This happened to me, I just happily overwrote the variable. When I should've written something like this:
WGET_ARGS=['--header=Accept-Language: en-US,en;q=0.5', '--no-verbose', '--adjust-extension', '--convert-links', '--force-directories', '--backup-converted', '--span-hosts', '--no-parent', '-e', 'robots=off']

Proposal:

The documentation for *_ARGS should have a good warning or display the default value, so that users can suspect they're overwriting something.
Or, create EXTRA_WGET_ARGS, EXTRA_CURL_ARGS, and so on. These won't overwrite the now-considered low-level *_ARGS. EXTRA_*_ARGS shall be the more user-facing option and more promoted in the documentation.

I'm ok with the EXTRA_ options as I want users to be able to override the defaults.


Using reflection to use reflection to get type

---
Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/11908397-using-reflection-to-use-reflection-to-get-type?utm_campaign=plugin&utm_content=tracker%2F6855523&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F6855523&utm_medium=issues&utm_source=github).

Should be fixed now.


Fixing recursive behaviour on SelectChildRecursive (#24)

Fix for #24

Thanks for the PR - I'll get it into a release as soon as I can.


README.rst: add binder links at the top here

Overview

Add links to the BinderHub at the top of the README.rst
Checklist

[ ] Changed code has some test coverage (or justify why not)
[ ] Changes in functionality documented (or justify why not)
[ ] Changes summarized in CHANGES.rst file, if they merit mention in release notes

N/A to all three.

As with #255, spurious CI failure here. Will be ignored.


bug: Inline macros (i.e. array!) result in error reporting and language server issues

Bug Report
Cairo version:
2.1.0
Current behavior:
When using the array macro, error reporting and code highlighting via the language server is modified due to the pre-processing step via inline_macros. Rather than errors during compilation being reported from the source file, they're reported as such:
error: Identifier not found.
 --> inline_macros:243:26

And the language server reports errors in the incorrect location resulting in code error highlighting being misplaced / shifted (notice the tiny red squiggle on line 6 which should be on line 3):

Expected behavior:
When compiling / running tests, errors should be reported with line / character information originating from the source file, not inline_macros. Error highlighting in VSCode should be correct, i.e.:

Steps to reproduce:
Put the following Cairo code in VSCode with the language server running, then try to compile:
fn reproduce_issue() -> Array<u64> {
    let path: Array<u64> = array![];
    path.append(3);
    return path;
}

#[cfg(test)]
mod tests {
    #[test]
    fn test() {
        super::reproduce_issue();
    }
}

Related code:
See above.
Other information:
The addition of macros also seems to significantly reduce language server performance.

It's supposed to be fixed in main. can u check with nightly scarb?

Fixed on 2.2.0.


[Task]: replace findDatabase in Action truncate table

What needs to happen?
replace findDatabase in Action truncate table
Issue Priority
Priority: 3
Issue Component
Component: Actions, Component: Database

Merge pull request https://github.com/apache/hop/pull/2864


Unwind & backtrace support

Keep track of where eh_frame lives
Add lots of code to parse the data that lives there
Call it during panic()
Just call unwind_from_here() from threads.h if you want to get a backtrace from somewhere
There's a BIST that checks we can still parse all of eh_frame but it's disabled for now because it's slightly loud at the end.
Some helpful scripts

Demo:
https://gist.github.com/cstanfill/39bc9c81d1e808cea722adeb66ab8b8f
This fixes #48

Fixes #28


Live-charts and ObservableCollection + Linq?

Hi,
I have found this on stackoverflow:
http://stackoverflow.com/questions/38016190/use-linq-to-populate-live-charts-seriescollection
And I'm trying to adapt it to latest version of Live-Charts (0.7.6), but I guess I need helping hand here...
thank you for your support

Hello
Please see http://lvcharts.net/App/examples/v1/wpf/Using LINQ

Thank you, it works for me. I've got a one question - how to implement it to Basic Stacked Columns? Should I split the result into e.g Dates and then add it to StackedColumnSeries?
Thank you


add readlines

As a user I commonly need to be able to read the next line starting at a position and don't want to reinvent the wheel.  While the System.IO.StreamReader looks promising it has known issues with read, seek, read sequences which are exactly what would be useful.  Create a Giagantor StreamReader that is based on BinaryReader that can do read, seek, read sequences.

https://github.com/imagibee/Gigantor/pull/15


When rendering THuman2.1 dataset, strange problems happened

I was trying to running command bash scripts/render_thuman.sh to render THuman2.1, however, something strange happened, feet are missing.
It seems like it is due to the camera, but I can't figure out how to solve this.

When I test the code I do not meet the problem. Have you tried THuman2.0? and its corresponding smplx file? Some samples in THuman2.1 are in different coordinate systems compared to THuman2.0. I guess the problem you show here may result from the wrong trans parameter. You can upload the calib/000.json or other saved camera parameter files during the process so I can figure out the problem better.

When I test the code I do not meet the problem. Have you tried THuman2.0? and its corresponding smplx file? Some samples in THuman2.1 are in different coordinate systems compared to THuman2.0. I guess the problem you show here may result from the wrong trans parameter. You can upload the calib/000.json or other saved camera parameter files during the process so I can figure out the problem better.

The results of THuman2.0 is perfect, however I want more data to train so I turn to THuman2.1 since it has 2500 samples, but the result is not good, and I don't know how to figure this out. I have tried to change the parameters of camera, however it only worked on one sample, not for all samples.
Here is my results of calib files. Just in case you want all results files to check, I have upload them to google drive and you can directly download them via the links below. I will be grateful for your timely response!
000_000.json
https://drive.google.com/file/d/1bfN0e0tjP13SoSkGyztslddjV6rlt1p0/view?usp=sharing

I have checked the issues from THuman2.1 repo, here is the link which you can refer to,
https://github.com/ytrock/THuman2.0-Dataset/issues/24
It do say that there is a slight difference between in coordinate and scale. But I don't know how to solve this.

OK, so you can find me by sending an email? My email is<EMAIL_ADDRESS>I wrote a rendering code for THuman2.1 before so you can send me an email and then I can reply you with the code for THuman2.1.


Geolocation library (NTH): integrating a geolocation library to help users find nearby service providers and service seekers efficiently.

Developer 2 (tertiary task):


when i train a model in jupyter notebook i see a lot of check marks. what is the reason?

this is the first time to install keras, i did not use anaconda
i am using Ubuntu 14.04

[ ] Check that you are up-to-date with the master branch of Keras. You can update with:
pip install git+git://github.com/fchollet/keras.git --upgrade --no-deps

[ ] If running on TensorFlow, check that you are up-to-date with the latest version. The installation instructions can be found here.

[ ] If running on Theano, check that you are up-to-date with the master branch of Theano. You can update with:
pip install git+git://github.com/Theano/Theano.git --upgrade --no-deps

[ ] Provide a link to a GitHub Gist of a Python script that can reproduce your issue (or just copy the script here if it is short).

I had the same problem. Yet you're posting to the wrong place. This seems to be an issue with the ipython notebook package. As a quick fix you can rollback your changes to notebook==4.0.6 for example.
pip uninstall notebook
pip install notebook==4.0.6
That should do it.
my config: Ubuntu 14.04, python 2.7, keras 1.2.1, tensorflow 0.12.1

@cccue
That helped me alot. Thanks
also I have tired and tested notebook==4.2.0 can do the same thing and a bit newer that 4.0.6

@msgfxeg
Glad it helped! At first I thought Nike had finally decided to endorse the notebook devs ;-)
But nahh, same old, same old. Thanks for testing usability of new versions of the notebook package.

@cccue Nike LOL :))))))


Allow creating an input without a label

Also add some basic documentation

@anellis @jsteiner another pass please?

One more comment. Otherwise LGTM


About the F1 of one test dataset

May I ask you 2 question:

why The F1 function in ‘auxiliaries/eval_ metrics_ one_dataset 'is annotated, and instead it is set to 0?
For an image retrieval dataset similar to VehicleID but with only one gallery, what needs to be modified for training and testing?

Hey,

Thank you for noting this, I had commented this out for a period during development to increase evaluation speed when I was looking at some metrics other than F1. If you would like to compute F1 then uncomment line 221 in 'auxiliaries/eval_ metrics_ one_dataset'
So for both training and testing, you just need a dictionary where the keys are the class names, and the corresponding values are the list of image paths for the images in that class.

For example in  'datasets/give_VehicleID_dataset', lines 116 to 164 are simply preparing these dictionaries (train_image_dict, small_test_dict, medium_test_dict, large_test_dict). This is not specialised for Vehicle ID, and works similarly for any retrieval dataset (in your case there is just one test dictionary).
For a new dataset, you must create these dictionaries, and then pass them to  TrainDatasetsmoothap() and BaseTripletDataset(), for the training and test set, respectively.  A more similar example to yours is INaturalist, which has just one test gallery. This dataset is formed in lines 49-101 in datasets.py . If you copy give_inaturalist_datasets() and replace the generation of train_image_dict and val_image_dict with the paths to your dataset, then that should work.
Let me know if you still have trouble


Missing core features (or their doc)

I am a heavy user of conEmu on WIndows as well Terminator on Linux and came to this repo with high hopes but there seems to be many missing features. To remain fair to other terminals, I expected to find this basic information in Readme but I couldn't so I assume these are the missing features.

How do I divide the window into multiple sizable terminals (aka layout)? There is nothing in readme and nothing in UX to know if this core feature exists.
What are all the settings available? Again nothing in the readme or in UX. When I click settings in UX, it opens up settings file buried in non-user folder with very few settings without much comments. I would highly recommend yaml for self-documenting settings file. Also, settings file should reside in user folder as .windows-terminal.config or something like that and employ VSCode like override mechanism.
How do I make it rto emember my session? Everytime I reopen Terminal, it starts new PowerShell (which I don't use).
How do I set working directories and commands for each terminal (in tab or layput)? Again nothing in readme or UX to make this intuitive (if feature already exists).

I feel above 4 are the core features before leaning on Windows Terminal full time.
Thank you for this effort and hope this can be equivalent of Terminator on Linux (not the most self-explanatory UX but I still can figure out the above features :)).

Hello @sytelus, hopefully, this will be useful.

How do I divide the window into multiple sizable terminals (aka layout)? There is nothing in readme and nothing in UX to know if this core feature exists.

Panes are possible, here’re the related keyboard shortcuts:
https://github.com/microsoft/terminal/blob/4a3ed3eb51c9a66e971a8c8e70887f7d2c429d26/src/cascadia/TerminalApp/defaults.json#L242-L243
https://github.com/microsoft/terminal/blob/4a3ed3eb51c9a66e971a8c8e70887f7d2c429d26/src/cascadia/TerminalApp/defaults.json#L234-L237
https://github.com/microsoft/terminal/blob/4a3ed3eb51c9a66e971a8c8e70887f7d2c429d26/src/cascadia/TerminalApp/defaults.json#L213-L216
I agree it would be nice to have a dedicated settings UI, but considering the fact that technical people are used to working with text files, I also think that the lack of it shouldn’t be a huge issue.

What are all the settings available? Again nothing in the readme or in UX. When I click settings in UX, it opens up settings file buried in non-user folder with very few settings without much comments. I would highly recommend yaml for self-documenting settings file. Also, settings file should reside in user folder as .windows-terminal.config or something like that and employ VSCode like override mechanism.

The topmost comment in profiles.json—that’s the one you open from the UI—mentions it:
// To view the default settings, hold "alt" while clicking on the "Settings" button.

This opens the file I linked above, and it shows all settings that can be changed. Since the terminal is in development and is several months from hitting v1.0, you might need to follow the development and occasionally delete profiles.json to recreate it with settings that were missing. Also, VSCode shows settings descriptions in profiles.json when a setting is hovered.

How do I make it rto emember my session? Everytime I reopen Terminal, it starts new PowerShell (which I don't use).

Set this in your settings (if I’m not mistaken, can be a profile’s name, guid, or index):
https://github.com/microsoft/terminal/blob/4a3ed3eb51c9a66e971a8c8e70887f7d2c429d26/src/cascadia/TerminalApp/defaults.json#L4

How do I set working directories and commands for each terminal (in tab or layput)? Again nothing in readme or UX to make this intuitive (if feature already exists).

Should be set for each profile:
https://github.com/microsoft/terminal/blob/4a3ed3eb51c9a66e971a8c8e70887f7d2c429d26/src/cascadia/TerminalApp/defaults.json#L22
Panes also use this setting, and I don’t think this behavior can be changed right now.
In any case, if all is well, v1.0 should be released in April.

FYI, you can find documentation on most of these features here:
https://github.com/microsoft/terminal/tree/master/doc/user-docs

I'm pretty sure @Banandrew has done an excellent job answering this question. I couldn't have said it better myself :)
@sytelus if you have any further questions, I'd be happy to help point you in the right direction.


uvcontsub arguments changed in 6.5.2

As of CASA 6.5.2, the input arguments in the new uvcontsub have changed: https://casadocs.readthedocs.io/en/v6.5.3/api/tt/casatasks.manipulation.uvcontsub.html
There's two immediate options here going forward:

backward compatibility: use uvcontsub_old until it's deprecated
(eventually will have to) update the code to use the new uvcontsub inputs. This is mostly switching the channel selection to be the channel range to USE for the continuum fit, not to be excluded from the continuum fit (as we have now).

The first option is implemented in #238. I think we keep this open as a note to ourselves but it is working in the latest CASA versions as of now


Enable automated backups of EBS volumes on VEDA staging hub

Context
We will be moving forward on automated backups for AWS EBS volumes using the Data Lifecycle Manager option.

Automatically create daily backups
Retention period of 5 days
Deploy and test on VEDA staging hub first

Task list
- [x] Create an IAM role for DLM service in terraform
- [x] Apply the target tag to existing EBS volumes for which automated backup has to be enabled.
- [x] Set up a DLM lifecycle policy, that defines the time and interval of backup creation, retention period and a target tag for selection of EBS volumes for backing up, in terraform
- [x] Set `Backup = true` on the existing EBS volume for staging
- [ ] Wait a day and see if a backup has been created
- [ ] Investigate how to restore from backups
- [ ] Document feature and how to restore from backup

Definition of Done

[ ] The feature/service is technically complete
[ ] Deployed to staging hub
[ ] The feature/service been tested with one or more users (if applicable)
[ ] The feature/service is well documented, and the documentation is accessible for the target user base

#5189 applied successfully!
The policy will execute a backup snapshot at 23:45 UTC every day, so next items are:

[ ] Check back tomorrow to see if a backup snapshot of the staging EBS volume has been created
[ ] Check back in >5 days time to ensure we are only retaining 5 backup snapshots for the EBS volume

AWS's docs on restoring EBS volume from a snapshot https://docs.aws.amazon.com/prescriptive-guidance/latest/backup-recovery/restore.html#restore-snapshot

Gotcha: double check terraform state hasn't changed state due to the backup, see for example the GCP backup docs https://infrastructure.2i2c.org/howto/filesystem-backups/restore-filesystem/#gcp

Woohoo! Another piece completed!

Great job, @sgibson91 and @sunu!
Unfortunately I don't think this is quite complete yet. I've left a comment in https://github.com/2i2c-org/infrastructure/pull/5286/files#r1887447565.


dev.codefor.de links on lab pages

Hi, if I go to https://codefor.de/labs/berlin/ instead of https://codefor.de/berlin/ the project links go to dev.codefor.de which does not exist anymore. I guess it has something to do with nginx rewrite magic.

Hm, I think the root cause is that https://codefor.de/labs/berlin/ probably should not exist or it should redirect to https://codefor.de/berlin instead. Labs that were founded only recently can't be accessed using the codefor.de/labs/... prefix, take for instance Kaiserslautern: https://codefor.de/labs/kaiserslautern/

I just tried https://codefor.de/labs/berlin/ and it redirects me to home.
Could we consider this issue fixed and close it?


Sidebar not refreshing notification counter for Feedly service

Bug description:
Sidebar not refreshing notification counter for Feedly service
Steps to reproduce:
Install Feedly service
Add any RSS/Feed
Wait for the info notification showing the amount of unread articles
Mark all articles as read
See error - info notification still showing the same amount of unread articles as befort
Expected behavior
After reading one or all / or mark all articles as read the notification counter must refresh instantly to zero (or minus 1)
Screenshots
See screenshot. Sidebar shows 19 unread articles. As you can see in the main window --> not even one unread article!
Environment:
Version: 5.6.0
Electron: 13.1.7
Chrome: 91.0.4472.124
Node.js: 14.16.0
Platform: macOS Big Sur 11.5.2
Arch: arm64

Debug information:
I wont upload debug information due to the fact that the debug log contains personal data from WhatsApp service.

I have a similar problem for Fastmail.  It will not dismiss the notification counter after email was read but only if I manually reload the service.

I have the same issue on github (recipe version: 2.2.0)


Codecov coverage metrics

Hi, Tom from Codecov here.
I noticed this repository, and I thought it would be useful to add more useful code coverage metrics to this repository. Codecov is a hosted code coverage provider with awesome features. You can checkout your first reports here.
I would love all the feedback you have, and please don't hesitate to reach out.
Cheers,
Tom
Codecov ❤'s open source and will be free forever for OSS

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@93537d4). Click here to learn what that means.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master    #2568   +/-   ##
=========================================
  Coverage          ?   85.97%
=========================================
  Files             ?       59
  Lines             ?     5791
  Branches          ?        0
=========================================
  Hits              ?     4979
  Misses            ?      529
  Partials          ?      283

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 93537d4...fff4f76. Read the comment docs.

@thomasrockhu Thanks for the suggestion!
We already have a coverage report in our CI. It does not display a nice diff of coverage changes for PRs, but the overall coverage % across the codebase is all that this project needs for now. 🙇


what is the equivalent of nodir?

Hello, I'm trying to migrate from globby to tinyglobby in Lerna-Lite, I was waiting for the missing option followSymbolicLinks before switching which you just reloeased today (great) but I'm getting 1 unit test failure that used the nodir with globby, it doesn't look like tinyglobby supports that option and I tried to use onlyDirectories: false instead but that doesn't help (I also tried nodir nonetheless and failed, and I also even tried to remove the option completely but again it also failed). Here's my Lerna-Lite PR to do the switch, and my unit test file.
Here's my previous code (in my Lerna-Lite make-diff-predicate.ts file)
// optionally exclude sub-packages
if (diffOpts?.independentSubpackages) {
  independentSubpackages = globbySync('**/*/package.json', {
    cwd: formattedLocation,
    nodir: true,
    ignore: ['**/node_modules/**'],
  }).map((file) => `:^${formattedLocation}/${dirname(file)}`);
}

and here's what I tried
+ import { globSync } from 'tinyglobby';

// optionally exclude sub-packages
if (diffOpts?.independentSubpackages) {
  independentSubpackages = globSync('**/*/package.json', {
    cwd: formattedLocation,
-   nodir: true,
+   onlyDirectories: false,
    ignore: ['**/node_modules/**'],
  }).map((file) => `:^${formattedLocation}/${dirname(file)}`);
}

You can see my unit test failure in this CI PR workflow
⎯⎯⎯⎯⎯⎯⎯ Failed Tests 1 ⎯⎯⎯⎯⎯⎯⎯

 FAIL  packages/core/src/utils/collect-updates/__tests__/lib-make-diff-predicate.spec.ts > exclude subpackages when --independent-subpackages option is enabled and nested package.json is found
AssertionError: expected last "execSync" call to have been called with [ 'git', …(2) ]

- Expected
+ Received

  Array [
    "git",
    Array [
      "diff",
      "--name-only",
      "v1.0.0",
      "--",
      "packages/pkg-2",
-     ":^packages/pkg-2/packages/pkg-2/and-another-thing",
    ],
    Object {
      "cwd": "/test",
    },
  ]

 ❯ packages/core/src/utils/collect-updates/__tests__/lib-make-diff-predicate.spec.ts:93:35
     91|
     92|   expect(result).toBe(true);
     93|   expect(childProcesses.execSync).toHaveBeenLastCalledWith(
       |                                   ^
     94|     'git',
     95|     ['diff', '--name-only', 'v1.0.0', '--', 'packages/pkg-2', ':^packa…

It looks like it's the only failure that I have before being to switch to tinyglobby, any help would be super appreciate. Thanks :)

nodir doesn't seem to be a valid option in globby or fast-glob, but it is an option in glob. fast-glob states that the equivalent of nodir is onlyFiles which is enabled by default. can you try to remove onlyDirectories from the options?

nodir doesn't seem to be a valid option in globby or fast-glob, but it is an option in glob. fast-glob states that the equivalent of nodir is onlyFiles which is enabled by default.

it is an option as can be seen in this globby issue but it was undocumented, probably because it was an indirect option from glob which globby extends from.

can you try to remove onlyDirectories from the options?

I did try to remove it completely as mentioned above, but it still fails and it also fails with onlyFiles: true as well.

I did try to remove it completely as mentioned above, but it still fails and it also fails with onlyFiles: true as well. The call for that globSync doesn't return anything as opposed to before

can you give me the exact pattern that fails?

oh I also noticed another issue which is even worst, I have some code to cleanup temp folders via an npm script and is also an option Lerna-Lite itself and that also is failing, in fact it goes into an infinite loop but that was working fine with globby. I'm on Windows if it makes any difference.

try using deep: 0 as an option. it probably tries to scan the whole temp directory which might be huge

try using deep: 0 as an option. it probably tries to scan the whole temp directory which might be huge and as such takes way too long to execute, unfortunately it can't optimize it until #46 gets resolved

nope that doesn't seem to help and this is rather quick with globby (1-2sec) but infinite loop with tinyglobby. here's the console log of the normalize path which is provided as the glob pattern
C:/Users/User/AppData/Local/Temp/lerna-*

try using deep: 0 as an option. it probably tries to scan the whole temp directory which might be huge and as such takes way too long to execute, unfortunately it can't optimize it until #46 gets resolved

nope that doesn't seem to help and this is rather quick with globby (1-2sec) but infinite loop with tinyglobby. here's the console log of the normalize path which is provided as the glob pattern
C:/Users/User/AppData/Local/Temp/lerna-*

can reproduce, seems like the root inferrer sets the root at C:/Users, which scans everything in every user folder 😰 will try to fix

is the pattern you're using in the first comment (the one from lerna-lite) an absolute path? if so it might be caused by the same issue

okay i see the issue in the temp directory thing. since the cwd isn't explicitly set, it defaults to process.cwd(). this makes the pattern get converted to ../../../<whatever path to temp>, and since common paths aren't currently inferred that way (see #22), it will scan C:/Users/user or similar, which is too huge to be done in a reasonable time. as a workaround @ghiscoding, try this: (see the options change)
import { removeSync } from 'fs-extra/esm';
import { join as pathJoin } from 'node:path';
import normalizePath from 'normalize-path';
import tempDir from 'temp-dir';
import { glob } from 'tinyglobby';

glob(normalizePath(pathJoin(tempDir, '/lerna-*')), { absolute: true, cwd: tempDir, onlyDirectories: true })
  .then((deleteFolders) => {
    // silently delete all files/folders that startsWith "lerna-"
    console.log(`Found ${deleteFolders.length} temp folders to cleanup.`);
    (deleteFolders || []).forEach((folder) => removeSync(folder));
  })
  .catch((error) => {
    console.error('Error occurred while cleaning up temp folders:', error);
  });

the code from the 1st question was created by another user, not the original author, and it was documented in this comment and I'm just trying to replace globby with tinyglobby, the original code had this globbySync('**/*/package.json'. However the user doesn't even use it at this point, so I'm not sure how much time we should spend on this.

okay i see the issue in the temp directory thing. since the cwd isn't explicitly set, it defaults to process.cwd(). this makes the pattern get converted to ../../../<whatever path to temp>, and since common paths aren't currently inferred that way (see #22), it will scan C:/Users/user or similar, which is too huge to be done in a reasonable time. as a workaround @ghiscoding, try this: (see the options change)

yes you're right for the 2nd one, that works :)

ahhh I found my issue for the 1st question, I had a mock on globby but didn't rename it well for tinyglobby, then if I rename it properly it now works.. So it looks like I'm all good to proceed with the switch :)
- vi.mock('glob', async () => ({
+ vi.mock('tinyglobby', async () => ({
  ...(await vi.importActual<any>('tinyglobby')),
  globSync: globMock,
}));

Thanks a lot for the help and making the globbing world much faster and smaller 🚀


Add support for after_release hook

An after_release hook would help customers automate health checks after a successful deployment.

:+1:

:+1:

+1 Seems like this would be a good place for sending deployment notifications to New Relic (https://docs.newrelic.com/docs/apm/new-relic-apm/maintenance/deployment-notifications)

@tobalsgithub
Could a possible workaround be making a deploy script and using that in the profile? That should be run everytime an instance restarts.

@Rich86man what is this "profile" you speak of? Something in the Dockerfile? Or...?

Sorry, Procfile

Ah, gotcha. Well...not totally sure. I think it depends on the order that things happen on your end.
Before I dive in, I should say you might want to disregard our specific use case. We're still on your V1 platform, and are actively working to move off of that, at which point this specific issue will be moot.
But, to give context, we have a script that we run that manually re-maps an internal TCP vhost to the new containers that come up during a release. Frank helped us create it a long while back, before you had official support for internal TCP vhosts. So, the script has to run AFTER the new containers are up and running. So, depending on when containers are marked as officially released, and old containers are dropped, the Procfile solution might work.
Again, I wouldn't design around our use case, as it was a workaround for lack of functionality that you guys now have.

Ahhh I see. To be clear, I don't work for Aptible, I just stumbled into this issue looking for an accurate, automated way to inform rollbar of a deploy. We're going to try the procfile solution until a

until an after realize hook is implemented.

Ah...gotcha...haha. Well, thanks for the suggestion. Definitely worth a shot.

@skylar-anderson Et al.:  As an expansion to before_release, add the following hooks within your .aptible.yml to set up better automation around app lifecycle events on Aptible:

before_deploy (renamed from before_release. before_release is now deprecated, but will continue to work)
after_deploy_success
after_restart_success
after_configure_success
after_scale_success
after_deploy_failure
after_restart_failure
after_configure_failure
after_scale_failure

Check the docs for more information


Investigate square sizes that aren't a power of 2

#79 made the size of the available data square variable per block (with a fixed maximum size). It (and the rest of the pre-existing rationale) assumes that the current square size is a power of 2, however this is not strictly necessary.
We should investigate what complexities that are introduced by allowing arbitrary square sizes (upper bounded by the maximum), and if acceptable, propose an algorithm for determining the structure of commitments to available data that is required for transactions.

Allowing square sizes that aren't a square of 2 could mean both less compute work to do the erasure coding, and smaller commitments to the available data. However, the FFTs used in RS erasure coding apparently are most efficient when the underlying data is exactly a power of 2. Moreover, the performance apparently gets worse the larger the prime factors of the underlying data.
In order to determine if this applies to our situation, we'll need to run some experiments with leopard.
Note that even with square sizes as a power of 2, rows that only consist of tail padding (zeroes after all messages) don't actually need to be committed to, or sampled.

Upon further investigation, leopard doesn't perform erasure coding on an arbitrary number of shares, but instead zero-pads to the smallest power of 2 that's at least as large. This can be seen in the memory layout figure here (transcluded below for posterity). In other words, I can't even run any experiments without making enormous changes to leopard. I'm sure there's a good reason for padding to a power of 2, probably the ones listed above.
[Recovery Data (Power of Two = M)] [Original Data (K)] [Zero Padding out to N]

With that in mind, allowing non-power-of-2 square sizes is probably not something we want to do. That being said, we can reduce the "waste" of power-of-2 square sizes by adding a field to the block header for the number of shares before tail padding. Any shares after that are implicitly known, and thus available, so they don't need to be sampled, and rows containing only tail padding don't need to be committed to.

Just noting that original data (K) is what is fed into the leopard lib which doesn't need to be a power of two. Internally, the mem-layout will be zero-padded to a power of 2 which will be >= M + K. Hence I said it can be used with any number of shares as long as those are split into multiples of 64. Not sure what experiments you were trying to run but at least you can feed any number of shares into leopard.

That being said, we can reduce the "waste" of power-of-2 square sizes by adding a field to the block header for the number of shares before tail padding. Any shares after that are implicitly known, and thus available, so they don't need to be sampled, and rows containing only tail padding don't need to be committed to.

That sounds good to me 👌


Add Portuguese translation

Description
Add Portuguese translation
Related Issue
Motivation and Context
Have a Portuguese translation
How Has This Been Tested
Types of changes

[ ] 🐛 Bug fix (non-breaking change which fixes an issue)
[ ] 🚀 New feature (non-breaking change which adds functionality)
[x] 🌎 Translation (addition or update a translation)
[ ] ⚠ Breaking change (fix or feature that would cause existing functionality to change)

Checklist

[x] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[ ] I have tested the change locally.

Done


unable to access results of custom functions when called from sql

It used to be (java 1.7) that functions like..
_1 = function() { return "hello" },
_2 = function() { return { greet: "hello" },
_3 = function() { return db.query("select from user limit 1");

Could be called from sql (or binary) using
select from _1()
select from _2()
select from _3()
etc..

and the response would be returned from sql as per the function.
Using 1.8 this is no longer the case, as although the functions are executed, the response values are not returned which effectively renders functions unusable unless invoked through the web api
This is possibly related to #3051

The problem seems the function name. If you call _1() as f1() works.

Fixed the problem with functions that starts with _

Agreed that this the '_' is part of the problem, but there is more...
test1 = function() { return db.query("select from ouser limit 1") }

sql> select from test1()

I would expect a user record to come back but in fact nothing does.

Testing it now...

any joy?

Hey Mat. I tried and works. There was a typo on it. You should rather execute:
select test1()

I did try this - but it does not return the document as expected - it just returns a temporary doc which must be expanded from a subselect
eg..
select expand(test1) from (select test1())
This is nasty.

This is how any function works, but distinct and expand.


Convert .json mask file to a polygon format to be read on CVAT

I ran the amg.py script in a folder containing images and passed the --convert-to-rle parameter. Is it possible to convert the JSON COCO RLE generated into a polygon format that can be read as an annotation in CVAT, for example?

You can convert sam mask to polygon points using imantics.
from imantics import Polygons, Mask

...
polygons = Mask(sam_mask).polygons()
points = polygons.points[0]

# save points to COCO json format, which can be read by CVAT.


BSP: spawned sbt process is not closed on Boot process close

steps

start an sbt BSP server process via xsbt.boot.Boot -bsp while there is no running sbt instance for a project
the process will spawn an sbt server
close the Boot process

problem
The spawned sbt server process is not closed and remains as zombie.

This sounds more like a feature than a bug to me. It means that if my editor started up a server for bsp then it's available for shell commands even if I closed the editor. It also means that if I close my editor and then start it up again, I don't have to wait for an sbt server to start for bsp features to start working.
That being said, I as part of #5620, I added a server idle timeout to deal with inactive sbt server instances: https://github.com/sbt/sbt/pull/5620/commits/ea823f105101fe8a1ae62c45cabdb6b0256e2262

I agree with @eatkins and I am waiting forward to #5620 on this topic and many more.

Right, a timeout appears to be a reasonable solution to zombification.

@eatkins Can you confirm this issue has been addressed by the proposed timeout?

You can test with serverIdleTimeout := Some(30.seconds) or some other small value to see if the server exits.

Yeah, I made it a week so that people who are working 9-5 will have the server survive through a long weekend. The server uses very few resources in the background since it's just blocking on some queues and its memory should be swapped out by the os. But I figure if it's been idle for a week, it's a good idea to shut it down.

I guess I can close this issue.
@jastice feel free to reopen it if you would like any improvement.


Error when handling event : PRE_AUTHENTICATION  While generating token other than carbon.super after migrating APIM from 2.6.0 to 3.1.0

Description:
Not able to generate token other than carbon.super after migrating APIM from 2.6.0 to 3.1.0 Getting following errors.
{
"error_description": "Error when handling event : PRE_AUTHENTICATION",
"error": "invalid_grant"
}
audit.log
wso2-apigw-errors.log
wso2carbon.log
Steps to reproduce:
https://apim.docs.wso2.com/en/latest/install-and-setup/upgrading-wso2-api-manager/upgrading-from-260-to-310/
Affected Product Version:
APIM 3.1.0
Environment details (with versions):

OS: Windows 10
DB: Postgres 9.6

Optional Fields
Related Issues:

Suggested Labels:
APIM 3.1.0
Suggested Assignees:

Able to generate token If I remove PRE_AUTHENTICATION subscriptions to following tasks
[identity_mgt.events] schemes.adminForcedPasswordReset.subscriptions=["PRE_SET_USER_CLAIMS"] schemes.'account.lock.handler'.subscriptions=["PRE_SET_USER_CLAIMS","POST_SET_USER_CLAIMS"] schemes.accountConfirmationValidation.subscriptions=[] schemes.'account.disable.handler'.subscriptions=["PRE_SET_USER_CLAIMS","POST_SET_USER_CLAIMS"]


[feat]: Allow EmbassyOS users to create certificates using onboard certificate authority

Prerequisites

[X] I have searched for existing issues that already suggest this feature, without success.

Describe the Feature Request
I would like to be able to create a certificate for other services using the onboard certificate authority
Describe the Use Case
Suppose I have a router, ESXi server, or some other infrastructure in my environment. I'd like the CA that Embassy manages to be my one-stop-shop for certificates under my domain. This prevents me from having to run a parallel certificate authority for my other local infrastructure, or dealing with annoying "this site is insecure" warnings. In addition, I would then only have one root CA to add to my endpoints, rather than having to download another root CA to each of my endpoints to accommodate my other devices.
Describe Preferred Solution
I'd rename "LAN Settings" to "LAN Management" and then have a button to create and sign a new certificate under the onboard certificate authority.
Describe Alternatives
Possibly create a new section called "Certificate Management" and place the root certificate download link there (only accessible via Tor of course).
Anything else?
No response

Completed but still needs to be documented.


Fixing country list height issue on measures table

Issue was due to two things

We were not considering the first column being taller than second
column
Before import/export tabs are navigated, the height is not properly
set, so need to listen to their activation to trigger recalculation of
column heights

Tested on IE10, Safari 9+, Firefox and Chrome. Tablets and mobile are not affected since their viewport is different.

 [TARIFF17] Improve the display of additional codes


Can I use Calendar with External Event Dragging

What problem does this feature solve?
I just could not find any way to use External Event Dragging on calendar
What does the proposed API look like?
It can be used in full-calendar like https://fullcalendar.io/docs/external-dragging, so I want to know whether the ant calendar could make it.

Can any developer answer whether it can be done in nz-calendar?I just want to know.

@wenqi73 Or it is not supported in angular ant-design?

@zackshine Not supported for this.


[ci:component:github.com/gardener/oidc-webhook-authenticator:v0.16.0->v0.17.0]

Release Notes:
OWA is now built using go version `1.19.4`.

The following dependencies were updated:
 - k8s.io/* v0.25.3 -> v0.25.4

/retest-required

/retest-required


fresh setup - error

I have done a fresh setup and when I run "npm run dev", i receive following error:
=====================================
F:\node\adonis\aclApp>npm run dev

<EMAIL_ADDRESS>dev F:\node\adonis\aclApp
nodemon --watch app --watch bootstrap --watch config --watch .env -x 'node --harmony
_proxies' server.js

[nodemon] 1.9.2
[nodemon] to restart at any time, enter rs
[nodemon] watching: F:\node\adonis\aclApp\app//* F:\node\adonis\aclApp\bootstrap//

F:\node\adonis\aclApp\config/**/* .env
[nodemon] starting 'node --harmony_proxies' server.js
''node' is not recognized as an internal or external command,
operable program or batch file.
[nodemon] app crashed - waiting for file changes before starting...
=====================================
While node in command prompt working fine

Hi @webreinvent!
Please take a look at https://github.com/adonisjs/adonis-framework/issues/141#issuecomment-232856315.

it is not working on windows 10. Can you suggest anything else?

Oh, if you are using Windows 10 could you please run the command adonis fix inside your application directory.

Tried still same error. I really wanted to give this framework a try, seems like I need to switch back to sails
:(

On which version of npm are you running?

it's v 2.15.1

As you can see on the website you don't fit the requirement version.

Node.js should be version 4.0 or greater.
npm should be version 3.0 or greater.

@webreinvent I would suggest you to follow installation docs http://adonisjs.com/docs/3.0/installation and make sure you have minimal required versions of node and npm

upgraded to Node v4.4.4 & npm v3.10.5, create a new project. If I type "npm run dev" I am still getting same error but if I type "npm start", it seems working fine.
Tried "adonis fix" but no success.
Thanks for the support so far, at least I can try the framework with npm start.

@webreinvent Replace dev script inside npm with. nodemon --watch app --watch bootstrap --watch config --watch .env -x \"node --harmony_proxies\" server.js
I have fixed same in the repo too 😄

this seem working :+1:

I am again facing similar issues after upgrading node and npm:
node -v
v6.5.0

npm -v
3.10.3

Error:
"C:\Program Files (x86)\JetBrains\WebStorm 2016.2.2\bin\runnerw.exe" "C:\Program Files\nodejs\node.exe" "C:\Program Files\nodejs\node_modules\npm\bin\npm-cli.js" run-script dev

><EMAIL_ADDRESS>dev F:\node\adonis\niddar
> nodemon --watch app --watch bootstrap --watch config --watch .env -x "node --harmony_proxies" server.js

[nodemon] 1.10.2
[nodemon] to restart at any time, enter `rs`
[nodemon] watching: F:\node\adonis\niddar\app/**/* F:\node\adonis\niddar\bootstrap/**/* F:\node\adonis\niddar\config/**/* .env
[nodemon] starting `node --harmony_proxies server.js`
node: bad option: --harmony_proxies
[nodemon] app crashed - waiting for file changes before starting...

on previous node  version __dirname+'../../providers/Niddar/NiddarProvider', this properly loading the service provider but now it does not:
Error: Cannot find module 'F:\node\adonis\niddar\bootstrap../../providers/Niddar/NiddarProvider' any idea?

It is never recommended to construct paths like this and you should always use the path module.
path.join(__dirname, '../../providers/Niddar/NiddarProvider')

@thetutlage I am very impressed with the support and the framework too. Let me know if I can contribute by any means, I own a web agency here in India, known as WebReinvent

I am using node v6.5.0 and npm v3.10.3 on Macos 10.11.06 (El Capitán), I have removed "--harmony_proxies" from the dev script located in the project package.json and it works great

i new user to adonis.js framework
i configure the new project in adonis.js framework and when i run my server i get the follwoing error
"Error (500)  Copy to clipboard
Cannot find module 'formidable"
"pen: module.js
Unable to locate file source."
here is my route
const Route = use('Route')
Route.get('/', 'HomeController.home')
this is my controller
class HomeController {

home (request, response) {
const view = yield response.view('welcome')
response.send(view)
}

}
and this is my nodejs information
SERVER_SOFTWARE : 	NodeJS 4.4.0 Linux

what's the npm version

npm version is  "2.14.20"

It needs to be 3 or greater


If I want to train indoor small scene data, how should I modify the relevant model parameters

such as  ScanNet(v2),s3dis,

The motivation of our method is to exploit the distribution property of LiDAR points to enhance the performance of distant LiDAR points. So it should not be applicable to indoor scenes.


chore(deps): Update Microsoft.CodeAnalysis dependencies

This should make #13474 closable

We can't upgrade those packages though - see the comment above the version lines. Once we've moved to .NET 8 we'll be fine, but I don't think we can do it until then.

We can't upgrade those packages though - see the comment above the version lines. Once we've moved to .NET 8 we'll be fine, but I don't think we can do it until then.

Ah yes, just realized again.


⚠ Bofrost.lu has degraded performance

In 3b08e02, Bofrost.lu (https://www.bofrost.lu) experienced degraded performance:

HTTP code: 200
Response time: 1010 ms

Resolved: Bofrost.lu performance has improved in 3e12b83 after 7 minutes.


problem with word in passphrase

seems to be a problem with TBW if the word error is part of a passphrase.
trying to set up a pool on BPL and the primary passphrase includes the word error, this seems to stop the TBW script running, inserted another passphrase that does not contain the word and it will start and run fine

problem appears to not be with passphrase.  most likely something I did wrong, script running beautifully now


[leptonica] Update to 1.80.0

Related to https://github.com/microsoft/vcpkg/pull/13536

Update leptonica to latest release revision.
Update the patch to match the source changes
Remove unused patch use-tiff-libraries.patch

leptonica doesn't contains any features.

Thanks for your contribution!


Remove function queues from k8s watchers

k8s watcher library already provides a queue for each watcher so we
don't need our function queue implementation on top of it.
This means we will process all events upon initialization which can slow
down the initialization of the Cilium API. Some benchmarks were
performed with the simulation of 50k pods and 2k nodes to see and Cilium took around 46
seconds to initialize. Of course this highly depends in the network and
the compute power available to Cilium. This benchmarks were executed on
a VM with 2 CPUs and a kube-apiserver available in the same machine
where the VM was executed.
First 10 seconds of a pprof trace capture for a cilium-agent initialization with 10k simulated pods and 1k simulated nodes simulated. (top is master, bottom is this branch) (the number of GC calls were smaller and took less amount of time):

mem stats of a cilium-agent with 50k simulated pods and 2k simulated nodes. (top is master, bottom is this branch) (the total-alloc decreased from 3GB to 2.62GB, sys decreased from 1.52GB to 1.25GB:
alloc: 706.19MB (740493104 bytes)
total-alloc: 3.03GB<PHONE_NUMBER> bytes)
sys: 1.52GB<PHONE_NUMBER> bytes)
lookups: 0
mallocs: 16221287
frees: 10367753
heap-alloc: 706.19MB (740493104 bytes)
heap-sys: 1.43GB<PHONE_NUMBER> bytes)
heap-idle: 638.75MB (669777920 bytes)
heap-in-use: 825.16MB (865239040 bytes)
heap-released: 39.98MB (41918464 bytes)
heap-objects: 5853534
stack-in-use: 8.09MB (8486912 bytes)
stack-sys: 8.09MB (8486912 bytes)
stack-mspan-inuse: 11.61MB (12173632 bytes)
stack-mspan-sys: 19.52MB (20463616 bytes)
stack-mcache-inuse: 3.39KB (3472 bytes)
stack-mcache-sys: 16.00KB (16384 bytes)
other-sys: 3.04MB (3185883 bytes)
gc-sys: 57.56MB (60357048 bytes)
next-gc: when heap-alloc >= 1.31GB<PHONE_NUMBER> bytes)
last-gc: 2020-04-09 11:38:22.480860164 +0000 UTC
gc-pause-total: 8.854325ms
gc-pause: 53084
num-gc: 26
enable-gc: true
debug-gc: false

alloc: 929.25MB (974393088 bytes)
total-alloc: 2.62GB<PHONE_NUMBER> bytes)
sys: 1.25GB<PHONE_NUMBER> bytes)
lookups: 0
mallocs: 14733085
frees: 5617388
heap-alloc: 929.25MB (974393088 bytes)
heap-sys: 1.18GB<PHONE_NUMBER> bytes)
heap-idle: 265.45MB (278347776 bytes)
heap-in-use: 941.58MB (987316224 bytes)
heap-released: 52.50MB (55050240 bytes)
heap-objects: 9115697
stack-in-use: 8.97MB (9404416 bytes)
stack-sys: 8.97MB (9404416 bytes)
stack-mspan-inuse: 12.73MB (13349760 bytes)
stack-mspan-sys: 12.78MB (13402112 bytes)
stack-mcache-inuse: 3.39KB (3472 bytes)
stack-mcache-sys: 16.00KB (16384 bytes)
other-sys: 2.15MB (2255667 bytes)
gc-sys: 46.90MB (49174936 bytes)
next-gc: when heap-alloc >= 1.38GB<PHONE_NUMBER> bytes)
last-gc: 2020-04-09 11:40:58.910320185 +0000 UTC
gc-pause-total: 8.815899ms
gc-pause: 771468
num-gc: 26
enable-gc: true
debug-gc: false

Those benchmarks were primarily testing the increasing number of Pods and the removal of function queues for all other watchers were based on the assumption the memory optimization will be similar to the one seen with the removal of the Pod's watcher function queues.

test-me-please

test-me-please

Coverage increased (+0.2%) to 46.881% when pulling add23401686a7fc038b571ec232668c75d098b62 on pr/remove-function-queues into f5425fec71bff6762a5bcc5dc3f3078728020141 on master.

test-me-please

test-me-please

Looks awesome. Do you know what processing takes a long time? I assume it's the processing of all pods that we should remove.

For now yes. Once I remove the watch of all pods I'll check the remaining structures / watchers.

test-me-please

test-ginkgo-please

test-ginkgo

restart-ginkgo

hit https://github.com/cilium/cilium/issues/10942

merging since travis CI for arm64 was also disabled upstream by https://github.com/cilium/cilium/pull/10978


Add code for implementing tracklet based object detection.

Attempt to solve the issue of jittering of images. And integrates tracking and detection adhering to time-based data collection.

Make a before and after videos so that anyone can differentiate that tracking is being done. This will also help us in documnetation purposes also.


Block implicitly retains self

XCode gives this little warning:
.../Pods/ZXingObjC/ZXingObjC/client/ZXCGImageLuminanceSource.m:242:7: Block implicitly retains 'self'; explicitly mention 'self' to indicate this is intended behavior

Thanks for a nice stable library!

As @neacao mentioned, CocoaPods are not up2date. I will look later on if I can update those as well. I believe I need additional rights to do so.

So, I updated the tag to 3.4.0 in the podspec and ran pod lint and here's what came out:
 -> ZXingObjC (3.4.0)
    - NOTE  | [ZXingObjC/All, ZXingObjC/Core, ZXingObjC/Aztec, and more...] xcodebuild:  note: Using new build system
    - NOTE  | [ZXingObjC/All, ZXingObjC/Core, ZXingObjC/Aztec, and more...] xcodebuild:  note: Planning build
    - NOTE  | [ZXingObjC/All, ZXingObjC/Core, ZXingObjC/Aztec, and more...] xcodebuild:  note: Constructing build description
    - NOTE  | [ZXingObjC/All, ZXingObjC/Core, ZXingObjC/Aztec, and more...] xcodebuild:  warning: Skipping code signing because the target does not have an Info.plist file. (in target 'App')
    - WARN  | [ZXingObjC/All,ZXingObjC/QRCode] xcodebuild:  ZXingObjC/ZXingObjC/qrcode/detector/ZXQRCodeFinderPatternFinder.m:221:11: warning: parameter 'maxCount' not found in the function declaration [-Wdocumentation]
    - WARN  | [ZXingObjC/All,ZXingObjC/QRCode] xcodebuild:  ZXingObjC/ZXingObjC/qrcode/detector/ZXQRCodeFinderPatternFinder.m:223:11: warning: parameter 'originalStateCountTotal' not found in the function declaration [-Wdocumentation]
    - WARN  | [ZXingObjC/All,ZXingObjC/DataMatrix] xcodebuild:  ZXingObjC/ZXingObjC/datamatrix/ZXDataMatrixWriter.m:143:11: warning: parameter 'reqHeight' not found in the function declaration [-Wdocumentation]
    - WARN  | [ZXingObjC/All,ZXingObjC/DataMatrix] xcodebuild:  ZXingObjC/ZXingObjC/datamatrix/ZXDataMatrixWriter.m:144:11: warning: parameter 'reqWidth' not found in the function declaration [-Wdocumentation]
    - WARN  | [ZXingObjC/All,ZXingObjC/DataMatrix] xcodebuild:  ZXingObjC/ZXingObjC/datamatrix/ZXDataMatrixWriter.m:145:11: warning: parameter 'input' not found in the function declaration [-Wdocumentation]
    - WARN  | [ZXingObjC/All,ZXingObjC/PDF417] xcodebuild:  ZXingObjC/ZXingObjC/pdf417/decoder/ZXPDF417DecodedBitStreamParser.m:228:40: warning: implicit conversion loses integer precision: 'long long' to 'long' [-Wshorten-64-to-32]
    - WARN  | [ZXingObjC/All,ZXingObjC/PDF417] xcodebuild:  ZXingObjC/ZXingObjC/pdf417/decoder/ZXPDF417DecodedBitStreamParser.m:242:39: warning: implicit conversion loses integer precision: 'long long' to 'long' [-Wshorten-64-to-32]
    - ERROR | [ZXingObjC/All, ZXingObjC/Core, ZXingObjC/Aztec, and more...] xcodebuild: Returned an unsuccessful exit code. You can use `--verbose` for more information.
    - NOTE  | [iOS] [ZXingObjC/DataMatrix] xcodebuild:  warning:
    - NOTE  | [iOS] [ZXingObjC/DataMatrix] xcodebuild:  11: warning: parameter 'input' not found in the function declaration [-Wdocumentation]

So, that would be a big 👎

Going to look into that later on. Haven’t uploaded to CocoaPods yet 🤔

@jeffallen hang tight until tomorrow, I will fix those outstanding warnings (I dunno right now why you receive an error) and will release a new version to CocoaPods. The last release currently is 3.2.2.

verbose run released the following error messages:
[...]
    PhaseScriptExecution [CP]\ Embed\ Pods\ Frameworks /Users/bjohn/Library/Developer/Xcode/DerivedData/App-giuanxbwzzyeahcwslqovuspgrnp/Build/Intermediates.noindex/App.build/Release/App.build/Script-54620F6A057A58E4562C1180.sh (in target: App)
        cd /var/folders/_s/0ldz4jbx7rz8bxfnswbks3pm0000gn/T/CocoaPods-Lint-20180925-48368-1tznay5-ZXingObjC
        /bin/sh -c /Users/bjohn/Library/Developer/Xcode/DerivedData/App-giuanxbwzzyeahcwslqovuspgrnp/Build/Intermediates.noindex/App.build/Release/App.build/Script-54620F6A057A58E4562C1180.sh
    mkdir -p /Users/bjohn/Library/Developer/Xcode/DerivedData/App-giuanxbwzzyeahcwslqovuspgrnp/Build/Products/Release/App.app/Contents/Frameworks
    rsync --delete -av --filter P .*.?????? --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "/Users/bjohn/Library/Developer/Xcode/DerivedData/App-giuanxbwzzyeahcwslqovuspgrnp/Build/Products/Release/ZXingObjC/ZXingObjC.framework" "/Users/bjohn/Library/Developer/Xcode/DerivedData/App-giuanxbwzzyeahcwslqovuspgrnp/Build/Products/Release/App.app/Contents/Frameworks"
    building file list ... done
    ZXingObjC.framework/
    ZXingObjC.framework/Resources -> Versions/Current/Resources
    ZXingObjC.framework/ZXingObjC -> Versions/Current/ZXingObjC
    ZXingObjC.framework/Versions/
    ZXingObjC.framework/Versions/Current -> A
    ZXingObjC.framework/Versions/A/
    ZXingObjC.framework/Versions/A/ZXingObjC
    ZXingObjC.framework/Versions/A/Resources/
    ZXingObjC.framework/Versions/A/Resources/Info.plist

    sent 638797 bytes  received 106 bytes  1277806.00 bytes/sec
    total size is 638318  speedup is 1.00
    /var/folders/_s/0ldz4jbx7rz8bxfnswbks3pm0000gn/T/CocoaPods-Lint-20180925-48368-1tznay5-ZXingObjC/Pods/Target Support Files/Pods-App/Pods-App-frameworks.sh: line 104: EXPANDED_CODE_SIGN_IDENTITY: unbound variable
    Command PhaseScriptExecution failed with a nonzero exit code

    ** BUILD FAILED **

    The following build commands failed:
    	PhaseScriptExecution [CP]\ Embed\ Pods\ Frameworks /Users/bjohn/Library/Developer/Xcode/DerivedData/App-giuanxbwzzyeahcwslqovuspgrnp/Build/Intermediates.noindex/App.build/Release/App.build/Script-54620F6A057A58E4562C1180.sh
    (1 failure)
   Testing with `xcodebuild`.
 -> ZXingObjC (3.4.0)
    - NOTE  | [ZXingObjC/All, ZXingObjC/Core, ZXingObjC/Aztec, and more...] xcodebuild:  note: Using new build system
    - NOTE  | [ZXingObjC/All, ZXingObjC/Core, ZXingObjC/Aztec, and more...] xcodebuild:  note: Planning build
    - NOTE  | [ZXingObjC/All, ZXingObjC/Core, ZXingObjC/Aztec, and more...] xcodebuild:  note: Constructing build description
    - NOTE  | [ZXingObjC/All, ZXingObjC/Core, ZXingObjC/Aztec, and more...] xcodebuild:  warning: Skipping code signing because the target does not have an Info.plist file. (in target 'App')
    - WARN  | [ZXingObjC/All,ZXingObjC/QRCode] xcodebuild:  /Users/bjohn/git/ZXingObjC/ZXingObjC/qrcode/detector/ZXQRCodeFinderPatternFinder.m:221:11: warning: parameter 'maxCount' not found in the function declaration [-Wdocumentation]
    - WARN  | [ZXingObjC/All,ZXingObjC/QRCode] xcodebuild:  /Users/bjohn/git/ZXingObjC/ZXingObjC/qrcode/detector/ZXQRCodeFinderPatternFinder.m:223:11: warning: parameter 'originalStateCountTotal' not found in the function declaration [-Wdocumentation]
    - WARN  | [ZXingObjC/All,ZXingObjC/DataMatrix] xcodebuild:  /Users/bjohn/git/ZXingObjC/ZXingObjC/datamatrix/ZXDataMatrixWriter.m:143:11: warning: parameter 'reqHeight' not found in the function declaration [-Wdocumentation]
    - WARN  | [ZXingObjC/All,ZXingObjC/DataMatrix] xcodebuild:  /Users/bjohn/git/ZXingObjC/ZXingObjC/datamatrix/ZXDataMatrixWriter.m:144:11: warning: parameter 'reqWidth' not found in the function declaration [-Wdocumentation]
    - WARN  | [ZXingObjC/All,ZXingObjC/DataMatrix] xcodebuild:  /Users/bjohn/git/ZXingObjC/ZXingObjC/datamatrix/ZXDataMatrixWriter.m:145:11: warning: parameter 'input' not found in the function declaration [-Wdocumentation]
    - WARN  | [ZXingObjC/All,ZXingObjC/PDF417] xcodebuild:  /Users/bjohn/git/ZXingObjC/ZXingObjC/pdf417/decoder/ZXPDF417DecodedBitStreamParser.m:228:40: warning: implicit conversion loses integer precision: 'long long' to 'long' [-Wshorten-64-to-32]
    - WARN  | [ZXingObjC/All,ZXingObjC/PDF417] xcodebuild:  /Users/bjohn/git/ZXingObjC/ZXingObjC/pdf417/decoder/ZXPDF417DecodedBitStreamParser.m:242:39: warning: implicit conversion loses integer precision: 'long long' to 'long' [-Wshorten-64-to-32]
    - ERROR | [ZXingObjC/All, ZXingObjC/Core, ZXingObjC/Aztec, and more...] xcodebuild: Returned an unsuccessful exit code.

[!] ZXingObjC did not pass validation, due to 1 error and 7 warnings.
You can use the `--no-clean` option to inspect any issue.

/Library/Ruby/Gems/2.3.0/gems/cocoapods-1.5.3/lib/cocoapods/command/lib/lint.rb:85:in `block in run'
/Library/Ruby/Gems/2.3.0/gems/cocoapods-1.5.3/lib/cocoapods/command/lib/lint.rb:54:in `each'
/Library/Ruby/Gems/2.3.0/gems/cocoapods-1.5.3/lib/cocoapods/command/lib/lint.rb:54:in `run'
/Library/Ruby/Gems/2.3.0/gems/claide-1.0.2/lib/claide/command.rb:334:in `run'
/Library/Ruby/Gems/2.3.0/gems/cocoapods-1.5.3/lib/cocoapods/command.rb:52:in `run'
/Library/Ruby/Gems/2.3.0/gems/cocoapods-1.5.3/bin/pod:55:in `<top (required)>'
[...]

https://github.com/CocoaPods/CocoaPods/issues/7708

@jeffallen https://cocoapods.org/pods/ZXingObjC
As of now, you should be able to use:
platform :ios, '8.0'
pod 'ZXingObjC', '~> 3.4.0'

🎉


Add api into Platform enumeration

We are planning to use Snowplow tracker for ASP.NET WEBAPI project. The ideal Platform value for us to use is 'api' but it is not present in current definition of enum. We are utilizing other Platform values for other digital products already.

Hey @shailendrabirthare - "API" isn't the platform that your tracker is embedded in. I suspect your tracker is running on a server (Srv) platform? (If you need more granular data on your environment, you can use custom contexts.)

Hi @alexanderdean,
Thanks for your prompt reply.
I see your point. API project is a server side project and in fact we are using Platform.Srv. However, we are going to add .NET tracker in other server side code and we would like to distinguish between event tracked from api (api project) or srv (other server side project e.g. ASP.NET MVC or web form or Azure worker). Please see image that describe our setup.
I looked at the custom context and its not fit into our solution and feels like overkill.
I feel the easier solution is to add api into Platform enum. A combination of appId and Platform gives us better segregation.
Let me know what you think.

I understand you would like to distinguish them but the platform is a physical/hardware platform, not a descriptor of what your app does. Over time most everything in atomic.events will move to custom contexts so it's worth making the leap.

You could use the app_id field instead?

@yalisassoon - Yes we can. Having appid separate our digital products and platform separate applications within a product, was the way we were originally planning to go (as shown in image above). However, I understand @alexanderdean point about Platform. We shall see another option (custom context - overkill or appId - Simple). Thanks guys.

No problem, thanks @shailendrabirthare. BTW feel free to re-submit your PR with the removed imports if you like...


[promises] Handle an odd cancellation case in promise-based-filter

Is it possible to cover this code path with any unit test?
It's fine if that's hard, since we do have an integration test that seemed to be hitting this. Just note that integration test only runs under opt and as a post-submit.

It's harder than I'm willing to undertake for code that will not exist by EOY.

Makes sense, assuming the coverage won't be useful during future cleanup.


message-editing: Edit message content gets lost if it fails

This gif explains the bug clearly. If the user is editing a message and has written something long, the content gets lost if the message edit fails.

This should be the latest data written by the user.

@zulipbot claim


fix(backend): handle a single pos/neg in contradicting report

closes #263

Codecov Report

Merging #267 (ceafc43) into main (9d5e3a9) will increase coverage by 1.19%.
The diff coverage is 100.00%.

:exclamation: Current head ceafc43 differs from pull request most recent head 4981ae2. Consider uploading reports for the commit 4981ae2 to get more accurate results

@@            Coverage Diff             @@
##             main     #267      +/-   ##
==========================================
+ Coverage   81.91%   83.10%   +1.19%
==========================================
  Files          56       57       +1
  Lines        3737     3777      +40
==========================================
+ Hits         3061     3139      +78
+ Misses        676      638      -38

Impacted Files
Coverage Δ

label_sleuth/analysis_utils/labeling_reports.py
59.52% <100.00%> (+34.20%)
:arrow_up:

...bel_sleuth/analysis_utils/test_labeling_reports.py
100.00% <100.00%> (ø)

label_sleuth/data_access/core/data_structs.py
100.00% <100.00%> (ø)

label_sleuth/models/core/tools.py
53.84% <0.00%> (+10.25%)
:arrow_up:

label_sleuth/analysis_utils/analyze_tokens.py
38.46% <0.00%> (+12.82%)
:arrow_up:

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