Wrap the merchant text in the transaction field view

Details

Currently, we only show merchant as single line in the transaction field view which will be truncated if it's very long. This PR makes it multiline.
Fixed Issues

$ https://github.com/Expensify/App/issues/41925
PROPOSAL: https://github.com/Expensify/App/issues/41925#issuecomment-2102947901
Tests

Same as QA Steps

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

Offline tests

Same as QA Steps
QA Steps

Submit a new expense with a very long merchant
Open the transaction thread of the expense
Verify the merchant is shown as multiline instead of truncated

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

PR Author Checklist

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

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

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

[x] Android: Native
[x] Android: mWeb Chrome
[x] iOS: Native
[x] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[x] MacOS: Desktop

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

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

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

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is either coming verbatim from figma or has been approved by marketing (in order to get marketing approval, ask the Bug Zero team member to add the Waiting for copy label to the issue)
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

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

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

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

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

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[x] If the PR modifies the UI (e.g. new buttons, new UI components, changing the padding/spacing/sizing, moving components, etc) or modifies the form input styles:

[x] I verified that all the inputs inside a form are aligned with each other.
[x] I added Design label and/or tagged @Expensify/design so the design team can review the changes.

[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.

Screenshots/Videos

Android: Native

Android: mWeb Chrome

iOS: Native

iOS: mWeb Safari

MacOS: Chrome / Safari

MacOS: Desktop

The app keeps not responding when I open the transaction thread on Android, so I can't screenshot it.

@Ollyws great catch. I think since we display the description as multi-line on the confirmation screen, it makes sense to do that with the merchant as well. I don't see why one would be treated differently than the other.

That makes sense but I would like to confirm 1 thing. I see that we actually set the description max line to 2 on the confirmation page.
https://github.com/Expensify/App/blob/1ee5d03fc9c7530b2e1729a1a6feb8172115d1cf/src/components/MoneyRequestConfirmationList.tsx#L874
But because we render the description as HTML (markdown), the component doesn't support the max line.
Do we want to apply the max line to 2 for merchants? Or don't limit the max line?

Yeah, I kind of think the intention behind Merchant is for it to be one-line and typically as few words as possible. Is that what you think too @trjExpensify?
So I think I'm okay with this inconsistency, just in the sense that I think these are slightly different things.

Yeah, I kind of think the intention behind Merchant is for it to be one-line and typically as few words as possible. Is that what you think too @trjExpensify?

Yep, agreed. A description is more of a free form field to expand on the purpose, whereas a merchant is a one-liner and typically a couple of words.

@shawnborton @trjExpensify that makes sense to me, but this issue is specifically about making it multi-line-able. So if it shows up as two lines on the expense and the preview, should it still only show up as one line on the confirmation screen?
Or do you all think that it should never be multiline? (Maybe check out https://github.com/Expensify/App/issues/41925 for more details about why there's interest in making it multiline)

Ah, I see now. Yeah, I think it's cool if we make the confirmation screen match the preview card, so we should allow two lines worth of text to display before truncating. Does that sound more in line with what you are thinking?

Ah, I see now. Yeah, I think it's cool if we make the confirmation screen match the preview card, so we should allow two lines worth of text to display before truncating. Does that sound more in line with what you are thinking?

Yeah that's what I was thinking!

Ahh, I see. I'm okay with that. I was initially thinking that we should just have 1 line for merchant and 1 line for description regardless of how long it is, but I'm okay with what you're suggesting

So, if I understand correctly, the agreement is to limit the merchant to be 2 lines on both the preview card and confirmation screen?
Or no limit for the preview card but limit for the confirmation screen to 2 lines?

So, if I understand correctly, the agreement is to limit the merchant to be 2 lines on both the preview card and confirmation screen?

I think it's this, and I think we already have a 2 line max on the preview card? Or maybe we don't?

I think it's this, and I think we already have a 2 line max on the preview card? Or maybe we don't?

Yeah I'm pretty sure we already have that 2 line max on the preview card—and that's what we want.

So, if I understand correctly, the agreement is to limit the merchant to be 2 lines on both the preview card and confirmation screen?

Yes. Two lines max on the confirmation screen & preview. (This is what description should be doing anyways, but since we render as markdown/html, it doesn't obey the rules. But we don't need to dwell on that here.)

Sorry, it's not the preview card. What I mean is this one (idk what it is called, it's in the transaction thread)

I think we already have a 2 line max on the preview card? Or maybe we don't?

We are currently not limiting it by lines but by characters.
https://github.com/Expensify/App/blob/a03fecc80e5326a24644254f682441aa50585347/src/components/ReportActionItem/MoneyRequestPreview/MoneyRequestPreviewContent.tsx#L83-L84
https://github.com/Expensify/App/blob/a03fecc80e5326a24644254f682441aa50585347/src/CONST.ts#L171-L172

Sorry, it's not the preview card. What I mean is this one (idk what it is called, it's in the transaction thread)

Ah gotcha. For the transaction thread, I don't know that we need to truncate at all. It looks like description has a max-character limit of 500 characters, and we don't truncate at all in the transaction thread. I don't see any problem with following that same pattern for merchant. Anyone else?

I think we already have a 2 line max on the preview card? Or maybe we don't?

We are currently not limiting it by lines but by characters.

That works too—let's just do it the same way for both.

So, I vote for:
preview card and confirmation screen: limit 2 lines
transaction thread: no limit

I'm with you on this. I think we've run into problems in the past trying to truncate the preview with lines vs. characters, which is why it's truncated with characters. You're welcome to investigate, but my gut says it would be best to leave that alone.

Also for description, it's possible to have many lines like below

This is insane 😂 I had no idea you could do this. Coming from this issue, it seems like we'll likely be converting all those line breaks to spaces, and then truncating normally after that. So we might not need to worry about that situation here.

Ok, I have updated the merchant max line in confirmation screen to 2.

For the preview card, we are limiting it by character in https://github.com/Expensify/App/pull/42243

🚀 Deployed to staging by https://github.com/chiragsalian in version: 1.4.76-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/Beamanator in version: 1.4.76-7 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅


SPK Fails to install on DS218 (GUI and CLI)

Upgraded my DSM from 6.2 to 7 and not surprisingly it wiped out the kernel module. I uninstalled the wireguard package and went to reinstall, but Synology wont take the new SPK.
uname -a
4.4.180+ #41890 SMP Thu Jul 15 03:42:46 CST 2021 aarch64 GNU/Linux synology_rtd1296_ds218
ash-4.4# sudo synopkg install /tmp/WireGuard-rtd1296-1.0.20201221.spk
{"error":{"code":0},"results":[{"action":"install","beta":false,"betaIncoming":false,"error":{"code":261,"description":"invalid package info content"},"installReboot":false,"installing":true,"language":"enu","last_stage":"prepare_install","package":"WireGuard","packageName":"WireGuard","spk":"/tmp/WireGuard-rtd1296-1.0.20201221.spk","stage":"install_failed","success":false,"username":""}],"success":false}
Not sure what is going on here.

@erasedhammer99
The WireGuard package is installed.
The installation of the debug versions failed because, the "normal" one is already installed.
see:
https://github.com/runfalk/synology-wireguard#installation
after installation run
sudo /var/packages/WireGuard/scripts/start

Hi @erasedhammer99 ,
have you solved the problem?
I have a DS118 with the same CPU and I want to upgrade to DSM 7 without losing my working wireguard server.
Can you send me the working SPK, because I don't know how o build my own.
Thanks!

Hi @erasedhammer99 ,
have you solved the problem? I have a DS118 with the same CPU and I want to upgrade to DSM 7 without losing my working wireguard server. Can you send me the working SPK, because I don't know how to build my own.
Thanks!

Upgrading will blow away the existing wireguard no matter what (config files will stay).
Compiling your own following the instructions on the main page isn't too bad,I would recommend doing that. I can give you the spk I have, but in the future I wouldn't recommend getting software packages from people on the internet lol
That file is not actually a .gz (just to be able to upload here), so just rename it back to an spk.
WireGuard-Synology-rtd1296-1.0.20210606.spk.gz
.

Thank you!
I'll try it when I have time for this!


Document v1.1 known limitations

Fixes #1835

This change is

http://cockroach-docs-review.s3-website-us-east-1.amazonaws.com/f2ee0b6ffd419b369cb8bbedf50178e1ae91d82c/

http://cockroach-docs-review.s3-website-us-east-1.amazonaws.com/8ce279e9f171f01ad0b0ed5cc74e323dcaf3e5ca/

http://cockroach-docs-review.s3-website-us-east-1.amazonaws.com/58b9fe9ceee5e2f8e1d50809f29c0794cde2ffce/


MUMUP-2045 add description for MyUW logo - add NAME.ariaLabelTitle

:+1:  Friendly reminder you will have to do this in angularjs-portal here and here

Thanks!
On Thu, Aug 13, 2015 at 1:40 PM, Tim Levett<EMAIL_ADDRESS>wrote:

[image: :+1:] Friendly reminder you will have to do this in
angularjs-portal here
https://github.com/UW-Madison-DoIT/angularjs-portal/blob/master/angularjs-portal-home/src/main/webapp/js/app-config.js
and here
https://github.com/UW-Madison-DoIT/angularjs-portal/blob/master/angularjs-portal-home/src/main/webapp/js/master-app-config.js
—
Reply to this email directly or view it on GitHub
https://github.com/UW-Madison-DoIT/uw-frame/pull/9#issuecomment-130795554
.


adding generic mqs tests; testing memory impl

This change pulls some of the tests from #581 (towards #574), and runs them against the memory implementation.  Future PRs will test other implementations, and add more tests.

Fixed the CI on this one

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.2 out of 3 committers have signed the CLA.:white_check_mark: treeder:white_check_mark: jmank88:x: skwashdYou have signed the CLA already but the status is still pending? Let us recheck it.


plot_svc_decision_function does not seem to be working

I am trying to follow along the notebook on
Supervised Learning In-Depth: Support Vector Machines

ValueError: Expected 2D array, got 1D array instead:
array=[-0.75417405 -0.43660962].
Reshape your data either using array.reshape(-1, 1) if your data has a single feature or array.reshape(1, -1) if it contains a single sample.

Works fine after modification:
        my_array = np.array([xi, yj])
        my_array = my_array.reshape(1, -1)

print(my_array)
        P[i, j] = clf.decision_function(my_array)

PS: Loved the talk https://www.youtube.com/watch?v=HC0J_SPm9co
:)

There are few other observations:
Ipython 3D visualisations do not seem to work for me. I am using jupyterlab. I assume this has to do with the usage of latest jupyter packages instead of ipython.
========
import seaborn as sns; sns.set()
I do not see this being really used. Even though we import it.
========


