Slides preview

(this is a feature request)
It'd be nice to have some sort of preview before committing GITPITCH.md. So far I have two thoughts:

Online text editor where one can copy-paster GITPITCH.md content.
Render GITPITCH.md from repo's pull request, where one can change its content with git push --force in order to have a good Git history in the end.

Hi @ikalnytskyi
This is definitely a nice idea and someday I would like to see a dedicated tool that would give you quick and easy previews of a GitPitch presentation under development.
There is a simple trick I use myself when developing my own presentations that you might like to try:

Create a skeleton one-page presentation and git-push it.
Open your skeleton one-page presentation on gitpitch.com.
Click Offline to download the self-contained presentation bundle.
View and verify your presentation per Wiki instructions

Once you have verified that you can view your presentation offline then you can use your offline bundle as an offline presentation development tool.
Within the offline bundle you will need to develop your presentation Markdown content in the following file:
assets/md/PITCHME.md

When you update the content in this PITCHME.md file you can then reload your offline presentation in your browser and observe/preview your changes. Note, you may need to clear your browser cache before each reload depending on how your local HTTP Server works.
If you do try this out let me know how you get on.

@gitpitch thanks for this helpful instructions! =) do you also have an idea how it could work with including pictures (in case i do not want to use a feature branch)

Hi @zariye it's very simple to work locally with pictures/images etc. As noted above, when you work locally using the offline bundle as your development and test environment you use the following file to develop the Markdown content for your presentation.
assets/md/PITCHME.md

If you want to use pictures within your presentation then simply add an assets directory alongside the PITCHME.md file and place your image files in that directory. For example:
assets/md/PITCHME.md
assets/md/assets/pic.png

You can then use a relative URL to access that image in your Markdown:
![PIC](assets/pic.png)

The final step you need to do is to make sure than you git push this assets directory when you are also pushing your PITCHME.md to your git repo.
If any of this is unclear please let me know and I'm sure we can work it out.

awesome

Offline bundle approach detailed above provides preview solution per this feature request. Closing issue as resolved.

<EMAIL_ADDRESS>


[CSL-1822] Refine logging

There are various changes related to logging: what we log, which severity messages have, how logging is configured, etc.
Commit history is descriptive, imo. Most commits have few sentences of explanation.
I've almost finished, the only missing thing is to review middleware logs, will do it soon.

BTW, can you remind what is the motivation behind default logger name?

Do you mean lpDefaultName? Well, maybe we can just use mempty by default. I think it's quite minor.

Do you mean lpDefaultName? Well, maybe we can just use mempty by default. I think it's quite minor.

If we can delete a useless field from node context, i think we should. Anyway, I'm looking at this again.


turso dev creates a sqld process on given port without checking that it is already bound to an existing process

TL;DR:  Turso Dev should check the devPort for being bound before starting the sqld process (Maybe sqld should do this as well?).
Maybe you could call this a skill issue, but the experience of using turso dev can be a little frustrating when moving fast on your machine - especially when you are working on a number of different zero-user projects like I do.
Run
turso dev local.db

On a machine where you already have something running on port 8080 and instead of getting a friendly message like
Connection Failed: It looks like http://<IP_ADDRESS>:8080 is already bound to another process, maybe pick another port?

You get a happy message saying you are good to go!
sqld listening on port 8080.
Use the following URL to configure your libSQL client SDK for local development:

    http://<IP_ADDRESS>:8080

By default, no auth token is required when sqld is running locally. If you want to require authentication, use --auth-jwt-key-file to specify a file containing the JWT key.

Using database file local.db.

When you then try to do anything useful with it, like connect to it in your application or even run turso shell with it, you get a most cryptic error message:
Error: failed to connect to database. err: failed to execute SQL: SELECT 1;
invalid character '<' looking for beginning of value

Now, one doesn't have to have been in the game a long time to know that this probably means that turso shell sent the server at the address some SQL, and got back something unexpected - most likely some HTML, given the '<' character to start things off. But if you have skill issues, are very tired, or just not focused because you are trying to cram in working on 5 different side projects in the half hour of free time you get between the job that pays you money and spending responsible  parent time with a growing family - you might just not make that connection and might make several assumptions about the Turso tooling and waste away the rest of your precious dev time for the day.

I am happy to contribute this change, whether it's here on the turso-cli or in libsql/sqld.  I have contributed before.


BufferEncoding instead of string

Green keeper seems to have raised a point on a new format to pass encoding. Need to investigate on that.

related to #20

Fixed in last commits


[$1,000] Emoji selector hides keyboard hides text input

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

Action Performed (1):

Go to any chat
Select any own message
Click on Edit Comment
Click on Emoji icon

Expected Result:
Emojis are displayed below the text input box to edit the comment – the text input should still be visible.
Actual Result:
Emojis are hiding the text input box
Action Performed (2):

Go to any chat
Focus the composer.
Tap the emoji icon to select an emoji

Expected Result:
Emojis are displayed below the composer – the composer should still be visible.
Actual Result:
Emoji selector covers the composer, which is no longer visible.
Workaround:
Unknown
Platform:

Where is this issue occurring?

iOS
mWeb

Version Number: v1.1.49-0
Reproducible in staging?: Y
Reproducible in production?:  No (new feature)
Email or phone of affected tester (no customers<EMAIL_ADDRESS>Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos:

https://user-images.githubusercontent.com/43996225/160947822-19ce1857-e65f-40fb-92e4-949de5f4e539.mp4
Expensify/Expensify Issue URL:
Issue reported by: Applause
Slack conversation:
View all open jobs on GitHub
Issue was found when executing #7580

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

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

Commented on the main emoji picker in edit issue to see if this is a related bug

While the emoji picker in the edit comment is added with #3245, the behavior is the same as the composer at the moment. When sending a new message too, the input is hidden. IMHO, this should be a feature request.

I think the issue is a little different. It seems that Editor gets hidden when EmojiPicker is opened not that it is behind the picker. If editor is there but it is behind the picker then I agree it should be Feature Request.

Okay so how should we proceed here then? Mark as external and get a fix in?

My take on this issue is that it's an existing bug, not necessarily directly related to the new feature (emoji in the edit comment input). I don't think it's a new feature though – it's a bug.
I'm going to demote this from DeployBlocker to just a regular bug, make it external, and start the price at $500 because it's pretty severe.

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

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

GitHub won't let me change the labels 😠

Updated the OP. @NicMendonca as stated above, please start this issue at $500

Upwork job: https://www.upwork.com/jobs/~0117b13ad85930bd8e

Doubled: https://www.upwork.com/jobs/~0117b13ad85930bd8e

It's default behavior. Not a 🐞
When we open keyboard and we are tapping on emoji so new instance will come up it's a modal so keyboard will hide as per default behavior.
Suggestion: We have to change the way how we represent Emojis section. We have to display that emojis inside keyboard which we have to customize it.
@parasharrajat @NicMendonca Any suggestion on it?

Proposal
When emoji picker is opened, add a marginBottom to ReportActionCompose that is equal to the height of emoji picker. That way, textInput will be visible on top of the picker.
Native:
https://user-images.githubusercontent.com/9059945/163237456-fdc46314-b294-4508-8370-f9284e623786.mp4
mWeb:
https://user-images.githubusercontent.com/9059945/163233545-dfd77b88-7716-4f04-941a-fddd5a0db039.mp4
Implementation:

Inside EmojiPickerButton, add an onOnen callback on this line

onPress={() => {
    EmojiPickerAction.showEmojiPicker(props.onModalHide, props.onEmojiSelected, emojiPopoverAnchor);
    props.onOpen();
}}

Then in ReportActionCompose we can know whether emoji picker is open, we will track it in pickerIsVisible state variable

  <EmojiPickerButton
      isDisabled={isBlockedFromConcierge}
      onModalHide={() => {
          this.focus(true);
          this.setState({ pickerIsVisible: false })
      }}
      onEmojiSelected={this.addEmojiToTextBox}
      onOpen={() => this.setState({ pickerIsVisible: true })}
  />

After that, we add marginBottom to ReportActionCompose's main container

<View style={[shouldShowReportRecipientLocalTime && styles.chatItemComposeWithFirstRow, { marginBottom: this.getMarginBottom() }]}>

And implement getMarginBottom method

  getMarginBottom() {
      if (!this.state.pickerIsVisible || !this.props.isSmallScreenWidth) {
          return 0;
      }

      return styles.emojiPickerList.height + 30;
  }

I added 30 to add a small gap between picker and text input, but I'm guessing app has some predefined spacing defined in styles.js, which can be used instead

What is the expected behavior here? input should be shown above the picker menu. ?? cc: @kavimuru @stitesExpensify

Yes, you should be able to see the input you're putting the emoji into

Getting design confirmation https://expensify.slack.com/archives/C01GTK53T8Q/p1649875294455519

@stitesExpensify Slack is concluded with :do_nothing: What should be the next step here?

@NicMendonca let's pay @parasharrajat for being the contributor manager, and pay our base issue rate to @eVoloshchak for his proposal, then we can close the issue.
Thanks for pushing this forward in slack Rajat, and thank you @eVoloshchak for your proposal even though it wasn't used!

@eVoloshchak @parasharrajat can you both apply to the job please? Thank you! - https://www.upwork.com/jobs/~0117b13ad85930bd8e

@eVoloshchak paid!
@parasharrajat can you accept the offer please? Thank you!

paid!


Introduce ChatHistory interface

This PR changed the way ChatHistory is used by abstracting it with an interface IChatHistory.
This PR has breaking changes.
Examples teste with the changes.
Unit tests:
Passed!  - Failed:     0, Passed:    85, Skipped:     3, Total:    88, Duration: 8 s - LLama.Unittest.dll (net8.0)

CHANGES:

Chat Message is not an inner class of ChatHistory anymore
IChatHistory is now introduces to allow own chat history implementations
Chat history serialization is now handled by ChatHistorySerializer

Hi, the overall of this PR looks good. Could you please tell about why you want to make this change?

Hi Steven, thank you very much for this PR! However I prefer to blocking its merging for now because it introduces break changes, while I think we'll soon add some changes to the high-level APIs. Thus your modifications are very likely to be changed again in the near future, making users a bit confused. You don't need to close this PR -- that will remind me about your requested APIs and take your proposal into account when I work on these APIs in the future. Your proposal this PR is reasonable to me. :)


Rename records into docs everywhere?

Heritage of barrel, we named our documents "records".
At that time, the goal was to make quickwit a search engine strongly dedicated to logs.
Today, we still use the word record for doc in the splitmetadata.
I suggest we embrace our search DNA and call that a doc everywhere?

@guilload your thoughts?

Yeah, docs all the way!

Docs is better yes.


⚠ Jenkins Plugins Artifactory has degraded performance

