Publishing a simple app fails with "project.assets.json not found"

Describe the bug
I created a new app using the WinUI Template Studio. Its a WinUI 3.0 Desktop C# app. I can debug it but when I try to publish (right click on Package solution -> Publish -> Create app package -> Uncheck auto updates and press 'next' until it tries to publish) I always receive this publish error:

Severity	Code	Description	Project	File	Line	Suppression State
Error		Assets file 'C:\Users\User\Desktop\TestApp\TestApp\obj\wappublish\win10-x86\project.assets.json' not found. Run > a NuGet package restore to generate this file.	TestApp (Package)	C:\Program Files\dotnet\sdk\5.0.400- preview.21277.10\Sdks\Microsoft.NET.Sdk\targets\Microsoft.PackageDependencyResolution.targets	242

I've restored nuget packages via right click on the solution and then restore nuget packages. It was successful but I still receive the error above. I've ran the nuget console in VS and used "dotnet restore", it was successful but I still receive the error above. I've restarted VS, deleted all "obj" folders etc. but the error still appears. Because I'm new to WinUI I have no idea what I'm doing wrong.
Are there any steps that needs to be done after a creating a project before I can publish it?
Version Info
Windows 10 21H1
Project Reunion (Preview) <IP_ADDRESS>306308
Windows Template Studio 4.1.21179.1
Visual Studio 2019 Preview Community Project Version 16.11.0 Preview 2.0

I have the same problem to solve it temporarily:
Go to the path below in your project:
obj\wappublish
Create the following subfolders
win10-x64
win10-x86

Now copy the contents of the win-x86 and win-x64 folders into them
The problem is that the following folders are created when rebuilding
win-x64
win-x86

But when packaging, Visual Studio looks for the following folders
win10-x64
win10-x86

If you have other platforms, do the same for them

This is a bug in Visual Studio affecting publish. Things were fine in 2019 16.9 then broke in 16.10.1 through 16.10.3. I am working with the VS folks to hopefully get a fix in VS 16.10.4.
In my experience even if you solve the project.assets.json issue the app still doesn’t launch at runtime.

Hi @iceberg1370, is there a visual studio issue we can reference to close this out?

Yes - here you go @btueffers  - https://developercommunity.visualstudio.com/t/Unable-to-package-a-WinUI-3-App-with-Pro/1467291

Because it says it's fixed in next VS update, I'm closing this issue then.


[WIP] Fix Issue 16992 - documentation does not appear for static methods

Even though the real bug is actually in dmd/src/ddmd/doc.d causing static inner methods to not have examples displayed, I think that having a static method with the same name in multiple structs and duplicated documentation for each one of them is bad practice. My take on this is to have a templated function which calls the appropriate static method. That way all the overloads are callable from a single public method and it is easier to publish it to users (plus you have no documentation duplication).
I implemented only fromISOString, but I plan on doing it also for fromISOExtString and for fromSimpleString.

cc @jmdavis

FYI: there's also https://github.com/dlang/phobos/pull/5448 (a bit related towards adding examples to the doc)

Shouldn't we be working on fixing dmd instead of hacking Phobos to make docs appear?

@RazvanN7 As a rule of thumb we avoid adding one-liners to Phobos unless they are of overwhelming usefulness. This PR seems to break it and I think it wouldn't be easy to construct the argument that fromISOString is needed with high frequency.
In addition, the notation fromISOString!Xyz(s) is not even shorter or more convenient than Xyz.fromISOString because Xyz cannot be deduced.
This PR could be converted to one that uses /// Ditto blocks to unify documentation for all overloads of fromISOString. It does not fix the ddoc bug which shall remain open. Thanks!

I am completely against this and think that it makes the code worse. As it stands, each of these functions is tied with the type that it goes with, just like the format is tied to the function that it goes with - much as they're all part of the same spec, they're not the same format, because they don't represent the same parts of the date/time and thus the documentation should be separate as well. And Ading a free function to call them is a pointless, extra layer. Also, to call this, if you're importing the individual modules instead of all of std.datetime at once,  you'd be forced to import std.datetime.date to use this wrapper with SysTime, even though you can do basic stuff with a SysTime without ever importing std.datetime.date. I don't see how this provides any value beyond working around a dmd bug that needs to be fixed.
As far as I'm concerned, dmd needs to be fixed, and this PR should be closed.

This PR could be converted to one that uses /// Ditto blocks to unify documentation for all overloads of fromISOString.

That doesn't even make sense, because these are functions on completely separate types, not overloads. The types follow the convention of using the same function names so that they're consistent and can easily be used in generic code where appropriate, but each of these functions expects different input (because they represent different parts of the date and/or time, even if it's from the same standard), and IMHO, it really wouldn't make sense to merge their documentation even if it were possible - which it isn't without creating a free function like this that simply calls the other functions.
The more I think about this PR, the less it makes sense to me. It's a one line wrapper around functions that can already be called in generic code if you want to. All this does is rearrange the syntax of how you call them for arguably no benefit. It also happens to work around the compiler bug that makes it so that the ddoc-ed examples don't show up in the docs, but fixing that bug would fix the issue and I really don't think that it makes any sense to rearrange things like this just to get the examples in the docs.

Okay. I'm sorry if this came across as harsh. Work to improve Phobos is much appreciated, and I certainly don't want to come across as mean or rude. But this PR just works around a compiler bug and really doesn't fix anything in std.datetime. I don't see any problem with using static functions in the way that std.datetime does with these types, and I don't see why having a wrapper function would help anything. It's just rearranging syntax and is removing documentation in the process that I think is valuable to have separately, because the types are separate, and what they expect is not the same, even if it is related enough to give the functions the same name.

@jmdavis oh I didn't notice the functions are not overloads. Thx for reviewing. @RazvanN7 back to the drawing board!

@jmdavis I wasn't entirely sure either so thank you for the comprehensive explanations.


refactor: update minimum CI4 version to 4.3.5

Description
CI 4.4 is already released, and there are vulnerabilities in prior to 4.3.5.

update minimum CI4 version to 4.3.5
remove code for CI 4.2.x or before

Checklist:

[x] Securely signed commits
[] Component(s) with PHPDoc blocks, only if necessary or adds value
[] Unit testing, with >80% coverage
[x] User guide updated
[x] Conforms to style guide

Removed code for CI 4.2.x or before.


feat: support Vercel Edge Runtime

Hey Knock team! Knock's been featured in a few places by Vercel, and my team is leaning heavily on the Vercel Edge Runtime with Next.js, which doesn't support the full Node.js ecosystem. The @knocklabs/node package uses axiom and jsonwebtoken which are not compatible. Can you guys please build in support for the Edge Runtime by switching to the Web Fetch API and jose? Might require some fallbacks for Node.js runtimes before v17, which don't include fetch.

Hi @Burry, as of the 0.6.0 release, the package will be compatible with Vercel's edge runtime


Texture and lang fixes

Fixed the word dubios across all files and file names to be called dubious instead (correct spelling)
Modified nickel and Platinum resource node textures to better match current texture design
Fixed english lang file having the redstone resource node as "Resource Node Redstone" instead of the opposite way around

During testing, I figured out that there is something else with an incorrect name and it is causing the dubious container texture to be broken

Ill put this PR on draft till I find a fix

I think it was a misnamed file causing issues, testing now

It was an incorrectly named file

H, thanks for the PR. Now in all honesty I don't really see the point of renaming the dubious container, as that'll break pending translations from crownid. The in-game displays are already all translated, and in the code I don't care about it. The rename would also change the item id, so it'd be a breaking change for existing worlds and advancements. I'd avoid that if there's no real benefit to it. I'd be happy to take a PR for the resource node changes, those new texture sure do look better / more consistent

I'll wait for the other guy who was working on textures to send his because they do look slightly better


Add support for matrix notifications

Description:
Matrix (https://matrix.org/) is a new open communication standard. This pull request adds support for pushing notifications to Matrix rooms, which might be bridged to other chat rooms on protocols like IRC, Slack or Gitter.
Pull request in home-assistant.io with documentation (if applicable): home-assistant/home-assistant.io#
https://github.com/home-assistant/home-assistant.github.io/pull/1215
Example entry for configuration.yaml (if applicable):
notify:
  name: matrix
  platform: matrix
  homeserver: https://matrix.org
  username: USERNAME
  password: PASSWORD
  room: "!ZVBMdSryggkRhnSBPs:matrix.org"

Checklist:
If user exposed functionality or configuration variables are added/changed:

[x] Documentation added/updated in home-assistant.io

If the code communicates with devices, web services, or third-party tools:

[x] Local tests with tox run successfully. Your PR cannot be merged unless tests pass
[x] New dependencies have been added to the REQUIREMENTS variable ([example][ex-requir]).
[x] New dependencies are only imported inside functions that use them ([example][ex-import]).
[x] New dependencies have been added to requirements_all.txt by running script/gen_requirements_all.py.
[x] New files were added to .coveragerc.

The py35 test fail seems spurious, I can't reproduce it locally.

@mweinelt That's a known test issue which you didn't cause, don't worry about it.

Restarted the failed test, but it should pass :+1:

I agree the structuring is less than ideal, I'm going to make some changes in the next days, too tired currently.

Done. @kellerza

Will take your recommendation on the proper key. Seem like mx_id could work!

Great, thanks! :dolphin:


UI improvement: Make the Certificates tab easier to understand

Current Implementation

Under "Zertifikate" one only sees the QR code of the currently chosen certificate, and the option to add a new certificate.
Suggested Enhancement

Two options:

Add a button with the same functionality as clicking on the QR code. (It leads to the detailed page of all your certificates)
Add a text label, or some other visual indicator, that tells the user that clicking on the QR code leads to more detailed information.

Expected Benefits

Implementing at least one of the two options would save a lot of frustration and time for some demographics.
My father spent more than hour searching the app and the FAQ-section on what he has to do if he needs to show his certificate, and where his certificate details are. He was practically fuming and cursing in the end since he couldn't find anything describing it.
It is intuitive to us developers and people who grew up with smartphones, that the QR code displayed is touchable and also contains all the information you need to show. But for people who may have just gotten a smartphone and don't know much about tech, this is not so.

Internal Tracking-ID: EXPOSUREAPP-9130 iOS
Internal Tracking-ID: EXPOSUREAPP-9200 Android

In Austria, they religiously check you’ve received a 2nd jab (I know - they should check the validity of the certificate instead but that’s the way it is). My CWA was “verified” at least 15 times in restaurants and hotels.  To check the 2 jabs the waiter/waitress has to
a) navigate into the certificate details,
b) Scroll down,
c) go back to repeat this for my partner’s certificate.
I’d prefer the main view of the eu certificate to include an extra summary line below the name to include:
count of jabs, name of last vaccine type and (maybe)  date of last jab. This would remove the need for extra navigation.
Scrolling up and down would be all that’s needed for all family members.

Hello everyone,
UI improvements for this particular issue are planned for CWA release 2.10. The certificates tab will receive visual indicators to signify that there is more information.

Corona-Warn-App Open Source Team

