Step 3 - Conda

Fork vCDAT if you haven't already
cd ~/projects/UV-CDAT
git clone git@github.com:USERNAME/vcdat.git
cd vcdat
./scripts/setup_mac.sh

If the setup script gives a error about vcs-widgests try this other wise skip
source activate vcdat
npm link vcs-widgets
source deactivate
./scripts/setup_mac.sh
Now that you have a built ready version of vcdat we need to create a conda package and uploaded to your user account. (Notes from the white board, reminder commands are guesses) You may be able to try man conda of conda -h for command information. Our current version is alpha.17.3.X where X is the day of the month.
conda build / pack
conda publish <USERNAME> <Password> <Version>

Then Test that you can create and use that vCDAT build. There may be some vcd-widgets linking issues we need to sort out and document. I hope not. For this test it will be like Sam's example below
rm -rf ~/andaconda/env/vcdat   (where ever that is)
conda create -n vcdat -c USERNAME -c conda-forge -c uvcdat vcdat <version?>
source activate vcdat
vcdat

You'll know it worked if a browser window opens, worst case its just blue (react failed) or best case, it works!
Sam released a super-beta version of VCDAT on his personal conda channel.
conda create -n vcdat -c chaosphere2112 -c conda-forge -c uvcdat vcdat
source activate vcdat
vcdat

Where did you put the documentation on this? What is the command to download it from your channel?

Hello Matt,
The documentation is under “Developing vcdat” in the wiki.
---Sandi
From: Matthew Harris<EMAIL_ADDRESS>Reply-To: UV-CDAT/vcdat<EMAIL_ADDRESS>Date: Wednesday, April 12, 2017 at 9:02 AM
To: UV-CDAT/vcdat<EMAIL_ADDRESS>Cc: "Samuel, Sandi Laurine"<EMAIL_ADDRESS>Assign<EMAIL_ADDRESS>Subject: Re: [UV-CDAT/vcdat] Step 3 - Conda (#111)
Where did you put the documentation on this? What is the command to download it from your channel?
—
You are receiving this because you were assigned.
Reply to this email directly, view it on GitHubhttps://github.com/UV-CDAT/vcdat/issues/111#issuecomment-293626035, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AYLfiJDDRecif5tXtjtFCU-VBGESSwNnks5rvPV8gaJpZM4MrxEK.

@SandiSamuel if this is what your referring, please convert this history print out to a written doc with step by step instructions for installation.
https://github.com/UV-CDAT/vcdat/wiki/Deploying-vcdat
look at this page as an example. https://github.com/aims-group/intern/wiki/Start

Good Work 👍


code cleanup: remove unnecessary and optimize the function's parameters.

Please answer these questions before submitting pull request

Why submit this pull request?

[ ] Bug fix

[ ] New feature provided

[ ] Improve performance

Related issues

Weird~, I  will test in my local env.

You remove some throws exception, I guess there're unused imports

/run e2e

/run e2e


Checkstyle enhancements

This PR fixes #52. Additionally the 2 other commits enhance the checkstyle rules by making the NewlineAtEndOfFile rule system independent and adding a rule that complains about trailing whitespace.

Hey @lucidd, thanks for this further round of cleanups!
PR looks good to me and issue can be closed as well.

Ok, merged. Thank you!


python310Packages.msgpack: 1.0.3 -> 1.0.4

Description of changes
https://github.com/msgpack/msgpack-python/releases/tag/v1.0.4

Things done

Built on platform(s)

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

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

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

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

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

[x] Fits CONTRIBUTING.md.

I will move that into #175805...


datastore: Allow inserts not just upserts

We're processing orders using datastore and pubsub and some times we have an order followed by a cancellation and sometimes we receive duplicate orders from pubsub. We would like to ensure the cancel fails if we perform a put and the order doesn't exist and duplicated orders are rejected. So basically we want create and update not just upsert. The node.js client has this feature. We work around this using a transaction with a get on the order id but I guess it would be faster if the Go client exposed this functionality?

#872

Im facing serious contention problem because I am not able to do simple insert.  I know Key.ID upfront so Put method does Upsert instead of Insert mutation. Being able to control this behavior outside of Put would solve my problem.
Here is small API change proposal that address this issue: https://code-review.googlesource.com/#/c/gocloud/+/22970/

(Handwavy and untested.) You could introduce something like:
// Update wraps an argument to Put and causes the operation to fail if the entity does not exist.
type Update struct {
  Src interface{}
}

A user would use this like:
myOrder := Order{Canceled: true}
datastore.Put(datastore.IDKey("Order", 42, nil), datastore.Update{Src: myOrder})

Seems like that would work without breaking compatibility.

@zombiezen I like that approach :)

I'm worried about complicating Put method.
I prefer to introduce generic mutation because insert, upsert(a.k.a put), update and delete are type of mutation in Cloud Datastore API.
https://cloud.google.com/datastore/docs/reference/data/rest/v1/projects/commit?hl=en#request-body
So we may be able to batch them in single method.
datastore.MutateMulti(ctx context.Context, keys, []datastore.Mutation{datastore.Update{...}, datastore.Upsert{}, datastore.Delete{}}) ([]*Key, error)

or fluent style(like firestore)
mutations := datastore.Mutations().
    Update(key, datastore.Update{...}).
    Upsert(key, datastore.Upsert{...})
datastore.Batch(mutations)

@apstndb well I would just have create(), read(), update(), delete(), upsert() since that is simple and obvious and the user can chose what they want

I went with the mutation idea. It is the most general.  Please take a look at https://code-review.googlesource.com/#/c/gocloud/+/23170.

CL submitted.


Data wiring for RequestedAccounts collection

Wire up our RequestedAccounts collection to the ReqesetedAccounts.jsx

Check pages/ListStuff for data wiring example and might need to create Collection if it already does not exist.

Work already done by Cole in issue-126


Rename install.sh to ci-install.sh or test-install.sh

For people who want a one step install of istio, we are going to recommend "kubectl apply -k" and kustomize.
For people who want advanced install - iop ( and istioctl once this is integrated ).
I want to avoid confusion, install.sh is not intended for neither prod or demo installations.

I think we should rename the install.sh to "test-install.sh" - it is mainly used in the test pipeline.

Would this really make sense? I do not see a benefit having a script "just" for test purposes. What are we testing then at all? I would argue that if we really only want to use it for tests, we should remove it all together and use make.
But why make? IMHO, a dedicated shell script for installing is easier (to use, maintain and understand) than using make for that. Is there a benefit for the user?

...we are going to recommend "kubectl apply -k" and kustomize.

Where can I see how these calls look like? I guess this is used somewhere.

Issue moved to istio/istio #14117 via ZenHub


Dolby E audio track element contains multiple tracks

I have a file that has a Dolby E stream. The XML payload groups the two tracks into one track element.  I don't see an easy way to retrieve the fact that there are two tracks other than by string parsing the slash between the ID string.  It also makes the type order or stream kind position one less than the actual relative audio track number (i.e. the 16th track has StreamKindPos = 15).
<ID>9 / 10</ID>
Am I missing anything that would explicitly tell me that the dolby stream takes up two tracks? It seems like I have to implicitly know that a Dolby E stream is two tracks with one channel each, and re-number accordingly, in order to enumerate the tracks correctly e.g. for a transcoder.
Your thoughts on this are appreciated.
dolbye_mediainfo.xml.txt

I don't see an easy way to retrieve the fact that there are two tracks other than by string parsing the slash between the ID string. [...] Am I missing anything that would explicitly tell me that the dolby stream takes up two tracks?

There is no explicit field for that, but we could add one for tests in MediaConch.
Note that there could be more than 2 streams for an audio content e.g. a Dolby ED2 content may be on 4 streams.

It also makes the type order or stream kind position one less than the actual relative audio track number (i.e. the 16th track has StreamKindPos = 15).

This becomes complicated there, we didn't define enough StreamKindPos for such case. Initially it is the more or less internal position in the list of audio tracks i.e. a content, which was matching the position of the audio stream i.e. the physical order in the file.
And it would be more or less random, because it depends on the count of "services" in the Dolby E content e.g. if you have 3 services in the Dolby E content, StreamKindPos of the 16th stream becomes 17.
Changing the behavior now may break some scripts, so if there is a need of "stream order" per track kind (because for a stream order per file, there is already StreamOrder, which is usable with FFmpeg e.g. " -map 0:17" rather than " - map 0:a:15" in the case of your file).
Do you need the stream order per track type for your transcoder?

Thanks for the quick response.

Do you need the stream order per track type for your transcoder?

Yes, we basically rely on MediaInfo to tell us where the physical tracks are in the media, especially for audio.  The stream order would break if e.g. for some reason, there was a text track in between the audio tracks, correct?

There is no explicit field for that, but we could add one for tests in MediaConch.
Note that there could be more than 2 streams for an audio content e.g. a Dolby ED2 content may be on 4 streams.

Yes, for now I am just hard coding. The fact that I know Dolby E takes up two channels but it would be much better for media info to report that.  But in addition to the number of channels, we really need a way to know how many tracks make up the stream e.g. for Dolby E is it one track two channels or two tracks one channel each.

The stream order would break if e.g. for some reason, there was a text track in between the audio tracks, correct?

The StreamOrder field is for all streams/tracks, so if there is a track not audio between the audio tracks, it will increment the field.
Your encoder has not possibility to use StreamOrder ( -map 0:17 with FFmpeg) and needs a type (video, audio, text...) specific  field ( - map 0:a:15  with FFmpeg), right?

But in addition to the number of channels, we really need a way to know how many tracks make up the stream e.g. for Dolby E is it one track two channels or two tracks one channel each.

You can compute if by analyzing the ID, the ID is in the form "A / B-C", with A & B the track ID so count of stream for this track is count of " / " + 1, and C is the position of this track in the stream si count of tracks in a stream is max of C + 1.
But I guess that it is better if I show them directly in the API...

I am basically working on exactly the above as a workaround but yes, in a future release, it would be good to have MediaInfo enumerate all physical tracks in the file in some universal way.

Your encoder has not possibility to use StreamOrder ( -map 0:17 with FFmpeg) and needs a type (video, audio, text...) specific field ( - map 0:a:15 with FFmpeg), right?

Unfortunately, we deal with several encoders both free and commercial, some of which support channel numbers, some support absolute tracks, and some only support relative track numbers.

