Flutter needs a way to integrate Android and iOS WebView

Presumably this requires some compositor work, similar to maps or video?

Adding an example use case for this:
I have a hybrid Android application where some rendering is handled by a WebView but controls for things like navigation are handled by native UI widgets. I would like to port a version to Flutter, off the top of my head the requirements for getting this to work are:

A way to add a WebView into the rendered tree so that it can live along side native widgets for things like navigation buttons.
A way to allow interaction with JS in the WebView (something like [this](http://developer.android.com/reference/android/webkit/WebView.html#addJavascriptInterface(java.lang.Object, java.lang.String))).
A way to intercept HTTP requests from the WebView.

The last item here allows us to stream the contents of PDF files to the WebView. The current Android implementation intercepts HTTP requests from the WebView and streams back the contents of the requested PDF file. The implementation can be seen here.
I'm new to Flutter so I may have gotten some of the terminology wrong, let me know if you need clarification on anything.

We're currently moving towards an approach of making it easier to use native views in conjunction with FlutterView:
https://docs.google.com/document/d/1DOfwpL6VojCAG_zjjcA_z5ekF7rTIohV8dWn2o7_IME/edit

This is more about having a way to put a WebView within a Flutter widget tree, I think. As you say in your original comment, we need something similar for embedding videos or maps provided by a third-party non-Flutter library.

Something else that would be nice while considering integrating native views into flutter would be integrating flutter into existing applications.

Any updates on integrating a webview with flutter?

Looks like someone has started a plugin to do full screen webviews: https://github.com/dart-flitter/flutter_webview_plugin

I think doing the activity subset is a great start. It would unlock a whole set of app types that would need getting an oauth token from a web login.

FWIW: here's the PR for the iOS version of the webview plugin: https://github.com/dart-flitter/flutter_webview_plugin/pull/3

We now have the webview plugin on IOS thanks to @toufikzitouni 👍 https://pub.dartlang.org/packages/flutter_webview_plugin

This is not on our short-term priority list. Moving to next milestone.

It would be great to have a webview and a way to interacting with it. I want to show embedded YouTube video and to control the player. Right now I am using https://github.com/dart-flitter/flutter_webview_plugin, but I am using some hack for some situations. For example, I change the webview URL in JavaScript after the video ends in order to the flutter app to receive an event onUrlChange and then to close the webview.

@csbenjamin Are you specifically looking for YouTube you prefer https://developers.google.com/youtube/android/player/ over a WebView to control?  Or did you also need a WebView?  If you're looking for a YouTube specific player, please file a new bug, that's definitely a reasonable request. :)

Yes, I am looking for YouTube player. I don't need anything from webview, just a YouTube player. I will open a new issue. Thanks

We have to open payment web form and this feature is blocker for us 😢

@megatolya the webview plugin cannot do the job for you ?

Sadly this issue would also be a blocker for us to consider Flutter as we also have a similar use case to what @jxson mentioned above, and what Basecamp blogged about here:
https://m.signalvnoise.com/basecamp-3-for-ios-hybrid-architecture-afc071589c25
Using Flutter on its own to write once and deploy to both mobile platforms is already a win. But we want to go a step further and bring all of our web features in a hybrid app with enough native components to make the whole experience feels as close to native as possible, without the constant need to keep up with the new features that we introduce on our web version.
Anything that can be shared about the roadmap in relationship to this issue would be really helpful.

We're working on some code changes now which we expect may make inline WebViews work with Flutter on iOS.  Inline WebViews in FlutterViews on Android are a bit further off.  Sorry I don't have more specifics than that. :/
This is definitely nearing the top of our list.

Thanks for the update.
At this point, can we tell whether this is a beta or a 1.0 release blocker?

Since Beta 1 as been released, is there any news on a WebView widget support?
Thanks

@eseidelGoogle  << bump >>

I recommend following https://github.com/flutter/flutter/issues/73, the work needed for both of these is similar.  Status is very similar to what I reported 17 days ago, sorry.  The situation for WebView is nearly identical to Maps as described here: https://github.com/flutter/flutter/issues/73#issuecomment-367818217

While you consider creating a Webview in Flutter, it would be useful to allow loading html from a string,  also giving the webview a base url (from which resources referenced in the html - .css, .js, images etc - would be loaded), as can be done in iOS (shown below) and Android.
webView.loadHTMLString(htmlString, baseURL: locationWhereResourcesAreLocated);

For me too, Flutter is not an option without a fully functional WebView control, that can load HTML, local and remote URLs, execute JavaScript and enables communication between Flutter code and JavaScript in the WebView.

Any updates on integrating a Web View with flutter?

Yea, this would also be super helpful for me.

agree with agreensh - load from a string would be the icing on the cake. Maybe also from a local file (at least on Android?)? Thanks

@IanDarwin https://github.com/dart-flitter/flutter_webview_plugin/issues/23#issuecomment-367618709 contains a few suggestiins that should work here as well

We are plan to use flutter for our application but as describe above current sdks does not support webview with other flutter widget is a major blocker to us to use flutter as mobile application development sdk.

Flutter should not hit stable until this is added IMO.

Any updates about inline WebView?

@jaiminmehtadxred I think maybe you can try to implement webview with platform-specific code that's not hard

@eseidelGoogle Any progress? while flutter_webview_plugin is great, the webview is not inline. Please help us out :)

We have a messaging app (www.touchmoon.com) that relies heavily on WKWebView and MKMapView inside scrollable areas (as collection view cells). Since our Android app is dragging behind, there is a strong initiative to rewrite it from ground up using ReactNative (as Skype did, Discord, Instagram...).
I'm fond of Flutter, but lacking this feature is a breaking point where I have no arguments left.
Do you have ANY prediction, is there ANY chance this will be Futter first-class-citizen?

Can't build the apps we have in mind until webview is implemented...what's the status? This seems pretty vital for many designs.

without inline webview, apps look like ...
https://gfycat.com/LawfulZanyGecko

@eseidelGoogle , @mit-mit , I know I am asking for a lot here, but is there even the smallest chance that this can moved to an earlier milestone? Lots of projects require inline webview, and the current plugin can be very often be a poor alternative. Thanks guys! p.s waiting eagerly for the beta 4 medium post :)

I noticed that Flutter published preview version. Does this mean that the first release will not include inline WebView?

Preview without this feature seems a bit unorthodox to me :disappointed:

We will likely not have this feature in our 1.0 build. We are actively working on it, and will make it available as soon as we are able to do so in a manner that meets our standards of quality.
If you need this in the meantime, you can do it from Java/Kotlin or ObjectiveC/Swift by creating an OEM Web view and layering it on top of Flutter's view. This unfortunately won't properly composite with the rest of the Flutter widgets, which is why we are not advocating this as a solution.

So any idea when we can expect it?

It's very hard to predict.
One question that we're wrestling with is what Android versions to support. The more versions we support, the longer it will likely take to get a good solution. Do you have opinions on what versions of Android a Web view plugin needs to support to be viable?

For our use case, Android 6+ should be good enough.

5+ in our case too. We're quickly slowing down dev speed supporting 4.x
Eager to play with the first builds!
Le ven. 22 juin 2018 à 06:27, 血心<EMAIL_ADDRESS>a écrit :

To me, I think Android 5+ is ok.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/flutter/flutter/issues/730#issuecomment-399317053,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AEFUX3nMYsc0KSQerrYlMd0vAkTPlUT4ks5t_HI9gaJpZM4GvC9x
.

Android 5+ for us

Android 5.x has ~20% market share with strong declining tendency.
So, if you take 6 mo to develop it for 5.0 (less than 5%), there will be no phones left to test it.
:-)
If it is easier, why don't you develop it for the flagship models (7+), release it (so that we can play with it) and you can expand support for older Androids as we go?

@iostriz Unfortunately, depending what version we're targetting we'd have to take entirely different approaches, because of the different APIs introduced at each version. So if it takes N months to do version X, and N+5 months to do version X-1, then it would take 2N+5 months to do version X then version X-1, but only N+5 months to do version X-1 and X at the same time. If that makes sense.

5 and above would be great, as it covers the majority of the market. Inline webview is a crucial requirement for many apps, please reconsider this feature's priority.

On Thu, Jun 21, 2018 at 10:09:44PM -0700, Ian Hickson wrote:

@iostriz Unfortunately, depending what version we're targetting we'd have
to take entirely different approaches, because of the different APIs
introduced at each version. So if it takes N months to do version X, and N+5
months to do version X-1, then it would take 2N+5 months to do version X
then version X-1, but only N+5 months to do version X-1 and X at the same
time. If that makes sense.

Then I'd vote for 6+

5 and above from our side

5 and above would be great for me
Em Sex, 22 de jun de 2018 11:06, Chris1234567899<EMAIL_ADDRESS>escreveu:

5 and above from our side
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/flutter/flutter/issues/730#issuecomment-399453955,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ACzW_aizORvB_a7wqwVPqac3I7_pl0Nmks5t_PnVgaJpZM4GvC9x
.

5+ would be great!

5+ should be fine

In my opinion 5+ should be the way to go.

I'd like to have a really great solution, not like WKWebView, so I'm ready to wait or contribute.

@minikin  can you be more specific regarding the issues you're having with WKWebView?
I don't think it's reasonable to embed an html engine as part of the Flutter binary. So I'm guessing we will end up with a solution that delegates to an html engine that's available on the platform (on iOS this will likely by WKWebView).

android 5+

@amirh
sure, for instance, you cannot set a cookie with appropriate methods, for now (iOS11, 12beta). WKWebView just ignoring that. So you need to use workarounds.
The reason why I'd like to see some kind of WebView in Flutter that's a possibility to
use libs like d3js and render some static HTML pages.

While a pure Flutter implementation of all widgets is the ideal.
I think we will need to make exceptions in a few cases, web view is one of them.
A pure-Flutter web view implementation (as in: everything is implemented in Dart), if at all possible (I think app store policy might be a limiting factor), will be a huge project, I'm guessing at least the scale of Flutter itself.
A plugin that embeds a web browser code (e.g cef), might be possible once #7053 is resolved. I believe such an approach will still face some app store policy challenges, and will significantly increase the binary size.
I believe the reasonable and practical approach we should take for web view is to embed the platform's web view in Flutter. There are some non-trivial technical challenges involved in doing that which we are working on. I think we should use this specific issue to track the progress for getting a web view inlined. I think that solving the inlining problem will unlock a big chunk of the web view use cases, but I expect there to still be a long list of web view issues we will gradually work on (support platform's web view feature X), which I think will be more practical to track in separate issues.

@amirh Thank you very much for the clarifications!

Any updates on integrating a webview with flutter?

Updates?

We're actively working on it, you can follow the progress of #19030.

You might be able to come up with a plugin that embeds a web engine, I'd guess the first blocker would be #7053. Doing this will probably have a non trivial impact on the release binary size (which might be ok for some apps).
What I'm currently working on is embedding the platform's web view in Flutter.