So will it show the essential summary as illustrated in this screenshot from iOS wallet or will it simply indicate that to see the summary you have to navigate deeper?

Hilarious experience using a paper hard copy of a screenshot of the 2.8.1 CWA rendering of the EU certificate.

I showed it to the person controlling entry at the 2G Ludwigshafen Film  Festival (where film tickets are controlled by scanning a qr code on the ticket)
Controller explained it wasn’t valid because it only showed my name and not the date of the last injection.
I explained that’s embedded in the qr code and she needed to use covcheck to validate my print-out. Neither controller had heard of the app or had a mobile with them (allegedly).
I whipped out mine, scanned the code with covcheck and showed the green status.
She explained that’s still not sufficient because the date of the last jab is still not displayed (covcheck design decision )
I was about to answer when the controller lost interest and let me in.

I’ll try again tonight with a print-out of my Apple Wallet rendering.

Nowadays everybody designs their solutions using apps ... assuming "everybody" owns a (modern!) smartphone, and the minority who don't can be neglected  ... I am not so sure if that was a wise design decision of CovPass (or rather of the "European Health Certificate standardisation group") ...
Lets assume I was working at a border control, as doorkeeper of an event, or similar role. What does my employer expect - that I load the Verifier app to my private device and use that to fulfil my work? Or will my employers buy work smartphones for everybody?

I mean you could use those qr scanning devices, you can buy them for 2€/piece

@jucktnich .. and the CovPass verifier is supposed to run on those 2€ scanners??

FYI: This is how they will improve the situation:

Screenshot from https://github.com/corona-warn-app/cwa-app-ios/pull/3479

@ndegendogo if you can code, yes

@jucktnich this is what I mean. The covPass developers can code for sure, but they are rolling out the verifier app for smartphones. And iirc only for modern smartphones, excluding Android 5 and the like.
The average doorkeeper is not supposed to be able to code.
And the "official" verifier app needs to be deployed "ready-made" (and signed by the owner = BMG); not a self-compiled version that could theoretically have all sorts of modifications, including malicious.

@ndegendogo A qr code scanner distributed by the bmg would be helpful, maybe that's possible?

@jucktnich very good idea!!

@ndegendogo an idea would be to build a covcheck website, so you

don't need to install something and
virtually every smartphone would be supported.

@jucktnich I am not sure if I understand this idea ... how would this work?

@ndegendogo this is a separate idea from the scanner

I’ll try again tonight with a print-out of my Apple Wallet rendering.

The controllers at the FFLU accepted the Apple Wallet screenshot Print-out immediately without question.
I'm not convinced about the value of the ">" sign over an additional line of data. Particularly as there no shortage of vertical screen estate on mobile devices. In Practice, the data would eliminate the need for navigation.

FYI: This is how they will improve the situation @Chanator:

Screenshot from corona-warn-app/cwa-app-ios#3479

Thanks for letting me know.
It is an improvement and I appreciate that they take feedback and suggestions.
Personally I would add "Tap for more details" below the QR-code, but I understand that this would need to be translated and wouldn't be as elegant.

@Chanator
This has now been implemented in version 2.10, which has been released today. Do you consider this as implemented? Or do you think that it's still not obvious enough?
If you consider this as implemented I'd like to ask you to close this issue.
Thanks!

@Chanator
This has now been implemented in version 2.10, which has been released today. Do you consider this as implemented? Or do you think that it's still not obvious enough?
If you consider this as implemented I'd like to ask you to close this issue.
Thanks!

I think that it is still not obvious enough. I would suggest adding "Tap for more details" below the QR-code, translated for each supported language.
If this gets rejected, the issue can be closed.

Just for reference, the screenshots for CWA 2.10 Android on https://www.coronawarn.app/en/screenshots/#android_certificates show the new right-arrow and the news line too (if applicable):

Right-arrows are used generally in the app to indicate that there is more information available e.g.

on the risk tile
on Manage Your Tests, for instance to Scan QR Code
in the Contact Journal for the details of each day

Arrows (back and forward) and X (to cancel) symbols are common language-independent navigational elements. I guess we assume that users should be familiar with using them.

Looks great. Will the arrow replace the greater-than sign in the iOS version, too?

@alanrick
The ">" is the arrow under iOS, you can also see that on the start side.
Native iOS apps (like Health) also use the ">" and not am arrow.

Thanks.  I’d seen that in one line text menus (like “See All>” ) but hadn’t noticed that elsewhere.

I recommend to close this issue @Chanator.
As @MikeMcC399 laid out in his comment, arrows are an typical UI element which most users will understand means that by tapping on the respective field will reveal further details.
We did no hear any feedback on the suggestion you made in https://github.com/corona-warn-app/cwa-wishlist/issues/622#issuecomment-925167711 from the Open-Soruce-Team yet, thus I recommend to follow up in a new issue if necessary.
Thank you!

@Chanator Thanks for contributing here!
@Ein-Tim Thanks for the "ping".


LabelStatisticsImageFilter

Using the LabelStatisticsImageFilter with the current latest prerelease: SimpleITK-2.0.0rc1.post295 the label order is not identical to current release version: SimpleITK-1.2.4. Additionally, a warning is thrown in debug-mode
I get the following warning:
WARNING: In /Users/runner/runners/2.170.1/work/1/sitk-build/ITK/Modules/Core/Common/src/itkProcessObject.cxx, line 1184
LabelStatisticsImageFilter (0x7fd1e04f7d40): Output doesn't exist!

Do you have sample code and date to reproduce your issue? Does SimpleITK 2.0rc1 also have the same issue?

Yes, I get the same error and label order using SimpleITK 2.0rc1.
Sample code are displayed below:
seg = sitk.ReadImage("image_Segmentation.mha")
labels_stats = sitk.LabelStatisticsImageFilter()
labels_stats.Execute(seg, seg)
print(labels_stats.GetLabels()) #(Should print (0,1,2,3))
Output:
WARNING: In /Users/runner/runners/2.165.1/work/1/sitk-build/ITK/Modules/Core/Common/src/itkProcessObject.cxx, line 1167
LabelStatisticsImageFilter (0x7fe57b4cac50): Output doesn't exist!
(1, 3, 2, 0)

I am unable to reproduce the error with the data sets I have. Are you able to synthetically generate a data set to produce the error message.
Also, please review how to report and issue: https://github.com/SimpleITK/SimpleITK#report-an-issue To provide needed information about the operating system, python versions and distribution you are using.
Thanks.

To set the SimpleITK version for 1.0.1 (I get the same using v.1.2.4) and (2.0rc1) I used  1) and 2), respectively.

pip install SimpleITK==1.0.1
pip install --upgrade --pre SimpleITK --find-links https://github.com/SimpleITK/SimpleITK/releases/tag/v2.0rc1

I managed to generate a synthetic data that could reproduce the error. The error message only appers during debug mode in PyCharm (2019.3.4, Community Edition).
CODE
import os
import sys
import SimpleITK as sitk
import platform
_DIR = os.path.dirname(file)
def generating_synthetic_image():
print("Generating synthetic image...")
img = sitk.Image(338,341,334,sitk.sitkUInt8)
voxel = sitk.GetArrayFromImage(img)
voxel[200:300,80:230,80:230] = 1

voxel[50:150,90:220,90:220] = 2
voxel[50:150, 260:300, 80:230] = 3

img_out = sitk.GetImageFromArray(voxel)
img_out.SetOrigin((1.33, -52.2, -171))
img_out.SetSpacing((0.4883, 0.4883, 0.625))

sitk.WriteImage(img_out, f"{_DIR}/syntetic_image.mha")

return img_out, "Synthetic image"

def test(img):
print(f"Testing: {img[1]}")

labels_stats = sitk.LabelStatisticsImageFilter()
labels_stats.Execute(img[0], img[0])
print(labels_stats.GetLabels())     #should print (0,1,2,3)

def reading_true_image():
print("Reading true image...")
return sitk.ReadImage(f"{_DIR}/image_Segmentation.mha"), "True image"
def version():
print(f"Operating system: {platform.platform()}\n")
print(f"Python version: {sys.version}\n")
print(f"SimpleITK version: {sitk.Version()}\n")
if name == "main":
version()
synthetic_img = generating_synthetic_image()
true_img = reading_true_image()
test(synthetic_img)
test(true_img)

Messages for the two SimpleITK versions:
------------------------ SimpleITK version 1.0.1 ----------------------------
Operating system: Darwin-19.5.0-x86_64-i386-64bit
Python version: 3.6.6 (default, Nov 25 2019, 13:38:31)
[GCC 4.2.1 Compatible Apple LLVM 11.0.0 (clang-1<IP_ADDRESS>)]
SimpleITK version: SimpleITK Version: 1.0.1 (ITK 4.11)
Compiled: Aug  2 2017 21:20:41
Generating synthetic image...
Reading true image...
Testing: Synthetic image
(0, 1, 2, 3)
Testing: True image
(0, 1, 2, 3)
------------------------ SimpleITK version 2.0rc1 ----------------------------
Operating system: Darwin-19.5.0-x86_64-i386-64bit
Python version: 3.6.6 (default, Nov 25 2019, 13:38:31)
[GCC 4.2.1 Compatible Apple LLVM 11.0.0 (clang-1<IP_ADDRESS>)]
SimpleITK version: SimpleITK Version: 2.0.0rc1 (ITK 5.1)
Compiled: Mar 10 2020 01:17:09
Generating synthetic image...
Reading true image...
Testing: Synthetic image
(2, 3, 1, 0)
Testing: True image
(2, 3, 1, 0)
NOTE: I also noticed that the label ordered varied for the 2.0rc1 version between runtimes, and there was not always agreement between the label order for the synthetic and true image within same runtime.
Hope this make sense, and that you are able to reproduce the error.

Regarding the ordering, in ITKv5 the data structure to store the labels changed from the C++ std::map to the std::unordered_map. The new unordered_map uses a hash data structure as opposed to a tree, so the order of the new structure will be different, and may change form system to system. This is a side effect of changing the ITK major version from 4 to 5. You can always sort the returned list if needed.
I am inclined to label the ordering bug as "Won't Fix" as it is a change in ITK's behavior. Does this behavior/change cause any problems?
I have been able to reproduce the Warning by calling "DebugOn" followed by Execute.

The warning has been addressed in ITK.


vendor: fix stack corruption from retrieving veth peer index

Use local fork until https://github.com/vishvananda/netlink/pull/498 got
eventually merged.

Updated via following:

  In go.mod's replace section:
  [...]
  -       github.com/vishvananda/netlink => github.com/vishvananda/netlink v1.0.1-0.20190924205746-ac5f4df04742
  +       github.com/vishvananda/netlink => github.com/cilium/netlink 47ae870a10ed8f1ff19408861207ae4ddd59f8cd
  [...]
  $ ./contrib/go-mod/update-vendor.sh && git add vendor/ go.mod go.sum && git commit -sa

Reported-by: Jean Raby<EMAIL_ADDRESS>Signed-off-by: Daniel Borkmann<EMAIL_ADDRESS>
Fix vishvananda/netlink library's VethPeerIndex() stack corruption with 4.20+ kernels.

