Days of Buffering when using the "Quick Switch"

Defective ToolKit Feature Name: Days of Buffering and Quick Switch
Expected Behavior
When using quick switch to switch between accounts I expect the days of buffering to reflect the values of the budgeted I switched to.
Actual Behavior
When using quick switch, the days of buffering calculation seems to cache the previous budgets values.
Steps to Reproduce the Behavior

Open Budget A, take note of days of buffering
Open Budget B using Quick Switch and notice that Days of buffering is exactly the same
Open Budget B again using the native Open budget command, and the Days of Buffer will refresh with Budget B's values. (Browser refresh also works)

Export of Toolkit Settings (Bottom Left of Settings Page)
[{"key":"accountTransactionSearch","value":true},{"key":"accountsClearSelection","value":true},{"key":"accountsDisplayDensity","value":"0"},{"key":"accountsEmphasizedOutflows","value":true},{"key":"accountsRowHeight","value":"0"},{"key":"accountsSelectedTotal","value":true},{"key":"accountsStripedRows","value":false},{"key":"activityTransactionLink","value":true},{"key":"budgetBalanceToZero","value":true},{"key":"budgetProgressBars","value":"0"},{"key":"budgetQuickSwitch","value":true},{"key":"budgetRowsHeight","value":"0"},{"key":"categoryActivityPopupWidth","value":"0"},{"key":"changeEnterBehavior","value":false},{"key":"checkCreditBalances","value":false},{"key":"checkNumbers","value":false},{"key":"collapseExpandBudgetGroups","value":false},{"key":"collapseSideMenu","value":false},{"key":"colourBlindMode","value":false},{"key":"currentMonthIndicator","value":false},{"key":"daysOfBuffering","value":true},{"key":"daysOfBufferingHistoryLookup","value":"0"},{"key":"editButtonPosition","value":"0"},{"key":"enableRetroCalculator","value":true},{"key":"enlargeCategoriesDropdown","value":true},{"key":"enterInRegisterNow","value":true},{"key":"goalIndicator","value":false},{"key":"goalIndicatorWarningColor","value":false},{"key":"googleFontsSelector","value":"0"},{"key":"hideAOM","value":false},{"key":"highlightNegativesNegative","value":false},{"key":"importNotification","value":true},{"key":"incomeFromLastMonth","value":"0"},{"key":"l10n","value":"0"},{"key":"largerClickableIcons","value":false},{"key":"monthlyNotesPopupWidth","value":"0"},{"key":"pacing","value":"0"},{"key":"printingImprovements","value":true},{"key":"privacyMode","value":"0"},{"key":"reconciledTextColor","value":"0"},{"key":"removePositiveHighlight","value":false},{"key":"removeZeroCategories","value":false},{"key":"reports","value":true},{"key":"resizeInspector","value":false},{"key":"rightClickToEdit","value":true},{"key":"runningBalance","value":true},{"key":"seamlessBudgetHeader","value":false},{"key":"showIntercom","value":true},{"key":"splitKeyboardShortcut","value":true},{"key":"splitTransactionAutoAdjust","value":true},{"key":"squareNegativeMode","value":false},{"key":"swapClearedFlagged","value":false},{"key":"toBeBudgetedWarning","value":false},{"key":"toggleSplits","value":false},{"key":"toggleTransactionFilters","value":"0"},{"key":"warnOnQuickBudget","value":false}]

System Settings
ToolKit Version: 0.7.5
Operating System (Mac/Windows/Etc): Windows 10 Anniversary update... :(
Browser (Chrome/Firefox/Safari): Chrome
Browser Version: 53.0.2785.143 m (64-bit)
Other Extensions: ADP, Toolkit for Dynamics CRM, reddit inline content view

Thanks for the report!

This is an issue with features not "reloading" when people witch budgets.

@seefernando can you verify this is resolved and close the Issue if it is? Thanks.

Hey @seefernando I'm going to go ahead and close this issue as it should be fixed. If you're still experiencing the issue, please feel free to reopen! Thanks again!


Make services compatible with python3.8

First of all, thank you for providing this package! Unfortunately, I've had a bit of difficulty using Foxy, so I was wondering if you would accept the following patch.
Currently, services use typing.TypeAlias. However, this was only introduced in Python 3.10. Until then, we should use the backported version that's available in typing_extensions. Since stub files can not contain any dynamic imports, this is done inside the template by importing TypeAlias from either module.
Also update Actions, since they also use nested types.
I created a simple service that takes a string, and these are the results. Before:
Revealed type is "Any"

After:
Revealed type is "def (*, str: builtins.str =, **kwargs: Any) -> test_pkg.srv._set_string.SetString_Request"

@bonprosoft : Could you let me know if this version is satisfying?


Merge razor-compiler

Merges @dotnet/razor-compiler into this repo.
Only the last few commits are salient. Some of the projects are duplicates so renamed for now.

@chsienki when this is ready for review, can you clarify after which commit is salient?

Oh good, I was wondering how we were going to bump Taylor off the top of the contributors list :)

Oh good, I was wondering how we were going to bump Taylor off the top of the contributors list :)

It's got all the history, so I don't think this will quite grant Chris the credit.

I'm not brave enough to actually click the Files tab in GitHub. Like Fred said, let us know when we should look, and at what, but I am curious about the structure. In particular this stood out to me in the list of commits:

Move directory.packages.props

I thought for CPVM that file had to be at the solution root, which I guess then brings me to the next question: Are you trying to merge the repos and combine infrastructure, or is this (for now) going to be two separate things that happen to live in the same git repo, with root "Tooling" and "Compiler" folders that keep everything separate?
(No opinion on this really, just curious. If you want/need to onboard tooling into CPVM to get this to work, go for it)

I'm not brave enough to actually click the Files tab in GitHub. Like Fred said, let us know when we should look, and at what, but I am curious about the structure. In particular this stood out to me in the list of commits:

Thats probably wiser than using gitako and trying to skim through directory structures like I did. Its surprisingly quite responsive. So I wouldnt mind recommending Gitako.

Do we have a precursor set of tasks that need to be achieved on the razor tooling side before taking this merge? Example: cleaning up the labels/tags for triaging etc, will the CICD be also converged?
cc:: @davidwengier, @chsienk

Do we have a precursor set of tasks that need to be achieved on the razor tooling side before taking this merge?

@chsienki were chatting Friday and intent was to merge this into a feature branch first. It's likely going to require several iterations before we can get everything clean here. The first merge is going to be hard to review cause it's importing the entire history. The subsequent changes to get us code clean should be in the more standard review.
It also gives us more time to ensure we have everything working code wise before we pull the trigger and merge to main.

Example: cleaning up the labels/tags for triaging etc, will the CICD be also converged?

The issue merge will happen after the code merge. It will require significant clean up of the labels from razor-compiler. Was going to chat with you all before we did this.
CI/CD will be merged but that should be pretty straight forward as the razor-compiler path is pretty straight forward.

Closing this in favor of https://github.com/dotnet/razor-tooling/pull/6747

I'm not brave enough to actually click the Files tab in GitHub. Like Fred said, let us know when we should look, and at what, but I am curious about the structure. In particular this stood out to me in the list of commits:

Move directory.packages.props

I thought for CPVM that file had to be at the solution root, which I guess then brings me to the next question: Are you trying to merge the repos and combine infrastructure, or is this (for now) going to be two separate things that happen to live in the same git repo, with root "Tooling" and "Compiler" folders that keep everything separate?
(No opinion on this really, just curious. If you want/need to onboard tooling into CPVM to get this to work, go for it)

@davidwengier Yeah, the intention is to keep the separate to start with and slowly combine, rather than trying to do everything in a single go. Directory.Packages.props seems to work the same as other dir files, it just stops looking when it finds one.

Do we have a precursor set of tasks that need to be achieved on the razor tooling side before taking this merge? Example: cleaning up the labels/tags for triaging etc, will the CICD be also converged?
cc:: @davidwengier, @chsienk

@arkalyanms This is linked in the other PR, but I created a tracking issue for this at https://github.com/dotnet/razor-tooling/issues/6748


How to user userId for onRead permissions?

I am quite new to Meteor, so please help if I am asking beginner's questions.
I tried to use this.userId for onRead permissions, but it seems this.userId returns undefined value.
Is it possible to pass userId to onRead function?

@colinzhao this.userId is not available everywhere, only inside Meteor.methods() and Meteor.publish(). Since UploadFS uploads file chunks using HTTP POST and not Meteor's methods, this.userId is not available so cannot be passed to onRead().
If you want to secure access to a file, use the URL token pattern, it's in the doc: https://github.com/jalik/jalik-ufs#secure-file-access


Applied checks on GitHub PR Link

fixes #7

Checking Now.

Problem

Even when there is no Toast this Toast div is there, which will block everything below it including the buttons hence cause the problem. So Try to make the Toast appear there for some time then completely remove it when it is not shown.


Add-PnPTeamsChannel producing error of Failed to execute Skype backend request GetThreadS2SRequest but channels are still created[BUG]

Reporting an Issue or Missing Feature
Please confirm what it is that your reporting
Issue
Expected behavior
Please describe what output you expect to see from the PnP PowerShell Cmdlets
Channels added to a newly created Teams Team without triggering error handling / giving error
Actual behavior
Please describe what you see instead. Please provide samples of output or screenshots.
The cmdlet works for private channels fine but when adding standard channels the code throws an error of "Failed to execute Skype backend request GetThreadS2SRequest".
When checking the team that's been created, the standard channels are present and appear to be provisioned correctly but this issue is triggering error handling and causing the issues with the script.
Adding a retry block doesnt work as the script sees the channel as already existing.
I have tried various start-sleep lengths up to 15 mins and this hasn't had any effect.
I have also tried including the -ChannelType Standard parameter but this also had no effect.
Steps to reproduce behavior
Please include complete script or code samples in-line or linked from gists

$Group = New-PnPTeamsTeam -DisplayName $DisplayName -Description $Description -Visibility Private -MailNickName $MailNickName -Owners $OwnersArray
Start-Sleep -Seconds 10
$PrivateChannel1 = Add-PnPTeamsChannel -Team $Group.GroupId -DisplayName 'Private1' -ChannelType Private -OwnerUPN $OwnersArray[0]
$PrivateChannel2 = Add-PnPTeamsChannel -Team $Group.GroupId -DisplayName 'Private2' -ChannelType Private -OwnerUPN $OwnersArray[0]
-------ERRORS START HERE --------
$PrivateChannel3 = Add-PnPTeamsChannel -Team $Group.GroupId -DisplayName "Channel3" -IsFavoriteByDefault $true
$PrivateChannel4 = Add-PnPTeamsChannel -Team $Group.GroupId -DisplayName "Channel4" -IsFavoriteByDefault $true
$PrivateChannel5 = Add-PnPTeamsChannel -Team $Group.GroupId -DisplayName "Channel5" -IsFavoriteByDefault $true
What is the version of the Cmdlet module you are running?
Powershell 7.2.17
PnP.Powershell 2.3.0
Which operating system/environment are you running PnP PowerShell on?