Pass back test_run info with evaluate

I'm automating a flow with DeepEval but need to publish a Slack message with the test run link. This passes back the test_run info when I used the evaluate function.
But this changes the interface of the evaluate function.

@john-lemmon-lime addressed and out in 1.3.6 :)


Creating login with contained database user

Under Typical Scenario > If the person connecting will be connecting to only one database, the first step is to "Create a login...". The goal, however, appears to be to create a contained database user. Per prior information in this same page, and in the related doc on contained databases, I believe that a login is not required.
If my understanding is correct, it would help to either:

Remove the step for creating a login, or;

Elaborate as to why a login is recommended here, even when creating a contained database user

Thanks!

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

ID: 5712ad60-1a28-d778-aeb7-251b4cea45bf
Version Independent ID: 58fa9e44-f8a3-1eb0-d0dc-21e915d1868c
Content: Getting Started with Database Engine Permissions - SQL Server
Content Source: docs/relational-databases/security/authentication-access/getting-started-with-database-engine-permissions.md
Product: sql
Technology: security
GitHub Login: @VanMSFT
Microsoft Alias: vanto

Hi @mmannion - Thanks for bringing up this issue.
@AndreasWolter - What are your thoughts on this? https://docs.microsoft.com/sql/relational-databases/security/authentication-access/getting-started-with-database-engine-permissions?view=sql-server-ver15#if-the-person-connecting-will-be-connecting-to-only-one-database
@mmannion is right that there is no need to create a login for the Windows group if the intent is to create a contained database user, and the users are only connecting to a single database. My thoughts are to remove the step to create the login. Let me know if I'm missing something. Thanks!

thanks for catching that. As its written that does not make sense.
Either one creates a user based on a Login, OR a contained user.
But contained users are only available if the database is set to Containment = Partial. That has a few more implications than just allowing contained users. So it is a conscious decision to take.
Many enterprises want to keep control of who can access which databases on the server level.

Document has been updated and the steps to create the login has been removed.
@mmannion - Thank you very much for your feedback on this doc. We really appreciate your help! I apologize for the delay.


Crash when placing mechanical pipe on EnderIO dimensional transceiver

Hello
We had a server crash after placing an ultimate mechanical pipe onto a dimensional transceiver. I'll have to edit it out with MCEdit otherwise it crashes every time the chunks are reloaded.
Log: http://pastebin.com/4L6MdV7V
We're running the current dev build 9.2 with FML 2073. Enderio 1.10.2-<IP_ADDRESS>_beta with Endercore 1.10.2-<IP_ADDRESS>-beta
Let me know if this needs to go to EnderIO instead.

Fairly confident this is on EIO's end. Let me know if this isn't the case.


Support diffing against the original repo

The information is usually present.
For context for the use case, see https://rust-lang.zulipchat.com/#narrow/stream/318791-t-crates-io/topic/Link.20to.20where.20the.20sources.20of.20a.20crate.20are.20located.20in.20git/near/429819690

I can look into this, it sounds like something that could be useful.
Just for my understanding: do you mean that diff.rs should diff a released version of a crate with the commit in git?
One idea I had was to be able to diff a released version of a crate vs a specific branch. As in: compare v0.3.1 vs master. But that sounds like a slightly different use-case to the one that you are describing.

Just for my understanding: do you mean that diff.rs should diff a released version of a crate with the commit in git?

Yes, particularly the commit used when publishing.  On publish, cargo records

commit hash
path within repo

So long as the user set their repo in the metadata, we can diff against that commit.  Diffing against tags and branches could also be nice; I just don't have as concrete of use cases for doing so.

So, one way to get this done is:

parse the Cargo.toml in the diff version (left)
check if repository is in the metadata
in the right version dropdown, show an entry for git
if selected, attempt to fetch an archive of the commit (like https://github.com/$user/$repo/archive/aef66c462abe817e33aad91d97aa782a1e2ad2c7.tar.gz)
when doing the diff, have to account for the fact that the crate might live in a subfolder in the repo (in case of a cargo workspace)

Yes and for

when doing the diff, have to account for the fact that the crate might live in a subfolder in the repo (in case of a cargo workspace)

the vcs info contains that path

I've picked this up again, I might get something working this weekend. Currently need to do a bit maintenance work (replace yewprint with tailwind css, fix some visual bugs, get dark mode working, get mobile working) but it's on my queue!

I have a partial implementation of this. So far, it's a little ugly. You can check it out by this link:
https://diff.rs/repo/serde/1.0.209/files/Cargo.toml
(There is only a partial UI for it atm, no navigation bar, will add later. also the file browser doesn't fully work, it will route you elsewhere, will fix that at some point)
One of the issues I have come across is that there are CORS permission issues. I cannot fetch the archives from the frontend directly, neither for github nor for gitlab.
My current workaround is to use https://corsproxy.io/ as a man-in-the-middle to fetch the archives, which works. But I'm not super happy with it.
For this feature to work properly, we need to do one of two things:

Convince GitHub, GitLab and other code hosts to set CORS headers that allow the frontend to make GET requests (hard)
Host a small API server that is used to fetch them (maybe also caches them)

It seems to me that option 2 is the easier one, although it is a bit sad because it means diff.rs is not completely backendless (although, that is not the highest priority, just happens to be a cool property).


⚠ Bofrost.lu has degraded performance

In d09b167, Bofrost.lu (https://www.bofrost.lu) experienced degraded performance:

HTTP code: 200
Response time: 1730 ms

Resolved: Bofrost.lu performance has improved in ef8ae8b after 6 minutes.


sqe "poll" methods

Thanks for the PR! Sorry, I'll be moving slow for a bit on reviewing because I'm quite busy with non-Rust stuff right now.
Overall this looks good, thanks for writing a test as well. My main question is one you already raised on the related issue: should we define our own PollMask type or should we start depending on nix and use theirs.
nix only adds two really small dependencies other than itself: cfg-if and void. But nix itself is a pretty large dependency, covering a lot of different unix APIs. I wonder: are there other types we would want to pull from nix for other prep methods, or would it just be for the poll flags?

If i'm not wrong we can use:

https://docs.rs/nix/0.16.0/nix/sys/socket/enum.SockAddr.html for https://docs.rs/uring-sys/1.0.0-beta/uring_sys/fn.io_uring_prep_connect.html
https://docs.rs/nix/0.16.0/nix/sys/socket/struct.RecvMsg.html for https://docs.rs/uring-sys/1.0.0-beta/uring_sys/fn.io_uring_prep_recvmsg.html
https://docs.rs/uring-sys/1.0.0-beta/uring_sys/fn.io_uring_prep_accept.html is odd because:

The addrlen argument is a value-result argument: the caller must initialize it to contain the size (in bytes) of the structure pointed to by addr; on return it will contain the actual size of the peer address.

And they have useful enums like PollMask, MsgFlags, etc

Well that's certainly a lot of APIs so I think depending on nix makes sense. The behavior of accept is tricky since we would normally want to use a wide pointer with a length instead of a separate length.

For now we can just omit this params, and pass null instead, like nix does https://docs.rs/nix/0.16.0/src/nix/sys/socket/mod.rs.html#971


Update README.md and Wiki

As I went through the README, I was pleased to find that Rust was included in the Quick Start guide and the CLI usage example. However, I later discovered that Rust is not yet an implemented target. In that case, it would be better if the README didn't mention Rust until the target is implemented, possibly with the use of reqwest, hyper, actix-web, or any other related crate.
Moreover, I believe that the Wiki can be improved to make it more user-friendly. The current layout can be confusing, and the TypeScript library usage (especially the types) can be moved to the Wiki and linked to in the README. This would make it more informative and keep everything in one place, rather than scattered throughout different sources.
Perhaps there are other areas that could be improved, and I would appreciate any thoughts on how to rework this. If this is something that is desirable, I am more than happy to assist. It would be my first time doing something like this, and I am willing to try my best 😄

Just added a PR for enabling Rust support with reqwest waiting on review: https://github.com/Kong/httpsnippet/pull/328


Host group not consistently removing co-host that are removed on other machines

I noticed during an event I was running that many times the host group was not updated as people were removed from co-host.  New co-host felt like they consistently got added to the host group.

this might be related to #77


"Managed" YAML files should store JSON patches, not Unix diffs

Since the Chart.yaml and values.yaml files are prone to conflicts on rebases but are guaranteed to be real YAML files (e.g. they won't have any weird go templating stuff in them, unlike other Helm files), the diff we store for these two root files should be a JSON patch instead of a Unix diff.
Since it's far more unlikely for a JSON patch applied on the base chart to encounter a conflict than a Unix diff, this should make the process of applying rebases far simpler and remove the caveat the scripts have with working with these "Managed Files"

Will require a charts-build-scripts minor release since it will involve migrating existing Chart.yaml.patch files to a new format that is incompatible with previous versions of the script. Also will require non-trivial updates to introduce special diff logic.

To support apiVersion: v1 Helm charts, we should also support requirements.yaml using JSON patches

https://github.com/rancher/charts-build-scripts/issues/9 might be a good issue to prioritize with this; we could make the default such that certain files automatically use yaml_diff while others default to unified_diff, but by exposing it as a possible override in the Chart.yaml, we could make it easier to opt-in to this.


move to junit 5

At the moment we have a mixture of JUnit 4 and JUnit 5 tests.
We want to completely move to JUnit 5.
For this, a new branch was introduced: [move-to-junit5]. Be aware that I removed JUnit 4 completely there, so a lot of compile errors are still there.
Sadly it is not enough to replace the imports:

replace imports
change assertions with messages: in junit 4 the message was the first parameter in junit 5 its the last
change annotation names before, after, ... those are renamed in junit 5

I will start from the bottom to change the stuff (now TableNamesFinderTest.java)

First of all I will replace project wide all imports before I will push this branch.

At the moment there are two assertion extensions: hamcrest and assert4j. We will leave that for now.

The switch seems to be faster than I expected. So I will the complete transformation und push for all this new branch to check if all runs perfectly well.

Stumbled right now about some Junit 3 tests. Time to say good bye. ;)

https://github.com/JSQLParser/JSqlParser/tree/move-to-junit5
is finally there.
The transformation is at least syntactically complete.

SelectTest.testMultiPartColumnNameWithDatabaseNameAndSchemaName corrected

CreateTableTest works now
all tests are running
could that be merged into master or did I forget something:

are all tests executed?
should hamcrest be removed (I do prefer assert4j  :) )?
should the mocking somehow not exectuted with this new JUnit 5 extension?
...

@wumpz , good job.
My recommendation: merge it, its just about tests after all and we can fine tune gradually.
I would like to add one task: The Test SQLs should go into a resource file outside of the Java Test Classes, for better readability and reuse. We could do that much later.

@manticore-projects I thought about that as well but decided against it, at least for all those simple SQL parsing tests, since you would e.g. loose the documentation, method naming, context. Or do you have something different in mind?

Yes, I do: for JSQLFormatter I have done something similar and in my opinion it works extremely well:

Define one Abstract Test Class which is able to read a SQL Resource File matching the Test Class' name
Read that Resource File in a way, that each SQL Statement is labeled by a leading comment naming this particular test, e. g.:

--- TEST CASE 1
SELECT * from dual;

-- TEST CASE 2
SELECT * from SOMETHING_ELSE;

The sample above will define 2 test cases "TEST CASE 1" and "TEST CASE 2";

Implement parametrized Test Case Classes for all Statement Types and Expression Classes (implementing  the Abstract Test Class, e.g.

class SelectStatementTest implements AbstractParserTest {
}

which would work with a SelectStatementTest.sql resource file.
There are 2 disadvantages though:
a) it is harder to run an isolated test only (instead of the whole suite)
b) obviously this does not cover the Mock and/or Java Object based tests, but only the "assertParseAndDeparse" based SQL tests (which are plenty though).
Cheers!

Have a look at https://github.com/manticore-projects/jsqlformatter/blob/main/src/test/java/com/manticore/jsqlformatter/StandardOffsetLimitTest.java which illustrates the approach in detail.

Yes, I do: for JSQLFormatter I have done something similar and in my opinion it works extremely well:
1. Define one Abstract Test Class which is able to read a SQL Resource File matching the Test Class' name

2. Read that Resource File in a way, that each SQL Statement is labeled by a leading comment naming this particular test, e. g.:

--- TEST CASE 1
SELECT * from dual;

-- TEST CASE 2
SELECT * from SOMETHING_ELSE;

The sample above will define 2 test cases "TEST CASE 1" and "TEST CASE 2";

There is no need for such special syntax - java has good Property-File support.
TEST_CASE_1=SELECT * from dual;

# comment on test case 2: \ properties support line breaks
TEST_CASE_2=SELECT * \
from SOMETHING_ELSE \
where A=B;

can be read with
Properties prop = new Properties();
prop.load(inputStream);

3. Implement parametrized Test Case Classes for all Statement Types and Expression Classes (implementing  the Abstract Test Class, e.g.

class SelectStatementTest implements AbstractParserTest {
}

which would work with a SelectStatementTest.sql resource file.
There are 2 disadvantages though:
a) it is harder to run an isolated test only (instead of the whole suite) b) obviously this does not cover the Mock and/or Java Object based tests, but only the "assertParseAndDeparse" based SQL tests (which are plenty though).
Cheers!