This change is

test-me-please

Coverage decreased (-0.02%) to 45.417% when pulling 8f1f523be037c6b598f26d530bde8a16dcb8e808 on pr/fix-veth-corruption into f62e455827132482aea6a6846d7d50e78fb0021c on master.

removed backport in favor of backporting #9606


Polyfills failing in IE

Description:
polyfills.js contains lots of lines, where strings are constructed using backquotes, for ex:
if (typeof callback !== 'function')
    throw new TypeError(`${callback} is not a function`);

They cause an error in IE 11, 10 and less, because backquotes are not supported in these browsers. Maybe even in greater IE's, because I see on MDN page that IE completely does not support backquotes.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals
Versions affected:
0.9.0 - all builds
Platforms affected:
IE <= 11

Which file are you referring to? Can we see? The polyfills are also transpiled (they stem off the src node which is transpiled ahead). And the published versions of both minified and unminified polyfills have no trace of backticks.

Confirmed the published polyfills only have backticks in comments, so I'mma call this one ok :smile:


x/website/tour: Dark mode

The current UI of https://go.dev/tour only has a light theme

An additional dark theme would be very nice to have, like already implemented in the other parts of https://go.dev/

I may help with the implementation, while also taking other accessibility concerns into consideration.
@alicemerrick @jamalc @fflewddur

That would be really cool. If you need help, I'm also willing to help.

cc @golang/tools-team

TIL this has been asked ~10 times in the golang/tour issue tracker (using the "Share feedback" button, top-right in the Tour)

Fix verified. Thanks!


Shouldn't be able to resize a pane when there is only one

Prerequisites

[x] Can you reproduce the problem in safe mode?
[x] Are you running the latest version of Atom?
[x] Did you check the debugging guide?
[x] Did you check the FAQs on Discuss?
[x] Are you reporting to the correct repository?
[x] Did you perform a cursory search to see if your bug or enhancement is already reported?

Description
Atom gets into a perplexing state for some people (for example) whether by some combination of keys or package actions where there is only one pane, but it does not take up the full width of the editor window. Atom should not be able to get into this state.
Steps to Reproduce

Launch Atom
Ensure there is only one pane in the window
Press Cmd+Alt+- multiple times

Expected behavior: Nothing to change
Actual behavior: The pane area for the single pane shrinks even though the window does not change size
Versions
Atom    : 1.9.0-dev-5a9bd28
Electron: 0.36.8
Chrome  : 47.0.2526.110
Node    : 5.1.1
apm  1.9.3
npm  2.13.3
node 0.10.40
python 2.7.10
git 2.8.1

Atom also shouldn't ever restore a resized single pane when starting up, so people shouldn't have to launch with atom --clear-window-state to fix this if they get into the weird state.

Experienced exactly this problem. atom --clear-window-state solves it, but I agree: Atom should not restore a resized single pane!

Experienced this. atom --clear-window-statewas a fix. I suggest adding a menu item for it to the View menu.

@randohinn I will strongly advocate against adding a Clear Window State item to any menu because it blows away all stored state, including any unsaved changes. Also, clearing the window state shouldn't be something that we encourage people to do ... it should be a workaround, not a common practice.

It could be buried under View -> Developer without a keyboard shortcut. Many people don't use the command line, so having to pop open a console in order to reopen Atom in a special mode is extra work.

It could be buried under View -> Developer without a keyboard shortcut.

None of the other items under View → Developer will cause people to lose unsaved work. To be clear, Clear Window State will not only lose unsaved work for the current project but all projects. We don't want people to be casually using this, so the pain of popping open a console and reopening Atom is intentional.

Took me an hour before I found this solution, +1 for adding a menu item for this.

@Bjorn-c Where did you look? With the Debugging section of the Flight Manual and a FAQ entry on the forum that refers to the Flight Manual, it's pretty easy to get to that information. Did you read that and dismiss it as probably not relevant to your situation? Did you not look there?

I indeed dismissed it ...

Good to know. Maybe that needs to be made more prominent.

I have just installed the latest stable atom version on windows 10 and ran into this empty space bug issue:/
after running $ atom --clear-window-state this glitch went away...

Any news on this? :disappointed:

Not from the maintainer team, no. If someone wanted to help fix this, I'd be very happy to review a well-written pull request :+1:

Always the outlier, --clear-window-state did not work for me...
But cmd-alt-+ did.

The relevant bit of code seems to be in src/pane-element.coffee around line 123
  flexScaleChanged: (flexScale) ->
    @style.flexGrow = flexScale

What is needed is probably a check to see the number of items in the pane of the pane element before changing the flex-grow style. Should we also check if it has a text editor element inside it?
I would have submitted the PR, but I couldn't find a way to get the pane of the current pane element. Can someone who is familiar with the code base help me?

Should we also check if it has a text editor element inside it?

No, because it could be the Settings View and still have the same problem:

I couldn't find a way to get the pane of the current pane element.

If you want the pane of the active pane item (what you're calling pane element), you can use atom.workspace.getActivePane(). This is because the active pane item will always be in the active pane.

@lee-dohm Could you review my PR #14665?

Is this fixed? I want to help, I'm new in open source contributions
I notice that it can happen even with more than one pane when they are in a horizontal row and you resize all of them

But when you close one of the open panes the other panes get back to normal

This are the versions I have:

No, this isn't fixed. You can use the debugging guide in the Atom Flight Manual to determine if you're on the latest version. (You should start by reproducing the problem in the latest stable version and then start development from the latest development version.)

I make a PR fixing it for one pane but I'm still looking how to solve it with more than one.
@lee-dohm is there a way to compare the width of the container with the width of the panes that are inside him?

Any updates on this? Having to clear the window state all the time isn't a valid fix for me.

@lee-dohm Do you think this can be closed now that #16428 is merged? I don't think https://github.com/atom/atom/issues/11673#issuecomment-216374261 has been addressed.

Yeah, this can be closed. The deserializing thing has a workaround in --clear-window-state so while it's less-than-ideal, it is a well-known feature at this point.
Thanks for the reminder @Ben3eeE :bow:


[SPARK-20562][MESOS] Support for declining offers under Unavailability.

What changes were proposed in this pull request?
Support Mesos Maintenance by making the Spark Scheduler only accept offers that won't be under maintenance.
Add a configurable threshold which is the users estimate of how long a task would take up an offer for and whether the Scheduler can schedule a task on that offer.
How was this patch tested?
Unit tests that ensure that offers with unavailability set are appropriately handled.
Please review http://spark.apache.org/contributing.html before opening a pull request.

Can one of the admins verify this patch?

Can one of the admins verify this patch?


Cloudflare redirect list

Current Terraform and Cloudflare provider version
❯ terragrunt -v
terragrunt version v0.38.0

❯ terraform -v
Terraform v1.1.9
on darwin_amd64

Your version of Terraform is out of date! The latest version
is 1.2.3. You can update by downloading from https://www.terraform.io/downloads.html

❯

Description
Is it possible to add redirect lists? These can be found under Account -> Configurations -> Lists -> Create new list -> Content type: Redirect.
Use cases
Manage redirect lists in Terraform :)
Potential Terraform configuration
...

References
I think the upstream Go library supports this? See https://github.com/cloudflare/cloudflare-go/blob/master/list.go.

@jacobbednarz I believe this has been implemented here: https://github.com/cloudflare/terraform-provider-cloudflare/blob/master/internal/provider/resource_cloudflare_list.go

closed by #1700

Forgot to close bug. This is working, thanks!


Make bloat check work with github actions

Problem
We moved from CircleCI to github (which supports IPv6). Need to update bloat check since APIs are probably different.
Summary of Changes
Exploring changes needed to get bloat checks to work again

Size increase report for "esp32-example-build"

File
Section
File
VM

Full report output
Bloat report for job 'esp32-example-build'

Files found only in the baseline:
    chip-wifi-echo.elf

Size increase report for "esp32-example-build"

File
Section
File
VM

Full report output
Bloat report for job 'esp32-example-build'

Files found only in the baseline:
    chip-wifi-echo.elf

Size increase report for "esp32-example-build"

File
Section
File
VM

Full report output
Bloat report for job 'esp32-example-build'

Files found only in the baseline:
    chip-wifi-echo.elf

Marked this for review: you can see my strugles with it, it still does not fully work because pull requests are very protected by github (we can generate reports, however we cannot post them in comments).
My current approach for followups would be:

save bloat reports as 'artifacts' as part of the PR
have a separate scheduled process that grabs the artifacts and posts them as PR comments
have a scheduled process to cleanup the artifacts from master, so we do not run over the 2GB limit

What this PR currently does and is useful:

unique naming for artifacts using commit SHA (so that we can find the artifacts to compare against for bloat)
a working implementation of artifact fetching
setup bloat scripts for all examples

Another idea would be for PRs to upload their binaries as usual and have the bloat check run in the scheduled process (we delete the outputs when bloats are generated). This would have the benefit of easily figuring out if a bloat report already ran or not.

Another idea would be for PRs to upload their binaries as usual and have the bloat check run in the scheduled process (we delete the outputs when bloats are generated). This would have the benefit of easily figuring out if a bloat report already ran or not.

I think @jwhui and the OpenThread team has some of these problems addressed. Are there solutions we can leverage there?

@jelderton @robszewczyk @hawk248 ?

Another idea would be for PRs to upload their binaries as usual and have the bloat check run in the scheduled process (we delete the outputs when bloats are generated). This would have the benefit of easily figuring out if a bloat report already ran or not.

I think @jwhui and the OpenThread team has some of these problems addressed. Are there solutions we can leverage there?

I believe the solution there was a github app - I had the link when we previously discussed this.
@jwhui - did you have any issues with fork repo permissions during the openthread bloat checker setup?

https://github.com/apps/size-report/ was mentioned in https://github.com/project-chip/connectedhomeip/issues/541

https://github.com/apps/size-report/ was mentioned in #541

Docs are a bit light there. I believe I currently know what to do to make our bloaty-based reports work, however I cannot estimate what it takes to get size-report to work. I would prefer if someone else more familiar tries for the size-report integration and then we can compare (or if one approach seems a time sync, we should just keep with whatever we get working first)

@bukepo or @jwhui  - do you want to try the path of making size-report work now that we are not a private repo anymore?

@andy31415 could you install the size-report app on this project, so that I can try bringing it up on this project?

@andy31415 could you install the size-report app on this project, so that I can try bringing it up on this project?

I don't think I have sufficient rights. @woody-apple: can we install the size-report app?

Separately, for this PR in particular: @saurabhst @jelderton @robszewczyk ?

@andy31415 could you install the size-report app on this project, so that I can try bringing it up on this project?

I don't think I have sufficient rights. @woody-apple: can we install the size-report app?

Done!

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

@andy31415 can you sign the CLA? we can merge then :)

This will apparently require some iterations to fix - still unclear to me why builds fail since this was supposed to be a python only change.


add removeNullElements method in ListUtils