Yes, the platform WebView is a reasonable first step and sufficient for many applications.
Sent from my phone. Please excuse the brevity.

On a related note is there another way to execute JavaScript code in flutter app. Right now I'm relying on creating a webview plugin and using it. The problem is that it uses a platform channel and I have to run the js asynchronously. I want to run it in a synchronous function and not have to go through future builders.
Any ideas?

@manujbahl there is no other way.

Good day, great job you all are doing. is their support for setJavaScriptCanOpenWindowsAutomatically on the flutter webView plugin?

Hanging into this list :)
I need a simple inline webview without visible controls just displaying html/css and working with js, uri via API - in a free sizeable etc. webview widget :+1:
A real webview isn't interesting for me, but inline html/css + js and the capabilities to load extended content (like fonts from google or js libs)

Anyone try 19030 AndroidView for Web View?

@MisterJimson there's some WIP here: https://github.com/flutter/plugins/tree/master/packages/webview_flutter
You should at most treat it just as a preview right now, there are some known bugs, iOS support is missing, and the API surface is very minimal (deliberately at this point, until we figure out the iOS story).

Hey guys, I released the "InAppBrowser" plugin that works in both Android and iOS systems: https://github.com/pichillilorenzo/flutter_inappbrowser
This first release is just a porting of the popular cordova-plugin-inappbrowser in order to make it work with the Flutter API.. I'm working on it for updates!!

@pichillilorenzo your plugin is not inline and this channel is about having the browser in line

@MichaelSowah Yeah, I know that, thats why I wrote "I'm working on it for updates"! I will work also on that using AndroidView for Android and for iOS when it will be released

any updates for iOS?

Can you explain why it is issued for years but we don't get anything of webviewin flutter itself? Isn't all about showing HTML, CSS and JS the biggest technology evolution since release of NCSA Mosaic? What is a technology (or a framework), called the future of app development, without web view? Isn't everything about Google the web? :wink:
This is a point i do not understand :question:
For example, inline webview means to have the power and UI of HTML, CSS and hopefully JS to display things like the web, like code in messages in gitter webapp, which isn't slack App capable of, including JS libs for syntax highlighting and so on.
The difference between other widgets and a webview is like between all the web and so called RichTextBoxes...
I see a gap between all that what's done in hybrids and a framework, like flutter, but, the power of a webview is nothing else than the power of browsers, of electron, of atom and VS Code, of all those things we are loving every day.
:confused:

@flddr Just because it is an important feature doesn't mean it is easy and quick to add. Rather the opposite.
You seem to assume that Google has unlimited resources and that adding enough additional developers to a team is enough to get instant results. Sadly that's not how the world works.
You can rest assured that the Flutter team is aware of this features importance and you can follow progress in https://github.com/flutter/plugins/tree/master/packages/webview_flutter

@zoechi ups, thanks, i did never want to say this :confused:
My guess was, it was dropped morely in development to hold a gap between hybrids and natives, because the flutter UI itself is enormous powerful and clean, whereas the possibility to do things in a webview can end in lower quality.
Thanks for the link

@flddr I think it's mostly that they don't want to rewrite a browser in Dart (for good reasons) and instead make native functionality available which required to implement additional capabilities for Flutter.
This capability became available recently and since then implementing webview is in progress.
https://pub.dartlang.org/packages/flutter_webview_plugin (community effort) is available since quite some time, but it had the disadvantage that it was always shown on top of Flutter widgets. For example opening a drawer menu opens it behind the webview if there is overlap.
The new plugin will work well with other Flutter widgets.

Flutter uses Skia to render, and Chrome uses Skia to render so it seems like it should be an easy conversion. But you cannot add a browser into Flutter this way because any flutter apps would be banned from running on the apple store. Without cross platform ability Flutter would be abandoned. Google are right to take time with this issue.
https://www.howtogeek.com/184283/why-third-party-browsers-will-always-be-inferior-to-safari-on-iphone-and-ipad/

@Rockvole interesting

Finally I released a new version (v0.5.1) of flutter_inappbrowser where there is an initial support of inline WebViews (InAppWebView class)! Obviously, this Widget is available only for Android at this moment and there are some limitation because AndroidView is not stable enough.
However you can already play with it a little bit. There are a lot functions and events that you can test and use! An example of an inline WebView can be found in the README.md file of the plugin repository.

Finally I released a new version (v0.5.1) of flutter_inappbrowser where there is an initial support of inline WebViews (InAppWebView class)! Obviously, this Widget is available only for Android at this moment and there are some limitation because AndroidView is not stable enough.
However you can already play with it a little bit. There are a lot functions and events that you can test and use! An example of an inline WebView can be found in the README.md file of the plugin repository.

Finally I released a new version (v0.5.1) of flutter_inappbrowser where there is an initial support of inline WebViews (InAppWebView class)! Obviously, this Widget is available only for Android at this moment and there are some limitation because AndroidView is not stable enough.
However you can already play with it a little bit. There are a lot functions and events that you can test and use! An example of an inline WebView can be found in the README.md file of the plugin repository.

@InMatrix Sorry for my misunderstanding. Many thanks your explanation and I really appreciate it. I look forward to the release of the official WebView plugin.