In 25c90ac, Jenkins Plugins Artifactory (https://get.jenkins.io/plugins/artifactory/) experienced degraded performance:

HTTP code: 200
Response time: 1214 ms

Resolved: Jenkins Plugins Artifactory performance has improved in 7669d97 after 19 minutes.


Removed the need to run functional tests on extension views inside an iframe. Stabilized tests.

Description
Tests were unstable and it was getting really difficult to find out why due to some TestCafe jankiness. I suspected that much of the jankiness was due to running the extension views from inside the sandbox iframe, so I decided to re-think our testing setup. This PR removes the need to use the reactor sandbox, as well as any iframe, in order to run the functional tests. It does this by mocking the extension bridge that each extension view loads. This simplifies our code and also makes tests run faster and be more stable. This allowed me to stabilize the tests that were unstable.

Related Issue

Motivation and Context
Stable tests!

Screenshots (if appropriate):
Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[x] All tests pass and I've made any necessary test changes.
[x] I've updated the schema in extension.json or no changes are necessary.

Thanks for the reviews!


Display Monetary Values With User's Regional Settings

Gnome control center has a section dedicated to formats that states "Formats are used for numbers, dates, and currencies." Money could automatically select the correct currency based on the user's setting.

Will look into this, thanks!

Please test V2022.11.0-beta3

Hmm, it's not working for me

When I open the app for the first time, it's nothing. But if I restart it or create an account the symbol becomes $.
Also, why should it be nothing and not €?

Boh 🤷♂ that's what I'm trying to figure out haha. What's ur locale code on the computer? it_IT?

Ok I'm going to try some things e vediamo cosa succede

I built the new version, and to test this functionality, i first edited ~/.config/Nickvision/NickvisionMoney/config.json and removed the symbol entry (so that the app does not load that setting), and I opened the app and created a new account, it correctly picked up my ₹ symbol

@bordam Try downloading and running the .flatpak file from V2022.11.0-beta3 again and see if it works.
When you open the app, check the Preferences dialog and see if the symbol is set to $. If it is, delete all the text in that box and close the dialog. Reopen the dialog and it should be €.

Try downloading and running the .flatpak file from V2022.11.0-beta3 again and see if it works.
It works for me (ru_RU.UTF-8, the app correctly sets ₽).

By the way, user region settings affect not only currency, but also numbers. As you can see in GNOME settings, 123,456.78 is valid number for english, but it's not valid for russian for example (123456,78). Currently the app expects numbers in english format, but if I try to put number in russian format, it just cuts the value without any warning (123,45 becomes 123). This behaviour can be very confusing for users. Should I open another issue for this?

You can leave it in this issue. I will change the title of the issue to reflect displaying monetary values with regional settings.

Tested now, it works flawlessly both with AUR vcs package and flatpak package. Thank you so much!! First time I open the app, if I open preferences currency is still set to nothing, but I don't see it as an actual issue from a usability perspective honestly

Great! I'm just going to fix the issue of displaying the monetary values $1,000.52 vs €1.000,52

Same problem also applies to dates!!

Yes true!

Please test V2022.11.0-beta4
Input and displaying of monetary values should work in a user's locale settings now.

It doesn't work properly. I created a new account and saw this:

Then I've created a transaction for tests.
what value I enter -> what I get
123,45 -> 123,45 🆗
123.45 -> ,00 ?*
123 -> 1,23 :x:

it would be good if the app will ask to enter another value if it doesn't fit the format

@fsobolev
123.45 -> ,00 ?* is correct no? Since 123.45 is an invalid amount in your locale. It should be 123.450 to be correct, no?

Edit: oh, and also if I delete the currency sign from the value string, it always becomes ",00"

That's weird cause in USA settings if I do 45 it correctly goes to $45.00, hmmm

@fsobolev 123.45 -> ,00 ?* is correct no? Since 123.45 is an invalid amount in your locale. It should be 123.450 to be correct, no?

Both 123.45 and 123.450 are incorrect in my locale (only comma is accepted and only as a separator of the fractional part). My point was this:

it would be good if the app will ask to enter another value if it doesn't fit the format

Similar to when you leave group description empty when creating new group for example, the dialog is reopened and the app tells the user what's wrong.

123 -> 1,23 x

Can you see if this is fixed with the latest commit? https://github.com/nlogozzo/NickvisionMoney/commit/3574bdcad291e9e7e3962a3bb865576d4b6339f1

123 -> 1,23 x

Can you see if this is fixed with the latest commit? 3574bdc

No changes

No changes

123 is expected to be 123, correct?

it would be good if the app will ask to enter another value if it doesn't fit the format

That should be fixed in: https://github.com/nlogozzo/NickvisionMoney/commit/361d1ba8424460548d96875a7fd6cb2999f6bbbb

That should be fixed in: 361d1ba

Works great.

123 is expected to be 123, correct?

Showing 123,00 would be fine too

The way the C++ money_put library works is very weird, and requires money values to be formated weirdly to be handled universally. I have to try some things...

123 -> 1,23 x

@fsobolev If you type 123,00 does it work correctly? The application is supposed to add ,00 to the end if it's not found, but for some reason, it's not doing it.

If you type 123,00 does it work correctly? The application is supposed to add ,00 to the end if it's not found, but for some reason, it's not doing it.
123,00 -> 123,00
123,0 -> shows that the value is incorrect

Since this issue seems complicated, I have a proposal. Let's not rely on locale settings and just expect value string to contain numbers and either one dot or one comma as decimal separator. This way "123,456.78" will be invalid, but both "123456.78" and "123456,78" will be valid no matter what is a user's locale. I think it's acceptable and universal enough, So if it's easier to implement, you will have more time to work on other issues.

@fsobolev Try 123 with https://github.com/nlogozzo/NickvisionMoney/commit/49174ebdeb211619fbbfedc7e23e55b57165cb2b

@fsobolev Try 123 with 49174eb

No changes.

@fsobolev Could you change src/helpers/moneyhelpers.cpp to
#include "moneyhelpers.hpp"
#include <sstream>
#include <iostream>

using namespace NickvisionMoney::Helpers;

std::string MoneyHelpers::boostMoneyToLocaleString(boost::multiprecision::cpp_dec_float_50 amount, const std::locale& locale)
{
    std::stringstream builder;
    //Get Amount As String
    amount *= 100.0;
    builder << amount;
    std::string amountAsString{ builder.str() };
    //Reset Builder
    builder.str("");
    builder.clear();
    //Get Amount as Locale String
    builder.imbue(locale);
    builder << std::showbase << std::put_money(amountAsString);
    return builder.str();
}

boost::multiprecision::cpp_dec_float_50 MoneyHelpers::localeStringToBoostMoney(const std::string& localeString, const std::locale& locale)
{
    std::stringstream builder;
    builder.imbue(locale);
    builder << localeString;
    long double value{ 0.00 };
    builder >> std::get_money(value);
    std::cout << localeString << std::endl;
    std::cout << value << std::endl;
    value /= 100;
    return { value };
}

bool MoneyHelpers::isLocaleDotDecimalSeperated(const std::locale& locale)
{
    return std::use_facet<std::moneypunct<char>>(locale).decimal_point() == '.';
}

And try to create a transaction with the amount 123 and check the console for an output and send me the output from the console.

@nlogozzo
123 ₽,00
123

Ah i see the issue tho! Thank you for this!

@fsobolev Please try https://github.com/nlogozzo/NickvisionMoney/commit/7a257edc2c170ccfd8d37c1d77e0da161ed2eed9

@fsobolev Please try 7a257ed

Crash on attempt to create/edit transaction with any value.
terminate called after throwing an instance of 'std::out_of_range'
  what():  basic_string::erase: __pos (which is 32) > this->size() (which is 9)
Aborted (core dumped)

Ok I switched to the Boost.Locale library for localization and hopefully the formatting works a lot better for monetary values. Try the latest commit and let me know how it looks. https://github.com/nlogozzo/NickvisionMoney/commit/a3b8536bebbbc36dbcfe6bb11d0e07f8911a093e

That's great, latest commit works correctly for me! At this point, a good thing would be to automatically convert numpad's . to a whatever symbol separates integers and decimals (e.g. comma), like gnumeric does.

That's great, latest commit works correctly for me! At this point, a good thing would be to automatically convert numpad's . to a whatever symbol separates integers and decimals (e.g. comma), like gnumeric does.

That may be a little hard to do...I'll look into it

Closing this issue as it's been implemented.
Thank you everyone for your endless testing, feedback, and patience :)

All of the changes with the new Boost.Locale library can be found in the latest beta: https://github.com/nlogozzo/NickvisionMoney/releases/tag/2022.11.0-beta5


Not Null Constraint

Hello,
I have made some changes, so the package will add a not null constraint, when the not_null test is present.
I have tested the snowflake implementation, but since I do not have access to a PostgreSQL or Oracle instance, I could not test these two implementations.
I have copied the implementations for PostgreSQL and Oracle from:

PostgreSQL
Oracle

Just to provide an update, I haven't forgotten this PR. I moved to a new house last weekend so things are just a little hectic. I have started a minor addition to your code by adding a macro to detect whether the column is already set as NOT NULL. That would be consistent with how the other constraints work.

I moved to a new house last weekend so things are just a little hectic.

No problem. That is absolutely understandable.

I have started a minor addition to your code by adding a macro to detect whether the column is already set as NOT NULL.
That would be consistent with how the other constraints work.

I also thought it was necessary at first, but in all implementations it is an idempotent action. Therefore the check would not be mandatory.
If you nevertheless want to do the test that the code has some continuity, I understand that.

I have started a minor addition to your code by adding a macro to detect whether the column is already set as NOT NULL

Does I have to do something in order to help you ?


MINOR: Adjust checkstyle suppression paths to work on Windows

Use the file name whenever possible and replace / with [/\]
when it's not.
Also remove unnecessary suppresions.

@vahidhashemian, can you please verify that his fixes the Windows build issues?

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/kafka-pr-jdk8-scala2.12/5685/
Test FAILed (JDK 8 and Scala 2.12).

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/kafka-pr-jdk7-scala2.11/5699/
Test FAILed (JDK 7 and Scala 2.11).

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/kafka-pr-jdk8-scala2.12/5686/
Test PASSed (JDK 8 and Scala 2.12).

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/kafka-pr-jdk7-scala2.11/5700/
Test PASSed (JDK 7 and Scala 2.11).

Thanks @ijuma. This fixes the issue I reported. But, as I mentioned in my mailing list response, I now see other errors for some of core tests.

@dguy, can you please review this?

Merging to 0.11.0 and trunk.


Use toLowerCase() to match filter input to agencies/categoeries

Entering 'law' into the agency filter will leave only "Law Department" showing,  but 'Law' yields no results.  This is because we are lower-casing the agency name, but not the user's input.

Fixed in 79086b214a037bd6ad4b69094a0cefab47388944


Update testcontainers-scala to 0.38.8

Updates com.dimafeng:testcontainers-scala from 0.38.4 to 0.38.8.
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "com.dimafeng", artifactId = "testcontainers-scala" } ]

labels: library-update, semver-patch

Superseded by #232.


User modal dialog - team link

Feature or Bugfix

Feature

Detail

Turns various appearances of Team name text into clickable links, which pop up a modal dialog that lists the users in the team.
For more detail on the proposal, see: https://github.com/data-dot-all/dataall/issues/1626
As we don't have Cognito available to us and use a separate custom system for roles management, we could use some help with feedback and testing on the Cognito piece of this, if there is interest in accepting this contribution.

Relates

https://github.com/data-dot-all/dataall/issues/1626

Security
Please answer the questions below briefly where applicable, or write N/A. Based on
OWASP 10.

Does this PR introduce or modify any input fields or queries - this includes
fetching data from storage outside the application (e.g. a database, an S3 bucket)?  NO