@garydgregory @kinow @ramananravi Are we agreed to close this pull request with "not accepted" or some such comment?


Support CPU Pinning

Blocked by https://github.com/harvester/harvester-installer/pull/756
Problem:
Implement CPU Pinning feature
Solution:
Introduce two endpoints:

enable cpu manager: /v1/harvester/nodes/{node_name}?action=enableCPUManager, which turn cpu manager policy into static on the node. Then user could create vm with cpu pinning and deploy those vm to those nodes enable cpu manager.
disable cpu manager: /v1/harvester/nodes/{node_name}?action=disableCPUManager, which turn cpu manager policy into none, note that if there is any vm with cpu pinning on the node that needed to disable cpu manager, an error raise there should not be any running VMs with CPU pinning when disabling the CPU manager.

for more details, please check the HEP: https://github.com/harvester/harvester/pull/5803
Related Issue:
related to https://github.com/harvester/harvester/issues/2305,
Test plan:
prerequisite:
- build iso, note that you need to apply this patch
0001-custom-installer.patch after checkout to the branch which belongs to this PR. The patch change the harvester-installer version as I have to add some config files through harvester-installer while https://github.com/harvester/harvester-installer/pull/756 not merged yet.

prepare 3 nodes harvester cluster
create api key: click dashboard top right profile picture > Account & API Keys > Create API Key
Use the following curl cmd to enable/disable cpu manager:
a. enable cpu manager    curl 'https://<IP_ADDRESS>/v1/harvester/nodes/{node_name}?action=enableCPUManager' \
    -X 'POST' \
    -H 'Authorization: Bearer <API_KEY>' \
    --insecure

b. disable cpu manager    curl 'https://<IP_ADDRESS>/v1/harvester/nodes/{node_name}?action=disableCPUManager' \
    -X 'POST' \
    -H 'Authorization: Bearer <API_KEY>' \
    --insecure

Test enable/disable cpu pinning

enable cpu manager on harvester-node-0

Open k8s and there should have a job name start with harvester-node-0-update-cpu-manager- wait until the job done.

create vm named test with cpu pinning: go to dashboard and click Virtual Machines tab, click Create fill the Name, CPU, Memory, Volumes>Image field, and then click Edit as YAML. Add dedicatedCpuPlacement: true to .spec.template.spec.domain.cpu. And then click Create.

make sure the cpu pinning works by using the following cmd

kubectl exec {virt-launcher-pod-id} -- virsh dumpxml default_test | awk "/<cputune>/,/<\/cputune>/"

the cmd should output something like belows, depends on the cpu size, there should have the corresponding vcpupin xml fields.
  <cputune>
    <vcpupin vcpu='0' cpuset='1'/>
    ...
  </cputune>

disable cpu manager in harvester-node-0, and verify user can't disable cpu manager when there is a cpu pinned vm in harvester-node-0.
An error raise: admission webhook "validator.harvesterhci.io" denied the request: there should not be any running VMs with CPU pinning when disabling the CPU manager
stop the vm test
disable cpu manager in harvester-node-0

Verify only one master node could enable/disable cpu manager

enable cpu manager on harvester-node-0, no need to wait until cpu manager job done, go to step 2.
enable cpu manager on harvester-node-1
In step 2, an error raised: admission webhook "validator.harvesterhci.io" denied the request: there is another master node updating the CPU manager policy. Enabling or disabling the CPU manager requires restarting the kubelet, which in turn necessitates restarting the rke2-server. Since we are using a three-node setup where all nodes have the master role, restarting all rke2-servers simultaneously could lead to the entire cluster going offline. Therefore, the CPU manager update process allows only one master node to update at a time.

Verify there should be only one job enable/disable cpu manager per node

enable cpu manager on harvester-node-0, no need to wait until cpu manager job done, go to step 2.
enable or disable cpu manager on harvester-node-0
An error raise: admission webhook "validator.harvesterhci.io" denied the request: there is other ongoing job updating cpu manager policy

Verify we can't enable cpu manager when it is enabled, and we can't disable cpu manager when it's disabled

enable cpu manager on harvester-node-0, wait until cpu manager job done, go to step 2.
enable cpu manager on harvester-node-0, an error raises
admission webhook "validator.harvesterhci.io" denied the request: same cpu manager policy

Test reboot

Create vm with cpu pinning
Reboot harvester node
After reboot, check rke2-server or rke2-agent  (depends on the node role) start up successfully and vm is running.

Test upgrade path
Loop through all tests mentioned above under these 2 scenarios:

Test single node upgrade path: Prepare a one node harvester and upgrade to the version that include this feature
Test multi node upgrade path: Prepare multi nodes harvester cluster and upgrade to the version that include this feature.

apiVersion: harvesterhci.io/v1beta1
kind: Version
metadata:
  name: master
  namespace: harvester-system
spec:
  isoURL: http://<IP_ADDRESS>:8000/harvester-master-amd64.iso
---
apiVersion: harvesterhci.io/v1beta1
kind: Upgrade
metadata:
  annotations:
    harvesterhci.io/skip-version-check: "true"
    harvesterhci.io/skipWebhook: "true"
  generateName: hvst-upgrade-
  namespace: harvester-system
spec:
  version: "master"
  logEnabled: false

gentle ping @ibrokethecloud , @bk201 , could you take another look when you are available ? Thank you.

rebased and fix conflicts.

Not sure why ci failed... this pr didn't change anything related to vm image. I'll take a look.
------------------------------
verify image APIs operate via steve API verify image initialization succeeds
/go/src/github.com/harvester/harvester/tests/integration/api/image_apis_test.go:315
  STEP: create cirros image @ 09/03/24 08:07:48.211
  STEP: then the Initialized condition is true @ 09/03/24 08:07:48.221
time="2024-09-03T08:07:48Z" level=error msg="failed to check vmimage" error="Head \"https://download.cirros-cloud.net/0.5.1/cirros-0.5.1-x86_64-disk.img\": dial tcp <IP_ADDRESS>:443: connect: connection refused" name=9nrqh namespace=default
  [FAILED] in [It] - /go/src/github.com/harvester/harvester/tests/integration/api/image_apis_test.go:346 @ 09/03/24 08:07:49.241
• [FAILED] [1.031 seconds]
verify image APIs operate via steve API [It] verify image initialization succeeds
/go/src/github.com/harvester/harvester/tests/integration/api/image_apis_test.go:315

  [FAILED] Expected
      <bool>: true
  not to be true
  In [It] at: /go/src/github.com/harvester/harvester/tests/integration/api/image_apis_test.go:346 @ 09/03/24 08:07:49.241

  Full Stack Trace
    github.com/harvester/harvester/tests/integration/api_test.init.func<IP_ADDRESS>()
    	/go/src/github.com/harvester/harvester/tests/integration/api/image_apis_test.go:346 +0x128
    reflect.Value.call({0x2bfb500?, 0xc005589c40?, 0xc00660fa20?}, {0x335e927, 0x4}, {0x5ba6ee0, 0x0, 0xc00660fa72?})
    	/usr/local/go/src/reflect/value.go:596 +0xca6
    reflect.Value.Call({0x2bfb500?, 0xc005589c40?, 0x20?}, {0x5ba6ee0?, 0x1?, 0x3?})
    	/usr/local/go/src/reflect/value.go:380 +0xb9
    github.com/onsi/gomega/internal.(*AsyncAssertion).buildActualPoller.func3()
    	/go/src/github.com/harvester/harvester/vendor/github.com/onsi/gomega/internal/async_assertion.go:325 +0x11f
    github.com/onsi/gomega/internal.(*AsyncAssertion).match(0xc00547fce0, {0x3c4c930, 0xc0078fc910}, 0x1, {0x0, 0x0, 0x0})
    	/go/src/github.com/harvester/harvester/vendor/github.com/onsi/gomega/internal/async_assertion.go:540 +0x7cc
    github.com/onsi/gomega/internal.(*AsyncAssertion).Should(0xc00547fce0, {0x3c4c930, 0xc0078fc910}, {0x0, 0x0, 0x0})
    	/go/src/github.com/harvester/harvester/vendor/github.com/onsi/gomega/internal/async_assertion.go:145 +0x86
    github.com/harvester/harvester/tests/framework/dsl.MustFinallyBeTrue(0xc005589c40, {0xc005589c80?, 0x0?, 0x3?})
    	/go/src/github.com/harvester/harvester/tests/framework/dsl/action.go:40 +0x114
    github.com/harvester/harvester/tests/integration/api_test.init.func1.2.8()
    	/go/src/github.com/harvester/harvester/tests/integration/api/image_apis_test.go:343 +0x3a8
------------------------------

@Mergifyio backport v1.4


Feature: easier path to recovering an NFID with a recovery device

Is your feature request related to a problem? Please describe.
It would be great if there was an easier path to recovering an NFID with a recovery device.
Right now it appears you need to go to https://nfid.one/register-nfid-account/intro, pick "Other sign in options", and then "Security key".
The "Recover NFID" screen only allows entering a recovery phrase.
Describe the solution you'd like
Add an option to recover using a device on the "Recover NFID" screen.
Describe alternatives you've considered
Document the ability to do this via https://nfid.one/register-nfid-account/intro, "Other sign in options", and then "Security key".
Additional context
People may prefer not to use recovery phrases, and needing to recover an account could already be quite stressful, so a better experience seems preferable.

@paulyoung we plan to replace the QR code with our current authentication form on the home screen within the next 2 sprints where users can do as you suggest:

Tap "Other sign in options"
Enter NFID number
Tap on the "Security key" option for the WebAuthn prompt

Would this be an appropriate solution to your suggestion?

@dostro yeah, I think so.
I’m curious how people would still be able to use a recovery phrase with these changes.


bcache folders breaks transtive imports to windows

#51 The folders in the repo cannot be created on a windows machine when checking out the head.
` git clone https://github.com/prometheus/procfs I:\tools\go\path\src\github.com\prometheus\procfs
Cloning into 'I:\tools\go\path\src\github.com\prometheus\procfs'...
fatal: cannot create directory at 'sysfs/fixtures/devices/pci0000:00': Invalid argument
warning: Clone succeeded, but checkout failed.
You can inspect what was checked out with 'git status'
and retry the checkout with 'git checkout -f HEAD'
package github.com/prometheus/procfs: exit status 128`
I do not use your package directly  it is a transitive dependency from go-kit

@twinj I assume the colons in the filenames are the issue?
@ideaship Ugh, we need to find a solution. Any ideas? First things coming to my mind:

package all fixtures in a tarball/zip/something and unpack before running tests (Makefile?). Makes diff very cumbersome
Rename all fixture files removing characters invalid on Windows, rename before running tests
Combine all fixture files in one text file of some format. Parse template and create actual files before running tests.

Aye. The colon.
And these too. / ? < > \ : * | "

I won't be available until Monday, feel free to merge a solution @SuperQ @discordianfish @brian-brazil

Something like https://github.com/jtvaughan/ptar might be cool.