@plondino
Currently we have that:
StreamKindID: Position of the logical track (service) of this track kind. Counting starts at 0
StreamOrder: Position of the logical track (service) whatever is the track kind. Counting starts at 0
This matches e.g FFmpeg map option, either  -map 0:[StreamOrder] or  -map 0:a:[StreamKindID] when there is only one logical track (service) per physical track (no span over several physical tracks).
Proposal of addition in order to handle the cases with several services per phsyical track and/or services spanned over several physical tracks :
PhysicalOrder: Position(s) of the physical track(s) of this track kind. Counting starts at 0
PhysicalKindOrder: Position(s) of the physical track(s) whatever is the track kind. Counting starts at 0
In practice new MediaInfo fields would be same as old ones when there is only one physical track and one service per stream.
For all MediaInfo fields (pos, order, id, ...), a generic rule (can not easily be changed now due to historic reasons and changing that now would break compatibility with lot of scripts with already implemented MediaInfo fields, and we need to think more for another form in order to be supported for every output i.e. text output, XML, JSON, ...  and having a different form depending on the field would be even more complex to explain) for complex forms:
The global value is sub values separated by "-", each sub value represent a level in the content, and is itself separated by " / " if a logical track (service) is spanned over several physical tracks.
Example: "0 / 1-2" for PhysicalOrder means that the logical track is as position 2 in the stream and that this stream is spanned over physical tracks 0 and 1; for Dolby E it would be the MediaInfo track shows metadata of the 3rd Dolby E program of a Dolby E stream spanned over physical tracks 0 and 1.
This leads for e.g. 1 video + 1 Dolby E stream having 3 programs + 1 Dolby E stream having 1 program to 5 MediaInfo tracks (1 video and 4 audio) with the following values:
StreamKindID: "0", "0", "0", "0", "1" (no Dolby E program because it was not implemented)
StreamOrder: "0", "1-0", "1-1", "1-2", "2-0", "2-1", "2-2" (no Dolby E program because it was not implemented)
PhysicalOrder: "0", "0 / 1-0", "0 / 1-1", "0 / 1-2", "2 / 3" (no Dolby E program if only 1 program)
PhysicalKindOrder: "0", "1 / 2-0", "1 / 2-1", "1 / 2-2", "3 / 4" (no Dolby E program if only 1 program)
Note: I am hesitating to add the Dolby E program order, maybe not useful, or to write it even if there is only 1 Dolby E program.
If you "unpack" (erase from the dash, split values by " / ") the values this matches e.g FFmpeg map option, either  -map 0:[PhysicalOrder first value] -map 0:[PhysicalOrder second value] or  -map 0:a:[PhysicalKindOrder first value] -map 0:a:[PhysicalKindOrder second value] when there is only one logical track (service) per physical track (no span over several physical tracks).
Note that you must take care that is is not always 2 physical tracks, Dolby ED2 may span over up to 8 physical tracks.
Would it fit all your needs?

some of which support channel numbers

What is the definition of "channel" here, especially for Dolby E? a non Dolby E aware decoder sees 2 PCM channels when a Dolby E aware decoder sees between 1 and 8 channels.
Whatever is the definition, such position can be retrieved from other MediaInfo fields.

I think the addition of a PhysicalKind and PhysicalKindOrder would solve my problem, if you needed to keep the StreamOrder and StreamKindID the same.   Should we call it PhysicalKindID to match StreamKindID?
I have a few questions though about the current state - in the examples that I have, StreamOrder, and StreamKindID are integers which don't use the subkind dash notation you have above - are you planning to change the semantics of StreamOrder / StreamKindID as in your examples here?
StreamOrder: "0", "1-0", "1-1", "1-2", "2-0", "2-1", "2-2" (no Dolby E program because it was not implemented)
The main issue I have is that the those fields increase monotonically so they throw off the ordering of actual tracks in the file, and I have to iterate and parse and renumber all the tracks manually using the ID field to refer to a track by its position in any system that doesn't know how to decode Dolby E - I have no access to the track position on the track itself.
Just to make sure I understand, I would expect the following with the existing usage of StreamOrder and StreamKind plus the new PhysicalOrder and PhysicalKindOrder
Track 1: Video
Track 2: PCM
Track 3: Dolby E (Track 1) Program 0
Track 4: Dolby E (Track 2) Program 0
Track 5: PCM
ID: 1, 2, 3 / 4, 5
StreamKindID: 0, 0, 1, 2
StreamOrder: 0, 1, 2, 3
PhysicalOrder: 0, 1, 2 / 3, 4
PhysicalKindOrder: 0, 0, 1 / 2, 3
If I had two Dolby E tracks with 3 programs it would be:
Track 1: Video
Track 2: PCM
Track 3: Dolby E (Track 1) Program 0, Program 1, Program 2
Track 4: Dolby E (Track 2) Program 0, Program 1, Program 2
Track 5: PCM
ID: 1, 2, 3 / 4-1, 3 / 4-2, 5
StreamKindID: 0, 0, 1, 2, 3, 4
StreamOrder: 0, 1, 2, 3, 4, 5
PhysicalOrder: 0, 1, 2 / 3-0, 2 / 3-1, 2 / 3-2, 4
PhysicalKindOrder: 0, 0, 1 / 2-0, 1 / 2-1, 1 / 2-2, 3

The new fields could also be useful for embedded text tracks, where even though there are multiple streams, they all live in the same MXF track - right now this has to be parsed out of the ID field.

The main issue I have is that the those fields increase monotonically so they throw off the ordering of actual tracks in the file, and I have to iterate and parse and renumber all the tracks manually using the ID field to refer to a track by its position in any system that doesn't know how to decode Dolby E - I have no access to the track position on the track itself.

Issue is that a tool aware about Dolby E would merge the physical tracks and would show 1 logical track only for 2 physical tracks, when a tool not aware of Dolby E would show 2 logical tracks only for 2 physical tracks, so my guess is that if you don't need StreamOrder as it is expected, someone else could need it, or you in the future depending of the tools you try to configure. So better to have both.
Let's see, I implement this way and we see if it is good for all your use cases.

The new fields could also be useful for embedded text tracks, where even though there are multiple streams, they all live in the same physical MXF or QuickTime track - right now this has to be parsed out of the ID field.

Right, but for another issue ticket :-p.

@plondino It looks I overreacted about this issue, and that StreamOrder is enough.
Also there is not actual need of the second part (after "-") up to now.
I cleaned up StreamOrder and added the 2nd stream to the field when it is Dolby E.
For the example above, it becomes:
StreamOrder: 0, 1, 2 / 3, 2 / 3, 2 / 3, 4
Let me know if you miss something after such update (except the ANC StreamOrder, another topic and will be fixed too soon).

Development snapshots have this patch.


Unify all open_...() method into open()

Please Describe The Problem To Be Solved
Feodor said in review of my pull (#3172) that it'll be great if will there is open() method. I'm requesting to add this in my future pull and requesting realisation. f. e.
page.open(page.drawer)
# or
drawer = ...
page.open(drawer) # if drawer isn't in page it will be appended to this page

Also it'll great that will there is close() method
page.close(page.drawer)

if drawer isn't in page it will be appended to this page

What do you mean?


Oscillator not found in 5.2.0

-Created a brand new project in Xcode Version 12.5.1
-Added latest Audiokit 5.2.0 via the swift packages manager
creating a Oscillator() gave error saying its not found.
I tried this multiple times.
I tried adding AudioKit 5.1.0 instead and Oscillator() works fine.
Did I miss a change or is this a bug?

Ignore plz missed the separation note


With this patch, such a situation will instead log an error message with the exit code and return the command output regardless:
21:27:52 ERROR - _run_vagrant_command: Command ['/usr/bin/vagrant', 'ssh', '--command', 'sudo salt-call --local state.apply foo'] returned with exit code 1
< error output from my salt-call example >

The "ack / ack / ack (pull_request_target)" check complains about a missing label, but it seems I am not allowed to add one myself.

Thanks @tacerus!

That was fast, thank you! :-)


fix: adds hostname length check

PR Checklist

[ ] Unit Tests have been added for new changes
[ ] API tests have been updated if applicable
[ ] All commented code has been removed
[ ] If you've added a dependency, you've ensured license is compatible with Apache 2.0 and clearly outlined the added dependency.

What are you changing?

Anything the reviewer should know when reviewing this PR?
If the there are associated PRs in other repositories, please link them here (i.e. open-amt-cloud-toolkit/repo#365 )

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

GitHub release
v2.13.7

Your semantic-release bot :package::rocket:


Add More transforms

Add the most important other transforms as extension methods.

splitting this issue in mutliples sub issues


GestureBinding resampling is broken on Pixel 1

b/173978009
GestureBinding resampling is kind of broken on Pixel1. (This is only observed on Pixel 1 so far).
When tapping quickly, it works fine.
When tapping slightly slowly, with maybe a fat finger, the tap event isn't registered/handled.
To reproduce just enable resampling on hello flutter.
When tapping, I see these events:
a) PointerDownEvent
b) PointerMoveEvent(s) (slight movements)
c) PointerUpEvent
My guess is before (c) happens, it's interpreting (a) and (b) as a drag/fling.

@liyuqian FYI

It would be useful to know what events you see when this goes wrong. Can you capture the events and post them here? Ideally we capture the events prior to resampling so we can use that to construct a test case.
When resampling is on, the position of the down event is resampled using previous add/hover events and future move/up events. It's possible that this results in a more significant movement that is detected as a drag on some devices but I'd need to understand that better before I can determine the correct fix.

Do you have a Pixel 1 device? If not, I strongly recommend you acquire one (and expense it) otherwise it would not be possible to test the fix. If yes, you should be able to reproduce this easily since any simple button seems to exhibit the problem.
In the meantime, I will ask this question on the bug and see if we can get a response.

As the underlying buganizer issue is now fixed, I am closing this issue. Please file a new issue with repro steps against the latest version of Flutter if incorrect GestureBinding behavior is encountered again.


I can not access the md-select value

In the codepen example, SELECT, I can not access the content returned from the md-select multi-selection in the HTML.
Please show me how to access the multiple content selected in the HTML part.

You're creating a wrapper component. You should use v-model for that.
Please follow the documentation for custom components of Vue.js.


Don't allow the snake to directly go back on itself

Currently, the snake is able to go backwards on itself on the same line, resulting in a death where the user can only guess that they have missed an input and this results in a frustrating experience. This feature proposal could track the vector for the previous segment so that any input from the head can be ignored if the vector is the opposite.

This could be argued as a nerf to the game which some people may express a large dislike to. Can test this one out though.


A work-in-progress new router for Angular 1.3 or 1.4 ?

quote:"A work-in-progress new router for Angular 1.3 and 2.0, written with AtScript."
The github title says Angular 1.4.
What is correct?

It currently works with 1.3+, but router 1.0 will be released alongside Angular 1.4, at which point I'll bump the requirement for the router to Angular 1.4.


Audit handling of hashes in the lockfile

Audit our handling of hashes. Some hashes are generated. Some are retrieved from registries. Sometimes hashes should not be used (path dependencies) where as sometimes they should (registry dependencies).
I think there are three main issues here:
First is that hashes come from two places: one place is the registry itself. Another place is by hashes we compute ourselves. Which hashes do we use in the lock file? Does it matter? Which should we use?
Second is that we often have multiple hashes available for any given artifact. Do we need to store all of them in the lock file? Or can we just pick the "best" one?
Third is whether we are doing any hash checking. I don't think we are today. But we probably should be.

I can answer all of these questions (regarding what we do today) if helpful.

Do you expect that we have to change the lockfile (schema) for this?

I think we need to make hashes optional for registry-based distributions. I can't remember if it's optional today.

If we make them optional in the lock file, then we won't be able to do hash checking. Are we okay with that?

We can still hash-check the distributions for which we do have hashes.

First is that hashes come from two places: one place is the registry itself. Another place is by hashes we compute ourselves. Which hashes do we use in the lock file? Does it matter? Which should we use?

I think we should follow the strategy we already use today: if from the registry, we use the registry-provided hashes; if from a direct URL, we compute the hash ourselves. If the registry lacks hashes, we don't include any hashes (and warn the user).

Second is that we often have multiple hashes available for any given artifact. Do we need to store all of them in the lock file? Or can we just pick the "best" one?

I think we should just store the "best" one to save space. I'll verify that we're doing this today.

Third is whether we are doing any hash checking. I don't think we are today. But we probably should be.

We aren't. I think we should add "verify any hashes that exist, but don't require them" (so that we can still interoperate with registries that lack hashes).


PropertyFieldColorPicker Palette Icon alignment Issue

Category

[ ] Bug

Version
1.6.0
Browser
All major
Expected
Fix the alignment issue
Observed Behavior
The color palette icon is moving towards right on SharePoint pages with webpart zone but the same works as expected in workbench when we debug
Workbench page output

Sharepoint page output

Note: I do not have any other customization or webparts in this page
Steps to Reproduce

Create a SPFx webpart
Install sp-dev-fx-property-controls package as mentioned in https://sharepoint.github.io/sp-dev-fx-property-controls/
Add PropertyFieldColorPicker property
Execute the app using gulp serve
Open the local workbench page in browser and add the app
Edit the PropertyFieldColorPicker property
Notice the icon alignment issue
Package the app the check the same from a Sharepoint page with webpart zones.

Thanks!

@estruyf Can you reproduce this issue? If so, can we do something to fix this issue temporarily?

Please, create a new issues if the bug is still present.


Update Outdated Hono Docs for Pages

Summary
I updated the documentation for using Hono on Cloudflare Pages. The current documentation is outdated since Hono (for CF Pages) now uses Vite. C3 is also made for Hono on CF Workers and requires a lot of manual setup on the user's part to get it working with Pages, which is why create-hono is used here.
Discussions about this has also been made here: https://github.com/honojs/hono/issues/838
Please review @yusukebe
Documentation checklist

[x] The documentation style guide has been adhered to.
[x] If a larger change - such as adding a new page- an issue has been opened in relation to any incorrect or out of date information that this PR fixes.
[x] Files which have changed name or location have been allocated redirects.

Closes #15785

Hi @NicoPlyley thanks so much for the PR 🙂 🙏
We've discussed it internally and we agree that we ideally want to recommend the use of the use of the create cloudflare CLI (C3).
Your PR is instead suggesting the direct use to the create hono CLI which is not really the direction we want to take 😢
We've discussed this and instead of updating the hono guide in the way suggested in the PR we'd want to:

update the hono entry under Website or web app (to use the hono pages template)
add a new API hono entry (to use the hono workers template)
update this guide accordingly (with the web app/pages case, since this guide is pages specific)

would you like to help in the above and update this PR? If so I would love to help if you want/need 🙂
otherwise you can leave this with us and we'll take care of it, whatever you prefer 🙂
(in any case, thank you so very much again for the PR! it's truly appreciated! sorry for the pushback 🥲)

Hi @dario-piotrowicz,
I completely understand, I was following the recommendation of @yusukebe which you can see our discussion of using C3 vs create Hono in the issue I linked above.
Either way I'd be happy to help, it sounds like your recommend adding another template to C3 for using Hono on Pages, is that correct? And then update this existing PR accordingly?
Please let me know if I'm understanding this right and I will submit a PR accordingly!

Hi @NicoPlyley
Thank you for the PR! As @dario-piotrowicz said, we've discussed it internally and have some plans to improve the C3. So, sorry for changing what I said the first time in the discussion.
@dario-piotrowicz may be able to show the details later, but in our current plan, C3 will have an Hono section in the same layer as Website or web app, and you can choose a template from both Workers and Pages templates. This will be great for Hono!
I think this is good except for the create-hono part. I like the simplicity of it!

Hi @dario-piotrowicz,
I completely understand, I was following the recommendation of @yusukebe which you can see our discussion of using C3 vs create Hono in the issue I linked above.

Hey @NicoPlyley thanks a lot for your understanding, sorry I did check the issue you shared, I am sorry about all the back and forth regarding this! 🙇 I really appreciate your patience and willingness to update things ❤ 🙏

Either way I'd be happy to help, it sounds like your recommend adding another template to C3 for using Hono on Pages, is that correct? And then update this existing PR accordingly?

What we want to end up with in C3 is something like the following:
* "Hello World" Worker
* "Hello World" Worker (Python)
* Website or web app
  * Analog
  * Astro
  * ...
  * Hono => Hono's Pages template (*1)
* Hono API Worker (name TBD)=> Hono's Workers template (*2)
* ...

So this means that we need to:

update the C3 hono Website or web app entry (*1) here
update this PR/guide accordingly
afterwords (or in parallel, or whatever we prefer) we can add the new Hono API Worker entry (*2) (this won't be part of the PR/guide)

Please let me know if I'm understanding this right and I will submit a PR accordingly!

hopefully my message clarify things, we don't want to add anther hono on pages template, but update the current hono on pages one and add a hono on workers one 🙂
Thanks so very much again! if there's anything I can help with of clarify I'm always here to help 😄

So, I've looked into this a bit more, and to my understanding, @dario-piotrowicz, snippets cannot be added to the file because the loadSnippets function in codemod only supports .ts and .js extensions, where Hono is using .tsx.
The only thing the snippets add is the Bindings, which are auto-generated. So, I suggest just adding this to the Hono template directly or not adding the snippets at all. Let me know your thoughts, @yusukebe.

Hi @NicoPlyley !
Ideally, for Hono's Pages template, C3 would also update wrangler.toml, generate a type definition file, and add the cf-typegen command to package.json. We can add the same things to the template on the Hono side, but if the workers-sdk side makes changes to C3, it will not be able to keep up with them.
@dario-piotrowicz (and @jculvey ?)
If we add Hono's Pages template to C3, the current C3 implementation doesn't seem to be able to update wrangler.toml or add the typegen command, for that template. We have to discuss it somewhere!

@yusukebe I want to clarify we can still update/add the wrangler.toml and add the typegen command as that is separate from how snippets work. Just adding the following in the index.tsx:
type Bindings = {
  [key in keyof CloudflareBindings]: CloudflareBindings[key]
}

const app = new Hono<{ Bindings: Bindings }>()

Is not possible since loadSnippets does not appear to allow .jsx extensions, at least that's how I am understanding it.

@NicoPlyley Sorry for the late reply! 🙇
Do you need to use loadSnippets? could the file not be included as a template?
For example like so:
https://github.com/cloudflare/workers-sdk/blob/c3e19b790bb597b78e0109a162ca8049b5eaf973/packages/create-cloudflare/templates/hono/c3.ts#L62-L64
You could also have different variants (for example js and ts) as you can see here for example: https://github.com/cloudflare/workers-sdk/blob/c3e19b790bb597b78e0109a162ca8049b5eaf973/packages/create-cloudflare/templates/next/c3.ts#L182-L212
Would this not work for Hono?

Also since we discussed this issue the C3 UI has actually been updated:

So I am guessing that now we would want the Pages hono app to be under Framework Starter and the Api hono one to be under Demo application... I believe... I'd be keen to see what @edmundhung thinks

👋Hi there, we’re going to close this PR. All PRs prior to August 12 need to be reworked due to the platform migration to Astro.


Great work, do you have any plans to release the code or dataset?

Before Sep. :)
@taoranyi is cleaning the code now. The whole codebase is a little....heavy


Use react hook for authentication status and Blockstack session

Description
With #216 the authentication status and other functionality from the Blockstack SDK is available in function components through the useBlockstack() hook from the react-blockstack library, as in:
import { useBlockstack } from 'react-blockstack';

function SignOutButton (props) {
  const { authenticated, userSession, signOut } = useBlockstack();
  return ( <button disabled={!authenticated} onClick={signOut}>SignOut</button>)
}

This should supersede passing down authentication status through the authed={authenticated} prop.

Just to clarify on what this is asking for, do you want all of the components using authed={authenticated} to be changed to use the useBlockStack() hook?

do you want all of the components using authed={authenticated} to be changed to use the useBlockStack() hook?

Yes. Either in one swoop, or updated as they're edited for other reasons. New components should use the hook rather than pass down the values.

so do you suggest  using a button component like this:
`import { useBlockstack } from 'react-blockstack'
function Auth () {
const { signIn, signOut } = useBlockstack()
return (
<button disabled={ !signIn && !signOut }
onClick={ signIn || signOut }>
{ signIn ? "Sign In" : signOut ? "Sign Out" : "..." }

)
}`

Can I take this?

Can I take this?

All you, I'll assign you 👍


Added a note to avoid adding classpath arguments to "customArgs"

I also fixed a typo, made a "NOTE" callout formatted more consistently with others, and removed some trailing whitespace.

fair enough ;-)


visualize the A* plan making process with graphviz

This changelist added a T4 template (PlanDebugger.tt) and modified the AStar.cs to allow output of the A* planning process into log files, which can be used by Graphviz to generate a picture showing the plan making process.
Only the agent with agent.debugPlan = true would trigger this logging behaviour;
Some extra modifications to the interfaces are added to extract the info needed by the logs;
The generated picture would look like the example below.

The picture might become huge when the actions increase, it might be a useful improvement to add switches to turn off some info output, hence reduce the final picture size.

Hey TMPxyz, I'll be doing these changes myself on another branch, thanks for your pull request! 😄


Issue with ChatQnA service after recent commit #346

It appears that an issue has arisen in commit #346 of the opea/chatqna image. Upon attempting to build the image locally and set up the ChatQnA megaservice, interactions with the LLM via http://ip:5173 fail to fetch :8888/v1/chatqna
I try to build opea/chatqna image locally
git clone https://github.com/opea-project/GenAIExamples.git
cd GenAIExamples/ChatQnA/docker

# Build MegaService Docker Image
docker build --no-cache -t opea/chatqna:latest --build-arg https_proxy=$https_proxy --build-arg http_proxy=$http_proxy -f Dockerfile .

And set up the ChatQnA megaservice with the following commands
cd GenAIExamples/ChatQnA/docker/xeon/
docker compose -f compose.yaml up -d

When I try to interact with LLM via http://ip:5173 it will fail to fetch :8888/v1/chatqna