That said, i am also against outsourcing the sql resources, because the readability is lost and as you also noted, the overhead of loading the resource file is unnecessary if you just want to run a test.

merge is done


Enter running application container

Description
Get a shell into a running application container using Resin CLI resin ssh command.
Steps to reproduce issue

Install resin cli with npm i -g resin-cli
Login with resin login. If testing on staging, prepend RESINRC_RESIN_URL=resinstaging.io to this and all subsequent resin commands.
Create a single-container test application and provision a device with it.
Wait until the application is marked as running on the dashboard.
Run resin devices to get the device uuid.
Ensure that your resin account has at least one RSA or DSA key -preferably RSA- that is also loaded in your ssh-agent. Use ssh-add -l to check the loaded keys.
Run time resin ssh <short device uuid>. For staging run time RESINRC_RESIN_URL=resinstaging.io resin ssh <short device uuid>

Expected result

A shell prompt (e.g. bash-4.3#) should appear after a few seconds.
Running 'env | grep RESIN' should return a list of environment variables.

Actual result
resin-2:simple-server-node hobochild$ resin ssh 25f7aac
Connecting with: 25f7aac
ResinRequestError: Request error: tunneling socket could not be established, cause=socket hang up
Other information
Reported by: Shaun Mulligan
Test configuration: Hummingboard
Test case number: TC13
Test run: https://resinio.testlodge.com/projects/16238/runs/230391?tab=2&run_section_id=253432&executed_case_id=10655747#executed_case_10655747

This issue was moved to resin-os/resinos#435


Update autorest emitter to 0.42.1

/azp run TypeSpec Requirement

@timotheeguerin: I will probably need to force-merge this due to https://github.com/Azure/azure-sdk-tools/issues/7657

@timotheeguerin: I will probably need to force-merge this due to Azure/azure-sdk-tools#7657

Ran pwsh ./eng/scripts/TypeSpec-Validation.ps1 -CheckAll and doesn't seem to be any diff so wouldn't expect it to fail here, so should be good I think when that pass

@mikeharder additions of PipelineBotTrigger are the solution to: https://github.com/Azure/azure-sdk-tools/issues/7657


[Help] Issues with transforming signedTX to be accepted by submit-api endpoint

const finalTx = {
  "type": "Tx AlonzoEra",
  "description": "",
  "cborHex": txFinal.payload
}

const apiAddress = "https://cardano-mainnet.blockfrost.io/api/v0/tx/submit"

async function postTx() {
  try {
    const response = await axios.post(apiAddress, finalTx), {
      headers: {
        'Content-Type': 'application/cbor',
        'project_id': 'myApiKey'
      }
    });
    console.log(response);
  } catch (error) {
    console.error(error);
  }
}

postTx()

If I save finalTx contents to tx.signed on cardano-node server, I can succesfully send it via cardano-cli, but sending it via HTTP/S requires me to transform it. I would like to not add another dependency so I was hoping you could share how to transform it using your packages?
Thanks

As per the code above, the finalTx format is an API specific requirement, and is not required by the node itself. So please check with the API. Only thing that is imp is the final cbor hex of the tx.

As per the code above, the finalTx format is an API specific requirement, and is not required by the node itself. So please check with the API. Only thing that is imp is the final cbor hex of the tx.

Blockfrost and Koios have the same submit-api requirements as cardano-submit-api. If I save the contents of finalTx in cardano-node I can submit it using cardano-cli. I tried submitting only the cbor hex, tried getting the buffer from it, did the same on finalTx among other stuff I’ve been trying.
“ Assuming ${data} is a raw binary serialized transaction on the file-system.
If using a CLI-generated tx file, please ensure to deserialise (using xxd -p -r <<< $(jq .cborHex ${tx.signed}) > ${data}) first before submitting.”
This is what the Koios api requires.

this is unrelated to the lib, you can join this tg for dev related queries and also find the IOG Discord invite in that tg to connect with more devs. https://t.me/CardanoDevelopersOfficial


feat: add solito

This PR adds solito to the project.

My bad, didn't realise this was created upstream.


Can not extract on BTR maps on 3.9.0-DEV because HasNonEmptyTransferContainer throws ArgumentNullException