Is the input sanitized?  N/A
What precautions are you taking before deserializing the data you consume?  N/A
Is injection prevented by parametrizing queries?  N/A
Have you ensured no eval or similar functions are used?  YES

Does this PR introduce any functionality or component that requires authorization?  NO

How have you ensured it respects the existing AuthN/AuthZ mechanisms?  N/A
Are you logging failed auth attempts?  N/A

Are you using or adding any cryptographic features?  NO

Do you use a standard proven implementations?  N/A
Are the used keys controlled by the customer? Where are they stored?  N/A

Are you introducing any new policies/roles/users?  NO

Have you used the least-privilege principle? How?  N/A

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Left some comments - mostly nits on syntax
One high level question I want to ask is whether every user should be allowed to view which members belong in each/any group? Is there a chance that that is too much information for any given user to be able to get? Should there be some auth controls around this?
Also, this is a good start to add this feature for Orgs, Envs, Datasets, and Shares. Ultimately we can also add to other modules like Notebooks, Dashboard, etc. if we think should be used everywhere

Thanks @noah-paige for the comments.  For us, having transparency to who is in the teams is actually desirable so that users can reach out to members of those teams to ask questions--they can also see members of those teams in our RBAC system anyways, so this just makes it convenient.  From our perspective I can't think of a reason we would want to limit this information, but others elsewhere may have a different view.

Addressed PR comments.

Hi @noah-paige, I agree with you on 1, 2, and 3 regarding approach for further extension in future PRs.  Were you able to check if this works with Cognito?  That's one area we aren't able to test it against, as we are limited to our custom authorizer.

@rbernotas - yes I tested with Cognito, below is a screenshot of the User Modal (please confirm this is as expected)

For 1 above would you want to make changes such that UserModal is only on the following pages:

EnvironmentOverview
EnvironmentTeams
OrganizationOverview
OrganizationTeams
ShareView
DatasetGovernance (which is used in DatasetOverview)

future PRs can extend further to otehr pieces like TableOverview, WorksheetView, AdministrationTeams, etc etc

@noah-paige confirming both your Cognito screenshot is works as expected, and I will also send a commit in a bit that will limit the UserModal to those specific pages.

@noah-paige , removed the modal dialog from the various views discussed.


session gets corrupted when using "\Zend\ProgressBar\Upload\SessionProgress"

Whenever you submit a form using "PHP session-upload-progress", and you are also using the ZF session-container object, the session becomes corrupted. It looks like the upload-progress data is being injected into the ZF session data. I can confirm this happens with all releases of the framework. Output of error below:
Stack trace:
#0 /sites/shepherdpups/public_html/vendor/zendframework/library/Zend/Stdlib/ArrayObject.php(412): Zend\Stdlib\ArrayObject->setIteratorClass(NULL)
#1 [internal function]: Zend\Stdlib\ArrayObject->unserialize('a:4:{s:7:"stora...')
#2 /sites/shepherdpups/public_html/vendor/zendframework/library/Zend/Session/SessionManager.php(112): session_start()
#3 /sites/shepherdpups/public_html/module/Application/Module.php(195): Zend\Session\SessionManager->start()
#4 /sites/shepherdpups/public_html/module/Application/Module.php(53): Application\Module->bootstrapSession(Object(Zend\Mvc\MvcEvent))
#5 [internal function]: Application\Module->onBootstrap(Object(Zend\Mvc\MvcEvent))
#6 /sites/shepherdpups/public_html/vendor/zendframework/library/Zend/EventManager/EventManager.php(444): call_user_func(Array, in /sites/shepherdpups/public_html/vendor/zendframework/library/Zend/Stdlib/ArrayObject.php on line 370

Note: just submitting the form corrupts the session container.

I've just encountered this bug (corrupt session object) and spent a few days trying to find the culprit, which turned out to be the \Zend\ProgressBar\Upload\SessionProgress. What's gotten me upset now is not the bug itself, but the fact that OP reported it August 2015 and it's still present. Is this issue ever going to be addressed ?

@Boournz We need far more information than was presented in the original report in order to reproduce it. If you can provide a reproduce test case, that will allow us to proceed.

@weierophinney My apologies. I mistakenly presumed that because the issue had been marked as a bug by @Ocramius, it had been verified.
I have created a project using the ZF Skeleton app that reproduces the issue I experienced. Two things need to exist for the issue to occur; the session must have a set property, and the view must contain the ZF Progress bar call formFileSessionProgress(). The project includes both.
If the formFileSessionProgress() call from the view to the ZF Progressbar is removed, the issue does not occur. If the Session does not have a set property, the issue does not occur.
To reproduce the issue, simply load the index.php in your web browser and click the Upload button. You do not need to set a file to upload. The issue results in the $_SESSION containing properties with __PHP_Incomplete_Class.

Jan 25 21:54:44 ubuntu : PHP Warning:  Class __PHP_Incomplete_Class has no unserializer in Unknown on line 0
Jan 25 21:54:44 ubuntu : message repeated 2 times: [ PHP Warning:  Class __PHP_Incomplete_Class has no unserializer in Unknown on line 0]
Jan 25 21:54:44 ubuntu : PHP Warning:  Erroneous data format for unserializing 'Zend\Stdlib\ArrayObject' in /opt/bitnami/apps/myapp/vendor/zendframework/zend-session/src/SessionManager.php on line 131
Jan 25 21:54:44 ubuntu : PHP Stack trace:
Jan 25 21:54:44 ubuntu : PHP   1. {main}() /opt/bitnami/apps/myapp/public/index.php:0
Jan 25 21:54:44 ubuntu : PHP   2. Zend\Mvc\Application::init($configuration = uninitialized) /opt/bitnami/apps/myapp/public/index.php:40
Jan 25 21:54:44 ubuntu : PHP   3. Zend\Mvc\Application->bootstrap($listeners = uninitialized) /opt/bitnami/apps/myapp/vendor/zendframework/zend-mvc/src/Application.php:273
Jan 25 21:54:44 ubuntu : PHP   4. Zend\EventManager\EventManager->triggerEvent($event = uninitialized) /opt/bitnami/apps/myapp/vendor/zendframework/zend-mvc/src/Application.php:161
Jan 25 21:54:44 ubuntu : PHP   5. Zend\EventManager\EventManager->triggerListeners($event = uninitialized, $callback = uninitialized) /opt/bitnami/apps/myapp/vendor/zendframework/zend-eventmanager/src/EventManager.php:171
Jan 25 21:54:44 ubuntu : PHP   6. Application\Module->onBootstrap($event = uninitialized) /opt/bitnami/apps/myapp/vendor/zendframework/zend-eventmanager/src/EventManager.php:322
Jan 25 21:54:44 ubuntu : PHP   7. Application\Module->initTranslator($event = uninitialized) /opt/bitnami/apps/myapp/module/Application/src/Module.php:38
Jan 25 21:54:44 ubuntu : PHP   8. Zend\ServiceManager\ServiceManager->get($name = uninitialized) /opt/bitnami/apps/myapp/module/Application/src/Module.php:49
Jan 25 21:54:44 ubuntu : PHP   9. Zend\ServiceManager\ServiceManager->doCreate($resolvedName = uninitialized, $options = uninitialized) /opt/bitnami/apps/myapp/vendor/zendframework/zend-servicemanager/src/ServiceManager.php:200
Jan 25 21:54:44 ubuntu : PHP  10. Zend\Session\Service\ContainerAbstractServiceFactory->__invoke($container = uninitialized, $requestedName = uninitialized, $options = uninitialized) /opt/bitnami/apps/myapp/vendor/zendframework/zend-servicemanager/src/ServiceManager.php:758
Jan 25 21:54:44 ubuntu : PHP  11. Zend\Session\AbstractContainer->__construct($name = uninitialized, $manager = uninitialized) /opt/bitnami/apps/myapp/vendor/zendframework/zend-session/src/Service/ContainerAbstractServiceFactory.php:101
Jan 25 21:54:44 ubuntu : PHP  12. Zend\Session\SessionManager->start($preserveStorage = uninitialized) /opt/bitnami/apps/myapp/vendor/zendframework/zend-session/src/AbstractContainer.php:78
Jan 25 21:54:44 ubuntu : PHP  13. session_start() /opt/bitnami/apps/myapp/vendor/zendframework/zend-session/src/SessionManager.php:131
Jan 25 21:54:44 ubuntu : PHP Warning:  session_start(): Failed to decode session object. Session has been destroyed in /opt/bitnami/apps/myapp/vendor/zendframework/zend-session/src/SessionManager.php on line 131
Jan 25 21:54:44 ubuntu : PHP Stack trace:
Jan 25 21:54:44 ubuntu : PHP   1. {main}() /opt/bitnami/apps/myapp/public/index.php:0
Jan 25 21:54:44 ubuntu : PHP   2. Zend\Mvc\Application::init($configuration = uninitialized) /opt/bitnami/apps/myapp/public/index.php:40
Jan 25 21:54:44 ubuntu : PHP   3. Zend\Mvc\Application->bootstrap($listeners = uninitialized) /opt/bitnami/apps/myapp/vendor/zendframework/zend-mvc/src/Application.php:273
Jan 25 21:54:44 ubuntu : PHP   4. Zend\EventManager\EventManager->triggerEvent($event = uninitialized) /opt/bitnami/apps/myapp/vendor/zendframework/zend-mvc/src/Application.php:161
Jan 25 21:54:44 ubuntu : PHP   5. Zend\EventManager\EventManager->triggerListeners($event = uninitialized, $callback = uninitialized) /opt/bitnami/apps/myapp/vendor/zendframework/zend-eventmanager/src/EventManager.php:171
Jan 25 21:54:44 ubuntu : PHP   6. Application\Module->onBootstrap($event = uninitialized) /opt/bitnami/apps/myapp/vendor/zendframework/zend-eventmanager/src/EventManager.php:322
Jan 25 21:54:44 ubuntu : PHP   7. Application\Module->initTranslator($event = uninitialized) /opt/bitnami/apps/myapp/module/Application/src/Module.php:38
Jan 25 21:54:44 ubuntu : PHP   8. Zend\ServiceManager\ServiceManager->get($name = uninitialized) /opt/bitnami/apps/myapp/module/Application/src/Module.php:49
Jan 25 21:54:44 ubuntu : PHP   9. Zend\ServiceManager\ServiceManager->doCreate($resolvedName = uninitialized, $options = uninitialized) /opt/bitnami/apps/myapp/vendor/zendframework/zend-servicemanager/src/ServiceManager.php:200
Jan 25 21:54:44 ubuntu : PHP  10. Zend\Session\Service\ContainerAbstractServiceFactory->__invoke($container = uninitialized, $requestedName = uninitialized, $options = uninitialized) /opt/bitnami/apps/myapp/vendor/zendframework/zend-servicemanager/src/ServiceManager.php:758
Jan 25 21:54:44 ubuntu : PHP  11. Zend\Session\AbstractContainer->__construct($name = uninitialized, $manager = uninitialized) /opt/bitnami/apps/myapp/vendor/zendframework/zend-session/src/Service/ContainerAbstractServiceFactory.php:101
Jan 25 21:54:44 ubuntu : PHP  12. Zend\Session\SessionManager->start($preserveStorage = uninitialized) /opt/bitnami/apps/myapp/vendor/zendframework/zend-session/src/AbstractContainer.php:78
Jan 25 21:54:44 ubuntu : PHP  13. session_start() /opt/bitnami/apps/myapp/vendor/zendframework/zend-session/src/SessionManager.php:131
Jan 25 21:54:44 ubuntu : PHP Fatal error:  Uncaught Zend\Session\Exception\RuntimeException: Container cannot write to storage due to type mismatch in /opt/bitnami/apps/myapp/vendor/zendframework/zend-session/src/AbstractContainer.php:202#012Stack trace:#012#0 /opt/bitnami/apps/myapp/vendor/zendframework/zend-session/src/AbstractContainer.php(404): Zend\Session\AbstractContainer->verifyNamespace(false)#012#1 /opt/bitnami/apps/myapp/module/Application/src/Module.php(52): Zend\Session\AbstractContainer->offsetExists('locale')#012#2 /opt/bitnami/apps/myapp/module/Application/src/Module.php(38): Application\Module->initTranslator(Object(Zend\Mvc\MvcEvent))#012#3 /opt/bitnami/apps/myapp/vendor/zendframework/zend-eventmanager/src/EventManager.php(322): Application\Module->onBootstrap(Object(Zend\Mvc\MvcEvent))#012#4 /opt/bitnami/apps/myapp/vendor/zendframework/zend-eventmanager/src/EventManager.php(171): Zend\EventManager\EventManager->triggerListeners(Object(Zend\Mvc\MvcEvent))#012#5 /opt/bitnami/apps/myapp/vendor/zendframework/zend-mvc/src/Applicat in /opt/bitnami/apps/myapp/vendor/zendframework/zend-session/src/AbstractContainer.php on line 202

any progress of this issue? i face it at 2.4.9 here. my opinion: not direct relation with session or upload progress instead system can't un-serialize data anyhow [Zend/Stdlib/ArrayObject].

This repository has been closed and moved to laminas/laminas-progressbar; a new issue has been opened at https://github.com/laminas/laminas-progressbar/issues/3.


HDFS-14729. Upgrade Bootstrap and jQuery versions used in HDFS UIs

This patch updates the Bootstrap and jQuery versions used by different HDFS UIs like Namenode web UI, Datanode web UI etc.
Bootstrap 3.3.7 -> 3.4.1
jQuery 3.3.1 -> 3.4.1
Testing done:
I tested the patch locally by bringing up HDFS in a pseudo distributed mode and manually browsing through UI components in localhost and made sure that there are no compatibility issues or errors thrown in the browser console. And I did not see any major change in the UI presentation as well.

@jnp @anuengineer @sunilgovind @vinoduec Please review when you find time

+1

:broken_heart: -1 overall

Vote
Subsystem
Runtime
Comment

0
reexec
49
Docker mode activated.

_ Prechecks _

+1
dupname
1
No case conflicting files found.

+1
@author
0
The patch does not contain any @author tags.

-1
test4tests
0
The patch doesn't appear to include any new or modified tests.  Please justify why no new tests are needed for this patch. Also please list what manual steps were performed to verify this patch.

_ trunk Compile Tests _

0
mvndep
68
Maven dependency ordering for branch

+1
mvninstall
1132
trunk passed

+1
compile
1099
trunk passed

+1
mvnsite
900
trunk passed

+1
shadedclient
2850
branch has no errors when building and testing our client artifacts.

+1
javadoc
362
trunk passed

_ Patch Compile Tests _

0
mvndep
24
Maven dependency ordering for patch

+1
mvninstall
1197
the patch passed

+1
jshint
350
There were no new jshint issues.

+1
compile
1022
the patch passed

+1
javac
1022
the patch passed

+1
mvnsite
891
the patch passed

-1
whitespace
0
The patch 2  line(s) with tabs.

+1
xml
1
The patch has no ill-formed XML file.

+1
shadedclient
580
patch has no errors when building and testing our client artifacts.

+1
javadoc
357
the patch passed

_ Other Tests _

-1
unit
8318
root in the patch failed.

+1
asflicense
45
The patch does not generate ASF License warnings.

17207

Reason
Tests

Failed junit tests
hadoop.hdfs.server.namenode.TestFsck

hadoop.hdfs.server.namenode.TestNameNodeMetadataConsistency

hadoop.hdfs.server.blockmanagement.TestBlockTokenWithDFSStriped

Subsystem
Report/Notes

Docker
Client=19.03.1 Server=19.03.1 base: https://builds.apache.org/job/hadoop-multibranch/job/PR-1297/4/artifact/out/Dockerfile

GITHUB PR
https://github.com/apache/hadoop/pull/1297

Optional Tests
dupname asflicense shadedclient compile javac javadoc mvninstall mvnsite unit xml jshint

uname
Linux c0145d2e8890 4.4.0-139-generic #165-Ubuntu SMP Wed Oct 24 10:58:50 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
personality/hadoop.sh

git revision
trunk / 6244502

Default Java
1.8.0_222

whitespace
https://builds.apache.org/job/hadoop-multibranch/job/PR-1297/4/artifact/out/whitespace-tabs.txt

unit
https://builds.apache.org/job/hadoop-multibranch/job/PR-1297/4/artifact/out/patch-unit-root.txt

Test Results
https://builds.apache.org/job/hadoop-multibranch/job/PR-1297/4/testReport/

Max. process+thread count
4334 (vs. ulimit of 5500)

modules
C: hadoop-hdfs-project/hadoop-hdfs hadoop-hdfs-project/hadoop-hdfs-rbf . U: .

Console output
https://builds.apache.org/job/hadoop-multibranch/job/PR-1297/4/console

versions
git=2.7.4 maven=3.3.9 jshint=2.10.2

Powered by
Apache Yetus 0.10.0 http://yetus.apache.org

This message was automatically generated.


BUG: sky130 pdk pypi Install

When I try to install the sky130 pdk I receive the following error due to it not being able to find the readme.  Here I have "sky130-hdl21 == 5.0.0" as a dependency in the pyproject.toml of my "bandgaps" project and am trying to do an editable install of bandgaps.
I would propose that we convert the sky130-hdl21 pdk package to use a pyproject.toml to define the metadata and build the project using flit.
This would have a simpler definition than the currernt setup.py and handles problems where the package is a zip rather than an actual path.

Looks like that happens with pip too:
$ pip install sky130-hdl21==5.0
Collecting sky130-hdl21==5.0
  Using cached sky130-hdl21-5.0.0.tar.gz (50 kB)
  Preparing metadata (setup.py) ... error
  error: subprocess-exited-with-error

  × python setup.py egg_info did not run successfully.
  │ exit code: 1
  ╰─> [13 lines of output]
        File "/private/var/folders/2t/c78725w17pb1bcxb9t3k17wc0000gn/T/pip-install-m8ad3bea/sky130-hdl21_1398dbc2b5714fca8b2684a328ce72e9/setup.py", line 16, in <module>
          long_description = (here / "readme.md").read_text(encoding="utf-8")
                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      FileNotFoundError: [Errno 2] No such file or directory: '/private/var/folders/2t/c78725w17pb1bcxb9t3k17wc0000gn/T/pip-install-m8ad3bea/sky130-hdl21_1398dbc2b5714fca8b2684a328ce72e9/readme.md'
      [end of output]

(Guess everyone has been using this from source instead of PyPi.)
And if you just download the tar-ball from PyPi here:
https://pypi.org/project/sky130-hdl21/#files
It doesn't include the README.
Which is specifically a problem because, the setup-script reads the README.
That is extra weird because... PyPi clearly has the README?
It renders it right here on the project page?
https://pypi.org/project/sky130-hdl21/

The main Hdl21 package in fact added a check for this once upon a time (here); seems the PDK packages did not.
So:

Agree getting that README uploaded (or at least working) is a good issue
Agree moving to the TOML metadata format is a good issue (in fact it's #49)
Not sure I totally follow how they relate. On the theory that the family of TOML-tools is better at not screwing this up?

But - PRs for either or both welcome!
We have a release pending, primarily for #157, so it's a great time for em.

Awesome I submitted #219 which addresses both issues.

It renders it right here on the project page?

Yeah, it might upload that seperately as part of the publish api.

Not sure I totally follow how they relate. On the theory that the family of TOML-tools is better at not screwing this up?

The pyproject.toml reads the readme from the specified file by default.


mismatched type on Reference::reference_get_count()

Godot version:
master 95a1400
OS/device including version:
Any
Issue description:
In core/reference.cpp, reference_get_count() has the following definition:
int Reference::reference_get_count() const {
    return refcount.get();
}

Note: refcount is of type SafeRefCount.
In core/safe_refcount.h, SafeRefCount.get() has the definition:
_ALWAYS_INLINE_ uint32_t get() const { // nothrow
    return count;
}

I recommend changing the signature of reference_get_count() to have the same unsigned-ness to prevent potential integer overflow. (Unless I am missing some subtle design decision.)
Steps to reproduce:
Create an reference object, explicitly reference it a bunch and it should go negative before the underlying reference count does.
Minimal reproduction project:

Perhaps both should be changed to int64_t or uint64_t?

Realistically, I don't see any given object having more than 2 billion references. "unsigned int" and uint32_t may be safe enough and even faster on 32 bit platforms (like older PCs and mobile.) I'm more concerned with the implications of allowing integer overflow in a piece of code that can be used to leak/hijack memory.


Find diverse peers

Is your feature request related to a problem? Please describe.

We should aim to have at least one peer from each subnet.
Describe the solution you'd like

Use discv5 to periodically search for peers with attestation subnets we are missing
Describe alternatives you've considered

Additional context

this is not normal from canbo's log:
2020-08-10 23:43:58  [CHAIN]            info: Initialize forkchoice with pre-finalized blocks from 17408 to 17408
        and finalized block 17440

and from my log
2020-08-11 15:09:23  [CHAIN]            info: Initialize forkchoice with pre-finalized blocks from 28127 to 28127
        and finalized block 28160

in my case, I debugged and found that finalized block still in block database so there is no pre-finalized blocks saved in ArchiveBlock db except for the justified block, it means ArchiveBlocks task not finished while ArchiveState finished already (because it's faster)
this may happen if we don't do a cleanup stop (kill -9 to kill the process)

I think you posted this in wrong issue? :smile:

the above comment should be for #1381 which is closed.

@mpetrunic what's the rationale of this?
right now we have ATTESTATION_SUBNET_COUNT=64 so we should have at least 64 peers for each subnet?
also I see we have maxPeers as network option but I don't see where it's being used.

right now we have ATTESTATION_SUBNET_COUNT=64 so we should have at least 64 peers for each subnet?

At least 1 peer at least for each subnet (single peer can be subscribed to multiple subnets so we don't actually ned to have 64 peers at minimum). If you aren't subscribed to subnet you are publishing attestation, you are doing fanout and you need peer with connection that is on that subnet in order for someone to aggregate your attestation.

also I see we have maxPeers as network option but I don't see where it's being used.

I think we need to set it here, but we can have more peers in peer store but just maxPeers with connection.
https://github.com/libp2p/js-libp2p/blob/master/doc/CONFIGURATION.md#configuring-connection-manager

At least 1 peer for each subnet (single peer can be subscribed to multiple subnets so we don't actually need to have 64 peers at minimum). If you aren't subscribed to subnet and you are publishing attestation, you are doing fanout and you need peer with connection that is on that subnet in order for someone to aggregate your attestation.

I see. Just a clarification that we have RANDOM_SUBNETS_PER_VALIDATOR as 1, it means 1 peer only subscribe to 1 subnet so if we want to have peers subscribing to all subnets we need to have 64 peers https://github.com/ChainSafe/lodestar/blob/master/packages/lodestar/src/tasks/tasks/interopSubnetsJoiningTask.ts

I see. Just a clarification that we have RANDOM_SUBNETS_PER_VALIDATOR as 1, it means 1 peer only subscribe to 1 subnet so if we want to have peers subscribing to all subnets we need to have 64 peers https://github.com/ChainSafe/lodestar/blob/master/packages/lodestar/src/tasks/tasks/interopSubnetsJoiningTask.ts

That's unreleated to that, we don't have to be subscribed to subnet to propagate attestation, we just need to have peer on our attestation subnet.
But since you've asked, we implement that incorrectly, we don't track how many active validators we have (so we are always subscribed to one random subnet).
There are couple of solutions to that

validator must send committee subscription request even if it's not aggregator (https://github.com/ethereum/eth2.0-APIs/pull/68)
we assume active validators based on attester duties


Additional arguments are passed to dependecies

What version of Turborepo are you using?
1.4.3
What package manager are you using / does the bug impact?
Yarn v1
What operating system are you using?
Mac
Describe the Bug
this is my turbo.json
{
  "$schema": "https://turborepo.org/schema.json",
  "pipeline": {
    "build": {
      "dependsOn": ["^build"],
      "outputs": ["dist/**"]
    },
    "app#build": {
      "dependsOn": [
        "^build",
        "$VITE_APP_NAME",
      ],
      "outputs": ["dist/**"]
    },

  },
  "globalDependencies": [".env.*"]
}

and this is my package.json
{
  "workspaces": [
    "packages/*",
    "apps/*"
  ],
  "scripts": {
    "build": "turbo run build",
    "build:app": "turbo run build --filter=app"
  },
}

when i run yarn build:app -- -- --mode development the -- --mode development is passed to the app build script and all dependencies build script.
Expected Behavior
according to this in the document
Note that these additional arguments will not be passed to any additional tasks that are run due to dependencies from the pipeline configuration.
i expect the add additional arguments will not be passed to dependencies tasks
To Reproduce
turbo.json:
{
  "$schema": "https://turborepo.org/schema.json",
  "pipeline": {
    "build": {
      "dependsOn": ["^build"],
      "outputs": ["dist/**"]
    },
    "app#build": {
      "dependsOn": [
        "^build",
        "$VITE_APP_NAME",
      ],
      "outputs": ["dist/**"]
    },

  },
  "globalDependencies": [".env.*"]
}

package.json:
{
  "workspaces": [
    "packages/*",
    "apps/*"
  ],
  "scripts": {
    "build": "turbo run build",
    "build:app": "turbo run build --filter=app"
  },
}

yarn run build:app -- -- --mode dev

in the log you can see mode is passed to packages too.

The docs are out of date as we do pass these arguments. We're working on a better way to configure args on a per dependency basis, but haven't settled on a good way to express this in turbo.json.

so is there any solution or workaround? this problem literally blocks me from deploying my project to different environments.
or should I wait for the new version?

I actually found this post b/c I was looking to see if there's a way to contribute to the docs for Turborepo  in order to better explain that options are passed to all tasks including to dependencies but I guess that's a bug? Either way it is super unclear, I woudln't mind contributing some docs updates if thats something the project is open too (it could reference this bug if that's acceptable).
We had this pop up where we were passing the --production flag to Webpack in the build pipeline but that unfortunately caused our other packages using SWC to crash. I resolved this issue by adjusting the scripts in the workspaces and the pipelines. Now I have a deploy pipeline that calls a build:prod where I pass the flag to Webpack. The deploy task has a dependency on the non prod tasks that invoke build in our packages with SWC. Definitely not an ideal solution but a good work around.

Has there been any progress on this issue?
I have encountered the same problem and hope that the turbo additional arguments can be passed on without being transmitted to the dependencies.

For others who may find this and have a similar context to me, I am running a monorepo in which I pass --base vite option to apps for building, I use plain tsc to compile some of my dependencies, which complains about the unrecognized passed arguments. I just swopped out tsc for tsx in those packages and tsx does not seem to care.

Looks like this issue is addressed in today's documentation: https://turbo.build/repo/docs/reference/command-line-reference/run


不是说整改到3月35号中午，为什么好多博客还是看不了

Describe the bug
A clear and concise description of what the bug is.
To Reproduce
Steps to reproduce the behavior:

Go to '...'
Click on '....'
Scroll down to '....'
See error

Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):

OS: [e.g. iOS]
Browser [e.g. chrome, safari]
Version [e.g. 22]

Smartphone (please complete the following information):

Device: [e.g. iPhone6]
OS: [e.g. iOS8.1]
Browser [e.g. stock browser, safari]
Version [e.g. 22]

Additional context
Add any other context about the problem here.

35号。。。


Add responsive buttons:

URXButton: Basic button
URXResolveButton: Resolves to specific URL
URXSearchButton: Search and resolve to first URL

Add CocoaPods integration instructions for iOS 7 and earlier.
Update packaged framework.

:+1: LGTM see comments


bug: newlines are removed instead of changed to a space

🌧 Describe the problem
When calling Cmd.Message() with a message containing a newline, the newline is stripped, which smashes words together.
⛅ Expected behavior
The newline should be replaced with a space, instead of just stripped
🔄 Minimal reproduction
Call Cmd.Message("#foo", "example\nmessage") and observe that the resulting message is "examplemessage" instead of "example message"
💠 Version: girc
v0.0.0-20220410132120-49de39aea653
🖥 Version: Operating system
linux/other
⚙ Additional context
I'm using girc via https://github.com/RITlug/teleirc . When a telegram message contains a newline, the resulting IRC message has this problem. It could be worked around in TeleIRC, but it seemed like girc would be a better place to fix it for everyone.
I'm not sure the best way to handle \r or \r\n - ideally collapsing runs of either to just one space?
🤝 Requirements

[X] I believe the problem I'm facing is a bug, and is not intended behavior. Post here if you're not sure.
[X] I have confirmed that someone else has not submitted a similar bug report.

I do think replacing newlines with spaces is a sufficient short-term solution, but I may finally start taking a look at #43, as that'd also resolve this. I'll try and take a look later today.

Thanks!
Another option, though this one may be better implemented by applications than girc: sopel-twitter replaces newlines with " ⏎ "

Should be implemented via https://github.com/lrstanley/girc/pull/43 -- let me know if you have any further issues.


 Needs a bit more investigation, but is probably easily fixable 👍

🤞 Hopefully totally fixed with https://github.com/subfinder/research/commit/c5b5d238eedd5be4477e9a13286ada6b330dc31b


Ability to search place name by free text (eg village)

User commented "I find it difficult to search when the village in which the census took place does not show.  For instance, Shebbear is shown but the village is Beaford.  I would prefer to see Beaford if both can't be shown."
Allowing a free text search across place of birth, place, civil parish, ecclesiastical district (and any others???) would allow  an a work-around for the place-of-birth issue.
I would suggest putting it into the search table to the left or the right of the Birth county, e.g. https://docs.google.com/drawings/d/1d4_xqHBmiAHzHdoy4cSP2lzzIoWNhJpdno-ABVy602Y/edit?usp=sharing
This is an interim feature, see epic #744 for features to be added later to supplement/replace this.

Again, linked to places change/feature.

Solution is to free text place search.

To do this in FC2 the search would need to be done on two fields
Where searched name is in where_census_taken or house_or_street_name
That assumes that searching is for the current village. The search does not guarantee a result as many addresses were blank and FC1 did not collect where_census_taken information.
Geoff


Cannot find module '@fatso83/retry-dynamic-import/react-lazy' or its corresponding type declarations

Hey,
Using React 18 (CRA) with typescript.

Hi, thanks for reporting! I am not sure how to reproduce this, could you elaborate on how I can reproduce this? I will at the minimum require package.json and the tsconfig.
If you look at https://github.com/fatso83/retry-dynamic-import/tree/main/test-builds you will see that for every published version I check that it works with three different ways of consuming it with TypeScript.:

Does your setup look like/deviate from any of these?
Help me help you :-)

Ah, I might have gotten some progress. I checked out my own project, went into the test-builds directory and replaced the local version of the package with the real one and it immediately failed:
❯ git diff package.json
diff --git a/test-builds/package.json b/test-builds/package.json
index 8d9d2e4..ed73348 100644
--- a/test-builds/package.json
+++ b/test-builds/package.json
@@ -14,7 +14,7 @@
     "test": "run-s typecheck build && ! (grep -i react typescript-moduleresolution-*/dist/assets/*)"
   },
   "dependencies": {
-    "@fatso83/retry-dynamic-import": "file:../pkg",
+    "@fatso83/retry-dynamic-import": "latest",

❯ npx tsc --noEmit typescript-moduleresolution-default/src/main.ts
typescript-moduleresolution-default/src/main.ts:3:40 - error TS2307: Cannot find module '@fatso83/retry-dynamic-import' or its corresponding type declarations.

3 import { dynamicImportWithRetry } from '@fatso83/retry-dynamic-import'
                                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Found 1 error in typescript-moduleresolution-default/src/main.ts:3

This I can work with. I have obviously been fooling myself with the synthetic testing 😢

OH MY LORD. Now I get why this is failing:
❯ get-npm-file @fatso83/retry-dynamic-import
x package/vite.config.js
x package/package.json
x package/README.md

The utility get-npm-file is this, btw.

OK, this is a problem with 2.0.5. Will fix:
retry-dynamic-import on  main [!?] is 📦 v2.0.5 via  v20.5.0 on ☁  (eu-north-1) on ☁   took 7s
❯ get-npm-file<EMAIL_ADDRESS>x package/vite.config.js
x package/package.json
x package/README.md

retry-dynamic-import on  main [!?] is 📦 v2.0.5 via  v20.5.0 on ☁  (eu-north-1) on ☁   took 2s
❯ get-npm-file<EMAIL_ADDRESS>x package/index.js
x package/react-lazy.js
x package/retry-adb9725b.js
x package/package.json
x package/README.md
x package/index-all.d.ts
x package/index.d.ts
x package/react-lazy.d.ts
x package/retry.d.ts

retry-dynamic-import on  main [!?] is 📦 v2.0.5 via 

I think this is fixed now. There were 2 issues.

False security in the integration tests, as Typescript ignores types from symlinked directories (https://github.com/microsoft/TypeScript/issues/56576). This is why the tests could work locally, but not when referencing the actual package published to NPM. I have made a workaround that just copies the files for these tests to avoid this.
Too quick turnaround when releasing 2.0.5 caused me to miss that I did not build the required files before packing the files to publish. Added several checks to avoid this.

If you now npm i @fatso83/retry-dynamic-import@latest you should get 2.1.1 that hopefully works for you.
Would be great if you could report back if it works!

The reporter of #5 has reported this fixed their issue from October, so that's promising 🤞

@fatso83  Work great!!!

@fatso83
Hey, thanks for your fast and good response!!
Another question not sure if its an issue,
when i use retry-dynamic-import/react-lazy and try to block some URL (as in example) the 5 time retry loop does not work.
Should it work similar to this function?

Can you post some code? Or screenshots from the Network tab in the inspector?

Yes,
Import

call component

Block the request chunk

start fallback with some loading... for 10 seconds and no retry in network as occurs.
after 10-15 seconds ChunkLoadError appear.

Hmm ... the demo is using the same code, so does that work for you when blocking and unblocking the request?
https://github.com/fatso83/retry-dynamic-import#demo

yes. when i try "https://fatso83.github.io/retry-dynamic-import/demo/" its work as expected.

Hmm .. I am suspecting that this is really WebPack getting in your way somehow. I am not sure what it does with import(....) calls under the hood, but I do see it uses its own require in the stack trace.

I would set a breakpoint at the import and see what's happening. I am thinking webpack does something too clever (different from the normal import()) for the tooling.

Thnaks, that what i do also but with Alon's function "LazyReact".
managed to fixed the url problem

but still failed to call again

and if i change that with:

its work but no cache busting

You just add a react error boundary around the component

It would be interesting to exactly know what Webpack does and see if I can fix it to also work with Webpack. The "Vite solution" is not specific to Vite: it works exactly like that in a browser if you copy the code out and execute it in the DevTools in Firefox or Chrome. So it's more webpack being strange than the other way around.
Is there an easy way for me to recreate the issue? Like npx create-react-app and then try to wrap the loading of some component?


[FEATURE REQUEST]  Make Backrops optional on Menu/Popover

Description
The popover and menu highly rely on the backdrop to dismiss themselves. This makes it hard to just click a button somewhere else because i have to dismiss the menu first. It would be great to have the option to just make it close while propagating the clicks to whatever elemnt outside the menu is clicked.
Problem Statement
User Story:

As a User having an open Menu/Popover I want to be able to click a button outside the menu without dismissing the Menu/Popver with an extra click first, to get less disrupted in my workflow.

Proposed Solution or API

For Menu make the Backdrop optional by making it a component like in popover
When no backdrop is present the click  just "goes through"

Alternatives
No response
Additional Information
No response

I just figured out that i can workaround on the popover by using no backdrop component, pointerEvents box-none on the Popover content and click outside packages (import { useClickAway } from '@uidotdev/usehooks' + import { useClickOutside as useRnClickOutside } from 'react-native-click-outside'). But for the menu that does not work :/


genesis create-kit -> Unrecognized version string  '(development)'

On MacOS with Genesis installed via homebrew:
$ genesis -v
Genesis 2.0.7
$ ll $(which genesis)
lrwxr-xr-x  1 drnic  admin    36B 25 Jul 09:08 /usr/local/bin/genesis -> ../Cellar/genesis/v2.0.7/bin/genesis
$ genesis create-kit -n redis -D
Unrecognized version string '(development)'
$ genesis init
Unrecognized version string '(development)'

I get the same thing when using bin/genesis from the src repo:
$ bin/genesis init -k concourse
Unrecognized version string '(development)'

Why do we set our $VERSION = "(development)"; if its not a valid version string?
Hmm, confused how this all works. I replaced the above with our $VERSION = "0.0.0"; and still get the same error.
$ bin/genesis init -k concourse
Unrecognized version string '(development)'

I added some stacktrace code and I see:
$ bin/genesis init -k concourse
Trace begun at bin/genesis line 2547
main::semver('(development)') called at bin/genesis line 2555
main::new_enough('(development)', 1.11.0) called at bin/genesis line 2586
main::check_prereqs('no_repo_needed', 1) called at bin/genesis line 3370
main::__ANON__(undef, undef) called at bin/genesis line 3250
main::__ANON__('-k', 'concourse') called at bin/genesis line 4586
main::main('init', '-k', 'concourse') called at bin/genesis line 4604
Unrecognized version string '(development)'

But... I've removed (development) from bin/genesis... where is it coming from?

Ok, the issue was that it was spruce returning this invalid string. I'll make a PR so this is more obvious.
$ spruce -v
spruce - Version (development)


S3 segments in Deleted_Segments do not get retentioned

We've noticed segments in S3 are not getting deleted from the Deleted_Segments directory. This seems to be because when SegmentDeletionManager calls S3PinotFS.listFiles, it only returns files and not directories and always returns an empty list, causing the removeAgedDeletedSegments call to terminate. The Deleted_Segments directory only contains a directory for each table w/ deleted segments.
We found this log line that confirms this which reports 0 files being returned.
[2023-06-21 17:02:32.807244] INFO [S3PinotFS] [pool-17-thread-1:169] Listed 0 files from URI: s3://some-bucket/pinot/pinot-cluster-1/prod-1/Deleted_Segments, is recursive: false

https://github.com/apache/pinot/blob/master/pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/SegmentDeletionManager.java#L290
https://github.com/apache/pinot/blob/master/pinot-plugins/pinot-file-system/pinot-s3/src/main/java/org/apache/pinot/plugin/filesystem/S3PinotFS.java#L486-L499

@snleee Can you help take a look?


Reconsider module executation time auditing

This capability was added as "costs" in #57
It was removed in #65 , as the implementation of adding data as Module instance variables and always outputting plot files was problematic.

Discussion so far:
@brianhelba said:

@jbeezley In general, if we do want to do profiling of module run times, what would you suggest?

@jbeezley said:

I have meant to run it through cProfile to find any fast optimizations.  If you mean more like built-in infrastructure, I could see injecting timing information into the module state.  I can't think of anything else off hand.

@brianhelba said:

@jbeezley @jmasison01 The removed "costs" functionality here captured end-to-end data on each module for high-level auditing (just recording the time taken by initialize and advance on a per-module basis). Would it be a good idea to facilitate this again in some way?
If so, one less-intrusive option would be to push this capability into another module which would record and report timings when it was active, but that would require some sort of event dispatch / hooks system, whereby the framework makes notifications before / after any module runs. That seems like a lot of infrastructure surface to support just this one feature.
Another option would be to keep the existing structure, but reconsider where the data is stored. Previously, it was attached to the Module instances themselves as an ordinary instance variable. Should this sort of meta-information be automatically added to the state of each module, or is there a better place?


Cosmos deposit/withdraw type in dollar amount tx fails

Overview
if you go to the cosmos defi modal, click to deposit/withdraw, switch the amount to USD and input a number, the tx fails. However, clicking on the % buttons works and typing in a number for the asset amount works.
References and additional details

go to app.shapeshift.com
click on the defi tab
click on your cosmos staking position
click on deposit/withdraw
switch the input to USD
type in a number and click continue
click sign and broadcast and notice the transaction failed toast

Acceptance Criteria
The tx should not fail if you type a fiat amount when interacting with the cosmos staking modal
Need By Date
No response
Screenshots/Mockups

https://user-images.githubusercontent.com/99363597/201753083-df8bfd1f-094c-422b-a1d9-0ad909d5d170.mp4
Estimated effort
No response

closing as stale this has been entirely rewritten since then


User settable passwords

This PR adds a long-requested feature by the community: the ability to initialize a wallet in the UI using a user-input passphrase. Addresses #332.
Screenshots:

@DavidVorick we generally want to discourage people from supplying their own password, right? Perhaps instead of the design in this PR, we could make it a more difficult by having a little button or checkbox labeled "I want to use a custom password" that pops up the password entry field.

We can probably fix the font sizes too some we're here.
Yes the default should be to receive a seed, with an option to add your own password instead if you hit a button.

ACK, I will change the design to prioritize using a seed.

Updated this PR to add a small checkbox under the 'create wallet' button, which enables the password form. If this button isn't checked, the wallet is initialized in the usual way. I also upped the font size for the seed and the password.
Screenshots:

lgtm although I always get a bit unnerved when I see my password printed in plaintext. Not sure how @DavidVorick feels about it, but I think I'd prefer to have it replaced with ***** or something

Maybe display the first two and last one character?
Also, I don't think we have an API test for creating a wallet with the encryption password. Before we merge this, can we merge a test in the Sia repo that:

Creates a wallet with an encryption password
Unlocks that wallet and uses it
Reboots
Unlocks the wallet and uses it
Makes sure the seed can be loaded into a new wallet correctly

@johnathanhowell we're thinking that something like this is best:

Security-wise it's kinda silly because the seed is in plaintext and that's much more important to protect, but seeing your password in plaintext is just unnerving.

What do you think about displaying the password with a simple spoiler tag-style interface? (it shows up as a black line of text until you hover)

that sounds fine to me

done


Typing the Index Signature of a Module Namespace Object

Hi. I have a series of related classes packaged up and exported from a single module. Something like:
// states.ts

export {default as Alabama} from "./alabama";
export {default as Alaska} from "./alaska";
//...

Now, elsewhere in the code, I want to iterate over all the related classes:
import * as States from "./states.ts"

for(let stateExportName in States) {
  let thisState = States[stateExportName];
  // ... do something.
}

Hold aside that iteration over a commonjs module's export names would use a for-in, whereas iterating over an es6 module namespace object's exports would use a for-of (since es6 does define @@iterator on module namespace objects)... in either case, this iteration should be possible.
I'd like to be able to provide a type for the index signature of the module namespace object, so that thisState is automatically inferred as a State. I asked on StackOverflow, and @basarat said that wasn't possible, so I'm opening an issue here for it as a potential feature request. It does seem like an edge case, so I'm not sure how worth solving it is, but it is something I bumped into.
The other thing is that, if I use the code as written above, I get an "Index signature of object type implicitly has an 'any' type" error. That makes sense, since I haven't defined an index signature for the module anywhere. However, I get that error even if I explicitly type the thisState variable as any like so:
for(let stateExportName in States) {
  let thisState: any = States[stateExportName];
  // ... do something.
}

I can't tell if that's a bug or expected behavior. If it is expected behavior, though, then I have to do some trickery to silence the compiler error...which is really annoying (aesthetically—but also because having any compiler errors seems to prevent tslint from running with type-checking on).

possibly something like the prosal in https://github.com/Microsoft/TypeScript/issues/420 could cover this.
Another possibility is using something like keysof operator (https://github.com/Microsoft/TypeScript/pull/10425) to:
let stateExportName : keysof States;
for(stateExportName  in States) {
  let thisState = States[stateExportName]; // typeof States.Alabama | States.Alaska
  // ... do something.
}

To remove the implicit any error, what you want to write is
  let thisState = (<any>States)[stateExportName];

Another possibility is using something like keysof operator

Ooh, that seems cool. And maybe keysof States could be automatically inferred as the type in the for-in loop? (I can see why inferring keysof arg might not work in the general case for for-in loops, because of properties up the prototype chain...but it does seem like it should work for module namespace objects, since I'm pretty sure their keys are only own keys, and those can be known statically.)

To remove the implicit any error, what you want to write is

Thanks @RyanCavanaugh! That's the one permutation I didn't try :P

Ran across a similiar problem where some sort of inferrance of the index signature would be great.  Trying to "rollup" some modules into a larger map is currently not possible.
Here is an example of the problem we are facing.  Given a.ts:
export const foo = 'foo';
export const bar = 'bar';
export const baz = 'baz';

And then in b.ts:
import * as a from './a';

const qat: { [key: string]: { [key: string]: string } } = {
  a
};

Produces Index signature is missing in type 'typeof "a"'. and I can't figure out an easy way around it, even though TypeScript could infer an index type for the import.  The only sort of way that would work would be to cast to any before casting to an index type, but that is type abuse, and I hate being cruel to types.

For sanity purposes, as it seems there are at least 3 open issues on this, @RyanCavanaugh indicates that an implicit index type can be inferred.

This is possible today if the indexing type is keyof the containing object. Inferring an index signature would be problematic due to it not being legal to write to additional new keys, so I think the current behavior is what we want.


Error loading the models with custom layers

Keras throw the following issue when I try to add the custom layer information while loading the model.
I am using the following code to add the custom layers, where DropoutMask and Denser are the name of the classes. What here is causing the issue?
model = model_from_json(open(util.model).read(),custom_objects={'DropoutMask': DropoutMask,'Denser':Denser})

Traceback (most recent call last):
File "denser_classifier.py", line 305, in <module>
 predict(relations_file, en_parse_file, outfile)
File "denser_classifier.py", line 251, in predict
 model = model_from_json(open(util.model).read(),custom_objects={'DropoutMask':   DropoutMask,'Denser':Denser})
File "/usr/local/lib/python2.7/site-packages/keras/models.py", line 37, in model_from_json
 return layer_from_config(config, custom_objects=custom_objects)
File "/usr/local/lib/python2.7/site-packages/keras/utils/layer_utils.py", line 36, in layer_from_config
 return layer_class.from_config(config['config'])
File "/usr/local/lib/python2.7/site-packages/keras/engine/topology.py", line 2199, in from_config
 custom_objects=custom_objects)
File "/usr/local/lib/python2.7/site-packages/keras/utils/layer_utils.py", line 36, in layer_from_config
 return layer_class.from_config(config['config'])
File "/usr/local/lib/python2.7/site-packages/keras/engine/topology.py", line 898, in from_config
 return cls(**config)
 TypeError: __init__() takes at least 2 arguments (11 given)

I figured out the issue. It was the get_config function missing the newly added configuration items.

I am experiencing the same problem. how did you solve it?

It has been a long time since I have touched this piece of code, but I think I have already answered the solution to this issue that I was facing. However the errors in KERAS are not very informative, so you might be getting this issue because of some other issue. Try checking for the  get_config function in the newly added configuration items in your model


dataloader._batchify function is slow

Hello,
I am working on a very small NN in particular the example in mlp-dropout-scratch.ipynb. I am using only CPUs since my GPU is not yet supoported. I am on OSX and mxnet 12.1.
Running the experiments I noticed that changing the layer's size does not affect too much execution time, so, after profiling the code, I found out that the function dataloader._batchify takes the biggest part  of the execution time.
In particular the function below takes 9.5 secs to be executed on my machine:
mnist = mx.test_utils.get_mnist()

batch_size = 512

def transform(data, label):
    return data.astype(np.float32)/255, label.astype(np.float32)
train_data = mx.gluon.data.DataLoader(mx.gluon.data.vision.MNIST(train=True, transform=transform),
                                      batch_size, shuffle=True)
test_data = mx.gluon.data.DataLoader(mx.gluon.data.vision.MNIST(train=False, transform=transform),
                                     batch_size, shuffle=False)

%load_ext line_profiler
from mxnet.gluon.data import dataloader
def loop():
    s = time.time()
    for i, (data, label) in enumerate(train_data):
        a = 1
    print("Execution time =",time.time()-s)
%lprun -f dataloader._batchify loop()

and the timing is:
Execution time = 9.579260110855103

Timer unit: 1e-06 s

Total time: 0.173336 s
File: /usr/local/lib/python3.6/site-packages/mxnet/gluon/data/dataloader.py
Function: _batchify at line 29

Line #      Hits         Time  Per Hit   % Time  Line Contents
==============================================================
    29                                           def _batchify(data):
    30                                               """Collate data into batch."""
    31       354          724      2.0      0.4      if isinstance(data[0], nd.NDArray):
    32       118        91534    775.7     52.8          return nd.stack(*data)
    33       236          225      1.0      0.1      elif isinstance(data[0], tuple):
    34       118        34821    295.1     20.1          data = zip(*data)
    35       118          646      5.5      0.4          return [_batchify(i) for i in data]
    36                                               else:
    37       118         5568     47.2      3.2          data = np.asarray(data)
    38       118        39818    337.4     23.0          return nd.array(data, dtype=data.dtype)

This execution time is not affecting long executions, but it is still impacting when you are running short execution or quick tests. Is there an alternative faster approach?

We are aware of this issue. But don't have a good solution yet. Especially in the case that requires shuffling.

37       118         5568     47.2      3.2          data = np.asarray(data)
38       118        39818    337.4     23.0          return nd.array(data, dtype=data.dtype

in my project, I also find np to nd is slow. To my knowledge, python numpy array to C++ is zero cost.

@KeyKy In the report above the overall time is 52.8% in nd.stack function and 23% in nd.array. They are definitely the biggest bottleneck.

After a better investigation I found the real problem which depends on the way the training_set is built. In particular,  in the loop the DataLoader::__iter__ method invokes the BatchSampler::__iter__ method which in turn invokes the DownloadedDataset::__getitem__ methods which, finally, invokes the transform method. Since the DataLoader::__iter__ is called for each batch iterations, it turns out that the transform method is invoked over and over.
The code below fixes this problem.
train_data = mx.gluon.data.DataLoader([d for d in mx.gluon.data.vision.MNIST(train=True, transform=transform)],
                                      batch_size, shuffle=True)
test_data = mx.gluon.data.DataLoader([d for d in mx.gluon.data.vision.MNIST(train=False, transform=transform)],
                                     batch_size, shuffle=False)


Ensure EventHolder previousIndex is >= completeIndex

This PR fixes a issue that was identified with event publishing around leadership transfers. If the new leader has previously not published any events or if it has not even buffered any of the previously published events, the first event it publishes (after assuming leadership) will potentially have a previousIndex that is smaller than the last received event index (represented by completeIndex). When this condition occurs the event publishing to that client locks up.

Changes Unknown when pulling 2b6f47fc4afae77d00d35e6089e8ea0ce1479a09 on event-publish-fix into ** on master**.

Yay! :+1:


calls to /debug/vars on vttablet leave orphaned connections

I'm using vttablet's /debug/vars endpoint as a health check, and when running a bulk load directly into mysql (bypassing vtgate/vttablet), the vt_dba connection count went up to 100 waiting on a lock, which brought the whole shard down.
*************************** 100. row ***************************
           Id: 857
         User: vt_dba
         Host: localhost
           db: vt_urlslookup
      Command: Query
         Time: 12064
        State: Waiting for table metadata lock
         Info: select * from URLs where 1 != 1
    Rows_sent: 0
Rows_examined: 0

Is this reproduceable? Google search say that this shouldn't happen under normal circumstances. Only possibility is that a rogue thread obtained a metadata lock and didn't release it. Here's a stackoverflow thread about it.

I suspect that the bulk load was holding a lock on the table the whole time. I think you could reproduce this by connecting directly to mysqld and acquiring a lock on a table, then holding it indefinitely.
I think somewhere in vttablet we are trying to fetch fields with no timeout, through a code path that allows multiple concurrent calls. Each of those stuck queries probably has a corresponding goroutine in vttablet holding the connection open and waiting for a result.
The other unexpected thing was that /debug/vars became totally unresponsive due to this. Either we have a Func var that ends up attempting to run this query, or we have a lock held by the field-fetching goroutine that the Func var needs.

I think @enisoc is spot on


Tab completion keyword ordering in test suite

Not sure if this is being sorted by vscode and if the order can be changed, but in the test suite when you write:
test "some test"

the tab completion menu will then show:

with doctest as the first keyword to use. This is a frustrating experience as you almost always want do here. (doctest isn't even valid here) and the avoid the wrong keyword being inserted you have to use the menu to select do.
Is there a way we can improve the completion keywords here or change the order?

Change vscode setting "editor.snippetSuggestions" to "top" will resolve the problem.

Confirm, seems to be the case. Thank you.


AR: World scale

implements world scale AR with GPS coordinates.

Turning this into a draft PR until it can be tested on the Esri campus with the same data we used at 100.x.

Before merging this needs to be tested with the same data we tested 100.x with.

Closing in favor of https://github.com/Esri/arcgis-maps-sdk-swift-toolkit/pull/556.


Added missing Inline Query Result Type

Don't know it doesn't build successfully. I haven't changed anything significantly.

Hello! Thanks for PR! Yeah, tests are failing because of telegram's api error. Gonna fix it soon.


Get dataset variables as well as class variables

This PR updates the library column order operation to generate the list using the union of the classVariables and datasetVariables for a domain.
In the event that a classVariable and a datasetVariable have the same ordinal, the classVariable will appear in the list before the datasetVariable

Which issue(s) are linked to this PR? I'm not sure what is meant by classVariables vs datasetVariables.
A Special Purpose domain like DM that is defined in the model should only look at dataset variables for that specific domain.
A Findings domain like LB should look at the Findings class variables for Topic and Qualifier variables and the General Observations class variables for Identifier and Timing variables.
I'm not sure where a dataset would need to look at both classVariables and datasetVariables.

This is not linked to a specific issue, Jozef just brought this up when testing a rule. Since the variables allowed in a domain are the union of the variables for that class and the variables in the dataset we get both sets. I believe in most cases they will be the same set. In the case of general observations classes the timing and identifier variables are also added

The rules I was testing was SEND-266 (see https://jira.cdisc.org/browse/CORERULES-702) "Additional SDTM 1.5 Timing variables may be used in any domains based on the general observation class except when restricted either by domain specific assumptions or listed in the SENDIG as prohibited for use in SEND" (remark that "except when" can currently not be implemented) which is very similar to CG0013 "Variable = Model List of Allowed Variables for Observation Class", coming from Section 2.5 in the SDTMIG-v3.4 "sponsors may not add any ..." (see attached screenshot).

2. descendant subclasses

@gcampion-cdisc what is meant by "match on"
i will update the logic as follows:
If a dataset is a non general observations class - use dataset variables
if it is a general observation class - use Identifiers + class variables + Timing.
Shouldn't the class variables contain Topic and qualifier variables already?


node-sass version error

Ionic version:  (check one with "x")
[ ] 1.x (For Ionic 1.x issues, please use https://github.com/ionic-team/ionic-v1)
[ ] 2.x
[ x] 3.x
I'm submitting a ...  (check one with "x")
[ x] bug report
[ ] feature request
[ ] support request => Please do not submit support requests here, use one of these channels: https://forum.ionicframework.com/ or http://ionicworldwide.herokuapp.com/
Current behavior:
Error using the "ionic start ..." command
He is looking for the wrong version...
Expected behavior:
The correct path would be:
https://github.com/sass/node-sass/releases/download/v4.5.3/win32-x64-57_binding.node
Steps to reproduce:

Related code:
c:\Users\Developer-PC\Documents>ionic start myApp blank
✔ Creating directory .\myApp - done!
[INFO] Fetching app base (https://github.com/ionic-team/ionic2-app-base/archive/master.tar.gz)
✔ Downloading - done!
[INFO] Fetching starter template blank (https://github.com/ionic-team/ionic2-starter-blank/archive/master.tar.gz)
✔ Downloading - done!
✔ Updating package.json with app details - done!
✔ Creating configuration file ionic.config.json - done!
[INFO] Installing dependencies may take several minutes!
> npm install
✖ Running command - failed!
[ERROR] An error occurred while running npm install (exit code 1):

        npm WARN deprecated<EMAIL_ADDRESS>Please update to the latest object-keys
        npm WARN prefer global<EMAIL_ADDRESS>should be installed with -g

        ><EMAIL_ADDRESS>install c:\Users\Developer-PC\Documents\myApp\node_modules\node-sass
        > node scripts/install.js

        Downloading binary from https://github.com/sass/node-sass/releases/download/v4.5.0/win32-x64-57_binding.node
        Cannot download "https://github.com/sass/node-sass/releases/download/v4.5.0/win32-x64-57_binding.node":

        HTTP error 404 Not Found

        Hint: If github.com is not accessible in your location
              try setting a proxy via HTTP_PROXY, e.g.

              export HTTP_PROXY=http://example.com:1234

        or configure npm proxy via

              npm config set proxy http://example.com:8080

        ><EMAIL_ADDRESS>install c:\Users\Developer-PC\Documents\myApp\node_modules\fsevents
        > node install

        ><EMAIL_ADDRESS>postinstall c:\Users\Developer-PC\Documents\myApp\node_modules\node-sass
        > node scripts/build.js

        Building: C:\Users\Developer-PC\Documents\node\node.exe c:\Users\Developer-PC\Documents\myApp\node_modules\node-gyp\bin\node-gyp.js rebuild --verbose --libsass_ext= --libsass_cflags= --libsass_ldflags= --libsass_library=
        gyp info it worked if it ends with ok
        gyp verb cli [ 'C:\\Users\\Developer-PC\\Documents\\node\\node.exe',
        gyp verb cli   'c:\\Users\\Developer-PC\\Documents\\myApp\\node_modules\\node-gyp\\bin\\node-gyp.js',
        gyp verb cli   'rebuild',
        gyp verb cli   '--verbose',
        gyp verb cli   '--libsass_ext=',
        gyp verb cli   '--libsass_cflags=',
        gyp verb cli   '--libsass_ldflags=',
        gyp verb cli   '--libsass_library=' ]
        gyp info using<EMAIL_ADDRESS>        gyp info using<EMAIL_ADDRESS>| win32 | x64
        gyp verb command rebuild []
        gyp verb command clean []
        gyp verb clean removing "build" directory
        gyp verb command configure []
        gyp verb check python checking for Python executable "python2" in the PATH
        gyp verb `which` failed Error: not found: python2
        gyp verb `which` failed     at getNotFoundError (c:\Users\Developer-PC\Documents\myApp\node_modules\which\which.js:13:12)
        gyp verb `which` failed     at F (c:\Users\Developer-PC\Documents\myApp\node_modules\which\which.js:68:19)
        gyp verb `which` failed     at E (c:\Users\Developer-PC\Documents\myApp\node_modules\which\which.js:80:29)
        gyp verb `which` failed     at c:\Users\Developer-PC\Documents\myApp\node_modules\which\which.js:89:16
        gyp verb `which` failed     at c:\Users\Developer-PC\Documents\myApp\node_modules\isexe\index.js:42:5
        gyp verb `which` failed     at c:\Users\Developer-PC\Documents\myApp\node_modules\isexe\windows.js:36:5
        gyp verb `which` failed     at FSReqWrap.oncomplete (fs.js:152:21)
        gyp verb `which` failed  python2 { Error: not found: python2
        gyp verb `which` failed     at getNotFoundError (c:\Users\Developer-PC\Documents\myApp\node_modules\which\which.js:13:12)
        gyp verb `which` failed     at F (c:\Users\Developer-PC\Documents\myApp\node_modules\which\which.js:68:19)
        gyp verb `which` failed     at E (c:\Users\Developer-PC\Documents\myApp\node_modules\which\which.js:80:29)
        gyp verb `which` failed     at c:\Users\Developer-PC\Documents\myApp\node_modules\which\which.js:89:16
        gyp verb `which` failed     at c:\Users\Developer-PC\Documents\myApp\node_modules\isexe\index.js:42:5
        gyp verb `which` failed     at c:\Users\Developer-PC\Documents\myApp\node_modules\isexe\windows.js:36:5
        gyp verb `which` failed     at FSReqWrap.oncomplete (fs.js:152:21) code: 'ENOENT' }
        gyp verb check python checking for Python executable "python" in the PATH
        gyp verb `which` failed Error: not found: python
        gyp verb `which` failed     at getNotFoundError (c:\Users\Developer-PC\Documents\myApp\node_modules\which\which.js:13:12)
        gyp verb `which` failed     at F (c:\Users\Developer-PC\Documents\myApp\node_modules\which\which.js:68:19)
        gyp verb `which` failed     at E (c:\Users\Developer-PC\Documents\myApp\node_modules\which\which.js:80:29)
        gyp verb `which` failed     at c:\Users\Developer-PC\Documents\myApp\node_modules\which\which.js:89:16
        gyp verb `which` failed     at c:\Users\Developer-PC\Documents\myApp\node_modules\isexe\index.js:42:5
        gyp verb `which` failed     at c:\Users\Developer-PC\Documents\myApp\node_modules\isexe\windows.js:36:5
        gyp verb `which` failed     at FSReqWrap.oncomplete (fs.js:152:21)
        gyp verb `which` failed  python { Error: not found: python
        gyp verb `which` failed     at getNotFoundError (c:\Users\Developer-PC\Documents\myApp\node_modules\which\which.js:13:12)
        gyp verb `which` failed     at F (c:\Users\Developer-PC\Documents\myApp\node_modules\which\which.js:68:19)
        gyp verb `which` failed     at E (c:\Users\Developer-PC\Documents\myApp\node_modules\which\which.js:80:29)
        gyp verb `which` failed     at c:\Users\Developer-PC\Documents\myApp\node_modules\which\which.js:89:16
        gyp verb `which` failed     at c:\Users\Developer-PC\Documents\myApp\node_modules\isexe\index.js:42:5
        gyp verb `which` failed     at c:\Users\Developer-PC\Documents\myApp\node_modules\isexe\windows.js:36:5
        gyp verb `which` failed     at FSReqWrap.oncomplete (fs.js:152:21) code: 'ENOENT' }
        gyp verb could not find "python". checking python launcher
        gyp verb could not find "python". guessing location
        gyp verb ensuring that file exists: C:\Python27\python.exe
        gyp ERR! configure error
        gyp ERR! stack Error: Can't find Python executable "python", you can set the PYTHON env variable.
        gyp ERR! stack     at PythonFinder.failNoPython (c:\Users\Developer-PC\Documents\myApp\node_modules\node-gyp\lib\configure.js:483:19)
        gyp ERR! stack     at PythonFinder.<anonymous> (c:\Users\Developer-PC\Documents\myApp\node_modules\node-gyp\lib\configure.js:508:16)
        gyp ERR! stack     at c:\Users\Developer-PC\Documents\myApp\node_modules\graceful-fs\polyfills.js:284:29
        gyp ERR! stack     at FSReqWrap.oncomplete (fs.js:152:21)
        gyp ERR! System Windows_NT 10.0.15063
        gyp ERR! command "C:\\Users\\Developer-PC\\Documents\\node\\node.exe" "c:\\Users\\Developer-PC\\Documents\\myApp\\node_modules\\node-gyp\\bin\\node-gyp.js" "rebuild" "--verbose" "--libsass_ext=" "--libsass_cflags=" "--libsass_ldflags=" "--libsass_library="
        gyp ERR! cwd c:\Users\Developer-PC\Documents\myApp\node_modules\node-sass
        gyp ERR! node -v v8.0.0
        gyp ERR! node-gyp -v v3.6.2
        gyp ERR! not ok
        Build failed with error code: 1
        npm ERR! code ELIFECYCLE
        npm ERR! errno 1
        npm ERR<EMAIL_ADDRESS>postinstall: `node scripts/build.js`
        npm ERR! Exit status 1
        npm ERR!
        npm ERR! Failed at the<EMAIL_ADDRESS>postinstall script.
        npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

        npm ERR!      C:\Users\Developer-PC\AppData\Roaming\npm-cache\_logs\2017-06-04T05_26_08_991Z-debug.log

Other information:

Ionic info: (run ionic info from a terminal/cmd prompt and paste output below):
c:\Users\Developer-PC\Documents\ionic\myApp>ionic info
[ERROR] Error with<EMAIL_ADDRESS>file: FILE_NOT_FOUND

global packages:

    @ionic/cli-utils : 1.3.0
    Ionic CLI        : 3.3.0

local packages:

    @ionic/app-scripts              : not installed
    @ionic/cli-plugin-ionic-angular : 1.3.0
    Ionic Framework                 : ionic-angular 3.3.0

System:

    Node       : v8.0.0
    OS         : Windows 10
    Xcode      : not installed
    ios-deploy : not installed
    ios-sim    : not installed

@vitoriaserra This is a problem with ionic-app-scripts.
I already fixed that problem but we have to wait for the next release.
We will release it this week I guess.

Thank you! Please let us now

Closing this as this PR https://github.com/ionic-team/ionic-app-scripts/pull/1012 fixed it. Thanks @danielsogl !

I'm still having this issue under windows 10... Just me?
Node: 8.0.0
Cordova: 7.0.1
Ionic: 3.4.0


Do not call BuildServiceProvider in docs, samples

The "Customize WebApplicationFactory" section should not recommend calling BuildServiceProvider, this pattern can cause lifetime issues with services.
Multiple alternatives are given in https://github.com/dotnet-architecture/eShopOnWeb/issues/465. @javiercn may also have some input.

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

ID: 77889d43-fedb-f8b4-8fea-379ec946555c
Version Independent ID: f499b131-8b14-7e10-1728-543fdd5a5656
Content: Integration tests in ASP.NET Core
Content Source: aspnetcore/test/integration-tests.md
Product: aspnet-core
Technology: aspnetcore-test
GitHub Login: @Rick-Anderson
Microsoft Alias: riande

@javiercn  we can fix this as soon as you provide input.

@jvandertil please review

Hi @Rick-Anderson
Ok, this is bad.
protected override IHost CreateHost(IHostBuilder builder) {
  builder.ConfigureServices(services => {
    //...
    var sp = services.BuildServiceProvider();
    //...
  }
}

In the new docs you cut this (at least I can't find it).
I don't know if I have missed something, but what's the correct way to get a service from the DI in ConfigureServices? Or is it bad practice?
What if I want to seed the DB once per WebApplicationFactory?
Thanks

@sevenmay services shouldn't be built/consumed in ConfigureServices, you're still setting them up.
Here are some tips for seeding a database:
https://learn.microsoft.com/en-us/aspnet/core/data/ef-mvc/intro?view=aspnetcore-6.0#initialize-db-with-test-data


ARTEMIS-3837 Adding support for AMQPLargeMessage.getData()

(cherry picked from commit 9b959c2fec76e1a28791b58e47fd0914273fb068)
downstream: ENTMQBR-6665

merged