[X ] Windows

hi @robterrins , Microsoft has deprecated the IsFavoriteByDefault property from Graph API.
So, that's why you were facing the error.
In the code , have now marked the property as obsolete as well and it will no longer work.
Will remove the property in the next major release. The updated code will be available in tomorrow's nightly builds.
Thanks for raising the issue.


filename should not be part of ChannelManagerState

I can't move the state file otherwise to a different path.

Fixed in https://github.com/raiden-network/microraiden/pull/145

btw, channel manager still references the state file.
See
channel_manager.py:295-296 (this raises an exception when starting uRaiden on demo site w/o synced chain)
https://github.com/jannikluhn/microraiden/blob/5f69f69a7be82dc9ee87b2c7f1d788ba65b23260/microraiden/microraiden/channel_manager.py#L295
and
channel_manager.py:257
https://github.com/jannikluhn/microraiden/blob/5f69f69a7be82dc9ee87b2c7f1d788ba65b23260/microraiden/microraiden/channel_manager.py#L257
(there should be key check before calling pop())

Fixed in PR #180


Integration test facility to ensure and assert processed events

When integration testing an axon application that involves tracking event processors one quickly comes to the point when you need
a) to make sure that all events are processed by all event processors (so that the application is in a final state we can assert on), and
b) to determine, which events exactly have been published
To facilitate this, it would be nice to have some component in the axon-test module that allows to
a) "wait" for all TEPs to catch up to a certain state before continuing, and
b) return all events that have been published within a certain period of time (e.g. between two certain "marker"-events) to assert them in an integration test
We're currently doing this by implementing a TestEventRecorder that can be used from within an integration test. On a high level it works the following way:

Set the TestEventRecorder to "record" state at the beginning of an integration test case and add a testCorrelationId to identify which events belong to the current test case.
Execute the action that triggers producing the desired events in the integration test.
Let the TestEventRecorder record all events having this testCorrelationId until "stop" is called for a certain testCorrelationId.
"Catch-up" all other event processors on "stopping" the TestEventRecorder by sending a RecordingCatchupEvent directly to the event-bus and determine the tracking-token related to this event when it is processed in the TestEventRecorder - then we can use the axon-config to get all other tracking event processors and simply block the stop method to wait until all production event processors have processsed up to this TrackingToken (see example code below)
After stop returned, we can return all events that have been recorded for a certain testCorrelationId and use them to assert the expected events in the integration test

Since publishing and processing of events is happening at different times, we additionally implemented a TestEventCorrelationIterceptor (which is a regular axon MessageDispatchInterceptor) that adds a testCorrelationId to the event metadata when publishing an event. Thus we make sure that the TestEventRecorder separates the recorded events per correlationId, even if the processing of in the TestEventRecorder happens after we already signaled the recorder to stop recording from within the integration test.
Example for catching up other processors:
private void catchUpTrackingProcessors(TrackingEventProcessor recordingProcessor) {
    final TrackingToken recordingToken =
        recordingProcessor
            .processingStatus()
            .values()
            .stream()
            .map(EventTrackerStatus::getTrackingToken)
            .filter(Objects::nonNull)
            .reduce((tokenA, tokenB) -> tokenA.covers(tokenB) ? tokenA : tokenB)
            .orElse(null);

    if (recordingToken == null) {
        log.debug("trackingToken for event recorder not found");
        throw new RuntimeException("failed to catch up");
    }

    log.debug("processors need to catch up to {}", recordingToken);

    // wait for all other processors to catch up
    final Collection<TrackingEventProcessor> otherProcessors = getOtherTrackingProcessors();
    log.debug("iterating {} processors to catch up", otherProcessors.size());
    for (TrackingEventProcessor processor : otherProcessors) {
        if (!processor.isRunning()) {
            log.debug("skipping processor {} since it is already shutting down", processor.toString());
            continue;
        }

        final Set<Integer> currentSegments = processor.processingStatus().keySet();
        for (Integer segmentId : currentSegments) {
            EventTrackerStatus currentStatus = processor.processingStatus().get(segmentId);
            if (currentStatus == null) {
                log.debug("segment {} of processor {} vanished meanwhile.", segmentId, processor.toString());
                continue;
            }

            TrackingToken currentTrackingToken = currentStatus.getTrackingToken();
            log.debug("segment {} of processor {} {} to token {}. recording token is {}",
                segmentId, processor.toString(), currentStatus.isCaughtUp() ? "is caught up" : "is not caught" +
                    " up"
                , currentTrackingToken, recordingToken);
            if (currentTrackingToken != null && currentTrackingToken.equals(recordingToken) && currentStatus.isCaughtUp()) {
                // continue with next segment
                continue;
            }

            // run an exponential backoff of max. 5 secs to wait for finishing
            final ExponentialBackOff exponentialBackOff = new ExponentialBackOff(INITIAL_BACKOFF_MS, 1.5);
            exponentialBackOff.setMaxElapsedTime(MAX_BACKOFF_MS);
            final BackOffExecution backOff = exponentialBackOff.start();
            do {
                final long currentInterval = backOff.nextBackOff();
                if (currentInterval == BackOffExecution.STOP) {
                    log.debug("backoff expired waiting for segment {} of processor {} to catch up to {}.",
                        segmentId, processor.toString(), recordingToken);
                    throw new RuntimeException("failed to catch up");
                }
                log.debug("segment {} of processor {} needs to catch up to {} from {}. Waiting for {}ms ...",
                    segmentId, processor.toString(), recordingToken, currentTrackingToken, currentInterval);

                synchronized (processor) {
                    try {
                        processor.wait(currentInterval);
                        // do live refresh of current Status and current Tracking token
                        currentStatus = processor.processingStatus().get(segmentId);
                        currentTrackingToken =
                            Optional.ofNullable(currentStatus)
                                .map(EventTrackerStatus::getTrackingToken)
                                .orElse(null);
                    } catch (InterruptedException e) {
                        // re-set the interrupted state on the current thread, since we don't expect to be
                        // waked up
                        Thread.currentThread().interrupt();
                    }
                }
            } while (currentTrackingToken == null ||
                (!currentTrackingToken.equals(recordingToken)) && !currentStatus.isCaughtUp());
            log.debug("segment {} of processor {} is caught up to the catchup token {}.",
                segmentId, processor.toString(), recordingToken);
            // continue with next segment
        }
    }
}

Example for the TestEventCorrelationInterceptor
/**
 * simple message interceptor that serializes the current {@link #currentTestCorrelationId} to the
 * {@link Message#withMetaData(Map)} prior to message dispatching
 */
public class TestEventCorrelationInterceptor implements MessageDispatchInterceptor<Message<?>> {

    private static final Logger log = LoggerFactory.getLogger(TestEventCorrelationInterceptor.class);
    public static final String EVENT_RECORDER_METADATA_KEY = "ai.ikosa.portal.commander.util" +
        ".TestEventsRecorderInterceptor";
    public static final String UNSET_CORRELATION_ID = "unset";

    public String currentTestCorrelationId = UNSET_CORRELATION_ID;
    public boolean unsetOnNextCatchup = false;

    public void setCurrentTestCorrelationId(String currentTestCorrelationId) {
        this.currentTestCorrelationId = currentTestCorrelationId;
        unsetOnNextCatchup = false;
    }

    public void unsetOnNextCatchup() {
        unsetOnNextCatchup = true;
    }

    public TestEventCorrelationInterceptor() {
        super();
    }

    /**
     * Handles a list of messages and serializes the {@link #currentTestCorrelationId} to the
     * Messages metadata before dispatching them, to correlate recorded messages together
     * see {@link MessageDispatchInterceptor#handle(List)}
     *
     * @param messages
     * @return
     */
    @Override
    public BiFunction<Integer, Message<?>, Message<?>> handle(List<? extends Message<?>> messages) {
        return (index, message) -> {
            Map<String, String> metaData = Map.of(EVENT_RECORDER_METADATA_KEY, this.currentTestCorrelationId);
            if (message instanceof GenericEventMessage && message.getPayloadType().equals(TestEventRecorder.RecordingCatchupEvent.class) && unsetOnNextCatchup) {
                this.currentTestCorrelationId = UNSET_CORRELATION_ID;
                unsetOnNextCatchup = false;
            }
            return message.andMetaData(metaData);
        };
    }
}

There has also been a recent discussion on this topic in the Axon Google Group: https://groups.google.com/d/msg/axonframework/AIIKVlYFEcs/Oi2UEsvQBgAJ

Thanks for filing this issue with us @hatzlj.
At first, I thought this was a duplicate of the the Projection Testing issue #729.
It's however going one step further I'd say.
When time allows it, we will discuss how to proceed further with thus.
We will update this ticket accordingly as soon as we have made decisions around implementation and prioritization.

As there are ideas to expand and potentially reimagine the test fixtures within Axon Framework for 5.0.0, there is a chance this issue will be picked up in that flow.
However, we are not yet ready to add this issue to milestone 5.0.0, as there is a lot of work to be processed before we can begin on additional features like this.
Nonetheless, an update was due, given that the last time I replied was over 4 years ago.
With that said, we'll keep everybody posted on the progress of this issue, right here.


As a developer I want access to the postgres tablefunc library.

Adding is simple, we can do it with a migration: CREATE EXTENSION tablefunc;
Considerations:

dumps/restore
??

2.7.2 :005 > ap ActiveRecord::Base.connection.exec_query("SELECT * FROM normal_rand(4, 5, 3);").to_a
  SQL (0.7ms)  SELECT * FROM normal_rand(4, 5, 3);
[
    [0] {
        "normal_rand" => 6.786546376632428
    },
    [1] {
        "normal_rand" => 3.1476271683303443
    },
    [2] {
        "normal_rand" => 7.031389966536828
    },
    [3] {
        "normal_rand" => 4.065829998299258
    }
]
 => nil

I think dump/restore should work fine. Already does with GIS-related stuff which I beleave it is not auto-configured by rails on non-empty databases, only when creating them.

Thanks. Reasigning to me since it's just a migration.  Likely coming in the dwc export branch.

@LocoDelAssembly please revert.  Policy is to never ever change an old migration.  Add a new migration file with the change.  Sorry for the confusion.

I glanced and saw the schema being updated and assumed it was the migration.  I see the migration file db/migrate/20210419173135_enable_tablefunc.rb  in the original commit, which is exactly right.
So- please excuse my hasty carelessness and revert the wrongness that you added in c0cf16d, then we can close this and I won't waste more itme.

OK, will revert. Probably against policy but will have to be this way this time.