The title basically says it all already.
I have cloned and built 3.9.0-DEV (commit b6a86e0edb) to see how the latest stuff is comming along and when trying to extract on woods or streets the extract countdown counts down to 0 but raid doesn't actually end. All your UI is gone but you can still move and shoot but not interact with objects.
This is an issue in SPT-AKI/Modules obviously.
I looked into the errors.log and found:
EXCEPTION: System.ArgumentNullException: Value cannot be null.
Parameter name: source
  at System.Linq.Enumerable.TryGetFirst[TSource] (System.Collections.Generic.IEnumerable`1[T] source, System.Func`2[T,TResult] predicate, System.Boolean& found) [0x0000d] in <351e49e2a5bf4fd6beabb458ce2255f3>:0
  at System.Linq.Enumerable.FirstOrDefault[TSource] (System.Collections.Generic.IEnumerable`1[T] source, System.Func`2[T,TResult] predicate) [0x00000] in <351e49e2a5bf4fd6beabb458ce2255f3>:0
  at BTRControllerClass.HasNonEmptyTransferContainer (System.String profileId) [0x0000d] in <32eb99c0cde84b2d9f616ad787589b21>:0
  at Aki.Custom.BTR.Patches.BTREndRaidItemDeliveryPatch.PatchPrefix () [0x00054] in <b38d223841184521bf3fa0af9145efa7>:0
  at (wrapper dynamic-method) EFT.BaseLocalGame`1[EFT.EftGamePlayerOwner].DMD<EFT.BaseLocalGame`1[[EFT.EftGamePlayerOwner, Assembly-CSharp, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null]]::Stop>(EFT.BaseLocalGame`1<EFT.EftGamePlayerOwner>,string,EFT.ExitStatus,string,single)
  at EFT.LocalGame.Stop (System.String profileId, EFT.ExitStatus exitStatus, System.String exitName, System.Single delay) [0x00021] in <32eb99c0cde84b2d9f616ad787589b21>:0
  at EFT.BaseLocalGame`1[TPlayerOwner].CommonAssets.Scripts.Game.EndByExitTrigerScenario.GInterface99.StopSession (System.String profileId, EFT.ExitStatus exitStatus, System.String exitName) [0x00000] in <32eb99c0cde84b2d9f616ad787589b21>:0
  at CommonAssets.Scripts.Game.EndByExitTrigerScenario.Update () [0x001f6] in <32eb99c0cde84b2d9f616ad787589b21>:0

Looking at the code in BTREndRaidItemDeliveryPatch.cs in line 51 the call to HasNonEmptyTransferContainer apparently throws if the profile id can not be resolved in some circumstances?
I haven't bothered yet to decompile and deobfuscate the game dlls so I don't know whats actually going on in the method and it seems strange that it would throw if it actually bothers to use FirstOrDefault in the linq but it does.
Just to verify if that is really the cause of the issue I replaced the simple call to the method with something ugly like this:
            bool btrInvEmpty;
            try {
                btrInvEmpty = !gameWorld.BtrController.HasNonEmptyTransferContainer(player.Profile.Id);
            }
            catch(ArgumentNullException) {
                btrInvEmpty = true;
            }
            if (btrInvEmpty)
            {
                Logger.LogDebug("[AKI-BTR] BTREndRaidItemDeliveryPatch - No items in transfer container");
                return;
            }

After this change I can extract successfully again on woods.
(I haven't tested if it is fixed on streets as well but I assume it is.)
I hope this helps to speed up the debugging and fixing of this issue.

 Apparently because:
EXCEPTION: System.NullReferenceException: Object reference not set to an instance of an object
at BTRControllerClass.Dispose () [0x00000] in <32eb99c0cde84b2d9f616ad787589b21>:0
at EFT.GameWorld.Dispose () [0x0018b] in <32eb99c0cde84b2d9f616ad787589b21>:0
at EFT.TarkovApplication.method_46 () [0x00027] in <32eb99c0cde84b2d9f616ad787589b21>:0
at EFT.TarkovApplication+Struct320.MoveNext () [0x0001e] in <32eb99c0cde84b2d9f616ad787589b21>:0
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x0000c] in :0
at System.Runtime.CompilerServices.AsyncMethodBuilderCore+<>c.b__6_0 (System.Object state) [0x00000] in :0
at UnityEngine.UnitySynchronizationContext+WorkRequest.Invoke () [0x00002] in :0
I assume this one is related to https://dev.sp-tarkov.com/SPT-AKI/Modules/commit/9e8cdc6469248c2765d55c2a000d68dae5f099d2#diff-23aa74bc46871ced62934ecff022b59c8dd2ecd6
It's just an annoyance on PMC but still a problem on your Scav.
After a bit of additional investigation I figured out that by simply adding an additional patch that bypasses the Dispose method just like the constructor, extraction fully works again.
I have looked into the dispose method and all it does is to trigger BTR interaction notifications. The only other thing it does is to cancel its cancellationTokenSource_0. I assume that this is what throws the NullReference in the first place because this member is not being initialized because we skip the constructor entirely as mentioned earlier.
Not sure what this CancellationTokenSource is even for as never initializing it apparently doesn't cause any issues. Maybe its use is exclusive to the code sections the BTR patches bypass anyway.

Originally written by BluBb_mADe

I am 98% sure I fully figured out the problem.
It's all caused by commit https://dev.sp-tarkov.com/SPT-AKI/Modules/commit/9e8cdc6469248c2765d55c2a000d68dae5f099d2 which skips the constructor of BTRControllerClass.
When looking at the constructor as decompiled C# it is not obvious that class member initialization is actually part of the constructor but it becomes obvious when looking at the IL as you can see in the attached image.
So by skipping it, none of its members get initialized which is why these errors happen.
A better approach is to disable the call to BTRControllerClass.method_0 which avoids both issues at once. I tried it and it works. I will pr the change in a minute.

Attachments

4722e5[1].png (65 KiB)

Originally written by BluBb_mADe

The BTR is not expected to function in 3.9.0, Arys has just barely started working on it

Originally written by DrakiaXYZ

I am 98% sure I fully figured out the problem.
It's all caused by commit https://dev.sp-tarkov.com/SPT-AKI/Modules/commit/9e8cdc6469248c2765d55c2a000d68dae5f099d2 which skips the constructor of BTRControllerClass.
When looking at the constructor as decompiled C# it is not obvious that class member initialization is actually part of the constructor but it becomes obvious when looking at the IL as you can see in the attached image.
So by skipping it, none of its members get initialized which is why these errors happen.
A better approach is to disable the call to BTRControllerClass.method_0 which avoids both issues at once. I tried it and it works. I will pr the change in a minute.

Nice find, I made that commit but didn't go back to fix any of the problems yet.

Originally written by Arys

Cool! I didn't want to request a BTR fix here. I just want to be able to finish basic raids on woods and streets and this one-line fix is all that is needed for that. Things take time. I am an indie game dev, I know.

Originally written by BluBb_mADe


Stream container process logs in the background

Describe your changes
Container process logs are different from Sandbox logs in that they must be consumed by the client or else they block the writing process. This means that if you blindly exec or exec only consuming one stream, the process can hang with no indication to the user. This commit adds background streaming for container process logs, allowing exec processes to complete without the client explicitly reading them.
Resolves WRK-422
Resolves WRK-413
 Backward/forward compatibility checks

Check these boxes or delete any item (or this section) if not relevant for this PR.

[x] Client+Server: this change is compatible with old servers
[x] Client forward compatibility: this change ensures client can accept data intended for later versions of itself

Note on protobuf: protobuf message changes in one place may have impact to
multiple entities (client, server, worker, database). See points above.

I'm not going to merge this and going to instead build subprocess-style pipes


Can't check for machine status because of missing config.json

Description of problem: Can't check for machine status because of missing ~/.docker/machine/machines/config.json.
docker version:
Client:
 Version:      1.8.0
 API version:  1.20
 Go version:   go1.4.2
 Git commit:   0d03096
 Built:        Tue Aug 11 17:17:40 UTC 2015
 OS/Arch:      darwin/amd64

Server:
 Version:      1.8.0
 API version:  1.20
 Go version:   go1.4.2
 Git commit:   0d03096
 Built:        Tue Aug 11 17:17:40 UTC 2015
 OS/Arch:      linux/amd64

docker info:
Containers: 6
Images: 220
Storage Driver: aufs
 Root Dir: /mnt/sda1/var/lib/docker/aufs
 Backing Filesystem: extfs
 Dirs: 232
 Dirperm1 Supported: true
Execution Driver: native-0.2
Logging Driver: json-file
Kernel Version: 4.0.9-boot2docker
Operating System: Boot2Docker 1.8.0 (TCL 6.3); master : 7f12e95 - Tue Aug 11 17:55:16 UTC 2015
CPUs: 4
Total Memory: 995.9 MiB
Name: default
ID: EVTJ:P5MB:TPSK:YLMW:4QFH:DULF:AXWD:TJCC:7CPQ:KUNM:WBME:PMM4
Debug mode (server): true
File Descriptors: 10
Goroutines: 16
System Time: 2015-08-13T07:21:24.578789115Z
EventsListeners: 0
Init SHA1:
Init Path: /usr/local/bin/docker
Docker Root Dir: /mnt/sda1/var/lib/docker
Labels:
 provider=virtualbox

uname -a:
Darwin Batmans-MacBook-Pro.local 14.4.0 Darwin Kernel Version 14.4.0: Thu May 28 11:35:04 PDT 2015; root:xnu-2782.30.5~1/RELEASE_X86_64 x86_64

Environment details (AWS, VirtualBox, physical, etc.):
VirtualBox on a MacBook Pro.
Steps to Reproduce:

docker-machine status

Actual Results: the following is printed: unable to load host: open /Users/fra/.docker/machine/machines/config.json: no such file or directory
Expected Results: docker-machine should retrieve the status of the machine.
Additional info: I just upgraded from Docker 1.7, docker can boot and stop containers, everything looks like it's working if I start the Docker Quickstart Terminal, BUT the docker-machine (which should still be available outside of the quickstart terminal, right?).

I ran into the same problem and it is a bug, but not the bug you are reporting. docker-machine status is for retrieving the status of a single machine, so docker-machine status dev does work. When you omit the machine name, it should throw an error / help message. Use docker-machine ls for getting status of all machines.

Thank you @rvdmei, that solved the misunderstanding! :+1:


⚠ Samsung has degraded performance

In 4d0ce0f, Samsung (https://samsung.com) experienced degraded performance:

HTTP code: 200
Response time: 2567 ms

Resolved: Samsung performance has improved in 385aaf0.


TopKDecoder

Hi,
I wonder if rnn.forward_step changes the order of (batch_size*self.k) dimension ?
With the code about initializing sequence_scores：

and in each step:

It seems like sequence_scores is updated as (assume that  selk.k = 3):

If hidden and inflated_encoder_outputs should be calculated as follow?
inflated_encoder_outputs =  _inflate(encoder_outputs,self.k,1).view(batch_size*self.k, -1)
hidden_shape = encoder_hidden.size()
hidden = _inflate(encoder_hidden, self.k, 2).view(hidden_shape[0], batch_size*self.k, hidden_shape[2])

hi, I am studying the code and have similar doubts. However, can you be clear what you mean by decoder_output? do you actually mean log_softmax_output?

@JojoFisherman Yeah, I mean the output probability of decoder, i.e. log_softmax_output.

I have the same question. It surprised me that no one has answered this. If theres really something wrong in the beam search, surely it will output some weird sequence. Do you have any conclusion about this?

It seems some issues have referred that beam search doesn't work correctly. Unfortunately, maybe this repo is not active maintained now. Currently, I use fairseq (pytorch version) to conduct some related experiments.

I studied the codes these days, and I thought you can use the torch.repeat_interleave. Such as follow:
hidden = tuple([torch.repeat_interleave(h, self.k, dim=1) for h in encoder_hidden])
inflated_encoder_outputs = torch.repeat_interleave(encoder_outputs, self.k, dim=0)

I studied the codes these days, and I thought you can use the torch.repeat_interleave. Such as follow:
hidden = tuple([torch.repeat_interleave(h, self.k, dim=1) for h in encoder_hidden])
inflated_encoder_outputs = torch.repeat_interleave(encoder_outputs, self.k, dim=0)

I had the problem with batch_size > 1, but after applying this comment, then it works now.
Thank you!!


Missing requirements file from example project

There is no dev-requirements.txt file in the project. Instructions at https://dj-hitcount.readthedocs.io/en/latest/example_project.html failed.

Hey, the file was removed when the dependency management was moved to poetry in https://github.com/abhiabhi94/dj-hitcount/commit/0137e6de70821c230f6fb9aae49d8d173a31f75d.
For now, you may instead use:
poetry install

This will install the dev-dependencies and also the project in editable mode(so your changes will be directly reflected).
Can you also, please send a patch to fix this in the documentation? let me know in case you need any assistance.


Even spaced hotbar

About the PR

the spacing was awful and terrible and i hated it.
also moves outerclothing to the main hotbar with the rest of clothing because why wasn't it there in the first place???
Media

before:

after:

[x] I have added screenshots/videos to this PR showcasing its changes ingame, or this PR does not require an ingame showcase

Breaking changes

Changelog

no cl no fun

Time to fuckup muscle memory.

muscle memory my beloved

I don't mind the swapping of outerclothing and the exosuit slot, but the spacing around the hand slots matters to me: it helps guide the eyes to the arguably most important part of that UI. It helps you find your active hand at a glance, etc. Making everything the same is not usually good when not everything is equivalent.

I dont mind it, just have some way to draw your focus to the hands like arimah mentioned

alternatively maybe the frame could be thicker on hand slots so they have a bit more importance

Spacing is one of the simplest and least intrusive ways of creating visual hierarchy without adding visual noise. If you want the hands to stand out, as I believe is a good idea, a little bit of spacing instantly creates three visual groups (of low cardinality – the human brain can keep track of 3-2-3 without needing to count). Different colours, bolding, and so on can work, but will also make the hand slots stand out visually, which may be intrusive.

I don't mind the swapping of outerclothing and the exosuit slot, but the spacing around the hand slots matters to me: it helps guide the eyes to the arguably most important part of that UI. It helps you find your active hand at a glance, etc. Making everything the same is not usually good when not everything is equivalent.

lots of SS13 servers just use slightly smaller icons which have the benefit of consistent spacing while also better displaying the visual weight.
Flareguy is porting a bunch of ss13 HUD themes with these adjusted sizes so those should probably help a fair bit.
also i feel like the hands are outlined more by the fact that they are centered in the viewport. As for the active hand, it literally has a special highlight for the sole purpose of standing out when selected.

Honestly I love the moving of exosuit and exosuit backslot but kinda prefer the 3-2-3 bottom the way it is


Feature request: ionic video player? (ion-video)

Hello Ionic team,
Is it possible for you guys to create a dedicated, customizable, responsive local video file player for Ionic 4?
I found many people are troubled with playing video on ionic.
Ideally it would be great if it can be easily used by with  <ion-video> tag...
I recommend the same for audio playback.
It would be great if you guys create an audio player which has progress bar, play, pause, forward, backward buttons which can be used by simple <ion-audio> tag.
These plugins or built-in interface will make media playback job a whole lot easier during development.
I think background color, color of player icons, button should be customizable using SCSS. and all players should be fully mobile responsive out of box.
I hope this is possible.
Thanks,

Once i was searching a feature like this and i found this for soundtracks https://github.com/arielfaur/ionic-audio/tree/3.0/demo
it's a kinda easy and very customizable.

That's cool. I will check it out.
I still think ion-video, ion-audio tag solution... that will be the easiest.

<ion-image> would be totally possible as well. If it comes with zoom in feature, responsive width built-in, I think it will work.
Ideally, we need ion-media package which deals with all media materials.


Files missing in Output

Greetings Everyone!
I'm trying to integrate this Plugin into one of my current projects. unfrtunately its not working as expected and >90% of my files are not getting reported/tracked.
Everything that my project needs is located in the src folder and weback builds into my public folder. For several reasons i have different Plugins in my configuration maybe they interfere each other. The output directory is set in my webpack configuration
Expected Behaviour
After the build is finished, a stats.json should be generated with all the informations about my files in the output directory
Actual Behaviour
A stats file is generated with almost none files
[
	{
		"timestamp":<PHONE_NUMBER>202,
		"files": [
			{
				"filename": "css/dark.css",
				"previous": 0,
				"size": 122,
				"diff": 122
			},
			{
				"filename": "css/light.css",
				"previous": 0,
				"size": 111,
				"diff": 111
			},
			{
				"filename": "index.html",
				"previous": 0,
				"size": 320,
				"diff": 320
			}
		]
	}
]

Webpack configuration
const path = require("path");
const zlib = require("zlib");
const HtmlWebpackPlugin = require("html-webpack-plugin");
const MiniCssExtractPlugin = require("mini-css-extract-plugin");
const CssMinimizerPlugin = require("css-minimizer-webpack-plugin");
const TerserPlugin = require("terser-webpack-plugin");
const CompressionPlugin = require("compression-webpack-plugin");
const CopyPlugin = require("copy-webpack-plugin");
const SizePlugin = require('size-plugin');

module.exports = {
    entry: "./src/react/index.ts",
    resolve: {
        extensions: [".ts", ".tsx", ".js", "css"],
    },
    devServer: {
        static: {
            directory: path.join(__dirname, "public"),
        },
    },
    experiments: {
        asset: true,
    },
    output: {
        path: path.join(__dirname, "/public"),
        filename: "./js/[name].bundle.js",
    },
    module: {
        rules: [
            {
                test: /\.tsx?$/,
                loader: "ts-loader",
            },
            {
                test: /\.css$/,
                use: [
                    "style-loader",
                    {
                        loader: MiniCssExtractPlugin.loader,
                        options: {
                            esModule: false,
                        },
                    },
                    "css-loader",
                ],
                exclude: [
                    path.resolve("src/css/dark.css"),
                    path.resolve("src/css/light.css"),
                ],
            },
            {
                test: /\.(png|svg|jpg|jpeg|gif)$/i,
                type: "asset/resource",
                generator: {
                    filename: "img/[hash][ext][query]",
                },
            },
            {
                test: /\.(woff|woff2|eot|ttf|otf)$/i,
                type: "asset/resource",
                generator: {
                    filename: "css/[hash][ext][query]",
                },
            },
        ],
    },
    optimization: {
        splitChunks: {
            cacheGroups: {
                defaultVendors: {
                    test: /[\\/]node_modules[\\/]/,
                    name: "vendors",
                    chunks: "all",
                },
            },
        },
        minimize: true,
        minimizer: [
            new TerserPlugin(),
            new CssMinimizerPlugin(),
        ],
    },
    plugins: [
        new CopyPlugin({
            patterns: [
                {
                    context: "./src",
                    from: "css/dark.css",
                    to: "./css/dark.css",
                },
                {
                    context: "./src",
                    from: "css/light.css",
                    to: "./css/light.css",
                },
                {
                    context: "./src",
                    from: "img/**/*",
                    to: "./",
                },
                {
                    context: "./src",
                    from: "locales/**/*",
                    to: "./",
                },
            ],
        }),
        new MiniCssExtractPlugin({
            filename: "./css/[name].css",
            chunkFilename: "./css/[name].bundle.css",
        }),
        new HtmlWebpackPlugin({
            template: "./src/html/index.html",
            favicon: "./src/html/favicon.ico",
        }),
        new CompressionPlugin({
            filename: "[path][base].br",
            algorithm: "brotliCompress",
            test: /\.js$|\.css$|\.html$|\.jpg$|\.svg$|\.eot$|\.ttf$|\.woff$|\.woff2$/,
            compressionOptions: {
                params: {
                    [zlib.constants.BROTLI_PARAM_QUALITY]: 11,
                },
            },
            minRatio: Number.MAX_SAFE_INTEGER,
        }),
        new CompressionPlugin({
            filename: "[path][base].gz",
            algorithm: "gzip",
            test: /\.js$|\.css$|\.html$|\.jpg$|\.svg$|\.eot$|\.ttf$|\.woff$|\.woff2$/,
            minRatio: Number.MAX_SAFE_INTEGER,
        }),
        new SizePlugin(),
    ],
};

Final remarks

Besides that i have to admit that im not an webpack magician and this behaviour may be expected, i missed some configuration to the plugin or the order of the plugins is wrong.
Im using v2.0.2 because the newest is not working with the new version of webpack #40
i tried several variants of the pattern value but they didnt affect the outcome

Testcase
Its always hard to imagine what another person is doing and because of this i have created a minimal example that shows what im doing and what is happening
Repository
I would greatly appreciate any hints to solve this :)

I figured out what went wrong.
I had to change the pattern option:
new SizePlugin({
    pattern: '**/*.*',
 }),

Now every file gets tracked


Add gap: to the CSP to plugins work on iOS 10

On iOS 10 Apple is stricter with the CSP and using * still doesn't allow gap:, which is needed for plugins to work

Ping.
This can be easily reproduced and verified. If you create a new Phonegap app with the CLI and try to run it on an iOS 10 device or simulator the device ready event won't fire (the app will show "connecting to device" message) . Add the small change on the PR and device ready will fire showing "device is ready" message.
Also gap: is in other Phonegap apps like https://github.com/phonegap/phonegap-app-star-track-push/blob/master/www/index.html#L14


Fix off-by-one error in IosSecureRandom when copying bytes

Fixes #3

As an aside, while this PR is limited to fixing the off-by-one errors for iOS SecureRandom, I did a quick search in the project and found a similar issue in SecureString in two places in the plus method: https://github.com/chRyNaN/krypt/blob/develop/krypt-core/src/commonMain/kotlin/com.chrynan.krypt.core/SecureString.kt#L86 and https://github.com/chRyNaN/krypt/blob/develop/krypt-core/src/commonMain/kotlin/com.chrynan.krypt.core/SecureString.kt#L90.
Happy to adjust those while I'm here if you'd like.

@darronschall Good catch! Yes, fixing those errors too will definitely help. Thanks!

@chRyNaN All set


How create theme folder

How create theme folder for Demo View. I want add view search location folder Theme/{ThemeName}/Views
How can i configure it?

Please ask questions on the forums. This is not a bug.


MAINT: improve examples

Improvements in the example section.

Several modifications in the examples descriptions to fix typos, class and function paths and to rewrite some sentences.
Addition of absolute and relative error plots when two fields are compared.
Addition of line plot when mapping field to a path.

@PProfizi, @MaxJPRey, feedback will be greatly appreciated.

@GuillemBarroso For the last Codacy warning remaining, I am basing my fix on this page: https://security.openstack.org/guidelines/dg_use-subprocess-securely.html

Great, thanks @PProfizi. I am rerunning the only check that failed and as soon as it passes, we can merge.


Workbox config not valid

I get an error when I try and build your site.
The error is:
Your configuration is invalid:
{
  "globDirectory": "_site",
  "globPatterns": [
    "./css/additional.*.css",
    "./js/additional-*.*.js",
    "./",
    "./offline-fallback.html",
    "./manifest.webmanifest",
    "./images/logo-192px.png"
  ],
  "dontCacheBustURLsMatching": {},
  "swSrc": "_site/service-worker.js",
  "swDest": "_site/service-worker.js",
  "mode" [1]: "production"
}

[1] "mode" is not allowed
    at runBuildCommand (/Users/thor2/Documents/ideal-waffle-pack11tyjan01/node_modules/workbox-cli/build/app.js:52:19)

So, I removed the  "mode" [1]: "production" line from workbox.config.js and things work fine now.
Does that do any harm?
Thanks
Paul

The actual workbox.config does not have a [1] in the mode line, nor is it missing a comma at the end on the line. I cut and pasted the error, not sure why those artifacts showed up.
Does that make sense?
Above shows "mode" [1]: "production", but the file has mode: 'production',

The actual workbox.config does not have a [1] in the mode line, nor is it missing a comma at the end on the line. I cut and pasted the error, not sure why those artifacts showed up.
Does that make sense?
 The 1 is like a footnote. It's way too late, or early in the morning for me.

 The 1 is like a footnote. It's way too late, or early in the morning for me.

Looks like you figured this out for your personal site. I happened to see a commit that you made mentioning the "mode not supposed to be there"

Looks like you figured this out for your personal site. I happened to see a commit that you made mentioning the "mode not supposed to be there"


[AIRFLOW-558] Add Support for dag.backfill=(True|False) Option

Dear Airflow Maintainers,
Please accept this PR that addresses the following issues:

* https://issues.apache.org/jira/browse/AIRFLOW-558 *

Add Support for dag.backfill=(True|False) Option
Added a dag.backfill option and modified the scheduler to look at
the value when scheduling DagRuns (by moving dag.start_date up to
dag.previous_schedule), and added a config option scheduler.backfill_by_default (defaults to True)
that allows users to set this to False for all dags modifying the existing DAGs
In addition, we added a test to jobs.py (test_dag_backfill_option)

Overall this looks good. However, I am not sure about having a global option in. Changing this option would fundamentally change the behavior of what airflow does and will create questions on the mailling list "why doesnt my dag backfill?".
Secondly, I would like to have this properly documented.

Good points... I will look at the documentation to figure out where to put that. As to the global option, I think as long as it is well documented and doesn't change the default it should be ok...
Ben
Get Outlook for iOS
On Sat, Oct 8, 2016 at 2:09 PM -0700, "bolkedebruin"<EMAIL_ADDRESS>wrote:
Overall this looks good. However, I am not sure about having a global option in. Changing this option would fundamentally change the behavior of what airflow does and will create questions on the mailling list "why doesnt my dag backfill?".
Secondly, I would like to have this properly documented.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or mute the thread.

@bolkedebruin and @r39132 and @plypaul and others, I added docs. VERY open to suggestions for improvements.

Current coverage is 66.13% (diff: 77.77%)

Merging #1830 into master will decrease coverage by 0.03%

@@             master      #1830   diff @@
==========================================
  Files           127        127
  Lines          9750       9759     +9
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
+ Hits           6451       6454     +3
- Misses         3299       3305     +6
  Partials          0          0

Powered by Codecov. Last update bae8bc7...2d56111

I do have some questions about this functionality as well. Is the idea that some companies don't want backfill at all? If so, I'd like to see some votes for this feature (via the JIRA).
Alternate functionality could be to have a UI feature like "pause" that is exposed on the UI per DAG and have it disabled by default (e.g. dags_are_paused_at_creation = True)? That way, it becomes easier to override.
I feel that functionality is the right way to handle this.

That actually doesn't stop backfill. As soon as you un pause the dag, it backfills.
This doesn't stop the backfill by default, only when set either in config, or on a per dag basis. Bolke and I came up with the design, and Paul said that Airbnb needs it as well. We also have several people asking on gitter for this.
In addition, this allows your own request for cron like behavior to work. This the allows us at apigee to move to the scheduler, from externally triggered dags (we use cron for all of our triggering now).
Ben
Get Outlook for iOS
On Sun, Oct 9, 2016 at 8:58 AM -0700, "Sid Anand"<EMAIL_ADDRESS>wrote:
I do have some questions about this functionality as well. Is the idea that some companies don't want backfill at all? If so, I'd like to see some votes for this feature (via the JIRA).
Alternate functionality could be to have a UI feature like "pause" that is exposed on the UI per DAG and have it disabled by default (e.g. dags_are_paused_at_creation = True)? That way, it becomes easier to override.
I feel that functionality is the right way to handle this.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or mute the thread.

That actually doesn't stop backfill. As soon as you un pause the dag, it backfills.
I'm suggesting adding an additional toggle button, so the combination of both toggles can be used to achieve what you wish (i.e. A and B). You can unpause a dag and disable backfill.
This doesn't stop the backfill by default, only when set either in config, or on a per dag basis.
I understand that. However, is your feature thinking ahead enough? In other words : is someone going to ask for the ability to apply a DAG-level override to this? For example, if backfills were disabled by default, and some folks wanted to have it enabled, they would then need to implement an override to your global property at the DAG level. I would.
In the end, I see this more as a DAG-level property than a global one. And, to get the benefits of both, you can simple add one configuration as I'd mentioned earlier : backfill_is_disabled_at_creation = True, sort of like pausing DAGs at creation.
Another question: is this only meant to enable/disable the auto-backfill behavior for scheduled DAGs? It does not affect intentional "backfills" done via airflow backfill my_dag -s <date_1> -e <date_2>? Or does disabling backfill apply to both?
In addition, this allows your own request for cron like behavior to work.
I don't see a strong tie here.. we moved to the "LatestOnlyOperator" and did not need this functionality.
This the allows us at apigee to move to the scheduler, from externally triggered dags (we use cron for all of our triggering now).
Right. I like your suggestion of disabling backfill, at least automatic-backfill on scheduled DAGs -- I am asking you to consider making the config DAG-level not global. I'm hesitant to allow configuration change to be introduced willy-nilly because it is very hard to ever remove them, hence I want to ensure that we are addressing this new configuration correctly and not setting ourselves up for an override in the near future.
And, we do see enough questions related to why is my DAG not running? ... this would be one other area to worry about, especially if one config file is deployed on the webserver machine and another on the scheduler machine, and the config files differed in your new global property. It would be a hard-to-diagnose issue. If we used the approach adopted by "pausing" a dag, the config would only be in the database.

Regarding my point below:
And, we do see enough questions related to why is my DAG not running? ... this would be one other area to worry about, especially if one config file is deployed on the webserver machine and another on the scheduler machine, and the config files differed in your new global property. It would be a hard-to-diagnose issue. If we used the approach adopted by "pausing" a dag, the config would only be in the database.

It's enough of a concern to me to -1 the current approach in this PR.

To be clear, it is dag level. Having the global config just seemed like a
nice to have, for installations that don't prefer scheduler backfill, and
it seemed very light. With that said, we can add it to our shared default
default_args and have get the same behavior, just less transparently in my
opinion.
As to having it button/db level only, that is scary, as we will develop
dags very differently if we are thinking they may run several hundred times
instead of once.
As this has an effect on the actual scheduling and running of the dag, it
should be on the dag itself, which this is.
dag = Dag(
"test_dag",
"backfill": False,
...
)
In fact, what I would like is to feel like this is a discussion. You -1 and
email doesn't feel that way. My worry about our investment in development
(significant) is that there seems to be no place to have a discussion
regarding design. Bolke and I discussed online about a week ago, and I
followed our discussion. Then I discussed with Paul on Thursday (he seems
like the scheduler person right now).
I'm happy to make changes, and want this process to work. However I have
now spent WAY more time dealing with git, jira and github than with the
actual coding. Literally about 8 lines of code is turning into 20-30 hours,
and no place to have a discussion around this other than a very
disconnected set of conversations. Frustrated to say the least.
Thanks,
Ben
--
Ben Tallman -<PHONE_NUMBER>
On Sun, Oct 9, 2016 at 3:17 PM, Sid Anand<EMAIL_ADDRESS>wrote:

Regarding my point below:
And, we do see enough questions related to why is my DAG not running? ... this would be one other area to worry about, especially if one config file is deployed on the webserver machine and another on the scheduler machine, and the config files differed in your new global property. It would be a hard-to-diagnose issue. If we used the approach adopted by "pausing" a dag, the config would only be in the database.
It's enough of a concern to me to -1 the current approach in this PR.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/apache/incubator-airflow/pull/1830#issuecomment-252516871,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAKnfgP49TcHBCCixebyY1qlPo-XSfYoks5qyWfmgaJpZM4KRoW8
.

@btallman I looked over the code ... it looks good. I should have reviewed it before interpreting the conversation. +1

Hi!
I just tested this fix locally with a combination of DAGs. There seems to be an issue with using @hourly (and possibly the other shortcuts as well, e.g. @daily) and backfill=False. For that combination, the DAG is never scheduled!

It looks like the issue above has been fixed but I am now seeing an issue with a DAG that has 'depends_on_past': True, :

The code for the problematic DAG is below :
from builtins import range
from airflow.operators.bash_operator import BashOperator
from airflow.operators.dummy_operator import DummyOperator
from airflow.models import DAG
from datetime import datetime, timedelta

seven_days_ago = datetime.combine(datetime.today() - timedelta(7),
                                  datetime.min.time())
args = {
    'owner': 'airflow',
    'depends_on_past': True,
    'start_date': seven_days_ago,
}

dag = DAG(
    dag_id='example_bash_operator_v5', default_args=args,
    schedule_interval='@hourly',
    backfill=False,
    dagrun_timeout=timedelta(minutes=60))

cmd = 'ls -l'
run_this_last = DummyOperator(task_id='run_this_last', dag=dag)

run_this = BashOperator(
    task_id='run_after_loop', bash_command='echo 1', dag=dag)
run_this.set_downstream(run_this_last)

for i in range(3):
    i = str(i)
    task = BashOperator(
        task_id='runme_'+i,
        bash_command='echo "{{ task_instance_key_str }}" && sleep 1',
        dag=dag)
    task.set_downstream(run_this)

task = BashOperator(
    task_id='also_run_this',
    bash_command='echo "run_id={{ run_id }} | dag_run={{ dag_run }}"',
    dag=dag)
task.set_downstream(run_this_last)

if __name__ == "__main__":
    dag.cli()

Testing this change which fixes that Depends on past here:
`
@property
@provide_session
def previous_ti(self, session=None):
""" The task instance for the task that ran before this task instance """
dag = self.task.dag
    if dag.backfill:
        return session.query(TaskInstance).filter(
            TaskInstance.dag_id == self.dag_id,
            TaskInstance.task_id == self.task.task_id,
            TaskInstance.execution_date ==
            self.task.dag.previous_schedule(self.execution_date),
        ).first()

    else:
        last_dagrun = session.query(DagRun).filter(
            DagRun.dag_id == dag.dag_id,
            DagRun.execution_date < self.execution_date
        ).order_by(
            DagRun.execution_date.desc()
        ).first()

        if last_dagrun:
            return session.query(TaskInstance).filter(
                TaskInstance.dag_id == self.dag_id,
                TaskInstance.task_id == self.task.task_id,
                TaskInstance.execution_date ==
                last_dagrun.execution_date,
            ).first()
        else:
            return None

`

@btallman Did you test your fix against my attached code? Because, it still doesn't work against my provided example.

OK, this is passing CI now. Ready for you to look at it @r39132.

voting for this PR! IMHO it will make Airflow behave more like enterprise workflow management tools

BTW, while it says fail here, all 6 are succeeding on my fork, although I did have to kick one to run again...

@btallman Please rebase. I will be happy to test once ready.

@r39132 I went ahead and rebased...

@r39132 did you test this yet? @btallman can you fix the small landscape error?

What is the landscape error? Btw, we are running this on half of our production...
Get Outlook for iOS
On Sun, Nov 13, 2016 at 2:13 PM -0800, "bolkedebruin"<EMAIL_ADDRESS>wrote:
@r39132 did you test this yet? @btallman can you fix the small landscape error?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

@btallman one of the comments is too long (click on details for landscape). Good to hear you are running this in production. Would be nice to know a little bit about the complexity of your dags (ie. @r39132 earlier caught some errors that might have slipped through in a not too complex setup).

+1 for this. We are using a CI system to trigger a rebuild/push our dags and there are times when we don't want to backfill and just let the new dag run

@btallman please rebase if you don't mind (just merged your other PR sorry :) )
@aoen @mistercrunch would you mind taking a look at this?

This is great!
I think something like dag.only_run_latest is a little easier to understand than dag.backfill.
The documentation should also be updated in this PR with this new option.

@btallman can you rebase, the I'll be happy to merge. I hope we have covered all corner cases ;-). Please indeed update the documentation and maybe explain there what is the difference between only_run_latest

This overload new meaning into the term backfill. Let's clarify some of the semantics here.
backfill: "a manually triggered CLI process to run or re-run task instances in the past"
scheduler catchup (new term): when the scheduler has task instances to run in the past. This assumes a range of dates between tasks' start_date and the current date, and active DagRuns in between.
I'd suggest renaming DAG.backfill to allow_scheduler_catchup.

@mistercrunch I would suggest using DAG.catch_up (or DAG.allow_catch_up) (we are reasoning from the perspective DAG not from the scheduler). In the config section I would suggest to use catch_up_by_default as it already resides under the scheduler section. Bit semantic, but it made it easier in my mind.

@btallman it looks like there is a lot of interest in this PR.. have a look at the comments above and I can help shepherd this through.

Look much better! Just the final dots on I and then we're there. Thanks for all the work and bearing with us.

Yeah. Have a bit of cleaning still to do.
Thanks,
Ben
--
Ben Tallman | Senior Technologist - Google Cloud |<EMAIL_ADDRESS>|<PHONE_NUMBER>
Sent with help from my rotary phone...
On Sat, Dec 10, 2016 at 1:24 AM -0800, "bolkedebruin"<EMAIL_ADDRESS>wrote:
Look much better! Just the final dots on I and then we're there. Thanks for all the work and bearing with us.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

Hey @btallman would be nice to have this in before the new year. Can you rebase and see why the builds are failing? If needed I can provide some help.

I will revisit in the morning. Sorry about the delayed update.
Thanks,
Ben
--
Ben Tallman | Senior Technologist - Google Cloud |<EMAIL_ADDRESS>|<PHONE_NUMBER>
Sent with help from my rotary phone...
On Sun, Dec 25, 2016 at 5:56 AM -0800, "bolkedebruin"<EMAIL_ADDRESS>wrote:
Hey @btallman would be nice to have this in before the new year. Can you rebase and see why the builds are failing? If needed I can provide some help.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

Rebased and running tests on a side branch on my fork now. When they pass,
I'll push to the tracked branch.
Thanks,
Ben
--
Ben Tallman -<PHONE_NUMBER>
On Mon, Dec 26, 2016 at 6:08 PM, Ben Tallman<EMAIL_ADDRESS>wrote:

I will revisit in the morning. Sorry about the delayed update.
Thanks,
Ben
--
Ben Tallman | Senior Technologist - Google Cloud |<EMAIL_ADDRESS>|
503-680-5709 <(503)%20680-5709>
Sent with help from my rotary phone...
On Sun, Dec 25, 2016 at 5:56 AM -0800, "bolkedebruin" <
<EMAIL_ADDRESS>wrote:
Hey @btallman https://github.com/btallman would be nice to have this in

before the new year. Can you rebase and see why the builds are failing? If
needed I can provide some help.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/apache/incubator-airflow/pull/1830#issuecomment-269123800,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAKnfvbsxIzFj11ljZ5E5uxcXgQtug_Rks5rLnYdgaJpZM4KRoW8
.

Seeing errors about api-test stuff. Will investigate tomorrow.
Thanks,
Ben
--
Ben Tallman -<PHONE_NUMBER>
On Tue, Dec 27, 2016 at 10:01 PM, Ben Tallman<EMAIL_ADDRESS>wrote:

Rebased and running tests on a side branch on my fork now. When they pass,
I'll push to the tracked branch.
Thanks,
Ben
--
Ben Tallman -<PHONE_NUMBER> <(503)%20680-5709>
On Mon, Dec 26, 2016 at 6:08 PM, Ben Tallman<EMAIL_ADDRESS>wrote:

I will revisit in the morning. Sorry about the delayed update.
Thanks,
Ben
--
Ben Tallman | Senior Technologist - Google Cloud |<EMAIL_ADDRESS>|
503-680-5709 <(503)%20680-5709>
Sent with help from my rotary phone...
On Sun, Dec 25, 2016 at 5:56 AM -0800, "bolkedebruin" <
<EMAIL_ADDRESS>wrote:
Hey @btallman https://github.com/btallman would be nice to have this

in before the new year. Can you rebase and see why the builds are failing?
If needed I can provide some help.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/apache/incubator-airflow/pull/1830#issuecomment-269123800,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAKnfvbsxIzFj11ljZ5E5uxcXgQtug_Rks5rLnYdgaJpZM4KRoW8
.

@bolkedebruin and @r39132 - I finally was able to figure out what the issue was (turns out using DagRun to get previous TI only works if there IS a dag run (so not on backfill, go figure) so that minor change that I agreed to for Bolke turned out to be an issue.
Tracked that down and the tests are now passing.
Please review ASAP.

@btallman I need to look in to your comment on backfills, as in master backfills actually create dag runs. Can you elaborate a bit further what you think went wrong?

It may not actually be backfill, it's just that at least one of the tests generates a taskinstance from dag.tasks[0] dynamically and then runs the task in which case there's actually no dagrun. I trapped for that and it works as expected. Possibly the test should be rewritten instead.
Thanks,
Ben
--
Ben Tallman | Senior Technologist - Google Cloud |<EMAIL_ADDRESS>|<PHONE_NUMBER>
Sent with help from my rotary phone...
On Wed, Jan 4, 2017 at 8:05 AM -0800, "bolkedebruin"<EMAIL_ADDRESS>wrote:
@btallman I need to look in to your comment on backfills, as in master backfills actually create dag runs. Can you elaborate a bit further what you think went wrong?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

Gotcha. That makes sense.

In initial testing it seems to behave quite ok (thats an understatement for currently flawless)

What's left (apart from the minor changes) is to make sure it is documented, maybe with a small example.

Yes, I had it documented, but that fell out when I moved it to catchup...
Totally forgot it.
Thanks,
Ben
--
Ben Tallman -<PHONE_NUMBER>
On Fri, Jan 6, 2017 at 6:13 AM, bolkedebruin<EMAIL_ADDRESS>wrote:

What's left (apart from the minor changes) is to make sure it is
documented, maybe with a small example.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/apache/incubator-airflow/pull/1830#issuecomment-270910592,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAKnfvyZtgiaEzhBeDjyqsXh03sGHN3Oks5rPkwbgaJpZM4KRoW8
.

Hey @btallman can you add the documentation, I would really like to merge this and get it into 1.8.

Done.
Thanks,
Ben
--
Ben Tallman -<PHONE_NUMBER>
On Tue, Jan 10, 2017 at 11:53 PM, bolkedebruin<EMAIL_ADDRESS>wrote:

Hey @btallman https://github.com/btallman can you add the
documentation, I would really like to merge this and get it into 1.8.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/apache/incubator-airflow/pull/1830#issuecomment-271801677,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAKnflyk1p7cVbLJVMQ3t7kZkVeGLL0tks5rRIqVgaJpZM4KRoW8
.

BTW - Although this failed tests on here, it succeeded on my fork... I'll re-push an NON update to force a re-test I guess. - https://travis-ci.org/btallman/incubator-airflow

That seems to be an error in an assumption on one of the tests. Tests were executed at 23 hours. The test was doing now.hour() + 1, while hours should stay within 0..23 .
Will merge. Thanks a lot @btallman !


feat: move event listeners to modifier

With this we lose the instance.enableEventListeners method.
We have 3 options:

add it back (kinda hack-ish)
tell users to destroy + create when they need different options
create a global method to update an instance options

3 is something some people asked in the past, but considered how lightweight the popper instantiation is, I don't know if it's worth it.
(with this PR, popper-base goes below the 2kB (1.92 kB))

Yes that's right.
I think option 3 is the best one, we should have something like instance.updateOptions(...)

I was experimenting with option 3, it's a very small code change actually.


Block nets need text_keys and textual representation

Block nets are currently done like this:
net_views.add_method(
    name='Top_Middle_Bottom',
    kwargs={
        'logic': [
            {'Top 2 Box': frange('9,10')},
            {'Middle 3 Box': frange('6-8')},
            {'Bottom 5 Box': frange('1-5')}]})

But the problem here is the lack of a conventional text object that supports multiple labels via text_key. All labels in Quantipy must provide multi-label support.
To that end we should implement a block- kwarg for defning multiple uses of the same method that are returned in a single group.
The following example shows the first of these we need to implement: block-logic.
net_views.add_method(
    name='Top_Middle_Bottom',
    kwargs={
        'block-logic': {
        	'items': [
	            {'top2': frange('9,10'), 'text': {'main': 'Top 2 Box'}},
	            {'mid3': frange('6-8'), 'text': {'main': 'Middle 3 Box'}},
	            {'bot5': frange('1-5'), 'text': {'main': 'Bottom 5 Box'}}]}})

The -logic part of the block- kwarg informs how the content of the items object should be interpreted. This allows the textual representation of each item to be given in place of where 'logic' would normally appear, so that 'top2': frange('9,10') is read as 'logic': frange('9,10') with the textual representation top2.
The unpainted version of the resulting dataframe will show an index with the values 'top2', 'mid3' and 'bot5'. When painted those representations will be translated by the given text_key as per any normal data value from a single or delimited set column.
The block- kwarg needs to itself be a dict with an items object to provide space for additional instructions, such as rules and additional custom properties.

This will be resolved by #290.


Can ThreeFingerDragOnWindows be ported to run on Linux using a framework such as mono?

As per title - this is more a feature request than an issue but thought it was worth an ask at least...
I find this app invaluable on Windows after being a long-time MacOS user. More recently I've transferred almost fully to Linux (Fedora 40 to be precise) which is using Wayland to talk to the display server. Wayland appears to have hard-coded touchpad settings - e.g. three finger drag switches workspaces.
It would be awesome if this app when cross compiled using say mono could be configured in such a way as to for example allow four finger dragging of windows (Wayland doesn't appear to be using that combination).
I've searched the web and it just doesn't seem that there's a way in Wayland to set up this functionality reliably and the Wayland devs don't appear to have it on its roadmap.
More details on mono can be found here: https://developer.fedoraproject.org/tech/languages/dotnet/mono.html
Unfortunately my dev skills aren't up to the task of determining if this is feasible or not. I'd be prepared to add a small sponsorship to the team if it is thought that this is a possible solution.

Hi @dynamohum,
ThreeFingerDragOnWindows is specifically developed for Windows and it does not only use the Windows WinUI graphical framework, but also some low-level functions to subscribe to touchpad raw inputs and to interact with the cursor. Then making a Linux version of TFDOW would require lots of work and is not planned yet.
Luckily, there are various other software on Linux that offer the same feature, take a look at marsqing/ibinput-three-finger-drag, it might work on Fedora.

Hi @ClementGre
Thank you very much for replying. I will take a look at the link you provided.


Update pubkey type and other messages (?) to oneof

We need to catch up with tendermint when this get's implemented: https://github.com/tendermint/tendermint/issues/2204#issuecomment-419166756
related: https://github.com/tendermint/kms/issues/34

@Liamsi should this issue be moved to https://github.com/interchainio/tendermint-rs

Yes, moved here: https://github.com/tendermint/kms/issues/48


Seeso Web SDK compatibility on mobile/tablet devices

The client with Seeso Web SDK works on desktop environments but it seems it doesn't on mobile/tablet devices.
Do you know any mobile or tablet brand that have tested that Seeso Web SDK works ? In case not, do you know if Seeso Web SDK is expected to have compatbility on mobile devices  in the future ?
It would be great

Hi @jespa007, we tested Samsung Galaxy Tab S7 with chrome browser.
The browser must support SharedArrayBuffer feature for SeeSo.
There is nothing we can do to make seeso work in mobile browsers.
We have to wait for the feature in the link above to be supported in each browser.

@jespa007
You can check for support on this site
https://caniuse.com/?search=SharedArrayBuffer


absence of @return tag : documentation differ from compiler behaviour

The documentation ( https://developers.google.com/closure/compiler/docs/js-for-compiler#tag-return ) says :

If there is no return value, do not use a @return tag.

But the Compiler treats unannotated extern functions as returning ?, not undefined:
http://closure-compiler-debugger.appspot.com/#input0%3Dvar%2520%252F**%2520number%2520*%252F%2520a%2520%253D%2520f()%253B%26input1%26conformanceConfig%26externs%3Dfunction%2520f()%2520%257B%257D%26refasterjs-template%26includeDefaultExterns%3D1%26CHECK_SYMBOLS%3D1%26CHECK_TYPES%3D1%26LANG_IN_IS_ES6%3D1%26MISSING_PROPERTIES%3D1%26PRESERVE_TYPE_ANNOTATIONS%3D1%26PRETTY_PRINT%3D1%26TRANSPILE%3D1
Follow up of https://github.com/google/closure-compiler/pull/1792#issuecomment-219219366

If I remember correctly there is a difference here between functions in externs and functions in regular code.

I'm not sure :
https://closure-compiler-debugger.appspot.com/#input0%3Dvar%2520%252F**%2520number%2520*%252F%2520a%2520%253D%2520f()%253B%250A%250A%252F**%2520%2540return%2520%257Bundefined%257D%2520*%252F%2520function%2520f2()%2520%257B%2520return%2520f()%253B%2520%257D%250A%250Afunction%2520f3()%2520%257B%2520return%2520f()%253B%2520%257D%250A%250Avar%2520%252F**%2520number%2520*%252F%2520b%2520%253D%2520f2()%253B%250A%250Avar%2520%252F**%2520number%2520*%252F%2520c%2520%253D%2520f3()%253B%26input1%26conformanceConfig%26externs%3D%250A%252F**%2520%2540return%2520%257Bundefined%257D%2520*%252F%2520%250Afunction%2520f()%2520%257B%257D%26refasterjs-template%26includeDefaultExterns%3D1%26CHECK_SYMBOLS%3D1%26CHECK_TYPES%3D1%26LANG_IN_IS_ES6%3D1%26MISSING_PROPERTIES%3D1%26PRESERVE_TYPE_ANNOTATIONS%3D1%26PRETTY_PRINT%3D1%26TRANSPILE%3D1

The difference is that inference runs on source but not externs.  An externs function without annotation is assumed to take any number of arguments of any type and return any type. This does not occur in source.
The other quirk is that a partially annotated function is treated differently than a fully annotated one. Though I don't recall the exact difference.

I updated the documentation of the @return tag to clarify.
https://developers.google.com/closure/compiler/docs/js-for-compiler#tag-return


Updated view component not found error message

Updated error message for when a view component is not found

The message now defines the requirements for a view component to be discovered to help debugging

Addresses #5380

Hi @juunas11, I'm your friendly neighborhood .NET Foundation Pull Request Bot (You can call me DNFBOT). Thanks for your contribution!
You've already signed the contribution license agreement. Thanks!
The agreement was validated by .NET Foundation and real humans are currently evaluating your PR.
TTYL, DNFBOT;

Looks good to me. @rynowak @NTaylorMullen

check in Application logic

Thank you for your input. We changed the error message to a variation of the one proposed here. See https://github.com/aspnet/Mvc/pull/6263 for details


joint primary key not supported

When my table structure has a joint primary key, there will be an error when using goctl model and cannot be generated.
err: "db: db:public, table:table_2, joint primary key is not supported"
Is there any solution?

show more detail

Code generation does not support for joint primary key

Hi
I faced similar issue with this, Is there a plan to have this feature?
Happy to take a look into this

Hi I faced similar issue with this, Is there a plan to have this feature? Happy to take a look into this

Hi!
I didn't use the joint primary key afterwards.
But if you want several keys to joint without duplication, try to use UNIQUE constraints, it solved my problem.
Hope it helps. : )

Thanks for your prompt response!
I decided to move ahead with gorm-gen, but I hope this will be supported in go-zero ecosystem so I can use a single generator to keep my code base consistent (also without modifying my current table structures)
Thanks once again


[Bug Report] Language issue with Select when loading from remote

Element UI version
2.3.6
OS/Browsers version
Windows 10, Chrome 65.0.3325.181
Vue version
2.5.16
Reproduction Link
[https://jsfiddle.net/yanhvh2g/)
Steps to reproduce
This happens for me on the demo of Select => Remote Search. With the demo select box, start typing, initially you see non english characters.
What is Expected?
There to be english characters
What is actually happening?
Non english characters appear

fixed in my project after following these instructions: http://element.eleme.io/#/en-US/component/i18n


Get releases workflow working with squash and merge

Currently when we do releases, we do merge commits to allow for the changelog to generate properly (maybe there's other reasons too). @bdougie mentioned that we should be able to get the releases workflow working with squash and merge.
See https://github.com/open-sauced/release and https://opensaucedworkspace.slack.com/archives/C052YRD69JN/p1703207236660009

Apparently this is not supported with semantic release. Thanks for the link @brandonroberts.
https://semantic-release.gitbook.io/semantic-release/support/troubleshooting#squashed-commits-are-ignored-by-semantic-release


LDAP lookup no longer includes affiliation

Apparently when I parameterized LDAP I removed the affiliation parameter - perhaps because it's an array (see here)? This isn't trivial to add back in, let's figure out the best way to do it using secrets.yml?
Issues:

Multiple parameters needed
Ruby processing for class year method

I'll tackle this next

For reference, here's how we were evaluating affiliation in v3.4
affiliation: [result[0][:curriculumshortname],
              result[0][:college],
              result[0][:class]].select{ |s| s.length > 0 }.join(" ")

@caseywatts put together a nice writeup on how Yale's LDAP is set up, so we can use that as a guide. One thing I'm considering is allowing the LDAP parameter ENV variables to pass in Ruby code and executing it (instead of just passing in hash keys). I'll look into this tomorrow.

Param file has been updated and I re-deployed the branch - it works! Just waiting for review.


Enabling process reuse results in zombie extension host on Mac

Testing #120431
Currently, on Mac, enabling process reuse results in zombie processes being created.
Originally, the workbench process would be killed, and a new one would be restarted, and therefore, there would be no zombie process.
However, the workbench process is now being reused, and does not handle the extension host's exit signal before reloading for performance reasons. In turn, the extension host process does exit, but it stays on the system as a zombie. It continues to show up in the Process Explorer under a name like (Code OSS - Helper) or (Electron - Helper) (the latter occurs if one launches VS Code using Electron).
I have attempted to add child_process.unref() and child_process.disconnect() calls from the renderer side, but the zombie process remains. Only when I explicitly wait for the exit signal, and handle it by killing the exited extension host in onWillShutdown, does the extension host process get cleanly killed. However, that means the workbench must wait for up to five additional seconds before the onWillShutdown events finish and the reload occurs, which is too slow.
See https://github.com/microsoft/vscode/pull/120952 for more details, including the current implementation of the branch that enables process reuse.
CC @bpasero

Fixed with https://github.com/microsoft/vscode/commit/18cde6954293e68337f15ae14eccb798f52677ee


Circular Transistion Between TabBar Selections?

In your sample video/gif, when you tapped on one of the tab bar items, it looked like there was a circular or radial transition from the bottom of the screen.  Is that part of this repository?

wanna know as well,  how to make that effect?

The animated circular transition is not the part of the component but you are welcome to use the tutorial at the following link:
http://www.raywenderlich.com/86521/how-to-make-a-view-controller-transition-animation-like-in-the-ping-app

Awesome,  I also find this.
https://github.com/moqod/ios-material-design

Hi, Maks. I need help for making the circle transition.
I looked through
http://www.raywenderlich.com/86521/how-to-make-a-view-controller-transition-animation-like-in-the-ping-app
,
and try to change swift to object-c project,
When I use the Animation Controllers, problem occurred.
At using my MaterialCircleAnimator.m:

(void)animateTransition:(id <UIViewControllerContextTransitioning

)transitionContext

-(NSTimeInterval)transitionDuration:(id)transitionContext
I found my code can't change the animation duration time.
The circle animation would last 0.3 second no matter what NSTimeInterval I
set.

That's the refer project I download
http://cdn1.raywenderlich.com/wp-content/uploads/2014/12/CircleTransitionFinalUpdated.zip
And my project on Github:
https://github.com/TindleWei/MaterialCircleAnimation
2015-04-27 17:09 GMT+08:00 Maks<EMAIL_ADDRESS>
Closed #9 https://github.com/Yalantis/FoldingTabBar.iOS/issues/9.
—
Reply to this email directly or view it on GitHub
https://github.com/Yalantis/FoldingTabBar.iOS/issues/9#event-290667621.


Fix for labels not working for relationship fields (select and multiselect)

If a label is present, it should be used, instead of using the relationship name.

Thank you!