Update to 0.5 - RC1

I'm trying to update to 0.5 beta but when opening the wallet is:
[lncli] rpc error: code = Unavailable desc = grpc: the connection is unavailable
and in the log:
Sep 03 16:45:39 RaspiBolt systemd[1]: Started LND Lightning Daemon. Sep 03 16:45:39 RaspiBolt systemd[1]: lnd.service: Main process exited, code=exited, status=1/FAILURE Sep 03 16:45:39 RaspiBolt systemd[1]: lnd.service: Unit entered failed state. Sep 03 16:45:39 RaspiBolt systemd[1]: lnd.service: Failed with result 'exit-code'. Sep 03 16:46:39 RaspiBolt systemd[1]: lnd.service: Service hold-off time over, scheduling restart. Sep 03 16:46:39 RaspiBolt systemd[1]: Stopped LND Lightning Daemon. Sep 03 16:46:39 RaspiBolt systemd[1]: Started LND Lightning Daemon. Sep 03 16:46:40 RaspiBolt systemd[1]: lnd.service: Main process exited, code=exited, status=1/FAILURE Sep 03 16:46:40 RaspiBolt systemd[1]: lnd.service: Unit entered failed state. Sep 03 16:46:40 RaspiBolt systemd[1]: lnd.service: Failed with result 'exit-code'.
I have again installed the 0.4 and now everything works again.
I installed the whole thing on a raspberry.
anyone have an idea what it can be?
Thank you

There are number of things that needs some tweaking when upgrading to 0.5
You might find this discussion useful:
https://github.com/Stadicus/guides/issues/190

Yep the guide you're using needs to be updated itself.


Edge app for asset metadata

Latest:

Please use the GitHub Actions to deploy.

Removed header and footer

Closed in favor of #108.


compute cache salt using package-hash

I just wrote https://github.com/novemberborn/package-hash which is a more powerful way of computing hashes for packages. It includes the GIt repo state which is very useful during development. Say if you're hacking on AVA and npm link it into a test project, now you don't need to clear the AVA cache in your test project whenever you make changes to AVA.
Feedback welcome!

I like the idea in general, but this has me a bit worried. execSync is very slow.

execSync is very slow.

execFileSync is better. I can't remember when it was introduced. (I wish the Node docs had a since: version notation).

It won't compute a diff when a package is installed from npm, so it shouldn't be too bad in practice.

Might be useful if packageHash supports accepting an array of package paths to hash. So we could just do:
packageHash.sync([
  require.resolve('../package.json'),
  require.resolve('babel-core/package.json'),
  require.resolve('babel-plugin-espower/package.json')
]);

Maybe even some an option with extra text to hash:
var salt = packageHash.sync([
  require.resolve('../package.json'),
  require.resolve('babel-core/package.json'),
  require.resolve('babel-plugin-espower/package.json')
], {
  extra: JSON.stringify(this.babelConfig)
});

Answering my own question:
execFile and execFileSync were both introduced in v0.12, so it would be better to just use execFileSync.

Might be useful if packageHash supports accepting an array of package paths to hash.

:+1:

Maybe even some an option with extra text to hash

Are you mixing concerns at that point?

Are you mixing concerns at that point?

Yeah, probably not a good suggestion.

I'll try and use execFileSync to get the diff. I like the idea of taking an array of paths, and it shouldn't be too bad to allow an optional seed, e.g. packageHash([path1, path2], seed).

Updated.

👍


Put the new REPL normalization script behind an experiment

For #14048

[x] Pull request represents a single change (i.e. not fixing disparate/unrelated things in a single PR).
[x] Title summarizes what is changing.
[ ] Has a news entry file (remember to thank yourself!).
[ ] Appropriate comments and documentation strings in the code.
[ ] Has sufficient logging.
[ ] Has telemetry for enhancements.
[x] Unit tests & system/integration tests are added/updated.
[ ] Test plan is updated as appropriate.
[ ] package-lock.json has been regenerated by running npm install (if dependencies have changed).
[ ] The wiki is updated with any design decisions/details.

Codecov Report

Merging #14561 into main will decrease coverage by 0.03%.
The diff coverage is 38.46%.

@@            Coverage Diff             @@
##             main   #14561      +/-   ##
==========================================
- Coverage   65.01%   64.98%   -0.04%
==========================================
  Files         539      539
  Lines       25050    25062      +12
  Branches     3533     3534       +1
==========================================
- Hits        16287    16286       -1
- Misses       8102     8111       +9
- Partials      661      665       +4

Impacted Files
Coverage Δ

...rc/client/common/process/internal/scripts/index.ts
65.85% <16.66%> (-3.89%)
:arrow_down:

src/client/terminals/codeExecution/helper.ts
15.85% <40.00%> (+1.75%)
:arrow_up:

src/client/common/experiments/groups.ts
100.00% <100.00%> (ø)

src/client/common/utils/platform.ts
60.00% <0.00%> (-12.00%)
:arrow_down:

.../locators/services/virtualEnvironmentIdentifier.ts
94.73% <0.00%> (-2.64%)
:arrow_down:

src/client/linters/pydocstyle.ts
86.66% <0.00%> (-2.23%)
:arrow_down:

src/client/common/process/proc.ts
14.49% <0.00%> (-0.73%)
:arrow_down:

Continue to review full report at Codecov.

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


FluentListbox refuses to trigger any of the onchange logic

🐛 Bug Report

Hi, I am trying to use the FluentListbox with the FluentSearch for autocomplete, but the SelectedOptionChanged is not working.
💻 Repro or Code Sample
I am using the following code:
https://brave-cliff-0c0c93310.azurestaticapps.net/Search
<FluentSearch @ref=searchTest
@oninput=handleSearchInput
          Value="@searchValue"
          Placeholder="Search for State" />

🤔 Expected Behavior
The SelectedOptionChanged is never called.

Sorry, but we'll need more information to be able to help you. Both in the sample you mention and in my own environment it works as expected...

Thank you @vnbaaij for helping me out on this. You are right, I double-check it here and it is working. I will close this one. Thanks again!


Add seektoliveoffset attribute

Implements https://github.com/muxinc/media-chrome/issues/923, adds documentation (with motivation).
Fixes a regression of noautoseektolive not being used at all
Fixes a couple of broken links in docs.

thank you for the contribution! I'll bring this up with the team.

Hi, @luwes!
I'd like to fix the coverage issue of this PR, but, unfortunatelly, I could not find any examples of working with live streams in test cases. So I'm open to ideas/suggestions to implement.


Change default git conflict experience to be the inline editor

After contemplating on all the merge editor feedback we have received, thinking about the experience as a whole and discussing with the team - we decided to change back the default of git.mergeEditor setting to false. Reasoning:

We have underestimated how good the previous inline conflict experience is. We have never given it enough thought, it was just a VS Code extension we decided to build-in, but luckily the experience just worked to the delight of our users.
VS Code is a text editor, and it delights our users when they find out that VS Code Can Do That. By default we should be simple, and users should be delighted when they discover advanced experiences. The old inline conflict one is a much simpler experience that better suits a text editor.
Inline conflict experience vs the merge editor is a personal preference. Each one has it is pros and cons based on monitor size, complexity of conflict, user experience. The default should be skewed towards the majority. Especially since the experts are more easily to grasp the transition to the advanced merge editor.
Git conflicts are complicated, to reduce total complication for users the default experience should be the simpler one.
If we make the merge editor an opt-in experience we can re-visit our approach to make the original file dirty - since it would not by accident change the underlying file just by opening.
Transition from the previous inline conflict experience to the new merge editor is straight forward, we have added a big blue button in the bottom right corner. The other direction is not so obvious (editor title area button in a complex UI).
The large majority of the GitHub, Twitter feedback we got strongly prefers the previous inline conflict experience.

Of course, we will continue improving the merge editor. It was the top most up-voted feature in our repo for a reason, a lot of users want and love this ❤
In this journey we have learned a ton and without it I am sure we would have never been able to create an optimal merge experience. With the learnings we have I am sure we will have a flexible merge experience to the delight of all our users 🚀

Great decision!
Small feature request: would it possible to trigger the merge editor on-demand for a specific file?
I'm thinking about a UX like the one for Markdown files. By default you get an text editor, but there is an "Open Preview to the Side" button in the top right that you can click to get a rendered preview. Similarly, any file with conflicts could have an "Open in Merge Editor" button in the top right.
That would also help to onboard users onto this new tool.

Yes, that is exactly how we are thinking about this and it is covered in my second to last bullet point.
In the lower right corner there is a large "Open in Merge Editor" button for each file under conflict so users can easily transition to the merge editor (picture below).
For users that want the Merge Editor all the time they can manually set git.mergeEditor to true in their settings.

@isidorn Follow-up question to the above, can we please have a way to disable the blue button appearing via an option? If the user never wants the new view, it'd be akin to getting a popup you can't dismiss which for me would be many dozens of times a day minimum.
Also: mass kudos to the team for revisiting this.

The main reason I stopped using vscode over any jetbrains editor is their 3 column merge conflict editor. Left side is your local branch, right side is the changes coming in and the middle is the result.
This is far superior to what you have. It let's me resolve it right in the middle, it let's me quickly jump through conflicting lines, its light years ahead

Closing as merged into 1.71 with #160925

@mjbvz I understand the issue is closed but...could we please get an answer on the above ask? I want to make sure this doesn't get missed because it would be a very common annoyance if we can't disable it.

@NickCraver please open a new issue for that and please ping me @isidorn on the issue. Thanks a lot!

I also liked the checkboxes.

I have once an issue with the git conflict experience where somehow the conflict highlights went away and I was left with my original file being modified with both versions of the conflict and I have to spend some time cleaning it manually.

I love how perceptive you are to the UX!  It's not easy to "walk back" a large feature based on responses... kudos!

I'm actually very surprised by this change. I started using the new merge editor since its first introduction and never looked back. The previous editor was awful for resolving complex conflicts and the new merge editor is a delight to use.
I'm now a bit afraid that the new merge editor will go away in the future again because most people seem to prefer the previous one. Will the new merge editor stay a feature in VS Code for the foreseeable future?

The only reason I'm not using the new merge editor is checkmarks. They are NOT visual. So, Meld is all the way down. (Speaking of which, they have since fixed Windows builds, so go check it out!)

I love the new merge editor! I would not trust the argument of "strong preference of community": On the Internet, most of the time, you can only hear the voice of a small, dissatisfied minority. On the other hand, happy users will stay quiet and will be ignored 😉.
I am delighted, that I can toggle the flag in settings and use the new merge editor! I have written this comment not to start a discussion, but to say to the devs, that the new merge editor is great and I am grateful for it! Keep up the good work! 🙂

I love the 3-way-view, but honestly it would be more useful to me if in the middle I saw the base version of the file to see what exactly the two conflicting changes were compared to the original. That allows me to judge and decide how to even do the merge in the first place.
Resolving conflicts was no problem for me and the 3-way-merge view didn't improve that experience (because no imporvement was necessary there). But a 3-way-comparison with the base version, now that would be a real assistance to decide how to resolve the conflicts.

While I personally prefer the 3-way merge editor, I can totally understand that default option should be as simple as possible.  I would always confuse the Incoming and Current changes, maybe moving the Accept Incoming changes right above Incoming changes would make it more clear?

I love the 3-way-view, but honestly it would be more useful to me if in the middle I saw the base version of the file to see what exactly the two conflicting changes were compared to the original. That allows me to judge and decide how to even do the merge in the first place.

You can do this in the latest release!

I love the 3-way-view, but honestly it would be more useful to me if in the middle I saw the base version of the file to see what exactly the two conflicting changes were compared to the original. That allows me to judge and decide how to even do the merge in the first place.

You can do this in the latest release!

Which settings do I have to activate for it?

@isidorn

As for the checkboxes being superior to inline labels - this is not what we were seeing in multiple user studies we conducted and in user feedback on GitHub.

For me it was by far easier to see if both, just one or none side had been chosen. Also way faster to toggle between a few versions before finding the correct merged variant. The inline labels might be easier to understand at first (it also took me a moment to understand what kind of state the checkboxes are showing me) but as soon you understand it, the checkboxes are way faster and easier to work with.
I'm having the feeling that the on-boarding to this concept was too steep, so people didn't understand it and suggested/voted for something they were familiar with, the inline labels.
I can open a separate issue, so this can be properly tracked.

I'm having the feeling that the on-boarding to this concept was too steep, so people didn't understand it and suggested/voted for something they were familiar with, the inline labels.

Strongly agreed. I think it's a classic case of:

Implement a feature, X, with some rough edges.
Get negative feedback.
Assume that the negative feedback means X was fundamentally the wrong idea. When instead, the kinks just needed working out.
Revert X.

Combined with people having an aversion to change. And, as noted above, the fact that satisfied users tend to be quiet.

I can open a separate issue, so this can be properly tracked.

Did you do this? I'd like to continue the discussion somewhere.

Also I would like to add that the experience was very much degraded for me by the switch from checkboxes to inline labels. It would be great to get this as an option back.

Okay, I've actually just finally had to use this for the first time. It's so obviously a regression in UX that I'm pretty sceptical of how MS are running their user studies.

@georgefst I didn't create a ticket but just found #163109

This is so disappointing.

I really think the JetBrains solution is the way to go, I personally had trouble dealing with the new vscode merge editor
My gripes with the merge editor:

Couldn't figure out how to view the conflict in "raw" format
"Accept all incoming changes" option would not work when the editor is open, plus I need to save the file for the option to take effect - that's just not clear (I think accepting should auto save)
In addition to the above, accepting incoming changes, then trying to exit the merge editor will present a warning - it should just close the merge editor IMO
Taking only a part of the change on the merge editor is not easily possible, you have to accept everything and then copy-paste parts of the code
Sometimes it would present a conflict that should not really be a conflict, such as a new line at the end of the file (probably not related to this merge editor issue)
The consolidation view is in an awkward position at the bottom, making it hard to understand what's going on with the result
sometimes the arrows at the top that takes you to the next conflict would just do nothing, and trying to stage the file will result in a warning that there are more conflicts to resolve

I propose the following design:

That being said, I commend you guys on developing this feature! I'll toggle it on by default and will continue to use it
I was waiting for years for that feature to be added in vscode, and I follow and in favor of this default revert. very exciting times!


[HOLD for payment 2023-03-13] [$1000] No spacing/margins above and below a Codeblock

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Action Performed:

Open a chat
Send one message - a normal word/sentence, then space and send a codeblock. Then space and send another normal word/sentence.

Expected Result:
There should be space between the normal messages and codeblock.
Actual Result:
There's no spacing around the codeblock.
However, we want an 8 px margin above and below a codeblock.
Workaround:
unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ x] Android / native
[ x] Android / Chrome
[x ] iOS / native
[x ] iOS / Safari
[x ] MacOS / Chrome / Safari
[ x] MacOS / Desktop

Version Number: 1.2.74-0
Reproducible in staging?: y
Reproducible in production?: y
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos:

Expensify/Expensify Issue URL:
Issue reported by: @cead22
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1676670453605579
View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~018d44cb79f9fd71df
Upwork Job ID:<PHONE_NUMBER>487846400
Last Price Increase: 2023-02-27

Triggered auto assignment to @jliexpensify (Bug), see https://stackoverflow.com/c/expensify/questions/14418 for more details.

Bug0 Triage Checklist (Main S/O)

