[$2000] Web - Emoji - There is no tooltip for the category picker

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

Issue found when executing PR https://github.com/Expensify/App/pull/14532
Action Performed:

Go to staging.new.expensify.com
Log in with any account
Go to any conversation
Select emoji option
Hovering on one of the option

Expected Result:
When hovering over one of the category pickers, a tooltip containing the name of the category should appear.
Actual Result:
There is no tooltip for the category picker
Workaround:
Unknown
Platforms:

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

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

Version Number: <IP_ADDRESS>
Reproducible in staging?: Yes
Reproducible in production?: No - New feature
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation

https://user-images.githubusercontent.com/93399543/218580554-3dd53e0e-8b4e-48c3-9b52-ac48e84fe8d3.mp4
Expensify/Expensify Issue URL:
Issue reported by: Applause - Internal Team
Slack conversation:
View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~010a0b351e969622b9
Upwork Job ID:<PHONE_NUMBER>649732096
Last Price Increase: 2023-02-22

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

Bug0 Triage Checklist (Main S/O)

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

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

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

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

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

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

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

This is a recent feature we released here, asking in this thread on the expected behaviour.

Great catch, I agree with Applause that we just overlooked this and should close the gap.

Alrighty, moving it on. CC: @stitesExpensify for vis

Job added to Upwork: https://www.upwork.com/jobs/~010a0b351e969622b9

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

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

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

Proposal
Please re-state the problem that we are trying to solve in this issue.
Within web we have to show tooltip when mouse over on emoji picker category icon.
What is the root cause of that problem?
Tooltip not used within <CategoryShortcutButton> so it will not show tooltip whenever mouse over the cateogry icon.
What changes do you think we should make in order to solve the problem?
I think solution is pretty simple and clean as explained below:
Within src/components/EmojiPicker/CategoryShortcutBar.js file we already have an array of category icons as shown below.
https://github.com/Expensify/App/blob/1180571bf3059d0388f57d1c661ff61f7fc4758a/src/components/EmojiPicker/CategoryShortcutBar.js#L26-L31
So within src/components/EmojiPicker/CategoryShortcutBar.js file we have to create 1) Another array that consist translation keys corresponding to category icons and 2) Add translation key for "Frequently used" section if exist and 3) pass new prop named tooltipText to <CategoryShortcutButton> component as shown code below:
const CategoryShortcutBar = (props) => {
     const icons = [Smiley, AnimalsAndNature, FoodAndDrink, TravelAndPlaces, Activities, Objects, Symbols, Flags];

    // *** Add this code ***
    // Prepare array of translation keys to show as tooltip for each category icon
    const tooltipTextKeys = _.map([
        'smileysAndEmotion',
        'animalsAndNature',
        'foodAndDrink',
        'travelAndPlaces',
        'activities',
        'objects',
        'symbols',
        'flags',
    ], item => `emojiPicker.headers.${item}`);

    // If the user has frequently used emojis, there will be 9 headers, otherwise there will be 8
    if (props.headerIndices.length === 9) {
        icons.unshift(FrequentlyUsed);
        tooltipTextKeys.unshift('emojiPicker.headers.frequentlyUsed');    // *** Add this code ***
    }

    return (
        <View style={[styles.pt2, styles.ph4, styles.flexRow]}>
            {_.map(props.headerIndices, (headerIndex, i) => (
                <CategoryShortcutButton
                    icon={icons[i]}
                    onPress={() => props.onPress(headerIndex)}
                    key={`categoryShortcut${i}`}
                    tooltipText={props.translate(tooltipTextKeys[i])}.  // *** Add this code ***
                />
            ))}
        </View>
    );

}

Within src/components/EmojiPicker/CategoryShortcutButton.js file we have view with icon as shown below:
https://github.com/Expensify/App/blob/1180571bf3059d0388f57d1c661ff61f7fc4758a/src/components/EmojiPicker/CategoryShortcutButton.js#L39-L46
So within src/components/EmojiPicker/CategoryShortcutButton.js file we have to define new prop named tooltipText and  wrap View with tooltip as shown code below:

const propTypes = {

    /** Tooltip text to show when mouse over (Add this code) */
    tooltipText: PropTypes.string.isRequired,
};

                <Tooltip
                    text={this.props.tooltipText}
                    shiftVertical={-7}
                >
                    <View style={styles.alignSelfCenter}>
                        <Icon
                            fill={themeColors.icon}
                            src={this.props.icon}
                            height={variables.iconSizeNormal}
                            width={variables.iconSizeNormal}
                        />
                    </View>
                </Tooltip>

So this solution is efficient and requires minimum code changes.
It will also take care to show tooltip in corresponding language when language changed as shown in result video below. Also it will keep button size consistent in all platform as other platform does not show tooltip.
What alternative solutions did you explore? (Optional)
None
Result video:

Web

https://user-images.githubusercontent.com/7823358/219662535-ffd73ad4-3a66-48ff-95d1-814d5e6c72ef.mp4

iOS

https://user-images.githubusercontent.com/7823358/219663676-66e8c534-b30e-4837-9662-bc5fcaa767e2.mov

Android

https://user-images.githubusercontent.com/7823358/219662845-7ecd2c3a-0789-49d8-9405-b5275bbd0f19.mov

@aimane-chnaif what do you think of this proposal?

Assigning myself as well so I can keep track of this one as part of the tracking issue.

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

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

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

Proposal
Please re-state the problem that we are trying to solve in this issue.

For the web platforms, we would like to show text tooltips to all the category icons on the Emoji Category Bar

What is the root cause of that problem?

I think this is a feature request as when it was designed it seems that only Icons were added. No Tooltip exists as of now for the given component.

What changes do you think we should make in order to solve the problem?

I think we should update the CategoryShortcutBar to accept the {code , index} [] array of the headers, so that we can apply the tooltip to each of the icon.

Add props to CategoryShortcutBar, headerEmojis which consist of the code and index.
Add a new prop code to CategoryShortcutButton which takes the headerEmoji.code
Add withLocalize HoC to CategoryShortcutButton, so that we can access the translate method
Wrap the following View  with Tooltip

https://github.com/Expensify/App/blob/a87b802a09c48de7274855af56e27ab544463ef6/src/components/EmojiPicker/CategoryShortcutButton.js#L39

For the Tooltip use translate('emojiPicker.headers.${code}')

Update getHeaderIndices in EmojiUtils to return the whole object along with the index (or atleast the code and the index)
https://github.com/Expensify/App/blob/a87b802a09c48de7274855af56e27ab544463ef6/src/libs/EmojiUtils.js#L89

In EmojiPicker/index.js and can be applied to native as well.