@grobie ptar seems to be a rather exotic addition to the test requirements.
I don't see a good solution. I find renaming the fixture files just before running the tests the least bad of the bunch because the part that is annoying can be automated. We could simply replace colons with some other character (just in the directory tree where it is necessary), or have an additional files to map real names to Windows-consumable names.
By the way, will the symlinks result in errors on Windows, too?

Agreed in general. Tried a rename approach, but ran into issues as renames need to happen in the right order (colons are included in both directory names and file names) and I couldn't immediately come up with a solution working with standard tooling. As I'm running out of time and won't be available during the next days, I put together a quick fix in #55.
@ideaship More than happy to accept a nicer solution.

Fixed with a tarball quickfix. Open for better solutions @mdlayher @ideaship.

@grobie Looks like the best quick fix. I'd take it.


fix(Notifications Modal): Date and time problems

Outlined in the ECMAspec getMonth() returns 0-11 this was pointed out in a pull request in ozp-center this carries it over to hud
http://www.ecma-international.org/ecma-262/6.0/#sec-month-number

@clarkjefcoat @akonsowski

:+1:

:+1:


Create Login Page with Smooth Transition to Home Page

Description: (issue #70 )
This PR introduces a login page for the Ambulance Tracking System application. The page is designed with a clean user interface and includes a smooth transition link that navigates users to the home page upon successful login. The key features of this implementation are:
1. Login Page Design: The login form is created using HTML and styled with CSS for a modern, user-friendly experience.
2. Home Page Transition: A smooth, animated transition is implemented using JavaScript, allowing users to navigate to the home page after logging in.
3. Validation: Basic client-side validation is added for email/username and password fields.
4. Accessibility: Ensures the page is accessible for users with different needs.
screenshot

i think, instead of ambuflow and description, welcome should be written


fix(chart): allow empty OpenServiceMesh.image.pullPolicy

Description:
This change updates values.schema.json to allow defining an empty
OpenServiceMesh.image.pullPolicy, which behaves as described here:
https://kubernetes.io/docs/concepts/containers/images/#updating-images

Affected area:

New Functionality      [ ]
Documentation          [ ]
Install                [ ]
Control Plane          [ ]
CLI Tool               [ ]
Certificate Management [ ]
Networking             [ ]
Metrics                [ ]
SMI Policy             [ ]
Security               [ ]
Tests                  [ ]
CI System              [ ]
Performance            [ ]
Other                  [X]

Please answer the following questions with yes/no.

Does this change contain code from or inspired by another project? If so, did you notify the maintainers and provide attribution?
No

@shashankram I want to be able to set it to an empty value so when I'm playing with helm upgrade, I can set it to empty so I can upgrade from a tagged image to a latest image without modifying the pull policy and get the behavior I want. It's also valid in general so we should allow it.

@shashankram I want to be able to set it to an empty value so when I'm playing with helm upgrade, I can set it to empty so I can upgrade from a tagged image to a latest image without modifying the pull policy and get the behavior I want. It's also valid in general so we should allow it.

Thanks, it would be worth mentioning in the commit message that this should be allowed in general.


[CI Environment] Updated the way the test file is found

Description

Removed hardcoded test file path and replace it with actual reference from inside test. This also allows the reference of alternate test files (e.g., for AVM)

Pipeline references

Pipeline

Type of Change

[x] Bugfix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] Update to documentation

Closing until structure is replicated from avm


Load list friend request

hi @baoluo ,
I'm trying to build xmpp client by objC connect to ejabberd but meet a issue right now.
I can send to you a buddy request via
[self.xmppRoster addUser:[XMPPJID jidWithString:_jid] withNickname:_nickName];
but i want receiver can see list of buddy requests so that he can accept/reject it.
Can u give me a help?

Unfortunalty I can't help you, I already have a lot of work and Github isn't the right place, however you can post a question on stack overflow, and others will help you


Fix issues found during testing / preperation for the virtual season

Based on #4
Changes:

Don't define topics via the json as this seems like a non-standard way of doing this. Instead reasonable defaults are selected and they can easily be remapped by the user. See IPM for a similar discussion.
Make the json devices file path a parameter
Check if the json is at the path and give a helpful error if not
Fix issue where ms are parsed as nanoseconds
Fix camera info handling (no latch, timestamp, dimensions directly taken from the image)

@Flova Would you be able to rebase onto current main?

I did a merge instead of a rebase, because I was on my phone and it was easier that way.

Now that the CI is working I need to fix linter stuff ^^

@SammyRamone and @ijnek I addressed the feedback and fixed some linting. I am not able to merge it on this repo so feel free to merge it after approval.

@SammyRamone and @ijnek I addressed the feedback and fixed some linting. I am not able to merge it on this repo so feel free to merge it after approval.

looks fine for me, but I will not merge it without @ijnek okay :sweat_smile:

I addressed said issue. So we can merge it after the CI finished. Thanks for your review @ijnek !

CI finished successfully. Merge? @SammyRamone

CI finished successfully. Merge? @SammyRamone

I will let @ijnek do it. I'm not sure if normal merge or rebase is preferred for this repo.


add post-start health check for kibana

Kibana's startup process frequently takes over 60 seconds from the time monit thinks it's started (pid file exists) until it's actually able to accept connections. This can lead to 503s from haproxy  as bosh will not wait for kibana to be actually running before moving on to updating the next instance.
This PR adds a post-start health check to kibana which waits for it to accepting connections before marking it up.  The logic from this health check was taken directly from the elasticsearch job's post-start check.
cc: @jmcarp @rogerruiz

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


Fix Python grpcio-tools windows build

When one uses the wrong version of python, one sees strange and unexpected DLLs in the output of ntldd protoc_compiler.pyd.
Testing on Jenkins first, then removing DNM label.
cc @jtattermusch
EDIT: following this build

@jtattermusch I think the Mac OS X build machines need to be revived...

@soltanmm I tried to restart the macs remotely, didn't help. probably needs to be done from the office.

@soltanmm  still working on the macs, I think I should have that ready soon.

@soltanmm  they're up and running.

This only affects artifact building and   the distribtests look the same as they did before.
https://grpc-testing.appspot.com/view/Artifacts/job/gRPC_distribtest/666/architecture=x64,language=python,platform=linux/console


Fluvio - secret sauce for scalability

By @AlexMikhalev, replaces #461
Getting Started - warm up and machine to machine communications
minikube status
fluvio profile current
fluvio cluster check

Code quality "Hello World", for discussion and not merge - large change and it's combined "Hello World" for Fluvio Rust library and examples/basic.rs
First modify basic example to emit new article on successful save:
record()
Second add consume_record, where we are:

Reading fluvio stream
parsing key into subject (key for Atomic Data Server)
Parsing value into resource
If successful saving into local (in memory in this example storage)

Start with

cargo run --example async_std_consumer --all-features -- produce_record
Check that data is available in topic fluvio consume atomic-data -B
cargo run --example async_std_consumer --all-features -- consume_record

That closes Machine 2 Machine communication discussion: https://github.com/atomicdata-dev/atomic-data-rust/issues/425 . Obviously we can now extend commit hook to produce record into fluvio topic in the same way as you added tantivy indexing.
Now cool stuff
We have: JSON_AD importer
https://github.com/atomicdata-dev/atomic-data-rust/issues/390
Atomizer
https://github.com/atomicdata-dev/atomic-data-rust/issues/434
Wasm plugins
https://github.com/atomicdata-dev/atomic-data-rust/issues/73
discussions and roadmap items. As it happens Fluvio supports HTTP (and other) connectors, which allow us to run Smartmodule (WASM plugins) on "the edge" - before data arrives into fluvio topic.
So we can build a highly scalable Atomizer with an option to pre-process data "on-fetch" and "on-save". If it sounds like dream come true, this is because it is ;-)
Lets start by building fetcher for JSON-AD from reference-architecture.ai
Follow:
https://www.fluvio.io/smartmodules/transform/array-map/
I created array-map-ref-arch-ad don't use underscores in name of connector or topic - fluvio doesn't like it in many places.
cd array-map-ref-arch-ad
cargo build --release

fluvio smart-module list
(should be empty)
fluvio smart-module create array-map-ref-arch-ad --wasm-file ./target/wasm32-unknown-unknown/release/array_map_ref_arch_ad.wasm
fluvio smart-module list
  NAME                   STATUS             SIZE
  array-map-ref-arch-ad  SmartModuleStatus  156905

Now start http connector locally:
docker run -d --name="my-http" \
-v"$HOME/.fluvio/config:/home/fluvio/.fluvio/config" \
-t infinyon/fluvio-connect-http:latest \
-- \
--endpoint="https://reference-architecture.ai/json-ad" \
--fluvio-topic="atomic-data" \
--interval=10s --arraymap="array-map-ref-arch-ad"

Http connector can be deployed into Infinyon cloud or run locally, since I use minikube it can't fetch externally so it fails. #FIXME
Connector parameters can be specified reference_architecture.yml and registered on cloud with
fluvio connector create --config=./reference_architecture.yml

Not relevant any more.


HashCache panics on accessing entries after cleanup

Hello!
I try to use scc::HashCache to build a rate limiter for a proxy server.
There's a number of workers which get and put user rate data into the structure and a background job which periodically cleans up obsolete data alongside with LRU.
However I got panics and made an investigation which lead me to the following minimal example which reproduces the panic:
use scc::HashCache;

const CAPACITY: usize = 64;

fn main() {
    let hc: HashCache<usize, usize> = HashCache::with_capacity(CAPACITY, CAPACITY);

    for i in 0..CAPACITY {
        let _ = hc.get(&i).unwrap_or_else(|| hc.entry(i).or_put(i).1);
    }

    hc.retain(|_, _| false);

    for i in 0..CAPACITY {
        let _ = hc.get(&i).unwrap_or_else(|| hc.entry(i).or_put(i).1);
    }
}

Debug run fails on an assertion:
thread 'main' panicked at /Users/fey/.cargo/registry/src/index.crates.io-6f17d22bba15001f/scc-2.0.9/src/hash_table/bucket.rs:965:9:
assertion `left == right` failed
  left: 0
 right: 2
stack backtrace:
   0: rust_begin_unwind
             at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/panicking.rs:645:5
   1: core::panicking::panic_fmt
             at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/core/src/panicking.rs:72:14
   2: core::panicking::assert_failed_inner
   3: core::panicking::assert_failed
             at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/core/src/panicking.rs:279:5
   4: scc::hash_table::bucket::Locker<K,scc::hash_table::bucket::Evictable<V>,_>::update_lru_tail
             at /Users/fey/.cargo/registry/src/index.crates.io-6f17d22bba15001f/scc-2.0.9/src/hash_table/bucket.rs:965:9
   5: scc::hash_cache::VacantEntry<K,V,H>::put_entry
             at /Users/fey/.cargo/registry/src/index.crates.io-6f17d22bba15001f/scc-2.0.9/src/hash_cache.rs:1693:9
   6: scc::hash_cache::Entry<K,V,H>::or_put_with_key
             at /Users/fey/.cargo/registry/src/index.crates.io-6f17d22bba15001f/scc-2.0.9/src/hash_cache.rs:1313:17
   7: scc::hash_cache::Entry<K,V,H>::or_put_with
             at /Users/fey/.cargo/registry/src/index.crates.io-6f17d22bba15001f/scc-2.0.9/src/hash_cache.rs:1286:9
   8: scc::hash_cache::Entry<K,V,H>::or_put
             at /Users/fey/.cargo/registry/src/index.crates.io-6f17d22bba15001f/scc-2.0.9/src/hash_cache.rs:1266:9
   9: hash_cache_overload::main::{{closure}}
             at ./examples/hash_cache_overload.rs:15:46