flutter/plugins#890 added iOS support to the webview_flutter plugin.
The platform views embedding support, which the inline webview is based on, is still in early preview (see https://github.com/flutter/flutter/issues/19030#issuecomment-437534853 ).
Open issues are tagged with the platform-views and/or webview labels, please upvote the issues you care about to help us prioritize.

Note that if you want to try it out on iOS you will need to enable the preview flag, see more details on:
https://github.com/flutter/flutter/issues/19030#issuecomment-437534853

The absence of a usable WebView is really a deal-breaker to me personally.
flutter_inappbrowser is a great package that comes very close to full usability but still lacks keyboard support yet. Unfortunately, I was just going to build a code editor app........

Congratulations to 1.0 for best mobile framework ever :tada:
Now waiting for webview :relaxed:

Just to clarify: The webview_flutter plugin provides an embedded WebView on Android and iOS and is currently in developers preview.
We are tracking issues and missing features with the webview tag, if you care about specific issues you can help by filing an issue if there's isn't one yet, or upvoting an existing issue. PRs are of course also welcomed 😄

@amirh Sorry to hassle you with questions. We are heavily considering moving over to Flutter for a upcoming project, but we rely on a WebView to work (inline, flutter_webview_plugin is not an option). Do you have any information about upcoming updates or a roadmap for us? Thank you very much for any reply, keep up the great work and may the Flutter love spread around the world.

@danielRi https://pub.dartlang.org/packages/webview_flutter

Very interesting topic for my problem, I have come across to this topic after struggling a lot to find a right web view for flutter. Unfortunately, this new plugin (still developer preview) has a big issue with Android when I tried to open keyboard. Would that be fixed when it comes to release.

assdfssdf

i think (foreign function interface)[https://flutter.dev/docs/development/platform-integration/c-interop] + (webkit)[https://github.com/WebKit/webkit] is best way. inline android webview or ios wkwebview is not good idea

i think foreign function interface + webkit is best way. inline android webview or ios wkwebview is not good idea

There are pros and cons (the obvious one is binary size).
I definitely see how for certain use case bundling a web engine would be the preferred choice.
It may be possible to add this as an alternative webview_flutter implementation by implementing the platform interface. If anyone gives it a shot I'm curious to lean about it!


Mention how empty strings are handled

Here are some examples:
// this is an error - there's no such thing as an empty bare string
key =

// maybe this _should_ be an error?
key = ""

// same as the quoted case above
key = \\

// this is not actually an empty string because there's a newline in there
key = \\
      \\

I think for compatibility with at least JSON, empty strings should be allowed, but this obviously means it must be quoted or raw.
I still need to document this in the README.


Jdcloud/init

What this PR does / why we need it:

add jd cloud constants
add jdcloud reigon&host&guest driver
feat: support JDCloud (Host read only)
update vendor

Does this PR need to be backport to the previous release branch?:
NONE

/area region
/cc @zexi @zhaoxiangchun @tb365

/cc @tb365

Codecov Report

Merging #11261 (a0a1934) into master (06f4b32) will increase coverage by 5.34%.
The diff coverage is 7.50%.

@@             Coverage Diff             @@
##           master   #11261       +/-   ##
===========================================
+ Coverage    5.80%   11.15%    +5.34%
===========================================
  Files         901      148      -753
  Lines      139239    17012   -122227
===========================================
- Hits         8088     1897     -6191
+ Misses     130444    14922   -115522
+ Partials      707      193      -514

Flag
Coverage Δ

aFlag
11.15% <7.50%> (+5.34%)
:arrow_up:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

pkg/compute/guestdrivers/jdcloud.go
7.50% <7.50%> (ø)

pkg/mcclient/options/k8s/fed_clusterrolebinding.go

pkg/keystone/models/initdb.go

pkg/compute/regiondrivers/kvm.go

pkg/compute/regiondrivers/base.go

pkg/cloudprovider/cloudprovider.go

pkg/compute/regiondrivers/google.go

pkg/compute/models/vpcs_mapped_address.go

pkg/compute/models/schedtagresource.go

pkg/cloudcommon/db/owner.go

... and 744 more

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 06f4b32...a0a1934. Read the comment docs.

/approve


Sort order of msgids in translations.pot

Hey,
We successfully run this tool in a project, works well. However, one thing that may be slightly inconvenient is if you version the template.pot file, the order of the strings are different from build to build even if no strings are changed. It may pose a problem in that it generates merge conflicts, could it be an idea to sort the msgids  alphabetically to mitigate this?

Found that there is an issue related to msgid order: https://github.com/c-3po-org/babel-plugin-c-3po/issues/48

Oh neat there was another issues there. Yeah I agree, string locations would also work and in fact might be a better option since whoever does the translation could actually get a little bit of context, if the strings that are close to each other in the template file share a similar context ie (view or location in the app).

@Axbon wow, great to hear that someone already tried this tool) I was investigating this issue a little bit already and I agree that sorting option must be implemented. I am using gettext-parser library for saving .po and .pot files and have an idea to make PR for that lib to support sorting option.

created PR for gettext-parser - https://github.com/smhg/gettext-parser/pull/31

this feature is already available in 0.2.0. You can use sortByMsgid : true in config to enable this (will be documented soon).
https://github.com/c-3po-org/babel-plugin-c-3po/pull/59


Add 2nd project to score

Adding the work done by us on the React Project to the scores here.

I don't have a way of verifying the scores are exactly correct, but it looks to me to be accurate--nice work!


Editing pass for clarity, grammar, spelling, punctuation, and usage.

Also added several anchors and links.
Thank you for taking time to contribute this pull request!
You might have already read the [contributor guide][1], but as a reminder, please make sure to:

Sign the contributor license agreement
Rebase your changes on the latest main branch and squash your commits
Add/Update unit tests as needed
Run a build and make sure all tests pass prior to submission

merged as 04d9683f49ed2a16832924d062ce800f3b4037cb


Story: Implement active/inactive filter logic for configurations, locations, and methods

Definition of Ready

[ ] Does this meet the INVEST criteria?
[x] Does this have a clearly defined user?
[x] Does this have an estimate?
[x] Does this have acceptance criteria?
[x] Does this have sufficient context (wireframes, business rules, etc.)?
[x] Is this traceable to a feature, epic, or PI?

User Story
As a user, I want to be able to view active and inactive Monitoring Plans, so that I can view all MPs assigned to facility per the wireframes.
Split from #491
Acceptance Criteria
Given a user selects a monitoring plan configuration
When options are displayed
Then options are available based off the logic below with active only as default
If an active configuration is selected, then the system will display only active locations, and only active monitoring methods.
If an inactive configuration is selected, then the system will display both active and retired locations, and both active and inactive monitoring methods.
Please see SQL for Active/Inactive MP Logic: https://usepa.sharepoint.com/sites/CAMDCVPTeam/Shared Documents/TheEmissioners/ActiveInactive MP Logic.msg
The logic in in the following stored procedure in the ECMPS Client Database.
•	ECMPS.[dbo].[UPDATE_MON_PLAN_CONFIGURATION]
Testing
Tester: @mosesdeeCVP
Test Case: TC81
Definition of Done

[x] Have all Acceptance Criteria been agreed to and validated by the scrum team?
[x] Has the code been unit tested and peer reviewed?
[x] Have the functional tests been executed?
[x] Have all defects been reviewed and dispositioned, resolved, or deferred?
[x] Has the user story been accepted by the Product Owner?
[x] Is the user story ready to be deployed to the staging/integration environment?

Will need updated wireframes for active/inactive toggle

Created a Test Case:
TC81 541 Implement active/inactive filter logic for configurations, locations, and methods

https://cvpcorp.testquality.com defect D11. Do not remove or edit.

Defect discovered:
In Chickasaw (Oris 5) among other the Configurations, Locations, Sections and Show Inactive fields are not visible. This may be due to it having no Inactive configurations at all, so the UI is not recognizing it.

The team reached a consensus that the Acceptance Criteria was met as was written, thus the ticket was closed. Bug ticket 805 will have its own User Story in order to enhance the functionality further.


documentation improvements, code has been cleaned up too 🤷♂

nuts

fr

Looks good for the most part, however the line "actorIndex %= actorCount + 1" does not work as you think it does. Also, in Usage, Users are NOT supposed to manually change the Pointer value. That is done automatically when calling the function.

i think i messed that up, let me check on it

found it, and fixed it, thanks for the letting me know

I think if you just correct the numbering order issue in the README, I'll merge


Avoiding Null Pointer Exception on line 113,148

Fixes #.
Motivation
Explain the content here.
Explain why you want to make the changes and what problem you're trying to solve.
Modifications
Describe the modifications you've done.
Documentation

Does this pull request introduce a new feature? (yes / no)
If yes, how is the feature documented? (not applicable / docs / JavaDocs / not documented)
If a feature is not applicable for documentation, explain why?
If a feature is not documented yet in this PR, please create a followup issue for adding the documentation

sure

these two changes or you should change it like this.

missing import.


Update to handle special case where tag key collides with keywords.

Utility function to see if "tag:" prefixed entry exist on tag group_by
Update report items logic to use utility function
Update SPANDX config for running local koku with latest insights-proxy
Update README with overview link

This handles the following special case:
https://github.com/project-koku/koku/pull/1690

@chambridge does this also cover the issue below?
https://github.com/project-koku/koku/issues/1658

Do we also want to update getComputedOcpCloudReportItems.ts as well?

@dlabrecq Yes, the koku PR referenced above (project-koku/koku#1690) addresses issue: project-koku/koku#1658

Codecov Report

Merging #1311 into master will decrease coverage by 0.05%.
The diff coverage is 57.14%.

@@            Coverage Diff            @@
##           master   #1311      +/-   ##
=========================================
- Coverage   75.45%   75.4%   -0.06%
=========================================
  Files         226     227       +1
  Lines        4542    4561      +19
  Branches      876     879       +3
=========================================
+ Hits         3427    3439      +12
- Misses        985     992       +7
  Partials      130     130

Impacted Files
Coverage Δ

src/utils/getComputedOcpCloudReportItems.ts
23.33% <14.28%> (+0.91%)
:arrow_up:

src/utils/getItemLabel.ts
45.45% <45.45%> (ø)

src/utils/getComputedAzureReportItems.ts
89.36% <80%> (+0.47%)
:arrow_up:

src/utils/getComputedOcpReportItems.ts
68.42% <83.33%> (+1.14%)
:arrow_up:

src/utils/getComputedAwsReportItems.ts
91.83% <83.33%> (+0.34%)
:arrow_up:

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 2b3ab5b...c996cb2. Read the comment docs.


AppImageKit

AppImageKit - Using AppImageKit you can package applications in the AppImage format that runs on common Linux-based operating systems, such as RHEL, CentOS, Ubuntu, Fedora, debian and derivatives; one app = one file.

Thanks! Appreciated. Loving the AppImage format.


Not able to deploy the old extension after modify

Hi Team,
I am getting the below error while deploying the extension in sandbox. I am modifying an old extension and then uploading its getting failed.
Please give your suggestion.
Error Msg:
Deployment failed. Errors: App ID : c8081857-e44d-4dce-929e-4ab1bfb3d77b Message : { The extension is not available for your release. Check the country and version availability in the extension marketplace. }
App ID : c85a4670-e818-469b-978f-c1c67f2d88c3 Message : { A request to the Data Plane Admin Service failed.
Http status code: BadRequest
Error:
{
Thanks & Regards,
Rathnakumar

Hi! This repository no longer handles general questions and is only dedicated to bug reports and feature suggestions for the AL compiler and developer tools.
You can find more information here https://docs.microsoft.com/en-us/dynamics365/business-central/dev-itpro/developer/devenv-deploy-tenant-customization .
Is the extension you are trying to publish an extension that has been published to AppSource? What do you mean by "old extension"?

As this issue concerns a production system we suggest that you open a support case and work with our customer support team to gather all the information necessary to fix this problem.
To open a support case, you can:

Open a support request to CSS through the PartnerSource portal
Contact your Service Account Manager (SAM) in your local subsidiary to understand what is included in your contract as of support incident and PAH (Partner Advisory Hours). Your SAM might also direct you "step by step" how to open a support request or how to get credentials, if this is the first time for you or your company


Omit error-stack-parser from the minified bundles

R: @addyosmani @gauntface
This is based off the discussion in https://github.com/GoogleChrome/sw-helpers/issues/361#issuecomment-298640521
It swaps out the real error-stack-parser module import for an import that has the same interface but is effectively a no-op. You lose a bit of context if an assertion fails without the real module, but our assertions are really meant to catch errors in a development environment, not after the service worker has been deployed.
This gets the production sw-lib.min.js bundle size down from 50249 bytes (14938 bytes gzip-ed) to 45450 bytes (13468 bytes gzip-ed).
I had to change a few of the tests that specifically examined the assertion failures to use the unminified bundle, but other than that, it's much less of a hack than it could have been.

Yeah, I've got a few ideas about renaming the build targets that I'd like to address as part of the overall CDN/distribution question, tracked at https://github.com/GoogleChrome/sw-helpers/issues/470


v2.0.0

v2.0.0
Breaking change - Added SQLite, removed PostgreSQL

v2.0.0

Bring back PostgreSQL, it's more robust and you can scale midarr in kubernetes

Bring back PostgreSQL, it's more robust and you can scale midarr in kubernetes

Exactly.. SQLite will corrupt within a week on network storage -.-

How is this even named an "improvement"?

SQLite has it's usecases, it's much lower latency for example, but still Postgres is much more reliable and has proper support for scaling and sharding.

It's also relatively easy to support both, they have the same SQL syntax except for 2 things:

In place of variables SQLite expects ? whereas Postgres uses %s
Primary key is integer in SQLite whereas Postgres uses serial
Both of those cases can be easily adjusted using local variables, like I did here

SQLite has it's usecases, it's much lower latency for example, but still Postgres is much more reliable and has proper support for scaling and sharding.

Definately true, more in the sense of "when is removing a feature" an improvement if the new features isn't 100% superior".

like I did here

Going to keep that project in mind btw ;-)

like I did here

Going to keep that project in mind btw ;-)

If you like that, check this out.


Deleting a pointer causes crash randomly

When declaring and opening a pointer, deleting said pointer while it is extended will cause reclass to crash.
It doesn't happen all the time, usually when I have a lot going on.
http://prntscr.com/764bni

I'm not able to reproduce.


HP user Get Permission fails with error: ETIMEDOUT <IP_ADDRESS>:443

please contact<EMAIL_ADDRESS>via email
Storage Explorer Version: 1.12.0
Build Number:
Platform/OS: Windows
Architecture: x64
Regression From:
User adds resource https://dtsazstackhub.dfs.core.windows.net/azurestack/HPE
User is unable to authenticate
Error from Azure Storage Explorer
Get Permission fails with error:
{
"message": ""{\n  \"name\": \"FetchError\",\n  \"message\": \"request to https://dtsazstackhub.dfs.core.windows.net/azurestack/%2F?action=getAccessControl&upn=true&timeout=60 failed, reason: connect ETIMEDOUT <IP_ADDRESS>:443\",\n  \"type\": \"system\",\n  \"errno\": \"ETIMEDOUT\",\n  \"code\": \"ETIMEDOUT\",\n  \"stack\": \"FetchError: request to https://dtsazstackhub.dfs.core.windows.net/azurestack/%2F?action=getAccessControl&upn=true&timeout=60 failed, reason: connect ETIMEDOUT <IP_ADDRESS>:443\\n    at ClientRequest. (C:\\\\Program Files (x86)\\\\Microsoft Azure Storage Explorer\\\\resources\\\\app\\\\node_modules\\\\node-fetch\\\\lib\\\\index.js:1455:11)\\n    at ClientRequest.emit (events.js:182:13)\\n    at TLSSocket.socketErrorListener (_http_client.js:391:9)\\n    at TLSSocket.emit (events.js:182:13)\\n    at emitErrorNT (internal/streams/destroy.js:82:8)\\n    at emitErrorAndCloseNT (internal/streams/destroy.js:50:3)\\n    at process._tickCallback (internal/process/next_tick.js:63:19)\"\n}""
}
Get Properties fails with error:
{
"name": "FetchError",
"message": "request to https://dtsazstackhub.blob.core.windows.net/azurestack?restype=container failed, reason: connect ETIMEDOUT <IP_ADDRESS>:443",
"type": "system",
"errno": "ETIMEDOUT",
"code": "ETIMEDOUT",
"stack": "FetchError: request to https://dtsazstackhub.blob.core.windows.net/azurestack?restype=container failed, reason: connect ETIMEDOUT <IP_ADDRESS>:443\n    at ClientRequest. (C:\Program Files (x86)\Microsoft Azure Storage Explorer\resources\app\node_modules\node-fetch\lib\index.js:1455:11)\n    at ClientRequest.emit (events.js:182:13)\n    at TLSSocket.socketErrorListener (_http_client.js:391:9)\n    at TLSSocket.emit (events.js:182:13)\n    at emitErrorNT (internal/streams/destroy.js:82:8)\n    at emitErrorAndCloseNT (internal/streams/destroy.js:50:3)\n    at process._tickCallback (internal/process/next_tick.js:63:19)"
}

Issue mitigated over email.


target_compile_features specified unknown feature

Version of Boost
develop
Steps necessary to reproduce the problem
We just started getting this error in CI:
CMake Error at libs/json/CMakeLists.txt:57 (target_compile_features):
  target_compile_features specified unknown feature "_SCL_SECURE_NO_WARNINGS"
  for target "boost_json".

The complete output: https://github.com/boostorg/url/actions/runs/5336814814
All relevant compiler information
The error happens in MSVC 14.34, MSVC 14.29, MinGW, and clang-cl.

Oops, that was a bad copypaste on my part.

Can you check if #911 fixes this?

I had a look at #911, if target_compile_definitions(${target} PRIVATE _SCL_SECURE_NO_WARNINGS) doesn't fix the original problem, it sure won't cause other people this problem (#910). The definition is even private.


Waterfox G6.0.3

[x] Have you signed the Contributor License Agreement?
[x] Have you checked that there aren't other open pull requests for the same manifest update/change?
[x] This PR only modifies one (1) manifest
[ ] Have you validated your manifest locally with winget validate --manifest <path>?
[ ] Have you tested your manifest locally with winget install --manifest <path>?
[x] Does your manifest conform to the 1.5 schema?

Note: <path> is the name of the directory containing the manifest you're submitting.

Microsoft Reviewers: Open in CodeFlow

Excuse me?

Is there a way to resolve the thing where installing without a scope fails? I’ve tried adding a scope field to the root

Is there a way to resolve the thing where installing without a scope fails? I’ve tried adding a scope field to the root

This would be up to the package's developer. Unfortunately, this package's behavior is somewhat unique - I can't think of another package which uses elevation to determine install scope. Most use a switch, and some will only install in one or the other.
If it helps, the Machine scope is passing. User scope is failing Manual Validation due to the dependency not having a user scope:
2023-10-04 14:01:08.300 [CLI ] Starting installer selection.
2023-10-04 14:01:08.300 [CLI ] Installer [X64,burn,Machine,] not applicable: Installer scope does not match required scope: Machine != User
2023-10-04 14:01:08.303 [CLI ] No suitable installer found for manifest Microsoft.VCRedist.2015+.x64 with version 14.38.32919.0
2023-10-04 14:01:08.304 [CLI ] Terminating context: 0x8a150104 at D:\a\_work\1\s\external\pkg\src\AppInstallerCLICore\Workflows\DependenciesFlow.cpp:11a

I'm pretty sure Firefox's offline installer (e.g. https://cdn.stubdownloader.services.mozilla.com/builds/firefox-latest-ssl/en-US/win/dd343b8ca7f4c9e3bea506184bbaaa626e70c72547a50f8dbe993bd891819693/Firefox Setup 118.0.1.exe) also does that

I wish installation logs were public and we didn't need maintainers for them

Automatic Validation ended with:

Installation failed with exit code -1978335146

@aaronliu0130,
The logs are publicly available. Inside the ADO run, there's a link to the run artifact zip file. Or maybe run the scripted process with the run link in your clipboard.

@wingetbot waivers Add Validation-Installation-Error

Unresolved conversations

2 conversations must be resolved before merging.

I did not resolve to await a reply at first, but it doesn't appear any more action is needed so they are now resolved..


Add Byte[] support for HighlightCode

as title self explain adding byte support for HighlightCode is necessary sometime we store byte data in DB it also help to preserve tabs and spaces. B64 is not preferred method due to expanded size after encoded

Added in 3.1
HighlightCode is the recommended Component by default and if you experience rendering issues with HighlightCS (especially in loop)


No shutdown when clicking on shutdown in gamepadui

Hi, I wonder if I am missing something but when I try to shutdown I just get kicked to lightdm.
I have set lightdm to autologin into the gamescope-session.
Another thing that might be just a thing of some config is the switch to desktop button which does nothing for me and maybe there's a way I could change that.

Ok, when I log back in to the session the shutdown gets finished...
Can I fix that somehow?

Ok, when I log back in to the session the shutdown gets finished... Can I fix that somehow?

That would depend on Valve to fix. They even added this comment to the session since the client seems to be misbehaving:
# Workaround for steam getting killed immediatly during reboot
export STEAMOS_STEAM_REBOOT_SENTINEL="/tmp/steamos-reboot-sentinel"
if [[ -e "$STEAMOS_STEAM_REBOOT_SENTINEL" ]]; then
	rm -f "$STEAMOS_STEAM_REBOOT_SENTINEL"
	reboot
fi

# Workaround for steam getting killed immediatly during shutdown
# Same idea as reboot sentinel above
export STEAMOS_STEAM_SHUTDOWN_SENTINEL="/tmp/steamos-shutdown-sentinel"
if [[ -e "$STEAMOS_STEAM_SHUTDOWN_SENTINEL" ]]; then
	rm -f "$STEAMOS_STEAM_SHUTDOWN_SENTINEL"
	poweroff
fi

You won't notice that behaviour if using lightdm with autologin but if you enter it by normal greeter login will seem wonky. I'll investigate further to try and see if those sentinel catches can be reversed.

I think I fixed it with this: https://github.com/Samsagax/gamescope-session/commit/c45dc1367fdd05bf57c9775d25e373dbb52f1aa2
Please retest.

yes, works great now. Thanks!


[W5.11][T09-A3] Shamsheer Ahamed

Added a sort Command, User Guide, and Tests.
Added the ability to list information after add or delete command.

@A0158738X Some comments added. Please close the PR after reading comments.


Nav Toggleable show event not firing on Android device.

Bootstrap: 4 beta 2
OS: Android 26? 27
Device: Galaxy S7 and Emulator
With a togglable nav the show event does not seem to be called on androids. I noticed popup modals also do not work.
What it does?
Click on the collapsed Icon, i.e. the Hamburger Icon and nothing opens|shows.
What is expected?
Click on the collapsed Icon, i.e. the Hamburger Icon the navigation menu displays.
I have an example at:
www.roaringbrookbaptistchurch.org/RBBC/public

Bug reports must include a live demo of the problem. Per our contributing guidelines, please create a reduced test case via CodePen or JS Bin and report back with your link, Bootstrap version, and specific browser and OS details.

Ok I'm not sure if this is displaying the same issue since I don't have an Android to test with at the moment. I only noticed it on the Android or using the Emulator to view the site.
https://jsbin.com/jafufac/edit?html

the roaringbrook site in Chrome/Windows gives the following error in console:
Failed to find a valid digest in the 'integrity' attribute for resource 'https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta.2/js/bootstrap.min.js' with computed SHA-256 integrity 'GIa8Vh3sfESnVB2CN3rYGkD/MklvMq0lmITweQxE1qU='. The resource has been blocked.

So not purely an Android problem, but perhaps a problem with MaxCDN? @XhmikosR @mdo

Nothing to do with us or BootstrapCDN for that matter. The site is using the wrong SRI hash, thus it's being blocked.

The right script is this:
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta.2/js/bootstrap.min.js" integrity="sha384-alpBpkh1PFOepccYVYDB4do5UnbKysX5WZXm3XxPqe5iKTfUKjNkCk9SaVuEZflJ" crossorigin="anonymous"></script>

Closing since it's not our issue.


Add HubSpot social media marketing platform crawler

See github issue: https://github.com/WhichBrowser/Parser-PHP/issues/505
Link: https://www.hubspot.com/

Coverage increased (+0.02%) to 99.97% when pulling d526d44c93fc66f9a3a5f0cdf522c51d9ae265c3 on ayumi-cloud:HubSpot into 880b9fa797401d14b28956442944c3daa70240ff on WhichBrowser:master.

@NielsLeenheer Please can you merge this pr.

Fixed in 49ad4c3aee05a039b4b948023ea8ed8869e1c83c

Fixed in 49ad4c3aee05a039b4b948023ea8ed8869e1c83c


add toHaveHtml matcher

I think this would be a very brittle selector. Using toHaveClass and toHaveTag seems like a better approach.

Fair enough. Thanks for the PR!

@unindented
appreciate your quick response!
will you release a new version as well?

Yup. I'm at work now, but I'll try to do it ASAP.

2.1.0 published. Have a good weekend!


Update EHR-embedded Config

Update EHR-embedded config with updates to freestanding config

What's the thing you want me to test w/ this?

What's the thing you want me to test w/ this?

@lober
I don't necessarily expect reviewers to test this PR themselves, but even a quick skim can catch minor typos/oversights.
This PR is mostly record-keeping for reproducible deploys. I've functionally tested this PR as I set up our staging demo deploy.


Missing License

Hi!
First and foremost thanks for the project! I am currently working on packaging this software for a Linux distribution (NixOS). I noticed the license is missing, that makes my packaging harder. Is this project free? If so, what license does it have? It may be worthy to add a license at the root of this project.
Thanks again!

Taking care of this ASAP, thanks!

#75


Eager for v1.0! Any ETA?

@lvillis  This is solved now. As in https://github.com/dunglas/frankenphp/releases/tag/v1.0.0


Release 24.11.0

Add [Withdrawn] to the beginning of the og:title meta tag for withdrawn pages (PR #2066)
Fix accordion anchor link navigation bug (PR #2087)
Remove jQuery from the feedback component (PR #2062)
Remove display: none rules from component print stylesheets, and use the govuk-!-display-none-print class instead. (PR #1561)
Fix IE11 initCustomEvent error (PR #2079)

I think this release should be more than a patch bump given the number of things that have changed.

@thomasleese Is the branch name significant? If Jenkins is going to be using it I think I'll need to re-open the PR.

The branch name shouldn't matter.

Couple o' thinks:

Does jenkins use the branch name or the PR title? If it uses the branch name then yes you'll have to rename the branch otherwise the release is technically going to be misleading (a minor change, not a fix). Sorry 😬
How critical is this? We've got some link style work that's nearly done. We want to avoid release noise if we can so if this can wait a few days that'd be really cool.

Does jenkins use the branch name or the PR title? If it uses the branch name then yes you'll have to rename the branch otherwise the release is technically going to be misleading (a minor change, not a fix). Sorry 😬

The branch name will appear in the merge commit added by GitHub, but the release is generated from the version number, not the branch name.

How critical is this? We've got some link style work that's nearly done. We want to avoid release noise if we can so if this can wait a few days that'd be really cool.

@nicholsj Do you have an opinion on this?

@nicholsj Do you have an opinion on this?

I spoke to Jonathan, and we don't mind waiting a few days.
Although I wonder, is it really so bad to have lots of releases?

@thomasleese Cheers Tom. Let me know if we end up taking too long. Don't wanna block things being good :)
Re: many releases, this was a discussion by the govuk frontend community that we'd like to avoid a lot gem releases in a short space of time if we can help it as we've noticed that less-loved frontend apps might "skip" a few releases, meaning that those dependabot PRs are sometimes secretly piping in a lot of new features which can lead to less control over what goes out in a given release. Admittedly that's off the top of my head. If you wanted to discuss this in more detail with the FEs and get a better idea of the decision I can air drop in a few of the devs who were involved in the decision.
In this case I maybe wouldn't mind splitting the releases as the link style work we're doing means there'd b a looooot of lines in the changelog.

👋  Just an update that we haven't quite finished the link style work I mentioned just yet and I'll be going on AL after today. I'd recommend merging this in and we can create a separate release for the link style work.


Msix psf

Hi @Pollewops - Seems like your description was not updated. Can you add a description to your problem?

Sorry mistake


Rebuild project artifacts

The relevant file is https://github.com/INCATools/kgcl/blob/f49dd3e56280eef8a40eafc629e1080819501dc2/project/owl/kgcl.owl.ttl - see, for example, MultiNodeObsoletion.
Before:
kgcl:MultiNodeObsoletion a owl:Class ;
    rdfs:label "MultiNodeObsoletion" ;
    rdfs:seeAlso <https://github.com/cmungall/obo-scripts/blob/master/obo-obsoletify.pl> ;
    rdfs:subClassOf [ a owl:Restriction ;
            owl:allValuesFrom kgcl:NodeObsoletion ;
            owl:onProperty kgcl:change_set ],
        [ a owl:Restriction ;
            owl:minCardinality 0 ;
            owl:onProperty kgcl:associated_change_set ],
        [ a owl:Restriction ;
            owl:maxCardinality 1 ;
            owl:onProperty kgcl:change_description ],
        [ a owl:Restriction ;
            owl:allValuesFrom xsd:string ;
            owl:onProperty kgcl:change_description ],
        [ a owl:Restriction ;
            owl:minCardinality 0 ;
            owl:onProperty kgcl:change_set ],
        [ a owl:Restriction ;
            owl:minCardinality 0 ;
            owl:onProperty kgcl:change_description ],
        [ a owl:Restriction ;
            owl:maxCardinality 1 ;
            owl:onProperty kgcl:associated_change_set ],
        [ a owl:Restriction ;
            owl:allValuesFrom xsd:string ;
            owl:onProperty kgcl:associated_change_set ],
        kgcl:ComplexChange ;
    skos:altLabel "multi class obsoletion",
        "multi concept obsoletion",
        "multi node deprecation",
        "multi term obsoletion" ;
    skos:definition "A complex change consisting of multiple obsoletions." ;
    skos:inScheme <https://w3id.org/kgcl> .

After (this PR):
kgcl:MultiNodeObsoletion a owl:Class ;
    rdfs:label "MultiNodeObsoletion" ;
    rdfs:seeAlso <https://github.com/cmungall/obo-scripts/blob/master/obo-obsoletify.pl> ;
    rdfs:subClassOf [ a owl:Restriction ;
            owl:allValuesFrom owl:Thing ;
            owl:onProperty kgcl:associated_change_set ],
        [ a owl:Restriction ;
            owl:maxCardinality 1 ;
            owl:onProperty kgcl:change_description ],
        [ a owl:Restriction ;
            owl:minCardinality 0 ;
            owl:onProperty kgcl:associated_change_set ],
        [ a owl:Restriction ;
            owl:allValuesFrom kgcl:NodeObsoletion ;
            owl:onProperty kgcl:change_set ],
        [ a owl:Restriction ;
            owl:minCardinality 0 ;
            owl:onProperty kgcl:change_description ],
        [ a owl:Restriction ;
            owl:minCardinality 0 ;
            owl:onProperty kgcl:change_set ],
        [ a owl:Restriction ;
            owl:maxCardinality 1 ;
            owl:onProperty kgcl:associated_change_set ],
        [ a owl:Restriction ;
            owl:allValuesFrom xsd:string ;
            owl:onProperty kgcl:change_description ],
        kgcl:ComplexChange ;
    skos:altLabel "multi class obsoletion",
        "multi concept obsoletion",
        "multi node deprecation",
        "multi term obsoletion" ;
    skos:definition "A complex change consisting of multiple obsoletions." ;
    skos:inScheme <https://w3id.org/kgcl> .

a major difference being introduction of
    rdfs:subClassOf [ a owl:Restriction ;
            owl:allValuesFrom owl:Thing ;
            owl:onProperty kgcl:associated_change_set ],

robot convert -I https://raw.githubusercontent.com/INCATools/kgcl/f49dd3e56280eef8a40eafc629e1080819501dc2/project/owl/kgcl.owl.ttl -o /tmp/foo.owl && grep Error foo.owl
empty. Hurrah!
yes that is a convoluted way to test. Because. OWL.
For good measure, looks as expected in Protege:


Validate design for token-gating

Gotta make sure something like this design will work: https://miro.com/app/board/uXjVOThSrCM=/

Only just noticed this, got to update my notification settings 😅. We've already discussed some things in our 1-on-1's but I will take a closer look at it ASAP and discuss with Jaron for any fresh ideas


'LockStorage' has no member 'mutex' on Win11

C:\Users\User\Desktop\AvocadoToast.build\checkouts\swift-nio\Sources\NIOConcurrencyHelpers\lock.swift:225:74: error: value of type 'LockStorage' has no member 'mutex'
if !SleepConditionVariableSRW(self.cond, self.mutex._storage.mutex,
~~~~~~~~~~~~~~~~~~~ ^~~~~
error: fatalError

Currently SwiftNIO does not compile on Windows, unfortunately. For a number of reasons this is not a supported platform. Closing this to keep everything tracked under #2065.


CompletedAssigment

Finished all, could make this framework more beauty by using Cucumber, but didn't have enough time.

There are some formatting issues, tear down is not provided, dragDrop assertion is not present, openInNewTab test is not switching to new tab, TODO on javaScriptAlerts. Please address these and any other issues and resubmit.

ok let me check. There was a lot of work )
On Wed, Sep 23, 2020 at 11:44 AM hbahuguna2<EMAIL_ADDRESS>wrote:

There are some formatting issues, tear down is not provided, dragDrop
assertion is not present, openInNewTab test is not switching to new tab,
TODO on javaScriptAlerts. Please address these and any other issues and
resubmit.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/Dotdashcom/take-home-webdriver-test/pull/55#issuecomment-697570579,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AO3BSRVDREZ3F7XAASJTZT3SHIJXVANCNFSM4RXCAGGQ
.

For some reason drag and drop not working, so  I can not assert it.

others requirements I fixed


UWP .appinstaller - “Error in parsing the app package.”

I get the "Error in parsing the app package" any idea what I could be doing wrong? below is my appinstaller

<MainBundle
    Name="MainApp"
    Publisher="CN=EGSolutions"
    Version="<IP_ADDRESS>"
    Uri="http://mywebservice.azurewebsites.net/EGClockingXamarin.UWP_<IP_ADDRESS>_x86_x64_arm_Debug.appxbundle" />

<Dependencies>
    <Package Name="Microsoft.NET.CoreRuntime.2.1" Publisher="CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US" Version="14.0.24605.0" ProcessorArchitecture="x86" Uri="http://foobarbaz.com/Microsoft.NET.CoreRuntime.2.1.appx" />
    <Package Name="Microsoft.VCLibs.ARM.Debug.14.00" Publisher="CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US" Version="14.0.24605.0" ProcessorArchitecture="x64" Uri="http://foobarbaz.com/Microsoft.VCLibs.ARM.Debug.14.00.appx" />
</Dependencies>

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

ID: 2254d309-a79d-b6ed-fb4c-73ef689b76ec
Version Independent ID: 96fa695b-4f0e-4d09-4b26-f7a501a78c9c
Content: Installing UWP apps from a web page - UWP app developer
Content Source: windows-apps-src/packaging/installing-UWP-apps-web.md
Service: unspecified
Product: windows
GitHub Login: @laurenhughes
Microsoft Alias: lahugh

I'm facing the same issue "Error in Parsing the app package."

@DabidMhluzi  Yes, I got this working.  I guess you missed to set MIME types. Check this link: https://docs.microsoft.com/en-us/windows/uwp/packaging/create-appinstallerfile-vs.
May I know what version and build of Windows 10 you are in ?

@DavidMhluzi, were you able to get this working? You may need to install a newer version of Windows 10.

Same isssue For me "Error in Parsing the app package.", I added the MiMe types to my apche server config but with no success.
any progress ?

any idea how to make it work, every time it gives the error in parsing package
i have run the sample app provided in the docs.microsoft.com also
https://github.com/AppInstaller/MySampleWebApp
that also giving same error

i think the issue was with network isolation becz of localhost, when i hosted in azure it worked fine .

jashif is correct,
https://docs.microsoft.com/en-us/windows/uwp/packaging/web-install-iis
Carry out the first 2 actions in Step 8

Run Powershell Command:
Add-AppxPackage -path "C:\Path\To\Your\UWP\Package"

Thanks for submitting your feedback. If anyone on this thread is still encountering problems with App Installer-related issues, please post your question at the MSIX Tech Community Forum. If you have feedback or change requests against the docs, please open another issue against the article or feel free to submit your own pull request change.


pynisher pin and test

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.


Visualize cross section longitude/latitude curves on mesh

For annotating it can be useful to see the cross-section of the mesh at the current point  - that is  the intersection in the z-x and z-y planes at the current point. This can be visualised as a line overlaid on the viewport, or as a small view embedded in the viewport.
This can be useful to aid the user in exploiting symmetries and points of maximum curvature on  the mesh, especially useful in the case of faces.
However, this generally is only useful if the mesh has a sense of direction or 'front' and 'up'. Then, the mesh can be aligned, e.g. so
front --mappedto--> [0, 0, 1]
up    --mappedto--> [0, 1, 0]

and now the z-x and z-y have special meaning.
In terms of implementation this thus involves two considerations:

Adding a concept of direction to meshes - see #13
Efficiently generating the visualisation of the isolines. This can be most easily solved by sampling from a depth or shape buffer - need to see how this can be accessed from THREE.

This is now much more feasible since #72. It's on the back burner as it's not something we've had requested in a while, but wouldn't be that hard to implement now.


Collapsible list is looking jerky while opening

RMWC Version - 5.6.0
Iam trying to write my own custom header and body for the collapsible list. But, while opening the list for that it is looking jerky. I think max-height is calculated wrongly while opening the list. Not sure on the issue.
Reproducible in the following sandbox,
https://codesandbox.io/s/react-example-qo2pf?fontsize=14
You can find that transition is not applied to the last item in the collapsible list.

UPDATE:
On digging into the issue, it is found that margin-block-start and margin-block-end which are applied by default to  are not computed to its parents height (i.e., to rmwc-collapsible-list__children-inner). Hence, max-height of body component is computed with wrong height and looks jerky. I think its because of margin-collapsing.
For now, fixed this issue by setting overflow: auto to the rmwc-collapsible-list__children-inner.

Thanks for investigation that. I think including them margin in the calculation would be a bad assumption to make, but I like your workaround of overflow: auto. I'll look to see if that causes any other side effects but it seems like a reasonable fix.

Such a random simple fix. Confirming that it works. Will go out in the next release!

Released with 5.7.0


Save map to file

Currently it generates new map every time game starts

Whether this makes sense depends on this game should be an action game, where stuff just happens quickly, or something where you spend more time working on stuff as in minecraft.


Modals example is missing Page import

The Modals has this part:

import {Modal, NavController} from 'ionic/ionic';

@Page({
  template: `
  <ion-content padding>

I'm a modal!

    <button (click)="close()">Close</button>
  </ion-content>`
})
class MyModal {
  constructor() {
  }
}

For upper part to work, the Page needs to also be imported from ionic/ionic.

Modal component docs has also false syntaxing with markdown.

There's also no info on how to retrieve parameters in modal after we send them to modal using let modal = Modal.create(ModalFilter, {data: 'param'});
:+1:

fixed via https://github.com/driftyco/ionic/commit/2621a87f5cecb125014a1ce18671afed8e36f913


Credentials problem connecting VS Code to container

Used NavContainerHelper to create new container with latest BC image & specified Windows auth, but VS Code project will not download symbols - fails with a credentials error.
Created a new container using this command:
New-NavContainer -containerName D365GB -accept_eula -accept_outdated -assignPremiumPlan -auth Windows -ClientServicesPort 7346 -DeveloperServicesPort 7349 -doNotExportObjectsToText -imageName mcr.microsoft.com/businesscentral/sandbox:gb -alwaysPull -includeCSide -ManagementServicesPort 7345 -memoryLimit 4G -ODataServicesPort 7348 -SoapServicesPort 7347
That processed through, on the way it opened a credentials dialogue with my Windows username already populated & I entered a password (same as my Windows one just to be sure). Processing completed with these messages:
Digest: sha256:651a503722401ff319f69dec84e44f32d2031e39c1ca0bf8a69fe23561c7cc1d
Status: Downloaded newer image for mcr.microsoft.com/businesscentral/sandbox:gb-ltsc2016
Using image mcr.microsoft.com/businesscentral/sandbox:gb-ltsc2016
Creating Nav container D365GB
Version: 14.1.32615.0-GB
Platform: 14.0.32600.0
Generic Tag: <IP_ADDRESS>
Container OS Version: 10.0.14393.2969 (ltsc2016)
Host OS Version: 10.0.17134.765 (1803)
The container operating system does not match the host operating system, forcing hyperv isolation.
Using hyperv isolation
Creating container D365GB from image mcr.microsoft.com/businesscentral/sandbox:gb-ltsc2016
ac5057618ffa17e3b879aa9e5e582492a217a1d7ff2337b1ee9231ead2b25ce7
Waiting for container D365GB to be ready
Initializing...
Starting Container
Hostname is D365GB
PublicDnsName is D365GB
Using Windows Authentication
Starting Local SQL Server
Starting Internet Information Server
Modifying Service Tier Config File with Instance Specific Settings
Starting Service Tier
Registering event sources
Creating DotNetCore Web Server Instance
Enabling Financials User Experience
Creating http download site
Creating Windows user MYNAMEHERE
Setting SA Password and enabling SA
WARNING: This license is not compatible with this version of Business Central.
Creating SUPER user
WARNING: This license is not compatible with this version of Business Central.
WARNING: This license is not compatible with this version of Business Central.
WARNING: This license is not compatible with this version of Business Central.
Assign Premium plan for D365GB\MYNAMEHERE
Container IP Address: [snip]
Container Hostname  : D365GB
Container Dns Name  : D365GB
Web Client          : http://D365GB/NAV/
Dev. Server         : http://D365GB
Dev. ServerInstance : NAV
Files:
http://D365GB:8080/al-3.0.124247.vsix
Initialization took 279 seconds
Ready for connections!
Reading CustomSettings.config from D365GB
Creating Desktop Shortcuts for D365GB
Nav container D365GB successfully created
Using the shortcuts that were created by the process:
Web client - opened OK with no dialogue.
Windows client - failed with no connection to D365GB:7346/NAV - fair enough, expected that
C/SIDE - fails with this message;

And goes to this dialogue:

If I change it to "database server authentication" and put in user "SA" and the password I entered, it will connect and allow me to open the object designer.
Go to VS Code and setup a new project with launch.json like this:

server = DevServer name from container output
serverinstance = DevServerInstance name from container output
port = Developer services port specified in original command line
authentication = Windows as in original command line
All as shown in this link:
https://docs.microsoft.com/en-us/dynamics365/business-central/dev-itpro/developer/devenv-get-started-container-sandbox
Ctrl+Shift+P and clear the credentials cache - OK
Ctrl+Shift+P and select download symbols - FAIL with the message:

Out of desperation, I've tried changing the launch.json authentication to "UserPassword" and it will ask me for the username & password over and over, each time it says:

I've tried it with both my Windows user name & with SA login created by the container helper and the same thing happens.
Now the odd thing is, if I copy/paste the URLs it says it is sending the requests to into a browser, it asks for credentials, so I put in my Windows user name & password and it allows me to download and save the files!
I notice that the launch.json has a "windows" command:

But it's not documented here so I'm not sure if it is any use:
https://docs.microsoft.com/en-us/dynamics365/business-central/dev-itpro/developer/devenv-json-files
So where am I going wrong with all this?

The container is not a domain - it is just a machine.
And that machine just happens to have a user with the same name and password as you have on the host - this is what makes Windows Auth. work.
Having said that - on my sessions where I talk about the things that has caused most problems with Docker and NAV/BC - you are hitting two of top 3.

You are using Windows 10 1803 as a host and as a consequence Windows Server 2016 images - worst combo. If you specify -useBestContainerOS, then it will replatform the image and run with 1803 servercore in the container - that might change something.
The username you provide to the container should be without a domain name - just MYNAMEHERE and the same password as on the host,

Or... - use NavUserPassword - that always works.

Did you manage to solve this issue?

Thanks for the advice but I still could not get it to work. Eventually decided that I had wasted too much time trying, gave up and removed Docker completely. Besides which, Docker was eating into my C drive too much and I had to make space for Windows updates. Plenty of space on my D drive but Docker didn't like installing there. I changed what config I could find and used a symbolic link to shift some stuff but it still ate up too much space on C for something that wasn't working. So, bye bye Docker.

Whatever works for you, thanks for the heads up.


Better handling of dnsName->commonName promotion

Recent changes to boulder (https://github.com/letsencrypt/boulder/pull/4275) mean that we can no longer be certain that the first dnsName specified on a Certificate will be promoted to be the commonName.
This makes our own comparison logic of "is this certificate up to date" no longer work, as we currently exclusively promote the first dnsName and require that the CN is set to the value of the first dnsName.
In a larger context, this prompts me to think we should 'revamp' how we determine if an x509 certificates matches the Certificate resource spec.
Describe the solution you'd like
If a user does not specify a CN at all, we should be more flexible as to what the CN value is set to, and perhaps just ignore mismatches there altogether (or perhaps just verify that the CN on the x509 certificate matches any one of the dnsNames on the Certificate resource).
ref #1812
/cc @cpu
/area api
/kind feature

(or perhaps just verify that the CN on the x509 certificate matches any one of the dnsNames on the Certificate resource).

If non-empty, that sounds like the best behaviour here :+1:

Fixed in v0.11 😄


chore: add feature

When I build the utils with 1.28.0-nightly (f352115d5 2018-05-15), it could not compile crossbeam-utils.
error: the struct `#[repr(align(u16))]` attribute is experimental (see issue #33626)
  --> /Users/loveknut/.cargo/registry/src/github.com-1ecc6299db9ec823/crossbeam-utils-0.4.0/src/cache_padded.rs:19:1
   |
19 | #[repr(align(64))]
   | ^^^^^^^^^^^^^^^^^^
   |
   = help: add #![feature(repr_align)] to the crate attributes to enable

error: non-string literals in attributes, or string literals in top-level positions, are experimental (see issue #34981)
  --> /Users/loveknut/.cargo/registry/src/github.com-1ecc6299db9ec823/crossbeam-utils-0.4.0/src/cache_padded.rs:19:1
   |
19 | #[repr(align(64))]
   | ^^^^^^^^^^^^^^^^^^
   |
   = help: add #![feature(attr_literals)] to the crate attributes to enable

error: aborting due to 2 previous errors

error: Could not compile `crossbeam-utils`.

so I add this two feature.

repr(align(u16)) should have been stabilized, so we should not need a feature flag at all.  I think what you reported is due to a transient bug introduced in Rust nightly.  In a more recent nightly (rustc 1.28.0-nightly (a3085756e 2018-05-19)), the problem went away.  Would you please check your code with the latest nightly?

And I have to say that I really like your picture of psyduck :smile:

@jeehoonkang  I find this problem solved after update the nightly ：）


ci: switch rust actions in workflows

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

Project coverage is 92.69%. Comparing base (e06032c) to head (844385a).

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #107   +/-   ##
=======================================
  Coverage   92.69%   92.69%
=======================================
  Files          46       46
  Lines        2997     2997
=======================================
  Hits         2778     2778
  Misses        219      219

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


Enforce MTA-STS for justice.gov.uk

Change policy to Enforce

Providing feedback on changes to CAB.

CAB approved

PR: https://github.com/ministryofjustice/mta-sts/pull/19


Can't get rid of isHeaderVisibleIOS deprecation warning

Environment
Doesn't matter
Platforms
iOS
Versions
Latest version.
Description
isHeaderVisibleIOS is deprecated. If I pass customHeaderIOS without isHeaderVisibleIOS it's now shown due to this code: https://github.com/mmazzarolo/react-native-modal-datetime-picker/blob/master/src/DateTimePickerModal.ios.js#L175
So I can't get rid of this deprecation warning: https://github.com/mmazzarolo/react-native-modal-datetime-picker/blob/master/src/DateTimePickerModal.ios.js#L82
Please notice that the built-in iOS header will not be supported anymore in the future. If you're still planning to show a header, it's recommended to provide your own header implementation using "customHeaderIOS" (which will continue to be supported).

@mmazzarolo I can take this one!


[2021-04-16] - CRDs are created with api-approved annotation, but did not complete API review

Bug Report
https://github.com/kubernetes-sigs/container-object-storage-interface-api/blob/master/kustomization.yaml#L10 adds an api-approved annotation to all loaded CRDs
The APIs in question have not actually been approved via the k8s API review process
Additionally, using a mixin to automatically add the annotation to all CRDs is not appropriate... it confers approval status on any newly introduced CRDs or updates to CRD manifests without actual review / approve.
As noted in https://github.com/kubernetes/enhancements/blob/master/keps/sig-api-machinery/2337-k8s.io-group-protection/README.md#proposal, until the API is approved, a string starting with unapproved can be used as a placeholder
cc @thockin

Thanks for the heads up @liggitt I am opening a PR shortly to resolve this!


add output for progress through geometry clean operations

Hi Robbie
Is your feature request related to a problem? Please describe.
When you are cleaning the geometry of a section with a large number of mesh elements, it can take a significant amount of time (like an hour+ for complex sections) with nothing being fed back to the user to indicate progress if you haven't used verbose=True.
There is currently no feedback on progress through this sometimes lengthy process if verbose=False is used, for example when you display the results for other procedures with (time_info=True) it gives you the time taken and what is being looked at as an analysis is stepped through. The geometry clean routine can take significantly longer than the other section property calculations, but there is no time feedback for this process currently.
Describe the solution you'd like
In its most basic form of timing each geometry clean subroutine it might look like below to provide some ongoing feedback to the user through the clean process in a similar way to all the other time_info code for other calculations. without needing to resort to verbose=True to see if its making progress.
if time_info:
            text = "--Merging close points..."
            solver.function_timer(text, self.zip_points)
            print("")
            text = "--Removing zero length facets..."
            solver.function_timer(text, self.remove_zero_length_facets)
            print("")
            text = "--Removing duplicate facets..."
            solver.function_timer(text, self.remove_duplicate_facets)
            print("")
            text = "--Removing overlapping facets..."
            solver.function_timer(text, self.remove_overlapping_facets)
            print("")
            text = "--Removing unused points..."
            solver.function_timer(text, self.remove_unused_points)
            print("")
            text = "--Rebuilding intersecting facets..."
            solver.function_timer(text, self.intersect_facets)
            print("")
        else:
            self.zip_points()
            self.remove_zero_length_facets()
            self.remove_duplicate_facets()
            self.remove_overlapping_facets()
            self.remove_unused_points()
            self.intersect_facets()

I could spend a small amount of time and follow through altering the required modules if you were in agreement with this as an addition and submit it as a pull request?
Thanks!

@Agent6-6-6
Ah! I know just what you mean! I gave up on it (waiting for geometry cleaning to complete) and that's when I felt resolved to complete the shapely preprocessor. My hope was to entirely eliminate that geometry cleaning step, instead relying on shapely to always provide valid geometry.
The one place I have kept it in is for the current calculation for the plastic properties. While this can likely be done entirely in shapely, for now I have left plastic properties calculation just as Robbie made it, which requires a relatively short cleanup process.
Before you start on the revisions, I wanted to mention that my plan is to largely do away with geometry cleaning to (hopefully) prevent the need for long wait times.

The move to shapely pre-processor means this is no longer relevant


Garbage collection uses superfluous '/' at beginning of storage identifier

When I enable trace logging and run the garbage collection test with #2717 I see in logs, line 337 of step 11:
GET /5351-spark3-metaclient//_lakefs/retention/gc/rules/config.json?x-id=GetObject HTTP/1.1

Complete logs attached:  logs_22472.zip
Note the 2 slashes: these occur because the AWS Go SDK v2 no longer strips double slashes when they appear at the start of a bucket.
This is a repeat of a similar bug in Graveler; however because we use the block adapter directly we are again exposed.  The issue is in these lines in garbage_collection_manager.go:
const (
	configFileSuffixTemplate    = "/%s/retention/gc/rules/config.json"
	addressesFilePrefixTemplate = "/%s/retention/gc/addresses/"
	commitsFileSuffixTemplate   = "/%s/retention/gc/commits/run_id=%s/commits.csv"
)

Those leading slashes end up (mistakenly!) being trimmed by the AWS Go S3 SDK (v1).  If we keep this bug we will have an issue (objects misplaced on block storage) when porting GC to Azure and/or GCS.  We also cannot upgrade to AWS Go SDK v2 with this.

I believe that per-repo config and actions, both of which use similar code, do NOT have this issue.

Discover whether moving this directly to use repo-level settings would save work for us. Also how to migrate any existing such files.

Check whether there is a double slash when the storage namespace includes a prefix (and is not just a bucket).

If there is no double slash, just close this bug.
If there is a double slash, the quickest fix might be to change the path, then try reading from the new location and then the old location.  That's ugly but will work safely. :-(


no display orientation support

I thought this was going to be easy to do,, however there's a few things we need to figure out. The way the camera and the device screen work together is not simple. For now, the camera preview only works best in vertical mode.
We need to change the camera preview's orientation everytime the screen's orientation changes. In addition, not every device works with the same code to change the screen orientation properly. So, we need to do extra code for certain devices. Hopefully, we will have users with various devices during testing.
I've added a setDisplayOrientation method in FullscreenCameraActivity, which came from Google's documentation. I think this method will work for most devices, if not all. But I'm not sure where to put this method. It needs a "Activity" object to work, but the way the code is currently structured, I am not able to use it where it needs to be used.

Reopen as needed.

Reopen as needed.


go/doc: Unnecessary empty line in type description

On the following page http://golang.org/pkg/sync/#Pool an unnecessary empty line is added to the code. It's probably because it contains unexported fields an a new line before the public fields, but it would be nice if this empty is not shown. The same happens in the text version of the page: http://golang.org/pkg/sync/?m=text (manual scrolling required).
Continued from https://github.com/golang/gddo/issues/243.

This is probably a godoc problem, actually. The code looks like this:
type Pool struct {
    local     unsafe.Pointer // local fixed-size per-P pool, actual type is [P]poolLocal
    localSize uintptr        // size of the local array

    // New optionally specifies a function to generate
    // a value when Get would otherwise return nil.
    // It may not be changed concurrently with calls to Get.
    New func() interface{}
}

Godoc strips out the non-exported fields but doesn't trim the whitespace separating them.

That is what we found in the previous issue, as mentioned in https://github.com/golang/gddo/issues/243.

This is a known problem and non-trivial to fix in general (sometimes we want the whitespace) with the current library support. There may be simple heuristics that might fix the problem in most cases.
This is a non-urgent issue.

Duplicate of https://github.com/golang/go/issues/18264. This is a go/printer issue actually. Closing this since there has been more activity on that issue.


Drop beta query parameter for selfupdate.

The query parameter will be dropped in the new version of sdkman-hooks, and instead is inferred and propagated by nginx based on the subdomain beta.sdkman.io.

LGTM!


praise: this is awesome

Thanks for picking up the mantle of an

easy to use
multiple file
no configuration

js doc generator!

Thanks a lot @gregglind !


API review for librespot-core

As a first step we want to publish librespot-core to crates.io and start versioning it.
While we can still make breaking changes by publishing a new major version, we should do a first review pass to make sure we're not publishing in our first version anything stupid we'll want to change immediately.
Nice resource to have in mind while doing so: https://rust-lang-nursery.github.io/api-guidelines/

List of things to do

[ ] FileId's field should be private and method to_raw/from_raw should be added, similar to SpotifyId's

Things that have been done

[x] authentication::get_credentials should take a custom prompt function rather than using stderr/rpassword directly.
[x] SpotifyId::from_base16 / SpotifyId::from_base62 / SpotifyId::from_raw should return Option or Result
[x] Stuff in util/mod.rs should either be removed, moved to the crate/module they are use in, or , not exposed. (Partially Done)
[x] int128::u128 does not need to be exposed. Worth noting that native u128 will hopefully be in stable soon (https://github.com/rust-lang/rust/issues/35118#issuecomment-361380874).
[x] The new method generated by the component! macro does not need to be exposed
[x] session::device_id probably does not belong in librespot-core at all
[x] Session::spawn may not need to be exposed
[x] component does not need to be exposed (macro is already internal only, but Lazy needs to be made more private)
[x] SessionData does not need to be exposed
[x] SessionInternal does not need to be exposed
[x] MercuryManager::request and MercuryRequest/MercuryMethod may not need to be exposed
[x] SpotifyId and FileId should be located in a more central place than util. Potentially at the root of the crate in lib.rs, or in their own module.
[X] apresolve does not need to be exposed (#136)
[X] AudioKeyManager::dispatch does not need to be exposed. (#136)
[X] Credentials::from_reader and similar probably do not need to be exposed (#136)
[X] cache is fine, could be moved to cache.rs rather than being in a subdirectory (#136)
[X] ChannelManager::dispatch does not need to be exposed. (#136)
[X] connection does not need to be exposed (#136)
[X] MercuryManager::dispatch does not need to be exposed (#136)
[X] subfile belongs to the same crate as the player
[X] MercurySender::new does not need to be exposed
[X] SessionWeak and Session::weak may not need to be exposed
[x] Everything in config except SessionConfig can be moved to the relevant crate. SessionConfig can move to the session module.
diffie_hellman does not need to be exposed It is used by discovery
Session::send_packet may not need to be exposed It is used by at least audio and metadata
keymaster is fine like that
version is (probably) fine like that

For everything which "does not need to be exposed", this generally means switching the item's visibility from `pub` to `pub(crate)`.

These are pretty easy to do and can be done individually, so anyone feel free to take a few and fix them.

Before we start this review, are you ok with spirc going into the core crate, or do you want it in a seperate one?

No, IMO spirc belongs to its own crate, librespot-connect, which could potentially be merged with the discovery stuff.

Since this crate won't include spirc, can I ask the possibly naive question, in what projects would the core crate be useful?

@kingosticks This is just a starting point, I agree core is pretty useless on it's own.
The next steps are probably metadata, audio and player. These are the crates with reasonably well defined APIs, and still have some value to 3rd party projects. spirc and discovery would come last

@plietar ˋcore::diffie_hellman` is used in discovery

@awiouy Could point, I've updated the list

Updated the list with #136. Thanks @awiouy

@plietar
apresolve.rs could be moved to session.rs and constants.
What do you think?

I believe u128 will be in stable within a week, so once that lands, we can remove the int128  dependency.
Most of the stuff that was in util/mod.rs has been removed, I don't think it needs anything else being moved, as we'll be duplicating code into the connect crate otherwise.
Where do you think device_id should be if not in the core crate? Since it's a simple function, one could maybe stick it in main.rs?
imo keeping apresolve.rs in it's own file keeps things more readable.

@plietar have done the last couple of things, haven't touched the FileId stuff as I'm not too familiar with it, but the ball is now pretty much in your court in terms of a final code review before publishing. What are your thoughts with regards to #134? It's a bug that seems to be cropping up in quite a few use cases, and thus I'm wondering if we shouldn't hold off publishing to crates.io until we have this sorted out.
Furthermore, before we publish, we probably ought to think about how we want to handle development and releases from this point on, as once it's on crates.io, we can't really continue on the rolling release style that the project has used thus far, at least not in librespot (possibly in librespotd though). We probably need to think about properly tagging Github releases, and move development into a develop branch, which we periodically merge with master and increment the version. Any thoughts on this or an alternative release setup would be great.
Once it's published, I'll look at spending a bit more time on librespotd, and also documenting the codebase, since documentation is fairly sparse at the moment.

as once it's on crates.io, we can't really continue on the rolling release style that the project has used thus far

I don't see why not. Continuous development on master with tags whenever a release is done is fine. Unless you want to backport bugfixes to the latest release.
My only concern is how to deal with releases of individual crates. Say core and metadata are at version 0.5.0, and we add a new (backwards compatible) feature to metedata, what happens with core's version number? Do we bump both crates (and all the others) to 0.5.1 and tag that, or does metadata become 0.5.1 but core stays at 0.5.0? How does tagging work in this case?
I'd be curious to see how other projects with multliple crates in the same repo deal with this.

#134 can come later and shouldn't block the first release of core. It's a non-trivial change and will take some time, especially since I don't have time/can't write code for librespot.

I don't see why not. Continuous development on master with tags whenever a release is done is fine. Unless you want to backport bugfixes to the latest release.

What I intended to convey was that we can't have a rolling release on crates.io. Your point about rolling on master is valid though, and thinking about it, having a develop branch is pointless if we are tagging releases.

My only concern is how to deal with releases of individual crates. Say core and metadata are at version 0.5.0, and we add a new (backwards compatible) feature to metedata, what happens with core's version number? Do we bump both crates (and all the others) to 0.5.1 and tag that, or does metadata become 0.5.1 but core stays at 0.5.0? How does tagging work in this case?

I believe this is how serde handles things. If we take the metadata example, and implement a (backwards compatible) feature and then bump it from 0.5.0 -> 0.5.1, then core gets bumped from 0.5.0 -> 0.5.1 as well. If a change is then made in the connect crate, and the version gets bumped from 0.5.0 -> 0.5.1, then the core crate, which uses the connect crate, gets bumped from 0.5.1 -> 0.5.2.
If we stick to the semver Major.Minor.Patch logic, then whenever a fix is implemented in a crate, the patch number increases for that crate, and the patch number then also increases for crates which utilise that crate. Similarly, if we publish a (small) breaking change, we can increase the minor, and that propagates through, same thing again for the major. Over time this might mean versions become differentiated amongst the crates, but as long as one applies this logic, it's pretty easy to understand and implement.

#134 can come later and shouldn't block the first release of core. It's a non-trivial change and will take some time, especially since I don't have time/can't write code for librespot.

Good to know. Didn't realise you were still unable to contribute code. Anyway, I believe #134 and #21 will both require substantial portions of code to be rewritten, so perhaps this can be implementent in another minor at a later date.

@plietar are you happy to sign off on 0.1.0 being deployed to crates.io, and are you happy with the versioning i described in the last proposal?

I propose we get v0.1.0 shipped to crates.io, as enough of the bugs have been fixed to make this a plausible crate. Please tick your relevant box below if you agree that we are ready to ship the code, with the current codebase and the versioning suggested above. If you have any reservations, please make them known. I propose that we prepare ship this at the end of next week, assuming the majority agrees we're ready to ship.

[ ] @awiouy
[ ] @ComlOnline
[ ] @plietar
[ ] @sashahilton00

If anyone else has anything to contribute, please leave a note.

I'm happy, the bugs we do have are nothing major, the only thing I would suggest we do is to make releases at the same time that we publish a crate.

I'm not sure building releases is that important, but I do think we definitely need to tag releases from the moment we publish and then going forwards.

Yeah that's what I was thinking. No building, just the tags and so that you can get the source code from a release.

I'll upload librespot to crates.io later this week, need to get my head around multi crate uploads, think I'll have to publish a few dummy versions before I can use [replace] to point it to git. for the initial compilation. Will give it some thought.

Any news on the publishing? Would be nice if we could publish our own crates using librespot :)

@hrkfdn https://crates.io/crates/librespot is up and running!

Awesome!


Find data on Treasurer

Get campaign finance (and general) information on:

Fiona MA (Democrat)
Greg Conlon (Republican)

Things to base your research off of:
https://www.opendisclosure.io
Vision:
Ideally, we would like to find a general API we could use to pull campaign finance and general candidate information for any candidate.
However, given the fast approaching November 2018 election, we might have to hard code the data this run around.
If we have to hardcode all the data, we can go back to make the data consumption more automated and scalable.
I got the list of candidates from this link:
https://elections.cdn.sos.ca.gov/statewide-elections/2018-general/contact-list.pdf

I'd like to take this issue.

@abidishajia I sent you a Github Collaborator invitation so I can officially assign you the issue.
@agnesoshiro did a really great job at finding data for this issue: https://github.com/codeforsanjose/OpenDSJ-2018/issues/22
Shajia, feel free to copy her methods. (:


Medical marijuana in Pennsylvania

Medical Marijuana and Recreational CANNABIS  HELP.ME TO NOT DO AS MANY PAIN PILLS, WHEN I HAVE MY MEDICAL CANNABIS I CAN DO ONLY 1 pain pill and not 3 like I need without my  #CANNABIS, so let's get this up and running PENNSYLVANIA I HAVE CROHN'S DISEASE AND SEVERE IBSD WHICH CRIPPLES ME OVER IN PAIN ON A DAILY BASIS...SUCKS

This is a highly inappropriate place for these issues and comments you are making. Stop


Field Argument Type Rewriter Transform

It would be very helpful to additional transforms for field arguments. Currently only argument renaming is supported, but not argument retyping.
An alternative solution is what this repo offers https://github.com/graphql-query-rewriter/core. But it is much more limited to graphql-mesh since it only offers field argument rewriting. And it wouldn't be very clean to use it in conjunction with graphql-mesh.
A proposed solution would be to add an experimental field argument type transform that leverages this alternative pkg, or maybe extend the rename tool to also be able to change argument types.

My use case: adding a required argument for all operations to context. I'd like to be able to state that a required argument is optional so that the value doesn't have to be passed in as a variable to the hooks, but is pulled from context in the resolver.

Instead of a transform, you can add a new field and use @resolveTo directive to the actual field then set the argument value from the context.

@ardatan Thank you for the response and the example.
I'm concerned that this approach would be rather cumbersome to migrate to and maintain. Ideally, I want to be able to configure, in a declarative way, "for every argument fooId, resolve to context fooId".


Puts occasionally get Blob_Exists error due to fast replication

Put operations today make parallel requests to N number of data nodes in the synchronous path (where N is the request parallelism) and relies on async replication to ensure that all replicas eventually get the blob. However, given two datanodes D1 and D2, if the request from the frontend reaches and completes successfully in D1, and D1 happens to replicate to D2 faster than the request from the frontend reaching D2, then the request (and possibly the overall operation itself) fails due to a Blob_Already_Exists error.
Currently this is mitigated to an extent due to a hack that delays replication within the local DC if it has already caught up. Even then the problem occasionally shows up.
We should:

come up with a better solution to deal with this and distinguish between an actual blob id collision and the case described above.
once that fix is in, we should get rid of the above hack.

You could also add your suggestion for the solution - I think it is a useful starting point.

My suggestion: Incase we could come up with a SLA for replication to catch up for any blob, then we could have a solution as follows:
On encountering a put request for a blob that was created within the SLA, we can return success. If not, we can return Blob_Already_Exists error.

I think there are multiple problems with that approach:

Coming up with the SLA.
Two corner cases
a. Valid blob put comes after the SLA expires - you would have the same problem we have now i.e. a spurious failure. The solution just mitigates this problem and doesn't solve it. In that way it isn't much different from what we have now
b. Actual collision arrives within the SLA. This is the bigger problem and Ambry would return success when it should not have.

@pnarayanan had something built on top of #455 in mind and I think that has the possibility of being a deterministic and correct solution.

A proposed fix we discussed is the following:
The thing we need is a way to distinguish between actual key collisions and the case where replication request arrives and succeeds sooner than the arrival of the put request. One way to achieve this is by making use of the journal to determine whether the blob for which this error is received is recent. Additionally, as @vgkholla noted above, if it is indeed recent, we still need to confirm that there is no real collision. To do that, we can include CRCs in the blob put requests (#455) and keep them in the journal and compare the CRCs to determine whether there was an actual collision. If it is determined that the two blobs are the same, then the datanode can safely return a No_Error.


Bake Lighting and Packaging

So, next bit for the project I'm working is to bake the lighting and packaging the project.
For packaging I found the FARFilter but I'm not sure if it's really related or if it's something else. In terms of lighting I haven't found anything. Are these supported? If not, are these something you can expose?
Best regards,
Nick

Check the new unreal_engine.editor_command_build() and unreal_engine.editor_command_build_lighting().
I have started with them but we can expose everything is here:
https://docs.unrealengine.com/latest/INT/API/Editor/LevelEditor/FLevelEditorActionCallbacks/index.html
Regarding packaging i am not too much skilled on it, i need to investigate

Cheers @rdeioris, I'll have a look later this week. In terms of the packaging, if it's much of an issue to you, I can ask Epic to point us to the right direction if you want.

@sinokgr help from epic would be really wellcomed :)

Hey @rdeioris, Epic got back to me about the packaging and apparently the way Unreal packages projects is with an external tool "Engine\Binaries\DotNET\AutomationTool.exe".
That might interest you though.
"To see how the editor assigns arguments or to plug into the editor command directly, see FMainFrameActionCallbacks::PackageProject()."
I'm sorry I haven't had the time to try the light building yet, but they changed my priorities here at work.

@sinokgr thanks for your feedback, i'll check it soon

Cheers, it's not a priority for me though. I would prefer if you could check the issue #87 first. :)

Hi @rdeioris, happy new year!
Is it possible to expose the engine path? I want to access the AutomationTool.exe and I don't want to hardcode a path to a specific version.


Add cleverbot/alternative

https://cleverbot.io?

Opting for https://botlibre.com instead since https://cleverbot.io is too slow and both https://cleverbot.com direct and https://pandorabots.com are too costly.

Changed my mind again - using Pandorabots (it's actually free for this use case).