https://github.com/Expensify/App/blob/a87b802a09c48de7274855af56e27ab544463ef6/src/components/EmojiPicker/EmojiPickerMenu/index.js#L63
Modify the above block as:
this.headerEmojis = = EmojiUtils.getHeaderEmojis(allEmojis);`
this.headerRowIndices = _.map(this.headerEmojis, (headerEmoji) => Math.floor(headerEmoji.index / CONST.EMOJI_NUM_PER_ROW));

What alternative solutions did you explore? (Optional)
I would also recommend one additional refactor. We can move the following imports also to assets/emoji.js
https://github.com/Expensify/App/blob/a87b802a09c48de7274855af56e27ab544463ef6/src/components/EmojiPicker/CategoryShortcutBar.js#L7-L15
So that in future whenever we add a new category we only have one place of truth. We don't need to maintain arrays at two places.  We can get rid of const icons = [Smiley, AnimalsAndNature, FoodAndDrink, TravelAndPlaces, Activities, Objects, Symbols, Flags]; and the code becomes a lot cleaner.

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

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

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

@aimane-chnaif  here is my proposal 2
Proposal 2
Please re-state the problem that we are trying to solve in this issue.
Within web we have to show tooltip when mouse over on emoji picker category icon.
What is the root cause of that problem?
Tooltip not used within <CategoryShortcutButton> so it will not show tooltip whenever mouse over the cateogry icon.
What changes do you think we should make in order to solve the problem?
Within src/libs/EmojiUtils.js file we have to add helper function as shown below that will return header indices with coresponding code.
function getHeaderIndicesWithCode(emojis) {
    const headerIndices = [];
    _.each(emojis, (emoji, index) => {
        if (!emoji.header) {
            return;
        }
        headerIndices.push({index, code: emoji.code});
    });
    return headerIndices;
}

Within src/components/EmojiPicker/EmojiPickerMenu/index.js file we have to update code as shown below:

        // This is the actual header index starting at the first emoji and counting each one
        //this.headerIndices = EmojiUtils.getHeaderIndices(allEmojis);    // *** OLD CODE
        const headerIndicesWithCode = EmojiUtils.getHeaderIndicesWithCode(allEmojis);   // *** New Code ****
        this.headerIndices = _.map(headerIndicesWithCode, item => item.index);    // *** New Code ****
        this.headerCodes = _.map(headerIndicesWithCode, item => item.code);        // *** New Code ****

        <CategoryShortcutBar
            headerIndices={this.headerIndices}
            headerCodes={this.headerCodes}.  / / *** Add  this code
            onPress={this.scrollToHeader}
        />

So within src/components/EmojiPicker/CategoryShortcutBar.js we have to pass tooltipText as props to CategoryShortcutButton component.
const CategoryShortcutBar = (props) => {

    return (
        <View style={[styles.pt2, styles.ph4, styles.flexRow]}>
            {_.map(props.headerIndices, (headerIndex, i) => (
                <CategoryShortcutButton
                    icon={icons[i]}
                    onPress={() => props.onPress(headerIndex)}
                    key={`categoryShortcut${i}`}
                    tooltipText={props.translate(`emojiPicker.headers.${props.headerCodes[i]}`)} // *** Add this prop ***
                />
            ))}
        </View>
    );
}

Within src/components/EmojiPicker/CategoryShortcutButton.js file we have view with icon as shown below:
https://github.com/Expensify/App/blob/1180571bf3059d0388f57d1c661ff61f7fc4758a/src/components/EmojiPicker/CategoryShortcutButton.js#L39-L46
So within src/components/EmojiPicker/CategoryShortcutButton.js file we have to define new prop named tooltipText and  wrap View with tooltip as shown code below:

const propTypes = {

    /** Tooltip text to show when mouse over (Add this code) */
    tooltipText: PropTypes.string.isRequired,
};

                <Tooltip
                    text={this.props.tooltipText}
                    shiftVertical={-7}
                >
                    <View style={styles.alignSelfCenter}>
                        <Icon
                            fill={themeColors.icon}
                            src={this.props.icon}
                            height={variables.iconSizeNormal}
                            width={variables.iconSizeNormal}
                        />
                    </View>
                </Tooltip>

What alternative solutions did you explore? (Optional)
None

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

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

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

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

@stitesExpensify @aimane-chnaif I can see a PR already for the linked issue so should I wait for the other PR to be merged or can I start with my PR?

Yeah and then I'll have to test if Tooltip behavior doesn't cause issue in the later position of the Category Shortcuts Bar.
I think we should wait. But do let me know if you want me to start I'll start right away (I just don't want this to affect the PR bonus).

Yeah, let's wait until it's merged. I will make sure that the PR bonus is not affected.

@aimane-chnaif @stitesExpensify One more question.
How much displacement should a Tooltip generally have from the icon?
This is how it looks after applying the Tooltip. If you notice it is applied to View, so the hover background is covered by the Tooltip.

I tried applying the Tooltip to Pressable, but we would have to move the styling to a View and then wrap that View around Tooltip.

Lastly, I applied shiftVertical={-8}, which I think is apt for this case. I am pushing with this change but happy to update with whatever path you choose.

please confirm if you want this refactor to be done?

Sure @akshayasalvi let's move those imports to emoji.js

How much displacement should a Tooltip generally have from the icon?

I'll defer to the expert :) @shawnborton

I think it should be what you have in your second screenshot, so shiftVertical={-8}

Okay @stitesExpensify I'll refactor that and thanks @shawnborton.

PR is raised and ready for review.

@aimane-chnaif Based on this comment and this response, should we go ahead with 2px? And complete the checklist ?
Or do you recommend waiting more?

@aimane-chnaif I've update the change to have 2px. Because it was somewhat agreed earlier and you're also okay with it. Just to ensure that if I am offline later (and we get confirmation), it shouldn't block you from testing.  If changes are requested, for 0px or 4px, I'll try to do them asap.
Meanwhile, is there any other change/feedback that needs to be worked upon? I am online for a few hours, so I can close them. Thank you very much for your time.

@aimane-chnaif Can you add @stitesExpensify as a reviewer? When I requested your review again I don't know how it removed them. I can't seem to be able to add anybody.

I think I like 4px since that is a standard spacing unit for us.

For clarity for the bugZero assignee (@trjExpensify) we had this on hold, and then I was OOO and delayed the merging of this. This issue should be eligible for the speed bonus

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

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

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

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

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

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

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

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

[ ] [@aimane-chnaif / @stitesExpensify] The PR that introduced the bug has been identified. Link to the PR:
[ ] [@aimane-chnaif / @stitesExpensify] The offending PR has been commented on, pointing out the bug it caused and why, so the author and reviewers can learn from the mistake. Link to comment:
[ ] [@aimane-chnaif / @stitesExpensify] A discussion in #expensify-bugs has been started about whether any other steps should be taken (e.g. updating the PR review checklist) in order to catch this type of bug sooner. Link to discussion:
[ ] [@JmillsExpensify / @trjExpensify] Determine if we should create a regression test for the bug.
[ ] [@aimane-chnaif] If we decide to create a regression test for the bug, please propose the regression test steps to the appropriate location to ensure the same bug will not reach production again.
[ ] [@JmillsExpensify / @trjExpensify] Review the proposed regression test steps and location.
[ ] [@JmillsExpensify / @trjExpensify] Link the GH issue for creating/updating the regression test once above steps have been agreed upon:

Looks like something related to react-navigation may have been mentioned in this issue discussion.
As a reminder, please make sure that all proposals are not workarounds and that any and all attempt to fix the issue holistically have been made before proceeding with a solution. Proposals to change our DeprecatedCustomActions.js files should not be accepted.
Feel free to drop a note in #expensify-open-source with any questions.

@trjExpensify  @aimane-chnaif While this is ready for payout today, is there anything that you want me to do? I am not sure if we would treat this as a bug. This was like a feature request, and we added the category picker in this PR https://github.com/Expensify/App/pull/14532

I agree this is a feature request, not a bug

Yep, makes sense.
Okay, so can I confirm these are the amounts due?

@aimane-chnaif - $2,000 PR review + $1,000 #urgency bonus.
@akshayasalvi - $2,000 for the fix + $1,000 #urgency bonus.

Yes @trjExpensify I think so :)

Accepted @trjExpensify thank you.


Encrypted card reader

This is more of a question than an issue - Is encrypted card reader data handled by Activemerchant. If  so how?

No, it is not.


Minimum screen width ?

Hello,
Is there a minimum screen width needed to use appear ?
When my screen width is under 495px, appear and disappear functions aren't launched, is it normal ?

It's not always at 495px, here under 230px the library doesn't work : http://codepen.io/victor-gabou/pen/Jbzzdw

@victor-gabou There is no minimum size requirement. There is most likely an issue with the way you are using the library. Your codepen example isn't up at the moment. Closing this issue. Feel free to comment here if you can post an example of the issue.


Feature/migrate

adds libraries v1 to v2 migration.

Coverage remained the same at 100.0% when pulling 725cc656a2fcd1c210f571507f4f6f248b168837 on feature/migrate into 808d7e312f1d3bb8dc66ff93a7a5a2abe96628b8 on master.

Coverage remained the same at 100.0% when pulling 12e091b6a8d0d6a785ac2a98ecff3a3d78a632f6 on feature/migrate into 808d7e312f1d3bb8dc66ff93a7a5a2abe96628b8 on master.

Coverage remained the same at 100.0% when pulling a04395937e2bc2211ca8ddb99677f08c0c37a4d1 on feature/migrate into 808d7e312f1d3bb8dc66ff93a7a5a2abe96628b8 on master.


Problem with using stream events

The stream created by tape.createStream() is closed on process exit. Until the process exits the close event on the stream won't fire. This is causing issues with tap consumer programs like tap-spec and tap-out where they cannot hook into the end or close event of the stream.
Consider this where add pases and multiply fails:
const test = require('tape');
const tapSpec = require('tap-spec');
const {add, divide} = require('../math.js');

// piping programatically
test.createStream()
  .pipe(tapSpec())
  .pipe(process.stdout);

test('should add', t => {
  t.equal(add(3, 4), 7);
  t.end();
});

test('should divide', t => {
  t.equal(divide(8, 2), 4);
  t.end();
});

I get the output:
> node test\test.js

  should add

    √ should be equal

  should divide

    × should be equal
    ------------------
      operator: equal
      expected: 4
      actual:   6
      at: Test.t (D:\dev\projects\testing\tap-spec-test\test\test.js:15:5)
      stack: |-
  Error: should be equal
  at Test.assert [as _assert] ...

Whereas when I use tap-spec from command line (removing programatic pipe) node test/test.js | tap-spec I get:
> node test/test.js | tap-spec

  should add

    √ should be equal

  should divide

    × should be equal
    ------------------
      operator: equal
      expected: 4
      actual:   6
      at: Test.t (D:\dev\projects\testing\tap-spec-test\test\test.js:15:5)
      stack: |-
  Error: should be equal
  at Test.assert [as _assert] ...

  Failed Tests: There was 1 failure

    should divide

      × should be equal

  total:     2
  passing:   1
  failing:   1
  duration:  176ms

The results in the bottom are obtained by tap-out on the close event of the stream. When run the close event on the stream won't fire until before the whole process exits, at which point tap-out stops working. In command line usage the stream close event fires as it is from stdin and still the tap-out or tap-spec process would be alive.
Is there a solution to this problem or should I be just pipe my tap output to other programs.

Is there perhaps something the command line code for tap-spec is doing that your programmatic version isn’t?

I've checked and experimented, its totally the same. The only thing is when and how the stream ends.
tap-spec uses tap-out as a parser. tap-out listens for the end of the stream and emits an output event. That event tap-spec uses to print the count of tests, passed failed etc.
I've debudded it using breakpoints. The event is never fired, tap-out just waits for the stream to end and meanwhile the whole process exits. The process was just exiting. When I debugged tap-spec as a js file and passing input to it through stdin, it worked correctly.
tap-spec taking in input is the same as programatic one but the input is from stdin.

The streams stuff is the part of tape I'm least familiar with, unfortunately.
I'd be happy to review a PR - even just one containing failing tests would be helpful.

I'll see what I can do. I have a few ideas in mind but that might end up changing the API a bit.

@ljharb Made PR #466. Sorry for the delay, I had exams 😁


Running the SDK on .NET 3.1

.NET 3.1 is the LTS version of dotnet, and the only way I can get the SDK working with my MacBook Pro (using Rosetta). Do you plan to upgrade the SDK to use 3.1 officially, and is there any limitations in doing so (features which exist in 3.0 but not 3.1 used by the SDK).

The library is compiled for .NET Standard 2.0 and should be fully compatible with .NET 3.1 (as well as all other current versions of .NET).  I've successfully used it on Linux with .NET 5.0 and on Android with Xamarin/Mono.  .NET 6.0 is the current LTS version.  .NET 3.1 was the previous LTS version and goes out of support next month (December 13th, 2022).
Have you tried the SDK package with .NET 6.0 (it natively supports Apple Silicon)?

https://learn.microsoft.com/en-us/dotnet/standard/net-standard?tabs=net-standard-2-1

We recommend you target .NET Standard 2.0, unless you need to support an earlier version. Most general-purpose libraries should not need APIs outside of .NET Standard 2.0. .NET Standard 2.0 is supported by all modern platforms and is the recommended way to support multiple platforms with one target.

Hi, I have not tried running it on .NET 6.0 yet, I will try it now - seems like the best solution. Thanks for the speedy response!
On 24 Nov 2022, at 21:58, Wayne Venables @.***> wrote:
The library is compiled for .NET Standard 2.0 and should be fully compatible with .NET 3.1 (as well as all other current versions of .NET). I've successfully used it on Linux with .NET 5.0 and on Android with Xamarin/Mono. .NET 6.0 is the current LTS version. .NET 3.1 was the previous LTS version and goes out of support next month (December 13th, 2022).
Have you tried the SDK package with .NET 6.0 (it natively supports Apple Silicon)?

https://learn.microsoft.com/en-us/dotnet/standard/net-standard?tabs=net-standard-2-1
We recommend you target .NET Standard 2.0, unless you need to support an earlier version. Most general-purpose libraries should not need APIs outside of .NET Standard 2.0. .NET Standard 2.0 is supported by all modern platforms and is the recommended way to support multiple platforms with one target.
—
Reply to this email directly, view it on GitHubhttps://github.com/codaris/Anki.Vector.SDK/issues/8#issuecomment-1326858882, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AS4IXO7TSWLL4FCH7AQSEN3WJ7QIPANCNFSM6AAAAAASKSC3VU.
You are receiving this because you authored the thread.Message ID: @.***>


Add numeric_only to DataFrame.cov and DataFrame.corr

This PR adds a numeric_only= keyword  to DataFrame.cov and DataFrame.corr. We also match pandas behavior around deprecation warnings and changes in default value in pandas=2.0
xref https://github.com/dask/dask/issues/9471
xref https://github.com/dask/dask/issues/9736
cc @rhshadrach for visibility

Thanks @j-bennet


Deploy failure: some files have modifications in the future?

Hi,
Have been using mup for ages and rely completely on it to deploy my apps in production. It's really great!! Today I've had the error below and I'm clueless about how to solve it. I'm using the latest mup version (1.4.28).
Help please :-)
   ✘ Invoking deployment process: FAILED

    -----------------------------------STDERR-----------------------------------
    time 0.84 s in the future
    make: Warning: File `../binding.gyp' has modification time 0.69 s in the future
    make: Warning: File `../binding.gyp' has modification time 0.53 s in the future
    make: Warning: File `../binding.gyp' has modification time 0.37 s in the future
    make: Warning: File `../binding.gyp' has modification time 0.22 s in the future
    make: Warning: File `../binding.gyp' has modification time 0.061 s in the future
    gyp info ok
    npm WARN package.json<EMAIL_ADDRESS>No description
    npm WARN package.json<EMAIL_ADDRESS>No repository field.
    npm WARN package.json<EMAIL_ADDRESS>No README data

