Update version and change log for bug fix release

Codecov Report

Merging #13537 into release-2020.08 will decrease coverage by 0.01%.
The diff coverage is 100.00%.

@@                 Coverage Diff                 @@
##           release-2020.08   #13537      +/-   ##
===================================================
- Coverage            59.70%   59.69%   -0.02%
===================================================
  Files                  670      670
  Lines                37328    37335       +7
  Branches              5302     5302
===================================================
- Hits                 22288    22286       -2
- Misses               13906    13912       +6
- Partials              1134     1137       +3

Impacted Files
Coverage Δ

src/client/telemetry/index.ts
82.35% <ø> (ø)

...nt/languageServices/proposeLanguageServerBanner.ts
94.23% <100.00%> (+0.75%)
:arrow_up:

src/client/telemetry/constants.ts
100.00% <100.00%> (ø)

src/client/common/utils/platform.ts
64.70% <0.00%> (-11.77%)
:arrow_down:

src/client/datascience/crossProcessLock.ts
79.41% <0.00%> (-11.77%)
:arrow_down:

src/client/linters/pydocstyle.ts
86.66% <0.00%> (-2.23%)
:arrow_down:

src/client/datascience/debugLocationTracker.ts
76.56% <0.00%> (-1.57%)
:arrow_down:

src/client/common/process/proc.ts
14.49% <0.00%> (-0.73%)
:arrow_down:

Continue to review full report at Codecov.

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


feat: outputTruncateLength option

Resolves #962

Thanks for your feature.
Looking at the commit it looks like that this is only length of the lines. I.e. more than 80 columns.
Is there any option to modify number of lines output. I have some big JSON structures to diff.
Thanks.

I want to join to this, it is quite unusable with short diff atm @Aslemammad

Oh there's an option now. This can work. However I think diff reporter is the weakest part of vitest experience atm.

@Inviz Feel free to create an issue that helps us with improving the diff reporter!


Reduce log spamming during night time due to no solar irradiance

When it is night and no solar irradiance is available we spam the log with warnings:
15:26:51.529 INFO  e.i.s.e.l.RuntimeEventListener$ - ******* Simulation until 2023-02-09T22:45:00Z completed. (duration: 0h : 0m : 0s : 15ms , memory: 3.7 GB) ******
15:26:51.542 WARN  e.i.s.s.weather.WeatherSourceWrapper - Direct solar irradiance not available at POINT (7.65 48.3).
15:26:51.542 WARN  e.i.s.s.weather.WeatherSourceWrapper - Direct solar irradiance not available at POINT (7.65 48.05).
15:26:51.542 WARN  e.i.s.s.weather.WeatherSourceWrapper - Direct solar irradiance not available at POINT (7.9 48.3).
15:26:51.542 WARN  e.i.s.s.weather.WeatherSourceWrapper - Direct solar irradiance not available at POINT (7.9 48.05).
15:26:51.545 WARN  e.i.s.s.weather.WeatherSourceWrapper - Direct solar irradiance not available at POINT (7.65 48.3).

The warning was intended to signify that there is actually no weather in the database but not that its magnitude is 0. We should differentiate those cases.

Might be related to: https://github.com/ie3-institute/PowerSystemDataModel/issues/554


src: adds check_domain to handle size limits given by the specs

Hi guys. I'm opening this PR to check if this code (the content of this PR) is what is expected to solve this issue. I'll add tests for this soon.
refs: https://github.com/ada-url/ada/issues/69

I love this PR. :heart:

I opened an issue on this to Node.
@miguelteixeiraa Can you add test example for this issue, and remove the buffer overflow in to_ascii method, since we don't want URLs with more than 255 characters.

So, currently these validations are already being done by the ICU. Is that correct (at least in theory)?
So we just need to add tests to see if they pass

I opened an issue on this to Node.
@miguelteixeiraa Can you add test example for this issue, and remove the buffer overflow in to_ascii method, since we don't want URLs with more than 255 characters.

Yeah I'll add test examples!

We are also calling to_ascii with be_strict false, which is wrong.

So, currently these validations are already being done by the ICU. Is that correct (at least in theory)?
So we just need to add tests to see if they pass

Most times, we bypass ICU so your PR is needed.
Furthermore, though ICU can run these tests, we seem to be ignoring its errors deliberately.

To be clear, @miguelteixeiraa : your PR is needed. It is not work in vain.

I opened an issue on this to Node.
@miguelteixeiraa Can you add test example for this issue, and remove the buffer overflow in to_ascii method, since we don't want URLs with more than 255 characters.

I think that these limits are only for the domain names (like the www.example.com in the www.example.com/path). I believe that there is also a limit for the URL (I know it is more than 2000 :sweat_smile:) . So maybe remove the buffer overflow + add a check for this "max string to be evaluated" aka "URL" ?

I believe that there is also a limit for the URL (I know it is more than 2000 😅)

I couldn't find a reference in the URL spec to 2048 limit. What's your source?

I believe that there is also a limit for the URL (I know it is more than 2000 😅)

I couldn't find a reference in the URL spec to 2048 limit. What's your source?

My bad. I didn't read this in any spec and just checked that this 2xxx thing is a "browsers specific" thing. Also seems that there is not really a spec for the size of an URL.

Related: https://github.com/dotnet/runtime/issues/33746

Also seems that there is not really a spec for the size of an URL.

I think that there is none but we could enforce a limit if we wanted to, we would just need to make it a public-facing parameter. I personally think that 4MB is too much.

Sorry I started a review by accident :joy:

@miguelteixeiraa I think what we want is a strict limit of 254 bytes if the domain name ends with '.', but only 253 otherwise (that's for FQ).

@miguelteixeiraa I do think that example.com. ought to be valid.

So for instance if we look at the true DNS representation of webmasters.stackexchange.com it is actually webmasters.stackexchange.com. with the trailing dot. This empty label that comes after the TLD is always reserved for the root, and cannot be used anywhere else in the domain name.

source: https://webmasters.stackexchange.com/questions/119097/are-multiple-consecutive-dots-allowed-in-a-domain-name
I think that how it works is that we have a budget of 255 bytes. We always have a final dot. And we use one byte to store the length of the domain.

Merging to a side branch.


Create ADR on CRD versioning

We do not currently version our CRDs in a proper fashion, but rather just yolo changes.
This is something that we urgently need to change and introduce proper versions for all our CRDs. However I believe that this requires us to provide conversion functions and controllers to run these functions, which makes this a somewhat larger issue than just updating the version in our CRDs.
This ticket is done when:

[ ] An ADR was written and accepted that details what needs to be done and outlines the options
[ ] An option was chosen
[ ] Appropriate follow up tickets for the chosen option have been created

Yes, we need this. No, this doesn't have anything whatsoever to do with how Helm deploys the CRDs. To quote the docs:

There is no support at this time for upgrading or deleting CRDs using Helm.

There is no support at this time for upgrading or deleting CRDs using Helm.


Totally clean the stage

Hi, I'm loading a NGL in a modal window. After close / open the modal a few times I get the error "WARNING: Too many active WebGL contexts. Oldest context will be lost.". Is there any way to totally clean the stage after closing the modal? I tried redefining the variable where I store the stage and with removeAllComponents(), but it doesn't work.
Thanks.

Can you try the Stage.dispose() method? Also, is the canvas element removed from the DOM when the modal is closed?
If that doesn't work could you make a minimal example? (codepen or other)

Hi, @fredludlow
Here you have a codepen example that reproduces the behavior of my site:
https://codepen.io/anon/pen/QPVpbV
I show a viewport at the beginning and then, clicking at the button, two more in the modal window. In my computer, after opening and closing a few times (eight), the WARNING message appears and the first representation disappears (the one I name "stage0" in this example).
In this example I get some error related to the Stage.dispose() method, maybe I'm not using it properly. I also remove the canvas and the html content of the viewport layer (just in case).
For getting the warnings and errors, please use the Chrome / Firefox console. The codepen console doesn't show all the messages.

Thanks for that, that's really helpful. I've slightly refactored it to get rid of the error (your modal.bs.hidden listener was added multiple times and called stage1.dispose() multiple times)
https://codepen.io/fludlow/pen/GLXEBN
I have a feeling this could be a pain to fix properly - looking at the Chrome devtools memory tab (you can snapshot before and after opening/closing the modal and compare) there are canvas elements that don't get garbage collected. I suspect at least one reason is that event listeners are added and never removed. I'll try and have a dig...
In the meantime, you could possibly re-use the canvas and just remove all components on modal hide?

Thanks for your fast answer.
I'm not sure about how to re-use the canvas. In the example below I use Stage.removeAllComponents() but the problem persists. Maybe it happens because I create a new stage every time I launch the modal? I don't know how to create the stage just once and then use Stage.loadFile() every time the modal is launched. If I create the stage at the beginning, then the loadFile() shows nothing.
https://codepen.io/anon/pen/dLqZQY

A canvas can not be instantiated if it is not in the DOM (otherwise it has no dimension and nothing can be drawn into it). You can add a check for the value undefined so that you are creating a stage only if it has not been created yet. And then, you should not remove it from the DOM by setting the container content to ''
Here are my modifications to your pen: https://codepen.io/anon/pen/oOPqzR

Thank you very much, @ppillot !

Thanks @ppillot


[Question] why different payload format on Android and iOS

I don't understant follow behavior...
// works on Android (foreground, background)
// not works on iOS
{
   'registration_ids': [ ...],
   'data': {
      'title': 'my title',
      'message': 'my message'
   }
}

// works on Android (background ok. but foreground not showing large icon and not firing 'notification' event)
// works on iOS
{
   'registration_ids': [ ...],
   'notification': {
      'title': 'my title',
      'body': 'my message'
   }
}

How do i send to both two platforms with single palyload?
I read some threads (#897, #960, #967), but i can't find a conclusion.
Please help!

For iOS push to work you have to include a aps object/dictionary, so there is not real way of sending a single payplad that works for both. In your server you have handle it based on the OS.
You can search for push libraries that can help you with that (not sure if there is any)
Probably using GCM/FCM for iOS you can send them the same Android payload to them and they should create the right iOS Payload (didn't try)
https://developer.apple.com/library/content/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Chapters/TheNotificationPayload.html
Closing because the payload isn't something we can control from the plugin, it's Apple and Google who decided to use their own different incompatible payload.

@jcesarmobile  Thanks to reply. I using gcm(for Android) and gcm with apns(for iOS). So I think it should be same format, but your advice is very helpful.

If you are using GCM, then the second one seems the one you have to use (the one with the notification object)
https://developers.google.com/cloud-messaging/http-server-ref
https://developers.google.com/cloud-messaging/concept-options
https://developers.google.com/cloud-messaging/ios/client
When the app is in foreground it works in a different way than when it's on background, the push message won't be displayed in foreground, but should fire the notification event.


Deprecate the keep_coords kwarg?

@jbusecke and I think that it might be time to remove the keep_coords kwarg, for simplicity's sake.
My understanding is that it was originally introduced as a workaround to avoiding triggering some issue with xarray's handling of multiindexes, but that that issue has now been fixed upstream.
Removing it would simplify the API, and remove any confusion about what the keep_coords kwarg actually does.
As long as the retained coordinates are guaranteed to be consistent with what's stored in grid, why would you not want to keep them through operations?
This change would obviously require a deprecation cycle to implement.

I think this will also make #369 obsolete.


internal/lsp: don't run debug instance when debug arg is empty

In master branch if I run
gopls -profile.mem=gopls.profile.mem serve -listen=unix\;whatever.unix -listen.timeout=10s

Then run an editor with -remote=unix;/home/wayne/whatever.unix added to the gopls flags, wait for gopls memory usage to stabilize at a fairly large number (I am working within a big mono repo), then kill my editor process and let the 10s -listen.timout expire, I see a top-level 1784.40MB *debug.Instance when I look at the alloc_space web ui pprof view. I'll admit that I don't really understand what alloc_space means (or anything else really), but 1784.40 seems like a fairly big number to me, especially given that in order to keep my work laptop with 16 GB system memory running stably at all I need to contain gopls within a memory-limited cgroup.
Something I found surprising about the existing of that *debug.Instance however is the fact that it exists at all when I didn't pass a -debug flag.
This PR naively attempts to prevent unnecessary memory consumption by  gopls by preventing it from instantiating the *debug.Instance unless a non-empty value is passed to -debug, under the assumption that if the user doesn't pass this flag then they don't want to run the debug instance.
I believe this will work for both the gopls and the gopls serve usages since both appear to rely on debug.GetInstance to obtain the *debug.Instance from the context if it has been set by the line of code I am changing in this PR,.
Thanks for your consideration!

I would attach a couple pprof files to show the gopls memory usage with and without the *debug.Instance instantiated, but I'm not sure what kind of potentially proprietary information about my org's monorepo would show up there.

@googlebot I signed it!

@stamblerre I work in the same monorepo as @waynr - I'm happy to have a private conversation with you and others on the Go team about the monorepo if it's helpful.

Thanks to @heschik's feedback I can see now that this PR is pointless since I was looking at the wrong measurement.


Select a completion when pressing Enter. Fixes #309. r=jsantell

@jsantell
Still working on a test (looks like we don't have any test yet for the location component)

Nice, lgtm!

Coverage decreased (-0.3%) to 44.974% when pulling 2bf6610165a58f31fdcb31f45b639f18bb619f29 on bgrins:select-completion into f2c55972ccb37aa01285535fdf218ae0416f7068 on mozilla:master.

Coverage increased (+1.2%) to 46.508% when pulling 798f68c8aebc607f88f1c002f6176c03ce1262b0 on bgrins:select-completion into f2c55972ccb37aa01285535fdf218ae0416f7068 on mozilla:master.


Exception is incorrectly thrown in Sequence::filter on Windows x64

@krakjoe pointed out that the tests are failing on Windows x64:
Fatal error: Return value of Ds\Deque::filter() must implement interface Ds\Sequence, null returned in Unknown on line 0

Warning: Uncaught Exception in C:\php-sdk\src\ext\ds\vendor\php-ds\tests\tests\Sequence\filter.php:58

There's a try/catch which should be catching the exception in the closure, and ignore the fact that the function returned null.

Test case: testFilterCallbackThrowsException
public function testFilterCallbackThrowsException()
{
    $instance = $this->getInstance([1, 2, 3]);
    $filtered = null;
    try {
        $filtered = $instance->filter(function($value) {
            throw new \Exception();
        });
    } catch (\Exception $e) {
        $this->assertToArray([1, 2, 3], $instance);
        $this->assertNull($filtered);
        return;
    }
    $this->fail('Exception should have been caught');
}

Internal callback filter code: deque_filter_callback
void deque_filter_callback(Deque *deque, zval *obj, FCI_PARAMS)
{
    if (DEQUE_IS_EMPTY(deque)) {
        ZVAL_NEW_DEQUE(obj);
        return;

    } else {
        zval param;
        zval retval;

        zval *src;
        zval *ptr = ALLOC_ZVAL_BUFFER(deque->capacity);
        zval *pos = ptr;

        DEQUE_FOREACH(deque, src) {
            ZVAL_COPY_VALUE(&param, src);
            fci.param_count = 1;
            fci.params      = &param;
            fci.retval      = &retval;

            // Catch potential exceptions or other errors during comparison.
            if (zend_call_function(&fci, &fci_cache) == FAILURE) {
                efree(ptr);
                ZVAL_UNDEF(obj);
                return;
            }

            // Only push if the value is not falsey.
            if (zend_is_true(&retval)) {
                ZVAL_COPY(pos++, src);
            }
        }
        DEQUE_FOREACH_END();
        ZVAL_DEQUE(obj, deque_from_buffer(ptr, pos - ptr));
    }
}

IIRC that's was a bug in PHP 7 that has already been fixed. Is Windows using the most recent version?

Unless @krakjoe isn't, CI clones master (where it passes on 32 bit)

IIRC that's was a bug in PHP 7 that has already been fixed. Is Windows using the most recent version?

Ah, I'm probably not ... I'll pull and do a clean build ...

@nikic can you remember or reference when that was fixed? Can't seem to find a closed bug report for it at bugs.php.net.

https://bugs.php.net/bug.php?id=71485


Support for s3-compatible storage systems?

Hi, I'd like to use this interface with DigitalOcean's s3 compatible object storage. I guess this is not possible using aws sdk directly, so I think this would be a cool feature to have.
EDIT: This can be done using the minio's SDK https://github.com/minio/minio-go

See my implementation of the minio client based on your interface https://github.com/dreamvo/gilfoyle/blob/4afb172dd1e90081459db4f336f868982d977b83/storage/s3/s3.go

supported via endpoint


Remove bytecode transformation workaround in aws2-kinesis

Description
With the newest amazon-kinesis-client, the javax.xml.bind.DatatypeConverter is used in the code. (see ticket).
The current solution is a (long) substitution for the native to work (javax has to be replaced with jakarta).
It might (or not) be possible to solve the issue in more elegant way - by using bytecode transformations (see an example)

I did this in #6286. We just need to watch the linked ticket for a fix and eventually remove the workaround.


feature Request：add getNodeByName and getNodeByTag to get any sub-node from a node

@pandamicro
in general, we can define some layer in a csd file.
some time we need to make some layer to be visible or  invisible.
so the first step is we need to get the sub-node that is the layer we want to operator.

Here, we now have enumerateChildren API, please take a look
https://github.com/cocos2d/cocos2d-html5/pull/2831


Use cookies when downloading images

I added the SDWebImageHandleCookies option to the photo downloader.
I could extend this to be customizable outside of the class if needed, but it feels like a reasonable default and the solution is very low touch.

@eduardocallado any thoughts on allowing this to be the default behavior?

That's a nice change, it should be the default behavior. Thanks!


[Discussion] API example

Anyone care to post example code of how to use the API?
Goal: Call separate_to_file()
EDIT
I forgot to mention that I'm trying to do whatever is discussed here https://github.com/deezer/spleeter/issues/112
To build the model once and re-use the model.

Hi what exactly are you having trouble with? To use the function, its pretty much copy and paste from the docs  https://github.com/deezer/spleeter/wiki/4.-API-Reference then you specify any extra parameters accordingly. Let me know if you getting any errors

I just don’t know Python :(
tors 28 nov. 2019 kl. 12:07 skrev Scylla2020<EMAIL_ADDRESS>
Hi what exactly are you having trouble with? To use the function, its
pretty much copy and paste from the docs
https://github.com/deezer/spleeter/wiki/4.-API-Reference http://url
then you specify any extra parameters accordingly. Let me know if you
getting any errors
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/deezer/spleeter/issues/144?email_source=notifications&email_token=ABIREEHMWUEUI3P6N43LC7TQV6Q67A5CNFSM4JSSSAOKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEFMIOTQ#issuecomment-559449934,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABIREEGSY4ZSRZRKNK6TICLQV6Q67ANCNFSM4JSSSAOA
.

--
Sincerely, Aid vllasaliu

Okay no probs, So for multiple files it would be something like this:
# List of input to process.
audio_descriptors = ['audio1.mp3', 'audio2.mp3']

# Batch separation export.
for i in audio_descriptors:
    separator.separate_to_file(i, destination='OutputFolder', synchronous=False, bitrate='320k', codec='wav')

# Wait for batch to finish.
separator.join()

I will share a complete script soon as I have been implementing an user interface as well.

Thanks. But there should be imports as well, right?

Sure I have updated the above. To process a single file it will be just
from spleeter.separator import Separator

separator = Separator('spleeter:2stems')

separator.separate_to_file('myaudio.mp3', destination='OutputFolder', synchronous=False, bitrate='320k', codec='mp3')

The model then only gets built and loaded only one time when separator = Separator('spleeter:2stems') is called

@Faylixe I have read the manual. I am a total beginner in Python. Is it not allowed to discuss with fellow Spleetermen about Spleeter related things?


Breaks with Android X :(

Android X changed the namespaces of Components. After migrating this doesn't work anymore as the imports arent found :( Can we get a fix for this?

why not fix the names and make Pull Request? It should not be hard.
IMHO, there is a need for new branch and new versioning for supporting of AndroidX (0.4??)

+1

@MTRNord You can add the androidx recyclerview library to solve the androidx related problem.
stackoverflow: Androidx project can't recognize the class of library using android.support.v7

@TinaT2 Don't mean to be rude but this issue was closed 2 years ago ^^


RFC: Onboarding should be easy

Simple, fast onboarding will help companies to uptake Backstage and get value from it quickly.
The problem
Imagine an engineer or product manager in a company who really believes in Backstage and understands the value it could bring to their organization. They want to get their company using it but Backstage requires metadata to be embedded in the Git repos of the various services and data models which the company uses. This lone engineer or PM can fill out the metadata for their own services but they can't fill out the metadata for all of the services in their company, or even a significant subset of them.
This high-tough onboarding process makes Backstage difficult to adopt, even inside companies which can see the value of using it. I'm creating this GitHub issue to theorize about improvements.
Potential solutions
Here are a few ideas to get started. This is more brainstorming than implementation level solutionizing.

Develop an agent which can sit in a Kubernetes cluster (or other infrastructure - eg. attach to serverless workloads) and push metadata about the services running there to Backstage APIs (something like this does perhaps - Disclaimer: I wrote it).
Develop tools which can automatically open pull requests against GitHub repos inside an organization to populate them with a (likely empty) metadata YAML file. The values would need to be filled out by the owners of the team but at least the initial structure would be there. Tools which can migrate existing metadata files which are in place for competing internal systems should also be considered.
Make microservice sample applications which respond on an API endpoint with their metadata. Perhaps it would be possible to work with projects like micro/micro on this.
...??

Context
The full power of Backstage unlocked within an organization when there is a high level of data-completeness and correctness.
I am making a number of assumptions when opening this PR

The desired metadata collection process involves ingesting metadata from git repos as described in #454
There is a desire for the ability to detect service metadata by connecting to an API on each service instance over the network (perhaps this is better left to service registries?)

Complete onboarding will likely never be a 5 minute job of course. Backstage just touches too many parts of the infra for that to be possible.
That is ok. The point is to reduce the "time to wow" as much as possible for the person who is installing Backstage for the first time. You want them to be able to run a few commands then turn to the person beside them (assuming we are all COVID free and back in the office here!) and say "holy sh*t look at this". This will make it much easier for Backstage to spread virally within the company so that everyone starts using it.

Great topic. Adding on to it:
While meeting various companies interested in Backstage it is clear that many already have some kind of inventory of their software (yaml files that are scraped and exposed through an API, databases, spreadsheets, etc).
For this category of customers it should be possible to keep their existing solution, and write a small "shim" that integrates their solution with an API that Backstage provides.
The same pattern is valid for the Identify service.

To add one more thing to this: We can also rely on known APIs in combination with a little configuration to provide functionality out of the box. For example, I think it should eventually be possible to:

Discover and index all services running in Kubernetes/Heroku/Lambda/...
Get all builds from Tekton/CircleCI/Travis/Jenkins/...
Query all databases, pub/sub topics, and other interesting resources from GCP/AWS/Azure...

This comes down a bit to how we model the catalog, and if you need a source code repository for a component/resource/api to exist or not.

Hi there, coming from a managed services/consulting background I can affirm that most companies have messy Cloud accounts and a high enough employee turnover to make things hard in the beginning.
I believe that Cloud scanners + other background discovery tools that can help import things in a Service/Resource Catalog is very helpful. Without proper tagging and metadata, it can be difficult to know what to environments, applications/products and teams each resource belong.
Scanning things and registering stuff in the Service Catalog is a great first step and then asking for teams to review untagged resources makes it much easier during onboarding.
Regarding Cloud resources, a great way of doing that is using Cloud SDKs + some other tools helpful tools like ScoutSuite.

@brunopereiraelven Agreed. Internally at Spotify, we leverage Backstage to gently automatically poke at people about various kinds of misconfiguration, through information boxes and color choices etc. One such example is if the owner you have set for your component does not abide by certain business rules. We have found that this can be rather effective actually, in terms of engagement/outcome, without being actually disruptive. So if we could auto-mass-import, and then put relevant and actionable information about missing pieces in front of people that care, experience suggests that they will want to reconfigure their thing, and things will improve gradually at a steady pace.

What @aexvir and friends are doing might be interesting to look at https://github.com/kiwicom/the-zoo/pull/306

I'll close this now because it's really old and can be superseeded by the more specific suggestion in https://github.com/spotify/backstage/issues/2801


wip: test i18n renders

This is a test PR. Do not review.

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by: LucaGuerra
Once this PR has been reviewed and has the lgtm label, please assign vjjmiras for approval. For more information see the Kubernetes Code Review Process.
The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

content/OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by: LucaGuerra
The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by: LucaGuerra
Once this PR has been reviewed and has the lgtm label, please assign vjjmiras for approval. For more information see the Kubernetes Code Review Process.
The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

content/OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment


Any chance of a MD plug in for V 2.6 (PSMStudio)?

Looking to update NuGet packaging for MonoGame and the last platform is PSMobile.
However even the latest version of PSMStudio is only based on MonoDevelop 2.6.
Is there any chance to way for this NuGet plugin to work with that version?

I downloaded the latest PSM SDK 2.0 and that seems to be using MonoDevelop <IP_ADDRESS>.
I tried a recompiled version of the NuGet addin which seems to work without any real changes apart from changing the configuration so it refers to MonoDevelop 2.8.
I can probably drop the version specified in the config down to 2.0 to make it work in any 2.x version.

That would be great.  It's the only thing stopping us delivering a NuGet for the PSM platform :dancer:

Sadly this does not work. If an addin says it is compatible with 2.0 or 2.6 it cannot be installed in MonoDevelop 2.8.
I built a version of the NuGet addin for MonoDevelop 2.6 but I have not tested it. You should be able to download the .mpack and install it from file.
I also tried to get the NuGet addin to build on MonoDevelop's addin site but it does not seem to be working. That would have made it available to PSM Studio since it seems to use the MonoDevelop addin gallery.


python310Packages.pyhumps: 3.5.3 -> 3.7.1

Description of changes
Update to latest upstream release 3.7.1

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
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
22.05 Release Notes (or backporting 21.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 173926 run on x86_64-linux 1

5 packages built:

home-assistant-component-tests.overkiz
python310Packages.pyhumps
python310Packages.pyoverkiz
python39Packages.pyhumps
python39Packages.pyoverkiz


jnp.apply_along_axis errors, but numpy works

import numpy as np
import jax.numpy as jnp

>>> x = np.array([[0, 0, 1, 1], [1, 1, 0, 0], [0, 1, 1, 0]])
>>> np.apply_along_axis(np.where, 1, x).squeeze()
array([[2, 3],
       [0, 1],
       [1, 2]])
>>> jnp.apply_along_axis(jnp.where, 1, x).squeeze()

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/wanglei/anaconda3/lib/python3.8/site-packages/jax/_src/numpy/lax_numpy.py", line 3702, in apply_along_axis
    return func(arr)
  File "/home/wanglei/anaconda3/lib/python3.8/site-packages/jax/_src/numpy/lax_numpy.py", line 3697, in <lambda>
    func = lambda arr: func1d(arr, *args, **kwargs)
  File "/home/wanglei/anaconda3/lib/python3.8/site-packages/jax/_src/numpy/lax_numpy.py", line 1698, in where
    return nonzero(asarray(condition))
  File "/home/wanglei/anaconda3/lib/python3.8/site-packages/jax/_src/numpy/lax_numpy.py", line 2268, in nonzero
    a = core.concrete_or_error(atleast_1d, a, "The error arose in jnp.nonzero")
jax._src.traceback_util.FilteredStackTrace: jax._src.errors.ConcretizationTypeError: Abstract tracer value encountered where concrete value is expected: Traced<ShapedArray(int32[4])>with<BatchTrace(level=1/0)>
  with val = array([[0, 0, 1, 1],
                    [1, 1, 0, 0],
                    [0, 1, 1, 0]])
       batch_dim = 0
The error arose in jnp.nonzero

 (https://jax.readthedocs.io/en/latest/errors.html#jax.errors.ConcretizationTypeError)

The stack trace above excludes JAX-internal frames.
The following is the original exception that occurred, unmodified.

--------------------

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/wanglei/anaconda3/lib/python3.8/site-packages/jax/_src/numpy/lax_numpy.py", line 3702, in apply_along_axis
    return func(arr)
  File "/home/wanglei/anaconda3/lib/python3.8/site-packages/jax/_src/traceback_util.py", line 139, in reraise_with_filtered_traceback
    return fun(*args, **kwargs)
  File "/home/wanglei/anaconda3/lib/python3.8/site-packages/jax/api.py", line 1223, in batched_fun
    out_flat = batching.batch(
  File "/home/wanglei/anaconda3/lib/python3.8/site-packages/jax/linear_util.py", line 166, in call_wrapped
    ans = self.f(*args, **dict(self.params, **kwargs))
  File "/home/wanglei/anaconda3/lib/python3.8/site-packages/jax/_src/numpy/lax_numpy.py", line 3697, in <lambda>
    func = lambda arr: func1d(arr, *args, **kwargs)
  File "/home/wanglei/anaconda3/lib/python3.8/site-packages/jax/_src/numpy/lax_numpy.py", line 1698, in where
    return nonzero(asarray(condition))
  File "/home/wanglei/anaconda3/lib/python3.8/site-packages/jax/_src/numpy/lax_numpy.py", line 2268, in nonzero
    a = core.concrete_or_error(atleast_1d, a, "The error arose in jnp.nonzero")
  File "/home/wanglei/anaconda3/lib/python3.8/site-packages/jax/core.py", line 968, in concrete_or_error
    raise ConcretizationTypeError(val, context)
jax._src.errors.ConcretizationTypeError: Abstract tracer value encountered where concrete value is expected: Traced<ShapedArray(int32[4])>with<BatchTrace(level=1/0)>
  with val = array([[0, 0, 1, 1],
                    [1, 1, 0, 0],
                    [0, 1, 1, 0]])
       batch_dim = 0
The error arose in jnp.nonzero

 (https://jax.readthedocs.io/en/latest/errors.html#jax.errors.ConcretizationTypeError)

Thanks for the report!
This comes from the fact that one-argument jnp.where has output shape that is dependent on values in the input, and therefore is not compatible with JAX transformation. A more direct way to surface this error is:
jit(jnp.where)(jnp.arange(5))

Because apply_along_axis is implemented via vmap, the function you pass to it must be compatible with JAX transforms.
You can work around this by using the equivalent nonzero function along with the static size argument to specify the size of the ouput:
>>> jnp.apply_along_axis(jnp.nonzero, 1, x, size=2)
(DeviceArray([[2, 3],
              [0, 1],
              [1, 2]], dtype=int32),)

Thanks! It is clear to me now.
It is good to know there is a size argument of jnp.nonzero!
BTW, I was doing this as a work around before knowing the size trick:
>>> jnp.argsort(x)[:, -2:]
DeviceArray([[2, 3],
             [0, 1],
             [1, 2]], dtype=int32)

I guess jnp.nonzero will be more efficient for this purpose.

Thanks for raising this! I'm going to close it because I think it's solved, but please reopen if I'm mistaken.


[FEATURE] Make a progress bar

Description
We are going to officially launch the website when we have 100 approved questions.
Until then, we should show a progress bar showing how many of them have been approved on the landing page.

Yes, I think something like that might work well.

Sounds great! Can I pick up this one? 😁

of course!
another idea I had is to do it step by step.
for example: get to 10 approved questions to unlock something, get to 25 to unlock more, etc.

I like the idea of the multi-step progress bar that unlocks different stuff at each stage!
I will work on a multi-step progress bar.
And also, set a 1 step progress (hard-coded to 'Launch' at 100 approved questions) for now.
Maybe we can figure out what to unlock & where to store the milestones (hardcode them OR in the database) along the way.

Sounds perfect! Thank you so much


When put IntlPhoneField() inside Stack(), the field is uneditable

I have a background on my screen, so I put IntlPhoneField() inside a Stack(), but then the field is uneditable. At first I thought it's my bug, but when I replace the Stack() with Column(), the field can be edited again. So this is a bug.

Hey, can you please share part of your code to reproduce the bug (and by the way the fix you find too)

I tested it again, this is not your bug, so I will close this issue. Sorry about that.


Update push notifications troubleshooting section

Updated to reflect changes of location of push notification settings in System Console

Assigning to @lfbrock per off-boarding guide.


Rework/redisign cloudinit iso-generation

So this is issue is for improving the cloudinit design.
We find out currently that requiring mkisofs is not universal enough in different os ( some version of SLES/ and some debian lack on this pkg).
Using also geniso was the same issue.
This issue is more about thinking on how we could redisign the iso generation part in more scalable/universal way.
I was thinking to use usb disk and dd. I think this could be possible and more universal.
But maybe other ways are possible

How about using https://github.com/kdomanski/iso9660, do you see any immediate downside or roadblock?

good point. I think i didn't check it but is a good link to look at. thx for re-opining :)

For debian:
apt update && apt install xorriso && update-alternatives --install /usr/bin/mkisofs mkisofs /usr/bin/xorrisofs 10

thx

Hi,
we create our config isos with https://github.com/diskfs/go-diskfs
Example: https://gist.github.com/kstieger/66399edf56ca967b9ac232e6c438c4cd

Ah okay, terraform 1.5.0 is broken, terraform 1.4.6 is totally fine. This isnt an issue for here I'll open one directly.

Related to #1018


opencl version

Hi,
What is the required opencl version? Will it work with OpenCL 1.2?

Hi @maweigert thanks for the reply. I am also trying to download sample data for light sheet microscopy using Biobeam. The lightsheet_sample_signal.tif download link on Supplementary Data is not working. Please help. Thanks!

Hi,
the link was indeed broken - thanks for catching that! Should be fixed now...


Release 4.7.0

Changelog
[4.7.0] - 2020-05-29
Added

Code View

Added code-view styling

Input Group

Added icon on error

Loaders

Added centered loader

Topbar

Made Topbar menu able to have sidebar content, tweaked Sidebar styling when inside of Topbar

Design Guide

Button

Added .btn-link recommendation

Changed

Breakpoints

Moved to Utilities

Buttons

Updated button sizes

Forms

Moved height property of input to be under form-control
Changed styling of disabled form components
Changed styling of checkboxes and radio buttons

Input Group

Removed color property from input-group>form-control

Links

Updated Action Link for new tab color
Made icons top-align instead of center align verically

Sidebar

Changed leaf styling when used on same level as subgroups

Steps

Renamed steps in documentation
Updated styling

Topbar

Reversed icon of topbar-link-right

Design Guide

Links

Updated documentation

Forms

Changed to use correct code-tags component
Updated docs to reflect changes on has-error

Loaders

Removed invalid HTML in docs

Sidebar

Removed invalid HTML in docs

Code View

Changed styling of component to present code

Changed Design Guide navigation options (Sidebar and topbar)
Changed Design Guide navigation structure
Changed Home page to reflect navigational and structural changes

Fixed

Sheet

Fixed issues with Sheet producing unnecessary EventListeners
Fixed issues with Sheet creating duplicate objects of same instance

Topbar

Fixed issues with Topbar producing unnecessary EventListeners

 Here is an overview of what got changed by this pull request:

Issues
======
+ Solved 12
- Added 46

Clones added
============
- src/App/routes/components.test.js  4
- src/App/ComponentsDocumentation/components/Loaders/index.test.js  3
- src/App/ComponentsDocumentation/components/Accordion/index.js  2
- src/App/ComponentsDocumentation/components/CodeView/index.js  2
- src/App/ComponentsDocumentation/Introduction/index.js  2
- src/App/Examples/index.test.js  1
- src/App/routes/core.test.js  4
- src/App/ComponentsDocumentation/components/Topbar/index.js  1
- src/App/ComponentsDocumentation/components/Sidebar/index.js  3
- src/App/routes/all.test.js  4
- src/App/routes/utilities.test.js  4
- src/App/routes/examples.test.js  4
- src/App/Core/core/Page-layout/index.js  2
- src/App/routes/getting-started.test.js  4
- src/App/docutils/ComponentPreview/index.js  2
- src/App/ComponentsDocumentation/components/Topbar/index.test.js  8
- src/App/ComponentsDocumentation/components/ProgressSteps/index.js  3

Clones removed
==============
+ src/scripts/main/sheet/index.js  -2
+ src/scripts/main/topbar/NavMenu.js  -1
+ src/App/components/Sidebar/index.js  -10
+ src/App/Resources/index.js  -1
+ src/scripts/main/sidebar/index.js  -2
+ src/scripts/main/topbar/index.test.js  -2

See the complete overview on Codacy


Cast meta types to Type base type so that subs is compatible

What is the goal of this PR?
fix #98
To fix an issue where getting meta types via concept API causes a cast error. The MetaType class should be treated as a Type so that it is compatible with regular type instances. This should prevents calls like subs on the meta type from incorrectly casting their subs to a MetaType.
What are the changes implemented in this PR?

MetaTypes are treated like Type for the purposes of casting.

it's a bit awkward that the current  impl leads to MetaTypes having to be treated as Types sometimes - shouldn't they just be types?


Client not sending changes to server

I'm using the latest client with offline sync enabled along with optimistic concurrency.  After calling the UpdateAsync method, before the request is sent I can see my record was updated in my local SQLite databse, but after the request is sent the row is reset to the original values.  Looking at the request on the server, the Id of the record is received but none of my object's data is sent (the delta shows no changes).  InsertAsync works fine so I don't think it's a serialization issue with my classes.  I have the Version field in my object(s) and it is getting populated locally on the PullAsync.
I can provide more details if necessary.  I've been debugging/tracing/fiddler-ing this and can't figure out what the issue is.

Hi @JCpoz123
It would be super helpful to get some sample project to be able to reproduce this. If it is not possible, could you please provide additional info:

how do you set up your sync context
how do you perform synchronization
what response do you receive from the server
what is your table structure

Thanks,
Murat

I will see if I can put together a sample project that recreates the issue.
In the meantime:

The mobile service sync context is instantiated using a local SQLite store and a sync handler.  We use the handler to perform extra processing on certain tables.  The issue happens on all tables.  Our service is running on Azure.
We use the Azure.MobileServices.MobileServiceClient to handle synchronization.  Our app works on/offline.

After the response is received on the client the row is returned to it's original state, but breaking just before the request is sent the row in the local DB has the updated values.

There are 20+ tables, none of which are updating.  The only commonality are the system property columns, which are named differently but the app service uses Fluent API in the dbContext.OnModelCReating to map the fields (createdAt, updatedAt, deleted, version) to their actual column names.

I was wondering if the issue is related to how the version field is handled.  POST/insert works (as does delete) but maybe the PATCH/updating is having an issue with the mapping.

I have figured out the issue.  My controllers were annotated with [MobileAppController] which apparently causes issues.
https://github.com/Azure/azure-mobile-apps-net-server/issues/123


Use array-based NEWARRAYM*T insead of variadic version

Requires https://github.com/D-Programming-Language/druntime/pull/1102

"I have a great idea!" said Microsoft gleefully, imagining dozens of compiler engineers bashing their heads against desks.  "Let's invent our own x86_64 ABI!"

Sometimes I share the same feeling, only replace 'Microsoft' with 'Walter', and 'x86_64' with 'x86'.  :)

Yay, finally green.  I needed to call addressElem on the array args on win64, and had to use array_toDarray instead of eval_Darray because eval_Darray is for parameters and will call addressElem on win64.  Sigh.

Anyone?

Why not. :)

Auto-merge toggled on

Thanks :)


Migrate to the pretix plugin as backend

We have recently replaced the PHP backend with a pretix plugin. The terminal also uses that new backend now and we want to reflect the changes in this repo.

Argh, I opened this PR on the wrong Repo, sorry.


Get config_dir from env TMUXP_CONFIG_DIR or TMUXP_DIR

This make the tmuxp config dir configurable by setting env variables TMUXP_CONFIG_DIR or TMUXP_DIR.

Codecov Report

:exclamation: No coverage uploaded for pull request head (feature/configurable_default_tmuxp_config_dir@2fd8999).

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 8ab1f17...2fd8999. Read the comment docs.

Any feedback?

Nice :)


Ctm/replace http lib

switched the deprecated lib "request-promise" and "request" with "node-fetch"
removed "scenario" from trigger


Flaky test: tests/steamship_tests/app/integration/test_e2e_mixins_importer_blockifier.py

From https://github.com/steamship-core/python-client/pull/421

It's basically testing something inherently probabilistic (embedding of various words + AKNN lookup) -- the "A" in "AKNN" being the element of stochastic behavior

Test failure example: https://github.com/steamship-core/python-client/runs/14141551026
cc: @eob

Fixed by https://github.com/steamship-core/python-client/pull/428.
cc: @eob


how long does it take to send feedback ?

I am sending notifications to device tokens that are not valid anymore (the user deleted the token, generated a new one). Notifications are not received but i also don't get transmission errors or any feedback that allows me to know which device tokens are not valid anymore. How long should i wait for feedback ? (i have been waiting 10+ minutes)
thank you

How you fix it? I have similar issues.


AOT Warning: (CsWinRT1028) The XamlMetaDataProvider is not marked partial

Describe the bug

AOT Warning: (CsWinRT1028) The XamlMetaDataProvider is not marked partial
To Reproduce

The XamlMetaDataProvider is not marked partial
Expected behavior

Version Info

CsWinRT 2.1.0-prerelease.240801.1
Windows SDK 10.0.26100.37-preview
.NET SDK 9.0.0-preview6
Windows App SDK 1.6.240701003-experimental2
Additional context

This is fixed for the next 1.6 release.


Multihop support

Is there a chance for adding multihop support in the future?

I did actually play around with that a while ago, not using Mullvad's official method but just using basic client-side routing with a shell script. This allows for an "infinite" (bounded by MTU) amount of hops, also across vpn providers.
I have no real use for it myself but might integrate it into mlvd one day. Pull requests are welcome too.


Crash in runtime due to ponyint_actor_run() executing the same actor at same time on two threads

Full details are here:
https://github.com/KittyMac/pony.problems/tree/master/crash_due_to_parallel_actor_execution
Running the example with ponynoblock enabled is key to getting the crash. But the issue isn't the crash, the issue is ponyint_actor_run() is running for the same pony_actor_t at the same time on two different schedulers. When that happens, one of them reaches the end of ponyint_actor_run() first and deletes the actor while the other is still executing, causing the crash.
To easily see when the same actor is being run multiple times at the same time, you can use the patched actor.h and actor.c included. They add a simple bool running to actor.h, and set it to true when inside ponyint_actor_run() and false at each exit point. If ponyint_actor_run() executes on the same actor twice at the same time, then for one running is true, it will prints a '.' to the console, and it will return true (avoiding the parallel run).
I spent a couple days looking, but I did not find the cause of the issue.  My investigation led me to think its somewhere in the work stealing.

I haven't looked closely at this, but I would think the most likely culprit would be a bug in the backpressure implementation code.

During experimentation, I discovered if i add a pthread_mutex() to ponyint_mpmcq_pop() the problem goes away.

Ok, i understand this a bit more now.
Parts of ponyint_actor_run() does indeed run in parallel, and it looks like that is by design.  So the issue is no longer "there's a danger of messages being processes out of order on two different schedulers", and is back in the realm of "pony is crashing when ponynoblock is true and its under heavy message load".
The synchronization point in pony actors which prevents multiple actors accessing the message queue at the same time is in the scheduling details in sendv. When a message is sent to an actor (via the pony_sendv from a different thread), if the messageq has been marked as empty then that other thread reschedules the actor with ponyint_sched_add (so that it can process the work in the future).  Which means that, while we can be in ponyint_actor_run() on two different threads, the first thread needs to have called ponyint_messageq_markempty() first.
Knowing this, the problem causing the crash is as follows:
  bool empty = ponyint_messageq_markempty(&actor->q);
  if (empty && actor_noblock && (actor->gc.rc == 0))
  {
      // when 'actor_noblock` is true, the cycle detector isn't running.
      // this means actors won't be garbage collected unless we take special
      // action. Here, we know that:
      // - the actor has no messages in its queue
      // - there's no references to this actor
      // therefore if `noblock` is on, we should garbage collect the actor.

      ponyint_actor_setpendingdestroy(actor);
      ponyint_actor_final(ctx, actor);
      ponyint_actor_destroy(actor);

	  return false;
  }

  // Return true (i.e. reschedule immediately) if our queue isn't empty.
  actor->running = 0;
  return !empty;

Thread A calls ponyint_messageq_markempty().  empty is sent to true.
Thread B calls sendv, sees empty queues, and reschedules the actor
Thread A then continues execution, dropping into the conditional and destroying the actor
Thead X gets the rescheduled-yet-destroyed actor and tries to process, resulting in bad things.

Under this theory, the next missing piece of the puzzle is "why didn't (actor->gc.rc == 0) prevent going into the conditional"?  As per the comment, if no one is referencing this actor how did someone manage to send it a message in step #2 of the theory?
I don't have a full answer to that yet.  I know what when #4 happens, at that time actor->gc.rc is 256. So its possible that the ordering is more like:

Thread A calls ponyint_messageq_markempty().  empty is sent to true. It gets into the conditional past (actor->gc.rc == 0) check.
Thread B is executing and gains a reference to actor, calls sendv, sees empty queues, and reschedules the actor
Thread A then continues execution, dropping into the conditional and destroying the actor
Thead X gets the rescheduled-yet-destroyed actor and tries to process, resulting in bad things.

@dipinhora found a bug in the scheduler message queue that would be likely source of this issue. I need to write it up but it could result very (rarely) in an actor having been in 2 scheduler queues and getting run in parallel which would result in bad things.


Build activity model

Describe the Feature / Enhancement
We want the user to be able to track their activity for the day, and as such need the Activities model to be built out. We will also need to build the ActivityTypes model as Activity model shares a ForeignKey
Additional Details and Resources
The models should look something like this:
ActivityTypes
id: BigInt (PK)
name: text
Activities
id: BigInt (PK)
type: BigInt (FK: ActivityTypes.id)
user_description: text
duration: integer
difficulty: integer
Correct Project Selected

[X] This issue is linked to the appropriate project.

Correct Label Selected

[X] This issue has appropriate labels.

Correct Milestone Selected

[X] This issue has appropriate milestone.

Created both activity models and registered them to the admin site with more readable names.


It show like this when i was running install.sh

And i am using pi 5

Besides,after checking my pi os,i didnt find the folder called"emulationstation" in /etc

What OS did you installed?
When it normally boots it should show the EmulationStation graphinc interface
And if booted to terminal or via ssh is hould see something like this


download current map extent

Not planning to add this at the moment, instead, use the print widget in Experience Builder out of the box

Not planning to add this at the moment, instead, use the print widget in Experience Builder out of the box


⚠ Bofrost.lu has degraded performance

In 0f1c2ed, Bofrost.lu (https://www.bofrost.lu) experienced degraded performance:

HTTP code: 200
Response time: 1244 ms

Resolved: Bofrost.lu performance has improved in 95b14a8 after 8 minutes.


functions for DEG analysis

Dear cellxgene_vip authors,
I am looking into the script used for DEG analysis VIPInterface.py and can't figure out where function "compute_diffexp_ttest"
come from. I guess it is corresponding to the cellxgene t-test option in the frontend.
scripts relevant:
if data['DEmethod']=='default':
if sum(mask[0]==True)<10 or sum(mask[1]==True)<10:
raise ValueError('Less than 10 cells in a group!')
#with app.get_data_adaptor(url_dataroot=data['url_dataroot'],dataset=data['dataset']) as scD:
scD=data['data_adapter']
if scD is not None:
#res = diffDefault.diffexp_ttest(scD,mask[0].to_numpy(),mask[1].to_numpy(),scD.data.shape[1])# shape[cells as rows, genes as columns]
res = scD.compute_diffexp_ttest(mask[0].to_numpy(),mask[1].to_numpy(),scD.data.shape[1]-1,0.01)
Thanks for your input!

should be someting linked to https://github.com/sinnamone/cellxgene/blob/main/backend/czi_hosted/compute/diffexp_generic.py  and https://gitlab-ce.gwdg.de/loosolab/container/cellxgene/-/blob/seve/standard-endpoint-naming/server/data_anndata/anndata_adaptor.py. I will read the code more carefully.


stream.push() after EOF

I am seeing this in Google Chrome:
_stream_readable.js:168 Uncaught Error: stream.push() after EOF
_stream_readable.js:168 readableAddChunk
_stream_readable.js:149 Readable.push
_stream_transform.js:145 Transform.push
stream.js:73 onmessage

No idea what it means. It's a special case where I have closed the stream, yet this is happening. Possible to add more context in the error?

Could you reproduce it reliably? May I ask you to add a test to test-client?
It's a race condition (hurray!) between closing the Stream and closing the actual websocket. When you close the proxy, a 'close' event is emitted, and here the websocket is destroyed.
In the latest versions there were a bug in handling the errors (some errors were swallowed), and we changed the closing logic.
@mafintosh what do you think?

Indeed, it's a race condition. Difficult to reproduce. Hence I recommend a stress test with 1000 random connections.
But you can see it yourself if you are lucky. Just open www.videomail.io on Google Chrome, expand the console under Developer tools, click on the logo (link to home) like crazy, 20 times afterwards. On each click a new websocket is generated and on every beforeunload window event the stream is ended. Sometimes inbetween these actions the above error occurs.
Furthermore I sometimes see this error on the server side
Error
Error: not opened
Stack
Error: not opened
at WebSocket.send (/var/www/videomail/production/source/node_modules/ws/lib/WebSocket.js:213:38)
at DestroyableTransform.socketWriteNode [as _transform] (/var/www/videomail/production/source/node_modules/websocket-stream/stream.js:38:12)
...

Both errors are somewhat related. But the latter one is more a ws issue I guess.
Anyway, I really think a random stress test would be the way to go ...

@binarykitchen could you add a code snippet that i can run to show this error?

That error you see on the server side is perfectly fine. It should be emitted by the websocketstream object, and you should handle it properly. Before 1.2/1.3, either it was swallowed or it was thrown. If a connection is not closed properly and you try to send stuff, you will get that.
Yeah, a small script to reproduce will help us fixing this, otherwise is hunting in the dark.

I am afraid no. But it happens almost every time I click on www.videomail.io's logo like crazy, 20 times over again. That's why I recommend random stress tests.
All I can tell is that it's happening in this code (I removed parts which aren't relevant):
https://gist.github.com/binarykitchen/63bfeb6cc50057c1af6f
Okay, how can I examine if a connection is closed properly before creating a new one?

@binarykitchen you can write that random stress test.

Yeah maybe later. Too busy looking for a job / project right now :(

I'm also seeing this in node (v5.1.1), don't know if it is the same cause but I can't seem to reproduce it locally. Only happens on my server when streaming multiple large files (using @maxogden's multiplex).
Error: stream.push() after EOF
    at readableAddChunk (node_modules/readable-stream/lib/_stream_readable.js:185:15)
    at DestroyableTransform.Readable.push (node_modules/readable-stream/lib/_stream_readable.js:163:10)
    at DestroyableTransform.Transform.push (node_modules/readable-stream/lib/_stream_transform.js:133:32)
    at WebSocket.onmessage (node_modules/websocket-stream/stream.js:75:11)
    at WebSocket.onMessage (node_modules/ws/lib/WebSocket.js:418:14)
    at emitTwo (events.js:87:13)
    at WebSocket.emit (events.js:172:7)
    at Receiver.onbinary (node_modules/ws/lib/WebSocket.js:823:10)
    at node_modules/ws/lib/Receiver.js:537:18
    at node_modules/ws/lib/Receiver.js:361:7

Are you using pump to pipe your streams together?

I am now :) Looks like it solved my problems, thanks!

I am also this problem at node V4.2.4 websocket-stream V2.0.2.
[2016-03-07 21:39:41.729] [ERROR] boot - s3.17238 - uncaughtException, process will exit. [Error: stream.push() after EOF]
Error: stream.push() after EOF
  at readableAddChunk (/root/daniujia_production_mqttServer_1.0.5/node_modules/mosca/node_modules/websocket-stream/node_modules/through2/node_modules/readable-stream/lib/_stream_readable.js:168:15)
  at DestroyableTransform.Readable.push (/root/daniujia_production_mqttServer_1.0.5/node_modules/mosca/node_modules/websocket-stream/node_modules/through2/node_modules/readable-stream/lib/_stream_readable.js:149:10)
  at DestroyableTransform.Transform.push (/root/daniujia_production_mqttServer_1.0.5/node_modules/mosca/node_modules/websocket-stream/node_modules/through2/node_modules/readable-stream/lib/_stream_transform.js:145:32)
  at WebSocket.onmessage (/root/daniujia_production_mqttServer_1.0.5/node_modules/mosca/node_modules/websocket-stream/stream.js:75:11)
  at WebSocket.onMessage (/root/daniujia_production_mqttServer_1.0.5/node_modules/mosca/node_modules/websocket-stream/node_modules/ws/lib/WebSocket.js:418:14)
  at emitTwo (events.js:87:13)
  at WebSocket.emit (events.js:172:7)
  at Receiver.onbinary (/root/daniujia_production_mqttServer_1.0.5/node_modules/mosca/node_modules/websocket-stream/node_modules/ws/lib/WebSocket.js:823:10)
  at /root/daniujia_production_mqttServer_1.0.5/node_modules/mosca/node_modules/websocket-stream/node_modules/ws/lib/Receiver.js:537:18
  at /root/daniujia_production_mqttServer_1.0.5/node_modules/mosca/node_modules/websocket-stream/node_modules/ws/lib/Receiver.js:361:7
  at /root/daniujia_production_mqttServer_1.0.5/node_modules/mosca/node_modules/websocket-stream/node_modules/ws/lib/PerMessageDeflate.js:238:5
  at afterWrite (_stream_writable.js:346:3)
  at onwrite (_stream_writable.js:337:7)
  at WritableState.onwrite (_stream_writable.js:89:5)
  at afterTransform (_stream_transform.js:79:5)
  at TransformState.afterTransform (_stream_transform.js:54:12)
  at Zlib.callback (zlib.js:614:5)

Hello,
Using pump is made for you only if you want to close your local stream when the websocket stream closes.
What if I don't want to close my local stream? Say I have a continous, singleton, stream (like video streaming) that I want to still continue after my last client disconnected? ;)
More seriously:
I suspect websocket-stream to still try to send (in socketWriteNode) a packet even if the client disconnected just after requesting the data, resulting in this exception. For development, manually try-catching socket.send solves the problem, but being able to set a callback for that would be nice. What do you think?


Trait 'League\OAuth2\Client\Tool\ArrayAccessorTrait' not found in ../wp-content/oauth2-client-master/src/Provider/AbstractProvider.php

I am trying to implement Mollie-Oauth2-API into my WordPress E-commerce environment. On inheriting Oauth2-client and Oauth2-mollie I am receiving the error below:

Trait 'League\OAuth2\Client\Tool\ArrayAccessorTrait' not found in ../wp-content/oauth2-client-master/src/Provider/AbstractProvider.php

Please, can you help me with the same!
Thanks in advance!

Are you using composer to install these dependancies? Are you including the autoloader reference in your project correctly?

Take a look at this article, it seems close to what I believe you’re after. https://www.alainschlesser.com/adding-central-autoloader-wordpress/

Maybe @kkoppenhaver can help out with this?

@Himani3010 @Ryuuzan Are you trying to include this in a theme or plugin? How are you trying to use this?
Based on that error message, it looks like your code is looking for this plugin just in wp-content, which it probably not where it should be stored.

Closing due to lack of inactivity. If this is still an issue, please re-open or create a new issue. Thanks!


Declared License

Type: Incomplete
Summary:
Declared License
Details:
Adding Apache 2.0 for v3.125.2. Licensed has been updated for newer versions.
Resolution:
https://github.com/dotnet/Docker.DotNet/blob/3.125.2/LICENSE
Affected definitions:

Docker.DotNet 3.125.2

@ae49 The license link points to master. Shouldn't we curate it as MIT?

@capfei Hi, I selected the license I found that goes to the component version per Curation Guidelines Appendix A:
When evaluating license information, always look in the version specific canonical location that corresponds to the version of the target component package.

@AE49 Hmmm... In troubleshooting, it says:
1. Target component metadata gives a URL that points to a volatile location (e.g. a webpage or the master branch of a git repository).
	- Apply license found at the volatile location at the time checked.

We should bring this up since it is conflicting.

@capfei I added to meeting agenda. Thanks.


feat: sort-classes: #197: Adds optional modifier to property and method

Description
Alternative PR to https://github.com/azat-io/eslint-plugin-perfectionist/pull/216, fixes #197 in a different way than the original idea.
The optional modifier has a lower priority than accessibility modifiers public, protected and private, meaning that
a? gets recognized as a public-property before optional-property.
Note that these PRs do not solve the exact same cases:

This PR allows users to place optional members in a different group than the required ones while #216 only sorts optional and required members from the same group.
This PR does not allow users to put property and method in the same group while putting optional members from both groups at the top (or at the bottom). #216 allows it.

What is the purpose of this pull request?

[x] New Feature

@hugop95
An accessor cannot be optional:

@hugop95
An accessor cannot be optional:

Thanks, I'll fix it

Added optional methods

@hugop95, I confess I didn’t know that class method could be optional 😅
However I think abstract methods can’t be.

I confess I didn’t know about optional class methods, and that even abstract method could be optional 😅

Not something that I use either!


outline on clip material possible?

Seems to only handle opaques

These outlines to do not support alpha clipping as it is a purely geometry-based approach.
For alpha clipping you can definitely use a screen-space outlines implementation but it will be way worse in terms of performance.

How would I change it to get the alpha and clip threshold from the source object's materials?


Flatpak Zoom is not detected

Since Flatpak™ version of Zoom™ does not have the executable zoom in $PATH, the script fails.

Its been 3 weeks :) Since you forked the repo, I though you would fix it. Are you still interested?

Fixed at #3


chore: update actions/checkout action to v4

CI failure is https://github.com/tokio-rs/tokio-uring/pull/291


Importing fairseq causes joblib to crash

I have a weird bug that causes joblib parallel jobs to crash when any of my script imports fairseq.
I have made a minimal repro:
Script test.py:
import fairseq

def test():
    pass

Script main.py:
from joblib import Parallel, delayed

from test import test

if __name__ == '__main__':
    Parallel(n_jobs=2)([delayed(test)()])

Error when running python main.py:
joblib.externals.loky.process_executor._RemoteTraceback:
'''
Traceback (most recent call last):
  File "/private/home/louismartin/miniconda3/envs/test/lib/python3.7/site-packages/joblib/externals/loky/process_executor.py", line 391, in _process_worker
    call_item = call_queue.get(block=True, timeout=timeout)
  File "/private/home/louismartin/miniconda3/envs/test/lib/python3.7/multiprocessing/queues.py", line 113, in get
    return _ForkingPickler.loads(res)
  File "/private/home/louismartin/tmp/fairseq_repro/test.py", line 1, in <module>
    import fairseq
  File "/private/home/louismartin/miniconda3/envs/test/lib/python3.7/site-packages/fairseq/__init__.py", line 8, in <module>
    from .multiprocessing_pdb import pdb
  File "/private/home/louismartin/miniconda3/envs/test/lib/python3.7/site-packages/fairseq/multiprocessing_pdb.py", line 14, in <module>
    class MultiprocessingPdb(pdb.Pdb):
  File "/private/home/louismartin/miniconda3/envs/test/lib/python3.7/site-packages/fairseq/multiprocessing_pdb.py", line 20, in MultiprocessingPdb
    _stdin_fd = sys.stdin.fileno()
AttributeError: 'NoneType' object has no attribute 'fileno'
'''

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "main.py", line 5, in <module>
    Parallel(n_jobs=2)([delayed(test)()])
  File "/private/home/louismartin/miniconda3/envs/test/lib/python3.7/site-packages/joblib/parallel.py", line 934, in __call__
    self.retrieve()
  File "/private/home/louismartin/miniconda3/envs/test/lib/python3.7/site-packages/joblib/parallel.py", line 833, in retrieve
    self._output.extend(job.get(timeout=self.timeout))
  File "/private/home/louismartin/miniconda3/envs/test/lib/python3.7/site-packages/joblib/_parallel_backends.py", line 521, in wrap_future_result
    return future.result(timeout=timeout)
  File "/private/home/louismartin/miniconda3/envs/test/lib/python3.7/concurrent/futures/_base.py", line 432, in result
    return self.__get_result()
  File "/private/home/louismartin/miniconda3/envs/test/lib/python3.7/concurrent/futures/_base.py", line 384, in __get_result
    raise self._exception
joblib.externals.loky.process_executor.BrokenProcessPool: A task has failed to un-serialize. Please ensure that the arguments of the function are all picklable.

This works as soon as we remove the import fairseq statement or if we move the import to main.py.
Tested in a brand new conda environment:

python 3.7.2
fairseq 0.6.1
joblib 0.13.2

Any idea?

MultiprocessingPdb in fairseq is a convenience wrapper around Pdb that works better when using multiprocessing. But we instantiate an instance on import: https://github.com/pytorch/fairseq/blob/master/fairseq/multiprocessing_pdb.py#L39. It should be an easy fix.

Can you try patching #516?

I still get the error when using joblib:
Traceback (most recent call last):
  File "/private/home/louismartin/miniconda3/lib/python3.6/site-packages/joblib/externals/loky/process_executor.py", line 391, in _process_worker
    call_item = call_queue.get(block=True, timeout=timeout)
  File "/private/home/louismartin/miniconda3/lib/python3.6/multiprocessing/queues.py", line 113, in get
    return _ForkingPickler.loads(res)
  File "/private/home/louismartin/tmp/fairseq_repro/test.py", line 1, in <module>
    import fairseq
  File "/private/home/louismartin/dev/ext/fairseq/fairseq/__init__.py", line 16, in <module>
    import fairseq.pdb
  File "/private/home/louismartin/dev/ext/fairseq/fairseq/pdb.py", line 17, in <module>
    _stdin_fd = sys.stdin.fileno()
AttributeError: 'NoneType' object has no attribute 'fileno'

I also get an error when running tests with pytest:
self = <_pytest.capture.DontReadFromInput object at 0x7f15b757b710>

    def fileno(self):
>       raise UnsupportedOperation("redirected stdin is pseudofile, " "has no fileno()")
E       io.UnsupportedOperation: redirected stdin is pseudofile, has no fileno()

../../miniconda3/lib/python3.6/site-packages/_pytest/capture.py:599: UnsupportedOperation

I think that relying on fileno() is error prone and should maybe be moved inside the _cmdloop() method so that scripts that import fairseq don't crash.
Maybe a simple fix like this could work?  (see PR #553)

Unfortunately it doesn't seem to work well with multiprocessing unless this happens before the fork. Can we instead catch the exceptions and ignore them?

Good idea, I edited the PR


Canny IPP Sobel getBufferSize wrong func fix;

Wrong functions was used to get working buffer size for IPP Sobel functions

:+1:


[ISSUE #896]🔥Implement Produer send batch message🚀

Which Issue(s) This PR Fixes(Closes)

Fixes #896
Brief Description

How Did You Test This Change?

🚀Thanks for your contribution🎉. CodeRabbit(AI) will review your code first🔥


itksys::SystemTools::FileIsDirectory does not handle accented characters

Description
As discussed on Discourse:
https://discourse.itk.org/t/handling-of-combined-accents-by-itk-system-tools/1619/5
reported by Tim Evain,

I’m using the itksys tools to do some file parsing and I’ve encountered a nasty problem with some filepaths containing accented characters.
For example I have this folder name in my database : “aorte_déroulée”. It appears that in fact, the “é” symbol is a “e” char followed by a combining acute accent char (I think that data came from a MacOS station).
When using itksys::Directory::Load() on the parent folder, the given string is then “aorte_de´roule´e”, which is fine. Problem is that this path is not recognized as valid afterward: using itksys::Directory::Load("[…]/aorte_de´roule´e") or itksys::SystemTools::FileIsDirectory("[…]/aorte_de´roule´e") fails. Replacing directly by the full char “é” in the string doesn’t help either.

Steps to Reproduce

Expected behavior
Accented characters are handled.

Environment

It appears to be a Windows-specific issue, as tests on MacOS and Linux run fine. I’ve tracked down the problem to:

Additional Information
Test case from Tim attached.
CombinedAccents_TestCase.zip
CC: @bradking

When KWSys's Encoding*.* sources are compiled, what is the value passed to the compiler as the KWSYS_ENCODING_DEFAULT_CODEPAGE definition?

Line 131: this->Internal->Files.push_back(Encoding::ToNarrow(data.name)); screws up the name. I think that encoding is the default CP_ACP.

This is an updated example (which compiles):
#include <string>
#include <iostream>

#include <itksys/Directory.hxx>
#include <itksys/SystemTools.hxx>

int main(int argc, char * argv[])
{
    std::string FolderToParse = "./TopFolder";

    // make an absolute path from whatever is passed in
    std::string AbsolutePath = itksys::SystemTools::CollapseFullPath(FolderToParse);

    // work in Unix filename conventions
    itksys::SystemTools::ConvertToUnixSlashes(AbsolutePath);

    itksys::Directory directory;
    directory.Load(AbsolutePath);

    unsigned numFiles = directory.GetNumberOfFiles();
    for (unsigned int file_idx = 0; file_idx < numFiles; file_idx++)
    {
       std::string CurrFile = directory.GetFile(file_idx);
       std::string FullFilePath = AbsolutePath + "/" + CurrFile;
       if (CurrFile == "." || CurrFile == "..")//if current folder or parent, continue
       {
          continue;
       }
       //if (itksys::SystemTools::FileIsDirectory(FullFilePath))
       {
          std::cout<<FullFilePath;
       }
    }

    return 0;
}

The problem is semantic: ASCII does not properly represent the string aorte_déroulée. The correct solution is probably to keep the list of files as wstring, and cast to char* only if that function signature is called. Of course, another signature such as const std::wstring& GetFileW(unsigned long dindex) const should be provided for those who want to support non-ASCII characters.
@thewtex @blowekamp @hjmjohnson I don't think it make sense to introduce better Unicode support now, because we would probably have to resort to boost::filesystem or something similar. I think it is better to wait until we can require C++17 and use the built-int file system support.

If ITK were built with -DKWSYS_ENCODING_DEFAULT_CODEPAGE=CP_UTF8 then narrow strings would be in UTF-8 and have no problem with non-ascii characters.

With PR #546, the strings appears correctly in the debugger, Git Bash, and when redirected to a file like this:
C:\Users\Dzenan\Desktop\CombinedAccents_TestCase>Debug\CombinedAccents_test_app.exe >out.log. In CMD, it still looks garbled up. But I guess that is not a problem?

@dzenanz great.  In order to print to a Windows Console properly the application needs to convert from its internal UTF-8 encoding to wide character, and then back to whatever multi-byte encoding corresponds to the console's active code page (CP_ACP).  See code in cmake as an example.


Invalid update corner pixels when opening shapes layer

When displaying an image from a test dataset and then opening a shapes layer a runtime warning is thrown invalid value encountered in cast. The error originates from napari.layers.base.base.py line 1632. I did not check yet whether the updated corner pixels of the canvas are valid or not. This occurred with multiple datasets on the main branch.
Steps to reproduce
sdata = SpatialData.read(<path.zarr>)
interactive = Interactive(sdata)
interactive.run()

Make any image visible and then click on the shapes button to create a shapes layer.

ok so for this one an update. I saw @VictorDidier having the same issue today when working with napari and asked him to open a bug report #5909. It can be that it is fixed with #5432 and is currently not an issue on main anymore. It is flagged for release 0.4.18 later this month so we can come back to this issue after that release.

@melonora is this napari related? can close this issue if it is.

Closed as it is napari related


fix intermitent failures in Windows CI tests

We are observing intermittent failures in our Windows CI tests, It's likely that this demonstrates actual race conditions in the node_redis client:
 1) The node_redis client using options: detect_buffers: true;  using javascript and IPv4 unref exits subprocess as soon as final command is processed:
     Error: unref subprocess timed out
      at Error (native)
      at null._onTimeout (C:\projects\node-redis\test\node_redis.spec.js:423:37)

  2) The node_redis client using options: detect_buffers: true;  using javascript and IPv4 socket_nodelay true fires client.on('ready'):
     Uncaught AssertionError: null === 0
      at ChildProcess.<anonymous> (C:\projects\node-redis\test\node_redis.spec.js:428:32)
      at maybeClose (child_process.js:1015:16)
      at Process.ChildProcess._handle.onexit (child_process.js:1087:5)

  1) publish/subscribe using options:  using javascript and IPv4 subscribe handles SUB_UNSUB_MSG_SUB:
     TypeError: Cannot read property '0' of undefined
      at Context.module.exports.serverVersionAtLeast (C:\projects\node-redis\test\helper.js:99:24)
      at Context.<anonymous> (C:\projects\node-redis\test\pubsub.spec.js:139:59)
      at callFnAsync (C:\projects\node-redis\node_modules\mocha\lib\runnable.js:306:8)
      at Test.Runnable.run (C:\projects\node-redis\node_modules\mocha\lib\runnable.js:261:7)
      at Runner.runTest (C:\projects\node-redis\node_modules\mocha\lib\runner.js:421:10)
      at C:\projects\node-redis\node_modules\mocha\lib\runner.js:528:12
      at next (C:\projects\node-redis\node_modules\mocha\lib\runner.js:341:14)
      at C:\projects\node-redis\node_modules\mocha\lib\runner.js:351:7
      at next (C:\projects\node-redis\node_modules\mocha\lib\runner.js:283:14)
      at Immediate._onImmediate (C:\projects\node-redis\node_modules\mocha\lib\runner.js:319:5)

  1) The node_redis client using options:  using javascript and IPv4 when connected when redis closes unexpectedly monitor monitors commands on all other redis clients:
     Error: Redis connection gone from close event.
      at RedisClient.connection_gone (C:\projects\node-redis\index.js:9:25044)
      at Socket.<anonymous> (C:\projects\node-redis\index.js:9:5432)
      at TCP.close (net.js:485:12)

1) The node_redis client using options: detect_buffers: true;  using javascript and IPv4 when connected when redis closes unexpectedly monitor monitors commands on all other redis clients:
     Error: Redis connection gone from close event.
      at RedisClient.connection_gone (C:\projects\node-redis\index.js:9:25044)
      at Socket.<anonymous> (C:\projects\node-redis\index.js:9:5432)
      at TCP._onclose (net.js:469:12)

We should put some time into squashing these bugs, since they are likely demonstrating real issues with the client that appear more easily in a Windows environment.
CC: @brycebaril @BridgeAR @mranney @erinspice @blainsmith

@bcoe the failures are very unlikely a race condition, as node_redis does not work async. The logic itself is always executed sync and only the return values are returned in the next tick (sync though) - reconnection is of course async.
The failures are (at least partly) very likely the result of a regression in the js parser. My best guess is that I introduced that bug here: 5a2b54fd2f83825f3f4db59b5dc89989173d04a8. As soon as I have a test case and a bit of time I'll fix that issue. The different failing tests are likely just subsequent faults.
To realize such issues sooner in near future I'll also add the hiredis parser to the windows test setup. That way we'd see that the tests only fail with the js parser and it's easier to investigate that.


[RFE] Add support for Ansible extension webview (side-panel)

Problem
Currently there is no single view to provide all the information related to Ansible within the environment. The Ansible environment information is currently displayed in the bottom right side bar.

The approach is not extendible if we want to add additional features for Ansible and integration with other devtool projects like Ansible plugin builder
Solution
The webview extension API's can be used to create a customised view for Ansible extension.
The webview sections for Ansible to start with can be:

Ansible Environment Info
Ansible Execution Environment
Ansible Plugin Builder
Ansible Collection Docs
Ansible Playbooks (will render all the playbook in workspace with option to run it in the view)

Alternatives
No response
Additional context
No response

We also need to show playbooks, roles, collections, integration/unit tests inside the side window. Eg. docker extension

The webview feature has been added to the extension with the integration of ansible-creator (PR #1000)


Build Epydocs to GitLab Pages

depends on #139
Builds our Epydocs for every commit on GitLab CI, and publishes to the project's GitLab Pages for every new commit on master (or gl-pages, intended for development).
As an example here's the latest build output for my GitLab fork.

@Manishearth Thanks for the quick review!

I noticed you updated the user id -- have you edited this repo's travis vars as well with the creds?

@Manishearth I haven't updated the Travis secure variables. I don't think it's necessary to set them in the common Travis configuration file any more. Each user can set them in the Travis settings for their fork instead.
I'll add my current test credentials to the Travis settings for my GitHub fork, so I can also run authenticated tests on Travis from that fork.
(I have also changed my GitHub account from the one which is now @jeremyBanks-archive.)

I mean, we do want the tests to continue to run for this repo, right?

@Manishearth Yes. Apologies if I was unclear or am confused: as far as I understand it, nothing has changed regarding running tests in this repo. My current understanding of what test will be run:

in GitHub/Manishearth/ChatExchange:

Authenticated tests using your test account will run for all commits on master, using the credentials specified on line 26 of travis.yml.
Unauthenticated tests will run for all incoming pull requests.
Note that these tests may be flakey due to #141.

in GitHub/jeremybanks/ChatExchange:

Authenticated tests using my test account will run for all commits on master, using the credentials specified in my Travis CI settings.
Unauthenticated tests will run for all incoming pull requests.

in GitLab/banks/ChatExchange:

Authenticated tests using my test account will run for all commits, using the credentials specified in my GitLab CI settings.

I don't think that my credentials were ever used in tests for this repository. IIRC they were just committed to the Travis config file because that was the only way to provide to my builds them at the time, but now I can use Travis' settings.
This does still has the problem that authenticated tests aren't necessarily run against pull requests until they're merged, but that seems unavoidable for security reasons, beyond something like manually requiring that contributors include a link to a successful authenticated test run from Travis for their repo.
Note also that my GitLab repo is supposed to mirror master from this repository every 24 hours, so it should provide a secondary check (with bonus Epdocs generation) of commits that are merged.