Get rid of modal dialog boxes in binjr

In order to streamline the UX and make it more inline with the current trend sparked by mobile and web based applications, it would be good to remove the couple of modal dialog boxes that subsist in binjr.
Other than confirmation dialogs -which are not within the scope of this proposal - there are two cases where the UI will funel the user's workflow through a modal dialog boxes:

[x] When adding a new worksheet.

[ ] When adding a new source.

With regard to the new worksheet dialog, it was there historically because not all of a worksheet properties could be edited after it was created, therefore it made sense to force users to stop and think about their choices since they'd be stuck with it. Since this hasn't been true for a while now, the removal of the dialog should be straight forward, and not missed by anyone.
As far as the new source dialog is concerned though, making the source object fully mutable/editable would not not much sense, so the process and controls for binding a new source would remains  unchanged as a one shot/cancel-able action, but maybe the UI controls form the DataAdapter could be attached to the future source's TitledPane rather than being shown in a modal dialog?

"new worksheet" dialog suppressed


Extension does not work at all

Hi, I'm using macbook and I just installed the extension today.
When I am on youtube or soundcloud, I see an icon saying 'this site is supported for scrobbling'.
But it doesn't recognise any songs at all on both sites.
Even if I play a song, the icon stays the same.
I do not know what is wrong with it :(

Got some sample URLs that are highlighting the problem?

Well, actually no songs are detected so any URL would be a sample.
Here are some of songs that I've tried
https://www.youtube.com/watch?v=OJ-FsBvz4i8
https://www.youtube.com/watch?v=Xi1_GYahCSs
https://soundcloud.com/fkj-2/fkj-lying-together

First of all, please make sure that all connectors are enabled in the extension options, then reconnect your last.fm with "re-authenticate with last.fm" button at the bottom of the list, and after you've done that, reload the extension. If that doesn't help, then there might be several things at play including network issues, and you can help find the root cause by providing logs. There are two types of them: page logs can be viewed by pressing Cmd + Opt + I; getting to background logs is harder, but it's nicely explained here.
If the extension does not work at all, this is usually an authentication problem. If it does work for any other sites, for example Bandcamp, this is probably a bug.

Thanks for your reply!
When I check background logs, it has two red line errors.

with
{"error":4,"message":"Invalid authentication token supplied"}

@poetlee, Did you do this part:  "make sure that all connectors are enabled in the extension options, then reconnect your last.fm by pressing the "re-authenticate with last.fm" button at the bottom of the list"?

Do you mean this one?

It's been enabled the whole time.
If you guys mean something other than that, could you tell me where to find it?

And this is page log

We should probably do a reauth automatically after receiving an invalid token error. At least, the notification should show up every time this happens.

It works now. Thank you so much!


Distinguish between contract and clause templates

[x] Annotation in package.json to distinguish contract vs clause template
[ ] Add unit tests

Cicero should have a top-level property in the package.json file for a template. We can then extend this with other metadata as necessary. For example
{
    "name": "copyright-license",
    "version": "0.0.1",
    "engines": {
        "cicero": "^0.3.0-0"
    }
}

becomes..
{
    "name": "copyright-license",
    "version": "0.0.1",
    "cicero": {
      "template": "contract",
      "version": "^0.3.0-0"
    }
}

template could also have the value "clause" to identify packages that contain reuseable clauses.
version identifies the semver of cicero that this template is designed to run against.
By default, the supported version is assumed to be the current version of the cicero environment and template is assumed to be a contract.

@mttrbrts added some tests. I think this is resolved?


[$1000] Not allowed sign does not show when an attachment is drag and dropped

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:

Go to any chat and upload a picture
Open the picture uploaded
Open a file > drag and drop any picture without closing the picture shown.
Notice that not allowed sign is not shown

Expected Result:
Not allowed to drag and drop when an attachment is open.
Actual Result:
allowed to drag and drop when an attachment is open.
Workaround:
Can the user still use Expensify without this being fixed? Have you informed them of the workaround?
Platforms:

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

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

Version Number: 1.3.36-3
Reproducible in staging?: y
Reproducible in production?: n
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: Any additional supporting documentation
https://github.com/Expensify/App/assets/43996225/aa717cd2-c601-4bed-b94c-48df70532e83
https://github.com/Expensify/App/assets/43996225/39639605-6a1b-487f-98a7-5a01812488f4
Expensify/Expensify Issue URL:
Issue reported by: @daveSeife
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1688500850249469
View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~010870acccad3ed186
Upwork Job ID:<PHONE_NUMBER>896407552
Last Price Increase: 2023-07-19

:wave: Friendly reminder that deploy blockers are time-sensitive ⏱ issues! Check out the open StagingDeployCash deploy checklist to see the list of PRs included in this release, then work quickly to do one of the following:

Identify the pull request that introduced this issue and revert it.
Find someone who can quickly fix the issue.
Fix the issue yourself.

Just coming online, but @deetergp seems to be on it!

This one is problematic. It looks like @deetergp located the original PR, but as we've already followed up with additional changes for other blockers I don't think we can simply revert it...
Best course of action might be to unblock the release and resolve this without classing it as a blocker. I think this is fine as it's not blocking the user.
We're already one day behind the release schedule and the alternative of reverting multiple PRs in a certain order is too time-consuming/complex and will prevent me from releasing.

@kidroca it would be great if you could confirm/deny our suspicion about this. We'll need to fix but I'm moving forward with the app release.

I'd love @kidroca's thoughts on it, but I'm going to go ahead and apply the External label and open it up to proposals.

Proposal
Please re-state the problem that we are trying to solve in this issue.
Drag and drop is not prevented in the attachment preview modal.
What is the root cause of that problem?
As suspected in previous comments, this is a result of the restructuring in #20167. Previously, AttachmentModal was a child of ReportScreen, and it benefited from the logic in DragAndDrop, which prevents drag & drop outside of the specified area. Now that AttachmentModal is in its own RootStack.Screen, it no longer benefits from that logic.
What changes do you think we should make in order to solve the problem?

We need to add these event handlers to ReportAttachments, as this is the top-level component for the new stack dedicated to showing attachment modals.
We can use the same logic as is in DragAndDrop, but much more simplified.
const preventDropEvent = useCallback((event) => {
    event.preventDefault();
    // eslint-disable-next-line no-param-reassign
    event.dataTransfer.dropEffect = 'none';
}, []);

useEffect(() => {
    document.addEventListener('dragenter', preventDropEvent);
    document.addEventListener('drop', preventDropEvent);

    return () => {
        document.removeEventListener('dragenter', preventDropEvent);
        document.removeEventListener('drop', preventDropEvent);
    }
}, [preventDropEvent])

What alternative solutions did you explore? (Optional)
We could wrap ReportAttachments in the DragAndDrop component and set shouldAcceptDrop to always return false. But I think this would add unnecessary bloat to this stack, as there's a bit going on under the hood in that component.

@rain2o That proposal sounds good to me. Interested to hear how @thesahindia feels about it.

I think the alternative is better - simply wrap with the existing DragAndDrop component, why write the same code twice?
Keep in mind this is only for web, if you decide to duplicate the code, you'll have to dedicate a script or multiple scripts to handle all platforms, even though native would be noops - this again advocates to just use the existing component for the purpose (as outlined in the alternative approach)

By the way I wanted to bring up another point. Currently, the focus seems to be on preventing the drag-and-drop functionality solely on the attachment view.
However, in my opinion, this approach may not be the most efficient one. I propose that we instead default to disabling drag-and-drop across the application and selectively enable it where needed, like on the compose screen. This should prevent us from dealing with similar issues on a case-by-case basis.
A pertinent example is the settings screen. At present, the drag-and-drop feature is not disabled there, leading to an identical problem where dragging and dropping a file opens the file in a new tab - why should this be allowed to happen on the settings screen, but not allowed to happen on the attachments screen?

That's a great point @kidroca. I think maybe a brief discussion about it is warranted in #expensify-open-source just to get buy-in from others and then we should make it a separate GH as it's bigger than just this bug.

Discussion here: https://expensify.slack.com/archives/C01GTK53T8Q/p1689094256959329

The discussion is starting to wind down and it looks like we are probably going to go with @kidroca's suggestion of disallowing D&D by default and only explicitly allowing it where intended.

What's the latest here?

It seems like we all agreed to go with @kidroca's suggestion as the desired outcome:

However, in my opinion, this approach may not be the most efficient one. I propose that we instead default to disabling drag-and-drop across the application and selectively enable it where needed, like on the compose screen. This should prevent us from dealing with similar issues on a case-by-case basis.

So I imagine we need any proposals to take the above into account.

@thesahindia what are your thoughts on the above proposals?

Perfect I just assigned @allroundexperts to the GH as the C+.

Proposal
Problem
Not allowed sign does not show when an attachment is drag and dropped
Root Cause
The current behaviour of dragover event datatransfer dropeffect is "copy"
Solution
Wrapping  ReportAttachments with NoDropZone will prevent the fails the drop and no new Tab opens
 <NoDropZone>
         <AttachmentModal
            allowDownload
            defaultOpen
            report={report}
            source={source}
            onModalHide={() => Navigation.dismissModal(reportID)}
            onCarouselAttachmentChange={(attachment) => {
                const route = ROUTES.getReportAttachmentRoute(reportID, attachment.source);
                Navigation.navigate(route);
            }}
        />
 </NoDropZone>

@allroundexperts what do you think of the updated proposals?

@allroundexperts

We recently implemented the NoDropZone component as part of this PR. This was added to RHN only. I think we can leverage that in our models and in LHN.
Can we please get an updated proposal that takes into account the recent changes that we did in #23528 and #23589?

You appear to be advocating for the application of the NoDropZone component to each area of the application that should not accept drops. This seems to be at odds with @deetergp's comment:

The discussion is starting to wind down and it looks like we are probably going to go with @kidroca's suggestion of disallowing D&D by default and only explicitly allowing it where intended.

If I recall correctly, the consensus from the discussion was to disallow Drag & Drop (D&D) by default and only explicitly allow it in designated areas. Did I misunderstand something, or has the preference shifted to disabling D&D individually in each part of the application?

If I recall correctly, the consensus from the discussion was to disallow Drag & Drop (D&D) by default and only explicitly allow it in designated areas. Did I misunderstand something, or has the preference shifted to disabling D&D individually in each part of the application?

This is still the plan. We need D&D disabled everywhere and then enabled only in the areas where we want explicitly want to use it.

@deetergp @allroundexperts what are the next steps here so that we can close this GH asap?

@kidroca It seems like you've been an active part of the discussion here. Do you mind submitting a proposal as well 😄?

My proposal would be similar to the existing - disable on the document level and then enable where appropriate with the provider component

@allroundexperts thoughts on @ginsuma's proposal?

Let's go with @ginsuma's proposal, making sure to address what @allroundexperts mentioned, in the PR:

One thing that I noticed is that after applying the changes, any popover already opened closes when an image is dragged over it.

Payment summary:

For reference, here are some details about the assignees on this issue:
@ginsuma requires payment
@allroundexperts does not require payment (Eligible for Manual Requests)
@daveSeife requires payment offer (Reporter)

@ginsuma = $1000 (no bonus)
@allroundexperts = $1000 (no bonus)
@daveSeife = $250

@ginsuma can you please share your UW profile here, I'm not sure that I have found the right person- thanks!
@daveSeife - Contract sent.

Thanks, @ginsuma - contract sent.

Oops, sorry about that, sent a new offer with the correct amount.

@ginsuma - paid
@daveSeife - waiting to accept offer

@flaviadefaria accepted offer, thank you!

@daveSeife you have been paid.

@allroundexperts does not require payment (Eligible for Manual Requests)
Please request payment I'll switch this to weekly for now.

Cool seems like all payments have been requested or made so closing this for now.

$1,000 payment approved for @allroundexperts based on BZ summary.


Infer text-based experiment option names

When options in the experiment are implicitly-labeled, but only differ based on text content, detect this and use the text as the label (rather than using the hash):
<autotune>

The glass is half full

The glass is half empty

</autotune>

I think this could be as simple as, if textContent is unique for all options, use it.


Compiler sometimes crashes with stack overflow when html! is used inside Render impl

Sometimes, using the html macro inside an impl can cause rustc to crash with a stack overflow. A simplified example that reproduces the crash is
use maud::{html, Markup, Render, DOCTYPE};

pub struct Theme;

impl Render for Theme {
    fn render(&self) -> Markup {
        html! {}
    }
}

pub struct Note;

impl Note {
    pub fn render_html(&self) -> Markup {
        html! {
            (DOCTYPE)
        }
    }
}

This seems to be because the html macro inserts extern crate maud, triggering rust-lang/rust#55779. It is very sensitive to the other code around the problem impl. I'm not sure there is anything to be done other than wait for the underlying bug to be fixed.
In my case I am solving it by putting the problem impl inside its own submodule.

I ran into the same issue, but the suggested workaround at https://github.com/rust-lang/rust/issues/55779#issuecomment-621514454 (adding extern crate maud to the root) fixes it for me.

Was wrestling with this for an hour and thought I was crazy. extern crate maud at root was a perfect fix, thanks @mbr


ABC and other changes

Included circuit simplification with ABC
Adopted your travis_install.py script for installation
removed remnants of our wheel experiments

Codecov Report

Merging #12 into master will decrease coverage by 0.12%.
The diff coverage is 97.05%.

@@            Coverage Diff             @@
##           master      #12      +/-   ##
==========================================
- Coverage   97.36%   97.24%   -0.13%
==========================================
  Files           8       10       +2
  Lines         228      254      +26
==========================================
+ Hits          222      247      +25
- Misses          6        7       +1

Impacted Files
Coverage Δ

aiger_analysis/test_cadet.py
100% <100%> (ø)
:arrow_up:

aiger_analysis/__init__.py
100% <100%> (ø)
:arrow_up:

aiger_analysis/test_abc.py
100% <100%> (ø)

aiger_analysis/abc.py
100% <100%> (ø)

aiger_analysis/cadet.py
93.1% <88.88%> (-1.24%)
: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 3bd79ce...0b5f0a3. Read the comment docs.

Hey, I now also unified how ABC, AIGER and CADET are being installed.
There just one weird thing going on: on my machine, suddenly one testcase in test_count.py is failing. But it works fine on travis. I even added the failing input as an explicit test (to circumvent the randomness in hypothesis), but it still does not fail. Let's check it out when you're back.

Looks good


Mapstyles/navigation resources exporting/importing

As a user I would like to be able to export and import my navigation/resources folder, and import it as well.
This will allow me to have custom navigation styles.

I included th is in the latest commit on the experimental branch: cd29148d6b9b5d0d02b5106e68808659ca3b4c8c


Exports package.json

This adds an entry in package.json to export package.json.
Why?
I'm using addon-svelte-csf in a monorepo where I need to find the absolute path of a package in .storybook/main.js. A simplified version:
addons: [
  dirname(require.resolve(join('@storybook/addon-svelte-csf', 'package.json')))
]

What happens currently?
Without the exported package.json, we hit an error attempting to get it
Error [ERR_PACKAGE_PATH_NOT_EXPORTED]: Package subpath './package.json' is not defined by "exports"

Is this normal?
I think so. Looking at other official addons, it looks common to export package.json. Examples:

controls https://github.com/storybookjs/storybook/blob/next/code/addons/controls/package.json#L37
addon-links https://github.com/storybookjs/storybook/blob/next/code/addons/links/package.json#L39C5-L39C39
a11y https://github.com/storybookjs/storybook/blob/next/code/addons/a11y/package.json#L38

Again, this seems OK to do, but I am a little hazy on how the exports setup is supposed to work, so this may not be the right way to do this.

:rocket: PR was released in v4.0.12 :rocket:

Excellent, thanks for the fast turnaround @JReinhold @shilman!


Double clicking on text causes micro to freeze up

Description of the problem or steps to reproduce
Every time I double click on text it causes to micro to freeze up. The cursor continues to blink but all bindings do not respond. I am forced to close the terminal to close micro.
Specifications
Commit hash: c51f849
OS: Fedora 30
Terminal: Tilix, GNOME Terminal

this works just fine on OSX and Raspbian Buster 🥇

works fine on Windows + powershell. please mention the terminal app too.

@ret394 It's mentioned in the OP:

Terminal: Tilix, GNOME Terminal

I'm not sure why but this hasn't occurred to me since, however I am running Fedora 32 now so my assumption is this was environment related.


Library separation

A user may want to use this library only for CV algorithms. Library should not force a user to install any C libraries.
Looks like DCV may be splitt to

algorithms / image manipulations (DCV)
decoding / codecs
visualization

Current library looks like it is oriented for the end user. Comparing with Python, it is better practice  for D to have an API, which can be used to build extended functionality, e.g. to be used in other libraries and cross-platform products.

I agree. I was already planning on separating visualization. So if we're gonna separate I/O also, I suppose dcv.io, and dcv.plot would be optional, included only if special version is defined? That way no C libraries would be required (except blas/lapack, but that'll be fixed with #26).

So if we're gonna separate I/O also, I suppose dcv.io, and dcv.plot would be optional, included only if special version is defined?

Special configuration. Another option is move them to separate package.

Also dub has sub-packages, but i don't know how good they work

OK, I'll investigate that. I cannot tell from this point of view what would be a best option. I'd like to work on this and #26 after we resolve #20.

imageformats does not depend on any other D or libraries, so it may be preserved, thought

Also this will allow to exclude ggplotd from dependency list. ggplotd is not available for windows users :-(. This is significant constraint for new commors


Charts rendering too small when Jupyter output cell is hidden

When a page or output-cell is not visible in a Jupyter Notebook when rendering a chart, it is rendered with a default width of 100px which is too small. The only way currently to fix this, is to double-click on the chart to resize it back to 100%.
Ideally the resizing should be done automatically when the visibility or size of a cell out changes.
Example of too small rendering:

Added a resize listener that automatically resizes the chart if the parent element changes size.


Router pattern: sidecar or function directs message to different topic

Having a single downstream topic is kind of limiting for a lot of integration flows. The router pattern is well known, and would fit into riff maybe as a Function<Message<?>,String>. But how can the sidecar know that the function is in the right form? What if it starts getting multiple outputs for a single input? It might be better, or at least a useful option to have, to implement routing behaviour as a sidecar feature. E.g.look at the outgoing messages for a header with a well-known name ("routekey") and send the message to the corresponding topic.
Draft: https://github.com/dsyer/riff/tree/feature/routekey

This issue has gone stale, we're on Knative now! Please reopen if still relevant.


Vectors: Use clear() and has().

Use clear() instead of resize(0) for Vectors, mostly where readability isn't affected.
https://github.com/godotengine/godot/blob/ea12094f19b028c1dcf6d402b8cbb3296b2065a8/core/templates/vector.h#L84
Use has() instead of "find(p_val) != -1".
https://github.com/godotengine/godot/blob/ea12094f19b028c1dcf6d402b8cbb3296b2065a8/core/templates/vector.h#L98-L100
Rewrite has(), as p_from  in find() is initialized to 0.
https://github.com/godotengine/godot/blob/ea12094f19b028c1dcf6d402b8cbb3296b2065a8/core/templates/vector.h#L94

Thanks!


Modifying gravity doesn't wake sleeping colliders

To repro:

Add a dynamic rigidbody
Configure rapier so that gravity is disabled (Vec3::ZERO)
Wait for the rigidbody to go to sleep
Enable gravity

And observe the rigidbody floating mid-air.

We should consider performance when tackling this, if we have a lot of objects, but change gravity to be only slighty more powerful, chances are we don't want to wake up all our tiny objects (and most likely just not wake up anything at all.
I wouldn't mind a wake_up_all_rigibodies() function, but this needs to be explicit in my opinion.


Ghostscript

I have both install ghostscript and ImageMagick, and i used laravel framework. When i used image watermark is works very well, but when i used pdf watermark. it seems nothing has happen. Am i do wrong?
This is my code :
if($id_watermark->fileext == 'image/jpeg' || $id_watermark->fileext == 'image/png')             {                 /* Watermarking with Text */                 $watermark = new Watermark('upload/'.$id_watermark->files);                  $watermark->setTiled()                         ->setTileSize(300, 300)                         ->setFontSize(24)                         ->setRotate(330)                         ->setOffset(60, 0);                 $text = "Verified";                 $watermark->withText($text, 'upload/'.$id_watermark->files);             }             elseif($id_watermark->fileext == 'application/pdf')             {                 /* Watermarking with Text */                 $watermark = new Watermark('upload/'.$id_watermark->files);                 $watermark->setFont('Arial');                 $watermark->setFontSize(18);                 $watermark->setRotate(345);                 $watermark->setOffset(20, 60);                 $watermark->setPosition(Watermark::POSITION_BOTTOM_RIGHT);                 $text = "Verified";                 $watermark->withText($text, 'upload/'.$id_watermark->files);             }
code when the extension is pdf is not working. Is it any way to properly used ghostscript?

I have read and found a solution with your package to with Markpdf. And that is works so flawlessly good. Thank you so much


Is it possible that knex is resolving concurrent INSERTs in the wrong order?

Environment
Knex version: "knex": "0.16.5",
Database + version: MySQL 5.7.18
OS: macOS 10.14.5
Bug
For example, I have something that looks like this:
const async insertVersion = (): void => {
	return (await trx.raw('INSERT INTO versions SET project_id = ?', body.project_id))[0].insertId;
};

insertVersion().then((id: number): void => {
	console.log(id) // 3
});

insertVersion().then((id: number): void => {
	console.log(id) // 4
});

The problem is that 4 is printed before 3 in the console. The id is an AUTO INCREMENT field, so how can the the row with id 4 be returned before the the row with id 3?

This has nothing to do with knex. You need to await each insert if you want them to be executed strictly sequentially, or chain promisrs.

Nor driver nor db itself do guarantee you that insert which starts first is executed before insert that starts second.

Thanks for the quick reply and sorry if this ticket is irrelevant.

Nor driver nor db itself do guarantee you that insert which starts first is executed before insert that starts second.

Are you certain of this? If you concurrently insert two rows in the same table, shouldn't the first inserted row be returned first? The first inserted row would of course be the one with the smallest id (3 in this case).

@maximedupre Yes, very sure. Databases are extremely complex beasts, designed to handled heavy load, and they have their own internal logic regarding what should be executed in what order in order to maximize performance, and you shouldn't make any assumptions about that. The fact that you've executed the statement from your end doesn't necessarily mean that databases already started running it.
First inserted row, indeed, will be returned first, but there are no guarantees that the row you started inserting first from your end is the one that database will end up having inserted first.
And in this regard knex doesn't affect much. It's an SQL builder that doesn't do any magic, it doesn't try to be smart or optimize anything. Those things are up to mostly database and, to some extent, driver.

Thanks for the explanation.

First inserted row, indeed, will be returned first, but there are no guarantees that the row you started inserting first from your end is the one that database will end up having inserted first.

I find bizarre that row with id 4 can be inserted before row with id 3. In my mind, row with id 4 depends on row with id 3, because if row with id 3 had not been inserted, then row with id 4 would have id 3...
I guess it's more complex than that under the hood, as you explained.

I have my doubts that this is an issue caused by the database. I've seen similar behavior with queries in Bookshelf, where you send queries A, B and C, and they always resolve in the order C, B and A. It's very consistent, so it makes me think there's something else going on.
Maybe it's not Knex's fault, it could be a driver issue, but I think there's more here than meets the eye. Example: https://github.com/bookshelf/bookshelf/issues/1622. I know that issue is slightly more contrived, but it seems to contain a similar behavior.

@maximedupre How consistent is this behavior? What if you fire more than 2 consecutive queries? Is it more random?

In the example it is possible that either one of two may have either one of IDs.
For example when you send 2 queries to knex to parallel connections it might happen that pool notices that first connection was not valid and creates completely new connection for the one and the second connection was ready already so second query would get to DB driver sooner that first one...
That is just one case... there are plenty of other places between client code and database where for some reason one query actually gets executed before another one, even if they were triggered from javascript in opposite order.
Also reading result for connections and printing them out has nothing to do with the order in which they were executed. For example if other connection suffers from random packet loss, it may slow it down so that second query result reach client first.

I would say the ordering of the results is correct more often than not. But the wrong order still occurs very frequently (~40%). The different results seem to come in batches. For example, I will get the wrong order 4 times, then the right order 6 times. It might be related to the busyness of my CPU?
I (seemingly) fixed the problem by adding a await trx.raw('LOCK TABLES versions WRITE'); to force the seconds query to wait for the first one to unlock the table. I'm sure this is not ideal, but it's what I have found to work so far.

use transaction and they will be got in the same order that you send the queries, because they will be send to database through the same connection.

If the results are not consistent, then this appears to be a database issue related to connections.

. For example, I will get the wrong order 4 times, then the right order 6 times. It might be related to the busyness of my CPU?

It might be related to anything... as I tried to explain in the earlier message there is nothing that is event trying to guarantee order of the results in the code case of the original post.

I am already using transactions. For example, both insertVersion() are in a different transaction.


bug: Run log does not track steps of PAPIv3 or JSONv6 protocol

Overview
When running a Python Protocol API v3 protocol or a JSON v6 protocol, the Opentrons App's run log does not update itself to show which command is currently running.
Steps to reproduce
Run this Python Protocol API v3 protocol:
from opentrons import protocol_api, types

metadata = {
    "protocolName": "Testosaur Version 3",
    "author": "Opentrons<EMAIL_ADDRESS>    "description": 'A variant on "Dinosaur" for testing with Protocol API v3',
    "source": "Opentrons Repository",
    "apiLevel": "3.0",
}

def run(ctx: protocol_api.ProtocolContext) -> None:
    tip_rack = ctx.load_labware("opentrons_96_tiprack_300ul", 8)
    source = ctx.load_labware("nest_12_reservoir_15ml", 1)
    dest = ctx.load_labware("corning_96_wellplate_360ul_flat", 2)

    pipette = ctx.load_instrument("p300_multi_gen2", types.Mount.LEFT, [])

    for i in range(4):
        pipette.pick_up_tip(tip_rack.wells()[i])
        pipette.aspirate(50, source.wells_by_name()["A1"])
        pipette.dispense(50, dest.wells()[i])
        pipette.drop_tip(tip_rack.wells()[i])

Tested on 6.0.0-beta.0.
Anecdotally, I'm pretty sure I've seen this happen with JSONv6 protocols too, but I don't have a runnable one handy to test.
Current behavior
The app shows steps from the protocol's analysis, but does not show the steps actually executed in the run.

Pausing, playing, or letting the run finish don't appear to have any effect.
Dumps of HTTP responses. Note that some commands are missing because this was taken midway through the protocol, when the protocol was paused.
Expected behavior
As with Python Protocol API v2 protocols:

The current step should be highlighted in blue.
The start and finish time of each step should be shown.

The command keys do not match between the protocol's analysis and the actual run. Maybe that has something to do with it?


Test data

Let's save as sam. Better for the repo. We don't need the .bai. Can you convert them?

Screw it. Only around 200kB. Just merge.

Oh! rebase first


Auto-detect a variety of header texts in CSV upload of Service Areas

I think this should at least match what we have built for RPG.
We can anticipate what the most common headers will be--ie: County, county, County Name, County name. This will also lessen the need for issue #67
The experience of uploading an incorrectly formatted CSV is worsened by the fact that there is no "Clear Inputs" button-- I have to reload the page each time.
nudge for issue #14

@viviandien I added a few, but you can add more by adding strings to each column's aliases list:

Providers CSV: https://github.com/bayesimpact/tds-frontend/blob/ed9f2c660e09ad90c4381ea9bd093960f226cb0e/src/components/ProvidersDrawer/ProvidersDrawer.tsx#L44
https://github.com/bayesimpact/tds-frontend/blob/ed9f2c660e09ad90c4381ea9bd093960f226cb0e/src/components/ServiceAreasDrawer/ServiceAreasDrawer.tsx#L68


[Diaper calculator page] The images have different resolutions and are not aligned

Steps to reproduce:
Open "Diaper calculator" (with a new design) page.
Expected Result:
The icons have the same resolutions and are aligned.
Actual Result:
The images have different resolutions and the icons protrude beyond the edges of the circles.

Fixed
All icons have 108*75 resolution


[Refactor] Simplify configuring allowed payment methods

Fixes #122

Good job @NoResponseMate! 👍 However, it's surely a BC break, and we should think about how to handle that. It would be great if it lands in the repo, as there is a lot of code removed. Let's think about it and come back to it asap 🖖


Particles generation incomplete when only state=[1,1,1] is given

When a Particles object is created with only state given, the loop over all particles inside C code will only execute the first particle. However, if also  x is passed, the full loop is executed.
Compare:
In [1]: ran = xt.RandomUniform()
   ...: part = xp.Particles(state=np.ones(3))
   ...: samples, _ = ran.generate(n_samples=3e6, n_seeds=3, particles=part)
   ...: print(samples)

[[0.47400289 0.66379469 0.58276645 ... 0.23287797 0.16708884 0.25027507]
 [0.         0.         0.         ... 0.         0.         0.        ]
 [0.         0.         0.         ... 0.         0.         0.        ]]

with
In [2]: ran = xt.RandomUniform()
   ...: part = xp.Particles(x=np.ones(3), state=np.ones(3))
   ...: samples, _ = ran.generate(n_samples=3e6, n_seeds=3, particles=part)
   ...: print(samples)

[[0.75416197 0.61387832 0.80920189 ... 0.62246788 0.27983064 0.95318052]
 [0.08899982 0.10179166 0.4785221  ... 0.24919385 0.00122615 0.71521626]
 [0.41356159 0.61700191 0.63665921 ... 0.83262688 0.75045415 0.99406419]]

Automatically solved in last xpart release.


A verification error occurred during decompression and Large green blocks appear when running the program

These problems really worry me T^T

from where did you download s2p ?

from this website: https://github.com/SNSLogty/style2paints_v3_launcher

@meteorlin This repo has stopped after v4-web open. And it was outdated.Please follow issue#100 to get s2p-v3

Link to issue #100


broken wiki links

The wiki is missing a lot of articles, just a FYI

for example https://github.com/liamg/tfsec/wiki/AWS012 is not written yet


Ruby build failing

I am unable to build the ruby gem. Here is the homebrew install:
$ curl -fsSL https://goo.gl/getgrpc | bash -s ruby
zlib is already installed
openssl is already installed
google-protobuf is already installed
grpc is already installed
installing grpc ruby
Building native extensions with: '--with-grpc-dir=/usr/local'
This could take a while...
ERROR:  Error installing grpc:
	ERROR: Failed to build gem native extension.

    /Users/blowmage/.rubies/ruby-2.2.3/bin/ruby -r ./siteconf20151005-44201-1btzn1u.rb extconf.rb --with-grpc-dir=/usr/local
checking for dlopen() in -ldl... yes
checking for inflate() in -lz... yes
checking for gpr_now() in -lgpr... yes
checking for grpc_channel_destroy() in -lgrpc... yes
creating Makefile

make "DESTDIR=" clean

make "DESTDIR="
compiling rb_byte_buffer.c
compiling rb_call.c
rb_call.c:177:32: error: too many arguments to function call, expected single argument 'call', have 2 arguments
  err = grpc_call_cancel(call, NULL);
        ~~~~~~~~~~~~~~~~       ^~~~
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/7.0.0/include/stddef.h:105:16: note: expanded from macro 'NULL'
#  define NULL ((void*)0)
               ^~~~~~~~~~
/usr/local/include/grpc/grpc.h:448:1: note: 'grpc_call_cancel' declared here
grpc_call_error grpc_call_cancel(grpc_call *call);
^
rb_call.c:192:10: error: implicit declaration of function 'grpc_call_get_peer' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
  peer = grpc_call_get_peer(call);
         ^
rb_call.c:192:10: note: did you mean 'grpc_rb_call_get_peer'?
rb_call.c:187:14: note: 'grpc_rb_call_get_peer' declared here
static VALUE grpc_rb_call_get_peer(VALUE self) {
             ^
rb_call.c:192:8: error: incompatible integer to pointer conversion assigning to 'char *' from 'int' [-Werror,-Wint-conversion]
  peer = grpc_call_get_peer(call);
       ^ ~~~~~~~~~~~~~~~~~~~~~~~~
rb_call.c:560:25: error: no member named 'reserved' in 'struct grpc_op'
    st->ops[st->op_num].reserved = NULL;
    ~~~~~~~~~~~~~~~~~~~ ^
rb_call.c:655:70: error: too many arguments to function call, expected 4, have 5
  err = grpc_call_start_batch(call, st.ops, st.op_num, ROBJECT(tag), NULL);
        ~~~~~~~~~~~~~~~~~~~~~                                        ^~~~
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/7.0.0/include/stddef.h:105:16: note: expanded from macro 'NULL'
#  define NULL ((void*)0)
               ^~~~~~~~~~
/usr/local/include/grpc/grpc.h:420:1: note: 'grpc_call_start_batch' declared here
grpc_call_error grpc_call_start_batch(grpc_call *call, const grpc_op *ops,
^
5 errors generated.
make: *** [rb_call.o] Error 1

make failed, exit code 2

Gem files will remain installed in /Users/blowmage/.gem/repos/grpc-travis/gems/grpc-0.11.0 for inspection.
Results logged to /Users/blowmage/.gem/repos/grpc-travis/extensions/x86_64-darwin-14/2.2.0-static/grpc-0.11.0/gem_make.out

And here is a bundle install:
$ bundle install
Fetching gem metadata from http://rubygems.org/..........
Fetching version metadata from http://rubygems.org/..
Resolving dependencies...
Using addressable 2.3.8
Using extlib 0.9.16
Using multipart-post 2.0.0
Using faraday 0.9.1
Using google-protobuf 3.0.0.alpha.4.0
Using jwt 1.5.1
Using little-plugger 1.1.4
Using multi_json 1.11.2
Using logging 2.0.0
Using memoist 0.12.0
Using signet 0.6.1
Using googleauth 0.4.2
Installing grpc 0.11.0 with native extensions

Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

    /Users/blowmage/.rubies/ruby-2.2.3/bin/ruby -r ./siteconf20151005-44363-wztxjm.rb extconf.rb
checking for dlopen() in -ldl... yes
checking for inflate() in -lz... yes
checking for gpr_now() in -lgpr... yes
checking for grpc_channel_destroy() in -lgrpc... yes
creating Makefile

make "DESTDIR=" clean

make "DESTDIR="
compiling rb_byte_buffer.c
compiling rb_call.c
rb_call.c:177:32: error: too many arguments to function call, expected single argument 'call', have 2 arguments
  err = grpc_call_cancel(call, NULL);
        ~~~~~~~~~~~~~~~~       ^~~~
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/7.0.0/include/stddef.h:105:16: note: expanded from macro 'NULL'
#  define NULL ((void*)0)
               ^~~~~~~~~~
/usr/local/include/grpc/grpc.h:448:1: note: 'grpc_call_cancel' declared here
grpc_call_error grpc_call_cancel(grpc_call *call);
^
rb_call.c:192:10: error: implicit declaration of function 'grpc_call_get_peer' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
  peer = grpc_call_get_peer(call);
         ^
rb_call.c:192:10: note: did you mean 'grpc_rb_call_get_peer'?
rb_call.c:187:14: note: 'grpc_rb_call_get_peer' declared here
static VALUE grpc_rb_call_get_peer(VALUE self) {
             ^
rb_call.c:192:8: error: incompatible integer to pointer conversion assigning to 'char *' from 'int' [-Werror,-Wint-conversion]
  peer = grpc_call_get_peer(call);
       ^ ~~~~~~~~~~~~~~~~~~~~~~~~
rb_call.c:560:25: error: no member named 'reserved' in 'struct grpc_op'
    st->ops[st->op_num].reserved = NULL;
    ~~~~~~~~~~~~~~~~~~~ ^
rb_call.c:655:70: error: too many arguments to function call, expected 4, have 5
  err = grpc_call_start_batch(call, st.ops, st.op_num, ROBJECT(tag), NULL);
        ~~~~~~~~~~~~~~~~~~~~~                                        ^~~~
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/7.0.0/include/stddef.h:105:16: note: expanded from macro 'NULL'
#  define NULL ((void*)0)
               ^~~~~~~~~~
/usr/local/include/grpc/grpc.h:420:1: note: 'grpc_call_start_batch' declared here
grpc_call_error grpc_call_start_batch(grpc_call *call, const grpc_op *ops,
^
5 errors generated.
make: *** [rb_call.o] Error 1

make failed, exit code 2

Gem files will remain installed in /Users/blowmage/.gem/repos/grpc-travis/gems/grpc-0.11.0 for inspection.
Results logged to /Users/blowmage/.gem/repos/grpc-travis/extensions/x86_64-darwin-14/2.2.0-static/grpc-0.11.0/gem_make.out
An error occurred while installing grpc (0.11.0), and Bundler cannot continue.
Make sure that `gem install grpc -v '0.11.0'` succeeds before bundling.

Another report was made at grpc/grpc-common#283.

I notice the following from the installation log

grpc is already installed

Can you try uninstalling grpc and re-installing ?
The errors look as if you're compiling the against the wrong version of grpc.
Another approach that might work is
$ brew update

If that works, then we should probably update the installation script so that it adds a brew update invocation when homebrew is already installed.

You should now be able to just use gem install grpc, without dealing with homebrew. Can you check whether this solves your problem?

Also having issues install the gem on Mac OS X, with slightly different errors (similarly though, they are C++ compile errors).
Here are some additional details:

Was following instructions in the examples/ruby/README.md
Prior to doing the bundle install, did brew install openssl (since I had gotten an error from a prior bundle install saying the my system was missing OpenSSL)
Here's my log:
grpc_install_log.txt
(Any other details needed?)

The build uses pkg-config to look for OpenSSL. Instead of exporting CFLAGS and LDFLAGS, you should export PKG_CONFIG_PATH=/usr/local/opt/openssl/lib/pkgconfig.

I continue to get compiler errors when installing the ruby gem on a fresh OS X 10.11. The errors I get now are:
current directory: /Users/blowmage/.gem/repos/grpc/gems/grpc-0.12.0/src/ruby/ext/grpc
make "DESTDIR=" clean

current directory: /Users/blowmage/.gem/repos/grpc/gems/grpc-0.12.0/src/ruby/ext/grpc
make "DESTDIR="
compiling rb_byte_buffer.c
compiling rb_call.c
compiling rb_call_credentials.c
rb_call_credentials.c:79:61: error: unused parameter 'args' [-Werror,-Wunused-parameter]
static VALUE grpc_rb_call_credentials_callback_rescue(VALUE args,
                                                            ^
rb_call_credentials.c:134:59: error: unused parameter 'state' [-Werror,-Wunused-parameter]
static void grpc_rb_call_credentials_plugin_destroy(void *state) {
                                                          ^
2 errors generated.
make: *** [rb_call_credentials.o] Error 1

make failed, exit code 2

The full log is here.

Well, I can reproduce that. The Rake extension compiler appears to explicitly silence some warnings, including that one, but only on certain compilers.

Same errors here on Ubuntu 15.10 building grpc-0.12.0 via gem install --user grpc.

@avongluck-r1soft Do you mean that you see the "unused parameter" errors, or the errors from earlier comments?

Sorry, should of been clearer. I saw the "unused parameter" errors resolved by #4843

PR to add build instructions: https://github.com/grpc/grpc/pull/4931

This should no longer be a problem, because we now distribute precompiled binary gems. If anyone ever encounters this bug again, please inform us so that we can reopen the issue.


[feature request] tags support

It doesn't appear that ncm2 or the related plugins support tags files. If I'm reading correctly, this was supported in nvim-completion-manager with the cm_tags file.
Opening this issue to track the work of supporting tags.
Thanks for a great project!

https://github.com/ncm2/ncm2-tagprefix


Including another file with -r other.txt should resolve relative to the containing file

We have a dev requirements file lib/requirements/dev.txt that starts with this:
-r requirements.txt
-r ../client/requirements/requirements.txt
-r ../interfaces/requirements/requirements.txt

Relative to the repo root, the mentioned files are at lib/requirements/requirements.txt, lib/client/requirements/requirements.txt, and lib/interfaces/requirements/requirements.txt. We invoke pip with pip install -r /full/path/to/repo/lib/requirements/dev.txt, and it's able to find and recursively include these files. If we invoke uv pip install the same way, it fails with
error: Error parsing included file in `/full/path/to/repo/lib/requirements/dev.txt` at position 0
  Caused by: failed to open file `/full/path/to/repo/requirements.txt`
  Caused by: No such file or directory (os error 2)

If I change directory, it becomes clear that the file is being resolved relative to the current working directory, whereas pip resolves it relative to the file containing the -r instruction.

Thanks for the report! I agree.

I need to do a bit of research on this -- I can't quite remember why we did it this way, but I thought it was intentional. Will take a look!

Note that pip-compile also matches pip behaviour, resolving relative to the file defining the path.

Okay, I think the reason I was confused is that relative directories (like -e ../..) are interpreted relative to the current working directory. But it looks like requirements and constraints files are interpreted relative to the containing file.
https://github.com/pypa/pip/issues/8765

Will fix tonight.


fix map erase

As title.
Thanks chaos for checking out this problem.

Good job, I found this as well, we don't need isErase actually. Close #270

Yes, this kind of reform is also ok，  see https://github.com/vesoft-inc/nebula-cpp/pull/8

Good job, I found this as well, we don't need isErase actually. Close #270

Yes, this kind of reform is also ok，  see https://github.com/vesoft-inc/nebula-cpp/pull/8


Fix PR doc build when the PR comes from a clone with a different name

What does this PR do?

The PR doc build currently fails when the PR comes from a clone with a name which is different from optimum-graphcore. This PR fixes that.
Before submitting

[x] This PR fixes a typo or improves the docs (you can dismiss the other checks if that's the case).
[ ] Did you make sure to update the documentation with your changes?
[ ] Did you write any new necessary tests?

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint.


binding datePicker

Is there any way to bind the datePicker to any new .date_picker elements added to the dom? Thanks!

You have to call the .create method whenever the new form element has been
injected into the DOM. The script can't do this automatically (well,
theoretically it could but only on browsers that support DOM mutation
events so no IE).
Regards,
Brian.
On Mon, Feb 13, 2012 at 4:14 PM, Michael Elfassy <
<EMAIL_ADDRESS>
wrote:

Is there any way to bind the datePicker to any new .date_picker elements
added to the dom? Thanks!

Reply to this email directly or view it on GitHub:
https://github.com/freqdec/datePicker/issues/6


Feat: wrap AudioBuffer with JS proxy

Before
RESULTS:
  - # pass: 115
  - # fail: 23
  - # type error issues: 20

After
(w/ https://github.com/orottier/web-audio-api-rs/pull/463)
  RESULTS:
  - # pass: 145
  - # fail: 13
  - # type error issues: 0

Just realized there is an issue with startRendering and decodeAudioData which do not return a wrapped object.
Need to change the wrapping approach to make it more like a mixin rather than use inheritance I guess (e.g. like
AudioParam.js)

Without looking into it, I just want to comment it is possible to both decrease in success and fail.
One newly introduced failure can block many subsequent successes.
I'm using the following trick to digest the results better:
(make sure to run npm run build before)
create file run-wpt.sh and chmod +x run-wpt.sh:
#!/bin/bash
echo $1
echo ~~~~~~~~~~~~~~~~~
node ./.scripts/wpt-harness.mjs --filter "$1" 2>&1 | grep -A 3 RESULTS
echo

dissect the full suite per directory:
ls wpt/webaudio/the-audio-api | xargs -I {} ./run-wpt.sh {}
check the specific file results in a dir:
ls wpt/webaudio/the-audio-api/the-oscillatornode-interface | xargs -I {} ./run-wpt.sh {}

Ah thanks!

Ok, finally got it working, it was a bit more complex than expected but paves the way for #84
main
RESULTS:
  - # pass: 5215
  - # fail: 628
  - # type error issues: 68

feat/Audiobuffer-proxy
RESULTS:
  - # pass: 5262
  - # fail: 603
  - # type error issues: 46

Cool!


check also deps added to HTML files (libs at CDN, etc.)

my web PHP project contains app/Resources/views/master.html.twig main HTML file where I add

  <script src=" {{ asset('assets/lib/jquery/jquery-3.3.1.min.js') }}"></script>
  <script src=" {{ asset('assets/lib/popper.js-1.14.6/dist/umd/popper.min.js') }}"></script>
  <script src=" {{ asset('assets/lib/bootstrap-4.3.1-dist/js/bootstrap.min.js') }}"></script>
...
  <link rel="stylesheet" type="text/css"
<EMAIL_ADDRESS>  <script<EMAIL_ADDRESS>

I am using composer for PHP dep management; NPM only for dev mode (for rebundling of CSS and live reload, etc.)

I guess that Dependabot could be configurable also to check static HTML or template file syntax to detect potential issues in those dependencies (the only way I can think of now would be setting up Dependabot to check both composer.json and package.json files, where I have to "duplicate" all the packages I use in HTML, but that would only work as a "reminder for manual update" - I would be able to merge only incomplete changes and I have to do adjustment of version in an HTML manually)

For local dependencies, it feels like a bundler like webpack or browserify is going to be the best solution, since that shouldn't have versions in the HTML.
This obviously doesn't work for CDN delivered content, so you can either include it locally and bundle it as above, or pin to a @latest if such a thing is provided (though if they do major version updates, it has the potential to break you, looks like jsdelivr offers @major which might work well). But if they're just npm modules, going the bundler route feels like the "right" way to solve this.

I understand that checking local dependencies and asset file updating might be a problem and it would need to also add deps locally - I added it to have 2 examples here. I do not want to use the @latest or @major and broke my project any time or implement tests in tens of projects because of that. I also do not want to use bundler bcs I do not want my users to redownload bundled jquery/momentjs for the 100th time again from another website...
I think that a simple configuration with the checked file path and "template syntax" should be enough for me to quickly configure dependabot so it can help me with maintenance and I can be notified about potential changes, short changelog summary, or link to docs for manual review.
I think it might be helpful enough to check for 100-500 most downloaded libraries from CDN in the file (not all NPM deps or CDN content).

I do not want to use the @latest or @major

Just saying hello since you mentioned me. 👋🏻 🤭

Did anything come from this? I would also like dependabot to chech static HTML file as we dont want to use a package maneber


Exported data from bucket does not appear when opening screen

When opening the screen, the exported data does not appear. Even having exported data (minutes or days ago), they do not appear when opening the screen.
Only when clicking on the "Export" button and when exiting and returning from the screen, is the data visible.
In this print, the previously exported database does not show. The exported data only appears after clicking on the export button... exit the screen and come back. Then, the data that already existed (exported 9 minutes ago) and the recently exported data (11 seconds ago) appear.

Fixed on 5.3.0


Thread 1: EXC_BREAKPOINT (code=EXC_I386_BPT, subcode=0x0)

When I launch my application I get the error
I have an M1 too

@jolebowski
I use this repository with latest Xcode 13.2.1 with iOS app target and there is no problem.
How about your version of Xcode, platform of the app, deployment target version or etc.
FIY: There is crash bug for deployment with Xcode 13.2, you needs to use Xcode 13.2.1.
Please check below link describing a bug number 86390060.
https://developer.apple.com/documentation/xcode-release-notes/xcode-13_2_1-release-notes


Add missing sum of multiples test

Closes https://github.com/exercism/todo/issues/55.

Nice! Thanks.


Extract validations module to a gem

In our project we are using successfully grape without validations. The idea is that you have to validate data in a controller layer (form objects or service objects, doesn't matter) and often we have to write rather complex validations anyway. So it doesn't make any sense to validate the got params twice: in the controller layer and in graper level. So I would suggest to extract the validations to a separate optional gem. What dot you think about this?

It's good idea to think about gems separation before 1.0.0...

It would be a good move.
As for me, it will also help to separate "setup validations and compose a documentation" logic from the params definition. (BTW, #validates has a bad method name, it should be smth like process_param_definition or similar)

:+1:

:+1:


Implements Actor Script direction testing

This feature implements a Actor script for conditionally testing a Actors current direction.
This pull request partially solves issue #33

Nice one! Works perfectly in all versions and matches on code style too. 💯
Do you mind just switching the label as requested in my comment to be "If Actor Facing Direction", then I can merge this.

@chrismaltby Done, I have now renamed the label

Awesome! Thanks! Just to let you know, the event names are now coming from /src/lang/en.json to support localisation to new languages, I've added this label in commit 3ffdd595acca86e67a133d21dfa76657eac9310c.


Added instructions for the installation script

Added instructions for using the installation script on RHEL-based operating systems.

Thanks!


ChangeLog (ObjectChange) - Add object snapshot activation feature (i.e "rollback")

As ...
P.D. - Plugin Developer
I want ...
Object snapshot (version) activation/restore ("rollback" so to speak) feature to be added to ChangeLog (ObjectChange) implementation
So that ...
Any object can be easily restored ("rolled back") to any particular past snapshot at any given moment
I know this is done when...
Both ChangeLog table view (a list of object's change log records) and detail view (particular change log's detail view) have Restore (or Rollback) button, as well as an ObjectChange method (restore() or rollback()) is added - that restores object to that particular state.
ADITIONAL DETAILS
At a high level, this request - is to add a "restore" (or "rollback") ChangeLog feature that would allow restore an object to any particular past state preserved in (represented by) an existing ObjectChange record. In other words - past object's "snapshot" (object_data) would be used to update model's object attributes. A button can be added to both ChangeLog's table view, and detail view - to allow restore from the UI, and a new method can be added that exposes same functionality through Python code.
Optionally (but desired), additional version (or snapshot_version) attribute can be added to ObjectChange model - that can be used to identify each ObjectChange record as an object's "version", and used as an argument passed to restore() (or rollback()) method. This can be an integer (auto-increment, auto-assigned), starting at 1 (new object create) and being incremented (2, 3, etc.) with each update.
Optional - Feature groups this request pertains to.

[ ] Automation
[ ] Circuits
[ ] DCIM
[ ] IPAM
[ ] Misc (including Data Sources)
[ ] Organization
[X] Plugins (and other Extensibility)
[ ] Security (Secrets, etc)
[ ] Image Management
[ ] UI/UX
[X] Documentation
[ ] Other (not directly a platform feature)

Database Changes
Existing extras.models.change_logging.ObjectChange model should be updated:

New attribute (version or snapshot_version) added
New method (restore() or rollback()) added

External Dependencies
No response

Something tricky to consider when thinking about this feature is foreign-keys. If an IPAddress "<IP_ADDRESS>/24" is associated with "Device A" interface "Eth0" at time X, but later reassigned to "Device B" interface "Eth1" at time Y, we may not be able to roll back the IPAddress to time X if Device A or Eth0 no longer exists in the present time.

Yes, this can be a limitation to this feature's implementation (there may be more limitations like this - like underlying model changes and some fields no longer there). But... at least a "best attempt" can be made; if restore is possible (model is unchanged, foreign keys are unchanged, etc.) - great; if not - en error message can be generated informing that it is not possible to restore the object (and give an explanation).


Add a comparison method that will compare Nullibles by value.

For example
func NullIsEqual[T comparable](a gonull.Nullable[T], b gonull.Nullable[T]) bool {
	// If both are not present, they are considered equal
	if !a.Present && !b.Present {
		return true
	}
	// If both are present and values are equal, they are considered equal
	return a.Present && b.Present && a.Val == b.Val
}

func NewNull[T comparable](value T) gonull.Nullable[T] {
	return gonull.Nullable[T](gonull.NewNullable(value))
}

Hey @benjaminlgur
Thank you for opening an interesting issue.
Could you write a real-world use case? What's the benefit of having NullIsEqual func if we add it? What problem it solves?


Affected test decision maker - can it be more discerning that whole assembly please?

Context
There's two tests in https://github.com/paul-hammant/Project_Migration_To_Nx-DotNet_Example.
If i do npx nx test my-app-test it runs both and they pass.
If I change test #2 to definitely fail, and run the same command, the failure is noted:

Issue
But both tests in the assembly were run, even the unaffected one.

Request
Can the test runner, in the affected determination elect to run a subset of tests when that's appropriate?
Dotnet.exe's test runner side has a --filter option which could be used if it is not already.

Nx operates on the project level, and for the most part our executors simply wrap the dotnet cli without adding functionality (except that they run through Nx).
We don't add functionality generally, s.t. folks can still use the IDE tooling they wish and get consistent results when the executors are called in a CI process.
This is kind of an interesting case, where we may be able to do this some day but I don't think its a priority. There's some discussion here as to why this is hard from a CLI tool: https://github.com/Microsoft/vstest/issues/294 If vstest was to add support, we definitely would as well.

I'l read that other bug report, but my initial thinking is that "re-run tests that previously failed" is different to what I'm asking for here.

Its a slightly different problem domain, but pretty similar solution space. As an aside, for specifically this problem, we don't do anything related to parsing the C# AST or trying to determine control flow and such. Determining which tests were actually affected is non-trivial, even given the set of file changes.

I don't think AST is the only. Nor is a full Test Impact Analysis via coverage tools. After mucking around trying to make a proof of concept in Python, I agree that it is hard and maybe something for much later down the line

I'm going to go ahead and close this out, I don't think its something that we will get to. Determining tests affected by C# changes is a hard problem, and outside of the scope of this plugin. If there is a tool that accomplishes that, which we may integrate, I can revisit this.
For the most part, you can think of nx-dotnet as glue, or an integration piece, between the nx CLI and the dotnet cli. For the most part, we don't add new functionality on the .NET side.


Subdomain status

In testing, usually the service request is being made to a path based route.
It would be create if this could be altered to a subdomain toggle for the status codes.
https://200.httpstatus.us/some-randome/path
https://503.httpstatus.us/some-randome/path

I can see the point of what you're trying to achieve, but I'm not sure how technically feasible it'd be to implement. The app would need to not just be aware of the first segment of the path, but optionally aware of the subdomain and "fake" that as part of the path.
Then it begs the question, what would happen if you did https://200.httpstat.us/500, is that going to give you a 200 or a 500 response code?
The app does ignore anything in the path after the status code provided, so you can do https://httpstat.us/200/some-random/path and get back a 200 response, so would it be possible in your scenarios to include set the "host" that's being injected to https://httpstat.us/200 not just https://httpstat.us?

Ya that makes sense.  I didn't realize you could have a wildcard path after the status code.
Yes what you are explaining I can implement as a workaround.  Currently my team is using the HttpClient.BaseAddress and setting it just to the host, allowing the client to default to https protocol.  So it is double to alter that.


Always accept and store zero content keys

What was wrong?
How was it fixed?
To-Do

[ ] Add entry to the release notes (may forgo for trivial changes)
[ ] Clean up commit history

Closing this in favor of #896.


leafcli --watch: leaf-watcher not found

OS: Ubuntu 22.10
PHP: 8.1.7
NPM: 8.18.0
LeafCLI: 2.7.0
LeafCLI installed from composer with
composer global require leafs/cli
When i star a project and serve with
leaf serve --port 8080 --watch
It returns

* Leaf Watcher is required to enable monitoring. Install package?

But if i reply Y, it return this

Installing leaf watcher...
changed 114 packages, and audited 115 packages in 1s
18 packages are looking for funding
run `npm fund` for details
4 moderate severity vulnerabilities
To address all issues (including breaking changes), run:
npm audit fix --force
Run `npm audit` for details.
sh: 1: leaf-watcher: not found

Installing via npm manually using npm install -g @leafphp/watcher the installation go to end, but when i serve the project it return missing watcher.

Hi @EnMaster, after running npm install -g @leafphp/watcher, are you able to successfully run leaf-watcher?

Nope, It say leaf-watcher missing.

Oh okay, this seems to be a problem with npm, not leaf CLI specifically. The most likely cause of this is that your npm path isn't set correctly. You can check out these articles for some more context or help

<EMAIL_ADDRESS>https://stackoverflow.com/questions/15843199/globally-installed-npm-packages-not-working

Great! leaf-watcher now start!


Updated HDInsight script to Databricks.

OPS Build status updates of commit 42a0b0c:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

academic-services/graph/TOC.yml
:white_check_mark:Succeeded

academic-services/graph/index.yml
:white_check_mark:Succeeded

academic-services/graph/samples-azure-databricks.md
:white_check_mark:Succeeded

academic-services/graph/samples-azure-hdinsight.md
:white_check_mark:Succeeded

academic-services/graph/tutorial-azure-databricks-hindex.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Cannot decrypt initial email

Please search to check for an existing issue (including closed issues, for which the fix may not have yet been released) before opening a new issue: https://github.com/k9mail/k-9/issues?q=is%3Aissue
Expected behavior
K9 should decrypt email
Actual behavior
When I open this person's email open keychain opens, asks me for my password but the email is not decrypted.
I have open keychain installed and selected as cryptography. This had been working up until I updated to 5.203.  If he  seems me a reply chain then when it is in part of a conversation it will decrypt but it will give me a red lock with 3 red dots.  I saw comments in another bug report from a month ago where someone else had this same issue. https://github.com/k9mail/k-9/issues/2147
The comment by richfirst sounds like what is happening to me.
Steps to reproduce

Someone seems an encrypted email
Open email
Enter password for open keychain
No decryption

Environment
K-9 Mail version: 5.203
Android version:
6.0.1
Account type (IMAP, POP3, WebDAV/Exchange):
Pop account

You'll need to be more precise for its to figure out the problem here. It's there an error message?

There is no error message.  Is it advised to load screenshots and share them say, through Google Drive or Imgur?  If there is no safety risk there I will photoshop them so any sensitive data is removed (email address, etc) and then upload them so you can see what I am talking about.
Just to be more precise, for the last 6 months I have used K-9 with OpenKeyChain and it has worked perfectly.  I updated to 5.203 and all of a sudden for 1 individual; Nali Ahmed, I can no longer decrypt his initial email through K-9.  If we send an email chain back and forth (reply, reply, reply) then it will decrypt his subsequent emails but give me the red lock with 3 dots.
Here is the email I wrote to the openkeychain mailing list that I have not received a reply on yet.  However, I believe this to be a K-9 issue because I can decrypt the email if I copy and paste the encryption to openkeychain.
Hello,
This is my first time using a mailing list. I can send screen shots of everything if you would like. (Not sure if a mailing list can handle attachments) I know a little bit about encryption but I am no expert.  I would still classify myself as a beginner so please keep any answers non-technical and explain in detail.

I have an android phone with openkeychain K-9 email installed.
In K-9 email I have openkeychain selected as the OpenPGP app in the Cryptography option 3. In openkeychain I have my contact selected with his key confirmed.  It says Linked System Contact as well.
This particular contact has multiple keys.  I have the correct key installed.

The issue:
When I open up his initial email in K-9, OpenKeyChain comes up like it's supposed to and asks me to put my password in.  I do this.  It acts like it is decrypting the email however the email is not decrypted. The lock is gray and there are no 3 dots next to the lock.  I can copy and paste the encryption to the openkeychain app and it will decrypt it and I can then read it.
Subsequently, if I write him an email and then he replies back to me the decryption process works.  However, the lock is red and the 3 dots next to the lock are red.  When I tap on the red lock it says, the email was encrypted but not signed. There is no signature, this message may have been intercepted.
When I write him an email it automatically shows a green lock in K-9 with 3 green dots next to the lock and he can successfully decrypt the email without an issue.
Troubleshooting Steps:
I have uninstalled, reinstalled both K-9 and OpenKeychain.  I have deleted his key and re-imported his key and verified that I have the correct key.
I have linked up his contact in OpenKeychain to ensure that his key is correctly connected to my contact in my contact list.
Decrypting his emails on my computer works perfectly.  It is only using the K-9 app and the openkeychain to decrypt his emails that doesn't work properly.
I was able to decrypt his email for the last 6 months and then all of a sudden I wasn't able to decrypt his emails any further from my phone after I updated to 5.203.
I don't understand what is happening nor how to correct this issue.  I hope that someone reads this and can assist.
Thanks,
Wayne Leiser, I.T. Director
B2B I.T. Solutions
941-923-6280
www.b2b-its.com
M – F: 9am – 5pm EST

No other suggestions, replies or answers?

Hi, sorry for the late reply. When the mail isn't decrypted, I'm assuming what is displayed is something like "BEGIN PGP ENCRYPTED MESSAGE ..."?
This seems to be an issue of an encryption format we don't handle correctly. Can you ask the person whose mails are affected in this way to send an email to me? -><EMAIL_ADDRESS>pgp 0xdeadfa11. that would be super helpful.

Never even seen you write back. I gave up and went to Mail Droid instead.  I haven't utilized the encryption feature yet on this but it does support it.
Wayne
Sent from Outlookhttp://aka.ms/weboutlook

From: Vincent Breitmoser<EMAIL_ADDRESS>Sent: Wednesday, March 22, 2017 6:00:55 AM
To: k9mail/k-9
Cc: scrfix; Author
Subject: Re: [k9mail/k-9] Cannot decrypt initial email (#2349)
Hi, sorry for the late reply. When the mail isn't decrypted, I'm assuming what is displayed is something like "BEGIN PGP ENCRYPTED MESSAGE ..."?
This seems to be an issue of an encryption format we don't handle correctly. Can you ask the person whose mails are affected in this way to send an email to me? -><EMAIL_ADDRESS>pgp 0xdeadfa11. that would be super helpful.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/k9mail/k-9/issues/2349#issuecomment-288350854, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AD6PI6IQ_zv-u720eXgIaGpQSn-XaG2Sks5roPFXgaJpZM4MTxyI.


ci: create release automation

Closes #40

merging based on @cloudhan's approval and addressing @jsharpe's comment


export for production  faulty

Exporting a sketch with this part to pdf, will result in misplaced hole positions.

Looks like svg-pdf converter does not handle transform translate and rotate properly.
I use them pretty heavily.
I'll try applying them to the paths points so they can be removed.
Can't use svg symbols. Can't use svg transformations. Boo!!

Heyho, did you already look into that? I would like to export an idea for etching in the next few days ;)

Version that ships with Fritzing 0.9.3b includes a fix.

Hey that's great to hear! I'm still seeing the problem though... at least with "male below".
I went ahead and merged your current pull request https://github.com/fritzing/fritzing-parts/pull/62 locally. The WeMos group has two parts with three leg options each. Despite there are no distinguishable differences, they seem to come from different files WeMos-D1-mini-female-headers-above_fixed.fzp and WeMos-D1-mini-male-headers-above_fixed.fzp.
Here's what I tested: two parts times three leg options -> Export to pdf
Only 1+2 out of 6 are exported in the right way.
etch_copper_bottom.pdf
etch_silk_top.pdf
Long story short, seems like

WeMos-D1-mini-female-headers-above_fixed.fzp can be deleted?
"male below" still needs to be fixed!?
"female below" or "no headers" may be added?

Sorry just realized that "male below" was something in the old version still in my temporary folder.  WeMos-D1-mini-female-headers-above_fixed.fzp + "male above" is still a problem.

There was originally 4 variants, each with different header configurations.

female headers above
male headers above
male headers below
no headers
There was a bug in the hand crafted .svg, which looked fine in modern browsers where it was tested, but when parsed by the svg parser used in the app, was ignoring newer svg features. The fix was to move some of the nested transformations from the parent <g> down into the children. I was doing this by hand to avoid illustrator and/or inkspace injecting tons of junk.

Looks like when my part was added to fritzing-parts, they did not notice the 4x variants and squished them into 2x, and labelled them "fixed". I'll need to compare their changes with mine to see if I need to add any more fixes.
Is tacking on "_fixed" to the moduleId the best pattern? What if it gets fixed again? And again? Isn't that what the <version> is for?

Thanks for your work!
I was wondering about the "_fixed" too...
Seems like you'll have to open yet another pull request with all four variants and with the right svgs ;)
I'll go ahead an close the issue.


Wrong message length when read multiple chunk

I tested this library with OvenMediaEngine and see that it parse the wrong RTMP command input in case of multiple chunk.

The data sent from server (total 259 + 2 bytes):
128 bytes + (1 byte (-61)) + 128 bytes + (1 byte (-61)) + 3 bytes
128 is the chunk length, (-61) is the byte between 2 chunk.
Length of data only: 259
The messageLength in the header: 259 (2 chunk bytes is not included)

But the current implementation of this method treats 259 as data length + chunk bytes.
    private fun getInputWithoutChunks(input: InputStream, header: RtmpHeader, chunkSize: Int,
      commandSessionHistory: CommandSessionHistory): InputStream {
      val packetStore = ByteArrayOutputStream()
      var bytesRead = 0
      while (bytesRead < header.messageLength) {
        var chunk: ByteArray
        if (header.messageLength - bytesRead < chunkSize) {
          //last chunk
          chunk = ByteArray(header.messageLength - (bytesRead - 1))  // <-- here
          input.readUntil(chunk)
        } else {
          chunk = ByteArray(chunkSize)
          input.readUntil(chunk)
          //skip chunk header to discard it, set packet ts to indicate if you need read extended ts
          RtmpHeader.readHeader(input, commandSessionHistory, header.timeStamp)
          bytesRead++
        }
        bytesRead += chunk.size // <-- and here
        packetStore.write(chunk)
      }
      return ByteArrayInputStream(packetStore.toByteArray())
    }

So 1 byte at the end is missing.
Should header.messageLength include chunk bytes or it's bug of the client library?

Which command is wrong?
Can you share me a logcat?
Can you tell me how to configure server to reproduce your case?

Command "_result" is wrong.
To set up the server, you can use docker as https://airensoft.gitbook.io/ovenmediaengine/getting-started
There is nothing much in the logcat.
Because 1 byte is missing, it cannot find the AmfObjectEnd so it jump to an infinite loop.

I did a commit for it:
https://github.com/pedroSG94/rtmp-rtsp-stream-client-java/commit/d11357e62ebd8d2bf28d0992ec4f8c055caadbb8
I tested using OvenMediaEngine docker and it is working for me. Let me know if this commit resolve your problema dn I will update library version

The chunk problem is resolved.
But can you stream successfully?
Because I face other problem related to encoder/h264 profile... (I'm not sure) not supported by server.

The server output (reproduce stream in a player) is not working for me with ffmpeg, OBS or my library. So I think this is server error.
So much coincidence that OBS and ffmpeg is not working well.

For me OBS and ffmpeg work.

ffmpeg:

ffmpeg -re -i ./input.mp4  -loglevel verbose -b:v 6M -maxrate 8M -bufsize 8M -g 24 -pix_fmt yuv420p -c:a aac -pes_payload_size 0 -vcodec libx264 -forced-idr 1 -g 24 -profile:v main -f flv rtmp:<IP_ADDRESS>/app/stream

OBS: you can follow the setting here https://airensoft.gitbook.io/ovenmediaengine/getting-started

I think oven support h264 aac and not high profile.
There is a issue here https://github.com/AirenSoft/OvenMediaEngine/issues/467

After few tests with your recommended command. I could find that the problem is not related with video profile.
I'm using a video with high profile and it is working with this command:
ffmpeg -re -i ./BigBuckBunny.mp4 -c:a aac -vcodec libx264 -f flv rtmp://<IP_ADDRESS>/app/stream

Also, I tried set main profile in my library without luck.
I need investigate more about it

Oven is open source so I can check the source code but I don't have knowledge about video codec so I'm not sure what's wrong.
And It's true that BigBuckBunny.mp4 don't need to change profile but other movie files need.

I don't know the reason so I think we should open an issue in github server and wait for a response to know where is the fail.
If it is a fail in my library I can fix it after know the possible reason.
meanwhile I can continue with test to try find the reason

I tested with 2 streaming android apps: Larix Broadcaster and OvenStreamEncoder (You can download both apps in the play store totally free if you want test it).
The first one is maybe one of the most knowned streaming platform
Neither works. This is really suspecious for me that the app provided by OvenMediaEngine is not working. I will do my last try to find the error tomorrow and write an issue.
This really seem a server error that fail in few configuration because ffmpeg and OBS is not working if you don't configure stream in a special way.

I opened an issue in OvenMediaEngine github:
https://github.com/AirenSoft/OvenMediaEngine/issues/476
I will wait for feedback.

Finally solved:
https://github.com/pedroSG94/rtmp-rtsp-stream-client-java/commit/cf24d534a87f50f9dc37dd9e59c272f339fddc3b
Test it and let me know if works for you

Thank for the fix.
It worked ❤
I close this ticket.


Use OSS on FreeBSD as well

-lossaudio is not needed on FreeBSD
Also CMAKE_SYSTEM_NAME should contain NetBSD without any suffixes so .* is not needed in MATCHES. I've not really checked it on NetBSD though.

Thanks!

No, thank you!
Would be nice of you to tag new minor release to simplify packaging. There was new functionality as well as I can see.


PowerShell prefix removed

Removed PowerShell command line prefix to copy the shown cmdlet properly.

@Apoc70 : Thanks for your contribution! The author, @curtand, has been notified to review your proposed change.


Move edge slice type checks to store

Move isDate isNumeric currentInstance to store in EdgeSlice component
https://github.com/multinet-app/multimatrix/pull/372#discussion_r809559923

I just meant the svg width. The window for the lines I commented on shows too much info...


OCM-174: Added GitHub IDP provider attrs

Created new idps package. In future PRs will move all the providers
to this package.

Added ability to create a github idp.

Added an attribute validator helper struct for easy validation
construction.

Added subsytem tests

Validations are based on ROSA CLI

Missing subsystem tests.
Lets hold it for now.

@Manuel Dewald Can you review that PR?

@NautiluX @vkareh can you review this PR?

/hold

/lgtm

/unhold

/retest


[Task]: Investigate the performance drop occured in SwanLake migration of BCentral

Description
This is a continuation of https://github.com/wso2-enterprise/internal-support-ballerina/issues/187
Describe your task(s)
We need to identify the proper reasons and solutions for mentioned performance drop.
Related area
-> Compilation
Related issue(s) (optional)
https://github.com/wso2-enterprise/internal-support-ballerina/issues/187
Suggested label(s) (optional)
No response
Suggested assignee(s) (optional)
No response

For the point 1 of the comment https://github.com/wso2-enterprise/internal-support-ballerina/issues/187#issuecomment-1299995623

1. We changed the compiler frontend to pass the actual type instead of `ballerina/lang.array.0:Type` in order to resolve the problem mentioned in [Swan Lake migration of BCentral results in significant performance drop  #187 (comment)](https://github.com/wso2-enterprise/internal-support-ballerina/issues/187#issuecomment-1278658819). Then we run several examples to check the performance change. Those examples are

   * Simple array push (example mentioned in [Swan Lake migration of BCentral results in significant performance drop  #187 (comment)](https://github.com/wso2-enterprise/internal-support-ballerina/issues/187#issuecomment-1278658819))
   * Object array push which is equivalent to `concatQueries` function.

   For these cases, we did not see a performance improvement. With and without the change, the execution time is almost the same.

When the type checking is happening multiple time (inside a loop) directly passing the original type will save some more time which is going to spend at runtime type checker.
Consider the following cases,
type U int|string;

public function main() {
    U[] ulist = [];
    foreach int i in 0...1000000 {
        U u1 = i;
        U[] uarr = [u1];
        ulist.push(uarr[0]);
    }
}

execution time: 1.115958766s
type U int|string;

public function main() {
    U[] ulist = [];
    foreach int i in 0...1000000 {
        U u1 = i;
        U[] uarr = [u1];
        ulist[i] = uarr[0];
    }
}

execution time: 0.767877633s
The first one uses an arraylib function push and have a higher execution time than other one. Even though the underlying execution path for adding elements to the arrays in ArrayValueImpl is quite similar, the one uses push took more time since it uses the reference type Type defined in the array.bal. IMO passing the resolved original type there may causes some improvements in the performance.


Segfault with WebSocket

After update vibe.d to v0.7.27-beta.1-7-g5dff616, suddenly my app crash.
I use WebSocket, and the problem is on
void getWS(int ct, string action, scope WebSocket socket) {
  auto t = runTask({
       logInfo("CONN %s", trayNum);
       while (socket.connected) {
          ....
       }
  });

  while (socket.waitForData) {   // <- issue is here
       ....
  }
  t.join();
}

The error was generated in source/vibe/core/drivers/libevent2_tcp.d line 297
  if (dataAvailableForRead) return true;
  if (m_ctx.state != ConnectionState.open) return false;

If I add an assert:
  if (dataAvailableForRead) return true;
  assert(m_ctx !is null, "mctx is NULL!!!");
  if (m_ctx.state != ConnectionState.open) return false;

I get this message:
Task terminated with unhandled exception: mctx is NULL!!!
core.exception.AssertError@source/vibe/core/drivers/libevent2_tcp.d(302): mctx is NULL!!!

I solved my problem with this patch:
                if (dataAvailableForRead) return true;
-               if (m_ctx.state != ConnectionState.open) return false;
+               if ((m_ctx is null) || m_ctx.state != ConnectionState.open) return false;

                acquireReader();

Thank you

Fixed by 4b192bde (I hit the same issue yesterday). Thanks for investigating!

Thank to you for your great job.


Data access by field index is broken in PgRow.

PgRow's get***(int index) methods are broken because the order of columns is messed up in PgRow.columns and PgRow.pgColumns.

It worked for me in version 0.6, but after upgrading to a newer version it stopped working. I think this happened because of the replacement of LinkedHashMap with a HashMap in PgConnection to store information about columns. LinkedHashMap guaranties the order of the inserted elements, while HashMap does not, according to Java specification.

I can confirm @daemas findings. I was indeed able to fix this issue by changing the HashMap back to a LinkedHashMap in PgConnection.getColumns().

https://github.com/alaisi/postgres-async-driver/pull/51


21.4.0 Improved C# workflow

One error and some warnings appear when we serialise and open a model though the API. FEM-Design can still open the file though.

@xRadne

Test
Result

FemDesign.Tests
OK

C# Example
OK

Gh Global Tests Analysis
OK

Gh Global Tests Deconstruct
OK

Gh Global Tests ReadWrite
OK

File on my Local Machine have been used to test each issue.
Let me know if there is something that I have missed.


haddock-library-1.1.1 introduces conflicts for Attoparsec

I was trying to build the latest version of pandoc using cabal install; however, I now have conflicts with Attoparsec due to the vendored version you now provide.
Please see https://github.com/jgm/pandoc/issues/1526#issuecomment-69530777 for some more details about the issue.

We vendor attoparsec as that's what we use for parsing, however as we ship with GHC and are expected to work inside GHC tree (i.e. with GHC HEAD and even local tree changes), we can not depend on anything that doesn't live inside GHC tree. The hack is to bundle a stripped down version of attoparsec with Haddock.
Having said that, I don't know what to do about your problem. Maybe we can just rename the modules we vendor and spirit the problem away. I think a quicker and more robust solution would be to use the GHC pragma PackageImports which allows you to specify which package you want the module to come from. This is something for you to try ;).

I would have assumed that non-exposed modules can have what ever name we prefer, without effecting other packages?
Is this a bug in GHC or cabal?

Can we close this?

Not Sure. Currently we include an attoparsec subset as convenience lib in haddock-library. Not sure how these interfere. /cc @hvr

I think close.  What ever the issue was, I don't think there is anything wrong Haddock.  Naming conflicts with non-exposed modules is something very common, this is why there are not exposed in the first place.

As @denisshevchenko stated:

Thank you very much, John! I reinstalled cabal-install <IP_ADDRESS> - and now all works fine.

Closing.

As @denisshevchenko stated:

Thank you very much, John! I reinstalled cabal-install <IP_ADDRESS> - and now all works fine.

I got that wrong, the thread is about multiple issues.  I still vote for closing.


fixes #103

just readme update.

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

We are no longer maintaining this project and as such are arching all PRs.


Add usage examples

To constructor pages at minimum, and maybe everywhere. I'm thinking a triumvirate of Usage, Examples, and Implementation here right now.

This is done everywhere except for constructors, where #53 says it better.


Capability platform renamed to platformName in W3C

What are you trying to achieve? (Expected behavior)
Obtain the platform name using $driver->getCapabilities()->getPlatformName();
What do you get instead? (Actual behavior)
An empty string
Facebook\WebDriver\Remote\DesiredCapabilities Object
(
    [capabilities:Facebook\WebDriver\Remote\DesiredCapabilities:private] => Array
        (
            [acceptInsecureCerts] =>
            [browserName] => firefox
            [browserVersion] => 70.0.1
            [moz:accessibilityChecks] =>
            [moz:buildID] =><PHONE_NUMBER>1342
            [moz:geckodriverVersion] => 0.26.0
            [moz:headless] =>
            [moz:processID] => 92026
            [moz:profile] => /var/folders/tj/065fspd94551xb8p70m46tch0000gn/T/rust_mozprofile2LLLVd
            [moz:shutdownTimeout] => 60000
            [moz:useNonSpecCompliantPointerOrigin] =>
            [moz:webdriverClick] => 1
            [pageLoadStrategy] => normal
            [platformName] => mac
            [platformVersion] => 19.0.0
            [rotatable] =>
            [setWindowRect] => 1
            [strictFileInteractability] =>
            [timeouts] => Array
                (
                    [implicit] => 0
                    [pageLoad] => 300000
                    [script] => 30000
                )

            [unhandledPromptBehavior] => dismiss and notify
            [webdriver.remote.sessionid] => 6329ccc8-4de8-9a41-a01c-37dec81991b5
        )

)

How could the issue be reproduced? (Steps to reproduce)
Rerproduced putting this in a unit test for now:
        error_log(print_r($this->driver->getCapabilities()->getPlatform(), true));
        error_log(print_r($this->driver->getCapabilities(), true));

W3C:
https://www.w3.org/TR/webdriver/#capabilities

Capability
Key
Value Type
Description

Platform name
"platformName"
string
Identifies the operating system of the endpoint node.

JSONWire:
https://github.com/SeleniumHQ/selenium/wiki/JsonWireProtocol#capabilities-json-object

Key
Type
Description

platform
string
A key specifying which platform the browser is running on. This value should be one of {WINDOWS|XP|VISTA|MAC|LINUX|UNIX}. When requesting a new session, the client may specify ANY to indicate any available platform may be used. }

I've additionally discovered differences between how Chrome + Firefox (and presumably others) report the platform.
Chrome
            [platformName] => mac os x

Firefox
            [platformName] => mac

Well, so far we are able to convert user-set capabilities from JsonWire to W3C (#678). However not vice versa (retrieve W3C capabilities after session creation and set them to the DesiredCapabilities object).
I'm thinking how we should resolve this - because implementing full-featured convertor from W3C to JsonWire seems like a lot of work with maybe not so big benefits.
This will definitely have to be resolved in 2.x (where we will only support W3C), however for now, I suggest maybe implementing conversion just for the platform/platformName, and leave other incompatibilities be with reference to experimental support of W3C in php-webdriver 1.8.
What do you mean, @andrewnicols ?

Ok, so have a look at #695


Next provides two URLs with different behaviors when page names are capitalized

E.g if pages/index.js is renamed to pages/Index.js, it seems HMR doesn't work any more.

@sedubois It only doesn't work for the index. Good catch

Is this only the case for files with the name index.js?

@CompuIves no, symptoms are the same with other page names, e.g pages/About.js.
But actually the bug description is inaccurate. If I create pages/About.js and run next:

data is visible at both http://localhost:3000/About and  http://localhost:3000/about
if I change the code, HMR works in http://localhost:3000/About but not in http://localhost:3000/about
even if I manually reload http://localhost:3000/about, it does not show the new data

IMHO it's common practice to capitalize React component files, but they should only map to lowercase URLs (with proper HMR).

@sedubois
It does seem common practice to capitalize React component files. I've adopted this practice with one additional caveat: Capitalize files for reuseable components only.
A route file usually behaves as an entry point or container that has a very specific purpose, rarely ever being used more than once. Following the above practice, we wouldn't capitalize a route file.

@eezing agreed, and now I stick to that. I opened the bug however, because it's still a bug 😄 and can get people confused


delta/dataset/image: use XDG cache dir

The cache in Github Actions gets stored in the XDG home directory. I think it makes sense to use the same directory for tests?

Do we need to add this to all datasets with this new logic? Can you check.

Thinking about it probably makes more sense to use the Cargo workspace directory (this is new to me!). $HOME probably makes more sense for application data, while test data is ephemeral and can be disposed of easily.
Instead I changed the GitHub actions to properly use the Cargo workspace directory (same as the GitHub workspace directory). Hope that makes sense!


[Theme] Defer session cookie creation to speed up server start

WHY are these changes introduced?
~Fixes https://github.com/Shopify/develop-advanced-edits/issues/321~
The issue is already fixed, this PR is still a perf improvement so I'm keeping it open.

WHAT is this pull request doing?

It delays the creation of session cookies until a minimum set of files required by SFR to render is uploaded. ~Without this, we get errors because we try to create the session too early.~
How to test your changes?
~Without the changes in this PR, try shopify-dev theme delete -d -f   &&  shopify-dev theme dev --dev-preview.
The process will fail because we try to create the session upfront but SFR can't create the session before certain uploading files.~
~With the changes in this PR, the dev server should start normally.~

@karreiro do you think we should merge this for perf boost? Or prefer to do it synchronously?


TRIVIAL: Improve Admin Documentation

This PR is a follow-up of #7087, fixing typos, styles, etc.
cc/ @big-andy-coates @ijuma
Committer Checklist (excluded from commit message)

[ ] Verify design and implementation
[ ] Verify test coverage and CI build status
[ ] Verify documentation (including upgrade notes)

retest this please

Rebased onto the latest trunk.

retest this please

Retest this please.

Rebased onto the latest trunk.
cc/ @omkreddy

Retest this please.

Retest this please.