Thanks.

I've updated meteor to 1.0.4 prior to this error.

same issue here

I've got same error as @boustanihani, right after meteor update

Hope you guys are running with the latest version of mup.
If not try to update.
I deployed couple of apps with the update. Can I get a version where I can
try locally.
On Wed, Mar 18, 2015 at 9:40 PM Dmitriy<EMAIL_ADDRESS>wrote:

I've got same error as @boustanihani https://github.com/boustanihani,
right after meteor update
—
Reply to this email directly or view it on GitHub
https://github.com/arunoda/meteor-up/issues/317#issuecomment-83038024.

Hi All, this was an easy one. I've updated to Meteor 1.0.4 yesterday and got the mup error afterwards. Then I've checked meteor 1.0.4 release notes and found out that nodejs version dependency changed: it's now 0.10.36. So I've changed the node version in mup.json and that solved the issue.
Cheers,

Okay. Shall we close the issue.
On Wed, Mar 18, 2015 at 10:28 PM João Pio Pedreira<EMAIL_ADDRESS>wrote:

Hi All, this was an easy one. I've updated to Meteor 1.0.4 yesterday and
got the mup error afterwards. Then I've checked meteor 1.0.4 release notes
and found out that nodejs version dependency changed: it's now 0.10.36. So
I've changed the node version in mup.json and that solved the issue.
Cheers,
—
Reply to this email directly or view it on GitHub
https://github.com/arunoda/meteor-up/issues/317#issuecomment-83057136.


Feature Request - Create/Delete Cluster administrative users mapping

Description
The current set of Terraform modules allows us to create ROSA clusters and configure the IdP, but lacks (or it's undocumented) the feature of allowing us to map IdP Users into Cluster Roles. This creates a chicken-or-the-egg problem for who is trying to have a cluster vending machine (fully automated deployment of ROSA clusters - with operators, extensions, etc).
Context
The feature is available on Red Hat Hybrid Console > OpenShift Cluster Management:

Currently, I'm using this workaround:
resource "null_resource" "cluster_permission_workaround" {
  depends_on = [module.htpasswd_idp]
  provisioner "local-exec" {
    command = <<-EOT
    rosa login --token=${var.rhcs_token}
    rosa grant user dedicated-admin --user=${var.openshift_demo_user_login} --cluster=${var.environment_name}
    EOT
  }
}


Wrong url is generated using index() when content is nested into more directories

URL are generated correctly only if content is in at most one directory: x/file.md -> x/file
When file structure goes a little bit deeper, url takes only first directory in the path: x/y/file.md -> x/file

@johniez thanks very much! I added a test for this that I will be pushing in a minute to avoid this kind of thing in the future.


Why doesn't Diagnosis have a time_point associated with it?

A subject can have multiple diagnoses, and in fact diagnoses are not really diagnoses at all, since they can actually be "interventions" - for example an immunization.
Shouldn't a diagnosis have a time_point_relative and a time_point_relative_reference?

From the call: Christian suggestions capture the use-case, IEDB has implemented a similar schema in their DB. Brian will follow-up whether the IEDB metadata follows a third-party data standard or not.

Bjoern presented the more complete design that is in OBI in the image below. However, for IEDB they only implemented the subset relevant for curation which is immune exposure events

From AKC discussions, things that are events:

Enrollment in a study
Diagnosis
Intervention - vaccine,
Exposure - exposure to a pathogen
Sampling

In AIRR at the moment, we have two explicit events where we capture a time point:

We capture a time point in the subject, associated with age (age is measured relative to an explicit event - field age_event)
We capture a time point that is associated with when the sample was taken (collection time point is relative to an event - field collection_time_point_reference)

Note Diagnosis does not have a time point or event associated with it.

It seems to me that in order for time points and events to be the most useful, ideally there should be a T0 event for a subject (or even a study) to which all time points are related. For example T0 = Enrollment in a study where all time points for all subsequent events are relative to T0 provides the most usefulness. Note that this might be different than how time points are described by the researcher in their study.

How about this for a suggestion - along the lines of our discussions with the AKC and based on @bussec suggestion here: https://github.com/airr-community/airr-standards/issues/735#issuecomment-1850297217

We create an Event object

Event objects have an EventType which is a enum (Diagnosis, Intervention, Exposure, Sampling, Enrollment, Age ...)
Events have TimePoints - see #689 (time with units + relative to field as we have now)
Events have other fields for the specific type of event

Subjects have an array of Events (replaces our current Diagnosis with its hodge podge of extra fields)
Each Sample has an Event that delineates when the sample was taken (replaces collection_time_point* fields)
A Subject has an Event that delineates when the subject's age was documented (replaces age_event field)

To me this seems like mostly a semantic cleanup that includes:

a clear definition of what an event is
a clear definition of what objects events are associated with

Yes, there are syntax changes, but fundamentally this isn't changing structure at a basic level, we still have Subject with an array of Diagnosis-like things. And we still track TimePoints for Subject age and when Samples are taken.

Events have other fields for the specific type of event

This is probably the most challenging, but we can follow the direction of IEDB for the fields that they use for their exposure model for most of what we are looking for I think: https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7153954/

I think it is important that we have a more robust solution for capturing this type of information than we currently have. So having the draft of an Event object (which seems to be non-controversial) for the next call would be good. Volunteers? ;-)

I am smart enough to see that you just manipulated me into doing some work, but oddly enough not smart enough to avoid the work... 8-)

Most basic of implementations.

Created an Event object
Replaced collection_time_point_relative_* fields with sample_collection_event - significant overlap with #551
Added a diagnosis_event to Diagnosis

We could change it so that a Subject has an array of Events, some of which are of event_type = Diagnosis rather than an array of Diagnosis.
I have held off on that as that is a major change, maybe beyond the scope of v2.0?


etcdctl/ctlv3: auth: wildcard terminated paths specify ranges

Still needs tests, but creating pull request to facilitate the discussion in #6359

What if other people ask for //abc? Or //abc/*/cef? Should we support these as well? I feel people would ask for globbing eventually, which we do not really want to support in etcd core.