[ ] This "bug" occurs on a supported platform (ensure Platforms in OP are ✅)
[ ] This bug is not a duplicate report (check E/App issues and #expensify-bugs)

If it is, comment with a link to the original report, close the issue and add any novel details to the original issue instead

[ ] This bug is reproducible using the reproduction steps in the OP. S/O

If the reproduction steps are clear and you're unable to reproduce the bug, check with the reporter and QA first, then close the issue.
If the reproduction steps aren't clear and you determine the correct steps, please update the OP.

[ ] This issue is filled out as thoroughly and clearly as possible

Pay special attention to the title, results, platforms where the bug occurs, and if the bug happens on staging/production.

[ ] I have reviewed and subscribed to the linked Slack conversation to ensure Slack/Github stay in sync

Posted a comment here - https://expensify.slack.com/archives/C049HHMV9SM/p1676957142442749?thread_ts=1676670453.605579&cid=C049HHMV9SM

Slack comment here from Bondy, recommending we wait for https://github.com/Expensify/App/pull/14822

Alright, I've identified a previous issue and PR (Slack comment). Asking about the next steps in-thread.

Still digging in - https://expensify.slack.com/archives/C049HHMV9SM/p1677452918315599?thread_ts=1676670453.605579&cid=C049HHMV9SM

Job added to Upwork: https://www.upwork.com/jobs/~018d44cb79f9fd71df

Current assignee @jliexpensify is eligible for the External assigner, not assigning anyone new.

Triggered auto assignment to Contributor-plus team member for initial proposal review - @eVoloshchak (External)

Triggered auto assignment to @mountiny (External), see https://stackoverflow.com/c/expensify/questions/7972 for more details.

📣 @daraksha-dk! 📣
Hey, it seems we don’t have your contributor details yet! You'll only have to do this once, and this is how we'll hire you on Upwork.
Please follow these steps:

Get the email address used to login to your Expensify account. If you don't already have an Expensify account, create one here. If you have multiple accounts (e.g. one for testing), please use your main account email.
Get the link to your Upwork profile. It's necessary because we only pay via Upwork. You can access it by logging in, and then clicking on your name. It'll look like this. If you don't already have an account, sign up for one here.
Copy the format below and paste it in a comment on this issue. Replace the placeholder text with your actual details.

Format:
Contributor details
Your Expensify account email: <REPLACE EMAIL HERE>
Upwork Profile Link: <REPLACE LINK HERE>

Proposal
Please re-state the problem that we are trying to solve in this issue.
Missing spacing above and below the code block.
What is the root cause of that problem?
The root cause for this is missing margins for the code block.
What changes do you think we should make in order to solve the problem?

We have to carefully add the margins in order to preserve the tab behaviour. Adding it here will sort of break the tab selection (screen shot attached).

We should add the margins here instead. This will preserve the default tab behaviour that we have right now.
Works well after the fix.

What alternative solutions did you explore? (Optional)
None

✅ Contributor details stored successfully. Thank you for contributing to Expensify!

We have to carefully add the margins in order to preserve the tab behaviour. Adding it here will sort of break the tab selection

I believe displaying outlines for messages is itself a bug, and it's not intentional to show them only for codeblocks within a message. There is no reason to use an outline here as those items are not actionable/interactable. However, since this is ultimately an accessibility issue, we are currently putting it on hold until we can address it properly.
For reference:
Production (NewDot)
Slack's treatment

Thank you for your deep insight @daraksha-dk!
I think this is needed because on mobile, we're making code blocks pressable.

@daraksha-dk That's a good point that you've raised. In my opinion, with the margin applied inside TouchableWithoutFeedback, the clickable area of the code block will extend beyond its border which would be a visual bug.

@daraksha-dk Another example on desktop. If you long click the code block, on desktop, the context menu opens up. If you long press on the rest of the message nothing happens. Here's a comparison of both approaches on Desktop:
https://user-images.githubusercontent.com/30054992/221895012-783f7850-1fee-4ab8-890a-a8738d150c20.mov
https://user-images.githubusercontent.com/30054992/221895045-0ad285ff-1bf2-4bf2-a17e-28340e924b3a.mov

@daraksha-dk, @allroundexperts, thank you for the thorough testing @allroundexperts's proposal looks good to me, we indeed shouldn't break tab selection. Why are we adding styles to BasePreRenderer, shouldn't code be rendered by CodeRenderer?

@eVoloshchak Thank you for considering my proposal. CodeRenderer is using the InlineCodeBlock component which does not expose any style property on the container. It just has the textStyle property which takes effect somewhere deep. We can also expose a containerStyles property in BasePreRenderer and add it in CodeRenderer if this works for you.

We can also expose a containerStyles property in BasePreRenderer and add it in CodeRenderer if this works for you.

Let's do that, I think having code styles in CodeRenderer is better for readability
@allroundexperts proposal looks good to me
🎀👀🎀 C+ reviewed!
cc: @mountiny

📣 @allroundexperts You have been assigned to this job by @mountiny!
Please apply to this job in Upwork and leave a comment on the Github issue letting us know when we can expect a PR to be ready for review 🧑💻
Keep in mind: Code of Conduct | Contributing 📖

Thanks @eVoloshchak for the review
thanks also to @daraksha-dk for the proposal but going with @allroundexperts feel free to raise a PR! Thanks!

PR created.
https://github.com/Expensify/App/pull/15570

Hired @eVoloshchak and @allroundexperts

@jliexpensify merged, this should be available for the bonus if no regression

Reviewing label has been removed, please complete the "BugZero Checklist".

The solution for this issue has been :rocket: deployed to production :rocket: in version 1.2.78-0 and is now subject to a 7-day regression period :calendar:. Here is the list of pull requests that resolve this issue:

https://github.com/Expensify/App/pull/15570

If no regressions arise, payment will be issued on 2023-03-13. :confetti_ball:
After the hold period is over and BZ checklist items are completed, please complete any of the applicable payments for this issue, and check them off once done.

[ ] External issue reporter
[ ] Contributor that fixed the issue
[ ] Contributor+ that helped on the issue and/or PR

As a reminder, here are the bonuses/penalties that should be applied for any External issue:

Merged PR within 3 business days of assignment - 50% bonus
Merged PR more than 9 business days after assignment - 50% penalty

BugZero Checklist: The PR fixing this issue has been merged! The following checklist (instructions) will need to be completed before the issue can be closed:

[ ] [@eVoloshchak / @mountiny] The PR that introduced the bug has been identified. Link to the PR:
[ ] [@eVoloshchak / @mountiny] The offending PR has been commented on, pointing out the bug it caused and why, so the author and reviewers can learn from the mistake. Link to comment:
[ ] [@eVoloshchak / @mountiny] A discussion in #expensify-bugs has been started about whether any other steps should be taken (e.g. updating the PR review checklist) in order to catch this type of bug sooner. Link to discussion:
[ ] [@allroundexperts] Propose regression test steps to ensure the same bug will not reach production again.
[ ] [@jliexpensify] Link the GH issue for creating/updating the regression test once above steps have been agreed upon:

Regression Test Proposal

Go to https://staging.new.expensify.com/ and open any chat.
Enter any comment such that the first line is plain text, second line is a code block and third line is plain text again.
Verify that equal amount of margin appears between the lines.

Do we agree 👍 or 👎

The PR that introduced the bug has been identified. Link to the PR:

Judjing by this comment this was fixed by https://github.com/Expensify/App/pull/14360. I've tested that PR, but it still isn't fixed.
I think that this image contains wrong testing steps. The issue appears if you have a single message that contains both plain text and code. I might be wrong, but on the image code blocks and plain text are on separate messages.
I've also tested a couple of old commits that change BasePreRenderer, the issue still persisted, so it seems like that's how it was implemented initially.

A discussion in #expensify-bugs has been started about whether any other steps should be taken (e.g. updating the PR review checklist) in order to catch this type of bug sooner. Link to discussion: this is a visual bug that could be caught during review, I don't think there are additional checklist items we should add

Sorry, I was at a conference the last 3 days - will look at payments now!

Paid @allroundexperts and @eVoloshchak

I'll get @mountiny to cast his eyes on https://github.com/Expensify/App/issues/15299#issuecomment-1467083970 and I'll whip up that GH

@allroundexperts - could you take a look at Vit's feedback and incorporate a screenshot into your Proposal? I'll get that GH sorted after that.

@jliexpensify I'm not sure if I am understanding this correctly. Can you please explain what sort of screenshot you're looking for? TIA!

@allroundexperts sorry, I cannot see any screenshot in the comment

Basically any screenshot of how the spacing should look like correctly now would be good.

Ahahah, nono, int he regression steps proposal, thank you!
I think this is good to go now @jliexpensify


IE11 - POST sending "undefined" string in body instead of empty string when no second param is passed to post

Configuration
        this.http = http.configure(x => {
            x.withHeader('Content-Type', 'application/json');
            x.withCredentials(true);
        });

When you call post like this:
    this.http.post('http://somehost/someservice');

In chrome, it will send an empty body.  This is what would be expected for a JSON post with no request object.
In IE 11, however, it sends a body containing the string "undefined."  This is not expected behavior and tends to fail as the bare string "undefined" is not valid json.
The current workaround, is to explicitly pass the request object as null, which will work in both IE and chrome:
    this.http.post('http://somehost/someservice', null);

I think it actually checks now.

I think this is fixed.


Support making static copy of entire website

I think an important use case of this module would be to make a static copy of an entire website. For this use case the following functionality would be needed:

[x] The scaper is able to download the HTML of a page.
[x] The scaper is able to download resources which are used on a page.
[x] The scaper is able to crawl the entire website.
[ ] The scaper can be configured to ignore external websites.
[ ] The scaper can save the files in the same structure as the paths on the website.

E.g:

/ => index.html
/css/layout.css => css/layout.css
/about => about/index.html

The scaper can be configured to ignore external websites
This can be implemented by creating an 'urlFilter' option which takes a function. Before a request to a url is done, this function is called with the url (and possible other info which could be useful). The url is only called if the urFilter returns true.
The scaper can save the files in the same structure as the paths on the website
This can be implemented by creating a 'outputPathGenerator' (or a better name) option which takes a function. If the user specifies this option the output path is generated by passing the resource to this function.
Example
The following is an example of how you could make a scraper which saves an entire website, using the above described functionality.
var _ = require('lodash');
var pathUtil = require('path');
var urlUtil = require('url');
var websiteUrl = 'http://nodejs.org/'
var options =  {
  urls: [websiteUrl],
  directory: '/path/to/save/',
  recursive: true,
  maxDepth: 10,
  urlFilter: function(url){
    return _.startsWith(url, websiteUrl);
  },
  outputPathGenerator: function(resource, directory){
    var urlObject = urlUtil.parse(resource.url);
    // Todo: add logic to check if it is an HTML page which does not end in '.html'
    // If so, append '/index.html'
    var relativePath = '.' + urlObject.path;
    return pathUtil.resolve(directory, relativePath);
  }
};

Hi @marklagendijk
Thanks for suggestions
As for The scaper can be configured to ignore external websites
I think it is great idea and it is quite simple to implement. I'm going to add it to release 1.0.0
As for The scaper can save the files in the same structure as the paths on the website
I really like the idea and I thought about it earlier
But it is more tricky
For example: user specified directory for downloading /home/user/mysite and there is url like ../../../etc/someResource.html. It means that resource should be loaded to /etc/someResource.html
I see next problems here:

File /etc/someResource.html may exist
User may not have access to /etc
Module may save files everywhere in OS (if it has permissions). It is dangerous

Now website-scraper checks that directory doesn't exist and creates it. It is responsible only for directory. Allowing it create files everywhere is dangerous. Also it requires check existence of each file (and deciding what to do if it exists).

@s0ph1e will you accept pull requests for the two features which I described (urlFilter and outputPathGenerator)? I think these features would make the module very flexible, and make it support not only the use cases I described, but also lots of other ones.
The security issue you thought of, does not exist. Any path of an url you get will start with /. Also, even if it would exist, you could easily protect against it:
var urlObject = urlUtil.parse(resource.url);
var relativePath = '.' + urlObject.path;
var absolutePath = pathUtil.resolve(directory, relativePath);
if(!_.startsWith(absolutePath, directory){
  throw new Error('Invalid relative path');
}

I'll accept PR for urlFilter but not for outputPathGenerator
The main goal of second suggestion (outputPathGenerator) is full copy of existing website.
From my point of view it is impossible to implement.

Any path of an url you get will start with /

This is true only in ideal world. Let's name sites with contain only such urls ideal_sites. In real life sites may contain everything (as in my example above)

you could easily protect against it:

Yes. But in this case we will not receive full copy of site. Instead of it user will receive exception. It means that scraping process will be failed and nothing will be saved. What if user doesn't want this behavior? Maybe he wants to download that resources to another place or skip them? Do you think it is good idea to throw exception where there are 100500 ideal_resources on website and only 1 ../../someResouce.html?
In any of this cases we will not receive full copy - which is the main goal. We can get partial copy of site (where not ideal_resources are skipped or saved to another place etc.) but I don't see advantages over current implementation
That's why I don't want to implement it in this module.

You are welcome to create PR for urlFilter and don't forget to write tests for it and update Readme

I expect that the cases with urls like http://my-website.com/../../someResource.html are already taken care of by one of the used modules. For example browsers also do this. Such url should be normalized to http://my-website.com/someResource.html.
If this is not the case it is easy to do this normalization ourselves. The rule is simple: ../ removes the previous non ../ part, unless you are already at the root.
However, I feel that even if there would be an unsolvable issue with this, it would still be a great addition to support custom generateFilename functions. In this case the user of the module can write his own genereateFilename function, and have full control of the output structure (and solve any issues according to his use case).

I created an example of such normalize function. It is called getSaveRelativePath and it converts a path of an url to a save relative path.
var path = require('path');

function getSaveRelativePath(urlPath){
    var relativePath = path.normalize('.' + urlPath);
    var saveRelativePath = relativePath.replace(/\.\./g, '.');
    return './' + path.normalize(saveRelativePath);
}

console.log(getSaveRelativePath('/example/test/../../../../../etc/passwd'));
// => ./etc/passwd

This is my current file-name-generators/by-site-structure.js:
var _ = require('underscore');
var url = require('url');
var path = require('path');
var resourceTypes = require('../config/resource-types');

module.exports = function generateFilename (resource, options, loadedResources) {
    var urlObject = url.parse(resource.url);
    if(resource.getType() === resourceTypes.html && !_.contains(resource.filename, '.html')){
        var fileName = options.defaultFilename + (urlObject.search || '');
        return getSaveRelativePath(path.join(urlObject.pathname, fileName));
    }
    else{
        return getSaveRelativePath(urlObject.pathname);
    }
};

function getSaveRelativePath(urlPath){
    var relativePath = path.normalize('.' + urlPath);
    var saveRelativePath = relativePath.replace(/\.\./g, '.');
    return './' + path.normalize(saveRelativePath);
}

Maybe I didn't understand something.
Could use please explain me next use case:
We want to download http://my-website.com/path/to/page.html to directory /home/user/mypage. Imagine this page contains resource ../../resource.png (which resolves to http://my-website.com/resource.png). Where should it be saved?

Aah, that's a different use case.
My use case is that the whole site is saved to the /home/user/mywebsite directory. So:

http://my-website.com/path/to/page.html =>  /home/user/mywebsite/path/to/page.html
http://my-website.com/path/to/../../resource.png => http://my-website.com/resource.png => /home/user/mywebsite/resource.png

So your suggestion is only for root - http://my-website.com/ ?

This specific filenameGenerator saves the files in the exact same structure as on the site itself. That indeed means that it contains the whole directory structure, relative to the root of the website.
But since it becomes possible to specify your own filenameGenerator, the users can write a custom filenameGenerator to get any output structure they want.

@s0ph1e in 8d00844f5d579ee2ae7f8d2d97682010ad3c2516 I implemented the functionality which I described here. It still lacks tests and documentation.
I tested it with an average Wordpress site and it works perfectly:

The urlFilter makes sure only urls from the site itself are scraped.
The by-site-structure filenameGenerator converts all the file names into absolute paths on the website in a safe way, e.g: ../../../images/resource.png on /some/page/page.html => /images/resource.png.

Could you review the code which I wrote so far and see if you would be ok with merging this in (as soon as the tests and documentation are finished)?

Example usage:
var path = require('path');
var siteUrl = 'http://mywebsite.com';
scraper.scrape({
    urls: [ siteUrl ],
    directory: path.resolve(__dirname, 'output/mywebsite.com'),
    recursive: true,
    maxDepth: 100,
    omitDefaultFilenameInUrls: true,
    filenameGenerator: 'bySiteStructure',
    urlFilter: function(url){
        return url.indexOf(siteUrl) === 0;
    }
});

Thanks @marklagendijk
I'll review it when I have some free time

I reviewed the changes and I'm ok to merge once they will be covered with tests and documentation 👍
I think need to create separate PRs for urlFilter and filenameGenerators - it would be easier to review, discuss and merge them
The same for omitDefaultFilenameInUrls  (need to discuss name for this feature because it is not clear from my point of view. What about prettifyUrls?)

Great, I'll do that! (Y)
I'm fine with prettifyUrls, it is indeed more intuitive.

urlFilter implemented in #47
filenameGenerator in #51
prettifyUrl in #45


Linker errors on division

My understanding is that there are no division hardware on the tkey, hence the compiler needs to issue calls to library functions for division operations. However, some (or all?) of those functions are missing, resulting in linker errors. (When compiling with gcc, those functions live in libgcc.{a,so}, but I don't have much clue about corresponding clang functions).
I compile the below program as follows:
$ TKEY_LIBS=$HOME/hack/tkey/tkey-libs ; clang-15 --target=riscv32-unknown-none-elf -march=rv32iczmmul -mabi=ilp32 -mcmodel=medany -nostdlib -fno-common -fno-builtin-printf -fno-builtin-putchar -mno-relax -O2 -Wall -T ${TKEY_LIBS}/app.lds -L ${TKEY_LIBS} -lcommon -lcrt0 tkey-div.c
ld.lld: error: undefined symbol: __udivdi3
>>> referenced by tkey-div.c
>>>               /tmp/tkey-div-f2b903.o:(main)
clang: error: ld.lld command failed with exit code 1 (use -v to see invocation)

I would expect an implementation of __udivdi3 for this target to be included with clang, but if it is, for some reason it isn't found by the linker.
Example program (the use of volatile is just a hack to not get the interesting part all optimized away):
/* Compile with
   TKEY_LIBS=... ; clang-15 --target=riscv32-unknown-none-elf -march=rv32iczmmul -mabi=ilp32 -mcmodel=medany -nostdlib -fno-common -fno-builtin-printf -fno-builtin-putchar -mno-relax -O2 -Wall -T ${TKEY_LIBS}/app.lds -L ${TKEY_LIBS} -lcommon -lcrt0 tkey-div.c
 */

#include <stdint.h>
#include <stddef.h>

static void
to_decimal (char *buf, volatile uint64_t x)
{
  size_t n;
  /* Generates digits in reverse order. */
  for (n = 0; x > 0; n++)
    {
      unsigned d = x % 10;
      x /= 10;
      buf[n] = "0123456789"[d];
    }
}

int
main(void)
{
  char buf[20];
  to_decimal(buf, 1000000);
  return 0;
}

I can build this with clang >= 16. With clang == 15 it fails like you show.

I can confirm that my code compiles fine with clang-16. But it is unclear to me if that means that division in general works, or if it's just division-by-constant that is improved. Looking at the generated code, I see no division instructions (obviously), and also no function calls, just a bunch of shift and mul.
So it would be good to verify that general division works for all supported integer sizes, before closing.


Plans for version 2

This module is downloaded about a million times every day (!), and its logic is perhaps run hundreds of times every second.
Making changes to something this highly depended upon is a little frightening, but if we can reduce the time/energy cost then I think it will be worthwhile.
The logic hasn't changed in over four years and (rather amazingly) it all still works, but the ecosystem around it has improved so it's time for this module to do likewise.
Goals:

Expose functionality via both async and sync functions
Reduce require-time CPU and I/O cost, defer as much logic as possible until functions are called
Only spawn a child process where absolutely necessary, and consolidate into a single call
The requirements of both @mapbox/node-pre-gyp and prebuild become first-class concerns (perhaps others? Parcel? Electron?)
Support Node.js 8+, drop support for Node.js 6 and earlier
Migrate CI to GitHub Actions, add more recent OS and Node.js versions to integration tests
Use Node.js 12+ native report feature where available, allows family detection and glibc version (but not musl version)

Progress:

[x] Readme - https://github.com/lovell/detect-libc/tree/main
[x] Implement new API
[x] Unit tests - https://github.com/lovell/detect-libc/actions/runs/1708403127
[x] Integration tests (26 combinations) - https://github.com/lovell/detect-libc/actions/runs/1708403128
[x] JSDocs
[x] TypeScript type definitions
[x] Verify prebuild will work
[x] Verify @mapbox/node-pre-gyp will work

@lovell a million times per day, crazy!

Use Node.js 12+ native report feature where available, allows family detection and glibc version (but not musl version)

Would it make sense to add musl detection to the report as well?
I started a related PR here: https://github.com/nodejs/node/pull/41338

@styfle Yes, the addition of process.report.getReport().header.muslVersionRuntime would be useful, but I'm unsure if musl exposes __libc_version via its external API - see https://git.musl-libc.org/cgit/musl/tree/src/internal/version.c

The new main branch (which will become the default branch) has all the latest code and tests.
If anyone would like to help review this, add more containers for integration testing or submit further improvements, all these things are very welcome.
https://github.com/lovell/detect-libc/tree/main
I plan to publish this as v2.0.0, probably later this week.

v2.0.0 now available. Please open a new issue if you discover any problems. PRs to add more containers for integration testing are welcome too.


Checkbox dont have visable focus on keyboard navigation

Example:
https://id.posten.no/login/nnjtp9fnelh9tt9engpsqewsio658fn4ry1ui49aahiw506oy

Made a copy of this issue to KP Trello


docs(operators): correct grammatical error

Description: Correct a grammatical error in the operators page document - "library" should be "libraries."

Thanks.


Expand not working correctly. Section header is pushed inside other section

Hi Sir ,
Issue scenario : All sections are in collapsed state and I expand a section and after that when I am expanding all sections using adapter.expandAllSections(); when user click on a button. Already expanded section header is pushed inside the top section header.
Please suggest me a workaround to handle this.

Hi, @JibuVarghese. Sorry for late reply.
Is it possible to create a sample project which demonstrates this issue, because it's difficult to figure out where problem is?

@JibuVarghese I've reproduced the issue and fixed it.
Please try out 1.2.2 version or the library. It's also available on Google Play.
Thanks a lot for your contibution.

@zhukic Hi Sir, i checked your demo app in google play. it is working fine now as per the required way.
thank you for the new update. appreciate it.


Generated modules are never inlined?

I pulled the recent, large changes to dev and fixed most of the problems in the simulator. One problem: it seems that the flatten pass has changed so that instances that were generated from a generator are never inlined.
Specifically it looks like function inlineInstance always returns false without modifying the graph when isGen() is True, and isGen() returns true if the generator reference for the module is not null.
The full text of inlineInstance in my branch off of dev looks like so:
//This will modify the moduledef to inline the instance
bool inlineInstance(Instance* inst) {
  //Special case for a passthrough
  //TODO should have a better check for passthrough than string compare
  if (inst->isGen() && inst->getGeneratorRef()->getName() == "passthrough") {
    inlinePassthrough(inst);
    return true;
  }
  if (inst->isGen()) {
    return false;
  }
  ModuleDef* def = inst->getContainer();
  Module* modInline = inst->getModuleRef();
  assert(modInline);

  if (!modInline->hasDef()) {
    cout << "Inline Pass: " << modInline->getName() << " has no definition, skipping..." << endl;
    return false;
  }

  //I will be inlining defInline into def
  //Making a copy because i want to modify it first without modifying all of the other instnaces of modInline
  ModuleDef* defInline = modInline->getDef()->copy();

  //Add a passthrough Module to quarentine 'self'
  addPassthrough(defInline->getInterface(),"_insidePT");

  string inlinePrefix = inst->getInstname() + "$";

  //First add all the instances of defInline into def with a new name
  for (auto instmap : defInline->getInstances()) {
    string iname = inlinePrefix + instmap.first;
    def->addInstance(instmap.second,iname);
  }

  //Now add all the easy connections (that do not touch the boundary)
  for (auto cons : defInline->getConnections()) {
    SelectPath pA = cons.first->getSelectPath();
    SelectPath pB = cons.second->getSelectPath();

    //Easy case: when neither are connect to self
    if (pA[0] != "self" && pB[0] != "self") {
      //Create the correct names and connect
      pA[0] = inlinePrefix + pA[0];
      pB[0] = inlinePrefix + pB[0];
      def->connect(pA,pB);
    }
  }

  //Create t3e Passthrough to quarentene the instance itself
  Instance* outsidePT = addPassthrough(inst,"_outsidePT");

  //Connect the two passthrough buffers together ('in' ports are facing the boundary)
  def->connect("_outsidePT.in",inlinePrefix + "_insidePT.in");

  //Now remove the instance (which will remove all the previous connections)
  def->removeInstance(inst);

  //Now inline both of the passthroughs
  inlineInstance(outsidePT);

  inlineInstance(cast<Instance>(def->sel(inlinePrefix + "_insidePT")));

  //typecheck the module
  def->validate();
  return true;
}

@dillonhuff I just pushed a fix. Can you verify this issue is resolved?

Fixed.
Thanks!


Fixed another test

Proposed change

Fixed another test
Type of change

[ ] Dependency upgrade
[ ] Bugfix (non-breaking change which fixes an issue)
[ ] New feature (which adds functionality)
[ ] Breaking change (fix/feature causing existing functionality to break)
[x] Code quality improvements to existing code or addition of tests

Additional information

This PR is related to issue: n/a

Codecov Report

Merging #303 (d0f9124) into 0.3.0 (ec58eda) will decrease coverage by 0.91%.
The diff coverage is 99.35%.

@@            Coverage Diff             @@
##            0.3.0     #303      +/-   ##
==========================================
- Coverage   96.68%   95.77%   -0.92%
==========================================
  Files           5        3       -2
  Lines        1025      733     -292
==========================================
- Hits          991      702     -289
+ Misses         34       31       -3

Impacted Files
Coverage Δ

custom_components/mail_and_packages/sensor.py
98.21% <96.29%> (-0.34%)
:arrow_down:

custom_components/mail_and_packages/config_flow.py
100.00% <100.00%> (ø)

custom_components/mail_and_packages/helpers.py
94.58% <100.00%> (-0.53%)
:arrow_down:


Add CR Ready Status Metrics

Add prometheus metrics for the DSPA Status Fields
Description
Exposes Prometheus GaugeVecs for each CR Status field, such that we can monitor states and alert accordingly
How Has This Been Tested?
To test:

build DSPO image and deploy
Create a DSPA
Go to prometheus and verify/explore new dspa_* metrics

Merge criteria:

[x] The commits are squashed in a cohesive manner and have meaningful messages.
[x] Testing instructions have been added in the PR body (for PRs involving changes that are not immediately obvious).
[x] The developer has manually tested the changes and verified that the changes work

/retest

/retest

/retest

/lgtm
/approve
/override ci/prow/dsp-operator-e2e


Poor documentation for DynamicLibrary.open()

At the moment there is only this :
https://api.dart.dev/stable/3.1.3/dart-ffi/DynamicLibrary/DynamicLibrary.open.html
It would be very nice if there was some kind of documentation explaining how it works on different platforms.
for example that it is using dlopen() on linux

/cc @dcharkes

//cc @MaryaBelanger

LoadLibraryW on Windows, dlopen on all other platforms.
The library include paths will depend on the launcher used (dart standalone or Flutter) and what the main executable is in the way you're running the app (dart compile exe means the final exe is your main executable, dart run ... means the dart executable is the main executable, and on Flutter Android the JVM is the main executable). In order to simplify reasoning about include paths we're working on a feature called "native assets" https://github.com/dart-lang/sdk/issues/50565.


Let's use teracy-dev: the only truly open source universal productive development platform (works the same on Mac, Linux, Windows) with great Docker performance with mounted volumes

This issue is used for introducing teracy-dev with Docker community! (by referring the related github issues, they will notice this)
this is the reason why:
http://blog.teracy.com/2016/12/20/teracy-dev-the-only-truly-universal-productive-development-platform-with-docker-on-macos-linux-and-windows/
Let me introduce you teracy-dev, it will resolve all the problems mentioned on this question.
teracy-dev is created to set up a universal development platform which has the same development workflow on Mac, Linux and Windows with good developer experience and productivity in mind.
The project here: https://github.com/teracyhq/dev
and to get started: http://dev.teracy.org/docs/develop/getting_started.html
Don't hesitate to ask me any questions.
this should resolve lots of Docker problems, especially:

https://github.com/docker/for-mac/issues/77
https://github.com/docker/for-win/issues/188
https://github.com/docker/for-mac/issues/689
https://github.com/geerlingguy/docker-examples/issues/4
https://github.com/docker-library/wordpress/issues/149
https://github.com/geerlingguy/drupal-vm/issues/139
https://github.com/4AllDigital/DockerDrupal/issues/8
https://github.com/docksal/docksal/issues/21
https://github.com/4AllDigital/DockerDrupalCli/issues/6
https://github.com/docker/compose/issues/3419

Does this work on Vagrant when using Docker? If so, it would only complicate the whole setup.

you can use docker with vagrant, however, you still get slow problem without this project.
Using teracy-dev, you have a close set up server like a production server, that's the good thing.
We support Docker for now, but it's more than just Docker, you can do anything, customize anything with it with automation.
For example, every setup steps for specific projects will be automated (include Docker commands) after $ vagrant up and you're good to go.
The possibilities are limitless and we're adding more docs and guides to show the world how powerful this project is.
Thank you for your question, don't hesitate to contact me via skype (hoatlevan) for any help. You will love this after giving it a try.


[dev.typeparams] incompatible type: cannot use s (variable of type string) as T value

What version of Go are you using (go version)?

$ go version
go version devel go1.18-6a5f7e8498b7 Tue Jun 29 21:50:53 2021 +0000 windows/amd64

What did you do?

package main

func Test[T any]() {
	fn := func(in T) {
		println(in)
	}
	s := "hello world"
	fn(s)
}

func main() {
	Test[string]()
}

What did you expect to see?

hello world

What did you see instead?

 incompatible type: cannot use s (variable of type string) as T value

This seems working as expected for me per https://go.googlesource.com/proposal/+/refs/heads/master/design/43651-type-parameters.md#operations-permitted-for-any-type
cc @mdempsky @griesemer @findleyr

This seems working as expected for me per https://go.googlesource.com/proposal/+/refs/heads/master/design/43651-type-parameters.md#operations-permitted-for-any-type
cc @mdempsky @griesemer @findleyr

the same error in go2go:

@zllangct to be clear, what I mean working as expected, mean the error here is expected behavior. You can't assign variable of different type (string) to any type (T).

What @cuonglm said.
What may be confusing you (@zllangct) here is that Test is (implicitly) instantiated with the type string. But the Test function, by itself, doesn't know anything about the type parameter T, as its constraint is any, and furthermore, T is different from the string type. Thus, the error message is correct and expected.


One Piece.md

📝 Description
Create a backstory and a role within Luffy's crew. You should explore the adventures and challenges alongside the Straw Hat Pirates for finding One Piece.
💣 Is this a breaking change (Yes/No):

[ ] Yes
[x] No

🚧 How to migrate?
Don't need.
📝 Additional Information
lol

@wenzhuo2022 can you please review and label this PR as hacktoberfest!


Fix preparing char based lang and add multiprocessing for wenetspeech text segmentation

Add multiprocessing for wenetspeech text segmentation
Fix preparing char based lang for wenetspeech

Thanks!

@zhuangweiji
Could you fix the style issues in ./egs/aishell2/ASR/local/text2segments.py reported by the CI.
./egs/aishell2/ASR/local/text2segments.py:78:14: E711 comparison to None should be 'if cond is not None:'
    if lines != None:
             ^
./egs/aishell2/ASR/local/text2segments.py:7[9](https://github.com/k2-fsa/icefall/pull/513/checks#step:5:10):18: E221 multiple spaces before operator
        cut_lines  = jieba.cut(lines, use_paddle=True)
                 ^
./egs/wenetspeech/ASR/local/text2segments.py:78:14: E711 comparison to None should be 'if cond is not None:'
    if lines != None:
             ^
./egs/wenetspeech/ASR/local/text2segments.py:79:18: E221 multiple spaces before operator
        cut_lines  = jieba.cut(lines, use_paddle=True)

As for the icefall/decode.py, it has been fixed in the master.
You can read https://k2-fsa.github.io/icefall/contributing/code-style.html
to fix the style issues locally.

Fixed


Feature request: Force JSON output regardless of URL extension

I have a plugin that returns a status reports. It should always be JSON (using the *.json.twig template). I don't want to force the client to append .json to the URL. I just want to programmatically trigger the response as JSON. It's currently not possible to do this.

This is kind of the pattern we follow though. I think it would be somewhat confusing and inconsistent if suddenly you could return different output formats from different extensions. .json could now suddenly return HTML, .html could now suddenly return RSS/XML. etc.
Have you considered forcing a redirect for your html route to the .json version of it? This way even if the client reaches the regular route, it will still automatically get redirected to the json version of it.

I'm ok with adding support for this @w00fz but it will probably not be something in admin. It's a very advanced feature that is not going to be used often.

I'm thinking from a web service perspective. URLs are supposed to be opaque. One URL represents one resource, which can have multiple representations. The client is supposed to be able to send an Accept header that tells the server what representation they want (e.g., text/html, application/json, etc.). The URL represents the resource itself and shouldn't change.
So with the Webmention plugin, when you submit a mention, you can optionally be given a URL to check later for the status of your request. If the client is a person, they may want an HTML response. They'd just check it from their browser (automatically a text/html request) and get something formatted and pretty. If the status check is done by a script, it would prefer application/json. It signals that in the Accept header. It shouldn't have to change the URL to get that output.
As it stands, I am not aware of a method for me to, from a plugin, force a response in a specific MIME type. I can change it's template, but I can't  force Grav to use the *.json.twig over the *.html.twig from within the plugin. I admit this may not be a common need, but it is conformant with HTTP best practices.

Ok I can see some valid points here and I can see a couple things we could improve this, imo.
I think that, and I am not too sure about this as I need to double check the code, we implicitly assume a direct hit to a route is HTML and that it looks for the .html.twig template for it, not there fails or defaults to default.html.twig, based on the page type.
Probably this should be smarter behind the scenes and Grav should be able to automatically determine that if a .html.twig is not present but a .json.twig is, then it should use that. If there is also a .rss.twig then it should use the one with the most priority, priority that we arbitrary decide as makes the most sense (this could even be a config option). HTML > JSON > RSS > ETC.
It would be nice if at the page level we could also set the default extension, rather than implicitly assume html. That way if we have both .html.twig and .json.twig and a page says the default extension is .json, hitting the route would return JSON, but hitting the route.html would return HTML.
The second aspect that we could improve is what you suggest in regards of headers. I can see now your point and I agree that requesting with application/json should coerce the route to use the json template, even if an HTML is present.
Is this what you had in mind also @rhukster ? Also how does this sound to you @Perlkonig ?

If you're looking at an ideal long-term solution, then I recommend the following (I haven't dug through the source code yet).

When the system is ready to generate output, it should look at the Accept header (https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html).
It then goes through the Accept MIME types in preference order. (You'd need some sort of map between MIME types and template.*.twig codes.)
The first MIME type that matches an existing template, bingo. You run the content through the template, generate the headers (including Content-Type), and respond.
If no matches are found, the correct response is 406 Not Acceptable.

This would remove all responsibility from the content creators. They'd just need to make sure the templates are there or are conspicuously absent. The rest is up to the agent.
A page-level override also seems cheap to implement and would be useful both as a stop gap and also as an override once the high-level changes are made.
I recognize this is a pretty major change, but I think it would be a very positive one.

My idea was to at least add the page-level override.  But that Accept header option sounds like a good idea too.

Ok, added this and implemented Sitemap using this functionality: https://github.com/getgrav/grav-plugin-sitemap/commit/00c23738bdbfe9683627bf0f99bda12eab9505d5

You 'da man.

Proof of concept in PR #1088


Allow Item Purchases

Allow all users (including anonymous) to purchase items

What do you mean by purchase items? It looks like the Purchase button brings you to Amazon right now–what behavior are you looking for?
(Alternatively, if @Brennaleker knows what's going on here/in #41 and has it handled, great! 😄)

Presumably this is a reference to allowing users to click through to items on Amazon, but I'll defer to @Brennaleker on this.

putting a pr out for this right now, I misunderstood the original requirement and had logic to only display the checkout button for users who were not admins or site managers


Increase timeout for npm ci action

Details

Wojtek and Jakub working on the migration to new architecture spotted that npm ci command on GitHub Action fails repeatedly. It is caused by fact, that right now it takes sometimes over 20 minutes to install node_modules and slows down testing. After local changes it turned out that the only thing to be changes is to increase the timeout for npm ci command.
cc: @roryabraham
Fixed Issues

Failing workflows because of npm ci timeout during work on migration to new architecture
Tests

[x] Verify that no errors appear in the JS console

Offline tests

QA Steps

[x] Verify that no errors appear in the JS console

PR Author Checklist

[x] I linked the correct issue in the ### Fixed Issues section above
[x] I wrote clear testing steps that cover the changes made in this PR

[x] I added steps for local testing in the Tests section
[x] I added steps for the expected offline behavior in the Offline steps section
[x] I added steps for Staging and/or Production testing in the QA steps section
[x] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[x] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[x] I included screenshots or videos for tests on all platforms
[x] I ran the tests on all platforms & verified they passed on:

[x] Android / native
[x] Android / Chrome
[x] iOS / native
[x] iOS / Safari
[x] MacOS / Chrome / Safari
[x] MacOS / Desktop

[x] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[x] I followed proper code patterns (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[x] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is correct English and approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I followed the guidelines as stated in the Review Guidelines
[x] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] I verified that if a function's arguments changed that all usages have also been updated correctly
[x] If a new component is created I verified that:

[x] A similar component doesn't exist in the codebase
[x] All props are defined accurately and each prop has a /** comment above it */
[x] The file is named correctly
[x] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[x] The only data being stored in the state is data necessary for rendering and nothing else
[x] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[x] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[x] All JSX used for rendering exists in the render method
[x] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG)

[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[x] I have checked off every checkbox in the PR author checklist, including those that don't apply to this PR.

Screenshots/Videos

Web

Mobile Web - Chrome

Mobile Web - Safari

Desktop

iOS

Android

@roryabraham How about 30 minutes and 3 retires? When I've been talking with the guys they said that it usually takes over 20 minutes to finish the command

@staszekscp 30min x 3 sounds good, but why is npm ci taking so much longer than it does on main?

@roryabraham We believe that it's due to the fact that a lot of libraries are installed from GitHub instead of npm, although we cannot say for sure ATM.

@roryabraham It could be related to their work, and packages they must download. I didn't had these problems while I was building apps. Maybe @WoLewicki or @j-piasecki would know more about the reasons?

Reviewer Checklist

[ ] I have verified the author checklist is complete (all boxes are checked off).
[ ] I verified the correct issue is linked in the ### Fixed Issues section above
[ ] I verified testing steps are clear and they cover the changes made in this PR

[ ] I verified the steps for local testing are in the Tests section
[ ] I verified the steps for Staging and/or Production testing are in the QA steps section
[ ] I verified the steps cover any possible failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[ ] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)

[ ] I checked that screenshots or videos are included for tests on all platforms
[ ] I included screenshots or videos for tests on all platforms
[ ] I verified tests pass on all platforms & I tested again on:

[ ] Android / native
[ ] Android / Chrome
[ ] iOS / native
[ ] iOS / Safari
[ ] MacOS / Chrome / Safari
[ ] MacOS / Desktop

[ ] If there are any errors in the console that are unrelated to this PR, I either fixed them (preferred) or linked to where I reported them in Slack
[ ] I verified proper code patterns were followed (see Reviewing the code)

[ ] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick).
[ ] I verified that comments were added to code that is not self explanatory
[ ] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[ ] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method
[ ] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[ ] I verified any copy / text that was added to the app is correct English and approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[ ] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[ ] I verified the JSDocs style guidelines (in STYLE.md) were followed

[ ] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[ ] I verified that this PR follows the guidelines as stated in the Review Guidelines
[ ] I verified other components that can be impacted by these changes have been tested, and I retested again (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar have been tested & I retested again)
[ ] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[ ] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[ ] If a new component is created I verified that:

[ ] A similar component doesn't exist in the codebase
[ ] All props are defined accurately and each prop has a /** comment above it */
[ ] The file is named correctly
[ ] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[ ] The only data being stored in the state is data necessary for rendering and nothing else
[ ] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[ ] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[ ] All JSX used for rendering exists in the render method
[ ] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[ ] If any new file was added I verified that:

[ ] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[ ] If a new CSS style is added I verified that:

[ ] A similar style doesn't already exist
[ ] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG)

[ ] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[ ] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[ ] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[ ] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[ ] I have checked off every checkbox in the PR reviewer checklist, including those that don't apply to this PR.

Screenshots/Videos

Web

Mobile Web - Chrome

Mobile Web - Safari

Desktop

iOS

Android

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.

@staszekscp @WoLewicki It would be really helpful if you can keep [NO QA] in the Issue title for such issues which do not require QA in Staging

🚀 Deployed to staging by https://github.com/roryabraham in version: 1.2.91-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/luacmartins in version: 1.2.91-1 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅


Re-model rel table with multiple bound node tables

Consider the following schema Person|Animal - knows -> Person|Animal, we model knows as a single rel table and store list per direction and bound node table. This design makes nbr nodes can be multiple table (i.e. Person and Animal), it is not good for

compressing nbr node label.
extend to a particular nbr node label. (Note this doesn't cause bug in our system because we will always join a node table at the end(which serves the filter functionality. However, this is quite inefficient).

We should consider model it into 4 different rel tables.

We no longer allow multiple bound node labels for a rel label. So this issue is no longer valid.


feat: Add support of confluence server.

Add support of personal access token authentication for confluence server.

I'm not sure it's a good way to break everyone's workflow and make them use some new flag which was not required before.
Can we just always send the Authorization token for both cloud and server?

When i send the Authorization token it works only for server but not cloud.
And even if it worked there is no guarantee that this behavior (having basic auth + bearer token at the same time) will be supported in the future. It is the best way to attract issues in my opinion.
The thing that i can do is to require the new flag only for confluence server, in that way the new version will doesn't break the actual workflow.
I made these kind of changes to rapidly test if the tool can solve my issue with this authentication method. But i think the proper way to fix the code is to patch the code this way:

Headers should be copied instead of passing the reference of them r.Headers.Clone(). Because it create side effet.
Provide something more than just basic auth.

Hi @kovetskiy i pushed modifications any news please ?

Works great, thanks!


Update changelog for [#2204]

Adding this since it was missing from https://github.com/bbatsov/rubocop/pull/2204

[ci skip] here was a bad idea, as you disabled the changelog's format validation. Otherwise you'd have seen that you also need to add your GH handle to the bottom of the file. :-)

You forgot to add yourself to the bottom of the file.

d'oh! looks like I managed to commit without staging. just tried again. at least it's friday?


#10148 Copy Update For Homepage

Closes #10148
This PR updates related components for the home page to reflect content updates. Some obsolete json-based content loading was removed in favor of explicit JSX. The use of the custom rs-hero class was removed in favor of USWDS built-ins.

Hey Joseph! Just noticed a couple things:

Some missing links under the process diagram image:

While ReportStream currently works with COVID-19 and mpox data, we are adding more reportable conditions soon. Contact us if you would like updates on additional conditions as they become available.
Learn how to send data through our API.

Additionally about that section, I think the learn how sentence should be a separate paragraph. @jillian-hammer thoughts on that from your perspective?

Above the diagram image is my own error - "test results" needs to be deleted. So the content will read:

Our open-source platform aggregates and securely delivers health care data from organizations and testing facilities directly to public health entities.

The connect with us at the bottom needs to link to<EMAIL_ADDRESS>rather than the contact us page.

Thanks!

Thanks! One note from me - when you bumped "learn more how to send data.." to a new line you left it in the previous paragraph. So remove the duplicate sentence in the first paragraph, like so:

While ReportStream currently works with COVID-19 and mpox data, we are adding more reportable conditions soon. Contact us if you would like updates on additional conditions as they become available.
Learn how to send data through our API.

Thanks! One note from me - when you bumped "learn more how to send data.." to a new line you left it in the previous paragraph. So remove the duplicate sentence in the first paragraph, like so:

While ReportStream currently works with COVID-19 and mpox data, we are adding more reportable conditions soon. Contact us if you would like updates on additional conditions as they become available.
Learn how to send data through our API.

Fixed, thanks for the callout


Fix test_sampler

Checklist
GitHub

[x] I've given this PR a concise, self-descriptive, and meaningful title
[x] I've linked relevant issues in the PR body
[ ] I've applied the relevant labels to this PR
[x] I've assigned a reviewer

PR contents

[ ] I've consulted ivadomed's internal developer documentation to ensure my contribution is in line with any relevant design decisions
[ ] I've added relevant tests for my contribution
[ ] I've updated the relevant documentation for my changes, including argparse descriptions, docstrings, and ReadTheDocs tutorial pages

Description

Linked issues

resolves #825

Pull Request Test Coverage Report for Build 972334866

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 69.993%

Totals

Change from base Build 968935536:
0.0%

Covered Lines:
4061

Relevant Lines:
5802

💛  - Coveralls

Empirically validated PR eliminated 0.5% edge cases.

Pull Request Test Coverage Report for Build 972334866
Warning: This coverage report may be inaccurate.
This pull request's base commit is no longer the HEAD commit of its target branch. This means it includes changes from outside the original pull request, including, potentially, unrelated coverage changes.

For more information on this, see Tracking coverage changes with pull request builds.
To avoid this issue with future PRs, see these Recommended CI Configurations.
For a quick fix, rebase this PR at GitHub. Your next report should be accurate.

Details

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.08%) to 70.07%

Totals

Change from base Build 968935536:
0.08%

Covered Lines:
4076

Relevant Lines:
5817

💛  - Coveralls


feat: enhance OAuth2 integration and version bump to 5.0.0

What is the purpose of this pull request?
This PR updates the OAuth2 authentication flow in the Subi Connect package. It introduces a new check for OAuth status after the authentication window closes and improves the handling of window closure events.
What problem is this solving?
The changes address potential issues with the OAuth2 flow, ensuring that the integration status is properly verified after authentication. It also enhances the reliability of the authentication process by adding better cleanup mechanisms and error handling.
Types of changes

[x] Feat: (new functionality)
[x] Bug fix: (non-breaking change which fixes an issue)
[ ] Chore: (improvements that will not reflect in production behaviour)
[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] Requires change to documentation, which has been updated accordingly.

#180  👈
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @keeganpotgieter and the rest of your teammates on  Graphite


Build and test consensus on real Windows in CI

Splitting off from #1082:

Moreover, as of #1835, CI builds and tests on Windows using Wine (mingw32), which gives us some confidence consensus works on Windows. cardano-node, which uses consensus, has been reported to run successfully on Windows.
I think the only thing left to do is: let CI build and test on Windows (real Windows, not using Wine). @coot has a PR open for this (#1808), when that's merged, we can simply add the consensus tests to it. At that point we'll notice any remaining Windows problems and it will also make sure we don't regress.

#1808 is merged.


Fix Cycle Sort Graph

Visualization for cycle sort isn't working.
Before:

After:

Well noticed!

Well noticed!


Ignore custom index when coercing features table

Description
The input to the features and properties setters may be a pandas DataFrame, which may have a custom index (i.e. not the default integer range index). Currently, a custom index will generally cause odd behavior at best (likely creating rows with missing values) and will sometimes cause exceptions to be raised (e.g. see #3811).
This PR adds a few tests to describe some of those cases. It fixes those cases by always resetting the index of a given pandas DataFrame to the default integer range index. This also allows us to use Series.[] instead of Series.iloc[] when looking up values, which was the cause of the bug.
Alternatively, we could try to maintain the index of the given DataFrame. But in that case we'd have to explicitly check its length against the expected length (if relevant), and also replace all use of Series.[] with Series.iloc[] throughout napari.
Type of change

[x] Bug-fix (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)
[ ] This change requires a documentation update

References
Closes #3811
How has this been tested?

[ ] new tests pass with my change
[ ] all existing tests pass with my change

Final checklist:

[x] My PR is the minimum possible work for the desired functionality
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have made corresponding changes to the documentation
[x] I have added tests that prove my fix is effective or that my feature works
[ ] If I included new strings, I have used trans. to make them localizable.
For more information see our translations guide.

@Czaki : would also be great if you could take a look at this. For some reason, GitHub won't allow me to assign you as a reviewer, but feel free to assign yourself.


Add "With other tools" section + Mega-Linter

If your formatter page contains errors, please notify me :)
https://nvuillam.github.io/mega-linter/descriptors/rst_rstcheck/

The docs have moved from https://nvuillam.github.io/mega-linter/descriptors/rst_rstfmt/ to https://megalinter.io/latest/descriptors/rst_rstfmt/. There is a redirect in place, but might be worth updating since it hasn't been merged yet.

@jdillard done :)


tracy: add capture and update binaries

Motivation for this change
These are used to capture the trace without using the GUI tool and
update the saved trace files from older to newer versions. update also
allows to re-compress the trace files for whatever reason one might want
to do it.
Based on top of #91228
Things done

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

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

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[ ] Fits CONTRIBUTING.md.

cc @mpickering @cpcloud

Maintainer ping: @mpickering

Looks fine to me. I didn't add them originally as I don't use them.


Thanks

Hey Mate,
Just passing by to say that your lib is amazing!
Keep up the good work.

Hey thanks @caiogondim <3


test-branch/execute-job/comment-from-wrong-user-on-pr/0b399b75-44fb-4437-87c5-85c0a0a9c410

PR for testing 56b93674c71dcf16cfda1d6091382028e78a8df4

/canonical/self-hosted-runners/run-workflows 56b93674c71dcf16cfda1d6091382028e78a8df4


[1.19.2] [2.6] Structure outlines don't don't show up

If affects all structures, outlines are enabled in the config.
Tested on clean client and fresh world.
Forge 43.2.0
2.6:

2.5.1:

Same issue on Minecraft 1.18.2 using the mod version 2.6 (on Forge). Using the previous version 2.5.1 works there too.


feat(contracts): create new contracts-ecosystem package

this is where all our contracts will be stored
doesn't have our Deployer.sol that we use in the monorepo yet. will add in a separate PR
added solhint for linting and forge fmt for formatting
added a SimpleNFT.sol with tests and deploy script

this is just a simple NFT that is fully on chain rendered to make it easy to test other contracts

Current dependencies on/for this PR:

main

PR #109   👈

This stack of pull requests is managed by Graphite.

For context, the SimpleNFT looks like this


C# dependencies no longer installs on Ubuntu 17.10

Environment data
dotnet --info output:
.NET Command Line Tools (2.0.3-servicing-007131)

Product Information:
 Version:            2.0.3-servicing-007131
 Commit SHA-1 hash:  36e47bf417

Runtime Environment:
 OS Name:     ubuntu
 OS Version:  17.10
 OS Platform: Linux
 RID:         linux-x64
 Base Path:   /home/badersur/Downloads/dotnet/sdk/2.0.3-servicing-007131/

Microsoft .NET Core Shared Framework Host

  Version  : 2.0.3
  Build    : a9190d4a75f4a982ae4b4fa8d1a24526566c69df

(installed using my script)
VS Code version: 1.19.0-insider
C# Extension version: 1.14.0-beta2
Steps to reproduce
Install latest stable version (or the beta)
Restart VSCode
Expected  behavior
The C# dependencies installs
Actual behavior
I see this:
Installing C# dependencies...
Platform: linux, x86_64, name=ubuntu, version=17.10

Downloading package 'OmniSharp for Linux (x64)'

No matter how many hours I wait! I believe I had faced this issue before on Ubuntu 17.04 which I have solved by adding "csharp.fallbackDebuggerLinuxRuntimeId": "ubuntu.16.10-x64" to my settings but this setting doesn't seem to work now!
I'm using the latest alpha version of mono with the following packages installed:
git gconf2 gconf-service libgtk2.0-0 libudev1 libgcrypt20 libnotify4 libxtst6 libnss3 python gvfs-bin xdg-utils libcap2 libunwind-dev libicu-dev
Also, I'm using node 9 (and tried 8 and 7) installed using nvm (and I have added node & npm to the path by adding export PATH=$PATH:/home/badersur/.nvm/versions/node/v9.2.0/bin to /etc/profile.d/add-node.sh)
Please help me to continue using your great extension :)

I have cloned the repo and used the fallback URL and the extension is working now!
I can't download: https://download.visualstudio.microsoft.com/download/pr/100289197/6b6deacae45d80bf0174c40b720ed20b/omnisharp-linux-x64-1.27.2.zip using chrome and firefox, and the connection timed out for no obvious reason...
By the way, it'd be awesome to document how to install the extension from source! I had to look at your travis file to find this out :cry:

@badersur : I'm glad to to hear you were able to get it working. From #1827, it sounds like you're having trouble downloading in general from Azure CDNs. Is that right?

I used to have issues with nuget as explained in https://github.com/NuGet/NuGetGallery/issues/3345, but that issue disappeared for a while without doing anything on my machine IIRC...
In addition to that, I think I had issues with libraries such as https://ajax.aspnetcdn.com/ajax/bootstrap/3.3.6/css/bootstrap.min.css used on https://live.asp.net/ because I remember visiting the site and it was broken (which was temporal for few days/weeks?! not sure)
Strangely, I'm able to download https://www.microsoft.com/en-us/download/details.aspx?id=17851 but not https://download.visualstudio.microsoft.com/download/pr/100289197/6b6deacae45d80bf0174c40b720ed20b/omnisharp-linux-x64-1.27.2.zip!

Are you behind a proxy? I'm able to click on the link above and it downloads properly.

No, I'm connecting to my home router directly. I think the issue is related to either:

router's security settings (I remember setting it to the highest strict value, I forgot my password to double check!)
my ubuntu's ssl libraries are broken / miss configured (but other sites are working fine so I'm not really thinking so...
maybe have something to do with HTTPS being set with SNI or IP

I'd like to add this note that may be useful:
I've upgraded to Ubuntu 17.10 from 17.04 but while installing the new packages I locked my screen and couldn't unlock it because the password box was unusable! I switched to using the terminal (Ctrl + Alt + F4) and tried to run sudo apt-get update && sudo apt-get dist-upgrade -y but running root commands is blocked because of the running installer. I've waited some hours until the upgrade process completed and reran the command. Then, everything worked fine!

Then, everything worked fine!

Do you mean that the download is working for you now?

No, I mean Ubuntu has been upgraded without any noticeable issues after being stuck with a locked screen. This happened few months ago before facing the issue with C# extension in the last week.
I will try reinstalling my ubuntu packages as described in https://ubuntuforums.org/showthread.php?t=735693 and if it didn't help, I'll try to reformat my laptop.

Sorry for my late feedback.
I've tried to reinstall Ubuntu packages but every time I face an issue (power outage or network issues). Moreover, I've tried Ubuntu inside VirtualBox (without installing) and was able to download https://download.visualstudio.microsoft.com/download/pr/100289197/6b6deacae45d80bf0174c40b720ed20b/omnisharp-linux-x64-1.27.2.zip but I wasn't able to run VS Code!). Also, I couldn't visit plus.google.com inside VirtualBox...
I can't format my laptop because there's a bug in Ubuntu that mess up with the BIOS.
Maybe my laptop is affected by some viruses..

A lot has changed with packaging and acquisition of necessary components since this issue was opened. Please reopen if this is still an problem and provide updated details.


Question: esm development exports

in commonjs, we write:
if (process.env.NODE_ENV === 'production') {
  module.exports = require('./react-awesome-reveal.cjs.production.min.js')
} else {
  module.exports = require('./react-awesome-reveal.cjs.development.js')
}

What is the equivalent esm usage? Does vite support it?

Dynamic import will return a promise for now.
It can do this with esm need top level await supported by browser.

ESM exports must be static. What you can do is using alias to use different entries instead.


add css modules support and postcss-cssnext plugin

Hi, this has been discussed a few times. Please participate in the discussions.


Improve solver inheritance

This PR changes the inheritance such that all conic solver implementations are based directly on ConicSolver.
Multiple solver implementations were inheriting from SCS, indicating that these are "default" conventions adopted by cvxpy.
Hence, I move these shared "default" conventions to the ConicSolver class, which makes it more clear that any changes to these functions potentially affect all child classes. Currently, SCS is basically using all of these defaults, but the new setup allows it to easily change this assumption.
It is currently based on the SCS 3.0 branch, but could easily be rebased to a PR pointing at the master branch if required.

Moved to separate PR.


CreateCreditCard with deviceId

encrypted credit card info
tests to follow in separate pr

@ssteveli  and @skynet67 I think its ready for a re-review.


Use feels_like data from openweathermap instead of calculating it

Fixes #2678
When getting the current weather from openweathermap, the provider ignored the feels_like data from the response, and instead calculated the information himself.
Due to how the units were configured, the result was way off (due to imperial and metric units being mixed together). This weird logic is not changed in this PR. That's for another day...

Codecov Report

Merging #2680 (3d9c92f) into develop (e4a0a51) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff            @@
##           develop    #2680   +/-   ##
========================================
  Coverage    70.83%   70.83%
========================================
  Files           13       13
  Lines          696      696
========================================
  Hits           493      493
  Misses         203      203

Continue to review full report at Codecov.

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


[BUG] "GET" buttons not working on "Authorisation" or "Author"

WARNING: Github Issues are publicly visible, do not post sensitive information here.
You may want to use the "Screenshot mode" before taking screenshots or copying logs.

Describe the bug
Clicking "authorisation" or "author" does not populate the fields, meaning the tool cannot be used
Edit: It works on Chrome
To Reproduce
Steps to reproduce the behavior:

Click the trashbin icon to display the tool
Click on GET next to Authorisation or Author
Nothing happens

Affects (Add an X to items that apply)

[ X] DMs
[X ] DM Groups
[ X] Channel
[X ] Channel (NSFW)
[ X] Server (All Channels)
[ ] Other (explain)

System:

OS: Windows 10
Browser: Firefox

I'm having the exact same issue. Firefox on Windows 10.

This is because of "Enhanced Tracking Protection" on Firefox.
Disabling that on the discord site solves the issue and the buttons work for me again.


Custom primary key confusion

With a set of models like:
Owner(polymorphic), has many Projects
FooOwner(Owner), has custom primary key

Project(polymorphic), has many Owners
BarProject(Project), has custom primary key

performing barproject.owners.add(FooOwner()) seemed to have no effect; afterwards, barproject.owners.all() would be empty.
When I went to write a test case to recreate, I noticed I was triggering this line in my test output. I then removed the custom primary keys from FooOwner and BarProject, which fixed the problem.
Is this a known issue? The closest mention I saw in the docs was about unique primary keys in calls to extra(), but the test output seems to suggest somebody is aware of this.

This issue could be fixed now that #119 is merged, can you verify? (will release a new version on PyPI asap)

Cool; thanks. It'll take me a bit to dig up this old code, so if you're eager to release you might not want to wait on me :grin:

hehe :-) a 0.7 release has just been published to support Django 1.7/1.8. I'm looking forward to the fixes you can provide.