How to make scalajs emit smaller js?

Bucklescript(https://github.com/BuckleScript/) seems to emit quite small js code which is quite amazing.what currently prevents scala js from doing better?

See: https://stackoverflow.com/a/48425441/1149944
Also please try use Gitter or Stackoverflow for questions in the future. This is for feature requests and bugs.

Thanks


SVG re-throws ArgumentException due to bounds zero and if opacity is not one

Svg.dll will re-throw an ArgumentException from CBitmap if rendering a path where the bounds width or height is zero and opacity is not one (the default).
The above is reproducible using master at commit 80674303f5abebcc247a3c4dbe4d6bb2de1bf2cd. SVGViewer can be used to verify the bug.
The original exception is thrown by the CBitmap constructor in line 154 of Source\Basic Shapes\SvgVisualElement.cs
Test svg:
<?xml version="1.0" encoding="UTF-8"?>
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="200" height="200">
  <g id="Layer 1">
    <path d="M100,50 L100,150" stroke="black" opacity="0.5" />
  </g>
</svg>

Expected result:

Thanks.
I try to fix this issue.

Calculation of Bounds in SvgPath seems to be wrong.

@H1Gdev - are you still working on this?

@mrbean-bremen
Yes.I am still working.
I know direct cause of this issue.
But I need to check many of <path>.
After attribute consolidation is over, I will fix this issue.

Thank you!


Fixnum error rails 4.2.6 fix

After updating to rails 4.2.6 (ruby 2.3.0) I got the error below. This fix fixes the error.

From the context in this PR, it seems like your app is setting a throttle's period to a string instead of a number. I recommend fixing it in your app instead of in this library.
If that wasn't the case, it's certainly a weird bug, and please let me know. 😄
Closing this pending new information.


Add fixed IP information to User

The users data can include fixed IP information if it has been specified in the controller. I have added it to the users.go file.

mind updating to master branch? should be able to pull this in

merged in #63


Add German models

Added three German models

German QuartzNet stt_de_quartznet15x5
German FastPitch tts_de_fastpitch_singleSpeaker_thorstenNeutral_2210
German HiFiGAN tts_de_hifigan_singleSpeaker_thorstenNeutral_2210

Fix https://github.com/kaiidams/NeMoOnnxSharp/issues/20


Ensure that multi-line TREC topic titles are fully parsed. Update the…

Incorporated the change from @axlliu for ensuring that multi-line TREC topic titles are processed correctly. Added a test for title parsing to the set of tests.
Note that one of the existing tests (testNewswireTopics) happened to hit on a multi-line title (topic 200), and that test needed to be fixed to include the second line of the title.
As these changes change the queries, the numbers in the regressions for disk 1 and 2 need to change. I re-ran the index and the evaluations using the new code, which resulted in quite a few changes for the regression numbers (some better, some worse.)

Great! Can you actually change the regression numbers here? https://github.com/castorini/anserini/blob/master/src/main/resources/regression/disk12.yaml
The documentation is auto-gen'ed based on yaml above.

The YAML file's connected to the MD file, the MD file's connected to the...
Updated the YAML and it re-generated the MD file, so I committed both.

@eelstretching great, thanks! I'll queue up a run of all regressions on my end to make sure it doesn't break anything else, and then I'll merge.


Problem with DefaultTheme type definition

[ x] The issue is present in the latest release.
[ x] I have searched the issues of this repository and believe that this is not a duplicate.

Current Behavior 😯

When trying to utilize a color from my theme pallete inside a makeStyles, it says that DefaultTheme doesn``t have property 'palette', which is odd since I logged the theme object and it has said property.
So I went to the type definition of DefaultTheme in<EMAIL_ADDRESS>and notice that the type exported is in fact an empty object:
/**
 * The default theme interface, augment this to avoid having to set the theme type everywhere
 */
export interface DefaultTheme {}

Why should I augment this interface instead of utilizing Theme directly?
Expected Behavior 🤔
No error.

Steps to Reproduce 🕹
https://codesandbox.io/s/modern-rain-h5n3m
Context 🔦
I am using material-ui with Typescript (3.7.5) and I was trying to change the background color of a Divider to a color I have in a custom theme, so I tried to create a class using makeStyles. The problem is that when trying to access the palette property in the theme inside makeStyles, Typescript would give an error (ts 2339) saying that DefaultTheme doesn`t have the palette property.
I have managed to fix the issue in my computer (but not on codesandbox) by importing Theme:
...
import {Theme} from "@material-ui/core";

const useStyles = makeStyles((theme: Theme) => ({
    dividerColor: {
        backgroundColor: theme.palette.secondary.main
    }
}));

Your Environment 🌎
I'm using the tsconfig from create-react-app:
tsconfig.json
{
  "compilerOptions": {
    "target": "es5",
    "lib": [
      "dom",
      "dom.iterable",
      "esnext"
    ],
    "allowJs": true,
    "skipLibCheck": true,
    "esModuleInterop": true,
    "allowSyntheticDefaultImports": true,
    "strict": true,
    "forceConsistentCasingInFileNames": true,
    "module": "esnext",
    "moduleResolution": "node",
    "resolveJsonModule": true,
    "isolatedModules": true,
    "noEmit": true,
    "jsx": "react"
  },
  "include": [
    "src"
  ]
}

Tech
Version

Material-UI
v4.10.2

React
v16.13.1

TypeScript
v3.7.5

We should link to our typescript guide from that comment so that it's more apparent how this should be used. Could probably improve either the comment or docs to explain why and how you'd want to augment the default theme.

@eps1lon
Yeah, the link to the docs would help.

I'm closing as this pain doesn't seem to be a strong one. We improved the documentation around the theme module augmentation, it's might be enough.

@oliviertassinari
Was

We should link to our typescript guide from that comment so that it's more apparent how this should be used. Could probably improve either the comment or docs to explain why and how you'd want to augment the default theme.

-- https://github.com/mui-org/material-ui/issues/21551#issuecomment-648195104
adressed?

As far as I understand it, DefaultTheme is private and the problem is @gSarciotto is trying to solve is documented in length in the documentation.
What's the root cause of the pain? What's the proposed solution?

As far as I understand it, DefaultTheme is private

That comment indicates otherwise.

In alpha v35, makeStyles now have default type for DefaultTheme which is empty.

is it bug or intented? Now I need to type theme: Theme otherwise it is DefaultTheme.

I've experienced the same as @Jack-Works with alpha-v35. Solved it with this augmentation:
import { Theme } from '@material-ui/core';

declare module '@material-ui/styles' {
  // eslint-disable-next-line @typescript-eslint/no-empty-interface
  interface DefaultTheme extends Theme {}
}

Hope this wasn't intended.

Note that, @material-ui/styles is no longer part of @material-ui/core. It is a standalone package now that exports some JSS utils. If you wish to use it with @material-ui/core's theme, you need to either:

augment, as shown in https://github.com/mui-org/material-ui/issues/21551#issuecomment-851991897
use the generic in makeStyles, withStyles and the other utils for providing the Theme interface.

I would suggest going with option number 1, if you still want to use the utilities exported in @material-ui/styles. I will make sure to include this in the migration guide, as it is most likely going to be a pain for other TS users too.

Or create a new file and re-export with the correct type from styles package since it's required to rewrite those imports.

We've starting to migrate to tss-react. It has good integration with mui. After migration finish, we can move on to follow the newer alpha/beta versions.

While we got little feedback about it over the last 12 months, developers might face this pain a lot more frequently with the migration to v5. Are there more opportunities on this issue we want to explore?

We have documented the migration aspect in https://next.material-ui.com/guides/migration-v4/#material-ui-styles.
We talked about doing something like:

diff --git a/packages/material-ui-styles/src/defaultTheme/index.d.ts b/packages/material-ui-styles/src/defaultTheme/index.d.ts
index 380057e54a..dfc66a17bd 100644
--- a/packages/material-ui-styles/src/defaultTheme/index.d.ts
+++ b/packages/material-ui-styles/src/defaultTheme/index.d.ts
@@ -1,3 +1,6 @@
 /* eslint-disable import/prefer-default-export */

+/**
+ * Use TypeScript module augmentation to match the theme available in the React context.
+ */
 export { DefaultTheme } from '@material-ui/private-theming';

Do we still want to do it? Do we need a new page in https://next.material-ui.com/styles/?

Is there anything else we could do?


tests/language/issue_25671[a|b]_test.dart fail on the VM

Tests
tests/language/issue_25671a_test.dart and
tests/language/issue_25671b_test.dart
fail on the VM.
Turning them off currently on the VM until we fix the issue.

Regis is working on a fix for these tests.


[BUG] Features do not work when you insert a picture into a note that opened in a new window

Features do not work when you insert a picture into a note that opened in a new window.
At the same time, the functions work in the main window.

Tested in default sandbox
Obsidian Sandbox.zip

https://github.com/user-attachments/assets/82107a8e-25ae-4a53-a4f8-251131885e7a

Fixed in https://github.com/RainCat1998/obsidian-custom-attachment-location/releases/tag/4.24.0


Could someone please share a macro in XML format?

Greeting. This is not actually an issue.
Due to using of PS Remote play in a emulated environment (Virtual box) with win7 being a host system,any usage of wired DS4 controller crashes my system.
So I cannot record any macros with this great product.
But I still would like to test if those macros would be played and percepted by PS RP.
For that reason I would like to see any working macro in XML format so I could possibly adapt it for my needs. I am not any good in C# coding (can code a little with python/php/asm) and the limited emulated environment has no resources to install MS VS, so coding a dll is not an option for me :(
Thank you guys.
And thumbs up for good work for komefai!

I have just found some other's macro for some game not important for my purposes.
It weights 3.5Mb of pure XML code and seems to be just a log of DualShock states.
I have no problem with writing a script that would list such states in my needed order, but... how are the delays between the states encoded? eg, I send 1 state like square pressed, and how do i "release" it after needed timeelapsed?

Well...
Some feedback after I spent 6 hours of tuning, "scripting" and figuring things out.
First come first - stability. There is quite a few of it. In my environment I can only control playstation while the remapper subwindow is open. Since that window is modal, I cannot control PS4Macro window while it's open and I am still unsure if that is working as intended.
Secondly, it seems that sometimes the PS Remote play loses the emulated controller, or, what is more probable, PS4 Macro somehow loses it's injects into the control flow. What I mean is that at some point of execution, RemotePlay stops responding to keyboard keypresses, all of them, including Enter/Escape keys which normally work even without PS4Macro. After closing PS4Macro my ability to send Enters and Escapes returns, but restarting PS4Macro kills the control again.
Maybe (not sure if it really is) PS RP changes it's PID, because even after closing both PS4M and RP does not help. I have to "reboot" the win10 virtual machine to regain control with PS4 Macro.
Next thing is timings... Since I play inside an emulated windows system, I cannot measure my keypresses' length. Neither can I script those without MS Visual C. That leads to a problem that two equal keypresses from keyboard lead to different actions (may it be a single step with a game's character or a long run).
What I have somehow achieved is a script for AutoIt, which sends keypresses to remoteplay, which, in turn, having remapper window open, translates those into DS4 button presses. That works sometimes, but due to stability and timings problems I cannot rely on such contruction to grind what I need in my games :)
I suppose that a further step from having a recorded XML macro to be played to having a sort of scripting language for writing Macros might be done like it is with AutoIt system. Until than my personal circumstances do not allow me to fully utilize the power of this tool.
Anyways, what I described could be acknowledged as the best result from a series of attempts with multiple tools. At least I don't need a controlled attached, which is great.
Maybe I would achieve even better results by upgrading the host system to win10, but that is not an option for me for several reasons, one of which is ability to minimize the virtual system and have a computer avaliable for different tasks while grinding in PS4 games :)
Thank you komefai for your good work.
PS. komefai.com does not respond to http requests, although it does resolve.
At some point

Hi, thanks for the report!

In my environment I can only control playstation while the remapper subwindow is open. Since that window is modal, I cannot control PS4Macro window while it's open and I am still unsure if that is working as intended

The Remapper window is intentionally a blocking dialog because there is nothing in the main window that has to be controlled at the moment. Allowing to control the main window will most likely cause unexpected behaviors. So the restriction is required for now.

Secondly, it seems that sometimes the PS Remote play loses the emulated controller, or, what is more probable, PS4 Macro somehow loses it's injects into the control flow

You're correct, it's definitely PS4 Macro losing the injection somehow because the keyboard hook is still working but the injection does not (explains why normal buttons like esc doesn't work). However, I'm not sure what caused this problem. I've been running a script 24/7 for 4-5 months now and never encountered this problem. It might be related to the VM or maybe the PID as you've suggested.

Next thing is timings... Since I play inside an emulated windows system, I cannot measure my keypresses' length. Neither can I script those without MS Visual C. That leads to a problem that two equal keypresses from keyboard lead to different actions (may it be a single step with a game's character or a long run).

It is almost impossible to achieve perfect timing from a macro file unless you have a PC powerful enough to execute tasks in perfect intervals (etc. 30fps). I find that writing a C# script improves a lot on timing accuracy because controls can be scheduled (eg. Press and hold R2 for 5 seconds) instead of spamming R2 data packets 10-15 times in a row (wasting CPU to press and hold). I hope that you can give C# scripting a try some day.

Thank you komefai for your good work.
PS. komefai.com does not respond to http requests, although it does resolve.

You're welcome and thank you so much for letting me know about the website being down!!! :D
PS. I'm closing this issue but feel free to leave questions.


Return Button only works the first time

Describe the bug
The "back" button the asset details page only works the first time.
Environment

AEM Version: 6.5, 6.4
Asset Share Commons Version: latest
Author, Publish or both? both

To Reproduce
Steps to reproduce the behavior:

Perform a keyword search for "bike"
Click into a result details page
Hit the back button
Search is maintained for the keyword "bike"
Click into a second result details page
Hit the back button
Search result is not maintained.

Expected behavior
The search result should be maintained until the user performs a new search.
Screenshots
This looks to be an issue with the local storage of the returnUrl in that it gets reset the 2nd time:

Additional context
Would need to revisit the javascript that populates the returnUrl in local storage: https://github.com/Adobe-Marketing-Cloud/asset-share-commons/blob/develop/ui.apps/src/main/content/jcr_root/apps/asset-share-commons/clientlibs/clientlib-site/js/navigation.js

I'll take this issue on and fix it.

This issue is now fixed.

Thanks @schmidtkevina !


Fix to allow LW resources to be used with HW providers

This should fix sethvargo-cookbooks/swap#22
Here's what was happening:
The cookbooks creates a Resource using the LWRP base. This dynamically
creates a class. We used to create this class with the name
Chef::Resource::SomeResourceName. In 12.4, this change to something like
"LWRP resource some_resource_name from cookbook CookbookName". When
searching for a provider, it couldn't be found because it wasn't explicitly
set, as it would have been if it was a LW provider, and it wasn't found
in Chef::Provider, because Chef::Provider had a provider SomeResourceName
instead of "LWRP resource some_resource_name from cookbook CookbookName".
cc @jkeiser @sethvargo @chef/client-maintainers

Just one comment, and :+1:.  Thanks!!!

:shipit:

seems reasonable :+1:

class.name is the name of the class, while to_s may be overridden by people to change what shows up when you print it (our lwrp classes do this even when they don't have a name).

:+1:

:+1:


missing functional header in Configuration.h

Using GCC 7.1 the following errors were thrown
n file included from /home/build/temp/TeeTime-Cpp/src/Configuration.cpp:16:0: /home/build/temp/TeeTime-Cpp/src/../include/teetime/Configuration.h:146:90: error: ‘std::function’ has not been declared      static shared_ptr<FunctionObjectStage<TIn, TOut>> createStageFromFunctionObject(std::function<TOut(TIn)> f, const char* name = "function_object")                                                                                ^~~~~~~~ /home/build/temp/TeeTime-Cpp/src/../include/teetime/Configuration.h:146:98: error: expected ‘,’ or ‘...’ before ‘<’ token      static shared_ptr<FunctionObjectStage<TIn, TOut>> createStageFromFunctionObject(std::function<TOut(TIn)> f, const char* name = "function_object")                                                                                ^ /home/build/temp/TeeTime-Cpp/src/../include/teetime/Configuration.h: In static member function ‘static std::shared_ptr<teetime::FunctionObjectStage<TIn, TOut> > teetime::Configuration::createStageFromFunctionObject(int)’: /home/build/temp/TeeTime-Cpp/src/../include/teetime/Configuration.h:148:58: error: ‘f’ was not declared in this scope        return createStage<FunctionObjectStage<TIn, TOut>>(f, name);                                                           ^ /home/build/temp/TeeTime-Cpp/src/../include/teetime/Configuration.h:148:61: error: ‘name’ was not declared in this scope        return createStage<FunctionObjectStage<TIn, TOut>>(f, name);                                                              ^~~~
Upon inspection of Configuration.h, it is clear that functional is missing. I searched through the implicitly included header and couldn't find functional. I added #include <functional> to Configuration.h and compilation succeeded.. It strange, because my VS2017 compiles fine without the functional header. I some sort of implicit include occurs in VS.

thanks for reporting the issue, i will look into it :)


[MCC-209996] bump version up to 1.0.0

@lschreck-mdsol @bvillanueva-mdsol @mdsol/monitoring-sentinels please review. fd52d6c

Looks good - hopefully the next PRs will be easier to check (as no more packages folder in the repository :wink:).

Going to 1.0.0 is great. We'll need a story in next sprint to update documentation, and especially remove the warning in the documentation that this nuget is unstable not meant for production.

updated Readme 22e7c1b

LGTM :+1:

I will merge it.

Congrats on version 1.0.0! :-)


Uncaught Error: error: 126/?~\AppData\Local\atom\app-1.40.1\resources\app.asar.unpacked\node_mo...

[Enter steps to reproduce:]

...
...

Atom: 1.40.1 x64
Electron: 3.1.10
OS: Unknown Windows version
Thrown From: Atom Core
Stack Trace
Uncaught Error: error: 126\?\C:\Users\salud\AppData\Local\atom\app-1.40.1\resources\app.asar.unpacked\node_modules\keyboard-layout\build\Release\keyboard-layout-manager.node
At ELECTRON_ASAR.js:166

Error: error: 126\\?\C:\Users\salud\AppData\Local\atom\app-1.40.1\resources\app.asar.unpacked\node_modules\keyboard-layout\build\Release\keyboard-layout-manager.node
    at process.module.(anonymous function) [as dlopen] (ELECTRON_ASAR.js:166:20)
    at Object.Module._extensions..node (internal/modules/cjs/loader.js:740:18)
    at Object.module.(anonymous function) [as .node] (ELECTRON_ASAR.js:180:18)
    at Module.load (internal/modules/cjs/loader.js:620:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:559:12)
    at Function.Module._load (internal/modules/cjs/loader.js:551:3)
    at Module.require (/app.asar/static/index.js:72:46)
    at require (internal/modules/cjs/helpers.js:20:18)
    at customRequire (~/AppData/Local/atom/app-1.40.1/resources/app/static/<embedded>:1:714332)
    at get_KeyboardLayoutManager (~/AppData/Local/atom/app-1.40.1/resources/app/static/<embedded>:14:2747069)
    at get_manager (~/AppData/Local/atom/app-1.40.1/resources/app/static/<embedded>:14:2747171)
    at Object.getCurrentKeyboardLayout (~/AppData/Local/atom/app-1.40.1/resources/app/static/<embedded>:14:2747297)
    at e.keystrokeForKeyboardEvent (~/AppData/Local/atom/app-1.40.1/resources/app/static/<embedded>:14:1087835)
    at KeymapManager.keystrokeForKeyboardEvent (~/AppData/Local/atom/app-1.40.1/resources/app/static/<embedded>:11:1246932)
    at KeymapManager.handleKeyboardEvent (~/AppData/Local/atom/app-1.40.1/resources/app/static/<embedded>:11:1244917)
    at WindowEventHandler.handleDocumentKeyEvent (~/AppData/Local/atom/app-1.40.1/resources/app/static/<embedded>:11:284329)

Commands

Non-Core Packages
advanced-open-file 0.16.8
ask-stack 2.2.0
atom-beautify 0.33.4
atom-clock 0.1.17
atom-material-syntax 1.0.8
atom-material-ui 2.1.3
autoclose-html 0.23.0
city-lights-syntax 1.1.8
city-lights-ui 1.5.3
color-picker 2.3.0
emmet 2.4.3
expose 0.15.0
file-icons 2.1.35
hey-pane 1.2.0
highlight-selected 0.16.0
Hydrogen 2.12.0
javascript-snippets 1.2.1
linter 2.3.1
minimap 4.29.9
minimap-pigments 0.2.2
monokai 0.24.0
pigments 0.40.2
pristine-ui 1.1.11
scroll-through-time 0.3.1
teletype 0.13.4
zentabs 0.8.9

Thanks for contributing!
We noticed that this looks like a duplicate of #14461 so you can subscribe there for updates if you'd like.  Also, if you have an anti-virus program running you can try temporarily disabling it and then reinstall Atom to see if that helps.

Because we treat our issues list as the Atom team's backlog, we close duplicates to focus our work and not have to touch the same chunk of code for the same reason multiple times. This is also why we may mark something as duplicate that isn't an exact duplicate but is closely related.
For information on how to use GitHub's search feature to find out if something is a duplicate before filing, see the How Can I Contribute? section of the Atom CONTRIBUTING guide.


g++ fails for phonenumberutil_test.cc

Building libphonenumber/cpp on CentOS centos-release-7-3.1611.el7.centos.x86_64 with -DUSE_BOOST=OFF.
g++ (GCC) 4.8.5 20150623 (Red Hat 4.8.5-11)
fails with
[ 65%] Building CXX object CMakeFiles/libphonenumber_test.dir/test/phonenumbers/phonenumberutil_test.cc.o
In file included from /usr/include/gtest/gtest.h:57:0,
                 from /home/alexc/dev/google/libphonenumber/cpp/test/phonenumbers/phonenumberutil_test.cc:31:
/usr/include/gtest/internal/gtest-internal.h: In instantiation of ‘void GTestStreamToHelper(std::ostream*, const T&) [with T = std::_Rb_tree_const_iterator<int>; std::ostream = std::basic_ostream<char>]’:
/usr/include/gtest/gtest-message.h:122:35:   required from ‘testing::Message& testing::Message::operator<<(const T&) [with T = std::_Rb_tree_const_iterator<int>]’
/usr/include/gtest/gtest.h:170:21:   required from ‘testing::internal::String testing::internal::StreamableToString(const T&) [with T = std::_Rb_tree_const_iterator<int>]’
/usr/include/gtest/internal/gtest-internal.h:230:34:   required from ‘testing::internal::String testing::internal::FormatForFailureMessage(const T&) [with T = std::_Rb_tree_const_iterator<int>]’
/usr/include/gtest/gtest.h:1248:39:   required from ‘testing::internal::String testing::internal::FormatForComparisonFailureMessage(const T1&, const T2&) [with T1 = std::_Rb_tree_const_iterator<int>; T2 = std::_Rb_tree_const_iterator<int>]’
/usr/include/gtest/gtest.h:1379:1:   required from ‘testing::AssertionResult testing::internal::CmpHelperNE(const char*, const char*, const T1&, const T2&) [with T1 = std::_Rb_tree_const_iterator<int>; T2 = std::_Rb_tree_const_iterator<int>]’
/home/alexc/dev/google/libphonenumber/cpp/test/phonenumbers/phonenumberutil_test.cc:168:3:   required from here
/usr/include/gtest/internal/gtest-internal.h:97:7: error: no match for ‘operator<<’ (operand types are ‘std::ostream {aka std::basic_ostream<char>}’ and ‘const std::_Rb_tree_const_iterator<int>’)
   *os << val;

workaround:
template<class T>
std::ostream& operator<<(std::ostream& os, const struct std::_Rb_tree_const_iterator<T>& t)
{
    return os;
}

But probably there is something more to it

Hi,
Apologies for the delay!
We're not sure about this particular scenario, and since it's seemingly not a general issue with the library, we recommend asking the libphonenumber discussion
group in order to open it up the wisdom of the whole group.
We'll close this for now and monitor any thread you start to see what develops!


TypeError: 'DefaultCfg' object does not support item assignment

Thanks for sharing such a great job. Here is some issues I get when i tried to run the baselines of the code.
In detail, I was running train_net.py with config BoxSup-C2_Lbase_CLIP_R5021k_640b64_4x.yaml, and it get errors in building backbone.
File "/root/xxxx/Detic-main/detic/modeling/backbone/timm.py", line 82, in create_timm_resnet
default_cfgs_resnet['resnet50_in21k']['url'] =
TypeError: 'DefaultCfg' object does not support item assignment
if seems that the default_cfgs_resnet['resnet50_in21k'] is a DefaultCfg object and it can not directly be assigned as dict object.
Any ideas for fixing that?

I have solved the problem by reading the source code of timm. I dont know why it changes the datatype of default_cfgs when i import it from the source code. That object in source code is a dict, and when i import it, it becomes DefaultCfg.

I have solved the problem by reading the source code of timm. I dont know why it changes the datatype of default_cfgs when i import it from the source code. That object in source code is a dict, and when i import it, it becomes DefaultCfg.

Hi, I met the same problem as you, can you tell me the exact solution? Thank you very much!

Hello, I have also encountered the same problem. Could you please explain the solution?

Hello, I have also encountered the same problem. Could you please explain the solution?

Hi, I have solved the problem by changing the version of timm to 0.5.4.

I have solved my problem according to your method! Thank you！

Hello, I have also encountered the same problem. Could you please explain the solution?

Hi, I have solved the problem by changing the version of timm to 0.5.4.

I have solved my problem according to your method! Thank you！

I have solved the problem by reading the source code of timm. I dont know why it changes the datatype of default_cfgs when i import it from the source code. That object in source code is a dict, and when i import it, it becomes DefaultCfg.

Hi, I met the same problem as you, can you tell me the exact solution? Thank you very much!

from timm.models.resnet import default_cfgs as default_cfgs_resnet
By reading the source code I found that timm.models.resnet.default_cfgs is a pre-defined dict object. I dont know why it changes to DefaultCfg object when imported. So I just define default_cfgs_resnet as the same way in source code as follow:
default_cfgs_resnet = {
# ResNet and Wide ResNet
'resnet50': _cfg(
url='https://github.com/rwightman/pytorch-image-models/releases/download/v0.1-rsb-weights/resnet50_a1_0-14fe96d1.pth',
interpolation='bicubic', crop_pct=0.95),
}
Then it worked.


Fix: Do not return boolean from persist()

This PR

[x] stops passing through what save() returns

Follows https://github.com/opencfp/opencfp/pull/744#discussion_r153315056.

Thank you, @chartjes!


[Keyboard Manager] Spurious Ctrl+Space input in shortcut mapping

ℹ Computer information

PowerToys version: 0.20.1
PowerToy Utility: Keyboard Manager
Running PowerToys as Admin: No
Windows build number: 1909

📝 Provide detailed reproduction steps (if any)
Map shortcut:
Ctrl(left)+P -> Up -> All Apps
✔ Expected result
What is the expected result of the above steps?
When Ctrl+P is pressed, Up key must be input
❌ Actual result
What is the actual result of the above steps?
When Ctrl+P is pressed Up key is input correctly.
However issue is that it is followed by a spurious Ctrl+Space also that I did not enter anywhere.
Verified this by doing showkey under wsl - pressing Ctrl+P generated the following output, where the first part is Up key (^[[A) and this is followed by Ctrl+Space (^@)
$ showkey -a

Press any keys - Ctrl-D will terminate this program

^[[A     27 0033 0x1b
         91 0133 0x5b
         65 0101 0x41
^@        0 0000 0x00

📷 Screenshots
Are there any useful screenshots? WinKey+Shift+S and then just paste them directly into the form

Hi @damnskippy, I can't repro this behaviour, even when I checked my key history with the same mapping. Is this the only mapping you have? Can you share all your active mappings

@saahmedm,
Yes, this is the only single mapping I have and need - and unfortunately it is not working correctly for some reason.
I'm truly puzzled why I'm seeing this and you're not able to repro.  Is there any log or something I can collect?
Thanks for looking.

FWIW, I'm primarily using shortcut in windows terminal app if that matters.

@damnskippy as part of our shortcut remap logic we send a null key (key code 0x255). It seems to be that the showkey command in WSL shows that as ^@ i.e. NULL byte. So it isn't actually inserting Ctrl+Space, we are inserting a null key. This is required to prevent certain unexpected behaviors related to releasing modifiers. What is "end-user" effect you are facing from this, apart from it appearing in showkey?
I tried the above remapping in Terminal and it worked as expected for Powershell, cmd and ubuntu (assuming the expected behavior was to show the previous typed command).

@arjunbalgovind
The real issue I ran into is that I have Ctrl+Space set as my tmux prefix key.
What happened is that after I set up the shortcut map in Keyboard Manager  Ctrl(left)+P -> Up -> All Apps, every time I pressed Ctrl+P, this not only input Up key but also tmux prefix was also invoked, which then I have to explicitly get out of.  This really made my only shortcut mapping unusable.  So I have unmapped it for the moment.  But this is what made me even notice this issue in the first place.  Thanks.

Since WT now natively supports a way to bind key sequences, I no longer need this.  Since no one else is seeing this issue, I will close it.

@crutkas @saahmedm adding this to the milestone as it gets fixed with #7143 which also fixes #6849

In the 0.25 release.  https://github.com/microsoft/PowerToys/releases/tag/v0.25.0


How do I query on a @key (Global Secondary Index)?

Describe the bug
I have used the Amplify CLI to generate my GraphQL schema. The query and Schema work in the AWS AppSync Console. The DynamoDB tables are created and the query returns data via the online console.
My issue is that I have no idea how to query beyond the basic ".get(byId: [$id]" method via Amplify.API.query() inside of my iOS app using the Amplify Library.
To Reproduce
Below is my schema.
`
type Profile @model {
id: ID!
firstName: String
lastName: String
email: String
socialProviderId: String
socialProvider: String
verified: Boolean
address: [Address] @connection(name: "address", fields: ["id"])
incident: [Incident] @connection(name: "incident", fields: ["id"])
camera: [Camera] @connection(name: "camera", fields: ["id"])
}
type Address @model
@key(fields: ["id", "streetNumber"])
@key(name:"uniqueCode-index", fields:["uniqueCode"], queryField: "addressUniqueCode" )
@key(name:"geohashFirst6-index", fields:["geohashFirst6"], queryField: "addressGeohashFirst6" )
@key(name:"geohashLast5-index", fields:["geohashLast5"], queryField: "addressgGohashLast5" )
@key(name:"geohashLast4-index", fields:["geohashLast4"], queryField: "addressGeohashLast4" )
@key(name:"geohashLast3-index", fields:["geohashLast3"], queryField: "addressGeohashLast3" )
@key(name:"geohashLast2-index", fields:["geohashLast2"], queryField: "addressGeohashLast2" )
@key(name:"geohashLast1-index", fields:["geohashLast1"], queryField: "addressGeohashLast1" )
@key(name:"geohash-index", fields:["geohash"], queryField: "addressGeohash" )
@key(name:"latitude-index", fields:["latitude"], queryField: "addressLatitude" )
@key(name:"longitude-index", fields:["longitude"], queryField: "addressLongitude" )
{
id: ID!
createdAt: String
geohash: String
geohashFirst6: String
geohashLast1: String
geohashLast2: String
geohashLast3: String
geohashLast4: String
geohashLast5: String
geohashLast6: String
latitude: Float
longitude: Float
state: String
streetName: String
streetNumber: Int!
unit: String
updatedAt: String
zipCode: String
cameras: [Camera] @connection(name: "cameras", fields: ["id"])
claimed: Boolean
userId: Profile @connection(name: "claimedBy", fields: ["id"])
uniqueCode: String
}
type Camera @model
@key(fields: ["id"])
@key(name:"type-index", fields:["type"], queryField: "type" )
{
id: ID!
name: String
type: String
direction: String
address: Address @connection(name: "atAddress", fields: ["id"])
}
type Incident @model
@key(fields: ["id"])
@key(name:"geohash-index", fields:["geohash"], queryField: "incidentGeohash" )
@key(name:"geohashFirst6-index", fields:["geohashFirst6"], queryField: "incidentGeohashFirst6" )
@key(name:"geohashLast5-index", fields:["geohashLast5"], queryField: "incidentGeohashLast5" )
@key(name:"geohashLast4-index", fields:["geohashLast4"], queryField: "incidentGeohashLast4" )
@key(name:"geohashLast3-index", fields:["geohashLast3"], queryField: "incidentGeohashLast3" )
@key(name:"geohashLast2-index", fields:["geohashLast2"], queryField: "incidentGeohashLast2" )
@key(name:"geohashLast1-index", fields:["geohashLast1"], queryField: "incidentGeohashLast1" )
@key(name:"latitude-index", fields:["latitude"], queryField: "incidentLatitude" )
@key(name:"longitude-index", fields:["longitude"], queryField: "incidentLongitude" )
{
id: ID!
dateTime: AWSDateTime
geohash: String
geohashFirst6: String
geohashLast1: String
geohashLast2: String
geohashLast3: String
geohashLast4: String
geohashLast5: String
geohashLast6: String
latitude: Float
longitude: Float
title: String
description: String
userId: Profile @connection(name: "reportedBy", fields: ["id"])
}
`
Expected behavior
I should be able to query this without any issue right?
Code
I based my code on this example in the documents because I can't figure out any other obvious way to query the indexes i created in the schema.
Here is my code. that starts the Amplify.API.request
            Amplify.API.query(request: .getAddressByUniqueCode(uniqueCode: pinCode)) { response in                 switch(response) {                 case .success(let result):                     switch(result) {                     case .success(let address):                         print("Address: \(address)")                         break                     case .failure(_):                         print("getById - error: Error in result")                         break                     }                     break                 case .failure(_):                     print("getById - error: Error in response")                     break                 }
Here is how i define .getAddressByUniqueCode
`
extension GraphQLRequest {
static func getAddressByUniqueCode(uniqueCode uniqueCode: String) -> GraphQLRequest {
let operationName = "addressUniqueCode"
let document = """
query addressUniqueCode($uniqueCode: String) {
(operationName)(uniqueCode: $uniqueCode) {
nextToken
items {
geohashFirst6
streetName
streetNumber
longitude
state
latitude
id
zipCode
updatedAt
unit
uniqueCode
geohashLast6
geohashLast5
geohashLast4
geohashLast3
geohashLast2
geohashLast1
geohash
createdAt
claimed
}
}
}
"""
    return GraphQLRequest<Address>(document: document,
                                variables: ["uniqueCode": uniqueCode],
                                responseType: Address.self,
                                decodePath: operationName)
}

}
`
The error I am getting is: No value associated with key CodingKeys(stringValue: "id", intValue: nil) ("id").
Is there an issue with my schema or how I queried it? The same query works fine in the online AWS AppSync Console.
Environment(please complete the following information):

Amplify Framework Version: 4.29.7
Dependency Manager: Cocoapods
Swift Version : 5.0

Device Information (please complete the following information):

Device: iPhone 11 Simulator
iOS Version: iOS 14

Additional context
Add any other context about the problem here.

After some really really careful debugging. I got it to work by doing the following:
Update the code to my GraphQLRequest extension to the following:
`
static func getAddressByUniqueCode(uniqueCode uniqueCode: String) -> GraphQLRequest<[Address]> {
let operationName = "addressUniqueCode.items"
let document = """
query addressUniqueCode($uniqueCode: String) {
addressUniqueCode(uniqueCode: $uniqueCode) {
nextToken
items {
geohash
geohashFirst6
geohashLast1
id
zipCode
updatedAt
unit
uniqueCode
streetNumber
streetName
state
longitude
latitude
geohashLast6
geohashLast5
geohashLast4
geohashLast3
geohashLast2
createdAt
claimed
}
}
}
"""
    return GraphQLRequest<**[Address]**>(document: document,
                                variables: ["uniqueCode": uniqueCode],
                                responseType: **[Address].self**,
                                decodePath: operationName)
}

`
The main difference is is:

Since this is a query on a secondary index, it will return a list. So i changes the "Address" to [Address].
The decodePath is dot notated. So i updated the path to the list to be "addressUniqueCode.items" which results in the array to be stored in the responseType.

My question now that this works, is it the correct pattern?
I have many other indexes I need to query on and I want to ensure I'm doing it right.

@drochetti , Hello! Do you happen to know if this is the right way to query on GSI's created through the schema.graphql and AWS Amplify CLI?

Hi @bumbleparrot, as of now the way you did is the right way. We are evaluating a more automated way of providing those queries with the correct iOS types. But in the meantime, if you create your own extension like you did it should do it.
I'm happy to chat more about your use case, you said you have many more GSI queries and I understand creating your own extension for every single one is not ideal. Feel free to reach out to me on Discord or on Twitter, happy to chat more and gather your feedback while we address this pain point.

Thank you @drochetti, that is helpful.
I think the GraphQL schema should generate code for all queries annotated by @connection and @key. We can use the attributes of @key and @connection to determine the method name as well as the input parameters and its type.
One of the challenges this introduces is how deep is the default nesting for the models that get returned? Theres no data in the schema that would indicate that.

This feature is available by default now i believe.


Feature request: Image support

hi i would like to see image embeds being shown in the client itself instead of needing a external viewer for it

and also xclip image support

and also xclip image support

this should be a seperate issue

and it would also be great to have support for xclip images

Looking into this.

w3m ,the terminal browser does this:
https://github.com/tokuhirom/w3m/blob/master/w3mimg/x11/x11_w3mimg.c

The implementation I attempted used SIXEL instead. Most terminals still don't support this standard, but actually printing the SIXEL escape sequences to the correct location and having it scroll does not seem easy, at least to me. The code that actually downloads and translates images to SIXEL escape sequences is done, and avalible in the "images" branch on my fork (after I push what I've pulled together tonight).

Here is a ranger issue #mentioning this:https://github.com/ranger/ranger/issues/1476
It mentions imv

A Kitty based implementation with something like icat would be neat, but that would probably have to be implemented in a completely different way

Being able to use chafa as the image backend would be nice.

If this is implemented, it should definitely use ueberzug in my opinion. It would probably be complicated, though. For now, as a workaround, there should be a hotkey to open the link to an image in your preferred image viewer.

Discordo already uses xdg-open for Linux, open for OSX and start for Windows to open attachments in the default image viewer and links in the default browser.

6cord had sixel support then why not discordo?

6cord had sixel support then why not discordo?

6cord actually did not have SIXEL support. As @DremOSDeveloperTeam pointed out, supporting SIXEL in something like tview is tedious work.
That said, tcell-sixel could be of use for that. foot also supports SIXEL.

@diamondburned it looks pretty good. Videos could also be implemented (but it would require some work haha)

Animated images that can move in a terminal efficiently is precisely what the Kitty graphics protocol was invented to do.

6cord had sixel support then why not discordo?

6cord actually did not have SIXEL support. As @DremOSDeveloperTeam pointed out, supporting SIXEL in something like tview is tedious work.
That said, tcell-sixel could be of use for that. foot also supports SIXEL.

Who told you? Then what is this? https://github.com/diamondburned/real6cord

Animated images that can move in a terminal efficiently is precisely what the Kitty graphics protocol was invented to do.

Animated images that can move in a terminal efficiently is precisely what the Kitty graphics protocol was invented to do.

Do you honestly think that Sixel is as good as Kitty's protocol?

Animated images that can move in a terminal efficiently is precisely what the Kitty graphics protocol was invented to do.

Do you honestly think that Sixel is as good as Kitty's protocol?

Nope, I don't think sixel is good
SIXEL IS BEST

Animated images that can move in a terminal efficiently is precisely what the Kitty graphics protocol was invented to do.

Do you honestly think that Sixel is as good as Kitty's protocol?

You need a dose of copium

Who told you? Then what is this? https://github.com/diamondburned/real6cord

It's garbage that does not work :upside_down_face:
Try asking the developer and see what they have to say about it.

https://github.com/rivo/tview/wiki/Image


ENH Update DataObject::delete() docblock

Issue https://github.com/silverstripe/silverstripe-linkfield/issues/213
I believe this is accurate, though please double check with a quick manual test before merging

Possibly is, though I'm not sure.  Versioned::doArchive() will do stuff in a nice orderly fashion such as managing changesets and unpublishing live version first, creating a nice history of deleted versions, etc
delete() is kind of crude and won't do any of that.  If we changed delete() to also remove from the live stage then we now have 2x ways to remove things from the live stage - delete() and doArchive().  In my mind it's much better to only have a single way to do this, in this case it would be doArchive()
Also worth nothing that Versioned::deleteFromStage() has this:
    public function deleteFromStage($stage)
    {
       // ...
        static::withVersionedMode(function () use ($stage, $owner) {
            Versioned::set_stage($stage);
            $clone = clone $owner;
            $clone->delete();
        });

i.e. it's assuming that it's only going to delete() from a single stage, so if we changed delete() to delete from both stages then this method now has undesidered side effects.  There may be well plenty more like this in the codebase.
So I think we should stick with this PR and just update the docblock

I would agree, except that both this PHPDoc and the official docs have been telling people they can just call delete() and it'll correctly archive the record.
At the very very least we need to update those docs and call out (probably in the changelog) that "hey you've been archiving records wrong because we told you to, sorry!"
This is probably a decision that needs to go through refinement at least though, if not an architecture discussion.

I've spun off a new issue - I'll remove this PR from the original issue and attach it to the new one

Setting to draft pending discussion on the new issue


Roundtrips inaccuracy

Note: for support questions, please join our Discord server

I'm submitting a ...
[X] bug report
[ ] feature request
[ ] question about the decisions made in the repository

Action taken (what you did)
Running an import and then backtesting to see some results the round trips seem to drift a tad and differ from backtest to backtest

Expected result (what you hoped would happen)
Roundtrips should be the same

Actual result (unexpected outcome)
Roundtrips differ from backtest to backtest during an import

Other information (e.g. detailed explanation, stacktraces, related issues, suggestions how to fix, links for us to have context, eg. stackoverflow, etc)

I am pretty sure it has to do with what timezone times we are displaying, see #895. Can you confirm that this is what you mean?

Im not too sure... but no... i dont believe so??
https://gist.github.com/generalectric/e10037a35e129514c484bdaeb01619e3

ah okay, can you tell me a little bit about your strategy?

im thinking the problem is that its using linear regression

think i found part of the problem
this.decision = '';
  if (indicator > settings.up)
    this.decision = 'short';
  else if (indicator < settings.down)
    this.decision = 'long';

this.advice(this.decision);

by removing this.decision and replacing with this.advice('long') or short hardcoded i have successfully wiped out half my profit. I was thinking those numbers were a little too good

Are you running normal gekko or your own version (in the PR)? Your PR
removed the exact safety check that should prevent these mistakes from
effecting results.
On 28 Oct 2017 10:58, "generalectric"<EMAIL_ADDRESS>wrote:

think i found part of the problem
this.decision = '';
if (indicator > settings.up)
this.decision = 'short';
else if (indicator < settings.down)
this.decision = 'long';
this.advice(this.decision);
by removing this.decision and replacing with this.advice('long') or short
hardcoded i have successfully wiped out half my profit. I was thinking
those numbers were a little too good
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/askmike/gekko/issues/1254#issuecomment-340137201, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AA7MD_YICPri9O97KnX6HUMUnYyWaOVmks5swqZNgaJpZM4QJyLE
.

oh man thats pure gold! lol ok so i have original code back in place. im still showing rountrips changing on every back test during an import though. going to run another strat on it....

ok so running base native MACD strategy im having same results. i am currently importing a year of data for eth using postgresql plugin

yeah confirmed.... fresh clone using native macd strat with 5 minute candles on any market. backtesting during an import using pgsql SOME of the roundtrips are different from backtest to backtest

Can you give me an exact timeframe + market + indicator settings? Else I
cannot reproduce.
On 28 Oct 2017 11:59, "generalectric"<EMAIL_ADDRESS>wrote:
yeah confirmed.... fresh clone using native macd strat with 5 minute
candles on any market. backtesting during an import using pgsql SOME of the
roundtrips are different from backtest to backtest
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/askmike/gekko/issues/1254#issuecomment-340139609, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AA7MD29D5dmvOA9e3QtNfojl9sLEvS18ks5swrTOgaJpZM4QJyLE
.

poloniex eth_btc
candleSize: 5,
historySize: 274,
method: 'MACD',
thresholds: {
down: -0.0001,
up: 0.0001,
}
do an import using pgsql from 2017-01-01 00:00:00
then run multiple backtests and compare the last few lines of each roundtrip report

gave it another test on a different market... same. i just wanted to make sure i wasnt sending you on a wild goose chase. you have to really look for it and its not the easiest. and it will take you several runs to find it. but write down all the numbers forget hours or minutes just write down a list of the numbers for time for a couple days on a roundtrip report... then retest... look at the same dates on the new run.. and compare the numbers.... they change

Round trip discrepancies are happening for me as well on both windows and linux machines
https://www.screencast.com/t/526ss0GjyRt
that is just default MACD with some polinex data pulled in.  Same issue happens in gdax.  Sometimes the buys and sells aren't even for the correct amount that was output in the console.
https://www.screencast.com/t/wUgBXYcRXSAs
in the console the first
long is for 297.22
and the next short is 295.58
the graph is right and the console is right but the round trips are wrong and the calculations are wrong

Hey @askmike  I found the issue
https://github.com/askmike/gekko/blob/stable/plugins/performanceAnalyzer/performanceAnalyzer.js#L84
Change this function logRoundtripPart to use  trade.price and trade.portfolio.currency instead of this.price and this.current etc see below:
`
PerformanceAnalyzer.prototype.logRoundtripPart = function(trade) {
// this is not part of a valid roundtrip
if(this.trades === 1 && trade.action === 'sell') {
return;
}
if(trade.action === 'buy') {
this.roundTrip.entry = {
date: trade.date,
price: trade.price,
total: trade.portfolio.asset * trade.price,
}
} else if(trade.action === 'sell') {
this.roundTrip.exit = {
date: trade.date,
price: trade.price,
total: trade.portfolio.currency
}
this.handleRoundtrip();

}
}
`

https://github.com/askmike/gekko/pull/1282

Thanks @gauzzastrip your PR has been merged into develop. @generalectric can you check the develop branch to see if it fixes your problem?

The following happens while importing data and using scan to automatically get the dateranges. Running stock MACD strat then waiting a few minutes to re test you can see that the exposed duration changes from backtest to backtest. This is on every market. After @gauzzastrip's commit I'm still having the same results. Nice find though @gauzzastrip! I think issue title maybe better suited as Roundtrips exposed duration inaccuracy.
2017-11-03 20:07:41 (INFO):     (ROUNDTRIP) REPORT:
2017-11-03 20:07:41 (INFO):     (ROUNDTRIP) entry date (UTC)    exit date (UTC)         exposed duration        P&L     profit
2017-11-03 20:07:41 (INFO):     (ROUNDTRIP) 2017-01-03 02:00    2017-01-07 23:30        5 days                  -108.25 -11.24
2017-11-03 20:07:41 (INFO):     (ROUNDTRIP) 2017-01-11 11:00    2017-01-12 19:30        a day                   -14.12  -1.65
2017-11-03 20:07:41 (INFO):     (ROUNDTRIP) 2017-01-17 00:00    2017-01-26 09:00        9 days                  71.06   8.48
2017-11-03 20:07:41 (INFO):     (ROUNDTRIP) 2017-01-29 15:00    2017-02-10 21:00        12 days                 82.46   9.09
2017-11-03 20:07:41 (INFO):     (ROUNDTRIP) 2017-02-15 06:30    2017-03-09 15:00        22 days                 174.40  17.67
2017-11-03 20:07:41 (INFO):     (ROUNDTRIP) 2017-03-15 11:00    2017-03-19 12:00        4 days                  -231.24 -19.95
2017-11-03 20:07:41 (INFO):     (ROUNDTRIP) 2017-03-22 13:30    2017-03-23 11:00        a day                   29.33   3.17
2017-11-03 20:07:41 (INFO):     (ROUNDTRIP) 2017-03-23 11:30    2017-03-25 21:00        2 days                  -74.08  -7.77
2017-11-03 20:07:41 (INFO):     (ROUNDTRIP) 2017-03-29 17:30    2017-04-14 22:30        16 days                 150.19  17.11
2017-11-03 20:07:41 (INFO):     (ROUNDTRIP) 2017-04-19 10:00    2017-05-15 21:00        a month                 426.11  41.53
2017-11-03 20:07:41 (INFO):     (ROUNDTRIP) 2017-05-20 10:30    2017-05-20 17:30        7 hours                 33.87   2.34
2017-11-03 20:07:41 (INFO):     (ROUNDTRIP) 2017-05-21 12:00    2017-05-28 23:30        8 days                  -5.04   -0.34
2017-11-03 20:07:41 (INFO):     (ROUNDTRIP) 2017-06-01 16:30    2017-06-01 20:00        4 hours                 39.44   2.68

2017-11-03 20:20:16 (INFO):     (ROUNDTRIP) REPORT:
2017-11-03 20:20:16 (INFO):     (ROUNDTRIP) entry date (UTC)    exit date (UTC)         exposed duration        P&L     profit
2017-11-03 20:20:16 (INFO):     (ROUNDTRIP) 2017-01-02 22:39    2017-01-07 23:39        5 days                  -106.09 -11.03
2017-11-03 20:20:16 (INFO):     (ROUNDTRIP) 2017-01-16 23:39    2017-01-26 09:09        9 days                  74.21   8.69
2017-11-03 20:20:16 (INFO):     (ROUNDTRIP) 2017-01-29 14:09    2017-02-11 04:09        13 days                 80.45   8.69
2017-11-03 20:20:16 (INFO):     (ROUNDTRIP) 2017-02-15 06:39    2017-03-09 15:09        22 days                 176.57  17.58
2017-11-03 20:20:16 (INFO):     (ROUNDTRIP) 2017-03-15 13:09    2017-03-19 12:09        4 days                  -234.22 -19.87
2017-11-03 20:20:16 (INFO):     (ROUNDTRIP) 2017-03-22 13:39    2017-03-23 10:39        21 hours                22.04   2.34
2017-11-03 20:20:16 (INFO):     (ROUNDTRIP) 2017-03-23 12:09    2017-03-25 20:39        2 days                  -83.24  -8.64
2017-11-03 20:20:16 (INFO):     (ROUNDTRIP) 2017-03-29 17:39    2017-04-14 22:09        16 days                 145.22  16.54
2017-11-03 20:20:16 (INFO):     (ROUNDTRIP) 2017-04-19 09:39    2017-05-15 21:39        a month                 418.80  41.02
2017-11-03 20:20:16 (INFO):     (ROUNDTRIP) 2017-05-20 10:09    2017-05-20 17:39        8 hours                 30.43   2.12
2017-11-03 20:20:16 (INFO):     (ROUNDTRIP) 2017-05-21 12:09    2017-05-22 04:09        16 hours                27.59   1.88
2017-11-03 20:20:16 (INFO):     (ROUNDTRIP) 2017-05-22 09:09    2017-05-28 23:39        7 days                  -21.50  -1.44
2017-11-03 20:20:16 (INFO):     (ROUNDTRIP) 2017-06-01 16:09    2017-06-01 20:39        5 hours                 36.13   2.47
2017-11-03 20:20:16 (INFO):     (ROUNDTRIP) 2017-06-01 21:39    2017-06-14 11:09        13 days                 233.89  15.62

Apparently the problem appears to be the exit dates are changing from backtest to backtest. If you'll notice 2017-01-12 19:30 (the second entry) is missing in the second backtest.


[8.x] Add unfilled_if & unfilled_with validation rules to Validator

New Rules

unfilled_if: A rule to refuse a field's input when another field is a given value. Complements: required_if & filled.
unfilled_with: A to refuse a fields's input when other fields are passed. Complements: required_with & filled.

Adding these rules can help add more utility to validation to disallow field input when other specific field values, or fields, are passed.
Example
Rule usages:
    /**
     * Get the validation rules that apply to the request.
     *
     * @return array
     */
    public function rules()
    {
        return [
            'shape' => 'sometimes',
            'size' => 'nullable|integer',
            'width' => [
                'unfilled_with:size|unfilled_if:shape,square',
            ],
            'height' => [
                'unfilled_with:size|unfilled_if:shape,square',
            ],
        ];
    }

Note: This is a super simplified example, instead of nullable you'd probably want to use required_without_all:width,height or something similar IRL depending on use-case.
URL
Examples Request URL: http://myapp.test/avatar?name=Danno+Boone&size=96&width=64
Error
{
  "width": [
    "The width field must not be used when size field is passed."
  ]
}

PR also adds tests to cover new validation rules, and I have a translation string prepared to send to the main laravel repo.
    'unfilled_if' => 'The :attribute field must not be used when :other field is :value.',
    'unfilled_with' => 'The :attribute field must not be used when :values is present.',

@GrahamCampbell - Here's a PR targeting 8.x, i'll shoot the one for laravel/laravel over too.

I'm not sure this is really necessary. If you know you want to ignore a given field's input on a given condition, just ignore it. No need to validate it.

@taylorotwell - Quick question, am I wrong for thinking of the Validator feature as an "HTTP Request" validator?
Your reply seems to indicate that I should think of the validator as a "Field Validator" and simply process the fields myself. However I always thought the documentation read as though this was an HTTP Request/Query validator. Given that the docs say: "validate incoming HTTP requests" I would assume my original interpretation is correct.
So while "just ignore it" is one option, I would argue that being able to reject a request for including incompatible flags is a valid use case. Thoughts?

I've wanted this on a few occasions as well and have previously extended the validator with a prohibited_if rule (seems like a good antonym for required_if).
For example, imagine a conditional field date_of_marriage that only displays when is_married is true. The payload is invalid if date_of_marriage has been provided when is_married is not true.
The existing exclude_if rule goes a long way to help with the above, but for my use case I need to completely reject a payload if it's contains contradictory information, rather than accept it and silently discard the contradicting data.
I don't mind implementing this as a custom rule, however it gets a bit nasty because it must re-implement the logic from the following protected Validator methods:

prepareValuesAndOther()
convertValuesToBoolean()
convertValuesToNull()

Hey @jessarcher - assuming the logic of prohibited_if -great name BTW- would be essentially the same as my suggestion for unfilled_if then my extended validator package should help add that. However I'm totally going to take your better naming and update the rule and default validation error text for the rule accordingly.
Agreed on it being pretty nasty - in all honestly I just directly duplicated those methods in my package to get it working. One of many reasons it'd be preferable to have the rule as a stock part of laravel's validator.
Again, i'm going to update the rule name since I like your idea so much better, but the current itteration of the package is here: https://github.com/mallardduck/extended-validator-laravel

Hey @mallardduck, thanks for the package tip! Glad to help with the naming too :grin:
I wonder whether a PR to make prepareValuesAndOther() public would be accepted, similar #35183. The other methods I mentioned wouldn't need to be public (at least for our purposes).

Great work @jessarcher - once a tagged release of laravel/framework and illuminate/validation are shipped that include the now public and renamed parseDependentRuleParameters I'll update my validator package to use that instead of the copypasta code.
For now there's a new 2.0.0 tag of my package with the improved rule names, so once the feature is released i'll increment from the 2.X tag.


Fix portmidi backend

Hello,
There's an issue on the port selection code of the PortMidi backend which is solved by the first commit of this PR.
The second commit changes the logic for selecting ports of _get_name_device. Give that each device has two properties (is_input, is_output), I believe the presented is much saner way of doing said selection.

Looking in the issue track, this fixes #108

Thanks!
I agree. Your version of _get_named_device() is a lot clearer.


integrations: Add Dropbox integration.

It seems fitting for us to support a Dropbox integration!
The Dropbox API supports webhooks to notify when a file has been modified, which could be potentially useful for organizations with shared files.

@zulipbot claim

@zulipbot claim


import completion not working in neovim

Hi,
I installed the coc-cairo extension using :CocInstall coc-cairo in Neovim. I could not get the completions for import definitions.
In VSCode, the completions work partially. from a.b import c - In vscode, completions work after typing out the module names fully - from a.b
Could you please help?
Warm Regards,

This extension pulls<EMAIL_ADDRESS>The latest version is 0.0.25. How can I get the extension use the latest version of cairo-ls?
Thanks.

@om-tat-sat thanks for flagging this. The original issue with imports is an issue with an older version of cairo-ls. So yes, this extension should use the latest.
I'll bump the dependency and publish a new release now. And I'll work on a better approach to managing cairo-ls versions.

It seems the latest version of cairo-ls is not yet on npm. I've opened an issue here https://github.com/ericglau/cairo-ls/issues/39

@om-tat-sat It should work if you add the example VIM configuration to your ~/.vimrc file.  I've updated the steps in these instructions.
After you've added that to ~/.vimrc, press Control Space to trigger the completion.
Example:

No dice for me either, only seem to work with the method of installing and editing the coc-settings configuration..
The completion menu pops up without any need for a trigger

Okay I think I'm experiencing the same issue - I'll describe it here.
Given we point to the cairo-ls to the right virtual environment, I have completions working after the from keyword

Completions do not work in the middle of a module name. There is a related issue on cairo-ls here https://github.com/ericglau/cairo-ls/issues/32.  So from some.<complete me> would not work.
The issue with this package is that completions do not work after the import keyword, but they should. Completions like  from some.module import <complete me>. I believe that works in the vscode plugin - @om-tat-sat is that right?
Hope this is the same issue you all are experiencing. I'll look into it.

Thanks for checking and your reply.
I'm using Neovim. I installed the plugin using :CoCInstall. The only setting I did in coc-settings.json was to point to the correct activate file using cairols.nileVenvCommand and cairols.venvCommand config options.
I have the below setting to trigger completion on pressing Ctrl-Space, and to set the syntax for cairo files.
inoremap <silent><expr> <c-space> coc#refresh()
vim.api.nvim_command('au BufNewFile,BufRead *.cairo set filetype=cairo')

Inside Neovim, the completions after from works after a few attempts. But, after the import keyword, it never worked for me too in Neovim. I see errors like this (checked it with :ConInfo).
   19 2022-07-22T20:57:39.235 ERROR (pid:1602545) [server] - uncaughtException Error: Header must provide a Content-Length property.
   20     at AS.onData (/home/<myusername>/.cache/nvim/pack/packer/start/coc.nvim/build/index.js:36:14451)
   21     at Socket.<anonymous> (/home/<myusername>/.cache/nvim/pack/packer/start/coc.nvim/build/index.js:36:14181)
   22     at Socket.emit (node:events:513:28)
   23     at addChunk (node:internal/streams/readable:324:12)
   24     at readableAddChunk (node:internal/streams/readable:297:9)
   25     at Readable.push (node:internal/streams/readable:234:10)
   26     at Pipe.onStreamRead (node:internal/stream_base_commons:190:23)

In vscode, the completions after the import keyword worked for me earlier today, but it doesn't now. Am I missing some settings?

Nope. You're settings are good. I'm getting the same error. I'll look into it. Won't have much time this weekend though.
Also if you wanna try debugging, you can fork this repo, uninstall coc-cairo, and add this to your init.vim
set runtimepath^=/path/to/forked/coc-cairo

Then you can just mess around locally and see what gives.

I tried that earlier today. Also, instead of picking the cairo-ls from the npmjs server, I pointed the dependency to a local clone of cairo-ls, and somehow built it and got the out files for that repo. I still see the same issue.
Searching for this error online doesn't help much. I have no knowledge of Nodejs.
Have a nice weekend. Would be great if you are able to look into it sometime next week.
Thanks.

@om-tat-sat turns out the v0.0.7 cairo-ls on npm is the latest version. see here https://github.com/ericglau/cairo-ls/issues/39. the v0.0.25 package  is the vscode exentsion, not the language server

This should be fixed in v0.0.3. v0.0.3 also adds the commands nile.compile, nile.compile.all, nile.clean, and pytest - which were configurable but not implemented in v0.0.2. See https://github.com/kevinhalliday/coc-cairo/pull/2/files if you're interested.
I just tried it out and it seems to be working so closing this issue. Thanks all for your input

Thanks a lot for fixing this. I tried it now and it works perfectly fine. Thanks again.

I am still stuck with the same issue. Not getting completion for libs

Is there anything I need to do post installation?

I tried this in a new virtualenv, and it worked for me.
Did you try uninstalling and installing the coc-cairo?

@amanusk Does completion work after from? There is a bug where it doesn't work in the middle of a module name.
My suggested post-installation steps are here.
If you see compile error highlighting, then your virtualenv is working fine:

Thanks @ericglau.
I indeed get compilation errors and I do get completion after import, but not after from

With your previous instructions, all that works + I get completion after from and in the middle of a module name


ci: fix update-browser-version.yml

Fix access to the script output message to be used in the commit.

ooops:

Unrecognized named-value: 'jobs'.

Now it works: https://github.com/GoogleChromeLabs/chromium-bidi/actions/runs/10919832735/job/30308366194 created https://github.com/GoogleChromeLabs/chromium-bidi/pull/2622


slower Mesh.load

Mesh.load in Release 0.2.0 #195 is slower since it calls Mesh._build_mappings twice.
This is significant on larger problems.
To demonstrate it, a simple Gmsh GEO file was written:
SetFactory("OpenCASCADE");
Sphere(1) = {0.0, 0.0, 0.0, 1.0};
Physical Volume(1) = {1};
Physical Surface(1) = {1};

and a mesh generated with
gmsh -3 -clscale 6.25e-2 ball.geo

which gives 242 199 vertices—big enough to demonstrate the issue, small enough to be manageable.
This is loaded with a basic Python script:
from time import time

import skfem

tic = time()
mesh = skfem.MeshTet.load('ball.msh')
toc = time() - tic
print(f'Took {toc:.1f} s to load {mesh}')

On current master (95a485f) it takes 56.0 s, versus 32.8 s on tag 0.1.19 (a2bdb95).
Besides time.time, this was profiled with
python -m cProfile -o ball.prof -s cumtime ball.py

which shows that on master there are two calls to ._build_mappings taking a cumulative 47.27 s versus one call on 0.1.19 taking 24.58 s.

Scripts: ball.tar.gz

SnakeViz profile on master:

and on 0.1.19:

I sort of understood this but I just wiped it under the rug because I thought it doesn't matter. The results of _build_mappings are used to do the matching between gmsh entities and ours. I'll investigate this later. This is my last week before the summer vacation.

Maybe we could reuse the results of _build_mappings from the first call somehow? By injecting them to the resulting Mesh object and bypassing the second call? Is it too hacky?

Yeah..., I was thinking about memoizing or something.  I'll look into this as its critical for the problems I'm currently working with (ten times as many nodes as this example).  Maybe an alternative constructor.  Maybe a 'proto-' mesh that doesn't have all the features of a skfem.Mesh but is a stepping-stone towards it.
Another avenue I'll investigate is why numpy.unique takes so long and whether it can be avoided.

Another avenue I'll investigate is why numpy.unique takes so long and whether it can be avoided.

These parts of the codebase (_build_mappings) are the oldest. Brainlessly ported some earlier Matlab scripts without thinking how this should actually be done in NumPy.

Should be fixed by https://github.com/kinnala/scikit-fem/commit/84644ba728fdf6d8138223ce2866aa803cbd58fb
Can you confirm @gdmcbain ?

Yes, that's fixed.  Thanks!


Create new getting started documentation for software development on DuraCloud

See: https://jira.duraspace.org/browse/DURACLOUD-1180 for more information.

Getting started documentation is now here: https://github.com/duracloud/deployment-docs/blob/master/dev-guide-getting-started.md