What if other people ask for //abc? Or //abc/*/cef? Should we support these as well? I feel people would ask for globbing eventually, which we do not really want to support in etcd core.

I don't need them or find them compelling.
But maybe I don't understand what the situations they would be used to model.  Could you elaborate on the first one in particular -- what does having two slashes as the first two runes trying to do?
I think this simple PR is perfectly defensible. nats.io and many other pub/sub systems have used similar (filesystem) semantics.

@glycerine Sorry. Github messed up the format. I updated my previous reply.

My answer stays the same. : )
I don't find them compelling, nor I don't need them. It seems we agree.

My implementation is flawed in some way, as tests would have shown.
Where is not obvious... gets seem to work, but put doestn't. When I track it down, it is because the tocheck slice in the checkKeyPerm() function has length zero during the write attempt; here: https://github.com/coreos/etcd/blob/master/auth/range_perm_cache.go#L148
Hints appreciated.

Yes, I'm mightily confused. Still trying to debug why I have no writes going through.
I have a role, jason, that has write permissions.
$ etcdctl --user root:123 role get jason
Role jason
KV Read:
        /home/jason/*
KV Write:
        /home/jason/*

And yet: inside isRangeOpPermitted(), even if I force a call to getMergedPerms() every time, I still get back no write permissions (at https://github.com/coreos/etcd/blob/master/auth/range_perm_cache.go#L168; with the if !ok changed to an if true)
perms back: '&auth.unifiedRangePermissions{readPerms:[]*auth.rangePerm{(*auth.rangePerm)(0xc42041a0c0)}, writePerms:[]*auth.rangePerm(nil)}'

sigh, gets (reads) on a "directory" don't work right unless /home/xiang/* gets turned into a range.
So just how does one construct the range [0x0, 0xffffffff] ?

arg, had to track down of number of insidious bugs in the existing range and range-mergin code. those are fixed now, but I still need tests for the new functionality.

If somebody could help out with getting a test that does the following (in library/code rather than shell outs to etcdctl of couse) I would very much appreciate it. I'm out of time for a while to figure out how to write these tests, it would be nice get these fixes and additions in place, and I'm sure somebody is more familiar with the testing facilities already available than I am.
test plan:
- create a root user, pw 456, a root role, assign the root role to the root user
- create a regular user called joe, with pw 123, a role called 'regular'
- assign the regular role to the user joe
- give the regular role readonly permissions on /home/*
- create a role called joe, assign it to joe, give it readwrite on /home/joe/*  (joe ends up with 2 roles)
etcdctl auth enable
etcdctl --user root:456 put /home/haddy/hello
etcdctl --user joe:123 put /home/joe/bday 040181
etcdctl --user joe:123 put /home/joe/height "6-0"
- verify that joe can read /home/haddy/hello but not delete it or write a key alongside it. (using the regular role).
- verify that joe can read bday and height from home/joe/ using 'get /home/joe/*'
- verify that joe can delete 2 keys with the library equivalent of : 'etcdctl --user joe:123 del '/home/joe/*'

It looks like this breaks for any key with a * suffix. There's no way this can go in the way it's designed since it restricts the values keys may take even though etcd3 should be a clean binary keyspace.

@heyitsanthony what would be acceptable for handing the presence of special characters like *? Do you have an approach in mind? I'm open to ideas.
We're used to bash/filesystem interfaces that treat certain characters specially, spaces and * at the shell prompt for example. To embed them literally in a filename from bash, one would have to escape them with a backslash.
Does escaping a star * with a backslash, as in \*, seem reasonable?

with the latest:

Added backslash escaping to allow \* in the presence of wildcard *.
Addressed the other comments by centralizing wildcard handling into a separate package.
Addressed the code duplication by defining an interface, BegEndRange, to unify treatment of ranges.

Added a test file.
@xiang90, @heyitsanthony -- I think this is in good shape. Please take a look.

@glycerine anything that imposes special structure on the keys can't be part of the base KV API. Expecting people to escape * needlessly complicates the key semantics and absolutely breaks the contract that etcd3 will accept arbitrary binary keys without modification.
This really should be done with a proxy.

conclusion was that this won't be the way to go. Closing this, and opening a separate pr with the bug fixes to range handling.


update needed? DEPRECATION: Using the injected container is deprecated

DEPRECATION: Using the injected container is deprecated. Please use the getOwner
Is this project going to be updated in the future?
using Ember 2.4.0

Can you put together a PR for this?
We're going to release a 2.0 without any additional feature development. It should be used for bug/deprecation fixes only. I've begun work on 3.0 which will be drastically different (in a good way, I hope)

I really wish I could, but I'm not as confident in my Ember skills as I should be, plus I'm in the last phases of a project in the office. I'll look forward to testing anything that comes up (2.x). Thanks for commenting quickly.

I can see that this deprecation has been already managed in the project. Could you close the issue? And - if I may ask - release a new version (even alpha)?

This is fixed in master. Seems like this commit solved the issue https://github.com/DockYard/ember-validations/commit/b86fa61fb316befb77c4c5c0a6f394aec955dbfe

+1 for a new version tag. Until then you can refer to the latest commit:
"ember-validations": "git@github.com:DockYard/ember-validations.git#5502c4c"

+1 for a new version tag.

+1 for new version

+1 for new version

Please use the reaction button at the issue instead. Use the comments if you are going to contribute with something useful on the thread.

I believe we fixed this.


unused_element is confused by a function with the same name in two classes

SDK: 2.1.1-dev.1.0
hint: The method '_private2' isn't used. (unused_element at [json]) - on class A
Did not get one for A._private though. Seems it's confused by the use of _private in B – even though it's an unrelated class.
class A {
  _private() => null; // don't get `unused_element` here, though – BUG!
  _private2() => null; // get `unused_element` here – as expected
}

class B {
  public() => _private();
  _private() => null; // No issue here, as expected
}

Thanks! Can't wait for the next few release to see how many of these we
have in the wild!
On Thu, Nov 14, 2019, 19:43 The Dart Team<EMAIL_ADDRESS>wrote:

Closed #35677 https://github.com/dart-lang/sdk/issues/35677 via fea5e1b
https://github.com/dart-lang/sdk/commit/fea5e1b741eac9e00ea26de7120fe3e3e7099059
.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/dart-lang/sdk/issues/35677?email_source=notifications&email_token=AAAEFCV3BE3W4ZJZE5VSFBTQTYLHRA5CNFSM4GQOHOGKYY3PNVWWK3TUL52HS4DFWZEXG43VMVCXMZLOORHG65DJMZUWGYLUNFXW5KTDN5WW2ZLOORPWSZGOU34S6NI#event-2801348405,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAAEFCXSWDNOV5PVAE6UD63QTYLHRANCNFSM4GQOHOGA
.

After checking in the fix, I am getting new cases:
$ tools/test.py -nunittest-asserts-no-sdk-linux dart2js/analyses/analyze_test
...
pkg/compiler/lib/src/js_backend/field_naming_mixin.dart:193:11: warning: hint:
[UNUSED_ELEMENT] The declaration '_localFieldNameCounter' isn't referenced.
pkg/compiler/lib/src/js_backend/field_naming_mixin.dart:109:11: warning: hint:
[UNUSED_ELEMENT] The declaration '_localFieldNameCounter' isn't referenced.
...

The getter at 193 overrides the getter at 109.
The getter at 109 (and setter) is called from 165, in the same class:
  jsAst.Name _nextName() => registry.getName(_localFieldNameCounter++);

Eek, sorry @rakudrama I'll look at this.


[$1000] Long pressing and dragging mouse moves the window.

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

Action Performed:

Open the desktop app.
Right click on a message that is close to the Report header.
Long press on the quick emoji reactions.
Drag the mouse.

Expected result:
The window should not move along with mouse on the ContextMenu.
Actual result:
The window moves while dragging the contextMenu.
Workaround:
Can the user still use Expensify without this being fixed? Have you informed them of the workaround?
Platforms:

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

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

Version Number: <IP_ADDRESS>
Reproducible in staging?: y
Reproducible in production?: y
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
https://user-images.githubusercontent.com/43996225/235489133-6f3e2f2a-dcc3-4c5d-b10c-00e9d9d7f33d.mov
https://user-images.githubusercontent.com/43996225/235490403-78912349-d491-4456-808d-0bfb58192ca0.mp4
Expensify/Expensify Issue URL:
Issue reported by: @parasharrajat
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1682935961676639
View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~01b1bae4e7beab1fa9
Upwork Job ID:<PHONE_NUMBER>352539136
Last Price Increase: 2023-05-01

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

Bug0 Triage Checklist (Main S/O)

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

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

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

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

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

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

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

Triggered auto assignment to @AndrewGable (Engineering), see https://stackoverflow.com/c/expensify/questions/4319 for more details.

90% sure this can be external, @AndrewGable any reason it wouldn't be?  I was able to reproduce.

Job added to Upwork: https://www.upwork.com/jobs/~01b1bae4e7beab1fa9

Nope - External!

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

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

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

Yeah, I think it's fine if it covers the header personally.

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

@parasharrajat @fedirjh @Prince-Mendiratta can you please accept the job and reply here once you have?
https://www.upwork.com/jobs/~01b1bae4e7beab1fa9
@fedirjh can you please comment on the top THREE items above?
For Determine if we should create a regression test for this bug. I think this is a bug we don't want to test on every single run, added it to Items to check occasionally in the testing guidelines here
Eligible for timeliness bonus based on @Prince-Mendiratta post above

@parasharrajat @fedirjh @Prince-Mendiratta paid!!
Thanks y'all


set up dev environment

set up the project:

[x] create a fork of c4dt/d-voting
[x] add me as a maintainer
[x] set up either the local or the dockerized environment
[x] confirm that the project is set up correctly by creating a new form, adding yourself as voter, vote, close the form and display the results
[x] document any problems in form of issues in this project
[x] if any set up step was not clear, add a PR w/ updates to the documentation

(spent roughly 6h30)


Made DetermineTrafficDistributionList error on non-draft shipment without a pickup address

Description
We discovered a few weeks back that there was (at least one) shipment on staging with a null TDL.  At the time, the award queue (AQ) would choke on the bad shipment and not be able to make any further progress on other shipments that needed awarding.  The AQ was made more resilient in #1487.
This PR attempts to prevent the null TDL scenario that triggered the AQ failure by making it an error condition if a non-draft shipment is saved without a pickup address (we use the pickup address to determine the appropriate TDL).  Validations in the UI already prevented this, but you previously could cause the endpoints to make a submitted (or later) shipment without a pickup address.
Being more strict with the pickup address validation caused an AQ test to fail, so that's addressed in this PR as well.
Reviewer Notes
Is there any scenario where the new error may conflict with a legitimate use case?
Setup
Assuming you have a move already, use the /moves/{moveId}/shipment endpoint to create a shipment in DRAFT status but with no pickup address (you may want to grab the JSON from another shipment as a starting point).  No need (legitimately) to have a pickup address on a DRAFT shipment.  Then, use the /moves/{moveId}/submit endpoint to submit that shipment, which will put it the shipment into SUBMITTED status and cause the award queue to run and try to process it.
This should cause an error now.  Previously, the shipment would be placed into SUBMITTED state with a null TDL, followed by the AQ throwing an error when attempting to award the shipment.
As an aside, note that the PATCH of a shipment doesn't allow you to change a shipment's pickup address back to NULL.  You can only set or update it.
Code Review Verification Steps

[ ] Code follows the guidelines for Logging
[ ] The requirements listed in Querying the Database Safely have been satisfied.
[ ] Request review from a member of a different team.
[ ] Have the Pivotal acceptance criteria been met for this change?

References

Pivotal story for this change

I merged master to pick up a fix for failing tests.


Proposal: Load testing with k6

Proposed changes
I propose a new Chaos Fault - Load Testing with k6. Please take a look at my documentation.
Types of changes
What types of changes does your code introduce to Litmus? Put an x in the boxes that apply

[x] New feature (non-breaking change which adds functionality)
[ ] Bugfix (non-breaking change which fixes an issue)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] Documentation Update (if none of the other choices applies)

Checklist
Put an x in the boxes that apply. You can also fill these out after creating the PR. If you're unsure about any of them, don't hesitate to ask. We're here to help! This is simply a reminder of what we are going to look for before merging your code.

[x] I have read the CONTRIBUTING doc
[x] I have signed the commit for DCO to be passed.
[x] Lint and unit tests pass locally with my changes
[x] I have added tests that prove my fix is effective or that my feature works (if appropriate)
[x] I have added necessary documentation (if appropriate)

Dependency

Please add the links to the dependent PR need to be merged before this (if any).

Special notes for your reviewer:

Hi @namkyu1999 Thanks for the proposal, I have gone through it. It looks good to me.
Just trying to understand -

It is like invoking a K6 script for doing chaos (like stress-ng)
If we add it, it can open a door for users to write chaos experiments easily in terms of contribution or even BYOC in some terms.
It is like our SSH Chaos Category where users can provide a JS script & mount it from configmap/secret & we run the chaos experiment.

If we add it, it can open a door for users to write chaos experiments easily in terms of contribution or even BYOC in some terms.
It is like our SSH Chaos Category where users can provide a JS script & mount it from configmap/secret & we run the chaos experiment.

Exactly :)

Hi @namkyu1999 Thanks for the proposal, I have gone through it. It looks good to me.
Just trying to understand -

It is like invoking a K6 script for doing chaos (like stress-ng)
If we add it, it can open a door for users to write chaos experiments easily in terms of contribution or even BYOC in some terms.
It is like our SSH Chaos Category where users can provide a JS script & mount it from configmap/secret & we run the chaos experiment.

Exactly :)

Hi @namkyu1999, feel free to let me know if you need support or guidance on how to proceed.


Add focus effect on buttons.

https://app.zeplin.io/project/62b9dba49dd2b211410e608e/screen/635c072bf964ca340b364a15

Bing initially did the work in #1053, but later another feature, #1048, was merged first, and it had the necessary changes. Closing this issue as a duplicate.

Duplicate of https://github.com/rokwire/events-manager/issues/1048


Missing override of equals / hashCode on PMapXImpl

To check for equality between maps.

Seems to be there.


Actions button in open items not ideally placed (enhancement)

Hello,
I believe the mark as read-unread / share / favorite buttons should be place at the bottom of the expanded item.
Indeed, you decide once you have read the item what you want to to with it, and not a the beginning of your reading.
Placing those at the bottom right side would be better.
I manage to change this in item.php, but my problem is that the buttons, when item is collapse, do not show anymore (the mark as read/unread for instance).
Given the present codeline, I'm not sure what would be better to still have buttons in the collapse mode, and the buttons at the right bottom in the expanded mode.
Any thought ?
GLLM

You can check the new version (buttons at the bottom)


Evolve from NSA suite B to CNSA

Mbed TLS provides convenient ways to select the cryptographic mechanisms of NSA suite B. NSA suite B has been obsoleted by CNSA.
Goal of this task:

Define presets for CNSA, similar to the existing presets for NSA Suite B.
If done in a 3.0, maybe remove the suite B presets. If done later, maybe deprecate them.

Since it looks like this won't make it for 3.0, I'm moving it to the 3.x EPIC - otherwise it risks being moved to 4.0 with the rest of the 3.0 optional things.


DDC should not apply additional restrictions from .analysis_options to packages

IDE and command line analysis only reports errors and warnings from the current project.  Since DDC must build all dependencies, it also reports any errors and warnings from imported packages.  Opt in restrictions (e.g. --no-implicit-casts) from a .analysis_options file currently will fail the build if packages do not conform to them.  This is probably not the right behavior:
https://github.com/dart-lang/sdk/issues/29654

Or analysis_options.yaml 😄

I just ran into this issue when building https://github.com/dart-lang/angular_components_example with DDC via pub serve --web-compiler=dartdevc.

I believe this is an issue with pub build, not DDC.
DDC will issue errors for every source file it compiles. If there's something "outside my current project" it needs to be compiled separately, and without any optional analysis flags that are intended for my project.

@jakemac53 Any thoughts about fixing this in pub?

There is a DDC issue - the problem is that analysis_options.yaml can make DDC treat some things as errors that it shouldn't. If DDC can build a project that doesn't pass analysis with --no-implicit-dynamic it shouldn't suddenly start failing when I add that option to my analysis options - only analysis should fail.
Current vs external packages doesn't really matter - DDC should never change it's behavior based on analysis options.

We could maybe forcibly solve this in pub if DDC exposes a --options= flag the the dartanalyzer binary does... but I think DDC should just always configure it's AnalysisDriver to use an empty set of options.

I think DDC exposes all options flags dartanalyzer does? At least we tried to unify all flags & there's shared options code.

If DDC can build a project that doesn't pass analysis with --no-implicit-dynamic it shouldn't suddenly start failing when I add that option to my analysis options - only analysis should fail.

RE .analysis_options, current invariant is that dartdevc produces the same errors as dartanalyzer does. This is intentional, and that's why no-implicit-dynamic is respected in your .analysis_options (for the current project), similar to no-implicit-casts. It is true that both of those options would be safe to ignore at compile time, but in general that is not true for options that affect strong mode's checking.

I'm hesitant to make empty flags always the behavior.  There are workflows in which analysis and compilation are separate, but I think there are many people who are used to the workflow which is standard for other compilers: you run the compiler both to get errors and warnings, and to get the compiled output.

Attaching analysis to compilation precludes enforcing anything in your code that won't also hold for generated code. For instance if the angular compiler doesn't pass --no-implicit-dynamic it means I also can't check that with my own code.

Right, hence this bug.  I would like it if users could turn on --no-implicit-dynamic for their package only, and not have it transitively apply to other packages.

The generated code is in their package. We'd need to be able to put generated code in a separate module from code written by the user - and that precludes any strongly connected import graphs into generated code.

How is that specific to DDC then? If the code is in their package, then both the analyzer and DDC will complain, no?  So they just flat out can't turn it on.  The use case I want to enable is where the bad code is not in their package, but they are currently blocked from turning it on because they will get warnings about code that is elsewhere, not in their package.

Synced offline: I think one of the big points of contention is that analysis_options.yaml is used to configure things like what we see in the IDE and whether Travis blocks a submit- and the goals there are different from what we expect during a compile.
In the long term we most likely want some way to distinguish between configuring how DDC does analysis and how the IDE/Travis/dartanalyzer does analysis.
In the short term we'll fix the bug with using the local analysis_options for external packages and just won't allow using analysis options that don't pass with generated code.

... analysis_options.yaml is used to configure things like what we see in the IDE ...

I think that's too narrow a view. It's called "analysis" options for historic reasons, but many of the options ought to apply to all our tools (and ought to be supported by FE).

What I mean is that our users expect to be able to have different configuration for analysis in different places and that's not possible today.
We still have some open questions about behavior today:

How does DDC act when there are excludes? If DDC could treat an excluded file as "Go back to defaults" that might be enough for us to work around the generated file case.
How does DDC act when an 'error' is downgraded to a 'warning' or 'hint' but breaks behavior of the compiler?

Here's a scenario I think we need to be able to support:

I want to never push code which fails some hint - say I never want to push code that has unused variables. When I run dartanalyzer on Travis it should have a failing exit if it sees an unused variable.
During my development I would prefer if DDC does not fail due to unused variables.
At any time DDC must not fail due to unused variables in angular generated code.

How does DDC act when there are excludes?

The behavior most consistent with analyzer behavior would be for it to not compile excluded files unless they are referenced from non-excluded files. (That's assuming that ddc has a "compile this directory" mode, otherwise I guess I don't understand the question.)

How does DDC act when an 'error' is downgraded to a 'warning' or 'hint' but breaks behavior of the compiler?

During my development I would prefer if DDC does not fail due to unused variables.

The displayed severity of a diagnostic can be different than the "impact" (for lack of a better word) of the diagnostic. I'd interpret the options as controlling the displayed severity and having nothing to do with the impact.

@natebosch a good mental model for DDC is:

run dartanalyzer build mode (in the future: run new front end)
run the code generator

errors/warnings/hints are produced by step 1. DDC simply prints them out.

How does DDC act when there are excludes? If DDC could treat an excluded file as "Go back to defaults" that might be enough for us to work around the generated file case.

To my knowledge, analyzer build mode (thus DDC) do not consider "excludes" because it relies on an explicit list of sources (like DDC). The excludes are about filtering what IDEs show.

How does DDC act when an 'error' is downgraded to a 'warning' or 'hint' but breaks behavior of the compiler?

what does "breaks behavior of the compiler" mean? DDC is fine compiling if there are warnings/hints.
DDC/analyzer build mode are just compilers. Build systems have lots of ways to configure compilers and filter output from compilers. e.g. feel free to filter errors.
(Tho I'd advise against treating generated code specially; it'd be much better to clean up the code generators.)

How does DDC act when an 'error' is downgraded to a 'warning' or 'hint' but breaks behavior of the compiler?

what does "breaks behavior of the compiler" mean? DDC is fine compiling if there are warnings/hints.

Let's say I write this code:
int x = 'foo';

And this analysis_options.yaml:
analyzer:
  errors:
    invalid_assignment: ignore

and then try to compile this with DDC. What would happen? Would I get undefined behavior at runtime?

The displayed severity of a diagnostic can be different than the "impact" (for lack of a better word) of the diagnostic. I'd interpret the options as controlling the displayed severity and having nothing to do with the impact.

Today in order to get the 'displayed severity' I want I configure it in my analysis_options.yaml - and then it has the 'impact' of breaking my DDC build - that is what I hope to avoid. Also to allow the 'displayed severity' to align with the 'impact' of blocking submits in my CI server (preferably without repeating my config multiple places). Also I'd want the 'displayed severity' to not be tied to my IDE but to be shared across all devs on my project who see output from the analyzer.

(Tho I'd advise against treating generated code specially; it'd be much better to clean up the code generators.)

Generated code will always be special in some ways - I don't need to maintain it. If I consider unused variables to be a maintenance/readability issue I might never care that generated code has this problem. For runtime code I only care about errors/warnings/hints if they impact performance or behavior - but I today depend on the dartanalyzer (and analysis_options config) to help me keep my manually written code maintainable.

Today in order to get the 'displayed severity' I want I configure it in my analysis_options.yaml - and then it has the 'impact' of breaking my DDC build - that is what I hope to avoid.

(italics added) I don't understand that statement. If the analysis options file only controls how the diagnostic is displayed, then it cannot break your ddc build.

Also to allow the 'displayed severity' to align with the 'impact' of blocking submits in my CI server (preferably without repeating my config multiple places).

The impact of an error depends on the tool being impacted. The same error could impact a CI server by preventing a commit while impacting ddc by causing a throw to be inserted at the site of the error.

Also I'd want the 'displayed severity' to not be tied to my IDE but to be shared across all devs on my project who see output from the analyzer.

Hence the analysis options file, because it can be shared across tools.

If the analysis options file only controls how the diagnostic is displayed, then it cannot break your ddc build.

Hence this bug...

(italics added) I don't understand that statement. If the analysis options file only controls how the diagnostic is displayed, then it cannot break your ddc build.

That's what this issue was filed for - today anlaysis_options.yaml does break the DDC build if I upgrade something to an error.

For the record if I manually downgrade invalid_assignment: ignore and then compile this snippet:
void main() {
  var x = 'foo';
  print(x + 1);
}

The result is a warning, the build does not fail. And the code produced is:
  foo.main = function() {
    let x = 'foo';
    core.print(x + 1);
  };

Prints "foo1" but we could probably imagine other ways to get behavior we don't want. I think there are probably certain errors that DDC shouldn't let you downgrade.

DDC already has --unsafe-force-compile to ignore all errors. Ignoring errors will lead to undefined behavior.

Ignoring errors will lead to undefined behavior.

Sure - and if the file were called compiler_options.yaml I'd expect that downgrading an error gives me this risk 😄

I'd definitely prefer that we not leave open a gate for people to pick and choose their undefined behaviors... :)  Not top priority, but whether we keep using analysis_options.yaml or a new file, we should probably not honor downgrading errors to warnings there.

we should also check if we picked up any command line options from Analyzer CLI that allow errors to be ignored

Filed an issue to track the pub behavior and removing the other avenues towards downgrading errors in DDC.
I think this issue is still useful to track whether we want a compiler_options.yaml or some other way to drive different behavior between DDC and other uses of analyzer.

How is this different from pubspec.yaml's compiler: option?
compiler:
  web:
    ...

@jmesserly, sorry for adding area-dev-compiler back in. It seems to be the most suitable "area-" label available. Without an area- label issues will keep showing up in the "needs to be triaged" list.
Happy to change to some other more relevant "area" label. E.g., re-introducing "area-pub"?

oh yeah, totally okay! tho maybe we need an area-build or something like that :)

My experience today: enabled DDC for an open source project, it refused to compile with errors in package:quiver and package:collection. Huh? Aren't these ready for DDC? Maybe my SDK is out of date ... upgrade to 1.24.2 ... same problem ... investigate the errors in package:quiver, realize they look like "implicit-dynamic", errors try turning it off, discover that it now compiles.
This seems like a pretty major roadblock in asking people to switch from Dartium to DDC. A note over at https://webdev.dartlang.org/tools/dartdevc would have worked. (Recommending what? Downgrading analysis for my project because package:quiver has problems seems ... wrong).
Thanks!

@davidmorgan you want to track https://github.com/dart-lang/pub/issues/1684 for that issue.

Thanks.

I updated the title to reflect the new state of understanding for this issue. If anyone things we should branch of the conversation around whether DDC should ignore analysis_options.yaml for the local package we can cut a new issue and close this one.

sounds good to me. I've opened this bug: https://github.com/dart-lang/sdk/issues/30422 & will link this thread for context.

Filed https://github.com/dart-lang/sdk/issues/30827 to track allowing different configuration per tool.

I thought @jakemac53 fixed this?

I have not tried dev. Will try and close this issue
On Wed, Sep 20, 2017, 8:51 AM Kevin Moore<EMAIL_ADDRESS>wrote:

I thought @jakemac53 https://github.com/jakemac53 fixed this?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/dart-lang/sdk/issues/29713#issuecomment-330896216,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAKQ7i2ltiw0Z2gE7Gnf1xtewHIZZ5Izks5skTSRgaJpZM4NleI8
.

Shouldn't the pubspec.yaml have a 2.00 dev sdk?
  sdk: 2.0.0-dev.5.0

Or at least a note in the README? since the local pubspec.yaml will override the dependencies.
See https://pub.dartlang.org/packages/angular/versions/5.0.0-alpha#pub-pkg-tab-changelog


test: Improve term of service test reliability (box/box-codegen#522)

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

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

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
6698

Relevant Lines:
9488

💛  - Coveralls


Update mean to median for lead time

Looking at the code, I see that we aren't always clear about means and medians in the results.
The lead time, for example, is calculated by taking the commits that go in to the release and calculating the median of the timespan between the commit being created and the release being created. The variable in the code contains the word Average (implying mean), but it holds the median of the values.
This PR does three things

renames the variable to Median
calculates the median of an even number of items by taking the average (mid-point) of the two middle items
changes the text on the graph to say that we take the mean (across the items in the bucket) of the medians of the lead times. Previously it just mentioned the mean, so I always assumed it was the mean of the mean of the time from commit create and the create for the release containing the commit - the values in the graphs looked wrong with that interpretation.

Old tag line:

New tag line:

I tested by plotting the old and new graphs for Sql Monitor - the numbers change for some rows in the generated html file, but the graphs look the same - I think that is because I fixed the median of an even number of items calculation.
I think there is more work to do. Looking at https://github.com/dora-team/fourkeys/blob/main/METRICS.md, an implementation by the DORA team, they tend to use medians rather than means across the buckets in a number of their calculations (eq https://github.com/dora-team/fourkeys/blob/main/METRICS.md#calculating-the-bucket-1 ) where I think we take the medians and then average them. I could be wrong and haven't had time to look in more details, but will come back to this.

Btw, I did a full-text search for average and there are still quite a lot of mentions of it all over the place, incl. the README. Do you think these should be updated too?

I'll do a quick sweep through these places and generate another PR


Wrong rendering of arcs with rx=0 or ry=0

This issue is on ThorVG's end and is already being addressed: https://github.com/thorvg/thorvg/pull/1938
I'm only documenting it here, as it may take a while until it makes its way into Godot.

Fixed in Godot 4.2.2.rc2


Trouble in installing

I'm sorry that I have trouble in installing your package. When I use pip install quad_mesh_simplify, it only install a dist-info folder. When I download the repository, and run the command that your provide, It just fails. What's wrong?

When I run pip install . , it shows that successfully installed quad-mesh-simplify-1.1.5, but I don't know where it installed?

Ok, I fine that it install in my envs site-package named as quad_mesh_simplify-1.1.5.dist-info, but there is still no file named simplify_mesh.py. I think I failed in installing this package. Who can solve my problem.

had the same problem, just download the zip and put quad_mesh_simplify in your site-packages by hand

cp -r quadric-mesh-simplification/quad_mesh_simplify/ /opt/conda/lib/python3.x/site-packages/quad_mesh_simplify


Report css view when using Redmine Issue Templates plugin

I am using Redmine Issue Template Plugin(https://github.com/akiko-pusu/redmine_issue_templates) for creating template when I create a new issue.
But when I create a new issue from global setting or from a specific project. It works well if I use default theme or other thems but with our themes, the css is not working well like that
There are some issue like that

You can see that In Button Template list, the Icon was behind the Template List tex
Cancel Button is not be in the correct position(next to Create Button) in creating template form.

Global template settings

Project template settings

If you want any more information. Please comment I will provide what you want.
Thank you

Hi,
I found that it's the plugin that does a few things in its own way rather than following Redmine's style. I created a pull request to the original plugin. Meanwhile, you could use my fork or create your own and merge my changes to it.

Hi, @mrliptontea. I'm an author of that plugin. I deeply appreciate that you handled this issue.
I'm going to confirm your PR as soon as possible!

@mrliptontea . After getting the new pull request to my local environment.
I check the result. When I already have a template issue, when I access to edit form. It seems not good like that.

If you want any test, please ping me. I am appreciate to do that.

I pushed some further fixes for these.

ok. Let me check :).

It work well

edit global template form

Edit note and issue template in project settings


Implementation terra-clinical-overlay

Progress

[ ] Design Input
[ ] Expected Behaviour
[ ] Tech Design
[ ] Development
[ ] Functional Validation
[ ] UX Validation
[ ] Released

Feature / Enhancement Request
The terra-clinical-overlay component creates an overlay relative to the container which triggered the overlay.
Expected Behavior
This component will block interactions and fade out all elements of the triggering container.

It was decided this component should go in terra-core. Closing this issue here and logging the issue in terra-core.


Allow multiple scripts to be called from post update

This PR does the following:

Modifies the _post_update_install.bat to allow calling multiple scripts after updates complete (calls all present .cmd scripts with the zz prefix), instead of the static reference to zz-start-sshd.cmd.
Adds debug logging when the appropriate flag is set.

Testing:

Tested successfully as part of a Packer build of Windows Server 2012R2 images.

Sorry for the delay in getting this merged.


Helpful links page should help users to find a testing centre nearby, if they have symptoms

Link to find a testing centre nearby: https://covid.icmr.org.in/index.php/testing-facilities
The site's UX can be better. Future enhancement: It'd be better if we can scrap that data and put out a finder tool as part of the website, itself.

I am not sure about the authenticity of this information. It's better if this comes directly from the ICMR official website.
Also, at least for now, nobody is supposed to go to a testing center and get themselves tested. One is supposed to call the state helpline if they are symptomatic.
Closing this.

Makes sense. Thanks!


Update sbt to 1.4.1

Updates org.scala-sbt:sbt from 1.4.0 to 1.4.1.
GitHub Release Notes - Version Diff
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 = "org.scala-sbt", artifactId = "sbt" } ]

labels: library-update, semver-patch

Codecov Report

Merging #878 into develop will decrease coverage by 0.06%.
The diff coverage is n/a.

@@             Coverage Diff             @@
##           develop     #878      +/-   ##
===========================================
- Coverage    89.24%   89.18%   -0.07%
===========================================
  Files          117      117
  Lines         9348     9348
  Branches       371      371
===========================================
- Hits          8343     8337       -6
- Misses        1005     1011       +6

Impacted Files
Coverage Δ

...main/scala/com/twitter/algebird/monad/Reader.scala
52.94% <0.00%> (-5.89%)
:arrow_down:

...src/main/scala/com/twitter/algebird/Interval.scala
80.00% <0.00%> (-3.48%)
:arrow_down:

.../main/scala/com/twitter/algebird/BloomFilter.scala
93.36% <0.00%> (-1.77%)
:arrow_down:

.../main/scala/com/twitter/algebird/Successible.scala
91.66% <0.00%> (+4.16%)
:arrow_up:

...ain/scala/com/twitter/algebird/AdaptiveCache.scala
78.37% <0.00%> (+5.40%)
:arrow_up:

Continue to review full report at Codecov.

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


State API getVersion

Signed-off-by: iceseer<EMAIL_ADDRESS>

Jira task id
PRE-391

Description of the Change
State API get runtime version.

Benefits

Possible Drawbacks

Usage Examples or Tests

Alternate Designs

Please fix CI

Please fix CI

I checked why CI fails. Reason is that codecov data cannot be submitted if PR is created from the fork. We will remove codecov step if PR submitted from the fork. For now you can ignore that CI step


TF ignore the computation graph and output the feeding value directly.

System information

Have I written custom code (as opposed to using a stock example script provided in TensorFlow): Yes
OS Platform and Distribution (e.g., Linux Ubuntu 16.04): Ubuntu 16.04
TensorFlow installed from (source or binary): binary
TensorFlow version (use command below): 1.1.0-rc0
Bazel version (if compiling from source): N/A
CUDA/cuDNN version: N/A
GPU model and memory: N/A
Exact command to reproduce:

import tensorflow as tf

with tf.Graph().as_default():
  a = tf.placeholder(dtype=tf.float32, shape=[1])
  a = tf.multiply(a, 2)
  with tf.Session() as sess:
    output = sess.run(a, feed_dict={a: [1]})
    print(output)

[ 1.]

Describe the problem
As the code above, I feed a value into the graph to do some computation. Notice that the input tensor's name is the same as the output tensor's name.
Maybe the naming is a little confusing, but I think it is used quite often.
I think it is a bug of tensorflow.

This is not a bug, you overwrote your value of "a" with tf.multiply, so you are feeding the output of tf.multiply and reading the same output simultaneously


Short solution needed: "ffmpeg encode for youtube" (ffmpeg)

Please help us write most modern and shortest code solution for this issue:
ffmpeg encode for youtube (technology: ffmpeg)
Fast way
Just write the code solution in the comments.
Prefered way

Create pull request with a new code file inside inbox folder.
Don't forget to use comments explain solution.
Link to this issue in comments of pull request.

How to encode video for YouTube (with streaming support)


Main

PR Checklist
PR Structure

[ ] This PR has reasonably narrow scope (if not, break it down into smaller PRs).
[ ] This PR avoids mixing refactoring changes with feature changes (split into two PRs
otherwise).
[ ] This PR's title starts with name of package that is most changed in the PR, ex.
paymentservice.stellar, or all or doc if the changes are broad or impact many
packages.

Thoroughness

[ ] This PR adds tests for the most critical parts of the new functionality or fixes.

What
Merge main back to dev
Why
Keep branches in sync
Known limitations
N/A

Something went wrong with PR preview build please check


Vendor prefixes iOS 8

I am moving from styled-components 2.0.0 to 2.2.3 which uses stylis 3.x, but there is problem with missing vendor prefixes. For example on iOS 8 when using flex-basis, it should prefix it with -webkit-flex-basis.

Can you post a repro of your find: input, expected, actual.

Well it's private project, so I can't show it here. But the case is simple, try to use 'flex-basis: 100%;' and it should autoprefix it with '-webkit-flex-basis: 100%;'

From the post it came of like you had other properties that where not being vendor prefixed... can you post them as well or was it just "flex-basis"?

Sorry I didn't check others, but as I know also -ms-flex-basis was missing for flex-basis. So maybe the problem is just for this one.

I'm confused since http://autoprefixer.github.io/ produces
-ms-flex-preferred-size: 100%;
flex-basis: 100%;

Which is what stylis also produces.
Are you sure the -webkit- vendor prefix is a valid variant for flex-basis?

Yes I'm sure, because it is working with this prefix, I tried it on browserstack. Without the prefix, flexbox is not rendered correctly on iOS 8.

Check browser compatibility here https://developer.mozilla.org/en-US/docs/Web/CSS/flex-basis

Btw, it would be nice to support something like this: https://www.npmjs.com/package/browserslist :)

There a bit of conflicting info on this, mdn, mentions safari 7, other sources safari 6, what seems sure though is that safari 8 does support this which is what iOS 8 should be using. So i'm not sure why it doesn't work there. I'll look into it.

Btw, it would be nice to support something like this: https://www.npmjs.com/package/browserslist

stylis is trying to be a small preprocessor(3kb) so it can't make prefixing configurable to that extent.

Hmm, even https://caniuse.com/#search=flexbox says that Safari 8 needs prefix.

Patched in 3.4.5

Thank you for the fast fix, it's working now :)


Not able to connect

Hey,
Thank you for providing the image. I tried your last Mullvad-OpenVPN image and saw that you made a new one because of the breaking changes - really appreciate that. Unfortunately, I am unable to connect to Mullvad.
I am getting the following error:
vpn           | Mon May 11 08:16:04 2020 NOTE: the current --script-security setting may allow this configuration to call user-defined scripts vpn           | Mon May 11 08:16:09 2020 RESOLVE: Cannot resolve host address: de-fra-001.mullvad.net:1196 (Try again) vpn           | Mon May 11 08:16:14 2020 RESOLVE: Cannot resolve host address: de-fra-001.mullvad.net:1196 (Try again) vpn           | Mon May 11 08:16:14 2020 Could not determine IPv4/IPv6 protocol vpn           | Mon May 11 08:16:14 2020 SIGUSR1[soft,init_instance] received, process restarting vpn           | Mon May 11 08:16:14 2020 Restart pause, 5 second(s)
I found another thread with a work-around, thinking it might be a IPv4/IPv6, but that did not solve it for me  - sadly.
Do you have any idea what I am doing wrong? This is my docker-compose file for the the vpn image, the nginx server and for the service that I am trying to use the vpn connection (sabnzbd):
 sabnzbd:     image: "linuxserver/sabnzbd"     depends_on:       - vpn     container_name: "sabnzbd"     volumes:       - ${USERDIR}/docker/sabnzbd:/config       - /mnt/sdb/downloads/completed:/completed       - /mnt/sdb/downloads/incomplete:/incomplete       - ${USERDIR}/docker/shared:/shared     restart: always     environment:       - PUID=${PUID}       - PGID=${PGID}       - TZ=${TZ}     network_mode: "service:vpn"     stdin_open: true     tty: true
 vpn:     image: yacht7/openvpn-client     container_name: vpn     cap_add:       - NET_ADMIN     devices:       - /dev/net/tun     environment:       - KILL_SWITCH:off     volumes:       - ${USERDIR}/docker/openvpn/mullvad_config_linux_de_fra:/data/vpn     restart: always
 web:     image: dperson/nginx     depends_on:       - sabnzbd     environment:       - TZ=${TZ}     links:       - vpn:sabnzbd     networks:       - default     ports:       - "8080:80"       - "443:443"     read_only: true     tmpfs:       - /run       - /tmp       - /var/cache/nginx     restart: always     stdin_open: true     tty: true     command: -w "http://sabnzbd:8080/;/"
networks:  default:

Can be closed, i did not whitelist the corresponding SUBNET.


Attribute repositories with own mappings / released attributes list

Currently, attribute repositories share:

The same mappings through: cas.authn.attributeRepository.attributes.*
The same bundled releases through: cas.authn.attributeRepository.defaultAttributesToRelease=

It would be nice and more useful if those settings weren't global but per attribute repository, as:

One may want to map differently (ex. mapping "uid" to "login" from LDAP and "uid" to "userId" from JDBC)
One may want to release everything from a repo but only some attributes from another one (ex. all from DB but only a few from the messy Active Directory. See issue #2078).

You should be able to test the fix in about an hour or so, by using the new SNAPSHOT.


[Add child] Multiple selection is not possible from the 'Cоціальна група' drop-down list #859

#859

remove required
checkboxes should be enabled for removing
fix data sending (it should be an array of objects)
if 'none' is selected, then only others should not be available for selection


Make ABR work with iOS devices

Feature Request
Is your feature request related to a problem or unsupported use case? Please describe.
Support for HLS was removed in v2.5.0 because it was not working properly and resulted in videos not being visible at all on iOS devices.
Removing it allows iOS devices to view the mp4 version without ABR.
We now need to find a solution to make ABR work on iOS devices.
Describe the solution you'd like
Test HLS with different encodings and manifests formats.

Done in #427


sass import file that themselves import from other node_modules fails

Description
I am using material-components-web in my project.
When I try to import a sass file, in one of my component, Webpack's SASS loader is angry because there is no ~ in the material-components-web source SASS file.
Steps to reproduce

Install material-components-web: npm install --save-dev<EMAIL_ADDRESS>Create a component named MaterialTopAppBar.vue like so:

<template lang="pug">
  header.mdc-top-app-bar
    .mdc-top-app-bar__row
      section.mdc-top-app-bar__section.mdc-top-app-bar__section--align-start
        button.mdc-icon-button.material-icons.mdc-top-app-bar__navigation-icon--unbounded menu
          span.mdc-top-app-bar__title San Francisco, CA
      section.mdc-top-app-bar__section.mdc-top-app-bar__section--align-end
        button.mdc-icon-button.material-icons.mdc-top-app-bar__action-item--unbounded(aria-label="Download") file_download
        button.mdc-icon-button.material-icons.mdc-top-app-bar__action-item--unbounded(aria-label="Print this page") print
        button.mdc-icon-button.material-icons.mdc-top-app-bar__action-item--unbounded(aria-label="Bookmark this page") bookmark
</template>
<script>
  import { MDCTopAppBar } from "@material/top-app-bar";

  export default {
    mounted() {
      new MDCTopAppBar(this.$el);
    }
  };
</script>
<style lang="sass">
  @import "~@material/top-app-bar/mdc-top-app-bar";
  @import "~@material/icon-button/mdc-icon-button";
</style>

(sorry, I use pug, feel free to convert it back to html: https://pughtml.com/)

Use this component somewhere (in the Layout.vue for example)

Expected result
The file compiles without errors.
Actual result
This error pops instead:
 ERROR  Failed to compile with 1 errors                                                                                21:36:41
 error  in ./src/components/MaterialTopAppBar.vue?vue&type=style&index=0&lang=sass&

Module build failed (from ./node_modules/sass-loader/dist/cjs.js):

@import "@material/elevation/mixins";
^
      File to import not found or unreadable: @material/elevation/mixins.
      in<EMAIL_ADDRESS>(line 23, column 1)

 @ ./node_modules/vue-style-loader!./node_modules/css-loader/dist/cjs.js??ref--5-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--5-oneOf-1-2!./node_modules/sass-loader/dist/cjs.js??ref--5-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/MaterialTopAppBar.vue?vue&type=style&index=0&lang=sass& 4:14-448 14:3-18:5 15:22-456
 @ ./src/components/MaterialTopAppBar.vue?vue&type=style&index=0&lang=sass&
 @ ./src/components/MaterialTopAppBar.vue
 @ ./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/babel-loader/lib??ref--1-1!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/layouts/Default.vue?vue&type=script&lang=js&
 @ ./src/layouts/Default.vue?vue&type=script&lang=js&
 @ ./src/layouts/Default.vue
 @ ./src/main.js
 @ ./node_modules/gridsome/app/app.js
 @ ./node_modules/gridsome/app/entry.client.js
 @ multi webpack/hot/dev-server webpack-hot-middleware/client?name=app&reload=true&noInfo=true ./node_modules/gridsome/app/entry.client.js ./node_modules/gridsome/app/entry.sockjs.js

Environment
  System:
    OS: Windows 10 10.0.17763
    CPU: (8) x64 Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz
  Binaries:
    Node: 10.15.3 - C:\Program Files\nodejs\node.EXE
    Yarn: 1.19.1 - C:\Program Files (x86)\Yarn\bin\yarn.CMD
    npm: 6.9.0 - C:\Program Files\nodejs\npm.CMD
  Browsers:
    Edge: 44.17763.831.0
  npmPackages:
    gridsome: ^0.7.0 => 0.7.12
    gridsome-plugin-pug: 0.* => 0.0.3
    gridsome-plugin-pwa: 0.* => 0.0.10

Notes

I use an (hopefully temporary) fix, by passing the compiled CSS file instead of using SASS files

<style lang="sass">
  @import<EMAIL_ADDRESS></style>

The file ~@material/top-app-bar/mdc-top-app-bar is itself requiring another SASS file inside another node_modules, @material/elevation, which seems to cause the issue
In the source file @material/top-app-bar/mdc-top-app-bar, if I manually add a ~, webpack is happy
I am a complete newbie with Webpack and how to configure it, I have mostly worked with Gulp for my previous build, before I fell in love with Gridsome 🙄

I know that with Gulp, instead of using the ~ syntax, you can specify in the sass compiler to also try to find the package from node_modules like so:
import { src, dest } from "gulp";
import browserify from "gulp-bro";

const css = () => src("src/js/index.js")
  .pipe(browserify({
    transform: [
      "babelify",
      ["vueify-fork", { sass: { includePaths: ["node_modules] } }]
    ]
  }))
  .pipe(dest("dist/js"));

And then in the SFC you can do this:
<style lang="sass">
  @import "@material/top-app-bar/mdc-top-app-bar";
</style>

Which passes the compilation.
I do not know if this parameter also exists with webpack-sass-loader...

I'd suggest to import a SASS file from node_modules using relative paths.

Thank you, I tried with these syntaxe and it still throwed an error:

@import "./node_modules/@material/top-app-bar/mdc-top-app-bar";
@import "node_modules/@material/top-app-bar/mdc-top-app-bar";
@import "~/../node_modules/@material/top-app-bar/mdc-top-app-bar";

But I just (1 min ago) solved my issue by:

If you do not have it, install npm install --save-dev sass-loader
Adding this configuration into my gridsome.config.js file:

module.exports = {
  css: {
    loaderOptions: {
      sass: {
        includePaths: ["node_modules"]
      }
    }
  }
};

Using this syntax to import my component:

<style lang="sass">
    @import "@material/top-app-bar/mdc-top-app-bar"
</style>

Which solve my issue, thank you for your time!

Hey @khalyomede can you import SCSS using:
# Without prefixing `@` or `~`
@import 'bootstrap/scss/functions';

I can use ~ or @ but I have legacy SCSS where everything is imported without these prefixes. Any Idea?

Hi @jd-0001 , I confirm, on a blank new Gridsome project:

gridsome create test-import-scss-gridsome
npm install --save-dev bootstrap sass sass-loader
Add the css options I mentioned
gridsome develop
Add a line in the file src\layouts\Default.vue in the <style lang="scss"> tag like you mentioned

It worked like that without any errors. Did you reproduced the same steps?

@khalyomede Yes, it works. Thanks man :+1: