Add Data Mechanics Delight - Monitoring tool

Data Mechanics Delight is a free, hosted, cross-platform, monitoring tool for Spark (Spark UI / Spark History Server alternative).
I'd like to add it to this awesome list (thanks for maintaining it).
I've created a new monitoring section - I was surprised there wasn't any - but I'm happy to move it somewhere else based on your feedback.
Thanks, JY - Co-Founder of Data Mechanics

@oluies @eliasah - Would you mind taking a look at this PR when you have the time? Here's a link to Delight: https://github.com/datamechanics/delight
Happy to tell you more about it!

@oluies @eliasah Wishing you guys a happy new year! Just wanted to make sure this PR is on your radar. It's about Delight, an open-source monitoring tool for Spark: https://github.com/datamechanics/delight
Let me know if you have any questions.
Best, Jean-Yves (co-founder @ https://www.datamechanics.co)

@oluies @eliasah Wishing you guys a happy new year! Just wanted to make sure this PR is on your radar. It's about Delight, an open-source monitoring tool for Spark: https://github.com/datamechanics/delight
Let me know if you have any questions.
Best, Jean-Yves (co-founder @ https://www.datamechanics.co)

Thanks for the comment. Let me know if you request changes, or if you can formally approve the PR?
Best,
Jean-Yves

Thanks for the comment. Let me know if you request changes, or if you can formally approve the PR?
Best,
Jean-Yves

Hell @jystephan ! Sorry for the delay in answering. How is possible to take this into a test drive ? :)

Sign up on https://delight.datamechanics.co (using a gmail address) and generate an API key
Follow the installation instructions on https://github.com/datamechanics/delight. We have instructions for spark-submit, EMR, Dataproc, Databricks, Livy, Spark-on-Kubernetes operator. You will need the API key generated in (1).
Submit a Spark application, let it finish, and you will see it appear on the dashboard https://delight.datamechanics.co. You can open up the Spark History Server. Soon (in the next few weeks) we will start adding more screen to this view, like CPU and Memory metrics (as described on the website).

Thanks @eliasah !

LGTM guys

@oluies @zero323 ?

LGTM

Thanks for the PR @jystephan, merged to master.

Great news, thank you guys!

You are welcome. @jystephan is there a roadmap somewhere we can follow ? I’m also curious about how you compute efficiency. Can you tell us more about that ? I’ve gave a try yesterday. There is bricks that I didn’t understand but in overall, it looks promising.

Thanks for the feedback. We'll announce our roadmap on the github project (
https://github.com/datamechanics/delight), the main next features are

Executor Memory Metrics (WIP)
Stage page + Executor Page, following the prototype/design from
https://www.datamechanics.co/blog-post/building-a-better-spark-ui-data-mechanics-delight
.

Roadmap is subject to change based on user feedback, we're also addressing
a few reported issues around stability, missing error messages, support of
long-running applications. Happy to chat more 1 on 1, e.g. on LinkedIn
https://www.linkedin.com/in/jystephan/, particularly if you have feedback
or if you run into issues.  Thanks!
Jean-Yves ("JY") [in https://www.linkedin.com/in/jystephan/]
Co-Founder & CEO, Data Mechanics https://www.datamechanics.co/
+1<PHONE_NUMBER>
Check out our latest blog post: Spark 3.1 Release: Spark-on-Kubernetes is
now Generally Available
https://datamechanics.co/blog-post/apache-spark-3-1-release-spark-on-kubernetes-is-now-ga
On Wed, Mar 17, 2021 at 12:47 PM Elie A. @.***> wrote:

You are welcome. @jystephan https://github.com/jystephan is there a
roadmap somewhere we can follow ? I’m also curious about how you compute
efficiency. Can you tell us more about that ? I’ve gave a try yesterday.
There is bricks that I didn’t understand but in overall, it looks promising.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/awesome-spark/awesome-spark/pull/193#issuecomment-801018653,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AB5QPDPFLWQ5NE56ZTTZL63TECJETANCNFSM4U2T2H4A
.

Indeed, the part of long applications or hanging applications can be a subject to tackle. It would be nice to have the application graph updated at least every minute while the application is running.


can we catch some event of the sever i start with forever is done?

if the server is done, will forever emit an event to let me do some thing like log or warning,3ks.

This recently crossed my mind as well. It would be nice if forever provided a way to run a script when certain events happen, such as the service exiting. A classic use case for this would be to send an email when a service exits unexpectedly.


fzf error

Before asking
Check through Issues and closed ones too if your question was already answered.
Question
Enter your Question under here:
Traceback (most recent call last):
File "C:\Program Files\Python310\lib\runpy.py", line 196, in _run_module_as_main
return run_code(code, main_globals, None,
File "C:\Program Files\Python310\lib\runpy.py", line 86, in run_code
exec(code, run_globals)
File "C:\Program Files\Python310\Scripts\mov-cli.exe_main.py", line 7, in
File "C:\Program Files\Python310\lib\site-packages\mov_cli_main.py", line 56, in movcli
provider = ask()
File "C:\Program Files\Python310\lib\site-packages\mov_cli\utils\provider.py", line 48, in ask
init = fzf_prompt(preselction)
File "C:\Program Files\Python310\lib\site-packages\fzf\process.py", line 123, in fzf_prompt
with Fzf.load_with_options(
File "C:\Program Files\Python310\lib\site-packages\fzf\process.py", line 46, in load_with_options
return cls(
File "C:\Program Files\Python310\lib\site-packages\fzf\process.py", line 30, in init
raise RuntimeError(
RuntimeError: fzf was not found in PATH. Please ensure that the process can access fzf.

You need to install fzf.


321 bn254mimc test vector

Simple test vector generator for MiMC - BN254.
Possible other features:

Include result by round (or every 10 rounds so that the test entries are smaller)
Include test cases with custom string input (conventionally hashed to fr first)

looks good, may be worth it to have at least one vector that takes multiple elements as input. I believe the intended use case is state manager so I hear "merkle tree path" 👍


allow type parameters on type arguments

interface Map<a> {
   [key: string]: a;
}

// IMPORTANT: here my intention is that the `read` and `run` methods are agreed on using the same type parameter
interface Command<Options> {
   read(args: string[]): Options;
   run(options: Options): void;
};

interface CopyCommandOptions {
   from: string;
   to:  string;
}

interface CleanCommandOptions {
   directory: string;
   pattern: string;
}

// currently in TypeScript there are 2 options to to declare `knownCommands` below:
// - Map<Command<any>> which contaminates my code with `any`
// - Map<Command<CopyCommandOptions | CleanCommandOptions>> which has different semantics
// ideally I wish I could declare it like this:
let knownCommands : Map<<a>Command<a>> = { // <-- hypothetical syntax
    'copy': <Command<CopyCommandOptions>> undefined,
    'clean': <Command<CleanCommandOptions>> undefined
};

// so that later I could the following do in a type safe manner:
let command = knownCommands[name];
command.run(command.read(args));

Note for others that this is not the same as #1213. The idea on this issue is that there is a constraint on the generic type, but that the type arguments themselves should be inferred.
This is similar to the desired behavior in #5652.

From reading your example, it looks to me like you're wanting existential types?
Keep in mind that I haven't really done any typescript before - so there's likely a nicer way to do what I came up with:
type Exists =
	<r> (go : <t> (_ : Command<t>) => r) => r

const exists = <c> (command : Command<c>) : Exists =>
	<r> (go : <t> (_ : Command<t>) => r) : r => go(command)

let knownCommands : Map<Exists> = {
    'copy': exists(<Command<CopyCommandOptions>> undefined),
    'clean': exists(<Command<CleanCommandOptions>> undefined)
};

let args : string[]
knownCommands[name](<t> (command : Command<t>) => {
	command.run(command.read(args));
});

Does that roughly do what you want in this case? @aleksey-bykov

@LiamGoodacre
This is a neat trick. Didn't realize I could do it this way. Yes, it looks like existential types is the name of what I've been looking for, which now can be googled and read about closely. Thanks.

:smile: Also to highlight that the read/run types match up:
knownCommands[a](<t> (x : Command<t>) => {
	knownCommands[b]<s> (y : Command<s>) => {
		//x.run(y.read(args)); // type error, `s` is not `t`
		//y.run(x.read(args)); // type error, `t` is not `s`
		x.run(x.read(args)); // fine
		y.run(y.read(args)); // fine
	});
});

This may be useful as an example of existential types as a library: https://github.com/purescript/purescript-exists/blob/master/docs/Data/Exists.md

This hasn't gotten a concrete proposal yet and I imagine there are more well-fleshed-out issues on it by now


Cake.SqlTools: Add cake-addin tag to NuGet package

The NuGet Gallery will soon include a "Cake" tab with instructions on how to use NuGet packages in Cake build scripts. I'd like to suggest that you include the tag cake-addin in the NuGet package of this addin, so that the NuGet Gallery can display the correct instructions to install this addin.
The UI will look similar to this:

Documentation on best practices on tags for Cake addins: https://cakebuild.net/docs/extending/addins/best-practices#tags

Added in v1.0.1 👍


Update source data and logic for creating units_rad in Housing Security and Quality

units_rad
Comes All Counted Units field in Housing New York Units by Building
We have logic to assign PUMA and Borough for each record.  SUM All Counted Units by each geographic level.

@levysamu I don't quite understand why we are using the housing new york dataset to get units_rad. I thought the housing new york dataset documents the total number of affordable units that HPD is responsible for while RAD units relates to the specific number of nycha units that have gone through the federally backed RAD conversion program

We are not using HNY for RAD units. We aren't using RAD units at all for anything.
The problem now is that there are two fields in the Income Restricted Units table shown below, but the bottom one is pulling the wrong information. Units With Regulatory Agreements Since 2014 is currently displaying RAD units when it should be showing HNY units. We don't need to display RAD units anywhere in the EDDE. We need all NYCHA units (of which RAD is a subset) and all HNY units.

Okay, great. I think that issue was lost in translation but it is clear now

@mbh329 The logic for filtering and assigning records to a geographic area should be the same as this indicator as source data is the same.
Therefore:

Do not filter out confidential projects
If the project has borough information include the records at the Brough or Citywide level


Update SPIRV-Headers DEPS

The following commit: 3d5fb7b refers to symbols from this commit in SPIRV-Headers: 9baa9e, but the DEPS file is not up to date.
This broke CI in ANGLE, but it should have probably been caught by CI here? Which ties into issues/2665

@dneto0 @dj2

Hey @zoddicus PTAL

I will roll DEPS ahead for this manually, and work on getting the process a bit better in #2665

Awesome, thanks a lot.


Change default bucket in to_gbq

Prefix default bucket name with project ID, so it won't clash with existing Google Storage buckets. Bucket names have to be unique globally.

[x] Closes https://github.com/coiled/dask-bigquery/issues/58.

I know I suggested project ID but apparently Google discourages this: https://cloud.google.com/storage/docs/buckets

Yikes. Well, we can either have no default, or use a uuid or something like that. What do you think is a good solution?

Yikes. Well, we can either have no default, or use a uuid or something like that. What do you think is a good solution?

Project ID might still be fine as the default.

Project ID might still be fine as the default.

Well, in this PR it's {project_id}-dask-bigquery, I was thinking perhaps {dask-bigquery}-{uuid}. On the other hand, even though Google does not encourage using project id, it doesn't forbid it either, so it might be ok.

@bnaul you have more experience using buckets and writing to them, do you think it can be problematic having the default name including project_id? Would using as default something that includes uuid be better?

Personally I would never have something create+tear down buckets programmatically for me, from a cost tracking perspective that sounds like a bit of a mess. Another consideration for us is that at very large scales the networking costs become significant (we are using basically this same approach to load 10s of TBs to BQ) and the zone that your bucket is in matters a lot (both for the write to GCS and the upload to BQ).
BUT for a typical user just trying this out, I can see why a default bucket would be nice...how about hashing the project ID and using that as the suffix?

Personally I would never have something create+tear down buckets programmatically for me, from a cost tracking perspective that sounds like a bit of a mess

How so? I thought we were trying to make a user's life easier with this haha.

Another consideration for us is that at very large scales the networking costs become significant (we are using basically this same approach to load 10s of TBs to BQ) and the zone that your bucket is in matters a lot (both for the write to GCS and the upload to BQ).

This is interesting, maybe we should mention this in the readme or in the docstrings. Would you open a PR with a sentence or two that gives a recommendation regarding bucket zone?

BUT for a typical user just trying this out, I can see why a default bucket would be nice...how about hashing the project ID and using that as the suffix?

I think this would be very similar to using a uuid. @j-bennet what do you think?

How so? I thought we were trying to make a user's life easier with this haha.

Most people wouldn't care, I just mean at the scale we're running at we want to be able to do cost attribution for each of these steps and having 1 bucket that we can track stats on is a lot more convenient.

Would you open a PR with a sentence or two that gives a recommendation regarding bucket zone?

I think it's kind of an edge case, but it might be worthwhile to give some kind of warning that network egress costs may apply and link to to their docs

I think this would be very similar to using a uuid

There are lots of different types of UUID's. If you mean type 3 or 5, then yes, it's just a type of digest hash. This seems reasonable. I'd be hesitant to use random UUID because that would make it harder to get the bucket name again if you want the same name.

@ntabris in dask we usually use uuid.uuid4().hex and some times shorten it. But I agree that getting the bucket name will probably be harder. I'm also good merging as is for now and seeing what happens, if people are ok with that.

This makes me think that perhaps we should not try and be too smart about it. Maybe we should require an existing bucket name, period, and if the bucket does not exist, error out. What do you think @ncclementi @bnaul ?

@j-bennet From what @bnaul describes in his use case, this seems to follow a best practice. I do wonder though if this implies that cleaning after writing will also have to be managed manually. I'm a bit torn here because if someone is just giving this a try having (a beginner) have something create+tear down buckets programmatically seems a good thing.

I'm inclined to merge this as-is, because, though being imperfect, it solves the problem we introduced in latest release: clashing default bucket name.
I'm going to create a follow-up PR to remove the create / delete bucket functionality, and leave that bit up to the user.

FWIW, my guess is that many users would like things to be simple and easy, and some users (like @bnaul) will want to manage bucket themselves. It seems like having the option to have library make the bucket doesn't hurt the people who want to have more control. I'd prefer a UX that works for both groups.

Sounds good, merging this as is, we can always switch to a different strategy in the future


[Bug]:  Buttons are not accessable

Give a brief about the bug ✍

In the pause and Help that are not pointing only cursor can be showed.
in this bug can be not clickable performance user identify.
please assign me to improve the feature.

What is the expected behavior? 🤔

if we will hover the buttons are pointing but that is not be abled.

Provide step by step information reproduce the bug 📄
Screencast from 2024-05-12 08-46-40.webm
Select program in which you are contributing
No response
Code of Conduct

[X] I follow CONTRIBUTING GUIDELINE of this project.

@sivaprasath2004 Please raise any other issue, because someone is already working on it


fix(register): update spawn ant to register at end of spawn

:tada: This PR is included in version 2.1.0-alpha.11 :tada:
The release is available on:

npm package (@alpha dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This PR is included in version 2.2.0-alpha.1 :tada:
The release is available on:

npm package (@alpha dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


[CI Backport ]Add jenkins stage for loading vagrant boxes

This change is

test-me-please

test-docs-please

test-missed-k8s

test-missed-k8s

Jenkins stage added succeeded, build failures are flakes, merging this to ease problems with other backports.


Call ORFs with prodigal

Do for both assemblies -- how is that best done?
Required for Diamond/MEGAN annotation.

I think it's better to try to run Prokka, to get overlapping genes of different kinds better treated.


Cannot navigate down object hierarchy if an interface is not directly implemented

for the code
interface A {
	foo: boolean;
}

interface B extends A {
	bar: boolean;
}

export class C implements B {
	foo = true;
	bar = true;
}

export class D extends C { }

running go to implementations on interface A returns nothing, but go to implementations on B returns both C and D.
This makes it more difficult to navigate down the hierarchy if an extension is only extended.

Maybe a better fit for the type hierarchy api: #45877


No errror tips

VSCode Version: 1.14.2
OS Version: Windows 7

Steps to Reproduce:

Create a js file
Write const a='test'; let a = 'a';, there is no error tips.
It works well on 1.13

Reproduces without extensions: Yes

We only report semantic errors in JS files if you enable checkJS
Extensions like eslint can also report these errors


RpcHandlers Refactorings

This provides access to the underlying MetaIoHandler from RpcHandlers

there's something funky going on with the diff

Should be okay now, please take one last look @cecton @expenses

Does this really need a polkadot pr?

@seunlanlege Yes, because it breaks polkadot (see CI) :wink:

bot merge

Checks failed; merge aborted.

well that spell backfired

You need to restart the polkadot test manually @seunlanlege

Yeah I already did, but the test keeps failing

You forgot to put the polkadot companion in the PR description

As you can see at the end of the logs, now it's using the right branch!
But the error is still there. Since you created your polkadot branch much later maybe you should check that your substrate branch is up-to-date with master. Then re-update your polkadot branch too.
If the problem persists, it means the current substrate master doesnt build with the current polkadot master. You can select the commit of polkadot that does commit instead:
# in the substrate repo
git merge $(curl -sSL https://raw.githubusercontent.com/paritytech/polkadot/master/Cargo.lock | grep -Po 'substrate#\K\w+' | head -n1)

This will make sure you are using the exact same version of substrate.

bot merge


✨ upgrade code to handle surrealdb v2

Thank you for submitting this pull request! We appreciate you spending the time to work on these changes.
What does this change do?
Handle surrealdb v2
What is your testing strategy?
Integration tests
Is this related to any issues?
N/A
Have you read the Contributing Guidelines?

[x] I have read the Contributing Guidelines

Hi. I am truly interested in this feature because v2 of surreal has some features that I could benefit from with my project. Is there any way I can help push this forwards?
I am not familiar with this code base, but I can at least help test this, and do some simple debugging if that would help.

Is there a plan to fix the last failing test?

I hope this pr gets merged soon. We really need it for V2

@Odonno Would you please fix the issue with workflow so we can finally use v2 ?

:warning: Please install the  to ensure uploads and comments are reliably processed by Codecov.
Codecov Report
Attention: Patch coverage is 44.49541% with 121 lines in your changes missing coverage. Please review.

Project coverage is 72.84%. Comparing base (6fd2105) to head (38f020c).
Report is 12 commits behind head on main.

Files with missing lines
Patch %
Lines

SurrealDb.Net/Internals/SurrealDbEngine.Http.cs
39.79%
48 Missing and 11 partials :warning:

SurrealDb.Net/Internals/SurrealDbEngine.Ws.cs
35.63%
47 Missing and 9 partials :warning:

SurrealDb.Net/Models/Response/SurrealDbResponse.cs
50.00%
2 Missing and 1 partial :warning:

SurrealDb.Net/SurrealDbClient.Methods.cs
88.00%
3 Missing :warning:

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #123      +/-   ##
==========================================
+ Coverage   69.65%   72.84%   +3.19%
==========================================
  Files         161      148      -13
  Lines        6702     5731     -971
  Branches      775      625     -150
==========================================
- Hits         4668     4175     -493
+ Misses       1689     1287     -402
+ Partials      345      269      -76

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

c'mon merge it @tobiemh

c'mon merge it


How to package multiple services into a single WAR file?

In Google App Engine (GAE) Standard, you can package multiple services into a single exploded EAR file but only if your app is running under Java 7. This does not work for Java 8:

An App Engine application that uses services is organized as an
unpacked Java Enterprise Archive (EAR) directory structure. The
top-level EAR directory contains a single META-INF subdirectory, and a
separate directory for each service in the app. Note that EAR is
supported for the Java 7 runtime only, not for the Java 8 runtime.

I couldn't find anything in the GAE docs that indicates how you package multiple services into a single WAR file.
https://cloud.google.com/appengine/docs/standard/java/configuration-files
I realize that I can create a separate WAR file for each service but the local dev server supplied by Google for testing your app only accepts a single WAR file. I could run multiple instances of the dev server using different ports but that seems kind of messy.

@JohannBlake EAR support for App Engine Standard is on a path to deprecation and the new toolchain does not support it.  Most of our toolchain still supports running multiple services in the same devappserver run but sadly IntelliJ plugin does not (nor did it ever).
We also have instructions on setting this up for Maven and Gradle users. Take a look at the 'Migrating EAR-based multi-service configurations' section of each guide.
@lesv multi-service configuration should probably be part of the main docset and not just the migration guide.
dupe of #1385

@patflynn Thanks for the feedback. Unfortunately there is no documentation that indicates that your local dev server supports multiple services. If it does, can you please indicate how you are suppose to have it know where the app code is for each service? As the documentation currently stands, it only indicates that you are to provide the directory where the exploded WAR file is located. But an exploded WAR file cannot have multiple appengine-web.xml files. The documentation I am referring to is:
https://cloud.google.com/appengine/docs/standard/java/tools/using-local-server
Even though IntelliJ doesn't support it, currently I run multiple instances of the local dev server, giving each a unique ip address. I do use IntelliJ and setup a remote connection for debugging and this does work. It does mean that I have to have each service opened up in a separate IntelliJ project window. Would be ideal if I could just open up the entire app with all services in a single IntelliJ project and only have a single instance of the local dev server running.

Are you using Maven or Gradle?  If you take a look at the links I included
you'll see that the 'Migrating EAR-based multi-service configurations'
section of those docs describe how to do it with those build systems.
Here
https://github.com/patflynn/appengine-potpourri/blob/cloud-sdk-refactor/endpoints-frontend/pom.xml
is an example project that is configured to do so.
On Thu, Feb 15, 2018 at 9:25 AM, Johann Blake<EMAIL_ADDRESS>wrote:

@patflynn https://github.com/patflynn Thanks for the feedback.
Unfortunately there is no documentation that indicates that your local dev
server supports multiple services. If it does, can you please indicate how
you are suppose to have it know where the app code is for each service? As
the documentation currently stands, it only indicates that you are to
provide the directory where the exploded WAR file is located. But an
exploded WAR file cannot have multiple appengine-web.xml files. The
documentation I am referring to is:
https://cloud.google.com/appengine/docs/standard/java/
tools/using-local-server
Even though IntelliJ doesn't support it, currently I run multiple
instances of the local dev server, giving each a unique ip address. I do
use IntelliJ and setup a remote connection for debugging and this does
work. It does mean that I have to have each service opened up in a separate
IntelliJ project window. Would be ideal if I could just open up the entire
app with all services in a single IntelliJ project and only have a single
instance of the local dev server running.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/GoogleCloudPlatform/google-cloud-intellij/issues/1912#issuecomment-365942063,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AHf5HU0pqYLo5Hfks4PLI5t2SYi5d-ACks5tVD5KgaJpZM4SGuHW
.

I am using Gradle. When I clicked on the link you gave for Gradle, the title read:
Migrating to the Cloud SDK-based Gradle plugin
I skipped this because I was not migrating anything. I was building an app from scratch. Developers don't have time to read topics on migration if they are building new apps. I highly recommend that a link to the topic you gave be indicated on these two pages:
https://cloud.google.com/appengine/docs/standard/java/tools/using-local-server
https://cloud.google.com/appengine/docs/standard/java/configuration-files
On the last link it states the following:

An App Engine application that uses services is organized as an unpacked Java Enterprise Archive (EAR) directory structure. The top-level EAR directory contains a single META-INF subdirectory, and a separate directory for each service in the app. Note that EAR is supported for the Java 7 runtime only, not for the Java 8 runtime.

No mention is ever given on how to handle the configuration (or packaging) for a Java 8 app. I spent several hours googling to find the solution to Java 8 and without success.
I'll try out the instructions under migrating and if I have any problems, I'll get back to you. Thanks!

I'm having a lot of difficulty getting gradle to run with the plugin for multiple modules. This really should not be surprising as there is not a single project anywhere, especially in github that actually shows how this is done. Google really needs to spend more time invested in providing skeleton projects that developers can use rather than us having to figure out how to make things work.
The biggest mistake Google constantly makes is assuming that every developer is a gradle expert. We are not. I have used gradle fairly extensively with Android but I am by no means an expert.
If you follow the instructions for the gradle plugin for GAE, it works fine if you are building a single project where the source code is directly off the root directory. For multiple modules, each module has its own build.gradle file and contains the settings as outlined in the docs for GAE.
So my project structure looks like this:
MyProject
  - Accounts // Folder for the accounts module (or accounts service)
  - Channels // Folder for the channels module (or channels service)
  build.gradle
  settings.gradle

The settings.gradle file contains:

include 'Accounts', 'Channels'

The build.gradle file has the following:
buildscript {    // Configuration for building
    repositories {
        jcenter()    // Bintray's repository - a fast Maven Central mirror & more
        mavenCentral()
    }
    dependencies {
        classpath 'com.google.cloud.tools:appengine-gradle-plugin:+'    // latest App Engine Gradle tasks
    }
}

repositories {   // repositories for Jar's you access in your code
    maven {
        url 'https://oss.sonatype.org/content/repositories/snapshots' // SNAPSHOT repository (if needed)
    }
    mavenCentral()
    jcenter()
}

apply plugin: 'java'                              // standard Java tasks
apply plugin: 'com.google.cloud.tools.appengine'  // App Engine tasks

dependencies {
    compile 'com.google.appengine:appengine-api-1.0-sdk:+'  // Latest App Engine Api's
}

appengine {
    deploy {
        version = 'v1'
        project = 'my-project-id'
    }

    run {
        // configure the app to point to the right service directories
        services = [
                getExplodedAppDir(project),
                getExplodedAppDir(project(":Channels"))
        ]
    }
}

// helper method to obtain correct directory and set up dependencies
def getExplodedAppDir(Project p) {
    // if not 'this' module, then do some setup.
    if (p != project) {
        // make sure we evaluate other modules first so we get the right value
        evaluationDependsOn(p.path)
        // make sure we build "run" depends on the other modules exploding wars
        project.tasks.appengineRun.dependsOn p.tasks.explodeWar
    }
    return p.tasks.explodeWar.explodedAppDirectory
}

sourceCompatibility = 1.8     // App Engine Flexible uses Java 8
targetCompatibility = 1.8     // App Engine Flexible uses Java 8

But if I run just:

gradle

it generates the error:

Could not find method run() for arguments [build_6r74b64esmpnn8rfe3xbr081m$_run_closure3$_closure6@176878e2] on object of type com.google.cloud.tools.gradle.appengine.core.AppEngineExtension.

I don't have any issues when running gradle on any of the modules. This error only occurs when running gradle on the root project.
If you can see the issue, please indicate what is wrong. Or better yet, upload an actual skeleton project showing a working build.gradle file for multiple services.

I was able to fix this problem by replacing:
apply plugin: 'com.google.cloud.tools.appengine'
with:
apply plugin: "com.google.cloud.tools.appengine-standard"
The build.gradle files for the modules actually use:
apply plugin: 'com.google.cloud.tools.appengine'
but the documentation at:
https://github.com/GoogleCloudPlatform/app-gradle-plugin/blob/master/USER_GUIDE.md
states:

You can also use the com.google.cloud.tools.appengine plugin that will automatically determine your environment based on the presence of an appengine-web.xml in src/main/webapp/WEB-INF/, Standard if present, Flexible otherwise.

But this does not seem to be the case. Using the com.google.cloud.tools.appengine plugin generates this bug.
Even after fixing this bug, I am now faced with a new problem:

Task with path 'war' not found in root project 'GAE'.

Of course there is no path to WAR in the root directory. Each module generates its own output in its own build directory. So how am I suppose to fix this?

@JohannBlake you should probably move this issue to the app-gradle-plugin repo, although I suspect your problem is ultimately about inadequate documentation.
The example app I shared with you appears to work fine on my machine:
`
git clone https://github.com/patflynn/appengine-potpourri.git
cd appengine-potpourri
./gradlew :endpoints-frontend:appengineRun
....
Please visit https://developers.google.com/appengine/downloads for the latest SDK.

Feb 15, 2018 1:28:23 PM com.google.apphosting.utils.jetty.JettyLogger info
INFO: Logging to JettyLogger(null) via com.google.apphosting.utils.jetty.JettyLogger
Feb 15, 2018 6:28:23 PM com.google.apphosting.utils.jetty.JettyLogger info
INFO: jetty-6.1.x
Feb 15, 2018 6:28:24 PM com.google.apphosting.utils.jetty.JettyLogger info
INFO: Started SelectChannelConnector@localhost:8080
Feb 15, 2018 6:28:24 PM com.google.appengine.tools.development.AbstractModule startup
INFO: Module instance default is running at http://localhost:8080/
Feb 15, 2018 6:28:24 PM com.google.appengine.tools.development.AbstractModule startup
INFO: The admin console is running at http://localhost:8080/_ah/admin
Feb 15, 2018 1:28:24 PM com.google.appengine.tools.development.DevAppServerImpl doStart
INFO: Dev App Server is now running
`
@loosebazooka FYI

FWIW the instructions on the migration doc and the example I sent do not apply the appengine plugin to the project root, but instead to the primary/default module.  It's that primary module that should pull in the other services that you want to run.

The link to the sample that you provided:
https://github.com/patflynn/appengine-potpourri/
does not have any build.gradle files that use the setup for the gradle plugin as described at:
https://cloud.google.com/appengine/docs/standard/java/tools/migrate-gradle
or at:
https://github.com/GoogleCloudPlatform/app-gradle-plugin/blob/master/USER_GUIDE.md
More specifically, it doesn't use the following code:
appengine {
    deploy {
        version = '1'
        project = "positive-karma-844"
    }

    run {
        services = [
                getExplodedAppDir(project),
                getExplodedAppDir(project(":{your-secondary-service}"))
        ]
    }
}

// helper method to obtain correct directory and set up dependencies
def getExplodedAppDir(Project serverProject) {
    // if not 'this' module, then do some setup.
    if (serverProject != project) {
        // make sure we evaluate other modules first so we get the right value
        evaluationDependsOn(serverProject.path)
        // make sure we build "run" depends on the other modules exploding wars
        project.tasks.appengineRun.dependsOn serverProject.tasks.explodeWar
    }
    return serverProject.tasks.explodeWar.explodedAppDirectory
}

I hope that you can understand the frustration I've gone through.

Ah I missed specifying the branch the second time I sent you the link. Make
sure you're looking at the 'cloud-sdk-refactor' branch:
https://github.com/patflynn/appengine-potpourri/blob/cloud-sdk-refactor/endpoints-frontend/build.gradle
On Thu, Feb 15, 2018 at 1:48 PM, Johann Blake<EMAIL_ADDRESS>wrote:

The link to the sample that you provided:
https://github.com/patflynn/appengine-potpourri/
does not have any build.gradle files that use the setup for the gradle
plugin as described at:
https://cloud.google.com/appengine/docs/standard/java/tools/migrate-gradle
or at:
https://github.com/GoogleCloudPlatform/app-gradle-plugin/blob/master/
USER_GUIDE.md
More specifically, it doesn't use the following code:
appengine {
deploy {
version = '1'
project = "positive-karma-844"
}
run {
    services = [
            getExplodedAppDir(project),
            getExplodedAppDir(project(":{your-secondary-service}"))
    ]
}

}
// helper method to obtain correct directory and set up dependencies
def getExplodedAppDir(Project serverProject) {
// if not 'this' module, then do some setup.
if (serverProject != project) {
// make sure we evaluate other modules first so we get the right value
evaluationDependsOn(serverProject.path)
// make sure we build "run" depends on the other modules exploding wars
project.tasks.appengineRun.dependsOn serverProject.tasks.explodeWar
}
return serverProject.tasks.explodeWar.explodedAppDirectory
}
I hope that you can understand the frustration I've gone through.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/GoogleCloudPlatform/google-cloud-intellij/issues/1912#issuecomment-366024011,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AHf5HSQJHuLKIoPW-mHy6Jablq_L-4EJks5tVHv4gaJpZM4SGuHW
.

Thanks. That did it. I also ran the sample and it runs as expected. Now I have something to compare my app to in order to find out why mine doesn't work. It would be helpful to other developers if that sample project was more obviously available on the GCP doc site. Being buried in some branch on github isn't of much help. All the same, thanks for helping out!

A minor issue I came across testing the sample app you gave me the link to. When I open up the browser and navigate to the path:
http://localhost:49829/_ah/admin
and then click on the "modules" link, it generates an error:
java.lang.NullPointerException: null value in entry: version=null
Does this happen on your machine? Am I not suppose to be expecting the two services to be listed?
Thanks.

I think that may be fixed if you have the latest cloud SDK version.  If not
specifying  in the appengine-web.xml resolves it (I think).
On Thu, Feb 15, 2018 at 3:09 PM, Johann Blake<EMAIL_ADDRESS>wrote:

A minor issue I came across testing the sample app you gave me the link
to. When I open up the browser and navigate to the path:
http://localhost:49829/_ah/admin
and then click on the "modules" link, it generates an error:
java.lang.NullPointerException: null value in entry: version=null
Does this happen on your machine? Am I not suppose to be expecting the two
services to be listed?
Thanks.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/GoogleCloudPlatform/google-cloud-intellij/issues/1912#issuecomment-366046702,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AHf5HWxIsV-tvtzjgdieZvELYXTJLVisks5tVI8LgaJpZM4SGuHW
.

I have the latest version of the cloud sdk but that didn't fix it. Putting the version number in the appengine-web.xml did.
I have a related question to all of this. When I view the services with http://localhost:49829/_ah/admin
it is clear that each is reachable under a different port. That was clear from the docs and is expected. What isn't clear is how devs are suppose to handle this in code when debugging locally. For example, if I write code in one service to call a different service, the http url would have to be:
http://localhost:<port-service-a>/...
http://localhost:<port-service-b>/...
http://localhost:<port-service-c>/...

Each service has its own port and these get randomly generated each time you run:
gradle appengineRun
Obviously it makes no sense to hardcode ports in the url and have to change it each time you run the app. There is a port number that can be specified in the gradle plugin but that is only a single port number and presumably applies to the default service. So how do you handle ports that change each time the app is run and you need to communicate from one service to the other?

@JohannBlake I don't know the best practices for this but I'm pretty sure you're not supposed to try and address services directly using the hostname port.  Dispatch.xml  or taskqueues could be a way of solving this but I'm not sure.
@lesv FYI
Here's a similar question on Stackoverflow.

Unfortunately the "best practice" was never addressed in the docs located at:
https://cloud.google.com/appengine/docs/standard/java/how-requests-are-routed

@patflynn Yep - we should incorporate this whole thread.

@JohannBlake
One option is to use the App Engine API's ModulesService to get local host:port connection points for your services (aka modules).  The full ModulesService API isn't supported, but you can use:

getCurrentModule()
getCurrentVersion(): always returns no_version
getModules(): returns the service IDs
getVersionHostname(serviceId, "no_version"): returns localhost:XXXX on the local devappserver, and returns the dot-form hostname to reach the service on App Engine (e.g., version.serviceId.projectId.appspot.com)

If you deploy your services with same versions (e.g., blue or green if using a blue-green deployment strategy), using the ModulesService would be really easy since you'd always be accessing service versions that corresponds to the current service's version.
If you deploy using different versions, you must have some kind of service-version table, in which case you could special case the local-run situation to always use no_version.

I created a github project that goes into details on how to setup and debug microservices for GAE in a Java project using IntelliJ. The solution I have provided avoids the need to use localhost:port and lets you debug your app with almost the same domain name that is used in GAE with the only difference being that on GAE you would normally use https and no port is specified, whereas locally you would use http and specify a port. Other than these minor differences, the url's are identical.
There is no need to use the gradle plugin for running locally although it is still used for deploying to GAE. You just don't need it to run the app, meaning no need for:

gradle appengineRun

Using the same endpoints locally as they would appear in GAE also allows you to use the same code for inspecting the subdomain and path, should that information be required by the servlet.
The github project can be found at:
https://github.com/JohannBlake/gae-microservices


Child metadata does not overwrite parent metadata

The correct behaviour is described by vue-meta here:
https://github.com/declandewet/vue-meta#how-metainfo-is-resolved
I have created an example of the issue here:
https://github.com/jazoom/ream-minimal
Steps:

Right click and select "View page source" -> metadata displays correctly
Navigate to Page 1 (which is a child of Home)
Right click and select "View page source" -> metadata is duplicated, despite the use of vmid

This causes issues with things like Facebook's parsing of OG tags.
I don't know how much of this is a bug with Ream's handling of vue-meta or within vue-meta itself.

So, fixed?
I'm presently trying to narrow down the source of the issue. Are you confident it's within vue-meta? Is that why you closed this?

Great job. That was really fast.

You can install 1.0.0-rc.4 to receive updates.

The doc is also updated: https://ream.js.org/#/?id=modify-ltheadgt

Ah, I see. It was an issue of Ream using a different name for the attribute. I didn't even consider that. It's probably less confusing this way, keeping it similar to vue-meta.


feat(new): Added Azure.VNET.PrivateSubnet

PR Summary
Working towards #11
Added Azure.VNET.PrivateSubnet.
PR Checklist

[x] PR has a meaningful title
[x] Summarized changes
[x] Change is not breaking
[ ] This PR is ready to merge and is not Work in Progress
Rule changes

[x] Unit tests created/ updated
[ ] Rule documentation created/ updated
[x] Link to a filed issue
[ ] Change log has been updated with change under unreleased section

Other code changes

[ ] Unit tests created/ updated
[ ] Link to a filed issue
[ ] Change log has been updated with change under unreleased section

Hi @BernieWhite,
I am working on resolving this old issue by implementing a new feature for virtual machines and virtual machines within a scale set. Please let me know if you think this approach is incorrect.
The general recommendation nowadays is to use a NAT gateway instead of attaching a dedicated public IP to the NIC.
By implementing this feature on a subnet, the default behavior will be invalidated, necessitating the configuration of explicit outbound access.
I am encountering an issue with the test suite and looking for help with it. Your insights would be greatly appreciated.
Specifically, I expect vnet-F to pass, as it has no subnets configured. However, the rule body identifies it with a subnet for some reason.

I am wondering if the statement for some reason produces and yields some output.

Ready for review @BernieWhite.

Thanks @BenjaminEngeset, nice work!
There are a few suggestions below. Let me know if anything doesn't make sense.

It makes sense. But should we have these service-specific subnets onto the rule body and have them pass, or should we discard them from the rule body. Thanks!

Thanks @BenjaminEngeset, nice work!
There are a few suggestions below. Let me know if anything doesn't make sense.

It makes sense, @BernieWhite. But should we have these service-specific subnets onto the rule body and have them pass, or should we discard them from the rule body? Thanks!

Because we're targeting -Type 'Microsoft.Network/virtualNetworks', 'Microsoft.Network/virtualNetworks/subnets' I think it might be easier to include it in the two Where-Object blocks.
In an ideal case then we'd ignore them, but that won't help for Microsoft.Network/virtualNetworks.

I have adjusted the logic accordingly now, @BernieWhite. What do you think?

After our discussion regarding overhead of using regex, do you want me to move with the PSRule helper method instead here @BernieWhite?

After our discussion regarding overhead of using regex, do you want me to move with the PSRule helper method instead here @BernieWhite?

Sure that would be great. Thanks.

I have switched over to the preferred solution now, @BernieWhite. What do you think?


Cow: Watch keysnlock.com

Cow requests the watch of the watch_keyword keysnlock\.com. See the MS search here and the Stack Exchange search in text, in URLs, and in code.

keysnlock\.com has been seen in 1 true positive, 0 false positives, and 0 NAAs.

Approved by Jeff Schaller in Charcoal HQ


Bump trivy version to v0.50.2

It was released 4 hours ago...
https://github.com/aquasecurity/trivy/releases/tag/v0.50.2

 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.


Read me

What article on docs.github.com is affected?

What part(s) of the article would you like to see updated?

Additional information

On NOW game.
On 7/20/21, docubot @.***> wrote:

This issue appears to have been opened accidentally. I'm going to close it
now, but feel free to open a new issue or ask any questions in
discussions!
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/github/docs/issues/8384#issuecomment-883373727


Microservices Example

A small ecosystem of services that provides Orders Functionality over a CQRS-styled interface.
OrdersService

Accepts orders via REST
Allows orders to be Queried, blocking if they are not present. (Uses non blocking IO and Queryable state).

InventoryService / FraudService / OrderDetailsService

Provide different validations of the order, run in parallel.
First two demo the KStreams API, on the transactional producer and consumer.

Validations Aggregator Service

Aggregates validations together and updates the corresponding order

TODO

Demo embedded KSQL around the input of Inventory (which can be done without Avro support)
Add multi-node Kafka support to the test framework.
Add tests that use KStreamTestDriver to demonstrate how that works.

@confluentinc It looks like @benstopford just signed our Contributor License Agreement. :+1:
Always at your service,
clabot

Thanks @dguy. On the orderid being versioned, it could be either, but the advantage of having the version on the OrderId is there is no way for the processing of one version of an order to affect another. So say I get two order updates in quick succession

@dguy I've addressed all your comments. Thank you for them. I'm going to leave the other TODO items in the description above for a follow up PR as I'd like to get this one merged. You ok to lgtm?


MAINT: fix pandas warning: Use "df.empty" instead of "not df"

@llllllllll if this looks ok to you please merge.

To fix:
...
  File ".../zipline/history/history_container.py", line 721, in update
  File ".../zipline/history/history_container.py", line 703, in frame_from_bardata
  File ".../local/lib/python2.7/site-packages/pandas/core/generic.py", line 714, in __nonzero__
ValueError: The truth value of a DataFrame is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().

I think this should be:
if sid_data is None:
    ...

The df.get returns None when not found.

I think this should be:
if sid_data is None:
   ...

The data.get returns None when not found.

I'm pretty sure if that were the case then we wouldn't be getting a warning from Pandas about the truth value being ambiguous, right?

It returns a dataframe is sid in data otherwise None. When we succeed, we get do bool(DataFrame) which raises a warning. With your patch, when we fail we will do None.empty which will also fail. An explicit check against None should handle both cases.

Just saw the test failures. The _data here should be a mapping from sid to SIDData. Do we know why we are getting df here?

Well, I thought this was an easy fix, but apparently it's more complicated. I don't know why we're getting a DataFrame instead of a SIDData.

I believe this history code has been replaced now.


Research into Pre-existing Technologies

Research into pre-existing games and write a small summary for each of them. Also look into studies on these games and see if they have been proved to help develop communication skills.

I researched into games such as RuneScape, World Of Warcraft and Club Penguin. Researching into these games gave me an insight into their success, how they achieved this and what technology was used. This allowed me to understand my game will have to be fairly simple in comparison as these games have huge development teams which have spent years working on the game.


Upgrade tags replaces takeaway tag

If you have for example a cafe already mapped with takeaway=only, but then in the name-suggestion-index it has the tag takeaway=yes, iD will ask to upgrade the tags which replaces only with yes.
In this case, an existing takeaway tag should be left in tact.

Thanks, this is #6530


Initial Parts Purchase : IR Watchdog

Bill has sent Ron the Chris IR boards. Purchase additional dev parts for testing other chips/setups.

On 2022-05-03 ordered QT PY ESP32-C3 (2) and Adafruit QT Py RP2040 (2). Along with some more cables.
*** Since these are also going to be used for my own projects, I will not be charging back to ATMakers. ***

Waiting on IR boards to arrive. Bill shipped on 2022-05-02. Scheduled to arrive on 05-07.

Boards arrived on 2022-05-05. IR parts and QT PY arrived on 2022-05-06.


Disable Video progress bar

Youtube has added a video progress bar under the thumbnail that I find distracting as the red bar covers the video rating bar. Is there a way to disable this from youtube center or move the ratings bar under the video progress bar?
Youtube's description of the feature
https://support.google.com/youtube/answer/7174115?hl=en
Screenshot to show what I'm talking about

Yeah, if you have Stylish addon installed, then just create a new style and copy paste this code.
`@namespace url(http://www.w3.org/1999/xhtml);
@-moz-document domain("youtube.com") {
/* remove red bar */
.resume-playback-background, .resume-playback-progress-bar {
display: none;
}
}`

Yeah, if you have Stylish addon installed, then just create a new style and copy paste this code.
@namespace url(http://www.w3.org/1999/xhtml);
@-moz-document domain("youtube.com") {

  /* remove red bar */
  .resume-playback-background, .resume-playback-progress-bar {
    display: none;
  }
}

@Pezor Doesn't seem to work. Is there anything else I need to do? I'm not very familiar with javascript so just poking around at the page layout in the console isn't helping me.

@HowellBP Oh, it's not a javascript code, it's just a simple CSS style. Depending on your browser you will need to download a Stylish addon. Here's a little guide (I'm using the latest version of Firefox).

Download the addon for your browser from here (Stylish for Firefox, Stylish for Chrome, Stylish for Safari, or Stylish for Opera).
Go to the Firefox's addons manager then choose User Styles. (Image)
Write new style and save (Image)
Before/After for me (Image)

Hope this helps!

@Pezor Oh I did all that but I still see the red progress bar. Do I need to clear my cache or cookies or something?

@HowellBP Hmm, that's weird, you don't really need to clear your cache or cookies at all. Changes should be immediate. I have no idea why it's not working for you.

@Pezor Aha I figured it out. Since I'm using Chrome, I had to import the code you put here as "Mozilla Format" which converted it to the correct style for the Chrome version. Now it works, and yes, it was immediate. Thanks a lot.

@HowellBP Glad it helped!

An option has been added to disable the resume playback bar (see https://github.com/YePpHa/YouTubeCenter/wiki/Features#Hide_Resume_Playback_Bar).


[Bug] PublicClientApplication acts like confidential client application

Library version used
1.14.3
Java version
17
Scenario
PublicClient (AcquireTokenInteractive, AcquireTokenByUsernamePassword)
Is this a new or an existing app?
This is a new app or experiment
Issue description and reproduction steps
Even though my application is a public client application, and uses MSAL for iOS and Android perfectly fine, when I try connecting to the same client id on Desktop (after registering the application for desktop), it says I need a client_secret:
com.microsoft.aad.msal4j.MsalServiceException: AADSTS7000218: The request body must contain the following parameter: 'client_assertion' or 'client_secret'. Trace ID: f8ca8882-0b92-4e97-9fac-bc491d333900 Correlation ID: f43ae1e8-856f-4ef3-a259-fa58a651ab2c Timestamp: 2024-05-08 10:58:05Z

Relevant code snippets
val application = PublicClientApplication
                    .builder(BuildConfig.ENTRA_CLIENT_ID)
                    .authority(BuildConfig.ENTRA_AUTHORITY)
                    .build()
                val prefs = Preferences.userRoot()

                val storedAccountId = prefs.get(Constants.ENTRA_ACCOUNT_IDENTIFIER, "")
                val redirectUri = "http://localhost:55259"
                val scopes = setOf("User.Read")

                val authResult = application.run {
                    if (storedAccountId.isNullOrBlank()) {
                        acquireToken(
                            InteractiveRequestParameters
                                .builder(URI(redirectUri))
                                .scopes(scopes)
                                .build()
                        )
                    } else {
                        acquireTokenSilently(
                            SilentParameters
                                .builder(
                                    scopes,
                                    application
                                        .accounts
                                        .join()
                                        .find { it.tenantProfiles[storedAccountId] != null }
                                )
                                .build()
                        )
                    }
                }
                entraIdToken = authResult.join().idToken()

Expected behavior
Returns auth token
Identity provider
Microsoft Entra ID (Work and School accounts and Personal Microsoft accounts)
Regression
No response
Solution and workarounds
No response

Hello @ShmuelCammebys : Just some clarifications:

When you say that it "uses MSAL for iOS and Android perfectly fine", you mean the same Azure app registration/client ID/authority/etc. configuration works for those other MSALs but not MSAL Java?
And "registering the application for desktop" means that you configured the app in Azure to allow public client flows? (Authentication tab -> advanced settings -> 'Allow public client flows')
In your code you have both an interactive and silent request. Is the error being thrown during the interactive request? And not during a refresh attempt in the silent request?

That 'AADSTS' is an error message coming directly from the token service rather than from our library, so my first guess is a configuration issue in Azure. If you ran your code immediately after configuring the app then maybe the config was slow to propagate? You can also check the 'Manifest' tab to see if the 'allowPublicClient' field is set to true.

@Avery-Dunn

Correct
Don't public client flows have to be allowed for MSAL iOS and Android to work?
Interactive.

I'd prefer to take this as far as I can before having to contact the security/DevOps team about the Azure config, but if more info is needed, so be it.

And "registering the application for desktop" means that you configured the app in Azure to allow public client flows? (Authentication tab -> advanced settings -> 'Allow public client flows')

Don't public client flows have to be allowed for MSAL iOS and Android to work?

Not really. That "allow public client flows" was historically used to enable username password flow and/or device code flow for confidential clients. Mobile platforms like iOS and Android do not require this setting to work.

I mean that the localhost redirect URI was added under the desktop platform.

@ShmuelCammebys , do you have a redirect URI http://localhost, with or without different port, registered as a Web platform in your app's registration? If so, that would cause this symptom. Either remove it from Web platform, or use a different redirect URI with a different /path. Port alone can't be used to differentiate multiple localhost URIs.

This is the config:

@ShmuelCammebys , no, I mean this setting.

There shouldn't be a web platform with http://localhost:12345 (whatever port number it might be) registered for your app. Can you double check to confirm or rule out this possibility?

It looks like I got some public client flows mixed up, and interactive flow is one where you don't need that 'allow public client' config, and like @rayluo said having a "Web application" platform is also incorrect.
I just did some testing to confirm, this is the config that worked for me:

"Allow public client flows" can be enabled or disabled, it does not affect this flow
For the platform, choose the "Mobile and desktop applications" option in the "Mobile and desktop applications" group

This option should allow "Custom redirect URIs", this is where you add "http://localhost"
The URI can have a port if you want, but it is ignored for the purposes of URI matching so it is not needed: https://learn.microsoft.com/en-us/entra/identity-platform/reply-url#localhost-exceptions

@rayluo Yes, there was a SPA redirect URI to localhost. However, when the redirect URI for desktop was set to http://localhost:55259/desktop, MSAL4J hangs at CompletableFuture.join and returns "No Authorization code was returned from the server" (Caused by: java.util.concurrent.CompletionException: com.microsoft.aad.msal4j.MsalClientException: No Authorization code was returned from the server)

Yes, there was a SPA redirect URI to localhost.

I haven't personally tried it, but I suppose SPA does not require a redirect URI in the Web platform either. If there is no other usage for a Web platform, @ShmuelCammebys, can you simply delete the http://localhost:whateverport from your Web platform setting, and try again?

However, when the redirect URI for desktop was set to http://localhost:55259/desktop, MSAL4J hangs ...

That might be a different issue. Not all the MSALs currently support a path /path in their interactive flow. Not sure whether that is also applicable to MSAL Java. I'll leave that for @Avery-Dunn to comment. Regardless, I still think there is a good chance that (1) using a path-less localhost redirect URI in your public client; plus (2) removing http://localhost:whateverport from your Web platform setting, shall work.

However, when the redirect URI for desktop was set to http://localhost:55259/desktop, MSAL4J hangs ...

That might be a different issue. Not all the MSALs currently support a path /path in their interactive flow. Not sure whether that is also applicable to MSAL Java.

I'm realizing now that our docs don't explicitly say a path will cause issues, but yes only http://localhost or http://localhost:port should be used: https://learn.microsoft.com/en-us/entra/msal/java/getting-started/acquiring-tokens-interactively
You may be able to use SystemBrowserOptions or a custom HTTPClient to handle a redirect with a path, but that's probably more complicated than it's worth.

@Avery-Dunn @rayluo  Unfortunately, a localhost redirect URI seems to be required in both platforms. Local web development requires a redirect URI, and our local desktop app development also requires a redirect uri. How can we accomodate both?

@Avery-Dunn @rayluo Unfortunately, a localhost redirect URI seems to be required in both platforms. Local web development requires a redirect URI, and our local desktop app development also requires a redirect uri. How can we accomodate both?

Generally, a web app is more flexible in terms of having their redirect URI - and its path - configurable; besides, web app typically uses a path in their redirect URI (such as http://localhost/auth). So, a usual workaround is to have your web app to use a redirect URI with path, thus save the path-less redirect URI http://localhost for your desktop app. That way, you can accommodate both, @ShmuelCammebys

You may be able to use SystemBrowserOptions or a custom HTTPClient to handle a redirect with a path, but that's probably more complicated than it's worth.

Indeed. There is a better approach. FWIW, there is a pending improvement for MSAL Python to support customizable path in Desktop's interactive auth, but that PR has been postponed indefinitely.


Synchronization  to a bound Observable Collection

Hi Roland,
We use your library in a real production application ( commodities order blotter ). Works great.
I have the following  problem to solve.
I have a price stream that updates prices and each order item need to change its color based on the latest market price which is compared to the limit price on the order item. So I have two streams a price stream and the order cache source  stream. The order cache source is bound to an observable collection.
I need to be able to lock the bound observable collection  for write operation while a specific price stream event happens  ( as the price stream event iterates through the bound observable collection and updates the prices).
Or Do it the RX way and  use combined latest to combine the orders cache source observable with the  prices stream.
Locking the prompt stream while processing each item inside of  transform won't work as I need to lock the entire collection.
I would appreciate your view on how the library can resolve these kind of issues.
here is my order cache connectable.
 var ordersCacheConnectable = Observable.Defer(()=> orderSourceCache.Connect());
        var orderSubscription= ordersCacheConnectable
            .Filter(compOrder =>
            {
                    var include = ProductTypeFilter(compOrder.CompositeOrderProductType) &&
                              compOrder.LatestCompositeOrderWorkflow.CompositeOrderStatus !=
                              CompositeOrderStatus.Reissued &&
                                   GetOrderPanelAllocation(compOrder).HasFlag(OrderBlotterStatusPanelAllocation);
                    return include;
            })
            .Transform(ProcessOrderChangeNotification)
            .ObserveOn(schedulerService.Dispatcher)
            .SubscribeOn(schedulerService.ThreadPool)
            .Bind(_orderBlotterItemViewModels)
            .DisposeMany()
            .Subscribe(ord =>
            {
                SortOrderBlotter();
                ProcessChangeSet(ord);
            }, OnOrderSourceCacheError);

The first question is why do you need to lock the cache stream? Is it because you are sorting on market data? The answer to this question may change any advice.
My preferred option would be to have the orders individually subscribe to an observable of prices (which can be filtered by a key) and process their own values locally.  That way the order becomes autonomous and no locking is required.  I have used this methodology many times and conceptually it works very well.
Also to help me understand your scenario better, why are you sorting and processing changes withinSubscribe.   Such things are always better within the observable.  If you are sorting by price, there are several techniques within dynamic data where you can have fine grained control of sorting using either the Sort or AutoRefresh operators.

Hi Rolland,

I don't need to lock the stream but I need to lock the bound order collection. The reason for that is that we have a requirement to change the background color of each  row that presents the order.
The row contains a limit price and a current market price so there is a rule that states that if the limit price ><= current market price I need to change the background of the row. So there is a price stream observable that receives price changed notification and then iterates over all the orders in the bound order collection and injects the current market price into them.
The reason we need to synchronize these streams is that the bound Order collection can change at the same time that the price stream changed. At the moment I only lock the latest price shared object using Write when the price changes and then enter a read lock when I read it and write it to each row in the order collection ( upon price change).
Your idea to subscribe to the price change on each order will work but will require refactoring which I will do now. Thanks for your advice !

Sorting is done in subscribe and not using your Sort function (which I used before ) because the sorting is complex. I am aware that this is not ideal as it sorts on the arrival of each item but for the number of records we have the performance is very good so its not an issue. The sorting uses IComparer and as far as  I recall when I wrote it 6m ago I couldn't get it to work with Sort operator , even though it takes IComparer. Looking at it again , I don't see why it wouldn't work and I don't remember the details so I will have to try to change it and retest. The sort function have side effects to inject something into the bound order collection, but this can probably be done via Do , or ObservableCollectionAdapter  , and really doesn't need to be apart of sort.

private void SortOrderBlotter()
{
if (!OrderBlotterItemViewModels.Contains(_promptPriceOrderBlotterItem) &&
_promptPriceOrderBlotterItem != null)
OrderBlotterItemViewModels.Add(_promptPriceOrderBlotterItem);
        OrderBlotterItemViewModels.Sort(_orderBlotterItemComparer);
    }

Thanks again for your useful advice

There will be a way to make sort work directly but perhaps I can help you with that another time.  If the collection alone needs to be locked you can do something like this:
var locker = new object();

...
    .Synchonize(locker)
    .Bind(_orderBlotterItemViewModels)
    .DisposeMany()

var myOrderUpdaterObservable = ...
    .Synchonize(locker)
    .Subscribe(_=> ..) \\process orders directly from the observable collection;

This may work, but locking from outside an observable stream is always a little tricky


[cargo completion] __get_package_names not defined

To Reproduce

Enable plugin cargo
Try to complete cargo update -p
See error: _arguments:463: command not found: __get_package_names

Expected behavior
It doesn't error. I am fine with this not completing at all, or with this completing without error.

Try rm $ZSH_COMPDUMP and restart the terminal.

Disregard my previous post. I've updated the completion file. Upgrade, rm $ZSH_COMPDUMP and restart and it should not error anymore.

Thanks for fixing this in 05dfd0ae8520e58e852c574f55c83fe6f49fb189.


feat:[D0C-3969]: Adding when condition for looping strategy

Harness Developer Pull Request
Thanks for helping us make the Developer Hub better. The PR will be looked at
by the CODEOWNERS.
What Type of PR is This?

[ ] Issue
[ ] Feature
[ ] Maintenance/Chore

If tied to an Issue, list the Issue(s) here:

Issue(s)

House Keeping
Some items to keep track of. Screen shots of changes are optional but would help the maintainers review quicker.

[ ] Tested Locally
[ ] Optional Screenshot.

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step behind the Harness VPN and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app. Current Draft URL is: https://65cb1bef2388e09a93e8873d--harness-developer.netlify.app

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step behind the Harness VPN and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app. Current Draft URL is: https://65cb866da302161441d6e7ef--harness-developer.netlify.app

 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.

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step behind the Harness VPN and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app. Current Draft URL is: https://65cc375896ba3b558d18613b--harness-developer.netlify.app

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step behind the Harness VPN and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app. Current Draft URL is: https://65cc37c4c963835ed752e893--harness-developer.netlify.app

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step behind the Harness VPN and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app. Current Draft URL is: https://65cc6a0b9874267b627a2c18--harness-developer.netlify.app

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step behind the Harness VPN and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app. Current Draft URL is: https://65cc6b612a0f8873265b362e--harness-developer.netlify.app

 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.

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step behind the Harness VPN and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app. Current Draft URL is: https://65ccf219b0b0eb007a4fab9d--harness-developer.netlify.app

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step behind the Harness VPN and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app. Current Draft URL is: https://65ccf26e38d467008c2ec6a6--harness-developer.netlify.app


Crashes. Only after migrating to Purpur. On Tuinity all are fine

Describe the bug
Full-log after server was fully and successfully started:
https://mclo.gs/ZGgi4BJ
Just crash-report:
Time: 28.03.21 20:26
Description: Exception ticking world

java.lang.NullPointerException: Exception ticking world
	at net.minecraft.server.v1_16_R3.NetworkManager.execute(NetworkManager.java:129)
	at com.tuinity.tuinity.chunk.PlayerChunkLoader$PlayerLoaderData.sendChunk(PlayerChunkLoader.java:727)
	at com.tuinity.tuinity.chunk.PlayerChunkLoader.trySendChunks(PlayerChunkLoader.java:484)
	at com.tuinity.tuinity.chunk.PlayerChunkLoader.tickMidTick(PlayerChunkLoader.java:599)
	at com.tuinity.tuinity.chunk.PlayerChunkLoader.tick(PlayerChunkLoader.java:418)
	at net.minecraft.server.v1_16_R3.ChunkProviderServer.tick(ChunkProviderServer.java:949)
	at net.minecraft.server.v1_16_R3.WorldServer.doTick(WorldServer.java:1057)
	at net.minecraft.server.v1_16_R3.MinecraftServer.b(MinecraftServer.java:1554)
	at net.minecraft.server.v1_16_R3.DedicatedServer.b(DedicatedServer.java:430)
	at net.minecraft.server.v1_16_R3.MinecraftServer.a(MinecraftServer.java:1403)
	at net.minecraft.server.v1_16_R3.MinecraftServer.w(MinecraftServer.java:1129)
	at net.minecraft.server.v1_16_R3.MinecraftServer.lambda$a$0(MinecraftServer.java:291)
	at net.minecraft.server.v1_16_R3.MinecraftServer$$Lambda$3060/1101839185.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)

To Reproduce
Startup server, IDK. There only way to understand problem is to see stacktrace.
Plugins
----------------------------------------------------------

----------------------------------------------------------
Version
I can't start server, so can't execute /version.
Build is purpurclip-1.16.5-1048.jar [9dfc780], downloaded 30 minutes ago.
Is bug present on Paper, Spigot, CraftBukkit, or Vanilla
No. I was running Tuinity b90 and now updated to b218 and not expecting described bug on it.
[20:54:31 INFO]: Checking version, please wait...
[20:54:32 INFO]: This server is running Tuinity version git-Tuinity-"94f025a" (MC: 1.16.5) (Implementing API version 1.16.5-R0.1-SNAPSHOT)
You are running the latest version
Previous version: git-Purpur-1048 (MC: 1.16.5)

Maybe you needed to update Tuinity.

Fixed in build 1049
https://github.com/pl3xgaming/Purpur/commit/8b9b214a6db0cf9b4f012195359e21907bc7aee4


OllamaOptions should be OllamaChatOptions for consistency

Naming of OllamaOptions should follow Spring conventions in being consistent with other ChatOptions classes.

The challenge with Ollama is that it doesn't distinguish between different models when it comes to options, they're all in the same bucket and there's no documented split. For that reason, the OllamaOptions class follows the Ollama strategy and is not model-specific, instead, it implements both the ChatOptions and EmbeddingOptions interfaces (in the future, perhaps also ImageOptions) and it's used in both scenarios. Some additional information on this topic: https://github.com/spring-projects/spring-ai/issues/230 and https://github.com/ollama/ollama/issues/2349

Fair enough. Although isn't the format property, at least, only relevant to LLM generation?

There are probably many other examples that can be put into a bucket, but I'm not going to go through the laundry list of options and definitively categorize them.  I don't know what 1/2 of them do and I've found docs on the topic to be lacking.

One can create your own options class that collects the specific fields you want.  The logic is using 'duck typing' so you can pass in anything that has the correct shape (property names)

Will look into response-format going into common options.  See https://github.com/spring-projects/spring-ai/issues/1271


Parser Page: Select Output box is asking for a file rather than a folder.

Parser Page: Select Output box is asking for a file rather than a folder.
The wrong control was used. Fixed in the next build.

Fixed in release v0.6-alpha.


fix(tests): breadcrumb rtl tests

It seems like due to changes in the Link/Breadcrumb component old Cypress tests for Breadcrumb aren't 100% functional. I am adding RTL tests so we won't need to remove Cypress tests

:tada: This PR is included in version 1.38.5 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


[next][Switch] add optional selection label

Add optional label to Switch, consistent with Radio and Checkbox.

[x] PR has tests / docs demo, and is linted.
[x] Commit and PR titles begin with [ComponentName], and are in imperative form: "[Component] Fix leaky abstraction".
[x] Description explains the issue / use-case resolved, and auto-closes the related issue(s) (http://tr.im/vFqem).

Review items complete. I think I addressed the question on the test.  Good to merge.


Fix ddtray execution by installer for non-elevated administrator users

What does this PR do?

Reverts the UAC manifest from requireAdministrator back to the original asInvoker and moves the relaunchElevated logic prior to the components entrypoint.  With the UAC manifest set to asInvoker ddtray will run as is, and will attempt to elevate itself if necessary. If elevation fails it will exit. It is important that this elevation occur prior to the components entrypoint because the agent configuration file has restricted permissions.
Motivation

Fix regression introduced by https://github.com/DataDog/datadog-agent/pull/14985
requireAdministrator prevents the installer from launching ddtray when the installer is run by a non-elevated admin, which is the case if you double click the installer on the desktop. Windows Installer uses the CreateProcessAsUser method to create the process, which returns an error instead of creating a UAC prompt.
Additional Notes

https://learn.microsoft.com/en-us/cpp/build/reference/manifestuac-embeds-uac-information-in-manifest?view=msvc-170#remarks
https://learn.microsoft.com/en-us/windows/security/identity-protection/user-account-control/how-user-account-control-works
Possible Drawbacks / Trade-offs

Describe how to test/QA your changes

Workstation host:
non-elevated installer

Sign in as an administrator user account. double click the agent on the desktop, install.
Ensure ddtray launches via the checkbox at the end of the installer.
Ensure the web browser launches, and can be launched again via the right click menu
ensure the Datadog Agent Manager shortcut runs ddtray

elevated installer

Sign in as an administrator user account. run the installer from an elevated command prompt.
Ensure ddtray launches via the checkbox at the end of the installer.
Ensure the web browser launches, and can be launched again via the right click menu
ensure the Datadog Agent Manager shortcut runs ddtray

Domain controller:

Sign in as the built-in administrator user account. double click the agent on the desktop, install.
Ensure ddtray launches via the checkbox at the end of the installer.
Ensure the web browser launches, and can be launched again via the right click menu
ensure the Datadog Agent Manager shortcut runs ddtray

Reviewer's Checklist

[ ] If known, an appropriate milestone has been selected; otherwise the Triage milestone is set.
[ ] Use the major_change label if your change either has a major impact on the code base, is impacting multiple teams or is changing important well-established internals of the Agent. This label will be use during QA to make sure each team pay extra attention to the changed behavior. For any customer facing change use a releasenote.
[ ] A release note has been added or the changelog/no-changelog label has been applied.
[ ] Changed code has automated tests for its functionality.
[ ] Adequate QA/testing plan information is provided if the qa/skip-qa label is not applied.
[ ] At least one team/.. label has been applied, indicating the team(s) that should QA this change.
[ ] If applicable, docs team has been notified or an issue has been opened on the documentation repo.
[ ] If applicable, the need-change/operator and need-change/helm labels have been applied.
[ ] If applicable, the k8s/<min-version> label, indicating the lowest Kubernetes version compatible with this feature.
[ ] If applicable, the config template has been updated.

rebasing to main for test fix


polymer is not updated properly for bean updates

_onBeanUpdate currently looks like this:
            _onBeanUpdate(bean, propertyName, newValue, oldValue) {
                RemotingController.LOGGER.trace(this.name, 'Updating bean', bean, 'property name:', propertyName, 'new value:', newValue, 'old value:', oldValue, 'initialized', this._initialized);

                if (oldValue === newValue) {
                    RemotingController.LOGGER.trace(this.name, 'Received bean update for property ', propertyName, ' without any change');
                    return;
                }

                if (this._initialized) {
                    const beanPath = this._beanToPath.get(bean);
                    if (exists(beanPath)) {
                        const currentPath = Polymer.Path.normalize([beanPath, propertyName]);
                        this.set(currentPath, newValue);

                        if ((Array.isArray(newValue) && newValue.length === 0) || newValue == null) {
                            // Will remove empty arrays or removed beans
                            calculateBeanPathForModel(this._beanToPath, this.model);
                        }
                    } else {
                        bean[propertyName] = newValue;
                    }

                } else {
                    bean[propertyName] = newValue;
                }
            }

this means if there has been an update oldValue !== newValue and we are initialized, we will check the _beanToPath map for registered paths for a given bean. If the path exists we will do an update. There are several things to note here:

bean[propertyName] = newValue will not send updates to Polymer. But this does not really matter, since these two else path are missing the notification path context anyway.
this.set(currentPath, newValue) will inform Polymer about a change, but only for "currentPath". Subproperty changes will have to be done extra.
for a model model.y.z the bean will represent x, since that is the model given to the controller. But there is nothing representing y and z. Thus if the update comes for y we may or may not find the path to y and set it to do the update. But if z is set, the only context we can give is that we set z (propertyName = z) and there is no z in model. If y has been set as part of y, Polyemer might still be able to pick the change up and react on z. But if then z changes, there is nothing that tells polymer about the change since y is still the same and did not change. Instead one of the other two paths is chosen for which there is not the right context available. To proof if my assumption is right I actually did a modified variant of calculateBeanPath to collect all the paths and then used notifyPath to make Polymer aware of these. This fixed a lot of issues in the application, but because of the point before updates on nested properties still do not work

@giftkugel ^^

I reported this to the polymer bridge but I am wondering if the issue is not already in the rico-js


Install-Module failed: Issue with converting to SemanticVersion in Install-Package

Steps to reproduce

Install 6.0.0-alpha.9 on Ubuntu system.
Register the dtlgallery.cloudapp.net internal repository.
Install-Module -Name gistprovider -Repository INT -Verbose

Expected behavior
gistprovider module installs correctly.
Actual behavior
Installation fails with error message:

Environment data

Please use one of the following options to install the modules
Option 1: Replace the PSModule.psm1 file under PowerShellGet module base with the updated file from master branch (https://github.com/PowerShell/PowerShell).
Install-Module error got resolved by adding a workaround in PowerShellGet module.
Please replace the PSModule.psm1 file under PowerShellGet module base with https://github.com/PowerShell/PowerShell/blob/master/src/Modules/Shared/PowerShellGet/PSModule.psm1.
For more details --> #1927

Option 2: Get the latest CI build
https://ci.appveyor.com/project/PowerShell/powershell/build/artifacts
    OR
https://travis-ci.org/PowerShell/PowerShell/builds/

Option 3: Use NuGet provider to install the required module to the target location.
Install-Package -Name $ModuleName -Source https://www.powershellgallery.com/api/v2/ -ProviderName NuGet -ExcludeVersion -Destination $YourTargetLocation


Problem with Laravel

Can you demo code for Laravel. I'm tried but Hello dialogs not working...

Type error: Argument 1 passed to App\Commands\HelloCommand::__construct() must be an instance of BotDialogs\Dialogs, none given, called in ...\protected\vendor\irazasyed\telegram-bot-sdk\src\Commands\CommandBus.php on line 86

Any news about this?

@eric2100
@sigaev-pro
I've forked this package, updated it to support Telegram SDK v3, Laravel 9 (now it's optional dependency), PHP8.0+.
The package is already stable, with tests and basic docs, I'm going to maintain it for a while, at least next half of the year, e.g. support Telegram SDK v4 (once it will be released, at least public beta-version), add new features.
package: https://github.com/koot-labs/telegram-bot-dialogs


Release v0.9.0

Don't try to import runtime_auth when not in runtime (#327).
DECO-2485 Handle Azure authentication when WorkspaceResourceID is provided (#328).
Add ErrorInfo to API errors (#347).
Fix eager default argument evaluation in DatabricksError (#353).
Fixed code generation of primitive types (#354).
Updated SDK to changes in OpenAPI specification (#355).

API Changes:

Changed list() method for a.account_metastore_assignments account-level service to return databricks.sdk.service.catalog.WorkspaceIdList dataclass.
Changed artifact_matchers field for databricks.sdk.service.catalog.ArtifactAllowlistInfo to databricks.sdk.service.catalog.ArtifactMatcherList dataclass.
Changed artifact_matchers field for databricks.sdk.service.catalog.SetArtifactAllowlist to databricks.sdk.service.catalog.ArtifactMatcherList dataclass.
Added databricks.sdk.service.catalog.WorkspaceId dataclass.
Changed cancel_all_runs() method for w.jobs workspace-level service with new required argument order.
Changed job_id field for databricks.sdk.service.jobs.CancelAllRuns to no longer be required.
Added all_queued_runs field for databricks.sdk.service.jobs.CancelAllRuns.
Added queue field for databricks.sdk.service.jobs.CreateJob.
Added queue field for databricks.sdk.service.jobs.JobSettings.
Added queue field for databricks.sdk.service.jobs.RunNow.
Added queue_reason field for databricks.sdk.service.jobs.RunState.
Added queue_duration field for databricks.sdk.service.jobs.RunTask.
Added queue field for databricks.sdk.service.jobs.SubmitRun.
Added databricks.sdk.service.jobs.QueueSettings dataclass.
Added a.o_auth_published_apps account-level service.
Added databricks.sdk.service.oauth2.GetPublishedAppsOutput dataclass.
Added databricks.sdk.service.oauth2.ListOAuthPublishedAppsRequest dataclass.
Added databricks.sdk.service.oauth2.PublishedAppOutput dataclass.
Added patch() method for w.serving_endpoints workspace-level service.
Added tags field for databricks.sdk.service.serving.CreateServingEndpoint.
Added tags field for databricks.sdk.service.serving.ServingEndpoint.
Added tags field for databricks.sdk.service.serving.ServingEndpointDetailed.
Added databricks.sdk.service.serving.EndpointTag dataclass.
Added databricks.sdk.service.serving.PatchServingEndpointTags dataclass.
Added w.credentials_manager workspace-level service.
Added databricks.sdk.service.settings.ExchangeToken dataclass.
Added databricks.sdk.service.settings.ExchangeTokenRequest dataclass.
Added databricks.sdk.service.settings.ExchangeTokenResponse dataclass.
Added databricks.sdk.service.settings.PartitionId dataclass.
Added databricks.sdk.service.settings.TokenType dataclass.
Changed execute_statement() method for w.statement_execution workspace-level service with new required argument order.
Added empty_result_state field for databricks.sdk.service.sql.AlertOptions.
Removed databricks.sdk.service.sql.ChunkInfo dataclass.
Changed on_wait_timeout field for databricks.sdk.service.sql.ExecuteStatementRequest to databricks.sdk.service.sql.ExecuteStatementRequestOnWaitTimeout dataclass.
Changed statement field for databricks.sdk.service.sql.ExecuteStatementRequest to be required.
Changed warehouse_id field for databricks.sdk.service.sql.ExecuteStatementRequest to be required.
Changed chunks field for databricks.sdk.service.sql.ResultManifest to databricks.sdk.service.sql.BaseChunkInfoList dataclass.
Added truncated field for databricks.sdk.service.sql.ResultManifest.
Removed databricks.sdk.service.sql.TimeoutAction dataclass.
Added databricks.sdk.service.sql.AlertOptionsEmptyResultState dataclass.
Added databricks.sdk.service.sql.BaseChunkInfo dataclass.
Added databricks.sdk.service.sql.ExecuteStatementRequestOnWaitTimeout dataclass.

OpenAPI SHA: b52a3b410976501f08f76ca0b355fb2dca876953, Date: 2023-09-15

Codecov Report
Patch coverage is 100.00% of modified lines.

Files Changed
Coverage

databricks/sdk/version.py
100.00%

:loudspeaker: Thoughts on this report? Let us know!.


[ADAM-1499] Enable reuse of broadcasted objects in region join.

Resolves #1499.

Coverage decreased (-0.3%) to 81.678% when pulling cedb700f096d2b5ebe3b097def8fa3810a63e51d on fnothaft:issues/1499-broadcast-reuse into 18191f95fed08ed952dd6d96f8dea620e1449cfc on bigdatagenomics:master.

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

@heuermh pushed https://github.com/bigdatagenomics/adam/pull/1524/commits/4dc0168bfa4369190708bdc22fc143c05d9ca06a to address review comments.

Coverage decreased (-0.3%) to 81.694% when pulling 4dc0168bfa4369190708bdc22fc143c05d9ca06a on fnothaft:issues/1499-broadcast-reuse into 18191f95fed08ed952dd6d96f8dea620e1449cfc on bigdatagenomics:master.

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

@heuermh pushed some docs clarification.

Coverage decreased (-0.3%) to 81.94% when pulling f9c35e718769463f2df7edd5f6df147370dd0d1d on fnothaft:issues/1499-broadcast-reuse into 37b971a3afb80598ffecd5275aff6c3ceaa96ef3 on bigdatagenomics:master.

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

Thank you, @fnothaft!


No SDK Installed

I just took a look at the build log for :latest in Docker Hub, and it appears that the sdk was never installed due to the license not being accepted.

Do you accept the license 'android-sdk-license-ed0d0a5b' [y/n]:
Unknown response ''.
Max number of retries exceeded. Rejecting 'android-sdk-license-ed0d0a5b'
Package Android SDK Platform-tools, revision 23.1 not installed due to rejected license 'android-sdk-license-ed0d0a5b'.
Package Android SDK Build-tools, revision 23.0.2 not installed due to rejected license 'android-sdk-license-ed0d0a5b'.
Package SDK Platform Android 6.0, API 23, revision 2 not installed due to rejected license 'android-sdk-license-ed0d0a5b'.
Installing Archives:

Yes, the problem is due to some changes in the licenses, they are not getting accepted with the current script.
I'd like to add https://github.com/journeyapps/android-sdk-installer to the image so it doesn't have to manage all of that, but I don't have the time right now.
PRs are welcomed! Otherwise I will try to add it when I can find some spare time.


graphML Data

Node data attributes are not showing up in cytoscape correctly.

It is fixed in the next version!


Add first pass at GuestArray

While this is a WIP, I thought it might be useful to initiate a draft PR so that you can monitor the progress and shout out if you find anything amiss, wrong, etc.

While addressing the comments (thanks!), I've gone ahead and implemented fmt::Debug for memory types. Note thought that the implementation is not enforced on the generic parameter T in the struct; rather, if T impls fmt::Debug then so does the memory type such as GuestPtr<'_, T>. This should simplify testing and debugging in general (I hope!).


Add manifest "start_url" field support for web URL.

Before this change "start_url" filed only support local relative URL,
after this it will also support http/https web URLs
BUG=XWALK-3656

@pozdnyakov @kenchris PTAL, thanks.

From the http://w3c.github.io/manifest/#start_url-member:
"If url is not same origin as document URL:
Issue a developer warning that the start_url needs to be same-origin as Document of the top-level browsing context.
Return a new URL whose input is document URL."
So looks like http/https web URLs cannot be there

Yes, I raised the same question to @kenchris in mail, he replied it would be OK.
@kenchris would you confirm this? Thanks.

@pozdnyakov @kenchris @seanlong
How about to use http://w3c.github.io/manifest/#scope-member

the spec is written with hosted apps in mind. We do packaged apps (and so will Microsoft for Win10). I think that we need to find out how we can support this @anssik. We need to think about how to avoid man-in-the-middle attacks ect, restriction to https etc.
I can talk to @pozdnyakov @poussa @anssik next week.

I think you mean @anssiko ;-)

@kenchris Do you have decision on this now?
@takethathe I think the "scope" is to specify the manifest working scope which is different from start URL.

Let's follow MS's lead here


Zip317 testing

I think we should mark this as superceded by #1103 .

#1103 built on and superseded this.


Nightstalker patch

Just fixes the nightstalker file name from NightStalkers to Nightstalkers

Hello, I just noticed this just now (I disabled email notification), for that I am sorry. However there's a lot of issues here in this pull request,

You chose wrong branch to pull to. You want to set pull request to hypertusNPC, not "mods" branch.
It is recommend to start changes on the latest commit, I have no idea why your pull request has one from January this year. Maybe because it is trying to merge to mods branch instead of hypertusNPC branch

Overall a simple fix I made in 2890df6aca57e9302e9688d7d4a0b35e816405b8
Again, I am sorry for not checking in because I didn't expect a mod for a porn game to get contribution.

also I might remake the branch because it is full of merge commits and is incompatible with each other, my """temporary""" solution is to make main mod a submodule and make the branches on the game sperate


Bootstrap dependency requires jQuery

Would it be possible to use https://github.com/fyockm/bootstrap-css-only in place of bootstrap? Bootstrap has jQuery as a dependency (https://github.com/twbs/bootstrap/blob/master/bower.json).

Why not just not include jquery and the bootstrap js files? If you're auto injecting the files with gulp, grunt etc you can set dependency overrides in the bower.json file. I don't really like the idea of using bootstrap-css-only as it depends on the author to keep the repo updated with the main bootstrap repo.

Fair nuff - I'll do that. Thanks!


Spelling more of the examples out

I had a bit of trouble reading the documentation. This is my suggestions
to make it more clear to others.

If my takes are wrong, then I think that the documentation needs to be even more clear because then I'm really not getting it :sweat_smile:

I have definitely seen people say that they don't understand the obsession of FP and single-character variable names. I believe in the context of examples, this can really give a lot more context to new people -- especially those assessing PureScript+Halogen for the first time.


Compilation error with mongodb

error[E0428]: the name `RUNTIME_NAME` is defined multiple times
  --> ~/.cargo/registry/src/github.com-1ecc6299db9ec823/mongodb-2.3.1/src/cmap/establish/handshake/mod.rs:25:1
   |
22 | const RUNTIME_NAME: &str = "tokio";
   | ----------------------------------- previous definition of the value `RUNTIME_NAME` here
...
25 | const RUNTIME_NAME: &str = "async-std";
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `RUNTIME_NAME` redefined here
   |
   = note: `RUNTIME_NAME` must be defined only once in the value namespace of this module

error[E0252]: the name `Interval` is defined multiple times
  --> ~/.cargo/registry/src/github.com-1ecc6299db9ec823/mongodb-2.3.1/src/runtime/mod.rs:34:5
   |
28 | use interval::Interval;
   |     ------------------ previous import of the type `Interval` here
...
34 | use tokio::time::Interval;
   |     ^^^^^^^^^^^^^^^^^^^^^ `Interval` reimported here
   |
   = note: `Interval` must be defined only once in the type namespace of this module
help: you can use `as` to change the binding name of the import
   |
34 | use tokio::time::Interval as OtherInterval;
   |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

error: `tokio-runtime` and `async-std-runtime` can't both be enabled; either disable `async-std-runtime` or set `default-features = false` in your Cargo.toml
   --> ~/.cargo/registry/src/github.com-1ecc6299db9ec823/mongodb-2.3.1/src/lib.rs:357:1
    |
357 | / compile_error!(
358 | |     "`tokio-runtime` and `async-std-runtime` can't both be enabled; either disable \
359 | |      `async-std-runtime` or set `default-features = false` in your Cargo.toml"
360 | | );
    | |_^

error[E0124]: field `resolver` is already declared
  --> ~/.cargo/registry/src/github.com-1ecc6299db9ec823/mongodb-2.3.1/src/runtime/resolver.rs:16:5
   |
13 |     resolver: trust_dns_resolver::TokioAsyncResolver,
   |     ------------------------------------------------ `resolver` first declared here
...
16 |     resolver: async_std_resolver::AsyncStdResolver,
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ field already declared

[dependencies]
axum = "0.5.16"
axum-extra = { version = "0.3.7", features = ["cookie-private", "cookie-signed"] }
axum-sessions = "0.3.1"
async-session = "3.0.0"
# async-redis-session = "0.2.2"
mongodb = { version = "2.3.1", features = ["tokio-runtime"] }
async-mongodb-session = { version = "3.0.0", features = ["tokio-runtime"] }
tokio = { version = "1.21.2", features = ["full"] }

For some reason this app crashes when trying to use MongodbSessionStore::from_client
I tried deleting the .cargo cache, but the problem still persists. Any ideas?

never mind, I just figured it out. User error