The error logs from the opea/chatqna:latest container reveal an IndexError, suggesting that the list index is out of range. This occurs in the execute method of the orchestrator, specifically when attempting to access the first element of the 'downstream' list.
[2024-07-29 10:15:15,876] [    INFO] - CORS is enabled.
[2024-07-29 10:15:15,878] [    INFO] - Setting up HTTP server
[2024-07-29 10:15:15,878] [    INFO] - Uvicorn server setup on port 8888
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://<IP_ADDRESS>:8888 (Press CTRL+C to quit)
[2024-07-29 10:15:15,899] [    INFO] - HTTP server setup successful
ERROR:    Exception in ASGI application
Traceback (most recent call last):
  File "/usr/local/lib/python3.11/site-packages/uvicorn/protocols/http/httptools_impl.py", line 399, in run_asgi
    result = await app(  # type: ignore[func-returns-value]
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/uvicorn/middleware/proxy_headers.py", line 70, in __call__
    return await self.app(scope, receive, send)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/fastapi/applications.py", line 1054, in __call__
    await super().__call__(scope, receive, send)
  File "/usr/local/lib/python3.11/site-packages/starlette/applications.py", line 123, in __call__
    await self.middleware_stack(scope, receive, send)
  File "/usr/local/lib/python3.11/site-packages/starlette/middleware/errors.py", line 186, in __call__
    raise exc
  File "/usr/local/lib/python3.11/site-packages/starlette/middleware/errors.py", line 164, in __call__
    await self.app(scope, receive, _send)
  File "/usr/local/lib/python3.11/site-packages/prometheus_fastapi_instrumentator/middleware.py", line 174, in __call__
    raise exc
  File "/usr/local/lib/python3.11/site-packages/prometheus_fastapi_instrumentator/middleware.py", line 172, in __call__
    await self.app(scope, receive, send_wrapper)
  File "/usr/local/lib/python3.11/site-packages/starlette/middleware/cors.py", line 93, in __call__
    await self.simple_response(scope, receive, send, request_headers=headers)
  File "/usr/local/lib/python3.11/site-packages/starlette/middleware/cors.py", line 148, in simple_response
    await self.app(scope, receive, send)
  File "/usr/local/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 65, in __call__
    await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
  File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 64, in wrapped_app
    raise exc
  File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
    await app(scope, receive, sender)
  File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 756, in __call__
    await self.middleware_stack(scope, receive, send)
  File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 776, in app
    await route.handle(scope, receive, send)
  File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 297, in handle
    await self.app(scope, receive, send)
  File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 77, in app
    await wrap_app_handling_exceptions(app, request)(scope, receive, send)
  File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 64, in wrapped_app
    raise exc
  File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
    await app(scope, receive, sender)
  File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 72, in app
    response = await func(request)
               ^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 278, in app
    raw_response = await run_endpoint_function(
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 191, in run_endpoint_function
    return await dependant.call(**values)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/user/GenAIComps/comps/cores/mega/gateway.py", line 122, in handle_request
    result_dict, runtime_graph = await self.megaservice.schedule(
                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/user/GenAIComps/comps/cores/mega/orchestrator.py", line 58, in schedule
    response, node = await done_task
                     ^^^^^^^^^^^^^^^
  File "/home/user/GenAIComps/comps/cores/mega/orchestrator.py", line 130, in execute
    endpoint = self.services[downstream[0]].endpoint_path
                             ~~~~~~~~~~^^^
IndexError: list index out of range
ERROR:    Exception in ASGI application
Traceback (most recent call last):
  File "/usr/local/lib/python3.11/site-packages/uvicorn/protocols/http/httptools_impl.py", line 399, in run_asgi
    result = await app(  # type: ignore[func-returns-value]
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/uvicorn/middleware/proxy_headers.py", line 70, in __call__
    return await self.app(scope, receive, send)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/fastapi/applications.py", line 1054, in __call__
    await super().__call__(scope, receive, send)
  File "/usr/local/lib/python3.11/site-packages/starlette/applications.py", line 123, in __call__
    await self.middleware_stack(scope, receive, send)
  File "/usr/local/lib/python3.11/site-packages/starlette/middleware/errors.py", line 186, in __call__
    raise exc
  File "/usr/local/lib/python3.11/site-packages/starlette/middleware/errors.py", line 164, in __call__
    await self.app(scope, receive, _send)
  File "/usr/local/lib/python3.11/site-packages/prometheus_fastapi_instrumentator/middleware.py", line 174, in __call__
    raise exc
  File "/usr/local/lib/python3.11/site-packages/prometheus_fastapi_instrumentator/middleware.py", line 172, in __call__
    await self.app(scope, receive, send_wrapper)
  File "/usr/local/lib/python3.11/site-packages/starlette/middleware/cors.py", line 85, in __call__
    await self.app(scope, receive, send)
  File "/usr/local/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 65, in __call__
    await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
  File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 64, in wrapped_app
    raise exc
  File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
    await app(scope, receive, sender)
  File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 756, in __call__
    await self.middleware_stack(scope, receive, send)
  File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 776, in app
    await route.handle(scope, receive, send)
  File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 297, in handle
    await self.app(scope, receive, send)
  File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 77, in app
    await wrap_app_handling_exceptions(app, request)(scope, receive, send)
  File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 64, in wrapped_app
    raise exc
  File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
    await app(scope, receive, sender)
  File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 72, in app
    response = await func(request)
               ^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 278, in app
    raw_response = await run_endpoint_function(
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 191, in run_endpoint_function
    return await dependant.call(**values)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/user/GenAIComps/comps/cores/mega/gateway.py", line 122, in handle_request
    result_dict, runtime_graph = await self.megaservice.schedule(
                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/user/GenAIComps/comps/cores/mega/orchestrator.py", line 58, in schedule
    response, node = await done_task
                     ^^^^^^^^^^^^^^^
  File "/home/user/GenAIComps/comps/cores/mega/orchestrator.py", line 130, in execute
    endpoint = self.services[downstream[0]].endpoint_path
                             ~~~~~~~~~~^^^
IndexError: list index out of range

My temporary solution
Switch back to previous commit when building the image
https://github.com/opea-project/GenAIExamples/blob/main/ChatQnA/docker/Dockerfile

As a temporary solution, reverting to the previous commit when building the image resolves the issue. This indicates that commit #346 is likely the source of the error.

Thanks for bring up this issues. We will look into this issue.

Hello, were you able to get expected outputs when running mega service on your host env?
curl http://${host_ip}:8888/v1/chatqna -H "Content-Type: application/json" -d '{
"messages": "What is the revenue of Nike in 2023?"
}'

It was fixed after commit #364 . Thanks.


Decide JSON Format

My idea is as follows.
{
    "sentence": [
        [1,13], [15,24],
    ],
    "pos": [
        [1,1,"NNP"], [3,6,"VBP"], [8,8,"DT"], [10,13,"NN"],
        [15,16,"NNP"], [18,19,"VBP"], [21,24,"JJ"],
    ],
    "entity": [
        [1,6,"PERSON"], [15,19,"LOCATION"],
    ],
    "trans-ja": [
        "私はペンを持っています。",
        "彼は親切です。"
    ],
    "trans_en": [
        "I have a pen.",
        "He is kind",
    ],
    "trans_cn": [
        "我有一支笔。",
        "他人很好",
    ],
}

Each span indicates the start and end range indexes.
I prefer this style because it is compact, extensible, and easy to create for server-side.

I was suggested to use an another format as follows:
	  "list_sentence":
    	[
    	  {
    	    "ne": {
    	      "name": "PERSON",
    	    },
    	    "wiki": "Darth Vader",
    	    "items": [
    	        {
    	          "pos": "NNP",
    	          "name": "Darth",
    	        },
    	        {
    	          "pos": "NNP",
    	          "name": "Vador",
    	        }
    	      ]
    	  },
    	  {
    	    "ne": {
    	      "name": "PERSON",
    	    },
    	    "wiki": "",
    	    "items": [
    	        {
    	          "pos": "",
    	          "name": ",",
    	        }
    	      ]
    	  },
    	  {
    	    "ne": {
    	      "name": "",
    	    },
    	    "wiki": "",
    	    "items": [
    	        {
    	          "pos": "RB",
    	          "name": "also",
    	        }
    	      ]
    	  },
    	  {
    	    "ne": {
    	      "name": "",
    	    },
    	    "wiki": "",
    	    "items": [
    	        {
    	          "pos": "RB",
    	          "name": "known",
    	        }
    	      ]
    	  },
    	  {
    	    "ne": {
    	      "name": "",
    	    },
    	    "wiki": "",
    	    "items": [
    	        {
    	          "pos": "IN",
    	          "name": "as",
    	        }
    	      ]
    	  },
    	  {
    	    "ne": {
    	      "name": "PERSON",
    	    },
    	    "wiki": "Darth Vader",
    	    "items": [
    	        {
    	          "pos": "NNP",
    	          "name": "Anakin",
    	        },
    	        {
    	          "pos": "NNP",
    	          "name": "Skywalker",
    	        }
    	      ]
    	  },
    	  {
    	    "ne": {
    	      "name": "",
    	    },
    	    "wiki": "",
    	    "items": [
    	        {
    	          "pos": "VBZ",
    	          "name": "is",
    	        }
    	      ]
    	  },
    	  {
    	    "ne": {
    	      "name": "",
    	    },
    	    "wiki": "",
    	    "items": [
    	        {
    	          "pos": "DT",
    	          "name": "a",
    	        }
    	      ]
    	  },
    	  {
    	    "ne": {
    	      "name": "",
    	    },
    	    "wiki": "",
    	    "items": [
    	        {
    	          "pos": "JJ",
    	          "name": "fictional",
    	        }
    	      ]
    	  },
    	  {
    	    "ne": {
    	      "name": "",
    	    },
    	    "wiki": "",
    	    "items": [
    	        {
    	          "pos": "NN",
    	          "name": "character",
    	        }
    	      ]
    	  },
    	  {
    	    "ne": {
    	      "name": "",
    	    },
    	    "wiki": "",
    	    "items": [
    	        {
    	          "pos": ".",
    	          "name": ".",
    	        }
    	      ]
    	  }
    	],
  	  "trans_en":"Darth Vador, also known as Anakin Skywalker is a fictional character.",
  	  "trans_ja":"",
      "trans_cn":""

My question:
The spans of pos, ne, and wiki might be overlapped.
How would you handle such a case?
For example,

pos: "Darth"
ne: "Darth Vador"
wiki: "Vador, also known"
could be possible.

As indicated in the Jukai_NLP_UI-en.pdf, we need to return ne, wiki and pos from a sentence. In your idea, it will only detect pos and entity (I am not sure whether entity is similar to ne, but if [1,6,"PERSON"] then "I have" = PERSON, which is not really making sense for me).
We suggest that we should detect all ne, wiki, pos at the same time. As shown in the file, they could be overlapped. So I dont really get your question here :)

I see.
The range: [1,6,"PERSON"] is just an example.
In my example, only "pos" and "entity" are contained, but "wiki" could be contained as well.
Here is what I want to say:
"Overlapped, not included":

ne: "Darth Vador"
wiki: "Vador, also known"

"Overlapped, included":

"ne": "Darth Vador"
"wiki": "Darth"

I want to know how to handle the case of "overlapped, not included"?

As you can see in my example, ne is detected as "Darth Vador" and wiki is derived from ne. They will be wrapped in the same way so in most case they will be the same. I could not think of any other cases where ne is different than wiki

The ne analyzer and wiki analyzer are independent, so it happens.
Could you tell me what exactly is the problem of my JSON format? I could fix it.

I think with your JSON format, it will be time-consuming for server to be implement (compared to our format, it has to take out the start and end range indexes) and the UI needs to modify to be compatible with your JSON format.
If you are keen on working on your format, could you please provide us the description, i.e. an example of JSON format for a full sentence?

Thank you for your comment.
I'll change the format. Let me think about it.

I changed the format as follows:
[
  {
    // first sentence
    text: "Darth Vador, also known as Anakin Skywalker is a fictional character.",
    anno: [
      ["wiki", 0, 10, "Darth Vador"],
      ["ne", 0, 1, "PERSON"],
      ["pos", 0, 0, "NNP"].
    ],
    trans-ja: "ダースベイダー（アナキンスカイウォーカーとしても知られている）は，架空の人物だ．",
    trans-cn: "达思Vador，也被称为天行者阿纳金是一个虚构的人物。",
  },
  {
    // second sentence
    text: "He is originally a good person, but",
    anno: [
      ["pos", 0, 0, "PRP"],
    ]
  },
]

The span range is start and end character indexes.
Following the above json format, we're developing an independent react-based visualization library: react-nlp, which is an alternative to brat.
react-nlp is a general framework, and independent from any specific annotation layers such as "pos", "ne" and "wiki". It just visualizes input texts and span annotations.
My plan is to develop react-nlp further, and call it from jukainlp-web.
If possible, could you look at the react-nlp and refine functions and styles (css, etc.), as you had done to jukainlp-web before?
You can run a demo of react-nlp. See the section of "Run Example".

Pull-request to react-nlp is very welcome!

I checked the above sentence, and seems like it detects wrong entity.
Also for react-nlp, is it possible for me to change everywhere needed? I am afraid that if I change just functions and styles, it might not work as expected.

Thanks for checking.
Currently, the server-side text analysis is just random. So, no worry about the results.
Yes, it's possible to change anything you need.
As you had done before, we'd appreciate if you could send a pull-request to react-nlp.
Note that react-nlp only provides a visualization function (i.e., right side on your JukaiNLP figure).
Thus, menu-bar and react-ace editor should NOT be contained in react-nlp.

I'm not sure, but does jukainlp-web already have the same functionality as react-nlp?
If so, it is unnecessary to modify react-nlp.

@mickey-ichi
Basic plan:

Separate the visualization function as an independent library (alternative to brat)

based on react-nlp? , jukainlp-web? or merge?

Add jukainlp-web as an example of the visualization library

@hshindo
Okay. For the first point, I will merge those two :)

@mickey-ichi
Thank you! You could drastically change react-nlp.

@hshindo you said earlier that "Currently, the server-side text analysis is just random. So, no worry about the results."
Could you please resolve the server-side text analysis somehow for me to test?

@mickey-ichi
Is it in a hurry?
Since server-side programs (machine learning stuff) needs big improvements, we're actively rewriting codes.
It will take some time.

If you want to test, could you change the response from server randomly for now?
I'm sure this is sufficient for testing.

@hshindo :
Okay, could you give me a full data sample to test?

@mickey-ichi
The correct annotations (POS, NE, etc.) are not publicly available.
That's why I recommend to test by random annotations.
Please use any texts you want for testing.
For instance, take texts from Obama (wikipedia) .
Person's name, nations, company names should be annotated as "NE".


Advanced sharing from playground UI

Once #1095 and #805 are finished, DartPad will have what it needs for a more advanced sharing flow:

Write something cool in DartPad
Auth into GitHub (#1095)
Click a "share to" button
DartPad prompts you to save your code to a gist (#805)
Gist is created
DartPad gives you a bunch of sharing options with pre-formatted, paste-able snippets for:

Reddit
StackOverflow
Twitter

I think this is too much needed to help community share its code when ask for help. For while it is too much workful to do it so. I guess it could be even a simpler way to do it than "gist", maybe a temporary link or something...
Waiting for it... Thank you.

Now that #2227 is now live on dartpad.dev it may be time to consider updating the https://github.com/dart-lang/dart-pad/wiki/Sharing-Guide linked to by the dartpad 'Share' menu item, and additionally extending the 'Share' menu ability to do what you are describing in

DartPad gives you a bunch of sharing options with pre-formatted, paste-able snippets for:

Reddit
StackOverflow
Twitter

I love your idea here of having the ability to easy share your dartpad gist to Reddit/StackOverflow/Twitter (and perhaps others ?)
Would a 'Share on ...' menu with submenus for the various possibilities be nice ? Maybe we actually redirect to the site with the snippet ready to go ?
Would it be useful to create a new issue soliciting ideas about possible approaches and useful features ?
Making sharing dartpad gists super simple seems like a wonderful way to promote the wonders of flutter and dart.

https://github.com/dart-lang/dart-pad/issues/2808 dropped the GitHub authentication and sharing feature, so I'm going to close this as obsolete. If anyone reading this desires more sharing functionality like this from DartPad, please open a new issue for discussion. Thanks!


validation message edits

Description of changes

Describe what you're changing and why you're doing these changes.
Link to impacted open issues.

Tests

Describe the automated and/or manual tests executed to validate the patch.
Describe the added/modified tests.

References

Link to related PRs in other packages (i.e. cookbook, node).
Link to documentation useful to understand the changes.

Checklist

[ ] Make sure you are pointing to the right branch and add a label in the PR title (i.e. 2.x vs 3.x)
[ ] Check all commits' messages are clear, describing what and why vs how.
[ ] Make sure to have added unit tests or integration tests to cover the new/modified code.
[ ] Check if documentation is impacted by this change.

Please review the guidelines for contributing and Pull Request Instructions.
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Hope you can capture these validation messages that have been edited and reviewed.

Hi @klstromsland thanks for creating this patch, you should align the unit test code to the messages you modified, to permit them to pass.
Thanks!


DOCKER-80 add the possibility to use an existing secret for change admin password hook

Currently, users cannot define their own secret in the cluster for setting the current and custom passwords at the startup. This PR aims at providing our standard and dce chart users with this possibility.

Tested, everything works fine


recalculate keeplive

recalculate keepalive by channel touch timestamp

Codecov Report

Merging #66 (02f10a2) into main (1393642) will decrease coverage by 0.03%.
The diff coverage is 0.00%.

@@            Coverage Diff             @@
##             main      #66      +/-   ##
==========================================
- Coverage   26.91%   26.88%   -0.04%
==========================================
  Files          97       97
  Lines        4187     4192       +5
  Branches      660      661       +1
==========================================
  Hits         1127     1127
- Misses       2832     2837       +5
  Partials      228      228

Impacted Files
Coverage Δ

...ocketmq/mqtt/cs/channel/DefaultChannelManager.java
57.37% <0.00%> (-5.13%)
:arrow_down:

Continue to review full report at Codecov.

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

1）better to separate the definition of subscription storage interface and the keeplive recalculation?
2）better to add unit tests to verify these changes


ADEPrereqScript.ps1 fails

Tried to run ADEPrereqScript.ps1 it didn't ask for a "aadAppName" but did ask for a SubscriptionID. Then it failed with
Set-AzureRmResource : Exception getting "Values": "The method or operation is not implemented."
At C:\AzureADEScript\ADEPrereqScript.ps1:160 char:5

Set-AzureRmResource -resourceid $resource.ResourceId -Properties  ...

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

CategoryInfo          : CloseError: (:) [Set-AzureRmResource], GetValueInvocationException
FullyQualifiedErrorId : Microsoft.Azure.Commands.ResourceManager.Cmdlets.Implementation.SetAzureResourceCmdlet

Have I missed something?

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

ID: 2ea5bae3-9d7d-21df-be40-322a0acb6e3b
Version Independent ID: 34f79eb2-1a94-6888-797c-a324fb4ac587
Content: Encrypt an Azure Virtual Machine
Content Source: articles/security-center/security-center-disk-encryption.md
Service: security
GitHub Login: @TomShinder
Microsoft Alias: tomsh

Not that I can see. It's a Virtual Machine, and the Azure Security Centre linked to the instructions, I've checked I've not missed anything.

OK, thanks! We'll check on this to see if there changes that led to problems with this doc.

I have the same error as adrianprattuk when the script gets to the Set-AzureRmResource in order to enable soft delete on the Keyvault. Tried running the following two lines separately as well and reproduced the error.
($resource = Get-AzureRmResource -ResourceId (Get-AzureRmKeyVault -VaultName $keyVaultName).ResourceId).Properties | Add-Member -MemberType "NoteProperty" -Name "enableSoftDelete" -Value "true"
Set-AzureRmResource -resourceid $resource.ResourceId -Properties $resource.Properties -Force

Thanks! Trying to find someone who might be able to eyeball this and figure it out.

Same here, after 'Enabling Soft Delete on KeyVault SPCITKeyVault01' craps out with the same error.
Set-AzureRmResource : Exception getting "Values": "The method or operation is not implemented."
At C:\AzureADEScript\ADEPrereqScript.ps1:160 char:5

Set-AzureRmResource -resourceid $resource.ResourceId -Properties  ...

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

CategoryInfo          : CloseError: (:) [Set-AzureRmResource], GetValueInvocationException
FullyQualifiedErrorId : Microsoft.Azure.Commands.ResourceManager.Cmdlets.Implementation.SetAzureResourceCmdlet

I'm sure I've followed the instructions word for word...will keep looking around and drop back any findings.

There may have been some changes to the service that is causing this failure. Researching.

Same issue here. And this worked for me in the past. I guess something changed in service configuration.
`Set-AzureRmResource : Exception getting "Values": "The method or operation is not implemented."
At line:160 char:5

Set-AzureRmResource -resourceid $resource.ResourceId -Properties  ...

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

CategoryInfo          : CloseError: (:) [Set-AzureRmResource], GetValueInvocationException
FullyQualifiedErrorId : Microsoft.Azure.Commands.ResourceManager.Cmdlets.Implementation.SetAzureResourceCmdlet`

OK - we're aware of the problem and it's been replicated. Now researching on a fix. Thanks for your patience!

Can I/ If I "#Set-AzureRmResource -resourceid $resource.ResourceId -Properties  ..." this section out of the script will it still let me encrypt my VM? I've used this script before to encrypt 20 VMs in the past. I will be using the same values (key vault, location, aadAppName) and the only difference is a new "resourcegroupname" for this VM.

Same issue here - looking forward to the fix.

Still not working after the rollback:
Enabling Soft Delete on KeyVault NorthPROD-KV1
Set-AzureRmResource : Exception getting "Values": "The method or operation is not implemented."
At C:\Data\PowerShell_Scripts\ADEPrereqScript.ps1:160 char:5

Set-AzureRmResource -resourceid $resource.ResourceId -Properties  ...

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

CategoryInfo          : CloseError: (:) [Set-AzureRmResource], GetValueInvocationException
FullyQualifiedErrorId : Microsoft.Azure.Commands.ResourceManager.Cmdlets.Implementation.SetAzureResourceCmdlet

$appname
Parameter was $false because of that it is not creating the Aadapp.
Make it $true it will work.

I am not creating a new "aadApp" I am using am existing one.

Ok, I get further now.  But not getting all info at the end of the script.
I get DiskEncryptionKeyVaultUrl: *************
DiskEncryptionKeyVaultId: *************
But no aadClientID or aadClientSecret.
Have I missed something?
Many thanks

Hi Ozric473.
Please use below script.
#Requires -Module AzureRM.Resources
#Requires -Module AzureRM.KeyVault
Param (
[Parameter(Mandatory = $true,
HelpMessage="Name of the resource group to which the KeyVault belongs to.  A new resource group with this name will be created if one doesn't exist")]
[ValidateNotNullOrEmpty()]
[string]$resourceGroupName,
[Parameter(Mandatory = $true,
HelpMessage="Name of the KeyVault in which encryption keys are to be placed. A new vault with this name will be created if one doesn't exist")]
[ValidateNotNullOrEmpty()]
[string]$keyVaultName,
[Parameter(Mandatory = $true,
HelpMessage="Location of the KeyVault. Important note: Make sure the KeyVault and VMs to be encrypted are in the same region / location.")]
[ValidateNotNullOrEmpty()]
[string]$location,
[Parameter(Mandatory = $true,
HelpMessage="Identifier of the Azure subscription to be used")]
[ValidateNotNullOrEmpty()]
[string]$subscriptionId,
[Parameter(Mandatory = $true,
HelpMessage="Name of the AAD application that will be used to write secrets to KeyVault. A new application with this name will be created if one doesn't exist. If this app already exists, pass aadClientSecret parameter to the script")]
[ValidateNotNullOrEmpty()]
[string]$aadAppName,
[Parameter(Mandatory = $false,
HelpMessage="Client secret of the AAD application that was created earlier")]
[ValidateNotNullOrEmpty()]
[string]$aadClientSecret,
[Parameter(Mandatory = $false,
HelpMessage="Name of optional key encryption key in KeyVault. A new key with this name will be created if one doesn't exist")]
[ValidateNotNullOrEmpty()]
[string]$keyEncryptionKeyName
)
$VerbosePreference = "Continue"
$ErrorActionPreference = "Stop"
########################################################################################################################
Section1:  Log-in to Azure and select appropriate subscription.
########################################################################################################################
Select-AzureRmSubscription -SubscriptionId $subscriptionId;

####################################################################################################################################
Section2:  Create AAD app if encryption is enabled using AAD. Fill in $aadClientSecret variable if AAD app was already created.
####################################################################################################################################
$azureResourcesModule = Get-Module 'AzureRM.Resources';

if($aadAppName)
{
    # Check if AAD app with $aadAppName was already created
    $SvcPrincipals = (Get-AzureRmADServicePrincipal -SearchString $aadAppName);
    if(-not $SvcPrincipals)
    {
        # Create a new AD application if not created before
        $identifierUri = [string]::Format("http://localhost:8080/{0}",[Guid]::NewGuid().ToString("N"));
        $defaultHomePage = 'http://contoso.com';
        $now = [System.DateTime]::Now;
        $oneYearFromNow = $now.AddYears(1);
        $aadClientSecret = [Guid]::NewGuid().ToString();
        Write-Host "Creating new AAD application ($aadAppName)";

        if($azureResourcesModule.Version.Major -ge 5)
        {
            $secureAadClientSecret = ConvertTo-SecureString -String $aadClientSecret -AsPlainText -Force;
            $ADApp = New-AzureRmADApplication -DisplayName $aadAppName -HomePage $defaultHomePage -IdentifierUris $identifierUri  -StartDate $now -EndDate $oneYearFromNow -Password $secureAadClientSecret;
        }
        else
        {
            $ADApp = New-AzureRmADApplication -DisplayName $aadAppName -HomePage $defaultHomePage -IdentifierUris $identifierUri  -StartDate $now -EndDate $oneYearFromNow -Password $aadClientSecret;
        }

        $servicePrincipal = New-AzureRmADServicePrincipal -ApplicationId $ADApp.ApplicationId;
        $SvcPrincipals = (Get-AzureRmADServicePrincipal -SearchString $aadAppName);
        if(-not $SvcPrincipals)
        {
            # AAD app wasn't created
            Write-Error "Failed to create AAD app $aadAppName. Please log in to Azure using Connect-AzureRmAccount and try again";
            return;
        }
        $aadClientID = $servicePrincipal.ApplicationId;
        Write-Host "Created a new AAD Application ($aadAppName) with ID: $aadClientID ";
    }
    else
    {
        if(-not $aadClientSecret)
        {
            $aadClientSecret = Read-Host -Prompt "Aad application ($aadAppName) was already created, input corresponding aadClientSecret and hit ENTER. It can be retrieved from https://manage.windowsazure.com portal" ;
        }
        if(-not $aadClientSecret)
        {
            Write-Error "Aad application ($aadAppName) was already created. Re-run the script by supplying aadClientSecret parameter with corresponding secret from https://manage.windowsazure.com portal";
            return;
        }
        $aadClientID = $SvcPrincipals[0].ApplicationId;
    }
}

Before proceeding to Section3, make sure $aadClientID  and $aadClientSecret have valid values
########################################################################################################################
Section3:  Create KeyVault or setup existing keyVault
########################################################################################################################
Try
{
    $resGroup = Get-AzureRmResourceGroup -Name $resourceGroupName -ErrorAction SilentlyContinue;
}
Catch [System.ArgumentException]
{
    Write-Host "Couldn't find resource group:  ($resourceGroupName)";
    $resGroup = $null;
}

#Create a new resource group if it doesn't exist
if (-not $resGroup)
{
    Write-Host "Creating new resource group:  ($resourceGroupName)";
    $resGroup = New-AzureRmResourceGroup -Name $resourceGroupName -Location $location;
    Write-Host "Created a new resource group named $resourceGroupName to place keyVault";
}

Try
{
    $keyVault = Get-AzureRmKeyVault -VaultName $keyVaultName -ErrorAction SilentlyContinue;
}
Catch [System.ArgumentException]
{
    Write-Host "Couldn't find Key Vault: $keyVaultName";
    $keyVault = $null;
}

#Create a new vault if vault doesn't exist
if (-not $keyVault)
{
    Write-Host "Creating new key vault:  ($keyVaultName)";
    $keyVault = New-AzureRmKeyVault -VaultName $keyVaultName -ResourceGroupName $resourceGroupName -Sku Standard -Location $location;
    Write-Host "Created a new KeyVault named $keyVaultName to store encryption keys";
}

if($aadAppName)
{
    # Specify privileges to the vault for the AAD application - https://msdn.microsoft.com/en-us/library/mt603625.aspx
    Set-AzureRmKeyVaultAccessPolicy -VaultName $keyVaultName -ServicePrincipalName $aadClientID -PermissionsToKeys wrapKey -PermissionsToSecrets set;
}

Set-AzureRmKeyVaultAccessPolicy -VaultName $keyVaultName -EnabledForDiskEncryption;

# Enable soft delete on KeyVault to not lose encryption secrets
Write-Host "Enabling Soft Delete on KeyVault $keyVaultName";
$resource = Get-AzureRmResource -ResourceId $keyVault.ResourceId;
$resource.Properties | Add-Member -MemberType "NoteProperty" -Name "enableSoftDelete" -Value "true" -Force;
Set-AzureRmResource -resourceid $resource.ResourceId -Properties $resource.Properties -Force;

# Enable ARM resource lock on KeyVault to prevent accidental key vault deletion
Write-Host "Adding resource lock on  KeyVault $keyVaultName";
$lockNotes = "KeyVault may contain AzureDiskEncryption secrets required to boot encrypted VMs";
New-AzureRmResourceLock -LockLevel CanNotDelete -LockName "LockKeyVault" -ResourceName $resource.Name -ResourceType $resource.ResourceType -ResourceGroupName $resource.ResourceGroupName -LockNotes $lockNotes -Force;

$diskEncryptionKeyVaultUrl = $keyVault.VaultUri;
$keyVaultResourceId = $keyVault.ResourceId;

if($keyEncryptionKeyName)
{
    Try
    {
        $kek = Get-AzureKeyVaultKey -VaultName $keyVaultName -Name $keyEncryptionKeyName -ErrorAction SilentlyContinue;
    }
    Catch [Microsoft.Azure.KeyVault.KeyVaultClientException]
    {
        Write-Host "Couldn't find key encryption key named : $keyEncryptionKeyName in Key Vault: $keyVaultName";
        $kek = $null;
    }

    if(-not $kek)
    {
        Write-Host "Creating new key encryption key named:$keyEncryptionKeyName in Key Vault: $keyVaultName";
        $kek = Add-AzureKeyVaultKey -VaultName $keyVaultName -Name $keyEncryptionKeyName -Destination Software -ErrorAction SilentlyContinue;
        Write-Host "Created  key encryption key named:$keyEncryptionKeyName in Key Vault: $keyVaultName";
    }

    $keyEncryptionKeyUrl = $kek.Key.Kid;
}

########################################################################################################################
Section3:  Displays values that should be used while enabling encryption. Please note these down
########################################################################################################################
Write-Host "Please note down below details that will be needed to enable encryption on your VMs " -foregroundcolor Green;
if($aadAppName)
{
Write-Host "t aadClientID: $aadClientID" -foregroundcolor Green;         Write-Host "t aadClientSecret: $aadClientSecret" -foregroundcolor Green;
}
Write-Host "t DiskEncryptionKeyVaultUrl: $diskEncryptionKeyVaultUrl" -foregroundcolor Green;     Write-Host "t DiskEncryptionKeyVaultId: $keyVaultResourceId" -foregroundcolor Green;
if($keyEncryptionKeyName)
{
Write-Host "t KeyEncryptionKeyURL: $keyEncryptionKeyUrl" -foregroundcolor Green;         Write-Host "t KeyEncryptionKeyVaultId: $keyVaultResourceId" -foregroundcolor Green;
}
Write-Host "Please Press [Enter] after saving values displayed above. They are needed to enable encryption using Set-AzureRmVmDiskEncryptionExtension cmdlet" -foregroundcolor Green;
Read-Host;
########################################################################################################################
To encrypt one VM in given resource group of the logged in subscritpion, assign $vmName and uncomment below section
########################################################################################################################
#$vmName = "Your VM Name";
#$allVMs = Get-AzureRmVm -ResourceGroupName $resourceGroupName -Name $vmName;
########################################################################################################################
To encrypt all the VMs in the given resource group of the logged in subscription uncomment below section
########################################################################################################################
#$allVMs = Get-AzureRmVm -ResourceGroupName $resourceGroupName;
########################################################################################################################
To encrypt all the VMs in the all the resource groups of the logged in subscription, uncomment below section
########################################################################################################################
#$allVMs = Get-AzureRmVm;
########################################################################################################################
Loop through the selected list of VMs and enable encryption
########################################################################################################################
foreach($vm in $allVMs)
{
if($vm.Location.ToLower() -ne $keyVault.Location.ToLower())
{
Write-Error "To enable AzureDiskEncryption, VM and KeyVault must belong to same subscription and same region. vm Location:  $($vm.Location.ToLower()) , keyVault Location: $($keyVault.Location.ToLower())";
return;
}
Write-Host "Encrypting VM: $($vm.Name) in ResourceGroup: $($vm.ResourceGroupName) " -foregroundcolor Green;
if($aadAppName)
{
    if(-not $kek)
    {
        Set-AzureRmVMDiskEncryptionExtension -ResourceGroupName $vm.ResourceGroupName -VMName $vm.Name -AadClientID $aadClientID -AadClientSecret $aadClientSecret -DiskEncryptionKeyVaultUrl $diskEncryptionKeyVaultUrl -DiskEncryptionKeyVaultId $keyVaultResourceId -VolumeType 'All';
    }
    else
    {
        Set-AzureRmVMDiskEncryptionExtension -ResourceGroupName $vm.ResourceGroupName -VMName $vm.Name -AadClientID $aadClientID -AadClientSecret $aadClientSecret -DiskEncryptionKeyVaultUrl $diskEncryptionKeyVaultUrl -DiskEncryptionKeyVaultId $keyVaultResourceId -KeyEncryptionKeyUrl $keyEncryptionKeyUrl -KeyEncryptionKeyVaultId $keyVaultResourceId -VolumeType 'All';
    }
}
else
{
    if($azureResourcesModule.Version.Major -lt 6)
    {
        Write-Error "Please specify AAD application details, or install AzurePowershell version <IP_ADDRESS> or above to use AzureDiskEncryption without AAD";
        return;
    }

    if(-not $kek)
    {
        Set-AzureRmVMDiskEncryptionExtension -ResourceGroupName $vm.ResourceGroupName -VMName $vm.Name -DiskEncryptionKeyVaultUrl $diskEncryptionKeyVaultUrl -DiskEncryptionKeyVaultId $keyVaultResourceId -VolumeType 'All';
    }
    else
    {
        Set-AzureRmVMDiskEncryptionExtension -ResourceGroupName $vm.ResourceGroupName -VMName $vm.Name -DiskEncryptionKeyVaultUrl $diskEncryptionKeyVaultUrl -DiskEncryptionKeyVaultId $keyVaultResourceId -KeyEncryptionKeyUrl $keyEncryptionKeyUrl -KeyEncryptionKeyVaultId $keyVaultResourceId -VolumeType 'All';
    }
}
# Show encryption status of the VM
Get-AzureRmVmDiskEncryptionStatus -ResourceGroupName $vm.ResourceGroupName -VMName $vm.Name;

}

Having the same error this error on 6.0.0
Set-AzureRmResource : Exception getting "Values": "The method or operation is not implemented."
At C:\AzureADEScript\ADEPrereqScript.ps1:160 char:5

Set-AzureRmResource -resourceid $resource.ResourceId -Properties  ...

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

CategoryInfo          : CloseError: (:) [Set-AzureRmResource], GetValueInvocationException
FullyQualifiedErrorId : Microsoft.Azure.Commands.ResourceManager.Cmdlets.Implementation.SetAzureResourceCmdlet

when I rollback I get this one:
Get-AzureRmADServicePrincipal : Method not found: 'System.Collections.Generic.List`1<Microsoft.Azure.Graph.RBAC.Version1_6.ActiveDirectory.PSADServicePrincipal>
Microsoft.Azure.Graph.RBAC.Version1_6.ActiveDirectory.ActiveDirectoryClient.FilterServicePrincipals(Microsoft.Azure.Graph.RBAC.Version1_6.ActiveDirectory.ADObjectFilterOptions)'.
At C:\AzureADEScript\ADEPrereqScript.ps1:60 char:27
Please help

Downgrading AzureRM.Resource resolved enabling soft delete issue but now I am exactly where ozric473 is with an error running get-AzureRmADServicePrincipal. If I just run get-AzureRmADServicePrincipal without the script I get the exact same error. If I go to a machine with AzureRM.Resource version 6.0.0 I do not get the error and can run the command.
Get-AzureRmADServicePrincipal : Method not found: 'System.Collections.Generic.List`1<Microsoft.Azure.Graph.RBAC.Version1_6.ActiveDirectory.PSADServicePrincipal> Micro
soft.Azure.Graph.RBAC.Version1_6.ActiveDirectory.ActiveDirectoryClient.FilterServicePrincipals(Microsoft.Azure.Graph.RBAC.Version1_6.ActiveDirectory.ADObjectFilterOpt
ions)'.
At \empiro\fs\Home\MPiccinich\Scripts\AzureDiskEncryptionPreRequisiteSetup2.ps1:59 char:23

... incipals = (Get-AzureRmADServicePrincipal -SearchString $aadAppName); ...

            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

CategoryInfo          : CloseError: (:) [Get-AzureRmADServicePrincipal], MissingMethodException
FullyQualifiedErrorId : Microsoft.Azure.Commands.ActiveDirectory.GetAzureADServicePrincipalCommand

I was able to reproduce it. On a working powershell with azurern.resource 6.0 I ran get-azureRmAdServicePrincipal and it returned successful. I then ran the 3 lines to rollback to 5.5.2 (posted earlier in this thread). After this rollback, get-azureRmAdServicePrincipal no longer works with method not found error.

A quick work around for this appears to be to comment out the soft delete update code:
# Enable soft delete on KeyVault to not lose encryption secrets
#Write-Host "Enabling Soft Delete on KeyVault $keyVaultName";
#$resource = Get-AzureRmResource -ResourceId $keyVault.ResourceId;
#$resource.Properties | Add-Member -MemberType "NoteProperty" -Name "enableSoftDelete" -Value $true -Force;
#Set-AzureRmResource -resourceid $resource.ResourceId -Properties $resource.Properties -Force;

And add the EnableSoftDelete option in the Key Vault creation:
$keyVault = New-AzureRmKeyVault -VaultName $keyVaultName -ResourceGroupName $resourceGroupName -Sku Standard -Location $location -EnableSoftDelete;

This is obviously not ideal if using an existing Key Vault which doesn't have soft delete enabled as it won't be updated.

@thwpike thanks, it worked for me. However, the following line should not be commented out:
$resource = Get-AzureRmResource -ResourceId $keyVault.ResourceId;

same issue encountered:
Set-AzureRmResource : Exception getting "Values": "The method or operation is not implemented."
At line:160 char:5

Set-AzureRmResource -resourceid $resource.ResourceId -Properties  ...

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

CategoryInfo          : CloseError: (:) [Set-AzureRmResource], GetValueInvocationException
FullyQualifiedErrorId : Microsoft.Azure.Commands.ResourceManager.Cmdlets.Implementation.SetAzureResourceCmdlet

PS C:\WINDOWS\system32> Get-InstalledModule -Name "AzureRM"
Version    Name                                Repository           Description

5.7.0      AzureRM                             PSGallery            Azure Resource Manager Module
PS C:\WINDOWS\system32> $psversiontable
Name                           Value

PSVersion                      5.1.17134.1
PSEdition                      Desktop
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
BuildVersion                   10.0.17134.1
CLRVersion                     4.0.30319.42000
WSManStackVersion              3.0
PSRemotingProtocolVersion      2.3
SerializationVersion           <IP_ADDRESS>
Also, ensured that Parameter(Mandatory = $true for $aadAppName is set as per recommendations

@SudhakaraReddyEvuri Was this fixed in latest  ?

Yes, the error "Set-AzureRmResource : Exception getting "Values": "The method or operation is not implemented." should have been fixed in https://github.com/Azure/azure-powershell/releases/tag/v6.3.0-June2018 . please install latest Azure Powershell and re-run the script.

#please-close

We will now close this issue. If there are further questions regarding this matter, please reopen it and we will gladly continue the discussion.

@TomShinder, I had to completely remove any prior AzureRM.Resources versions EXCEPT v5.5.2 in order for the ADEPrereqScript to run successfully.

I'm currently at the stage where when I've done the Power Sheel, it looks to have completed successfully, it says it's encrypted the disk, but hasn't actually done it when I look in Azure :(
thanks, I'll try that suggestion above, having tried most of the things suggested by various people. It is a shame that these instructions are given, but don't work, I need to do this as part of our GDPR compliance, which is a painful process already


Issues about Requirements.txt

Hi, when I installed the all liabraries based on Requirements.txt, I found some versions are wrong, not matching others version. Could you refresh the new requirement file?

Hi, when I installed the all liabraries based on Requirements.txt, I found some versions are wrong, not matching others version. Could you refresh the new requirement file?

Thank you for your interest in our work!
We apologize for the confusion. We have updated the requirements.txt file in commit 5257faffd1288c0d91165a47a49861de48ccc91f.
If you encounter any further issues, feel free to contact us!


Fix "topic" mistaken as "article"

In this article, I believe Azure Service Bus "topic" are miswritten as "article"

I have sole ownership of intellectual property rights to my Submissions and I am not making Submissions in the course of work for my employer.


Implement 'read in order' optimization with processors.

I hereby agree to the terms of the CLA available at: https://yandex.ru/legal/cla/?lang=en
For changelog. Remove if this is non-significant change.
Category (leave one):

Performance Improvement

Short description (up to few sentences):
Implement 'read in order' optimization with processors.
Also base class for sorting transform was extracted. Now it's used for MergeSortingTransform and FinishSortingTransform.
TODO:

[x] Implement FinishSortingTransform

Could you please merge with master once again?

Kafka integration tests are still broken in master.
2019-09-03 03:56:08 00838_system_tables_drop_table_race:                                    [ FAIL ] - having stderror:
2019-09-03 03:56:08 [af65ce602906] 2019.09.03 03:56:02.871285 {783dcb4e-b51b-487d-ae46-1d681d1bcb10} [ 101 ] <Error> executeQuery: Poco::Exception. Code: 1000, e.code() = 28, e.displayText() = File access error: no space left on device: /var/lib/clickhouse/data/default/table

Probably it's a CI problem.

Probably it's a CI problem.
2019-09-03 03:56:08 00838_system_tables_drop_table_race:                                    [ FAIL ] - having stderror:
2019-09-03 03:56:08 [af65ce602906] 2019.09.03 03:56:02.871285 {783dcb4e-b51b-487d-ae46-1d681d1bcb10} [ 101 ] <Error> executeQuery: Poco::Exception. Code: 1000, e.code() = 28, e.displayText() = File access error: no space left on device: /var/lib/clickhouse/data/default/table


AttributeError: 'BetterStream' object has no attribute 'percent'

I get this traceback when pymux is installed with python2.7 and python3.5.  This is on Debian Stretch.
It looks like pyte's version 0.6.0 release removed Stream.percent.

as of 0.5.1
as of 0.6.0

Traceback (most recent call last):
  File "/home/seth/.local/lib/python3.5/site-packages/pymux/main.py", line 538, in run_server
    PipeInput(), DummyCallbacks())
  File "/home/seth/.local/lib/python3.5/site-packages/prompt_toolkit/eventloop/posix.py", line 164, in run
    t()
  File "/home/seth/.local/lib/python3.5/site-packages/pymux/server.py", line 70, in _recv
    self._process(self._recv_buffer[:pos])
  File "/home/seth/.local/lib/python3.5/site-packages/pymux/server.py", line 113, in _process
    self._create_cli(true_color=true_color, ansi_colors_only=ansi_colors_only, term=term)
  File "/home/seth/.local/lib/python3.5/site-packages/pymux/server.py", line 157, in _create_cli
    self.cli = self.pymux.create_cli(self, output, input)
  File "/home/seth/.local/lib/python3.5/site-packages/pymux/main.py", line 459, in create_cli
    self.create_window(cli, command=self.startup_command)
  File "/home/seth/.local/lib/python3.5/site-packages/pymux/main.py", line 311, in create_window
    pane = self._create_pane(None, command, start_directory=start_directory)
  File "/home/seth/.local/lib/python3.5/site-packages/pymux/main.py", line 283, in _create_pane
    has_priority=has_priority)
  File "/home/seth/.local/lib/python3.5/site-packages/pymux/process.py", line 119, in from_command
    has_priority=has_priority)
  File "/home/seth/.local/lib/python3.5/site-packages/pymux/process.py", line 85, in __init__
    self.stream = BetterStream(self.screen)
  File "/home/seth/.local/lib/python3.5/site-packages/pymux/stream.py", line 36, in __init__
    self._validate_screen()
  File "/home/seth/.local/lib/python3.5/site-packages/pymux/stream.py", line 56, in _validate_screen
    for d in [self.basic, self.escape, self.sharp, self.percent, self.csi]:
AttributeError: 'BetterStream' object has no attribute 'percent'

I think you can just swap BetterStream for pyte.Stream because the speed improvements are part of the 0.6.0 release.


⚠ Avatar API Endpoint has degraded performance

In 94922db, Avatar API Endpoint (https://avatar.roblox.com/v1/avatar-rules) experienced degraded performance:

HTTP code: 200
Response time: 4596 ms

Resolved: Avatar API Endpoint performance has improved in 6097d07 after 9 minutes.


remove spec.replicas from tekton-pipelines-webhook Deployment

Changes
Simply removing the spec.replicas field from the tekton-pipelines-webhook Deployment since it has a HPA, and having this field would cause the webhook to scale to 1 replica upon re-application.
/kind bug
Submitter Checklist
As the author of this PR, please check off the items in this checklist:

[ ] Docs included if any changes are user facing
[ ] Tests included if any functionality added or changed
[x] Follows the commit message standard
[x] Meets the Tekton contributor standards (including
functionality, content, code)
[ ] Release notes block below has been filled in
(if there are no user facing changes, use release note "NONE")

Release Notes
Unset replicas:1 in the webhook Deployment; HPA will autoscale the deployment (1-5 replicas by default).  First reapplication after this change will cause scaling down to 1 replica, but subsequent reapplications will not change the HPA-set replica number.

Thank you for sending a PR! 🎉
I've got https://github.com/tektoncd/pipeline/pull/4893 which unsets and adds a comment for future explorers. I don't feel strongly about one or the other though.

Thank you for sending a PR! 🎉
I've got #4893 which unsets and adds a comment for future explorers. I don't feel strongly about one or the other though.

I'd love to be a contributor :). I'll add a release note...

I'd love to be a contributor :). I'll add a release note...

Great! You'll also need to sign the CLA.

I'd love to be a contributor :). I'll add a release note...

Great! You'll also need to sign the CLA.

Done!

/ok-to-test

/test pull-tekton-pipeline-alpha-integration-tests
(flake)

/retest
/lgtm

do I need to resign the CLA with the link in the checklist instead of the one you posted @imjasonh ?

Yeah maybe? We might also just need to poke clabot into checking again

cc @tektoncd/operator-maintainers

As far as I can tell, my git config matches my github account and the name/email I used to sign the CLA.  I've pushed an amendment just in case, but it looks like EasyCLA is still having problems.

@sellitforcache I think Ryan Bergmann authored and [sellitforcache](https://github.com/sellitforcache/tektoncd-pipeline/commits?author=sellitforcache) committed 16 hours ago is still "messing" with EasyCLA. I tend to use --reset-author when ammending commit to make sure the author and commiter are the same, maybe you need to do the same.
git commit --reset-author --amend --no-edit

@vdemeester thanks, done!

/lgtm

(damn.. wrong shortcut 😅 )

/lgtm

/retest


state.setter in GymEnvironment is misleading for the (Vectorized)PendulumEnv

Hi Sebastian,
thanks for this great framework! Today I found a small inconsistency/bug regarding the state.setter/getter for the GymEnvironment class when using the (Vectorized)PendulumEnv.
When we interact with the (Vectorized)PendulumEnv, we do not directly observe the 'internal' state [theta, dtheta] but rather [cos theta, sin theta, dtheta] via _get_obs(). Consequently, the state attribute in the corresponding observations is also in terms of [cos, sin, dtheta].
Now, I'd assume if we set the state property of the GymEnvironment (https://github.com/sebascuri/rllib/blob/master/rllib/environment/gym_environment.py#L129) that we would also be doing this in terms of the observed state, i.e., value = [cos, sin, theta], since this is what the agent is observing. However, since the (Vectorized)PendulumEnv has a state attribute, we just overwrite the Environments internal state, instead of converting from [cos, sin, dtheta] to [theta, dtheta].
I believe it would be more convenient to the user to always only be exposed to the [cos, sin, dtheta] state instead of having to worry about the conversions. This would presumably require a slightly more involved logic for the GymEnvironment as well as a new method for the (Vectorized)PendulumEnv, e.g., obs_to_state.
Happy to discuss and/or contribute.
Cheers

I pushed the changes, maybe you can check if it works in your application. Thanks!

@lukasfro, if it works now, could you close it? Thanks!

Unfortunately it is not fully working yet. I just started on a fix and will do a PR later today.

Fixed in PR #5


Delete Arrays.asList

📝 Description
After the breaking of the "Rendering-Rewrite" branch and the loss of many of the new developments and content, we have decided (just me XD) to move the improvements from the "Rendering-Rewrite" branch to the "next" branch so progressive, based on the new Pull Request rules.
This change is to avoid wasting all the progress of the old branch and take advantage of it to release updates with the new content already worked on.
To start this new change it is preferable to start as easy as possible, eliminate unnecessary things (that do not affect the code base of the mod).
The lines of code removed were:
java.util.Arrays
.withInformationsProvider... etc...
after the improvements added by Paneedah, Luna, Stick and Koud_Wind, was to automate the generation of weapon information, making the Array.asList function unusable.
🎯 Goals
-Start cleaning up the Factory files, starting with something simple
-Eliminate lines of unnecessary code
-Avoid redundancy in weapon information
❌ Non Goals
-Do not break the mod
🚦 Testing
nothing
⏮ Backwards Compatibility
nothing
📚 Related Issues & Documents
nothing
🖼 Screenshots/Recordings
nothing
📖 Added to documentation?

[ ] 📜 README.md
[ ] 📑 Documentation
[ ] 📓 Javadoc
[ ] 🍕 Comments
[X] 🙅 No documentation needed

This will be included in a new PR coming soon which reworks tooltips


Train hl modif2

Motivation and Context
This pull request solves a bug that didn't allow to perform actions when apply_postconds was set to True
How Has This Been Tested
Generated a robot trajectory using:
python -u habitat-baselines/habitat_baselines/run.py   --exp-config habitat-baselines/habitat_baselines/config/rearrange/rl_hl_srl_onav.yaml   --run-type eval   habitat_baselines/rl/policy=hierarchical_tp_noop_onav

Types of changes

Bug fix (non-breaking change which fixes an issue)

Checklist

[x] My code follows the code style of this project.
[x] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[x] I have read the CONTRIBUTING document.
[x] I have completed my CLA (see CONTRIBUTING)
[ ] I have added tests to cover my changes.
[ ] All new and existing tests passed.

All the .cpu() calls shouldn't be necessary (and will slow things down). But let's merge it since it fixes an important bug. Then I can fix this .cpu() issue on the other branch.


String.lstrip does not strip characters starting with "res"

Godot version:
3.2.4 beta 3032b38b5
Keywords: lstrip
Maybe due to a change in #24823.
OS/device including version:
Windows 10.
Issue description:
The following snippet prints "cript.gd", expected "script.gd"
print("res://script.gd".lstrip("res://"))

Steps to reproduce:
See minimal project. I've found other cases where this also produces error like "usscript.gd".lstrip("us"), I haven't pin-pointed more cases to identify what might be the problem yet...
Minimal reproduction project:
string_lstrip_res_45048.zip

Related https://github.com/godotengine/godot/issues/43513#issuecomment-727052513?

Related https://github.com/godotengine/godot/issues/43513#issuecomment-727052513?

Likely, the documentation is quite misleading. Lets not close this issue until this behavior is documented at least, then. 🙂
See Python's rstrip() description in comparison.
I have to be honest that GDScript was my first duck-typed language before I started using Python for real. 😄

Likely, the documentation is quite misleading. Lets not close this issue until this behavior is documented at least, then. 🙂
See Python's rstrip() description in comparison.
I have to be honest that GDScript was my first duck-typed language before I started using Python for real. 😄

There is an open issue about it in the docs repo: https://github.com/godotengine/godot-docs/issues/4365
Looks like trim_prefix is the more suitable function for your purpose.

There is an open issue about it in the docs repo: https://github.com/godotengine/godot-docs/issues/4365
Looks like trim_prefix is the more suitable function for your purpose.


Revert "chore: Smaller Nits"

Reverts anton-rs/op-reth#145

Let's not revert and actually just take out the value-256 changes.


Reducer handling action meta data

Hey folks, I was wondering if the following is valid:

I've got a middleware that handles promises; If the payload is a promise, the middleware handles the promise and forwards the action with some meta information:

{
  type: 'TASKS_FETCH',
  meta: {
    promise: true,
    status: 'PENDING'
  }
}

When the promise is resolved or rejected a corresponding action is triggered which looks like this:
{
  type: 'TASKS_FETCH_SUCCESS',
  meta: {
    promise: true,
    status: 'SUCCESS'
  }
}

Now, I want a loading reducer to react to those actions and count how many promises are pending:
const initialState = { count: 0 };

export default function loading(state = initialState, action) {
	if (action.meta && action.meta.promise) {
		switch (action.meta.status) {
			case 'PENDING':
				return {
					count: state.count + 1
				};
			case 'SUCCESS':
			case 'ERROR':
				return {
					count: state.count - 1
				};
			default:
				return state;
		}
	}

	return state;
}

What do you think, is handling meta data inside a reducer valid, do you see any problems?

This looks totally sensible to me.


Reset RemovalInProgress flag on daemon restart

This flag can be set on disk if the daemon were to crash or error out
while trying to remove container in which case subsequent tries to
delete the container would all fail.
Signed-off-by: Kenfe-Mickael Laventure<EMAIL_ADDRESS>
Fixes #22312

Maybe need to these to Dead?

updated.

LGTM

LGTM


Remove unnecessary type attribute from

The attributes are obsolete and are generating warnings in validator.w3.org/nu as per https://html.spec.whatwg.org/multipage/obsolete.html#warnings-for-obsolete-but-conforming-features
This is similar to https://github.com/tabatkins/bikeshed-boilerplate/pull/16

Tho, since the built-in boilerplates are dramatically out of date at this point anyway, just fixing this issue will be putting a bandaid on a bullet wound. So nm, I'll just go ahead and close; I've been wanting to do a readonly update for a while, it just requires a lot of boring verification that everything's still as expected.


document git submodules in deps/*

as per README, simple running cmake . at the top of the dir doesn't cut it :)

Thank you for filing the issue. The issue has been fixed some time ago.