Release build don't always fail but often gives this:
thread 'main' panicked at /Users/fey/.cargo/registry/src/index.crates.io-6f17d22bba15001f/scc-2.0.9/src/hash_table/bucket.rs:964:42:
index out of bounds: the len is 32 but the index is<PHONE_NUMBER>3709551615
stack backtrace:
   0: _rust_begin_unwind
   1: core::panicking::panic_fmt
   2: core::panicking::panic_bounds_check
   3: scc::hash_table::bucket::Locker<K,scc::hash_table::bucket::Evictable<V>,_>::update_lru_tail
   4: scc::hash_cache::Entry<K,V,H>::or_put_with_key
   5: hash_cache_overload::main

Rust version: 1.75.0.

Thanks a lot! I must have made a rudimentary mistake in the linked list management code. I'll fix it as soon as possible, hopefully by the end of this week.

Fortunately, not a complicated problem, so I can upload 2.0.10 within a couple of hours.

This issue is fixed in SCC 2.0.10.
Thanks again for finding out this bug!

Thanks for the quick fix. The original example now passes but I found a more complex one which still panics with the same backtrace:
use std::sync::Arc;
use std::time::{Duration, Instant};

use scc::HashCache;

const CAPACITY: usize = 4_194_304;

fn main() {
    let start = Instant::now();
    let hc = Arc::new(HashCache::<usize, u64>::with_capacity(CAPACITY, CAPACITY));
    let hc_clone = hc.clone();

    std::thread::spawn(move || loop {
        for key in 0..CAPACITY {
            let _ = hc.get(&key).unwrap_or_else(|| {
                hc.entry(key)
                    .or_put_with(|| {
                        Instant::now()
                            .checked_duration_since(start)
                            .unwrap()
                            .as_secs()
                    })
                    .1
            });
        }
    });

    std::thread::spawn(move || loop {
        let deadline = Instant::now()
            .checked_duration_since(start)
            .unwrap()
            .as_secs()
            .saturating_sub(Duration::from_secs(1).as_secs());

        hc_clone.retain(|_, v| deadline <= *v);
    })
    .join()
    .unwrap();
}

Thanks again, I'll look into the remaining issue tomorrow!

Identified the issue, and fixed it.
SCC 2.0.11 will include the fix.
-> I figured that the HashCache code is not quite optimal, so created #122.


[FEATURE REQ] eng, move SDK automation out of eng/mgmt folder

The script relates to SDK automation was initially only for management-plane. Hence, they are historically under https://github.com/Azure/azure-sdk-for-java/tree/main/eng/mgmt/automation
Now, since it works for both data-plane and management-plane, we need to re-arrange the folders.
This would need to be updated accordingly
https://github.com/Azure/azure-rest-api-specs/blob/main/specificationRepositoryConfiguration.json#L56

Scheduled after mpg generation script support.
https://github.com/Azure/autorest.java/issues/2518

@weidongxu-microsoft Do we want to move only SDK Automation related scripts, or all scripts under eng/mgmt?
I've listed both impacts in the issue description. I feel like moving them together(ultimately) since codegen also includes both data-plane and management-plane.
If we move only SDK automation related code, shell scripts will still refer to generate script in eng/mgmt folder.
Downside would be, we may need to memorize new generate.py location when generating code locally, e.g. eng/automation/generate.py and we almost always use this script to generate management-plane SDKs.
For new script location, I have eng/automation in mind.
We could start with SDK automation first, then the entire folder.

I guess we can move them together. Just remove the mgmt in the middle likely be good enough.


Fixed ng-repeat issue

Closes https://github.com/Tradeshift/Client-Runtime/issues/48.
DocumentFragment can also be passed to DOM APIs, but this was not being properly handled.
Now it is.

:trophy: Some high quality updates in there. Admin status unlocked.


AC-3 audio configuration for requestMediaKeySystemAccess() is not supported on Tizen, but it is playing

Have you read the FAQ and checked for duplicate open issues?
Yes
What version of Shaka Player are you using?
2.5.17, 3.0.5
Can you reproduce the issue with our latest release version?
Yes
Can you reproduce the issue with the latest code from master?
Yes
Are you using the demo app or your own custom app?
Custom app
If custom app, can you reproduce the issue using our demo app?
Yes
What browser and OS are you using?
Tizen
For embedded devices (smart TVs, etc.), what model and firmware version are you using?
Tizen3, Tizen4, Tizen5
What are the manifest and license server URIs?
https://support.smartlabs.tv/udrm/wvfta/license
https://support.smartlabs.tv/DTE_DASH_AUTO/TESTCONTENT/TOS_AC3_ENC/playlist.mpd
What did you do?
Start playing
What did you expect to happen?
Playing is started
What actually happened?
Error in log:

The walker saw an error:
Error Code: 6001

But if I remove AC-3 codec from MediaKeySystemConfiguration.audioCapabilities and shaka.media.DrmEngine.willSupport() return is true, then no error occurs and shaka successfully plays this stream.

Code for test:
var configs = [{
    initDataTypes: ['com.widevine.alpha', 'webm'],
    audioCapabilities: [
        { contentType: 'audio/mp4; codecs="ac-3"' },
    ],
}];
navigator.requestMediaKeySystemAccess('com.widevine.alpha', configs);

Output in console on Tizen:
Uncaught (in promise) DOMException: Unsupported keySystem or supportedConfigurations.

