Python-Markdown 3.0 Road Map

This is the current plan to work towards a 3.0 release. This is a "living document" and will be edited over time. Please leave comments below, but be aware that older comments may not apply to the current state of this document.

Create a new Organization on GitHub for "Python-Markdown" and fork waylan/Python-Markdown to Python-Markdown/markdown.  All work on 3.0 will happen at this new repository. The 2.x series will remain at waylan/Python-Markdown, which will be in "maintenance mode" and only receive bug fixes (2.6.x) going forward.

Each built-in extension will be broken out into a separate package at Python-Markdown/<package name> and, upon release,  uploaded to PyPI as a separate package. Users can do pip install extensionname for each extension they want. For that matter,  "extra" will simply be a simple wrapper and a list of requirements (the various individual extensions) which pip would install automatically. This will result in multiple benefits:

This would eliminate the current movement toward the lengthy string-based-names (markdown.extensions.extra) for the  built-in extensions.
This will make it clear to third party extension authors how they should expect users to install their extensions.  No special cases for anyone.
Some of the existing built-in extensions could be passed on to other people for future maintenance. With a GitHub org, this is easy and the repo doesn't even need to move.
Some third-party repos could even be hosted within the org. A set of requirements would likely need to be met before inclusion. The list of requirements would need to be created first.
All extensions can be on their own release schedules and do not need to wait for the next release of Markdown. This should drastically slow down the development of Markdown itself as most feature additions have been for extensions. A much slower moving target will make it easier for extension authors to maintain their extensions against the API.
This will make it easier for an existing extension to be forked when a user wants slightly different behavior.

All of the existing deprecation paths would be fast-tracked. The changes would hit hard with no warnings in 3.0. As no backward comparability considerations would be taken, various little bits and pieces of the API would be cleaned up. For example:

InlinePatterns => inlineprocessors (which match all other types)
Some keywords on markdown.Markdown might be moved to extensions??
Some processor types currently use self.md and others self.markdown to refer to the Markdown instance. This will be normalized to self.md.
Remove the md_globals keyword from the extension API. Years ago, state and/or settings were stored in module level globals. We no longer use globals (aside from a few things in markdown.utils); everything is now stored on the class instance.
Update attr_list parser to use shlex lib. Unicode support was added in 2.7.3
??

The changes to the various blockprocessors described in #53 will be implemented (the test method of blockproccesors will be dropped). This is probably the largest body of work and must be completed before 3.0-Final is completed.

An effort should be made to improve the inline handling code. In addition to the renaming (mentioned in 3 above), a better solution should be explored than the current placeholder madness to allow proper nesting. Most likely, such a solution would also address the issue raised in #161. I would love to remove the requirement that all inline regex patterns be wrapped by (.*) both before and after the supplied regex before compiling.

Given the current state of Python package management (much better than in years past), the current policy of no third-party dependencies will be re-examined. Of course each case will need to be weighed carefully. Some specific things that come to mind:

Explore using Setuptools for setup.py.
Explore using Setuptools' "entrypoints" in place of the existing string-based-names for extensions.
Explore using a proper HTML parser for handling raw HTML.
A third party documentation generator will mostly likely be adopted (see #369).
Explore alternatives to our homegrown OrderedDict (the standard lib one won't work as it only allows adding items to the end).

Wow, that looks like a very big plan!
What namespace are you going to use for extensions names? If markdown.extensions.foo is too long (as you say), and foo is too generic (and may be already taken)?

@mitya57 that's why I suggested using Setuptools' "entrypoints" (second item in 6). See this for a basic explanation of entrypoints. You can see them being used here.
My thought is that we lose all of the existing support for string-based-names and only support passing in instances of Extension subclasses. Then, if an extension author would like to make his/her extension available via  a string, they need to use entrypoints. Essentially, upon installation, the extension would be registered as being available with a given string as its name. Therefore 'foo' would work fine, even if the actual Extension class was foobar.bar.baz.FooExtension. Then the user could pass in 'foo' and get the extension. We completely eliminate Python dot notation which is not usually understood by Python noobs and/or document authors.

Oh and one other thing, by using entrypoints, someone could potentially replace one extension with another. For example, if you have both foo.bar.LousyExtension and bar.baz.GreatExtension, just register the extension you want with the name you want and it doesn't matter that the other extension is still installed on your system. And as the actual namespace is irrelevant, they can be in completely different namespaces which will be completely transparent to the enduser.
That said, I'm thinking that the built-in extensions will probably all be installed at the root namespace and with "mdx_" prefix because that's what most third-party extensions already do. So, without entrypoints you would need to do:
from mdx_extra import ExtraExtension

On the other hand, that does put a lot of additional packages in the root namespace.

I think splitting the extensions out is a generally a good idea.  Now Python Markdown  out of the box will parse Markdown.  All the other bells and whistles will be distinguished as literal extras.  It will also encourage people to develop there code in separate extensions as the previous extras are no longer shipped with Python Markdown.  There would no longer be a gain for anyone trying to push their extension objectives into the previously built-in ones.
Entrypoints is also an interesting approach as well.  I remember taking a look at how Pygments included its modules as they use entrypoints as well..
I'll be interested to see how number 4 turns out as I started looking into that, but wasn't too excited when I realized how the current lists handled blocks. That's going to be some work.

Thinking about it more, I will say though, that having the default extensions in one place opposed to split into individual repos makes it easier to see how the most commonly used extensions interact with each other.  Currently, you know that those are the one's that most people use, and you can then code your plugins to insert around them accordingly and since the order of extension inclusions is extremely important.  Assuming the default extensions will be under the PythonMarkdown group, it can probably still be assumed that those will be the most commonly used, but having them broken up will make it a pain to pull all the projects to see the interaction between them.  I do understand the benefit of not having to install the one's you don't use though. I'm not really suggesting anything here, just mentioning I guess the one benefit of having the defaults bundled together.

Some third-party repos could even be hosted within the org. A set of requirements would likely need to be met before inclusion. The list of requirements would need to be created first.

Following up on @facelessuser's thoughts, it seems like one obvious requirement will be rigorous compatibility testing with all other extensions.
I am curious where the extension tests will live though. Compatibility tests needs to be independent of the extension repos to avoid not only duplication, but commits to one extension breaking the tests of another extension without even realizing it.
I would suggest keeping a lot of the extension testing infrastructure in the core repo, but to move it into the markdown namespace. Each extension (and also third party extensions) could  inherit from markdown.TestExtensionClass. This base class would not only provide the testing infrastructure as it currently does, but could also run the compatibility tests in the core repo alongside the individual extension tests.

@ryneeverett & @facelessuser you make some good points. I had given testing some consideration. We already have tests which simply pass known good plan Markdown through some of the built-in extensions (the ones that add features  not change features) -- simply to make sure they don't break anything. I expect that those tests would move with the extension. Also, as we already use tox (which is very good at ensuring all required test dependencies are installed), we can test the more common extensions with the core to ensure that changes to the core don't break the extensions.
The one thing I hadn't considered was the tests regarding the various extensions interacting with each  other. Obviously, we could also use tox to install dependencies so that we can run tests for one extension with another extension. However, that means that the extensions need to run tests of their own independent from the core.  This will require a little extra work on the testing framework. The benefit is that the testing framework will then also be usable by third party extensions. We'll need to add a way to specify which directory the framework looks for tests in (currently it assumes the directory that the framework itself is in).
Thanks for the feed. It is much appreciated.

FYI, I've created the fork at https://github.com/Python-Markdown/markdown and have been slowly working on this. Feedback is certainly welcome. I've completed the following tasks so far:

[x] Remove all deprecated code in core
[x] Refactor testing framework to be usable by third party extensions
[x] Load string based extensions via entry points (I really like this)
[ ] Use Setuptools (for all features of the setup script)

The Roadmap is now on the wiki and this issue is being closed. All future discussion should happen on the new repo at https://github.com/Python-Markdown/markdown.


Non-manager node entrypoint: Unable to retrieve service

Add non-manager node entrypoint show fail status Unable to retrieve service 1.15.0
1.15.0:
Add non-manager node entrypoint  2375
when selected the entrypoint, show Unable to retrieve service in dashboard
Steps to reproduce the issue:

expect:
in Dashboard non-manager entrypoint just show containers info as standalone docker host

Duplicate of #1299


Change base image of PMD from Ubuntu to Debian #1424

change the base image from Ubuntu to Debian #1424
add README.adoc
upgrade PMD
use shared resources
remove ubuntu references in scripts

closes: #1424

@zigfridus please have a look as well. Currently, I am not able to add you as a reviewer. Maybe, if you comment something I will be able to.

@Jeeppler  please add me as reviewer.

@Jeeppler
I tested these scripts

01-start-docker-compose.sh
05-start-single-sechub-network-docker-compose.sh
50-start-multiple-docker-compose.sh

with this test file
01-test.sh CWE506_Embedded_Malicious_Code.zip
They works well.
But there is a problem with 51-start-multiple-object-storage-docker-compose.sh. These are some of errors from scanning:

com.mercedesbenz.sechub.commons.model.SecHubRuntimeException: Was not able to upload job data because of IO problems;
Caused by: java.io.IOException: Store of sourcecode.zip to s3 failed

I got this result:
result.zip
Unfortunately I'll be away from my computer till next week. And I'll able to examine this problem and provide more deatiled information only next week.

@zigfridus I am unable to add you as a reviewer. I think, I can only add reviewers which are part of the Mercedes-Benz organization.
I created already an issue for the exception you got: #1501. However, I am not 100% sure, what the root cause is.


Incorporate existing column comments into autogenerated column description

The user might have taken the effort to write a descriptive comment already. This would be helpful to include as context for the generation.

Closing because I misunderstood the flow - we only autogenerate descriptions if comments aren't included, so we'd never trigger this case.


Formatter does not handle params_first correctly when only one param

Component
Forge
Have you ensured that all of these are up to date?

[X] Foundry
[X] Foundryup

What version of Foundry are you on?
No response
What command(s) is the bug in?
No response
Operating System
None
Describe the bug
When there is only one parameter and the formatter needs to wrap a header line it does not follow the definition of 'params_first'. Instead it wraps the modifiers first. This creates discontinuity throughout the code where some headers wrap arguments and some wrap modifiers.

could you please provide a code example?


Revamp proposal template

Fork our current proposal template or create a new one from scratch with the following improvements:

Internal Review Practices

Describe our quality standards, how internal review works, expectations around audits
Add specific line item (e.g. 8 hrs of internal review by veteran builders)

Execution Lead Role

Describe the role's purpose: facilitating communications, meeting deadlines, monitoring scope, rotating builders, evaluating risk
Instruct client to interface with through them
Add specific line item (e.g. 8 hrs / wk of execution )

Flexible Roadmap

Set realistic deadline expectations by describing how we estimate timelines and account for unexpected delays, changes in scope, etc
Add in a default buffer (2 weeks?) of potential delay

Recurring Billing

Instructions on how to pay with ETH or stable coins with Request Network
Terms about late payments

Rep-Holder Airdrop

Instructions for clients also paying in native tokens
Use our google sheet template (TODO) to generate a CSV for the distribution (80% builders, 10% source lead, 10% active Rep-holders); Send with https://disperse.app/

Feedback Processes

Build in some sort of regular feedback..
Short form that the client fills out with each bill + longer form at project completion
Mirror this with builder feedback that we share with the client?

@rihp @jessebmiller @Remscar @benefacto @magentaceiba @PhilH @dOrgJelli @xiphiness @namesty @cbrzn @shresthagrawal @DavidWolff218

This proposal was an example of my latest attempt at addressing some of these concerns but I think a lot more could be done on this.

This proposal was an example of my latest attempt at addressing some of these concerns but I think a lot more could be done on this.

Also consider including some metadata outside of the client-facing proposal for dOrg builders to evaluate, such as a:

Impact Score
Difficulty/Risk Score

Credit to Jessica for these! ^

Also consider including some metadata outside of the client-facing proposal for dOrg builders to evaluate, such as a:

Impact Score
Difficulty/Risk Score

Credit to Jessica for these! ^

This new proposal template could also encompass some of the details currently contained in the SoW template, so that we can eliminate that step from the sourcing process

This new proposal template could also encompass some of the details currently contained in the SoW template, so that we can eliminate that step from the sourcing process

https://hackmd.io/QlAkoWTZSH-hRiN1MyoJtw

Posted the new template in pinned message here:
https://discord.com/channels/544647726982365194/803414289704157214/807003636957577297


Add default value of requirenments.txt's path

It would be easier to be used if we set up the default path of requirenments.txt. Most of Python projects would have the requirenments.txt at the root of the repository.

Is it a typo in the file name? require~n~ments.txt


fix: SSL error for USA KIA

Hi.  Sorry for the out of the blue PR from a random contributor on the internet.
Please see https://github.com/Hyundai-Kia-Connect/kia_uvo/issues/913
This PR sets the 0x4 flag on the SSL context for the KIA USA SSL adapter.
Thank you for your great work!

Thank you for this!


FIX: remote_offered_capabilities is now converted into a SymbolList

CI is red on main too, so I'm not concerned about how red it is here.


Internal_links in pages breaking

Q
A

Bug?
yes

New Feature?
no

Sulu Version
1.2

Actual Behavior
If i have a page named halls.xml and then in another page I add the following without having any content without this kind of page:
                <property name="halls" type="internal_links">
                    <meta>
                        <title lang="fr">Halls</title>
                        <title lang="en">Halls</title>
                    </meta>
                </property>

I get the following error:
Stack Trace
in vendor/sulu/sulu/src/Sulu/Component/Content/SmartContent/QueryBuilder.php at line 362   +
at ErrorHandler ->handleError ('2', 'Invalid argument supplied for foreach()', '/var/www/pmg/pmg_social/vendor/sulu/sulu/src/Sulu/Component/Content/SmartContent/QueryBuilder.php', '362', array('idsWhere' => array()))
in vendor/sulu/sulu/src/Sulu/Component/Content/SmartContent/QueryBuilder.php at line 362   +
at QueryBuilder ->buildPageSelector ()
in vendor/sulu/sulu/src/Sulu/Component/Content/SmartContent/QueryBuilder.php at line 138   +
at QueryBuilder ->buildWhere ('www_plazacentreville_com', 'en')
in vendor/sulu/sulu/src/Sulu/Component/Content/Query/ContentQueryBuilder.php at line 147   +
at ContentQueryBuilder ->build ('www_plazacentreville_com', array('en'))
in vendor/sulu/sulu/src/Sulu/Component/Content/Query/ContentQueryExecutor.php at line 66   +
at ContentQueryExecutor ->execute ('www_plazacentreville_com', array('en'), object(QueryBuilder))
in vendor/sulu/sulu/src/Sulu/Bundle/ContentBundle/Content/InternalLinksContainer.php at line 140   +
at InternalLinksContainer ->loadData ()
in vendor/sulu/sulu/src/Sulu/Bundle/ContentBundle/Content/InternalLinksContainer.php at line 117   +
at InternalLinksContainer ->getData ()
in vendor/sulu/sulu/src/Sulu/Bundle/ContentBundle/Content/Types/InternalLinks.php at line 207   +
at InternalLinks ->getContentData (object(Property))
in vendor/sulu/sulu/src/Sulu/Bundle/WebsiteBundle/Resolver/StructureResolver.php at line 78   +
at StructureResolver ->resolve (object(PageBridge))
in vendor/sulu/sulu/src/Sulu/Bundle/WebsiteBundle/Resolver/ParameterResolver.php at line 57   +
at ParameterResolver ->resolve (array(), object(RequestAnalyzer), object(PageBridge), false)
in vendor/sulu/sulu/src/Sulu/Bundle/WebsiteBundle/Controller/WebsiteController.php at line 86   +
at WebsiteController ->getAttributes (array(), object(PageBridge), false)
in vendor/sulu/sulu/src/Sulu/Bundle/WebsiteBundle/Controller/WebsiteController.php at line 53   +
at WebsiteController ->renderStructure (object(PageBridge), array(), false, false)
in vendor/sulu/sulu/src/Sulu/Bundle/WebsiteBundle/Controller/DefaultController.php at line 40   +
at DefaultController ->indexAction (object(PageBridge), false, false)
at call_user_func_array (array(object(DefaultController), 'indexAction'), array(object(PageBridge), false, false))
in app/bootstrap.php.cache at line 3206   +
at HttpKernel ->handleRaw (object(Request), '1')
in app/bootstrap.php.cache at line 3168   +
at HttpKernel ->handle (object(Request), '1', true)
in app/bootstrap.php.cache at line 3319   +
at ContainerAwareHttpKernel ->handle (object(Request), '1', true)
in app/bootstrap.php.cache at line 2509   +
at Kernel ->handle (object(Request))
in web/website.php at line 63   +

First of all it is really strange that Sulu is hitting the SmartContent namespace in this case, but that does not seem to be the problem.
Have you overridden any of the services on your own? If you really have no items selected this line should prevent the code from your stacktrace being called.


Upgrade to OWL API 4.5.29.

 This OWL API upgrade is important for maintaining OBO format parity with Protege and ROBOT.

I don't think we have CI checks enabled here, but the remaining tests do all pass for me locally.

@kltm if I merge this PR, would it immediately start getting built and used in the GO pipeline, or is the pipeline getting owltools from ODK now?

@balhoff Mixed bag, perhaps.
Ontology production uses the ODK ('obolibrary/odkfull:v1.4') in various branches. However, owltools also gets used for building the solr index and doing "predictions" in the pipeline; these seem to follow a local build aimed at master.

@kltm I was thinking about the timing of things. I would merge this into master and then make an update to ODK. Once that is out the ontology build will start using it. But are you okay with the pipeline immediately using the new OWL API? I think it will be okay for the ontology, since it won't be saving out ontology files.

@balhoff Nah--my only ask would be that this is done either late today or early tomorrow, to give the current snapshot a chance to finish with a guaranteed version throughout the run.


Hallucinations and VAD [BLANK_AUDIO] Generations

Tested with both small and tiny model sizes.
Using the Streaming example with VAD turned on etc. I've tried different settings and tried using a prompt to try and eliminate hallucinations and sound effects but to no avail or getting VAD to properly work I might be missing something because it treats the hallucinations of sounds like words so it struggles to turn on AD. Examples of outputs are below:
When I'm not talking and the background noise is low the following gets transcribed. Ideally, it would run inference in the background and only detect incoming audio from me talking, etc.
[BLANK_AUDIO] [BLANK_AUDIO] [BLANK_AUDIO]
Most of the time with the tiny model, it loves to hallucinate sound effects from no audio or low background noises.
(wind blowing), (clicking), (barking)
Are there any settings that I can try that would help eliminate hallucinations from no audio or static or get VAD correctly working?
Great project, excited for any future features or updates.

Using the Streaming example with VAD turned on etc. I've tried different settings and tried using a prompt to try and eliminate hallucinations and sound effects but to no avail or getting VAD to properly work I might be missing something because it treats the hallucinations of sounds like words so it struggles to turn on AD.

Right now VAD isn't really working with streaming. It should be integrated into WhisperStream to ignore silent parts of audio which are causing hallucination. In theory it should also fix problem with repeating words. There was attempt to implement this, but it wasn't merged. See #29 for more context.

Are there any settings that I can try that would help eliminate hallucinations from no audio or static or get VAD correctly working?

You can try to:

Enable SingleSegment
Set LengthSec to something big, like 3000

This will basically make WhisperStream recurrently transcribe whole audio from begging to the end over and over again. Of course it will only make sense if you have really powerful CPU and relevantly small audio stream to work with.

I can recommend Silero VAD model which has ONNX version and that's the state of the art and open source BTW

You can try to:

Enable SingleSegment
Set LengthSec to something big, like 3000

This will basically make WhisperStream recurrently transcribe whole audio from begging to the end over and over again. Of course it will only make sense if you have really powerful CPU and relevantly small audio stream to work with.

Using the microphone record scene with VAD stop enabled and those settings you provided seem to work a lot better. Another thing I noticed is that the mic has to be pretty good for VAD to work. When I used my webcam mic the VAD struggled to stop the recording but when I used a jack mic near my face it worked relatively well within ~1 sec. after I was done talking.
Thanks

@atx-barnes VAD support for streaming was recently merged (see #49). In my tests this reduced hallucinations drastically. You might want to check this out.


CDS download

User Story
Add a button to the UI for all "installed" or "download" content. Create a streaming API to stream the content file to the UI (download).
Demo Script / Repro Steps

Open the UI to http://a2-dev.test/cds and ensure only the "installed" or "download" content has a download button.
Click the download button to get a sample content file

Copy how compliance profiles download https://github.com/chef/automate/blob/15fd4fed9861c230e8973ba4dfba860530a31450/components/automate-ui/src/app/pages/+compliance/+profile/+profile-details/profile-details.component.ts#L139
Find a publicly available profile .tar.gz file on the web to target downloading.


CVE-2021-45046 - log4j

Hi,
It looks like an additional attack vector has been identified for log4j (https://www.lunasec.io/docs/blog/log4j-zero-day-update-on-cve-2021-45046/) which requires an upgrade to 2.16.0.
I appreciate a new version has only just been released to for 2.15.0 (Issue #11976 PR #11968) but can we expect an additional imminent release with 2.16.0 support (I see the code has been patched - PR #11978 )?
Thanks

Please see https://github.com/crate/crate/pull/11968#issuecomment-994577174

We decided to backport the version bump to 2.16.0 as well as a pre-caution in case users changed the default configuration, but we won't be following up with a second immediate hotfix release, given that out-of-the-box configuration with 4.6.6. is not affected by the CVE.
It will be part of the next regular hotfix release.


Expose business account APIs

Expose business account APIs to the front-end.

forgot to expose wire instructions, will be completed in next commit

I'm unsure how to place business account API endpoints in debug/index since it's an entirely different entity than payments/marketplace/wallets APIs. I also noticed that wallet APIs don't appear in debug/index as well. Would this mean that I don't include the business account API endpoints in that same page as well?

I don't see Business Accounts Apis in the nav.

I'm unsure how to place business account API endpoints in debug/index since it's an entirely different entity than payments/marketplace/wallets APIs. I also noticed that wallet APIs don't appear in debug/index as well. Would this mean that I don't include the business account API endpoints in that same page as well?

Business Accounts should have their own debug/index similar to https://github.com/circlefin/payments-sample-app/blob/master/pages/debug/wallets/index.vue

There are a few eslint errors, that's why the PR builder is failing


Fix log page

Fix: </u> --> </ul>. In the final HTML, it was causing the rest of the content to be inside the ul tag.

Before
After

You modified the export file, could you do the changes to the file in src/?

You modified the export file, could you do the changes to the file in src/?

@neauoire done! :)
Should I also update the output HTML or is it done on a build system?

Thanks a lot :) No need, it will be updated when @rekkabell pushes the next update!


feat(alert-ribbon): updated design

fix #152

:tada: This PR is included in version 5.2.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


[WIP][SPARK-29949][SQL][2.4] Fix formatting of timestamps by JSON/CSV datasources

What changes were proposed in this pull request?
TODO
Why are the changes needed?
This fixes a bug of incorrectly formatting timestamps in microsecond precision. For example:
Seq(java.sql.Timestamp.valueOf("2019-11-18 11:56:00.123456")).toDF("t")
  .select(to_json(struct($"t"), Map("timestampFormat" -> "yyyy-MM-dd HH:mm:ss.SSSSSS")).as("json"))
  .show(false)
+----------------------------------+
|json                              |
+----------------------------------+
|{"t":"2019-11-18 11:56:00.000123"}|
+----------------------------------+

Does this PR introduce any user-facing change?
Yes. The example above outputs:
+----------------------------------+
|json                              |
+----------------------------------+
|{"t":"2019-11-18 11:56:00.123456"}|
+----------------------------------+

How was this patch tested?

By new tests for formatting by different patterns from S to SSSSSS in DateTimeUtilsSuite
A test for to_json() in JsonFunctionsSuite
A roundtrp test for writing and reading back a timestamp in a CSV file.

ping @cloud-fan @HyukjinKwon @dongjoon-hyun

Test build #114029 has started for PR 26582 at commit 5aa576a.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/18890/
Test PASSed.

Test build #114030 has started for PR 26582 at commit d71a2f9.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/18891/
Test PASSed.

Test build #114029 has finished for PR 26582 at commit 5aa576a.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/114029/
Test PASSed.

Test build #114030 has finished for PR 26582 at commit d71a2f9.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/114030/
Test PASSed.


Add Metrics UI to Wallaroo docker image

As part of the Update the "First Install" to use Docker project, we want to add the Metrics UI as part of the Wallaroo docker image. This is being done in order to circumvent the bloat needed to network multiple containers just for the UI.
Update existing Dockerfile on the docker-phase-i-ii branch to also include the Metrics UI

closed by #1731


Update baselines

Update baselines

@rbuckton  @vladima  Do other files look good (ie. the one not mark by Ron?) I will go ahead and remove the incorrect one

:+1:


Extending filtering to meta-data

Discussed the ability of snakebids to handle meta-data from the .json. Believe PyBids already reads meta-data so should be relatively trivial to add functionality to call, index, and manipulate meta-data for all images...

Probably too much work for 1.0 but including sidecar JSON filtering would be a useful (optional) feature to include

AFAIK there's nothing that actually prevents this from working out of the box. Pybids transparently allows metadata fields to be used in get, so you should just be able to add these as filters and have it work. If a real-world use cases tries this and encounters problems, we can reopen this discussion, but I'm going to close this in the meantime


Question: az postgres db -g option

The documentation for az postgres db indicate that the --resource-group is a required parameter to all commands (create, list, delete).
Does this mean that it is expected that a database could be created for a server, but in a different resource group? For example:
az postgres server create -g <server-group> -n <server-name>
az postgres db create -g <db-group> -s <server-name> -n <db-name>

I've tried this, and it doesn't work. The az postgres db create commands fail with the following error:
The Resource 'Microsoft.DBforPostgreSQL/servers/<server-name>' under resource group '<db-group>' was not found.

If this isn't expected, it's unclear then what the purpose of the --resource-group parameter is. The --server-name value identifies the server where the database is being created, and if the --resource-group parameter needs to match the group the server resides in, that's double entry. (This probably applies to multiple commands on the CLI, I guess).

routing to appropriate team

Entering the resource group is a general Azure CLI pattern required to route the command to the correct resource. A resource id is built off of the subscription (using which sub you're logged in to), resource group, and resource name.
An example of a resource id:
/resource/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myrg/providers/Microsoft.DBforPostgreSQL/servers/myserver

Thanks @rachel-msft, I understand that now. I was getting confused, as this is one of the few commands where it's actually something other than the --name parameter, combined with the --resource-group that builds the ID. In this case it was the --server-name.
I was hoping that it would be possible to create a database in a resource group other than the server, but it's not the case.


dist folder missing when installing from npm

When I do npm install phonon, there is no dist folder in node_modules/phonon folder thus I can't include them in my code.
Shouldn't they be there?

Hi @kbariotis,
Thank you for opening this issue.
Please, can you try to install the v1.4.5.
This has been fixed!

Thank you @Qathom. That was it.


Feature: "Most used languages" prototype chart

Type of feature
🍕 Feature
Current behavior
N/A
Suggested solution
Create a prototype component of the following bar chart, with no real data yet, just dummy data.

Additional context
No response
Code of Conduct

[X] I agree to follow this project's Code of Conduct

Contributing Docs

[X] I agree to follow this project's Contribution Docs

@nickytonline re-starting conversation for this chart too, can you take a look?

Is this still going under the Contributor Profile page (non-existent page atm) @isabensusan or should it go under the Activity page for now?

let's add it to the Activity page for now. When you get a PR preview we can take a look at the tab's layout to make sure we get it to look good :)

Looks like there is no API endpoint for this yet @isabensusan. I'll create it, but just wondering if this component only shows top 5 languages?

The component is built, so going to go ahead and close this as that's what the issue initially asked for. Next up is adding it to the list activity page.


Staging

Transition Videos from Vimeo to Youtube

@janared, Dont do that again. if you do that again. You will get block from this.  you get warning.
Have a nice day.


Create additional info blocks

My hobbies: Video games ( especially for 2D and 2.5D games ), drinking coffee, watching anime & read manga.
My interest:  Walking with listening music.

The issue is duplicated


pkg_resources.ResolutionError: Script 'scripts/binwalk' not found in metadata at None

Hi. I followed the Installation, running the deps.sh and setup.py in Ubuntu18.04 . But I didn't launch binwalk correctly. Could you help me ? Here are my installation info and python info.  (PS: Before I installed binwalk, I had compiled and installed python3.8 and used update-alternatives to change python3.8 as default  instead of python3.6)
installation

launch binwalk error

Hey, could you elaborate on how you resolved this issue? I'm having the same issue on Ubuntu 18.04.6


Enhance Redundant Virtual Routers to 3 Routers, with RAFT Algorithm (or similar)

ISSUE TYPE

Feature Idea

COMPONENT NAME

Redundant Virtual Router

CLOUDSTACK VERSION

N/A

CONFIGURATION

N/A
OS / ENVIRONMENT

N/A
SUMMARY

Idea To Be Able to Deploy A Total Of 3 Redundant Virtual Routers instead of 2.
In our own experiences, we've had bad experiences with Redundant VPC Networks because it creates total 2 Virtual Routers.
Although this was originally designed to offer redundancies, the real life experience of users of Cloudstack is that the setup is more likely to have cause operational issues instead. (myself and based on what ive read from other users experiences).
Some examples of theese issues are Master/Master Reundant Routers where both Routers are active at the same time. This usually ocurs due to a network issue where both routers are unable to communicate with each other (but are still alive). Hence, the passive becomes active, and the VPC becomes confused.
In our current set up, we had to change from a Redundant VPC (Dual Routers) to a Normal VPC (Single Router) because the redundant routers gave us more issues than benefits. Because of this, we had to accept a 5-7 minute downtime in the event a router goes down, so that it could failover to another node. This makes us less competitive than other options cloud providers, but provided the most predictability.
This then got me thinking.
What i've noticed from other technologies with a redundancy setup is that they use a minimum total of 3 members to ensure reliable redundancies. Examples are:

Redis Sentinel (Uses Quorum = 2, resulting in total 3 nodes)
Cockroach DB (Requires minimum 3 nodes)
Apache Kafka (Requires minimum 3 Nodes)

I believe this has got to do with the RAFT Algorithm where there is 1 Leader, and 2 Followers. In the event that any 1 node fails, the other 2 remaining members need to agree that the service is down, before agreeing to promote any 1 of the 2 remaining nodes to be the Active Node.
As a Feature Idea, what if Cloudstack were to offer Redundant Virtual Routers with similar concepts? Where there would be 3 routers except of two, and an implementation of a voting/promotion algorithm similar to RAFT.
I can imagine that the greatest benefits to businesses using Clodstack would be being able to achieve much greater high availabilities than current implementations.
This is just a random night time idea, im not sure of the technical implementations or repurcussions, but happy to discuss this idea and hear what the community thinks.
STEPS TO REPRODUCE

N/A

EXPECTED RESULTS

Feature Idea - Idea To Be Able to Deploy A Total Of 3 Redundant Virtual Routers instead of 2.

ACTUAL RESULTS

Redundant Routers only has Total 2 Routers

@btzq thank for your idea.
You missed etcd which is probably the most known implementation of raft algorithm.
To be honest, I do not think it is necessary to invest efforts on it.
The only difference between single VR and redundant VRs is the ip failover. By far keepalived is still the most popular and stable solution for IP failover. It is also used by some cloud providers and projects to implement features like elastic ip or vip.
Keepalived works very well if the network is configured correctly.
If redundant VRs do not work, please check the network configuration (not cloudstack network).

Hey @weizhouapache
i see, but i believe redundant virtual router also relies on oob and ipmi to be configured right? Otherwise, during a node failure, the original master router might still be alive, while the slave thinks something is wrong and promotes itself to master. This results in a master master issue?
But in our case, we are using linstor as the storage and linbits recommendation was to rely only on VM HA, and not configure any OOB/IPMI. They said it just works more reliably that way.

@btzq
the RVR only relies on the VRRP communication on the guest networks. This is why most master/master issues were caused by switch configurations (mlag/lacp/igmp, etc)
The feature is unrelated to host ha, vm ha and storage, etc.
In the past, there were some issues with vpc as the vpc tiers and public nics can be added/removed dynamically. It has improved in recent releases I think. if the vpc vrs are not started OOB , keepalived should work without issue.
If you have master/master issue with redundant vpc routers, please share the keepalived configurations and cloud logs, we can have a look.

Okay noted, we havent had any Master/Master issues because we completely removed the redundancy as it gave us more predictability.
But are there any tests we can run to ensure our networks are configured correctly?
Also, what should i do with this feature request? Do i close it?

Okay noted @weizhouapache , we havent had any Master/Master issues because we completely removed the redundancy as it gave us more predictability.
But are there any tests we can run to ensure our networks are configured correctly?
Everyone has different physical routers.
you can create a test isolated network with redundant VRs, and let it running for some days.

Also, what should i do with this feature request? Do i close it?

@btzq
I have added it to milestone "unplanned". let's keep it open

The VR HA relies on L2/L3, all mentioned solutions are L4-L7 HA solutions and not appropriate for VRs. From an opensource PoV we only rely on keepalived that implements the VRRP protocol which is enough for most scenarios. You can also consider using shared networks in CloudStack with an upstream router config of your choice (say Pfsense, Cisco etc) or use VNF feature. Keepalived/VRRP doesn’t always guarantee zero RPO but offers automation to heal effectively with seconds in most scenarios but may require additional HA in the underlying network infra (for example a bad cable or faulty nic or switch connected to your hosts will not save your networks with VRRP).


Absolute import paths with Atom js-hyperclick

babel-plugin-root-import does not works
but
babel-plugin-module-resolver works fine!
.babelrc
{
  "presets": [
    "next/babel"
  ],
  "plugins": [
    ["module-resolver", {
      "root": [""]
    }]
  ]
}

package.json
{
  "moduleRoots": [
    ""
}

example:
import MyComponent from 'components/MyComponent'
import MyPage from 'pages/MyPage'

@comerc I don't follow, this seems like an issue to be raised at the js-hyperclick repository, which is located here https://github.com/facebooknuclide/hyperclick

I'm using babel-plugin-root-import and it's working pretty well for me.
For that, you need to import like this: ~components/MyComponent.
Please reopen with a sample repo to reproduce.

@timneutkens js-hyperclick - a hyperclick provider that lets you jump to where variables are defined.
@arunoda js-hyperclick does not know about ~components/, but babel-plugin-module-resolver resolves root.


Add missing 'chai-as-promised' dependency

When I attempted to run e2e tests I got following error:
$npm run test:e2e

><EMAIL_ADDRESS>test:e2e /Users/sergeym/localDev/MagicMirror
> ./node_modules/mocha/bin/mocha tests/e2e --recursive

module.js:471
    throw err;
    ^

Error: Cannot find module 'chai-as-promised'
...

Adding chai-as-promised to package.json and running npm install fixes it.

@roramirez Not sure if you have chai-as-promised installed globally. I didn't and ran into this error, this PR should address it.

So stranger. On my system is installed in ~/MagicMirror/node_modules/chai-as-promised but if this resolved your problem is welcome.

@morozgrafix You are right!
Tested the Travis integration https://travis-ci.org/roramirez/MagicMirror/jobs/196812634 fail and with your change  https://travis-ci.org/roramirez/MagicMirror/builds/196813363

glad we caught it and sorted out


Is it possible to enable single sign-on (SSO) for Adaptive Card tab?

[Enter feedback here]
Is it possible to enable single sign-on (SSO) for Adaptive Card tab?
If available, does the SSO workflow for Adaptive Card tab follow the authentication pattern for message extensions？
Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 3a3a4238-5916-eff7-25cf-bff2362ab246
Version Independent ID: 12048d7d-de6a-43d8-44d5-7ab1be9972a2
Content: Build Adaptive Card Tabs - Teams
Content Source: msteams-platform/tabs/how-to/build-adaptive-card-tabs.md
Service: msteams
GitHub Login: @KirtiPereira
Microsoft Alias: surbhigupta

@moira2k - We are investigating your query. We will update you soon.

Thanks, but it is authentication for Adaptive Cards Tab. Refer the document: https://docs.microsoft.com/en-us/microsoftteams/platform/messaging-extensions/how-to/add-authentication.

@moira2k - We are checking this internally. We will update you soon.


Add try catch block in lib/plotutil.py

Surround plt.plot() present in lib/plotlib.py with try-catch block, so that if matplotlib raises any exception, our app does not terminate abruptly. Rather the reason for which matplotlib failed to plot the graph should be displayed in the terminal and the user should be able to continue using the app.

https://github.com/djmgit/PlotIt/pull/23
Hi , let me know if this works. Let me know if needed to improve.

@ash13 Thanks for working on this. Next time please refer the corresponding issue in your PR.
Refer to CONTRIBUTING.md if required. :)


KAFKA-16557 Implemented OffsetFetchRequestState toStringBase and added a test for it in CommitRequestManagerTest

I changed OffsetFetchRequestState toString to toStringBase. I also added the instance fields from OffsetFetchRequestState and RetriableState to the toStringBase method. Within RetriableState, I also added a getter method for expirationTimeMs for testing purposes.
I added a new test to CommitRequestManagerTest that tests the new toStringBase method. In the test, a string variable 'target' is instantiated and will be compared to the new toStringBase method. The test calls OffsetFetchRequestState toStringBase() and compares it to the target string. All tests in CommitRequestManagerTest pass.

@brenden20, as mentioned on another one of your PRs, there's a checkstyle violation here. You can run this command locally to avoid waiting for the CI infrastructure to catch it:
./gradlew check -x test

hi @brenden20 - left some comments. lmk what do you think.

Marked ready to review

Had a lot of merge issues, was taking too much time to fix so I made a new branch with my changes. New PR is here: https://github.com/apache/kafka/pull/16291


No module named 'lightgbm'

Operating System: win10
CPU/GPU model: gpu
C++/Python/R version: python
LightGBM version or commit hash: 2.2.3
Error message
I was following the setup process of the gpu version of lightgbm on win10.  After the setup, I can run perfectly with the test case, But the problem is I cannot import lightgbm with anaconda spyder? "No module named 'lightgbm'", could you please help me figure it out?
Thanks!!

I counter same problem except I use jupyter lab. any update on this issue?


Add FailWorkflow convenience method to FSMContext

Move FSMContext into separate file instead of keeping in fsm_models.
Closes #155

Thoughts on having FSMContext in its own file?  Seems like it's big enough/complicated enough to warrant a separate file.  Makes the tests easier to read.

FSMContext as its own file seems fine.
I think you are going to need to add a failedState *FSMState field to FSM,  FSM.AddFailedState(...) and FSM.DefaultFailedState() funcs, and set the default in FSM.Init if unset.
Following the same pattern as errorState, FSM.AddErrorState, FSM.DefaultErrorState() and  FSM.Init

Ah, good catch.  Fixed.

Yeah, I'm good with that naming convention.  Updated.

:+1:


Integration with Which-Key

Plugin looks great! Would love it if I could plug in my which_key tables to the fuzzy finder here - a real replacement for atom command palette. Which key and legendary could really complement each other perfectly
It's two different tasks: "I remember the leader key category but can't remember what's under it" (which key) vs "I remember the description but not the command or binding" (legendary)
In Atom, there's the command palette for the latter and the keybinding resolver for the former
Longer term, we can imagine a pseudo-standard way to document and describe bindings and commands that any UI could consume and display

I would absolutely love to work with @folke (author of which-key.nvim) on this if you'd be generous enough to work with me on it!
I'm not sure if it's a better approach to try to parse which-key style tables into the style I currently use, or to refactor my code to natively support which-key style bindings.
One consideration we'd have to make is that my plugin can not only remember your key binds and commands but also define/create them. I don't think which-key style tables supports having the implementation of the keymap/command in the table itself.

A third option would be for both plugins to agree on a shred data structure and access API which other plugins could make use of as well. then each plugin would be responsible for, along the way, translating their own config tables into that shared table.

That's a neat idea but I'm not sure what that would look like. At the most basic level, maybe something basically like mine but instead of them being based on index, each one would need an explicit key. So where mine look like:
{ '<F3>', ':NvimTreeToggle<CR>', description = 'Toggle file tree' }

perhaps a standardized version could look like:
{ key =  '<F3>', impl = ':NvimTreeToggle<CR>', description = 'Toggle file tree' }

maybe that could be internally keyed by something like ${description}NVIM_BINDING_RECORD${key}

not sure what you mean by that?

say there were two commands called "Format Buffer" but one was <c-f> and one was <leader>lf
If we keyed it by "Format Buffer", one would be clobbered
so we'd need to key two bindings:
Format Buffer__NVIM_BINDING_RECORD__<c-f> and Format Buffer__NVIM_BINDING_RECORD__<leader>lf
not sure how much sense that actually makes 😅

Format Buffer__NVIM_BINDING_RECORD__ and Format Buffer__NVIM_BINDING_RECORD__lf

why is this needed at all?

i'm assuming the bindings are stored in a json-object like structure
but you're right, if they're stored in a list, this isn't an issue

I looked a little more at which-keys table format and I think I can implement some kind of parser and have which-key tables "just work" with my plugin. they're similar but slightly different formats.
example:
which-key table representing "press ff to find files with telescope" (from their README.md):
{
  f = {
    name = "file", -- optional group name
    f = { "<cmd>Telescope find_files<cr>", "Find File" }
}

would need to be converted to the legendary table:
{ 'ff', '<cmd>Telescope find_files<cr>', description = 'Find File' }

Once I find the "last level" of nesting, it's basically a matter of combining the upwards key path into a string (e.g. { f = { f = { something } } } => key = 'ff'), using the indexed first element (tbl[1]) as the implementation (so, the 2nd element of my table), and the indexed 2nd element (tbl[2]) as the description field of my table.
Of course we'd also copy the things like noremap = false, buffer = 123 from the which-key table into the opts sub-table of my table.

@folke are there any edge cases surrounding this or is what's in the README.md pretty much the extent of how you can define which-key tables?

New discovery -- we can have which-key do the parsing for us!
If I take the mappings from the readme here and pass them into require('which-key.keys').parse_mappings like so:
require('which-key.keys').parse_mappings({}, {
  f = {
    name = 'file',
    f = { '<cmd>Telescope find_files<cr>', 'Find File' },
    r = { '<cmd>Telescope oldfiles<cr>', 'Open Recent File', noremap = false, buffer = 123 },
    n = { 'New File' },
    e = 'Edit File',
    ['1'] = 'which_key_ignore',
    b = {
      function()
        print('bar')
      end,
      'Foobar',
    },
  },
}, '<leader>')

I get the following result:
{
  {
    buf = 123,
    cmd = '<cmd>Telescope oldfiles<cr>',
    label = 'Open Recent File',
    opts = {
      noremap = false,
    },
    prefix = '<leader>fr',
  },
  {
    label = 'New File',
    opts = {},
    prefix = '<leader>fn',
  },
  {
    cmd = '<cmd>Telescope find_files<cr>',
    label = 'Find File',
    opts = {},
    prefix = '<leader>ff',
  },
  {
    label = 'Edit File',
    prefix = '<leader>fe',
  },
  {
    cmd = '<cmd>lua require("which-key").execute(3)<cr>',
    label = 'Foobar',
    opts = {},
    prefix = '<leader>fb',
  },
  {
    label = 'which_key_ignore',
    prefix = '<leader>f1',
  },
  {
    group = true,
    label = 'file',
    prefix = '<leader>f',
  },
  {
    group = true,
    prefix = '<leader>',
  },
}

which should be pretty trivial to then convert and parse in my plugin.

not sure how we'd handle the prefix thing though as that option is in a separate table.

@bennypowers I think I've got a pretty good which-key integration implemented! I tested it with your which-key config from your dotfiles repo, and it seems to work well. See updated README.md for instructions! Please file another issue if you run into problems!


Add unittest for supporting VariablePolicy in saved_model.load

This PR adds unittest for adding VariablePolicy to saved_model.load when soft placement is disabled. A related PR is https://github.com/tensorflow/tensorflow/pull/54319

Assign to Kathy since she is also reviewing the other PR on tf side.

since this is testing something in TensorFlow, could I ask that you move this test to the TensorFlow codebase (and change the Keras-related part of the code)? The low-level equivalent class of a Keras model is tf.Module.

I would put it here: https://github.com/tensorflow/tensorflow/blob/master/tensorflow/python/saved_model/load_test.py

Add the unittest there. Thanks and closing.


Getting third-party library versions

There are a few ways, not all public, to obtain the runtime versions of the third-party dependencies in the standard library:

Regex::PCRE.version : String
Regex::PCRE2.version : String
YAML.libyaml_version : SemanticVersion

Some build-time versions are also available:

LibLLVM::VERSION : String
LibSSL::LIBRESSL_VERSION : String
LibSSL::OPENSSL_VERSION : String

YAML.libyaml_version was added because there were behavior changes in libyaml 0.2.1 and the specs had to accommodate for that. For completeless, we should do the same in all other third-party libraries. They should:

All return a String. There is no guarantee that a library follows Semantic Versioning even if it exposes functions to obtain its major / minor / patch numbers.
Have the same method name, like .lib_version. Note that libssl and libcrypto share the same version.
Probably include the name of the actual library being used. We could insert it at compilation time if the library's version string does not include it. In particular it should be able to tell PCRE2 apart from PCRE, LibreSSL from OpenSSL, and MPIR from GMP.

Already libxml2 only exposes version information at compile time: https://gnome.pages.gitlab.gnome.org/libxml2/devhelp/libxml2-xmlversion.html


feat: add support for "rust" canister type

This is the initial work for supporting "rust" canister. RustCanisterInfo and RustBuilder are implemented.

The removed e2e test could be run locally. But it is invali, because the nix-shell for e2e-tests doesn't include cargo. We need to find a proper way to run this kind of e2e tests which run cargo build --target wasm32-unknown-unknown during the tests process.


Monkeypatch parser Scanner to catch long terminals

This commit should be reverted when https://github.com/gkellogg/ebnf/issues/5 is suitably closed.

Do we need a test for this?

I was thinking not, but I'm open to argument.
The test would be something like the code seen in the issue linked above:
str = "+#{'0' * 10000}\n+"
s = EBNF::LL1::Scanner.new(StringIO.new(str))
expect(s.scan(/\+.*\+/m)).not_to be_nil

My impulse is that we should include the test only if we would retain it as a regression test when the upstream code is fixed and this change is removed.  We're parsing turtle throughout the test suite, so we can be confident that this doesn't break normal cases.

My impulse is that we should include the test only if we would retain it as a regression test when the upstream code is fixed and this change is removed.

In my mind, I think this is the argument for adding such a regression test. Let me if you think otherwise!

Maybe what we need is a test closer to the surface?
I'm thinking that the test above may or may not pass, depending on implementation. But something that uses a real turtle example and runs through the turtle parser would be of greater value.

Works for me.

There you go. I've confirmed that this fails without the patch in place.
We should keep the commits separate, so the first can be reverted simply when a fix comes through on ebnf.


Security: Pinned colors library to 1.4.0

Because it's a security issue, I already published it. ~I think. I'd love a double check on this because I published before I committed and I don't recall if that flow is sufficient.~ I'm just going to check it myself. Faster that way.
See https://www.bleepingcomputer.com/news/security/dev-corrupts-npm-libs-colors-and-faker-breaking-thousands-of-apps/
We don't use other libraries mentioned in there, so we're good on those.

Draft until we can test the action. See #489.

Confirmed as working at https://github.com/plocket/docassemble-CompositeActionsTest/actions/runs/1678835970. This is for v3, so I'm going to make the same change in v4. I might do special admin magic to be able to merge it myself.


Fix searching when there are multiple relations and polymorphism

If there are multiple relations between classes and some
have polymorphism, we need to make sure that type constraint
is included in query when searching through polymorphic
relations. For the rest, we have to omit the type since
these are 'regular' relations and type column is not present.
My previous fix 80d0a9f3c235d3df49e355bd6750b0728481d8f3
missed this edge case, now I explicitely look for
:polymorphic in options.

I tested this in our project for both cases and it fixes the issue that was reintroduced by 4.1.1. Looking at the code, it looks good to me. Adding condition_many_to_middle only for relations with polymorphism is the key. Thanks @xprazak2 for thorough tests too.
After this is merged, could we please ask for another release? I know 4.1.1 was released very recently but unfortunately, it fixed one issue while reitroduced second one.

👌

Thanks for fixing this so quickly and adding tests. I will cut a new release

Awesome, thanks @wvanbergen!

@wvanbergen thanks for immediate reaction! @wvanbergen += :1st_place_medal:


It looks like the script disables or removes remote desktop

I couldn't find in the script where it does this but how do I prevent it from doing that?

It shouldn't be removing MSTSC (remote desktop connection). Did you download an RDP client from the Microsoft Store?

Line 73 says Microsoft.remotedestkop”
<EMAIL_ADDRESS>Sent from Mailhttps://go.microsoft.com/fwlink/?LinkId=550986 for Windows 10

From: Richard Newton<EMAIL_ADDRESS>Sent: Saturday, April 20, 2019 9:13:33 PM
To: Sycnex/Windows10Debloater
Cc: boe1; Author
Subject: Re: [Sycnex/Windows10Debloater] It looks like the script disables or removes remote desktop (#120)
It shouldn't be removing MSTSC (remote desktop connection). Did you download an RDP client from the Microsoft Store?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/Sycnex/Windows10Debloater/issues/120#issuecomment-485223268, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AHNXZSOMQM7KG5WOX7GO34DPRPSW3ANCNFSM4HF4BKKA.

Ah, my apologies. I think we were speaking of different applications. One thing you should do is comment it out, so you can put a # next to the line that you do not want removed.


#478 with a fix for Windows

This contains the pull request from @wkliao along with a fix for Visual Studio/Windows, which lacks the libgen.h header file.

It appears that the only need for libgen.h is to use basename()
in an error message. Can't we just use the full path name instead
of basename. This would allow removing the need for libgen.h at all.

This was merged in another branch, so closing this out. We can back out the need for libgen.h.


Bug in map_blocks when iterating over multiple arrays

Describe the issue:
When iterating over two arrays with map_blocks, I am running into an issue where each call to the function to process each chunk gets chunks with mismatching dimensions.
Minimal Complete Verifiable Example:
from dask import array as da

array1 = da.zeros((100, 24)).rechunk((41, 24))
array2 = da.zeros((100,)).rechunk((41,))

def process_chunk(a, b):
    print(a.shape, b.shape)
    return a + b[:, None]

r = da.map_blocks(process_chunk, array1, array2)
r.compute()

This gives:
(0, 0) (0,)
(1, 1) (1,)
(18, 24) (18,)
(18, 24) (41,)
(18, 24) (41,)
(41, 24) (41,)
(41, 24) (18,)
Traceback (most recent call last):
(41, 24) (18,)
  File "/home/tom/Projects/parallel-modeling-examples/eis/minimal.py", line 11, in <module>
(41, 24) (41,)
(41, 24) (41,)
    r.compute()
(41, 24) (41,)
  File "/home/tom/python/dev/lib/python3.12/site-packages/dask/base.py", line 376, in compute
    (result,) = compute(self, traverse=False, **kwargs)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/tom/python/dev/lib/python3.12/site-packages/dask/base.py", line 662, in compute
    results = schedule(dsk, keys, **kwargs)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/tom/Projects/parallel-modeling-examples/eis/minimal.py", line 8, in process_chunk
    return a + b[:, None]
           ~~^~~~~~~~~~~~
ValueError: operands could not be broadcast together with shapes (18,24) (41,1)

Normally there should only be three sets of chunks to iterate over - two with size 41 and one with size 18. However, it looks like more workers get called than this, and some of them have mismatching dimensions for a and be (41 for one and 18 for the other).
Environment:

Dask version: 2024.6.0
Python version: 3.12.4
Operating System: Ubuntu
Install method (conda, pip, source): pip

Thanks for your report. This basically follows the broadcasting rules of Numpy, i.e. we are broadasting to the second dimension:
arr = np.arange(0, 20).reshape(5, 4)
arr + np.arange(0, 4)

[[ 0  2  4  6]
 [ 4  6  8 10]
 [ 8 10 12 14]
 [12 14 16 18]
 [16 18 20 22]]

Closing this as expected behavior, it's also documented in the docstrign a little further down that we are aligning blocks along every dimension


pythonPackages.ansible-core: fix ansible-galaxy

Motivation for this change
$ ansible-galaxy collection install -r requirements.yml -p collections -vvv
ansible-galaxy [core 2.11.2]
  config file = REDACTED
  configured module search path = ['/Users/stephank/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /nix/store/ipn0x2skyksfmmqv3z4dkzff5jz1gxbm-python3.8-ansible-core-2.11.2/lib/python3.8/site-packages/ansible
  ansible collection location = REDACTED
  executable location = /nix/store/ipn0x2skyksfmmqv3z4dkzff5jz1gxbm-python3.8-ansible-core-2.11.2/bin/ansible-galaxy
  python version = 3.8.9 (default, May 27 2021, 03:09:34) [Clang 7.1.0 (tags/RELEASE_710/final)]
  jinja version = 2.11.3
  libyaml = True
Using REDACTED as config file
Reading requirement file at 'REDACTED/requirements.yml'
Starting galaxy collection install process
Process install dependency map
ERROR! Unexpected Exception, this is probably a bug: find_matches() got an unexpected keyword argument 'identifier'
the full traceback was:

Traceback (most recent call last):
  File "/nix/store/ipn0x2skyksfmmqv3z4dkzff5jz1gxbm-python3.8-ansible-core-2.11.2/bin/.ansible-galaxy-wrapped", line 136, in <module>
    exit_code = cli.run()
  File "/nix/store/ipn0x2skyksfmmqv3z4dkzff5jz1gxbm-python3.8-ansible-core-2.11.2/lib/python3.8/site-packages/ansible/cli/galaxy.py", line 552, in run
    return context.CLIARGS['func']()
  File "/nix/store/ipn0x2skyksfmmqv3z4dkzff5jz1gxbm-python3.8-ansible-core-2.11.2/lib/python3.8/site-packages/ansible/cli/galaxy.py", line 75, in method_wrapper
    return wrapped_method(*args, **kwargs)
  File "/nix/store/ipn0x2skyksfmmqv3z4dkzff5jz1gxbm-python3.8-ansible-core-2.11.2/lib/python3.8/site-packages/ansible/cli/galaxy.py", line 1186, in execute_install
    self._execute_install_collection(
  File "/nix/store/ipn0x2skyksfmmqv3z4dkzff5jz1gxbm-python3.8-ansible-core-2.11.2/lib/python3.8/site-packages/ansible/cli/galaxy.py", line 1213, in _execute_install_collection
    install_collections(
  File "/nix/store/ipn0x2skyksfmmqv3z4dkzff5jz1gxbm-python3.8-ansible-core-2.11.2/lib/python3.8/site-packages/ansible/galaxy/collection/__init__.py", line 511, in install_collections
    dependency_map = _resolve_depenency_map(
  File "/nix/store/ipn0x2skyksfmmqv3z4dkzff5jz1gxbm-python3.8-ansible-core-2.11.2/lib/python3.8/site-packages/ansible/galaxy/collection/__init__.py", line 1328, in _resolve_depenency_map
    return collection_dep_resolver.resolve(
  File "/nix/store/83fcrhal6dkci5gzm6f2kq69zzsrj1l8-python3.8-resolvelib-0.7.1/lib/python3.8/site-packages/resolvelib/resolvers.py", line 472, in resolve
    state = resolution.resolve(requirements, max_rounds=max_rounds)
  File "/nix/store/83fcrhal6dkci5gzm6f2kq69zzsrj1l8-python3.8-resolvelib-0.7.1/lib/python3.8/site-packages/resolvelib/resolvers.py", line 341, in resolve
    self._add_to_criteria(self.state.criteria, r, parent=None)
  File "/nix/store/83fcrhal6dkci5gzm6f2kq69zzsrj1l8-python3.8-resolvelib-0.7.1/lib/python3.8/site-packages/resolvelib/resolvers.py", line 147, in _add_to_criteria
    matches = self._p.find_matches(
TypeError: find_matches() got an unexpected keyword argument 'identifier'

Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[ ] NixOS
[x] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
21.11 Release Notes (or backporting 21.05 Relase notes)

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

[ ] Fits CONTRIBUTING.md.

You have to use packageOverrides.

Sorry, I don't follow, can you expand on this? I only have basic familiarity with Python.
I tried looking for packageOverrides, but only see it mentioned in the context of overlays, but I think that's not possible/desired in python-modules/? In code, I also cannot find precedent in the python-modules/ namespace, only in packages outside it that use Python.

The manual explains how it works indeed. It can be used outside of overlays though, see e.g. https://github.com/NixOS/nixpkgs/blob/9332bcad1813a87d7cd51e94dd9fd4a4aa11093c/pkgs/servers/mautrix-telegram/default.nix.

I think that's not possible/desired in python-modules/?

Oops, my bad. Overriding Python dependencies of pythonPackages is not allowed, sorry.

We can revert the resolvelib bump, as ansible is its only consumer.

We can revert the resolvelib bump, as ansible is its only consumer.

How will we prevent a bot from breaking this in the future? I'm a little worried that someone/something will create a PR, and it is approved in hasty review (such as during ZHF).

Oops, my bad. Overriding Python dependencies of pythonPackages is not allowed, sorry.

What about adding resolvelib-0_5 to toplevel pythonPackages instead?

How will we prevent a bot from breaking this in the future?

It won't, but I'm the maintainer of the package and I'm now aware of this issue.

What about adding resolvelib-0_5 to toplevel pythonPackages instead?

As long as Ansible is the only consumer that would result in on unused leaf package. Apart from that we don't support multiple versions of a package within one package set.

Not sure why this was closed, it seems like a solution was proposed but never implemented as I'm running into the same issue as OP. Created a PR that seems to fix it: https://github.com/NixOS/nixpkgs/pull/133064.


feat: add support for adding tcp and http processes as well

I find this would be a really neat add where users could easily list all tcp or http processes and be able to interact with them instead of currently running sudo lsof -t -i:<port-number>

Hi!
Interesting feature. I'm java dev so usually I'm only interested in ports take by some server.
Can you describe your use case more?
To be honest I have never used lsof to check for taken ports and pik supports find processes by used ports.

actually, pik seems to be already supporting my needed feature. in nodejs when you're running an application or a server, it needs a port to run on like say 3000 and when you run another instance of an application on the same port, you'd get port 3000 is already running in which case you'd have to run sudo lsof -t -i:3000 to find out the process id and then run sudo kill <process-id> to kill that process.
luckily, with pik now I can just do :3000 and filter the processes by port and kill on sight :) wonderful work!

I'm glad that it helped you ;)
Closing


Simulation times increases in long simulations

In my test setup, the tool was not moving at all, so I just run a similar loop about 500 times. The first run is about 0.5 second while the last one was 2 seconds. The only thing change is that new values are updated to fields at the end of each increment. My guess is that querying data from fields is getting slower when the field contains more time increments. At first, the field is interpolated in time direction here, and I don't immediately see any reasons why fetching the newest value from the field should slow down as the size of the data vector grows.

Skipping results writing is not changing the situation.


Add back the agent machine finalizer

In e6fa01e the machine pre-delete hook replaced this finalizer, but it now seems that there are scenarios where the AgentMachine could be deleted before the Machine. Before this change this would mean that the pre-delete hook would never get removed from the Machine, stalling the delete process indefinitely.
Now this finalizer will prevent AgentMachines from being removed before the pre-delete work is processed for the Machine. The annotation is added and removed at the same time as the pre-delete hook.
Resolves https://issues.redhat.com/browse/ACM-2433

I wasn't able to get an environment to test this, but this was confirmed to fix the issue in the original environment after I provided them with an image built from this branch.

/uncc
seems to have the proper reviewers except me

/lgtm

/approve

/cherry-pick release-ocm-2.7


script for updating xynafactory version

use ./updateVersion.sh  to update version for xynafactory.jar in server/pom.xml and installation/build/pom.xml as well as installation/delivery/delivery.properties

Having a format check would be nice
login3:~$ echo "<IP_ADDRESS>" | grep -Eq "^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$" && echo OK || echo NOK
OK
login3:~$ echo "9.0.2.a" | grep -Eq "^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$" && echo OK || echo NOK
NOK
```´


A dataset with title and subreddits

A dataset with the following format is needed:
title, subreddit, user(s)

This is needed for the model where both title and subreddit is used for input.

Is this solved by ff753ca2ce3 @Jaxing?


recommend build.sbt instead of Build.scala

trait sbt.Build removed since sbt 1.0

Okay, that was the old outdated style. we forgot to update. thanks !


How to set up external mumble server

Describe the bug
A clear and concise description of what the bug is.
Currently we are having some issues with voicechat.

If you are in a moving car the voiceboxes break and you can't really hear the person (the radio works fine)
Sometimes some people can't hear each other

Server Info:

Server Version: [4304]
Client Version: [e.g. production]
Client Build: [b2189]

Additional context
How can I set up an external mumble server to host pma-voice? Is there a tutorial for this?

Are you using the latest version of pma-voice, the only time this should really be a issue is if you have vehicles going 280-300mph
Also, there's no proper guide to setting up an external mumble, just use another FXServer and put pma-voice on it.

Are you using the latest version of pma-voice, the only time this should really be a issue is if you have vehicles going 280-300mph
Also, there's no proper guide to setting up an external mumble, just use another FXServer and put pma-voice on it.

Yeah, we are using the latest version. Our cars don't go that fast, fastest car is 210
Okay, so setup another FXServer to run in another port and put pma on there? Okay I can try that and see.


Added Tiguan to code

In the README the Tiguan was mentioned, however it wasn't added in the __init__.py and therefor didn't work. This is working with my Tiguan now.

I have a tiguan MK3, most of the info is displayed, but missing heater, temperature and car location.

Interesting, my one doesn't show without this added name.


[BUG] FlopsProfiler produces large negative results for nn.Conv1d

Describe the bug
When using deepspeed.profiling.flops_profiler.FlopsProfiler to measure flops of a neural network, it produces large negative results for nn.Conv1d.
This problem was encountered when I was trying to profile DebertaV2.
To Reproduce
Steps to reproduce the behavior:
import torch
import torch.nn as nn
from deepspeed.profiling.flops_profiler import FlopsProfiler

conv = torch.nn.Conv1d(1000, 1000, kernel_size=3, padding=1)
prof = FlopsProfiler(conv)

prof.start_profile()
x = torch.randn([1, 1000, 512])
y = conv(x)
prof.stop_profile()
flops = prof.get_total_flops()
params = prof.get_total_params()
prof.print_model_profile()
prof.end_profile()

print(flops)

Expected behavior
Flops should be positive
ds_report output
Please run ds_report to give us details about your setup.
DeepSpeed C++/CUDA extension op report
--------------------------------------------------
NOTE: Ops not installed will be just-in-time (JIT) compiled at
      runtime if needed. Op compatibility means that your system
      meet the required dependencies to JIT install the op.
--------------------------------------------------
JIT compiled ops requires ninja
ninja .................. [OKAY]
--------------------------------------------------
op name ................ installed .. compatible
--------------------------------------------------
cpu_adam ............... [NO] ....... [OKAY]
cpu_adagrad ............ [NO] ....... [OKAY]
fused_adam ............. [NO] ....... [OKAY]
fused_lamb ............. [NO] ....... [OKAY]
sparse_attn ............ [NO] ....... [OKAY]
transformer ............ [NO] ....... [OKAY]
stochastic_transformer . [NO] ....... [OKAY]
 [WARNING]  async_io requires the dev libaio .so object and headers but these were not found.
 [WARNING]  async_io: please install the libaio-dev package with apt
 [WARNING]  If libaio is already installed (perhaps from source), try setting the CFLAGS and LDFLAGS environment variables to where it can be found.
async_io ............... [NO] ....... [NO]
utils .................. [NO] ....... [OKAY]
quantizer .............. [NO] ....... [OKAY]
transformer_inference .. [NO] ....... [OKAY]
--------------------------------------------------
DeepSpeed general environment info:
torch install path ............... ['/home/wj/miniconda3/lib/python3.9/site-packages/torch']
torch version .................... 1.9.0
torch cuda version ............... 11.1
torch hip version ................ None
nvcc version ..................... 11.1
deepspeed install path ........... ['/home/wj/miniconda3/lib/python3.9/site-packages/deepspeed']
deepspeed info ................... 0.6.4, unknown, unknown
deepspeed wheel compiled w. ...... torch 1.9, cuda 11.1

Screenshots
System info (please complete the following information):
Launcher context
Docker context
Additional context

Hi @LorrinWWW, thanks for catching this bug! There is a typo in the conv flops calculation. Will be fixed in https://github.com/microsoft/DeepSpeed/pull/1989.


What version of python does javasphinx require?

javasphinx should run with Python 2.6.x or 2.7.x. Some work would need to be done to make it compatible with 3.x.

Cheers, I tried installing javasphinx using both pip and easyinstall on windows, on both 2.7 and 3.5 and ran into issues with libxml2 dependencies so wasn't entirely sure what was going on so figured I'd ask to check my sanity.

Hi! I've added Python 3 support in https://github.com/bronto/javasphinx/pull/39.

Python 3 support has been released in 0.9.14. If there's issues with lxml in the future its possible to have javasphinx-apidoc use an alternate parser by providing the -p flag. If you can get javasphinx installed without lxml (from source or using pip install --no-deps) you can install any other parser supported by BeautifulSoup.


Updated to Ubuntu 16 version of python 2

Update to a modern version, with new glibc library.
R: @alanmyrvold

R: @tvalentyn (Alan is OOO, I missed it.)


Deprecate supabase-py in PyPI

Describe the bug
supabase-py points to the incorrect version of the code despite having the same name as this repo. I know the correct package is called supabase, but this is a bit confusing for new users.
To Reproduce
Steps to reproduce the behavior:

Search supabase-py on Google (same name as this repo and what the docs reference)
Scroll down to the first PyPI link
Install that package
You have the wrong package!

Expected behavior
I would like to see a deprecation notice on the supabase-py or some other information redirecting me to the correct supabase package.

@J0 any updates on this?

@anand2312, no luck in reaching @fedden via email in order to yank the library. Will reach out to PyPI directly

Put in a request here: https://github.com/pypi/support/issues/3316

I'm a new Supabase user and spent a lot of time stuck on this issue. I had an old version of supabase-py installed which was cached by pip, and it wasn't until I came across this issue that I realized I did not have the correct or up to date Auth package.
In my virtualenv via pip3 I had to pip uninstall supabase and then pip3 install --upgrade supabase to finally have the correct dependency of supabase 2.1.0. To anyone who struggled with the same issue, use pip list or pip3 list to check your supabase version. Thanks  @nlarusstone

This should be an easy issue to fix.
I'm assuming only @J0 can edit the description on PyPi website?

Hey @adityaraute,
Thanks, sorry just seeing this. What do you have in mind?

My bad, I thought you had the access.

Oh no worries, appreciate the suggestion though!


Add new vuln for failing test

Published today

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

Project coverage is 63.17%. Comparing base (785b6c2) to head (001c99a).
Report is 1 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #900      +/-   ##
==========================================
- Coverage   63.28%   63.17%   -0.11%
==========================================
  Files         145      145
  Lines       11883    11883
==========================================
- Hits         7520     7507      -13
- Misses       3891     3907      +16
+ Partials      472      469       -3

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


Multiple Dashboard link doesn't work

in NovaServiceProvider.php

in Sidebar.

It shows on sidebar as different url but It's not work as url.
It's doesn't work with multiple dashboard when I'm click on it?
HELP

This is a nova issuer - I hope this to be solved soon, see https://github.com/laravel/nova/pull/1083

laravel/nova#1083 only affect Update.vue resource. Not related to Dashboard navigation.

@crynobone thanks for checking this issue.
The nova-dashboard package is not related to the default dashboard in nova, but is a tool, which loads custom pages.
These URLs of these pages look like /nova/nova-dashboard/(id-of-dashboard).
When switching directly between the URLs (e.g. by custom build direct links in the nova navigation) like the following:
/nova/nova-dashboard/3
/nova/nova-dashboard/7
only the first clicked page is loaded, when clicking on another link the URL in the browser is updated, but the page is not refreshed. With doing a browser reload the page is refreshed and displayed correctly.
So in my understanding laravel/nova#1083 is similar to this issue? but now I see it would only affect URLs like
/resources/users/2/edit ?
Wonder if you could apply the same fix to this situation? It would allow us to use direct links to any resource in Nova.

It seem that Dashboard.vue need to have it's own beforeRouteUpdate() method which need to run fetchDashboard().
You may create a PR on that on laravel/nova, Or create an issue to laravel/nova-issues and I'll look into it.

@crynobone thanks, see https://github.com/laravel/nova-issues/issues/3085

https://github.com/dcasia/nova-dashboard/blob/42dc445ddfa30d71987e8db058f2a406b3f8a4ac/resources/js/tool.js#L6-L12
It seem this package define it's own Dashboard.vue, so that Vue component need to have it's own beforeRouteUpdate() method. This should be done in this package and not laravel/nova.

Fixed on the latest version. now switching between dashboard re-render the Dashboard.vue component


Update login.blade.php

Remove register button if registration feature disabled

Hey, thanks for submitting! Would you mind indenting the markup after the @if block. Other than that, this looks good!

done 👍

Love it! Thanks again, my friend!


Global

Source:
After completing this exercise, you will have:
Current Translation:
この演習を完了すると、次を完了することになります。
Suggested Translation:
この演習を完了すると、以下のタスクを実行したことになります。

https://github.com/MicrosoftLearning/AZ-801-Configuring-Windows-Server-Hybrid-Advanced-Services.ja-JP/blob/OLPRODLOC/Instructions/Labs/LAB_01_Configuring_security_in_Windows_Server.md

fixed

Hello contributor,
Thank you for your contribution! We are processing your suggestions and we will update you shortly.
Kind regards,
Microsoft Worldwide Learning Team

Hello contributor,
Thank you for your contribution! We are processing your suggestions and we will update you shortly.
Kind regards,
Microsoft Worldwide Learning Team

Hello contributor,
Thank you for your contribution! We are processing your suggestions and we will update you shortly.
Kind regards,
Microsoft Worldwide Learning Team

Hello contributor,
Thank you for your contribution! We are processing your suggestions and we will update you shortly.
Kind regards,
Microsoft Worldwide Learning Team

Hello contributor,
Thank you for your contribution! We are processing your suggestions and we will update you shortly.
Kind regards,
Microsoft Worldwide Learning Team

Hello contributor,
Thank you for your contribution! We are processing your suggestions and we will update you shortly.
Kind regards,
Microsoft Worldwide Learning Team

Hello contributor,
Thank you for your contribution! We are processing your suggestions and we will update you shortly.
Kind regards,
Microsoft Worldwide Learning Team

Hello contributor,
Thank you for your contribution! We are processing your suggestions and we will update you shortly.
Kind regards,
Microsoft Worldwide Learning Team

Hello contributor,
Thank you for your contribution! We are processing your suggestions and we will update you shortly.
Kind regards,
Microsoft Worldwide Learning Team

Hello contributor,
Thank you for your contribution! We are processing your suggestions and we will update you shortly.
Kind regards,
Microsoft Worldwide Learning Team


Adding support for:

Fragment and Activity classes that are coming from the support library and Android X
onCreateView and onAttach for the Fragment

Thank you for contributing to NullAway!
Please note that once you click "Create Pull Request" you will be asked to sign our Uber Contributor License Agreement via CLA assistant.
Before pressing the "Create Pull Request" button, please provide the following:

[ ] A description about what and why you are contributing, even if it's trivial.
I noticed that NullAway is not recognising the onCreate method of the Activities and Fragments that are coming from the android support library (and AnddroidX library).
Also for the Fragment it makes sense to support and onCreateView as well as onAttach as those are also like an entry point for the Fragment - in OnCreate we are creating the View and initialising the viewElements.

[ ] The issue number(s) or PR number(s) in the description if you are contributing in response to those.

[ ] If applicable, unit tests.

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


updated test infa to circleci 2

we're starting to add more items to the zendesk api so we want to make
sure circleci is running (and ensure builds are working). right now,
we'll just ensure the builds succeed until we add additional tests to
the client

https://app.clubhouse.io/intello/story/2012/add-circleci-2-to-the-zendesk-client

oops sorry about that meant to open that against our fork


lookup joins with inequality filters

DOC-5302
@DrewKimball After looking through the test data in your PR, it seemed most straightforward to use parts of your PR description for the doc. I left two inline comments (questions) for you below.

@DrewKimball TFTR! This was really clarifying. I lightly copyedited and used your suggestions; PTAL.

LGTM


Telstra - Our coverage maps

Which domain(s) should be unblocked?
cdnssl.clicktale.net
Why should the domain(s) be unblocked?
When the domain cdnssl.clicktale.net is blocked you are unable to view the coverage map overlay at https://www.telstra.com.au/coverage-networks/our-coverage
This is what it should look like:

Thank you for this Anon @gyCfjSnO.
This domain comes to us from two separate curators.
This isn't going to change.
Closing.

Thank you for this Anon @gyCfjSnO.
This domain comes to us from two separate curators.
This isn't going to change.
Closing.

I've raised approximately 12 GitHub issues with various list maintainers.
Could you point me in the right direction as to whom the two separate curators are?

Dude @gyCfjSnO this ABSOLUTELY isn't going to change.
https://contentsquare.com/clicktale/
And from https://www.softwareadvice.com/ca/crm/clicktale-profile/

Clicktale is a customer engagement software that helps improve web usability, customer experience and increases the user conversion rate. Its customer analytics feature collects a bevy of data information and can track a users movement while using the site.

...and...

Clicktale offers experience analytics for web, mobile and experience analytics for apps. Its features include experience center, heat maps, session replays, conversion analytics, advanced data analytics and psychological analytics.

Forget it.  Hard stop.

@StevenBlack I hope you are doing well. I noticed that your reply was a bit harsh and dismissive. That might not reflect your intention, but it could hurt someone’s feelings. Is everything okay with you? I’m here to listen if you want to share anything.


Handler Chain Data

Informations

Type
Version

Question
2.3.*

Description
I am investigating how to best do handler chaining in Ts.ED
In Express IRoute each endpoint is defined as IRouteHandler, which again is an array of chained handlers:
interface IRouterHandler<T> {
    (...handlers: RequestHandler[]): T;
    (...handlers: RequestHandlerParams[]): T;
}

In Ts.ED the @ResponseData ()  according to the documentation will provide:

Provide the data returned by the previous middlewares.

The documentation suggests simply returning the data, but that does not not work in the Middleware. Looking at the Ts.ED source code I found that the Express Request was decorated with some additional methods (these are not found in the build lib):
 export interface Request {
            ...
            getStoredData(): any;
            storeData(obj: any): Express.Request;
        }

Based on this I successfully created the following example doing what I expected, but not as elegantly as I had hoped for:
@Middleware()
export class Middleware1 implements IMiddleware {
   async use(@Request()     request: Express.Request,
             @ResponseData() data: any,
             @Next()        next: Express.NextFunction) {

                   console.log("M1 Incoming Data: ", data);
                   console.log("M1 returning 1");
                   (<any>request).storeData(1);
                   next();
   }
}

@Middleware()
export class Middleware2 implements IMiddleware {
   async use(@Request()     request: Express.Request,
             @ResponseData() data: any,
             @Next()        next: Express.NextFunction) {

                   console.log("M2 Incoming Data: ", data);
                   console.log("M2 returning 2");
                   (<any>request).storeData(2)
                   next();
   }
}

@Middleware()
export class Middleware3 implements IMiddleware {
   async use(@Request()     request: Express.Request,
             @ResponseData() data: any,
             @Next()        next: Express.NextFunction) {

                   console.log("M3 Incoming Data: ", data);
                   console.log("M3 returning 3");
                   (<any>request).storeData(3)
                   next();
   }
}

In the controller I specify my chain as:
  @Get('/testing')
  @UseAfter(Middleware1, Middleware3, Middleware2)
   async testing() {
       return 5;
   }

and this correctly produces the expected output:
M1 Incoming Data:  5
M1 returning 1
M3 Incoming Data:  1
M3 returning 3
M2 Incoming Data:  3
M2 returning 2

The question is (finally) if I am missing the correct way to alter the data traveling down the chain? How is this supposed to be done?

Continuing my question :-)
I really like the way the Middlewares can be listed in the sequence:
@UseAfter(Middleware1, Middleware3, Middleware2)

I guess the only thing needed is getting the typings through to the released code so that one can simply write:
request.storeData(3)

And finally I would like to incorporate this whole thing in the documentation?
KR
Lasse

Hi @lwallent,
It's interesting.
In my mind, the middleware can return data, but it doesn't work. So it's bug XD.
This code is responsible to store the data:
https://github.com/Romakita/ts-express-decorators/blob/production/src/mvc/class/HandlerBuilder.ts#L173-L175
For the problem with the typings, you can fix that ^^ and you can add the documentation about the storeData.
I'll investigate on the problem with the HandlerBuilder ;)
See you,
Romain

Hi Romain,
I have created a pull request that will make the data read/writable within the middleware using the Express request extensions that was already there. Adding to the example to the documentation will follow later.
Kind Regards
Lasse

Hi @lwallent,
I'd just test your example and it work fine when I returned a data in each middleware.
I've created a PR to show you the test.
https://github.com/Romakita/ts-express-decorators/pull/125
The test print this
number : 2
M1 Incoming Data:  2
M1 returning 3
M2 Incoming Data:  3
M3 returning 5
M3 Incoming Data:  5
M3 returning 8
number : 10
M1 Incoming Data:  10
M1 returning 11
M2 Incoming Data:  11
M3 returning 13
M3 Incoming Data:  13
M3 returning 16

You can try this test ;)
See you,
Romain

Hi Romain,
I have now found the issue that caused my example to not work.
I was trying out different things while not cleaning up the parameters of the Middleware!
Injecting @Next without calling it will stop the chain. So in short the first of the following examples work while the seconds does not, which kinds of makes sense :-)
async use(@ResponseData() data: any) {
               return 3;
}

async use(@ResponseData() data: any,
          @Next()        next: Express.NextFunction) {
               return 3;
}

Thanks, I really like being able to leave out the next function all together !
KR
Lasse


Provide /healthz endpoint

Provide a endpoint that could be used by Kubernetes to figure out if the application is healthy.
Why this is needed
Kubernetes can monitor the health status of the policy-server instances by querying this /healthz endpoint. When a policy-server instance is unhealthy it (Kubernetes) will take care of starting a new Pod and killing the unhealthy one.

@flavio I can take this up. How do determine the health of the policy-server? What checks should we perform?

Sorry for the long delay caused by the holidays.
This is an issue we created a long time ago, thinking about how things evolved I struggle to decide what we should use to understand if Policy Server is healthy.
PolicyServer will abort the bootstrap phase is any of its policy is cannot be loaded properly or if there's some incompatibility between the server and the policy.
Maybe we could monitor the health status of the different PolicyEveluator that are used to answer the requests... But how to monitor that is not clear to me. The only thing that comes to my mind is to ensure all the PolicyEvaluator(s) are still listening on their end of the tokio channels. When a PolicyEvaluator faces an internal error (like a panic) the channel would get closed.
However this is something we have never seen, we have been careful in handling all the errors and the code should not panic.
Unless @ereslibre has better ideas, I would temporarily close this issue until we have better ideas about what to monitor.

The only thing that comes to my mind is to ensure all the PolicyEvaluator(s) are still listening on their end of the tokio channels. When a PolicyEvaluator faces an internal error (like a panic) the channel would get closed.

+1
Despite I have some ideas I wonder what would involve meaningful health checks. I think we need more experimental experience to know what health checks would be appropriate.
I agree in closing this issue for now and learn with experience. I will just drop some off the top of my head ideas:

Is the HTTP server responding?
For every loaded policy.

Is it able to process a new request?
Is the PolicyEvaluator able to perform a remote procedure call on the policy? A note: how does an infinite loop in a policy impact the policy evaluator?

Temporarily closing


IP range for Teams clients (Direct routing use-cases)

Hello,
I send you this request as we saw in the past months that the Microsoft Teams Direct Routing related FQDNs for SIP PSTN Hubs are now resolved with <IP_ADDRESS>/14 as previously, but also with <IP_ADDRESS>/15 subnet IP addresses:
https://learn.microsoft.com/en-us/microsoftteams/direct-routing-plan#microsoft-365-office-365-and-office-365-gcc-environments

The FQDNs sip.pstnhub.microsoft.com, sip2.pstnhub.microsoft.com, and sip3.pstnhub.microsoft.com are resolved to IP addresses from the following subnets:
<IP_ADDRESS>/14
<IP_ADDRESS>/15

The media IP and ports ranges did not change:

We don't have the history of the related change on the current page for which I'm sending this request, but we are wondering if there is any mistake for the Teams clients to also use <IP_ADDRESS>/15 instead of <IP_ADDRESS>/14 previously ?

If yes, may we ask to edit the page with the exact subnet for clients?
Thank you for your support,
best regards,
Anthony

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

ID: 66bd8666-3566-a901-b25b-eb6baba6264a
Version Independent ID: e9f6310f-2207-8c81-d31a-3d5a80beb26b
Content: Office 365 URLs and IP address ranges - Microsoft 365 Enterprise
Content Source: microsoft-365/enterprise/urls-and-ip-address-ranges.md
Service: microsoft-365-enterprise
GitHub Login: @kelleyvice-msft
Microsoft Alias: kvice

@ajeob We appreciate your feedback. This page is automatically generated from a database so we can’t manually update the page. However, if you suspect there is an error in this list of URLs and IP addresses or have questions, please contact Microsoft Support.
To contact Microsoft 365 Support:

Sign in to Microsoft 365 admin center with your Microsoft 365 admin account, and select Support > Help and support, enter your question, and then select Contact support.

If you're an admin on the account, you can call<PHONE_NUMBER> (toll-free, US only).


Add jsonified campaign progress

@sbsmith86 do you want to check this branch out and see if it works for you?
Here's what I'm seeing locally on campaign nodes... I didn't add new reportbacks so the number is the same for all the days... but you get the point

@angaither Yea! Just checked it out and that is what I am seeing, but it looks like the dates and quantities arrays are actually strings?

@sbsmith86 let's see what we can do about that

:cool: :cool: looks like JSON.parse() worked!

Hmm, yeah would be great if we could include each one as an actual array, rather than string encoded. Looks fine other than that though! :+1:


"More Faction Interaction (Continued)" No AI function

Describe the bug
IMPORTANT: Please first search existing bugs to ensure you are not creating a duplicate bug report.

bug description here !!!
Upon creating new game pods won't land and there seems to be no functioning AI in animals (no movement).
If pawns are set to spawn standing they will not be able to move or accept forced work.

To Reproduce (VERY IMPORTANT)
Steps to reproduce the behavior:

Install "More Factions Interaction (Continued)"
Start new game
Watch as nothing happens
See error

Error Log
There were no error logs about this.
Mod List
Harmony,
Core, Royalty,
HugsLib, More Faction Interaction (Continued),
RimThreaded
Screenshots
NA

This happens due to a recent update to More Faction Interaction that broke some stuff. Gonna have to revert to an older version for the moment. GitHub version here
https://github.com/emipa606/MoreFactionInteraction/releases/tag/1.0.5

I cannot reproduce this, can you provide a save maybe?

[Tested on RT 1.3.2]
I tested this issue on several fresh games, on different biomes and world map sizes (30 -100%). Both tribal and crashlanded starts were used.
I was not able to reproduce the described problem, despite several attempts. As far as starting the game on various settings goes, everything seems to work correctly.
I used the most up-to-date version of "More Faction Interaction (Continued)"
Conclusion
Generating a new game with RT and "More faction Interaction (Continued)" seems to work fine. It is likely that the mod has been updated since this issue was encountered, which may have fixed the problem.


Add test for deferred results in datastore get

Fixes #283

@aozarov added a test for fetch and verified entities for all keys are returned


output_dir is ignored

The option is ignored; ./data/<mode> is used instead. See https://github.com/acohan/arxiv-tools/blob/master/download.py#L28

thanks! Fixed!


Make SEO friendly links

Currently no real URLs are handled, everything is done in js via anchor parsing, which is not very search engine friendly.
Maybe we can use rewrite rules in a .htaccess file for having URLs like /topsongs /player and so on

done