This could be an issue with the MediaKeys implementation in Tizen.  (It wouldn't be the first.)
I wrote a quick test to get us some more information from your particular device.  Can you please load this URL on your Tizen device and send us a screenshot of the results?
https://storage.googleapis.com/shaka-demo-assets/_bugs/2989/ec3-test.html
Thanks!

@joeyparrish From Tizen 5.5

If this is the case, I don't see how DrmEngine would have rejected the AC-3 stream or failed to get a CDM instance.  The manifest has:
<Representation audioSamplingRate="48000"
    mimeType="audio/mp4" codecs="ac-3"
    id="1" bandwidth="448000">

I'll see if I can test this remotely with the Tizen TV in our lab.

I'm trying to Google whether or not all Tizen TVs support AC-3, because if so, the workaround could be pretty simple.  However, the first search result in Google for "tizen ac-3" is this issue.  :rofl:

You can see the media specifications of each tv model year in:
https://developer.samsung.com/smarttv/develop/specifications/media-specifications/2017-tv-video-specifications.html
https://developer.samsung.com/smarttv/develop/specifications/media-specifications/2018-tv-video-specifications.html
https://developer.samsung.com/smarttv/develop/specifications/media-specifications/2019-tv-video-specifications.html
https://developer.samsung.com/smarttv/develop/specifications/media-specifications/2020-tv-video-specifications.html

Perfect, thanks!  According to the data from Samsung, Tizen TVs all the way back to 2015 models all support AC-3.  None of those tables mention EC-3 support, even the one for my model which reports EC-3 support.  So I will assume that EC-3 support implies AC-3, and that Samsung just doesn't mention it in their docs.
That means we should be able to assume AC-3 will work so long as EC-3 will work.

By querying EC-3 every time we query AC-3, and assuming that EC-3 support implies AC-3 support after that, it does seem to play on our Tizen 3 device.  I'm going to put my fix up for code review now.

You're only going to do this for Tizen right? I don't want any other platform to break ...

I have Tizen3, Tizen4, Tizen5 TVs. Test result with 'my workaround':
Tizen3 - no error, stream is playing, no sound (there may be some other error, since earlier on Tizen there were already problems with sound https://github.com/google/shaka-player/issues/1610)
Tizen4 - no error, stream is playing, sound is playing
Tizen5 - no error, stream is playing, sound is playing

The workaround will be limited to Tizen, but I am also creating some infrastructure in DrmEngine for doing fallbacks and overrides for this sort of thing.  It should be fairly easy to tweak if we make mistakes or if it needs to be adjusted or expanded for other platforms or codecs.

@aluklon, @avelad, the fix has landed in the master branch.  Please let us know if you have any concerns with the implementation, and also please let us know if the fix is working for you as it is for me.  Thanks!

I will test throughout the week and tell you the results.

@joeyparrish, I tested the fix https://github.com/google/shaka-player/commit/ba4763ad498c2c997d5a906102426635e606cfaf. The result is the same as here: https://github.com/google/shaka-player/issues/2989#issuecomment-726992789. Thanks!


docs: update PhoneNumberInput docs layout

Please use this Markdown template for docs 👍 )
#### Usage

🚀 Preview deployed
Built with commit 74ecf989e450256dd96c5fdb7a7a647ca96feae5
https://deploy-preview-180--stoic-hodgkin-c0179e.netlify.com

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Bug in unit test

Jenkins reports a failed unit tests in pipelines repository.
Excerpt from the Jenkins log:
Failed tests:   testNoBody(eu.freme.eservices.pipelines.TestWrongRequests): expected:<406> but was:<401>
  testSomethingThatWorks(eu.freme.eservices.pipelines.TestEntityLinkTerminology): expected:<200> but was:<401>
  testSomethingThatWorks(eu.freme.eservices.pipelines.TestEntityLinkTranslation): expected:<200> but was:<401>
  testWrongLanguagePair(eu.freme.eservices.pipelines.TestEntityLinkTranslation): expected:<404> but was:<401>
  testALongerText(eu.freme.eservices.pipelines.TestEntityLinkTranslation): expected:<200> but was:<401>
  testFremeNER(eu.freme.eservices.pipelines.TestEntityLink): expected:<200> but was:<401>
  testSpotlight(eu.freme.eservices.pipelines.TestEntityLink): expected:<200> but was:<401>
  testWrongDatasetEntity(eu.freme.eservices.pipelines.TestEntityLink): expected:<400> but was:<401>
  testWrongLanguageEntity(eu.freme.eservices.pipelines.TestEntityLink): expected:<400> but was:<401>

The problem here is that the requests are "unauthorized". I guess that this happens because FREMECommon is included and thus Spring Security is enabled. (How) can I turn this off or provide some user authentication for the junit tests?

We are currently working on e-link security and this introduced a bug. Lets wait for https://github.com/freme-project/Broker/issues/107 . When this is finished I expect this bug to be fixed.

Solved.


In production, my custom files are not being hashed on mix-manifest.json

Laravel Mix Version: 2.1.11
Node Version: v8.11.3
NPM Version: 5.6.0
OS: macOS High Sierra 10.13.5 (17F77)

Description:
I wanted to hash my image files which are outside the webpack imports so that I could avoid cache, then I realized that when I ran yarn watch the files were correctly versioned, but yarn prod didn't produce the hashes at mix-manifest.json. This happened with my custom hashed-to-be files.
Here is my webpack.mix.js:
const mix = require('laravel-mix'),
    WebfontPlugin = require('webfont-webpack-plugin').default,
    ImageminPlugin = require('imagemin-webpack-plugin').default,
    CopyWebpackPlugin = require('copy-webpack-plugin'),
    imageminMozjpeg = require('imagemin-mozjpeg'),
    glob = require('glob');

mix.browserSync('mysite.test', {
    open: false
});

mix.js('resources/assets/js/app.js', 'public/js')
    .options({
        processCssUrls: false
    })
    .webpackConfig({
        module: {
            rules: [
                {
                    test: require.resolve('bootstrap/js/dist/util'),
                    use: [
                        {
                            loader: 'script-loader'
                        }
                    ]
                }
            ]
        },
        plugins: [
            new WebfontPlugin({
                files: 'resources/assets/svg/fonticons/*.svg',
                dest: 'public/fonts',
                bail: true,
                normalize: true,
                templateClassName: 'icon',
                fontName: 'icons',
                templateFontPath: '../fonts/',
                templateFontName: 'icons',
                template: 'resources/assets/sass/font.scss.njk',
                destTemplate: 'resources/assets/sass'
            }),
            new CopyWebpackPlugin([{
                context: 'resources/assets/img',
                from: '**/*.{jpg,jpeg,png,gif}',
                to: 'img'
            }]),
            new ImageminPlugin({
                // disable: process.env.NODE_ENV !== 'production', // Disable during development
                externalImages: {
                    context: 'resources',
                    sources: glob.sync('/assets/img/**/*.{png,jpg,jpeg,gif}'),
                    destination: 'public'
                },
                pngquant: {
                    quality: '65-80'
                },
                plugins: [
                    imageminMozjpeg({
                        quality: 65,
                        maxmemory: 1000 * 512
                    })
                ]
            })
        ]
    })
    .sass('resources/assets/sass/app.scss', 'public/css')
    .then(() => {
        // This glob returns an array of all my images correctly. In fact `version` doesn't trigger any
        // error
        mix.version(glob.sync('public/img/**/*.{png,jpg,jpeg,gif}'));
    });

if (mix.inProduction()) {
    mix.version();
}

Steps To Reproduce:
Just run yarn watch and the files are versioned, even the custom ones. yarn prod makes the process of compilation, but don't update the mix-manifest.json.

#1641 seems to have the same problem.


add poc react snippets

I'm not sure how to manage these on a per-project basis, but these are useful snippets to us for react components. Open to suggestions on prefix though.

yeah, there's a way to do per project config i think, but it requires a plugin. may be worth digging into. This has merge conflicts.

I haven't found anything suggesting a per-project snippets config.

you could prefix your snippets w/ poc or p or something. That said, these look generally useful, so I wouldn't say they need to be poc specific.

They have a mixture of styles (require/ES6) so I wasn't sure. I guess the other option is to make them pure ES6 with imports and convert poc to use ES6 modules. :trollface:

@aaronjensen are you cool if I merge?

I have looked into project snippets and haven't found anything.

ya dude gopherit

beat you to it


Need to upgrade saas

Saas introduced the @use instead of @include
So now the terminal gets filled with depression warnings, unless you're suppressing saas deps in config

Also I want to mention that, the last time I checked out this theme it worked out of the box, now that doesn't seem to be the case anymore...
Probably because it became more feature rich and robust.
Will you be releasing a template version in future? The people will be able to just use the template repo to get a working website in minutes

Could you add more detail on how it's not working out of the box now? (or a commit hash for when it was?) The only thing I can see is maybe I removed the _config.yml file.

I'll just fork and create a config and you can take a look at the build errors

So here's the version I tested with without locally doing things, on github
And that works perfectly fine.
And here's the local problem:

the terminal output:
?➜  jekyll-theme-profile git:(main) ?✗ bundle exec jekyll serve --livereload
To use retry middleware with Faraday v2.0+, install `faraday-retry` gem
Configuration file: /home/soumyak4/Desktop/Tests/jekyll-theme-profile/_config.yml
 Theme Config file: /home/soumyak4/Desktop/Tests/jekyll-theme-profile/_config.yml
            Source: /home/soumyak4/Desktop/Tests/jekyll-theme-profile
       Destination: /home/soumyak4/Desktop/Tests/jekyll-theme-profile/_site
 Incremental build: disabled. Enable with --incremental
      Generating...
   GitHub Metadata: No GitHub API authentication could be found. Some fields may be missing or have incorrect data.
        Pagination: Pagination is enabled, but I couldn't find an index.html page to use as the pagination template. Skipping pagination.
Deprecation Warning: Sass @import rules are deprecated and will be removed in Dart Sass 3.0.0.

More info and automated migrator: https://sass-lang.com/d/import

  ╷
9 │ @import "jekyll-theme-profile";
  │         ^^^^^^^^^^^^^^^^^^^^^^
  ╵
    /home/soumyak4/Desktop/Tests/jekyll-theme-profile/assets/css/theme.scss 9:9  root stylesheet
Deprecation Warning: Sass @import rules are deprecated and will be removed in Dart Sass 3.0.0.

More info and automated migrator: https://sass-lang.com/d/import

  ╷
3 │ @import "highlight-syntax";
  │         ^^^^^^^^^^^^^^^^^^
  ╵
    jekyll-theme-profile.scss 3:9                                                @import
    /home/soumyak4/Desktop/Tests/jekyll-theme-profile/assets/css/theme.scss 9:9  root stylesheet
Deprecation Warning: Sass @import rules are deprecated and will be removed in Dart Sass 3.0.0.

More info and automated migrator: https://sass-lang.com/d/import

  ╷
4 │ @import "language-colors";
  │         ^^^^^^^^^^^^^^^^^
  ╵
    jekyll-theme-profile.scss 4:9                                                @import
    /home/soumyak4/Desktop/Tests/jekyll-theme-profile/assets/css/theme.scss 9:9  root stylesheet
Deprecation Warning: Sass @import rules are deprecated and will be removed in Dart Sass 3.0.0.

More info and automated migrator: https://sass-lang.com/d/import

  ╷
5 │ @import "main";
  │         ^^^^^^
  ╵
    jekyll-theme-profile.scss 5:9                                                @import
    /home/soumyak4/Desktop/Tests/jekyll-theme-profile/assets/css/theme.scss 9:9  root stylesheet
                    done in 5.238 seconds.
 Auto-regeneration: enabled for '/home/soumyak4/Desktop/Tests/jekyll-theme-profile'
LiveReload address: http://<IP_ADDRESS>:35729
    Server address: http://<IP_ADDRESS>:4000
  Server running... press ctrl-c to stop.

@athackst do you know why this happens? I can't figure it out.
if this is not solvable I'll just have to run tests by deploying to github every time

I think it's missing an index.html file and a /blog/index.html file - I can look into adding these into the main folder instead of nesting it in /demo.
I was trying to keep all of the theme related documents into it's own folder to make it easier to ignore.

Thank you
Have a good day


Getters and methods implicit return types should be recomputed upon inheritance.

🔍 Search Terms
inheritance getter and attribute inconsistency
✅ Viability Checklist

[X] This wouldn't be a breaking change in existing TypeScript/JavaScript code
[X] This wouldn't change the runtime behavior of existing JavaScript code
[X] This could be implemented without emitting different JS based on the types of the expressions
[X] This isn't a runtime feature (e.g. library functionality, non-ECMAScript syntax with JavaScript output, new syntax sugar for JS, etc.)
[X] This isn't a request to add a new utility type: https://github.com/microsoft/TypeScript/wiki/No-New-Utility-Types
[X] This feature would agree with the rest of our Design Goals: https://github.com/Microsoft/TypeScript/wiki/TypeScript-Design-Goals

Sorry it's me again, but I'm still having issue with TS lack of precision on return types.
⭐ Suggestion
Getter/method implicit return type should be recomputed upon inheritance.
Alternatively, a way to indicate we want the return type to be recomputed should be provided e.g. something like :

class Base { get foo(): infer {...} }) or class Child extends Base {  foo: infer;  }.

I think the current behavior may lead to undetected bugs.
The suggestion I make may not be the best one, but I think the issue does exist.
class Base {
    get foo(): number|string {} // we explicitly state the return type
    // i.e. we expect all inheriting classes to return the same type except if explicitly stated otherwise.
    get faa() {} // we do not indicate the return type, i.e. we say "please TypeScript deduce it for me".
    // i.e. it may be slightly different in inherited classes, and TypeScript should do its best to give us the best return type.
    // however, currently, the return type is computed only once, inside the Base class.
}

This behavior is inconsistent with the behavior of attributes upon inheritance, which is confusing:
class Base {
    protected _foo: string|number = 4;
}
class Child extends Base {
    protected override _foo = 4; // typeof this._foo = number.
}

📃 Motivating Example
abstract class Base{

	protected abstract _foo: number|string; // idem for {val: number};
	protected abstract _faa: number|string; // idem for {val: number};

	get foo(): string|number {
		return this._foo;
	}

	get faa() {
		return this._faa;
	}
}

class Child extends Base {
	protected override _foo: Base["_foo"] = 4; // string|number
	protected override _faa = 4; // number // idem for {val: number, another: ...}

	/* meh, too verbose
	override get faa() {
		return super.faa as typeof this._faa;
	}*/
}

let c = new Child();

let foo = c.foo; // string|number
let faa = c.faa; // string|number, when we only expect number;

class GrandChild extends Child {
	override _foo = "str"; // ok (expected)
	//override _faa = "str";    // error (expected)

	override get faa() {
		return "str"; // should raise an error as it breaks Child expected API, could lead to bugs.
	}
}

Playground Link
💻 Use Cases

What shortcomings exist with current approaches?

Too verbose, potentially risky, and a pain to do so on each of the inherited classes:
get faa() {
		return super.faa as typeof this._faa;
		// if super.faa is rewritten to return a string even if this._faa is a number, this could lead to undetected bugs.
}

For complex types, could be tricky to write, and could break encapsulation (i.e. may require to know how the returned value is computed to deduce what its type should be).
Or even worst:
let c = new Child();
let faa = c.faa as number; // DANGEROUS as a grandchild could override get faa() without raising a TS error.

#38008 is for methods, not sure if there’s a duplicate for getters

#38008 is for methods, not sure if there’s a duplicate for getters

This could help in some cases, although you still need to know the returned type (which can be tricky), and to explicitly add it in the children classes. It'll be better if an implicit return type could make it auto-magically. Or to have a keywork like "infer" to tell TS to re-infer the return type upon inheritance.
In other cases, it would be impossible to use as some types are currently impossible to describe in TS (e.g. when it requires generic instantiation of a type or when TS widen types).
I use another workaround :
abstract class Base {
    protected _foo: string|number = 42;
    abstract readonly foo: typeof Base["_foo"];
}

class Child extends Base {
     protected _foo = 42; // numbers
     override foo = this._foo; // requires to "re-implement" the public RO prop in each sub-classes.
}

You've got protected in there which messes things up, but otherwise you could use polymorphic this to do what you're describing:
abstract class Base {
	abstract _foo: number | string;
	get foo(): this["_foo"] {
		return this._foo;
	}
}

class Child extends Base {
	override _foo = 4;
}

let c = new Child();
let foo = c.foo; // number

The problem with "auto-magic" or "infer" is that it needs to.  Essentially you're either asking for all classes to be implicitly generic (which is essentially what polymorphic this and almost works here except you can't access private/protected methods this way in the type system) or you're asking for every subclass to cause TS to re-analyze the base class types again (which doesn't scale) or you should settle for declare-ing more narrowed types in subclasses (which would work fine except is not supported for methods or getters).
But these are just my opinions, we'll see what the TS team says.

Thanks for your answer.

You've got protected in there which messes things up, but otherwise you could use polymorphic this to do what you're describing

Yep, that is one of the issue. The other is that from this there are types you can't describe in TS.
Maybe one workaround is to make the member public but name it with a symbol ?
This would be a little dirty though.

The problem with "auto-magic" or "infer" is that it sounds like you want the compiler to do a lot of extra work that might not scale.

I'm starting to think that all issues I had recently comes from  TS type widening inside function body...
If, for example, the : infer would prevent type widening, I assume the compiler wouldn't have to do much more work once the return type is deduced once, e.g.
foo(): infer {
     return this._foo; // return type is typeof this._foo
     // type FooReturnType<T extends typeof this._foo> = T
}

The return type could be partially pre-computed at the class level, to not do too much extra-computations on each calls ?
And as it is something you explicitly opt-in, this could be more acceptable ?

or you should settle for declare-ing more narrowed types in subclasses (which would work fine except is not supported for methods or getters).

declare doesn't seem to work with override.
Maybe something like that could be acceptable ?
class Child {
   override foo: infer; // override: ensure "foo" exists in the base class.
   // infer, an opt-in to recompute the type (for an attribute) or the return type (for a getter or method).
}

Also, you talked about scalability, I understand for the auto-magically option, but I do not understand why an opt-in like:
class Base {
     get foo(): infer {} // e.g. if no "foo" in children classes, adds a `override foo: infer;` to it ?
}

Would cost more than a :
class Child extends Base {
       override get foo() {
             return super.foo as typeof this._foo // <- you also need to recompute the return type.
       }
}

Sounds like #10570.

Sounds like #10570.

I don't think so.
#10570 is about the type of attribute that are recomputed from the initializer expression, leading to troublesome behavior when initializing them to [], {} or null.
My issue is about method and getter implicit return type that aren't recomputed in the children classes while we could have more precise types.

This violates the principle that you can (almost always) move a piece of code across the .ts -> .d.ts boundary without change in behavior. Since we can't see the base class's source code in a .d.ts, there'd be no way to recompute the return type.

This violates the principle that you can (almost always) move a piece of code across the .ts -> .d.ts boundary without change in behavior. Since we can't see the base class's source code in a .d.ts, there'd be no way to recompute the return type.

?
But you still have access to the base class methods' return type, no ?
You could simply have 2 returns types :

the simple one, pre-computed for the class.
the complex one, e.g. FooReturnType<T extends typeof this._foo, etc>, used internally to recompute the return type in the child class.

There's nothing simple about this at all, that's the problem

Then, if it is not possible, could it be possible to at least be able to override a method without having to give the implementation (i.e. we change the method signature, but not its implementation) ?
override foo(...): Child;
// or
override foo(...): Child = inherit; // we explicitly state we do not provide an implementation.

It will help a little for some cases.
And to be able to use this maybe :

enable to use protected member in this["member_name"].
enable to provides generic parameters when fetching a member, e.g. this[<T>"..."] or AsGeneric<this["..."], T> or whatever, cf previous issues.

?


Add multiple list choices and alternative weight pattern

Hi there! Thanks for this custom node, it's amazing.
I added some features that could be useful:
Chose n elements between brackets with the n# pattern
Example: [2#apple|orange|banana] will randomly select 2 elements from the list
Chose between n and m elements with n-m# pattern.
Example:  [1-2#apple|orange|banana] will randomly select between 1-2 elements from the list
Weights can now follow the alternative weight: pattern (if you find it more readable)
Example: [25:apple|25:orange|50:banana]
Both weights pattern can be integrated in random element choices
Example: [2#10:apple|orange|banana] will more likely display orange banana
The choices will be displayed separated by a space. To easily display multiple choices with ,, we can do so: [2#apple,|orange,|banana,]

Someone actually use prompt parser :D
Good one, ok tested and merged, thanks!

@satche there's a bug created by this merge
In Prompt Parser set fixed seed, generate text. Reopen workflow in new tab and run it (same seed). Result is different.

Hi! I was not able to reproduce the problem. Seems fine by my side.

ok sorry, looks like I've messed up something with git xd
redownloaded and its good now


How can I get the audio infomation from this lib?

Please help.Thanks.

We only parse the video streaming information. Sorry!


Cube/Column inconsistency... again

This issue is back, again. Another instance of issue similar to #103, now failing a much earlier sanity check.
Crash report:
crash-2017-07-13_17.44.43-server.txt

The fact that multiple people are getting this issie makes me belive it's some recent change that causes it. But I can't bisect it without a way to reliably reproduce it.


is pyspider suitable for crawling a whole website?

i know pyspider is best for crawling latest data from a website. but if i want to get  a whole data from website, for example the website has over 1 million data and may take a long time to crawl, is it still suitable to use pyspider? if so, how to deploy it, if not, any alternatives?
thanks

pyspider is not designed for this purpose, when crawling whole website you may need to follow every links on each page, which is very costly to check the status of all of them.
But if you are crawling all the product and managed to find a list page to all of them. Or have a list of urls of the website like sitemap. pyspider is suitable for this.

There is a syntax error in the json results from the crawler

@binux I want to crawl of list of urls with same article structure from a website. but they are too many pages. like over 100k pages. pyspider is suitable for periodically crawl. but I don't figure out  how to crawl a very long lists of url. do you have a demo for this purpose?

it's more effective to submit them page by page from list page, and set higher priority for article pages. Don't have demo in mind.


After curl successfully obtains JSON data, how do I process data to obtain all text?

I have a pdf file, and after I access the unstructured-api service with the curl command, I get a json file.
What should I do with this json file to get all the pdf content?

How do you have "I have a pdf file, and after I access the unstructured-api service with the curl command, I get a json file" wich command curl used ?

1. docker run -p 8000:8000 -d --rm --name unstructured-api downloads.unstructured.io/unstructured-io/unstructured-api:latest
2. curl -X 'POST'
'http://localhost:8000/general/v0/general'
-H 'accept: application/json'
-H 'Content-Type: multipart/form-data'
-F<EMAIL_ADDRESS>> test.json
Then I get a json file name test.json
3. What should I do with this json file to get all the pdf content? There is too much redundant information in the json file that I don’t need such as "element_id"

Does unstructured-api support more convenient commands? After parsing the PDF content, directly return the text, tables, formulas and other contents of the PDF to me just using a key-value pair. So I don’t need to do much post-processing to extract the content of my pdf


Storybook

This PR adds storybook to our frontend tooling, this can be invoked with either npm run storybook (live server) or npm run build-storybook (one off build).
I've updated our commenting stories to work with it too.
Currently, icons are not supported as these are managed in Django. @thibaudcolas @allcaps, would you, in principle, be in favour of moving SVG icon management to the frontend tooling as well (as long as we had a way to extend it nicely)?

(as long as we had a way to extend it nicely)?

The SVG icons are Django templates (override) and Wagtail hooks (override/extend). These are default Django and Wagtail concepts. Easy to explain in docs and maintain in core. But more important, easy to understand and be used by integrators.
I'm not against changing the Wagtail internal icon management, as long as third-party packages and integrators can extend it nicely 👍

Alternatively, this could be a stop-gap to help us with things like commenting and the menu rebuild in the short term
For the long term, we could improve the existing style guide to support React widgets as well? (and also organise it a bit better, make it extendable, and add reloading) The advantage of this is it'll help us maintain Django widgets too, some of which are duplicated in React, and a side-by-side view might be useful for helping us maintain consistency.

Yep, I got that too. Focus trap was introduced after the merge into Wagtail so those two tests are broken. Neither of those screens are used right now so we could remove those tests temporarily (or completely remove support for those screens, but we would probably use them later)

I'm fine with those views erroring if we use them later. 👍
I do like storybook and storybook-django and think it is the way to get a grip on frontend development and make Wagtail frontend testable and reliable. The style guide page is never kept in sync and can't be used for testing. I never saw it as a reliable development tool.
Maybe we can have Wagtail output a 'mock sprite' via a management command? And have it under version control? Then the frontend should use the mock sprite if Python/Django/Wagtail is not available.
Do you have other/better options?

Thanks @allcaps!
I had a chat with @thibaudcolas about this yesterday, he's going to look into creating an icon loader for storybook to allow it to load the icons from the files in Django.
Shall we merge this in the mean time?

Yes, go for it!


Add global cooldown + staff only

For use in single server configurations

Hi!
This seems good. Let me try it real quick and I'll merge!
Thanks!

It works fine. Thanks a lot again!


Delete application red from this environment

The command jx delete application was run by cloud-user and it generated this Pull Request

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by:
To fully approve this pull request, please assign additional approvers.
We suggest the following additional approvers:
If they are not already assigned, you can assign the PR to them by writing /assign  in a comment when ready.
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS

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


CPU/Memory/Storage moniter unavaliable on alpine containers

Rancher Version:
1.1.4
Docker Version:
1.12.0
OS and where are the hosts located? (cloud, bare metal, etc):
CentOS Linux 7.2.1511
Cloud (Aliyun)
Setup Details: (single node rancher vs. HA rancher, internal DB vs. external DB)
Environment Type: (Cattle/Kubernetes/Swarm/Mesos)
Cattle
Steps to Reproduce:
DockerFile:
FROM alpine:edge
Results:
CPU/Memory/Storage moniter unavaliable (no data)
Network moniter works
Expected:
All 4 moniter works

Container stats in 1.1.4 are reliant on cadvisor, which has been as of our v1.2.0-pre4-rcX releases.
In the next stable version release of Rancher, container stats will be using docker stats


Update stable version in repo from 0.7.1 to 0.8.0

Think about update stable version to 0.8.0
Version: stable=0.7.1 (170 days old) => latest=0.8.0 (15 days old)
Installs: stable=167 (92.27%), latest=12 (6.63%), total=181
Click to use developer portal
Click to edit
Do not close this issue manually as a new issue will be created if condition for update still exists.
Please drop a comment if any reason exists which blocks updating to version 0.8.0 at this time.
Note: This is an automatically generated message and not personally authored by bluefox!
@mcm1957 for evidence

This issue seems to be outdated.
This issue suggests to update the stable version of this adapter to 0.8.0 but the current stable version is already 0.8.0.
So this issue should be closed.
@mcm1957 for evidence