ui bootstrap context menu not working on ios

The issues forum is NOT for support requests. It is for bugs and feature requests only.
Please read https://github.com/angular-ui/bootstrap/blob/master/CONTRIBUTING.md and search
existing issues (both open and closed) prior to opening any new issue and ensure you follow the instructions therein.
Bug description: I am working on ui-grid. And added a functionality to open a context menu on long press over any column. It is working fine on android and windows devices but not working on iphone(ios).
This is an open issue - "https://github.com/Templarian/ui.bootstrap.contextMenu/issues/9" but with no definite solution .Any help on the same would be appreciated.
Link to minimally-working plunker that reproduces the issue:
Version of Angular, UIBS, and Bootstrap
Angular:1.5
UIBS: NA
Bootstrap: 2.0

Pretty sure this is a ui-grid issue as the context menu is working fine by itself on iOS.  Closing until you are able to prove this is a UIBS-specific library issue.

Please be respectful of our time and processes by adhering to the issue template.  As we are all volunteers, we simply do not have the time to chase every incomplete issue entered by users.  As such, I apologize, but I am going to close this until you comply.  Thanks.


Modbus getter dynamic message support

Modbus getter supports now msg.payload based Modbus read requests
msg.payload.unitid = Modbus TCP Unit ID / RTU server address
msg.paylad.fc = numeric value of function code to be used (1,2,3,4)
msg.payload.address = register address to be read
msg.payload.quantity = number of values to be read
If msg.payload it not set, function falls back to default values of the config node

Why do you want to send values in value of msg, if you get it from output one. If you need it like that way,  use a function to concat all in one payload with a function node, please.

@biancode I have to explain our typical Modbus RTU applications we are faced with since 30 years.
We have a gateway device http://www.hilscher.com/de/produkte/produktgruppen/industrie-40-industrial-internet/netiot-edge/nt-ijcx-gb-repns/? that connects to Cloud Systems like IBM, SAP, Microsoft primarily. This gateway includes Node-Red which is doing the "data wiring" and this gateway has also RS232 and RS485 interfaces. On these serial interfaces we want to drive Modbus RTU via Node-RED.
The typical Modbus RTU applications we are faced with from real life applications are: most customer's Modbus RTU installations consists of 10 to 20 Modbus RTU slave on RS485. They are all of the same type. And all these devices have 20 to 30 analog registers at different positions we need to read periodically from all devices. This make 20 * 30 = 600 Modbus RTU messages. So in the current "Modbus Getter" as it is today I need to place 600 "Modbus Getter" or 600 "Modbus Read" to get all this information cause configuration of "Modbus-Client" config node is static.
This is why I am looking for a programmable "Modbus Getter" via msg.payload to take control of the Modbus Message it is sending (with all respect of the node how it was working before my changes, not to influence existing flows)
With the "Modbus Getter" node of my pull request I can now put this code in a single function node:
for(slave=1; slave < 20; slave++) {
for(register = 1; register < 30; register++ ) {
var msg = {};
msg.payload = {"fc":3, "unitid":slave,"address":register,"quantity":1};
node.send(msg)
}
}
It is injecting and queuing 600 message into "Modbus Getter" node to 20 slave with 30 registers each and Modbus Getter sends one after the other. Look this is the result using just one single "Modbus Getter" node.

Now I want to explain to you why in node's output the value is needed in one message along with the fc,address,unitid,quantity. The response value itself needs to be synchronous to these parameters. If I would do it like you propose...taking output 1 and concat with output 3 both message will never be synchronous due to asynchronous msg handling of node-red itself in case multiple modbus message are active in "Modbus Getter" node the same time. I agree that taking output 1 and concat to output 3 will work if I have one constant message setup active in config node like "Modbus Getter" works today.

I modified the code in that way to check for incoming msg.payload without save try {} catch{} construction now

did it my way ... but thank you for info and try


fix: always use ENV executable path when present

What kind of change does this PR introduce?
Fixes #7981
These changes:

Allow the ENV variable to always be used when defined and not specified in LaunchOptions (and when not puppeteer-core)
Retain the existing behavior of assuming /usr/bin/chromium-browser on platforms like Ubuntu, Alpine (exact if-conditions preserved to avoid any breaking changes + an added check for file.exists?)
Add some tests for this particular portion of the code.

Did you add tests for your changes?
Yes
If relevant, did you update the documentation?
No. I could add a note about precedence if desired.
Summary
#7981
On linux/arm64, puppeteer always assumes /usr/bin/chromium-browser exists. It ignores PUPPETEER_EXECUTABLE_PATH and fails when /usr/bin/chromium-browser doesn't exist. Not all linux distros install to /usr/bin/chromium-browser, so it would be better to allow PUPPETEER_EXECUTABLE_PATHto have precedence. Debian for instance installs to /usr/bin/chromium. I can't launch chromium unless I explicitly pass an executable path inLaunchOptions`.
Some recent changes to allow arm64 environments (including M1 macs) to launch a chromium installation successfully before arm-compatible builds were downloadable prevented the usage of PUPPETEER_EXECUTABLE_PATH in some environments. Currently, when the platform is not darwin and the arch is arm64, an executable cannot be specified using the environment variable.
Generally speaking, environment variables have highest precedence for options such as this since they depend on system configuration.
Does this PR introduce a breaking change?
No. An executablePath provided via LaunchOptions always gets used. If empty, the ENV var is used. The assumed default executable of /usr/bin/chromium-browser is retained in case its being relied on (though, if PUPPETEER_EXECUTABLE_PATH is also set, it would start working differently). The assumed scope of if not darwin and arm64 was too broad, so this narrows it. /usr/bin/chromium-browser would be present if the OS was Ubuntu, but not Debian. I presume Ubuntu is more common so it was used.

Seeing the firefox test fail leads me to believe a couple of these tests should have itChromeOnly so they only run for chrome since the product === 'chrome is in the conditional for the asserted behavior. Updated pushed.

LGTM (requesting a second review from @jrandolf)


Cleans up scribe logging, ignoring client cancels

Fixes #713

tested with local anormdb both dev and mysql mode. no more log clutter, but spans still log.

:+1:


Form Class

how to configure form-horizontal, because
I have added class class-horizontal but it's still not running
thanks

I just uploaded a change where I include the integration with the bootstrap-ui plugin, this plugin has everything you need to fully work with bootstrap.
You only have to update to version 0.2.x and you can already use the methods included in the bootrstrap-ui, here it explains how to work with the Horizontal forms https://github.com/FriendsOfCake/bootstrap-ui#horizontal-forms
And thanks to help me


MXRoom: Support reply to beacon info event (PSG-4)

Part of https://github.com/vector-im/element-ios/issues/6423

Codecov Report

Merging #1525 (55ae735) into develop (2c0830c) will increase coverage by 0.00%.
The diff coverage is 0.00%.

@@           Coverage Diff            @@
##           develop    #1525   +/-   ##
========================================
  Coverage    12.04%   12.05%
========================================
  Files          512      512
  Lines        83823    83824    +1
  Branches     35782    35784    +2
========================================
+ Hits         10099    10105    +6
+ Misses       73356    73351    -5
  Partials       368      368

Impacted Files
Coverage Δ

MatrixSDK/Data/MXRoom.m
0.00% <0.00%> (ø)

...xSDK/Data/MXSendReplyEventDefaultStringLocalizer.m
0.00% <0.00%> (ø)

MatrixSDKTests/MXHTTPAdditionalHeadersUnitTests.m
84.78% <0.00%> (+13.04%)
:arrow_up:

Continue to review full report at Codecov.

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


Add page Adding Third Party Non OSGi Library

Add content to [1].
[1] https://github.com/wso2/docs-ei/blob/master/en/streaming-integrator/docs/admin/adding-third-party-non-osgi-libraries.md

Completed this for EI 7.0.0 release.


ISPN-6029 DDL for JDBC store tables should never allow null

https://issues.jboss.org/browse/ISPN-6029

Hrmm it seems a lot of tests are only failing in this branch, which seems quite odd to me [1].
[1] http://ci.infinispan.org/viewLog.html?buildId=53415&buildTypeId=bt9
Going to force another run of this PR.

@wburns it's not just this branch, it's all the 8.2.x pull requests. The 8.2.x branch is in a pretty bad shape...

Ah yes 👎

Pulling... failures are unrelated.

Integrated into 8.2.x, thanks @ryanemerson and @pferraro


linterOptions is a misnomer

The configuration option linterOptions introduced in 5.8.0 configures everything but the linter. It's meant to be a subset of the CLI options.
Given that there may be a different configuration file for every linted file, linterOptions can only be used per file.
The only CLI argument actually relevant per file is --rules-dir and --fix. Everything else is kind of a global setting:

--formatter, --formatters-dir are used for all linted files. There could be different configs with different formatters involved while linting a project. Which formatter should be used?
--project is only used by runner.ts to set up the Program that's passed to Linter
exclude is used by runner.ts to prevent passing a file to Linter, kinda works per file which makes it very different from --exclude

#2227 proposes to have all CLI options available in tslint.json. If we really want to do this, we should make it clear how things are supposed to work:

which option is used per file?
which option is only used during setup (project, formatter, ...)?

only works with tslint -c tslint.json?
better not put these into linterOptions

which option is handled by Linter -> linterOptions

that one is actually important because people will expect every tool that uses tslint to handle these options the same
since linterOptions.exclude is not handled by Linter, tools like vscode-tslint need to duplicate our implementation

💀 It's time! 💀
TSLint is being deprecated and no longer accepting pull requests for major new changes or features. See #4534. 😱
If you'd like to see this change implemented, you have two choices:

Recommended: Check if this is available in ESLint + typescript-eslint ✅
Not Recommended: Fork TSLint locally 🤷♂

👋 It was a pleasure open sourcing with you!
If you believe this message was posted here in error, please comment so we can re-open the issue!

🤖 Beep boop! 👉  TSLint is deprecated 👈 (#4534)  and you should switch to typescript-eslint! 🤖
🔒 This issue is being locked to prevent further unnecessary discussions. Thank you! 👋


Fixes a typo in the provided example code: s/error/err

Hi gabceb,
Nothing special, just fixes a "typo". When pasting that code in & testing out your library, if you change the url to something that would cause an error, it breaks.
Also, your library is working great!
Thanks!

Thanks!


MMM-Todoist stuck at loading...

Pulled the git and ran npm install. Get these two warning:

npm WARN deprecated<EMAIL_ADDRESS>request has been deprecated, see https://github.com/request/request/issues/3142
npm WARN deprecated<EMAIL_ADDRESS>this library is no longer supported

Dont know if this is the problem
Tried adding the module and have tried resetting the API key but no joy.
Heres config file:
   {
                 module: 'MMM-Todoist',
                 position: 'top_left',   // This can be any of the regions. Best results in left or right regions.
                 header: 'Todo List', // This is optional
                 config: { // See 'Configuration options' for more information.
                         hideWhenEmpty: false,
                         accessToken: 'apikeyremoved',
                         maximumEntries: 60,
                         updateInterval: 10*60*1000, // Update every 10 minutes
                         fade: true,
                         displayLastUpdate: true,
                         displayAvatar: true,
                         // projects and/or labels is mandatory:
                         //projects: [ 166564794 ],
                         labels: [ "MagicMirror", "Important" ]
       }
  }

Yep it looks like the there was something that broke it for me too. We have 3 lists and one of them has categories and that is the only one the broke. Hopefully that points people in the right direction. I ended up reverting back to the commit that we know worked. we did this by running
git checkout df2d4ff
Hopefully there is a fix for this soon.

I am having this same issue, having installed the module for the first time. Forgive me @mike-link , but where do I run that git checkout code from? I tried it within the module's folder but I was presented with some error message

In the directory that you installed/clone the module in. So for me it is <magic-mirror-root>/modules/mmm-todoist

@mike-link  I get this error message when I try that, do you know what it means?

@mike-link
the module name MUST match the folder name and the register name in the modulename.js
yours does: all three are named MMM-ToDoIst, exact case matters... and git clone will build a folder that matches the repo name (by default)
if there was a name problem, you wouldn't even get loading...

I'm having the same issue.  Stuck at loading...
I ran the checkout command and also got that same error:
git checkout df2d4ff
error: Your local changes to the following files would be overwritten by checkout:
	package-lock.json
	package.json
Please commit your changes or stash them before you switch branches.
Aborting

I microsoft todo, and todoist. Neither of them work both stuck at loading...   man you'd think getting a todo list into magic mirror would be easier.. I'm exhausted spent hours on this already :(

I just installed todoist module, got the access token from the app  in the todoist page from  the readme link, added a project, got its number, added it to the projects list,
added a task in that project and refreshed MM and boom its there..
never used this module before

and just added the skill to alexa, added a task and then go the alexa todolist project id, added it to the todoist config and voila (middle right)

I'm having the same issue. Stuck at loading...
I ran the checkout command and also got that same error:
git checkout df2d4ff
error: Your local changes to the following files would be overwritten by checkout:
	package-lock.json
	package.json
Please commit your changes or stash them before you switch branches.
Aborting

I tried microsoft todo, and todoist. Neither of them work both stuck at loading... man you'd think getting a todo list into magic mirror would be easier.. I'm exhausted spent hours on this already :(

Sounds like a git conflict. Not sure what changed your local package file.
Go to the MMM-Todist folder and type "git stash".
Then do your checkout again. "git checkout df2d4ff"
Looking at the thread. I see there is a problem with the latest build. I'll try to take a look soon.
Chris

@cbrooker
I just installed for the very 1st time, and it worked right away..  on MM 2.16

I had the loading problem when I first installed. Ran through all troubleshooting in this thread. I got this module to work only after deleting the MMM-Todoist folder from modules and going back through the install steps.

Having the same issue:
Created new project in todoist.
Copied API key and project number and pasted into module config.
ran Git Clone command to pull module, then went into folder and ran npm install.
Just says loading...
I used this module over a year ago and it was working. I'm not sure why it's not working now.
I dont have any other modules installed. Fresh install (last week).

I'll look at.mine in an hour or so. I don't remember anything special about either task or todoist..
Google u have to add a credit card to make any API work

I just installed MMM-Todoist, on latest MMM 2.20.0
copied api key from web site (called accesstoken in config)
got project numbers from web site , pasted numbers (no quotes)
worked on 1st try
(accessToken mangled here)
		{
		module: 'MMM-Todoist',
		position: 'top_right',	// This can be any of the regions. Best results in left or right regions.
		header: 'Todoist', // This is optional
		config: { // See 'Configuration options' for more information.
			hideWhenEmpty: false,
			accessToken: '4e27xx2345e124bcdfda0dad05a7ad2fcb1c24',
			maximumEntries: 60,
			updateInterval: 10*60*1000, // Update every 10 minutes
			fade: false,
			// projects and/or labels is mandatory:
			projects: [<PHONE_NUMBER> ,<PHONE_NUMBER>],
			labels: [ "MagicMirror", "Important" ] // Tasks for any projects with these labels will be shown.
      }
	}

Hi
I installed this module today suck on loading can any one please assist
Thank you

Hi guys..i have the same problem. is there any solution right now?

I have same problem just happe3d after most recent pull.  Tried to change api key and I delete and recloned the module to no success I even tried to check out previous commit but it does seem to work

Another first-time installer here having the same issue.
I've removed the MMM-Todoist folder and re-cloned it, but no change. Is there a log file anywhere?
I've also double checked the config, and tried to swap between projects and labels but still sits at loading. - Config below.
{
      "module": "MMM-Todoist",
      "header": "Dads Todo List",
      "position": "top_right",
      "config": {
        "hideWhenEmpty": false,
        "accessToken": "MySuperSecretAccessToken",
        "maximumEntries": 20,
        "updateInterval": 300000,
        "fade": false,
        "labels": [
          "MagicMirror",
          "Important"
        ],
        "displayLastUpdate": true,
        "maxtitleLength": 20
      }
    }
    ```

I've just seent that the API is now on version 9 (another open issue) and i've added
apiversion: 'v9',
apiBase: "https://todoist.com/API"

to the config, but this also makes no difference.

Hey all, for those still having this issue, i think it may be related to the v9 API. I've just changed my config and tripple checked my access token, projects, and tags, and this is now working.
                {
                        module: 'MMM-Todoist',
                        position: 'top_right',
                        header: "To-Do List",
                        config: {
                                hideWhenEmpty: false,
                                accessToken: "MyPrivateAccessTokenWithQuotes",
                                apiVersion: "v9",
                                apiBase: "https://todoist.com/API",
                                todoistEndpoint: "sync",
                                maximumEntries: 60,
                                updateInterval: 10*60*1000,
                                fade: true,
                                labels:  [ "MagicMirror", "Important" ],
                                projects: [ "2304370707" ],
                                sortType: "dueDateDescPriority",
                                maxTitleLength: 1000,
                                wrapEvents: false,
                                showProject: false
                        }
                }

I know the last few posts have been mine, but i can confirm that you do not need both labels and projects.
I'm pulling from projects, and have three seperate lists on on my MagicMirror now. Working brilliantly.

Hi all, I've tried the "git stash" and "git checkout" here and although I did received a package-lock.json notification when I first tried the checkout, I'm not seeing it after the stash command followed by the checkout.
The problem is I've copied @karldonteljames module text verbatim into my config, changed the project name and token to be my own info, and I'm still stuck at "Loading..." instead of pulling up tasks. Anyone else have any ideas what could be causing the issue?

Just kidding - see my reply here. I rebuilt the mirror from scratch and now it works fine!


Disable EditPage and GithubLink

Question
Description
Is there a way of disabling EditPage and GithubLink on the default template? It could be as simple as setting "visibility: hidden" in the stylesheet for those components but not having used react-emotion in the past I'm not sure if I can overwrite the styles easily.
Thanks!

I'm trying to figure this out as well.
@pedronauck is there any way to disable/hide this feature using themeConfig in the doczrc.js file?
Thanks a lot!

After taking a look at the Page.tsx component one quick/dirty way to disable both EditPage and GithubLink is to remove the "repository" prop from your package.json.
EditPage and GithubLink rely on it as prop in order to render. Would still be nice to disable it with a proper config entry though...
That works fine for my project as it's a private repo, probably not a good solution for public projects.

@denisborovikov It works to remove the github link, thanks a lot! The Edit Page link is still there though. Do you have any idea of how to hide it?
@rlueder I tested your solution and it works just fine! It would be better if we could find a way to set to false on the doczrc.js file for both EditPage and GithubLink, but if there isn't a way to do so, this is the solution I'm gonna go with in my project as well. Thanks =)

As a workaround, you can set the edit property in each document to false as seen here
https://github.com/pedronauck/docz/blob/84283f1d63ac40c0c1ee787db768c51945e4f79f/core/docz-theme-default/src/components/ui/Page.tsx#L71
---
name: Intro
edit: false
---

I haven't found a way to do this globally.


Support decoding of Base64 with intermediary padding.

Some base64 encoders in the wild incorrectly pad data before the end of
data. For instance, the string "testtesttest" might be encoded as
"dGVzdA==dGVzdA==dGVzdA==" instead of "dGVzdHRlc3R0ZXN0". This is,
technically speaking, a bug.
This patch makes the decoder tolerant to this kind of nonsense.
Intermediary padding is processed and then decoding carries on as
though a new string were provided.

I would be OK with a workaround like this if it had to be turned with a strict=false or lenient=true option.

+1 to what @garydgregory suggested. I'd prefer to keep it strict by default, and have an option to make it accept this other format. Or maybe a different Base64 decoder (we currently support only RFC2045's Base64 format). And there are conflicts in the PR, so would be nice if it could be updated to fix/merge the conflicts too :-)


Added a password length check (minimum length of password should be 8 characters long) #3

Closes #3
Type of Change
Added a password length check

[ ]  New Feature
[ ]  Bug Fix
[x]  Code Refactor
[ ]  Documentation Update
[ ]  Other (please specify):

Description of Change
Created a condition in add_password() function which will accept the password input only if it's more than 8 character long.
Demo

before

after

@Akshat1276 Please ensure that all conflicts are resolved.


Add bitrise ci support

I've tested changes locally and I'm getting the same error
> org.apache.http.entity.mime.content.ByteArrayBody.<init>([BLorg/apache/http/entity/ContentType;Ljava/lang/String;)V.
Testing process:

I'm updating plugin version in gradle.properties
Publishing modified plugin version (2.5.0 for ex.) using command ./gradlew publishToMavenLocal
Switching to AS and modifying dependencies

buildscript {
    repositories {
        jcenter()
        mavenLocal()
    }
    dependencies {
        classpath 'org.kt3k.gradle.plugin:coveralls-gradle-plugin:2.5.0'
    }
}

Executing coveralls task ./gradlew coveralls and getting error

* What went wrong:
Execution failed for task ':app:coveralls'.
> org.apache.http.entity.mime.content.ByteArrayBody.<init>([BLorg/apache/http/entity/ContentType;Ljava/lang/String;)V

* Try:
Run with --info or --debug option to get more log output.

* Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:coveralls'.
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:69)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:46)
        at org.gradle.api.internal.tasks.execution.PostExecutionAnalysisTaskExecuter.execute(PostExecutionAnalysisTaskExecuter.java:35)
        at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:64)
        at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58)
        at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:42)
        at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52)
        at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:53)
        at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
        at org.gradle.api.internal.AbstractTask.executeWithoutThrowingTaskFailure(AbstractTask.java:310)
        at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.executeTask(AbstractTaskPlanExecutor.java:79)
        at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.processTask(AbstractTaskPlanExecutor.java:63)
        at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.run(AbstractTaskPlanExecutor.java:51)
        at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:54)
        at org.gradle.internal.concurrent.StoppableExecutorImpl$1.run(StoppableExecutorImpl.java:40)
Caused by: java.lang.NoSuchMethodError: org.apache.http.entity.mime.content.ByteArrayBody.<init>([BLorg/apache/http/entity/ContentType;Ljava/lang/String;)V
        at org.apache.http.entity.mime.MultipartEntityBuilder.addBinaryBody(MultipartEntityBuilder.java:131)
        at org.apache.http.entity.mime.MultipartEntityBuilder$addBinaryBody$0.call(Unknown Source)
        at org.kt3k.gradle.plugin.coveralls.CoverallsTask$_postJsonToUrl_closure1.doCall(CoverallsTask.groovy:44)
        at groovyx.net.http.HTTPBuilder.doRequest(HTTPBuilder.java:432)
        at groovyx.net.http.HTTPBuilder.request(HTTPBuilder.java:366)
        at groovyx.net.http.HTTPBuilder$request.call(Unknown Source)
        at org.kt3k.gradle.plugin.coveralls.CoverallsTask.postJsonToUrl(CoverallsTask.groovy:42)
        at org.kt3k.gradle.plugin.coveralls.CoverallsTask$postJsonToUrl$0.callCurrent(Unknown Source)
        at org.kt3k.gradle.plugin.coveralls.CoverallsTask.coverallsAction(CoverallsTask.groovy:152)
        at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:75)
        at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.doExecute(AnnotationProcessingTaskFactory.java:226)
        at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.execute(AnnotationProcessingTaskFactory.java:219)
        at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.execute(AnnotationProcessingTaskFactory.java:208)
        at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:589)
        at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:572)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:80)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:61)
        ... 14 more

But, if I switch to 2.4.0x version and execute coveralls task in AS in the same project - it works fine.
It's a bit weird, as I didn't change dependencies versions in plugin.
Probably, I'm doing local plugin test in a wrong way.

Thanks for the contribution.
The change itself seems OK.
That behaviour happens maybe because of the incompatibilities of the v4.1 and v4.3 of httpmime. This plugin explicitly depends on httpmime 4.3 but in some settings strangely v4.1 is used. (That signature in the error message doesn't exist in v4.1. Maybe we should drop dependency of httpmime.)
Thanks for the contribution. I'll publish in a few days.

Got it.
It means that I've tested plugin correctly by publishing it to mavenLocal, right?
Once the new version of plugin will be ready, I'll check everything on a real project and provide a feedback here.

I published this version as v2.5.0 and v2.5.0-x to bintray and maven.
v2.5.0-x is a bit modified version. It depends on httpmime-4.1. (v2.5.0 depends on httpmime-4.3)
Maybe you need v2.5.0-x.

Great news, thank you @kt3k.


Change interlinks specification.

The current way interlinks are specified is adapted directly from the Intersphinx extension. This format uses reStructuredText Interpreted Text Role where, the colons and the backticks matter because the combination triggers the processing.
quartodoc implements interlinks using pandoc filters and the processing is triggered on markdown links where what matters is:

The link-target matches our spec
We can process the tokens in the target from right to left

So we do not need the combination of colons and backticks. We can do with only colons. Here is a comparison

Intersphinx
Current Interlink
Proposed Interlink

1

[](`target`)
[](:target:)

2
:reftype:`target`
[](:reftype:`target`)
[](:reftype:target:)

3
:domain:reftype:`target`
[](:domain:reftype:`target`)
[](:domain:reftype:target:)

4
:external:domain:reftype:`target`
[](:external:domain:reftype:`target`)
[](:external:domain:reftype:target:)

5
:external+invname:domain:reftype:`target`
[](:external+invname:domain:reftype:`target`)
[](:external+invname:domain:reftype:target:)

6
:domain:reftype:`text<target>`
[text](:domain:reftype:`target`)
[text](:domain:reftype:target:)

Given the differences in processing Intersphinx format cannot (usually) represent only a target (case 1). And the translation rule to copy the Intersphinx stuff into the braces of a markdown link does not apply to all cases. We have a more natural solution for case 6.
While at best this saves us a single character, backticks are also a markdown syntax element and the proposed change invites less visual scrutiny and looks better without them.
This change can be implemented without affecting the current users. The current style may be dropped silently at first then deprecated with a warning.

The link syntax I most often think about is [some name](`some.target`).

The backticks are okay if you think of them that way (this is code to be processed).
But that does not cover all the cases. We have these too:
[some name](:class:`some.target`)
[some name](:func:`some.target`)
[some name](:label:`some-ref`)
[some name](:py:label:`some-ref`)

which are RST roles. So we have inherited a syntax in an environment were some of its features are not required. The backticks no-longer mark all the code that will be processed and we are left with quirky thing with colons and backticks.
We can move the "sometimes" middle backtick to the beginning. This rescues the consistency of "this is a code to be processed".
[some name](`some.target`)
[some name](`:class:some.target`)
[some name](`:func:some.target`)
[some name](`:ref:some-ref`)
[some name](`:py:ref:some-ref`)

Also, noting that most interlinks do not change the link text, most of the time we would endup with.
[](`some.target`)
[](`:class:some.target`)
[](`:func:some.target`)
[](`:ref:some-ref`)
[](`:py:ref:some-ref`)

And when the reftype is specified we can use shorter form (with only quotes).
[](`some.target`)
`:class:some.target`
`:func:some.target`
`:ref:some-ref`
`:py:ref:some-ref`

The full syntax that uses links would remain valid.

But that does not cover all the cases. We have these too:

So we have inherited a syntax in an environment were some of its features are not required. The backticks no-longer mark all the code that will be processed and we are left with quirky thing with colons and backticks.

In my mind, the colons are a filtering syntax, which hopefully is not too commonly used (except in some standard library ambiguity cases). If I understand the original post, it sounds like the appeal to using all colons is consistency (since every part of the interlink would use the same separator :). Does that sound right?

It'd be super nice if you only had to use brackets and parens when you need to change the link name, so it'd be awesome to have a short form for [](`target`). Maybe `:target`?

@gadenbuie agreed -- I think the trickiest thing here is figuring out something that is unambiguously an interlink in the pandoc AST.
For example, I think my original hope was that :py:target might resolve to something simple, but it becomes:
# quarto render test.qmd --to native --output --

[ Para [ Str ":py:" , Code ( "" , [] , [] ) "target" ] ]

I could see how @has2k1's  proposed above shortform `:reftype:target` might help, since its AST is...
[ Para [ Code ( "" , [] , [] ) ":reftype:target" ] ]

Which would be pretty easy to identify from a filter. Would be nice if there were some easier way to add classes, etc.. to inline code elements.
AFAIK the way to get classes on inline elements is to do things like `target`{.py}, which produces:
[ Para [ Code ( "" , [ "py" ] , [] ) "target" ] ]

so it'd be awesome to have a short form for . Maybe :target?

Yes. That can work. I have included it.

I'm not too concerned about consistency, or removing the backtick in its own right. I'm going to close for now, and open an issue to focus exclusively on allowing an interlinks short-hand (e.g. using `:target` rather than the cumbersome ).
Changes to the interlinks syntax seem fair game if they (1) enable a easy short-hand and (2) don't risk conflicting quarto rendering.
Thanks for digging into this topic so deeply. It's super helpful context for thinking about short-hand options!


PR: Fix Go to definition feature in the Editor in Windows after the changes introduced with the new LSP

Issue(s) Resolved
Fixes #7726
Description of Changes
Basically, I simply followed what was suggested in the following StackOverflow answer, which in turn was based on code from the pip project.
https://stackoverflow.com/a/43925228
I tested it in Windows 7 with Python 3.6 and Go to definition is working with the proposed changes, I must say even better than before the changes introduced with the new LSP.
Developer Certificate of Origin Affirmation
By submitting this Pull Request or typing my name below, I affirm the
Developer Certificate of Origin
with respect to both the content of the contribution itself and this post,
and understand I am releasing it under Spyder's MIT (Expat) license.
I certify the above statement is true and correct: Jean-Sébastien Gosselin

Hello @jnsebgosselin! Thanks for submitting the PR.

There are no PEP8 issues in the file spyder/plugins/editor/lsp/providers/document.py !

I just want to tell you guys that now that it is working for me, the Go to definition seems to be a lot more powerful than before.


Log error message from server if shipping logs fail

Currently, if shipping logs fail, I only see this message.
Could not send your bulk after 3 tries. Sorry. Got HTTP 400
This makes it very difficult to debug what has gone wrong, since I cannot see any text error provided in the response from logz.io.
It would be better to log the message as well.

Indeed.
There are even 2 problems here, as we should not retry on 400 at all - just print the reason.
I'll fix that in the coming few days

Cool, thank you! I'd contribute a PR, but... I don't know Ruby 😓

Hey @n-rook and thanks for reporting the issue!
Fixed, and pushed to ruby gems - version 0.0.9


Sync zh-tw with latest README content

Codecov Report

Merging #209 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #209   +/-   ##
=======================================
  Coverage   88.73%   88.73%
=======================================
  Files           6        6
  Lines         222      222
=======================================
  Hits          197      197
  Misses         19       19
  Partials        6        6

Continue to review full report at Codecov.

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

Thanks @Festum !


Added typing support

Codecov Report

Merging #8 (2b78dd7) into master (ed5480e) will increase coverage by 0.30%.
The diff coverage is 91.22%.

@@            Coverage Diff             @@
##           master       #8      +/-   ##
==========================================
+ Coverage   81.93%   82.23%   +0.30%
==========================================
  Files          11       11
  Lines         631      653      +22
  Branches       97       97
==========================================
+ Hits          517      537      +20
- Misses         98       99       +1
- Partials       16       17       +1

Impacted Files
Coverage Δ

ochrona/__init__.py
100.00% <ø> (ø)

ochrona/exceptions.py
100.00% <ø> (ø)

ochrona/cli.py
77.35% <40.00%> (+0.43%)
:arrow_up:

ochrona/ochrona_rest_client.py
77.50% <81.25%> (-1.92%)
:arrow_down:

ochrona/file_handler.py
92.63% <86.66%> (+0.32%)
:arrow_up:

ochrona/config.py
82.73% <100.00%> (+0.12%)
:arrow_up:

ochrona/const.py
100.00% <100.00%> (ø)

ochrona/import_wrapper.py
76.11% <100.00%> (+1.51%)
:arrow_up:

ochrona/logger.py
78.12% <100.00%> (ø)

ochrona/pypi_rest_client.py
50.00% <100.00%> (+8.33%)
:arrow_up:

... and 2 more

Continue to review full report at Codecov.

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


Redesign Request implementation in http4s and akka-http interpreters

The previous design was leading to brittle situations (see the changes on the BasicAuthentication interpreters). I believe the new design is simpler (it also requires less boilerplate).
I also changed the behavior of the BasicAuthentication interpreter to reject early incoming requests that don’t provide authentication credentials.

I only changed the interpreters’ implementation, not the algebra, which remains unchanged (with mapRequest, mapResponse, etc.).
For instance, the previous implementation of Request in the akka-http-server interpreter was the following:
  trait Request[A] {
    type HeadersData
    type EntityData
    type UrlData
    def url: Url[UrlData]
    def headers: RequestHeaders[HeadersData]
    def method: Method
    def urlData(a: A): UrlData
    def entity: RequestEntity[EntityData]

    /** A directive that extracts an `A` from an incoming request */
    final lazy val directive: Directive1[A] =
      matchAndParseHeadersDirective.flatMap {
        case invalid: Invalid => handleClientErrors(invalid)
        case Valid((urlData, headersData)) =>
          entity.flatMap { entityData =>
            val validated = aggregateAndValidate(urlData, entityData, headersData)
            validated match {
              case Valid(value)     => Directives.provide(value)
              case invalid: Invalid => handleClientErrors(invalid)
            }
          }
      }

    /** Checks whether the incoming request matches this request description, and
      * if this is the case, parses its URL parameters and headers.
      */
    private[server] def matchAndParseHeadersDirective: Directive1[Validated[(UrlData, HeadersData)]]

    /** The URI of a request carrying the given `a` parameter */
    final def uri(a: A): Uri = url.uri(urlData(a))

    private[server] def aggregateAndValidate(
        urlData: UrlData,
        entityData: EntityData,
        headersData: HeadersData
    ): Validated[A]
  }

It contains 3 abstract type members, and several abstract methods. Some of them were even private (e.g., aggregateAndValidate) making it impossible to implement outside of endpoints4s! (I initially wanted to make them private to have some margin for changing the implementation details, but the result is impractical to use)
The new design is the following:
  trait Request[A] {

    type UrlAndHeaders

    /** A directive that extracts an `A` from an incoming request */
    final lazy val directive: Directive1[A] =
      matchAndParseHeadersDirective.flatMap {
        case invalid: Invalid     => handleClientErrors(invalid)
        case Valid(urlAndHeaders) => parseEntityDirective(urlAndHeaders)
      }

    /** Checks whether the incoming request matches this request description, and
      * if this is the case, parses its URL parameters and headers.
      */
    def matchAndParseHeadersDirective: Directive1[Validated[UrlAndHeaders]]

    /** Parses the request entity.
      */
    def parseEntityDirective(urlAndHeaders: UrlAndHeaders): Directive1[A]

    /** The URI of a request carrying the given `a` parameter */
    def uri(a: A): Uri
  }

It contains only 1 abstract type member, and has fewer abstract methods. It has a public final member directive that provides the logic for processing a request. It works in two stages.
First, we check whether the incoming request matches the endpoint description (by its method and URL), and if this is the case we parse all the information from the URL and headers. This first stage is achieved by the abstract method matchAndParseHeadersDirective, which can either immediately return an error response, or provide the information parsed from the URL and headers.
Second, we parse the request entity and we combine it with the information previously parsed from the URL and headers to produce the resulting value of type A (for a Request[A]). That part is achieved by the abstract method parseEntityDirective.
The implementation of Request[A] in the http4s interpreter follows a similar design.

The concrete implementation of Request[A] usually does not matter much to the end users, except when they want to do advanced stuff where they need to implement their own instance of Request[A]. This is, for instance, the case with authentication support. In the future, the complete implementation of middlewares should allow the users to implement things like custom authentication even without having to implement their own instances of Request[A], but there will probably be some cases where this will be still necessary.
Let’s look at the changes of the example-authenticated module (which uses http4s) to see the improvement. Before the PR, we implemented our instance of Request as follows:
  def authenticatedRequest[U, E, UE, UET](
      method: Method,
      url: Url[U],
      entity: RequestEntity[E]
  )(implicit
      tuplerUE: Tupler.Aux[U, E, UE],
      tuplerUET: Tupler.Aux[UE, AuthenticationToken, UET]
  ): Request[UET] = {
    // alias parameters to not clash with `Request` members
    val urlArg = url
    val methodArg = method
    val entityArg = entity

    new Request[UET] {
      type UrlData = U
      type HeadersData = Option[AuthenticationToken]
      type EntityData = E

      def url: Url[U] = urlArg
      def headers: RequestHeaders[Option[UserInfo]] = authenticationTokenRequestHeaders
      def method: Method = methodArg
      def entity: RequestEntity[E] = entityArg

      def aggregateAndValidate(
          urlData: U,
          headersData: Option[UserInfo],
          entityData: E
      ): Validated[UET] =
        headersData match {
          case None        => sys.error("Unsupported")
          case Some(token) => Valid(tuplerUET(tuplerUE(urlData, entityData), token))
        }

      def matchAndParseHeaders(
          http4sRequest: org.http4s.Request[F]
      ): Option[Either[org.http4s.Response[F], Validated[(UrlData, HeadersData)]]] =
        matchAndParseHeadersAsRight(method, url, headers, http4sRequest).map(_.flatMap {
          case Valid((_, None /* credentials */ )) => Left(org.http4s.Response(Unauthorized))
          case validatedUrlAndHeaders              => Right(validatedUrlAndHeaders)
        })

    }
  }

In this PR, this is now as follows:
  def authenticatedRequest[U, E, UE, UET](
      method: Method,
      url: Url[U],
      entity: RequestEntity[E]
  )(implicit
      tuplerUE: Tupler.Aux[U, E, UE],
      tuplerUET: Tupler.Aux[UE, AuthenticationToken, UET]
  ): Request[UET] =
    new Request[UET] {

      // Data extracted from the incoming request
      type UrlAndHeaders = (U, AuthenticationToken)

      def matchAndParseHeaders(
          http4sRequest: org.http4s.Request[F]
      ): Option[Either[org.http4s.Response[F], Validated[UrlAndHeaders]]] =
        // First, check whether the incoming request matches this request description
        matchAndParseHeadersAsRight(method, url, emptyRequestHeaders, http4sRequest)
          // If this is the case, check whether there is a token in the request headers or not
          .map { errorResponseOrValidatedUrlAndHeaders =>
            authenticationTokenRequestHeaders(http4sRequest.headers) match {
              // There is a token, just add it to the
              case Valid(Some(token)) =>
                errorResponseOrValidatedUrlAndHeaders
                  .map(_.map { case (u, _) => (u, token) })
              case _ => Left(org.http4s.Response(Unauthorized))
            }
          }

      def parseEntity(
          urlAndHeaders: UrlAndHeaders,
          http4sRequest: org.http4s.Request[F]
      ): Effect[Either[org.http4s.Response[F], UET]] =
        entity(http4sRequest).map(_.map { entityData =>
          val (urlData, token) = urlAndHeaders
          tuplerUET(tuplerUE(urlData, entityData), token)
        })

    }

Not only the new implementation is more concise, but it also removes the need to write case None => sys.error("Unsupported") that we previously had to handle even though that case was impossible to reach in practice.
With the design proposed in this PR, end-users have two “points of control” when they implement a Request[A], which correspond to the two steps I explained above: checking whether the incoming request matches this request description (and parsing the URL and headers at the same time), or parsing the request entity (and aggregating it with the parsed URL and headers data to produce an A). Here, we act on the first step: we checked whether the incoming request matches this request description by calling matchAndParseHeadersAsRight and, in case the incoming request does match, we look into its headers to see if there is an authentication token. If it is missing, we can immediately return an error response. Otherwise, we add it to the content of the parsed URL. The implementation of the second stage parses the request entity and then uses the tuplers to build an A from the URL data, entity data, and token.

Possible variations around the design proposed in the PR:

[ ] make the abstract methods in Request[A] protected instead of public
[ ] change signature of parseEntity to return a Validated[A] instead of an A, to make it more straightforward to implement for end-users. Currently, users have to be careful to call handleClientErrors to handle validation errors. That could be done for them automatically if validation errors were returned as a Validated value.

Hey, this is great, thanks for your continued work on middlewares! Do you mind if I take a more detailed look at this in the coming days?

Thank you @agboom for your interest! Yes, I am very looking forward to your review ;)
Please @agboom and @bmeesters let me know what are your use cases that would be impacted by this PR (ie, the parts of your code that has to provide instances of Request[A] within server interpreters).

FYI here is the implementation of “high-level middlewares” based on this design: https://github.com/julienrf/endpoints/pull/2/files

@julienrf I pushed a new commit with an Authentication algebra that almost fits our use-case based on your middlewares implementation. Almost, because I'm still working on the client part and I had to tweak the middleware code a little. I'll try to break it down here.
My aim of the authentication Middleware is to let it handle the server authentication logic (and later the client logic as well).
Given an Endpoint[A, B], the goal is that at use-site, calling withAuthentication results in a signature Endpoint[(A, AccountData), ValidatedAuthentication[B]]. The AccountData is the data associated with the authenticated credentials, including the credentials themselves, but possibly also authorization data such as groups. This last one is up to the user and depends on the authentication server used.
I wasn't able to achieve this with the existing Middleware, because it needs to short circuit on invalid authentication and provide a response. That's why I created a new type of middleware called ShortcircuitMiddleware. It's similar to the original Middleware, but adds an error type E. The Conditional server action accepts an Either type so that the server can respond early depending on some logic in the middleware. In the case of authentication, E is substituted for InvalidAuthentication, i.e. ForbiddenError or UnauthorizedError.
trait ShortcircuitMiddleware[E, Request, Response, NewRequest, NewResponse] {
  def serverAction(request: Request): Middleware.Conditional[E, NewRequest]

  def fromNewResponse(newResponse: NewResponse): Response

  def fromNewRequest(newRequest: NewRequest): Request
}

case class Conditional[LeftResponse, NewRequest](
   condition: Either[LeftResponse, NewRequest]
) extends ServerAction[Either[LeftResponse, NewRequest], NewRequest]

This allows for the following authentication middleware:
  def basicAuthenticationMiddleware2[A, B, ACred, AAccountData](implicit
      tuplerACred: Tupler.Aux[A, Option[String], ACred],
      tuplerAAccountData: Tupler.Aux[A, AccountData, AAccountData]
  ): ShortcircuitMiddleware[InvalidAuthentication, ACred, B, AAccountData, B] =
    new ShortcircuitMiddleware[InvalidAuthentication, ACred, B, AAccountData, B] {
      def serverAction(
          request: ACred
      ): Middleware.Conditional[InvalidAuthentication, AAccountData] =
        Middleware.Conditional {
          val (a, credOpt) = tuplerACred.unapply(request)
          credOpt match {
            case Some(cred) =>
              decodeBasicCredentials(cred) match {
                case Valid(basicCredentials) =>
                  validateBasicCredentials(basicCredentials)
                    .map(tuplerAAccountData.apply(a, _))
                case Invalid(_) =>
                  Left(UnauthorizedError)
              }
            case None =>
              Left(UnauthorizedError)
          }
        }

      def fromNewRequest(newRequest: AAccountData): ACred = {
        val (a, accountData) = tuplerAAccountData.unapply(newRequest)
        tuplerACred(a, Some(extractCredentials(accountData)))
      }

      def fromNewResponse(newResponse: B): B = newResponse
    }

I've written a server test case to check that it works for the server.
There are still some holes in the implementation:

The client implementation is non-existent in this commit, but I'm working on it right now. This will probably require an additional function to the middleware called clientAction or something. It will also change some of the types in the algebra. For example, AccountData as input type doesn't make sense for the client, but that will have to be the input credentials. I'm still trying to find a good name that covers both server and client, but the best I've come up with is InputCredentials.
The ShortcircuitMiddleware exists next to the original Middleware. I'm pretty sure it's possible to merge these two, but I don't know if both serverActions are compatible in type.
The middleware signature lacks support for effectful actions. It's pretty common to have authentication done by an external server, either on the client side or the server side. In our case I've seen both. So adding support for effectful actions would be a valuable addition in my opinion.
It might have merit to abstract the Either from the Conditional server action and just allow any monadic structure. This might be a step-up to effectful server actions, but I'm not sure until I've tried. It would require some type class or similar signature added to the mix.

I'll keep working to make the implementation more complete. I'm curious to know what you think so far.

As far as this PR goes, I think that it's a great improvement! It's compatible with our current implementation and it makes your middlewares approach possible :ok_hand:

Thank you @agboom for your extended tests and review! I am merging this PR but I take note of your points regarding middleware implementation. In particular:

The middleware signature lacks support for effectful actions. It's pretty common to have authentication done by an external server, either on the client side or the server side. In our case I've seen both. So adding support for effectful actions would be a valuable addition in my opinion.

I think this is an important limitation, and I am not sure what we can do about it… I have found a couple of other limitations, and I am now less convinced of the value of such middlewares.

Great that this PR is merged :tada:

I think this is an important limitation, and I am not sure what we can do about it… I have found a couple of other limitations, and I am now less convinced of the value of such middlewares.

Can you elaborate in what way you're less convinced? What other limitations have you found? I actually like the approach you've taken with these declarative Continue and Bypass types and I think if we could somehow add the Conditional server action and a client action then we're an effect type short of a complete middleware structure.
Maybe it would help to create an issue for this, to continue the discussion?

The other “limitation” I have in mind is that, unlike most middlewares in HTTP servers, there is no simple way to “wrap” the server logic like the following, for instance:
(request, logic) => {
  val startTime = System.currentTimeMillis()
  val response = logic(request)
  logger.info(System.currentTimeMillis() - startTime)
  response
}

Implementing a “metrics” middleware might be complicated.
But maybe we just didn’t find yet the right design…

Good point. In my limited view that would just be a variant of a ServerAction with the right type signature. But you're probably right that there is no simple way right now.
I can do an attempt at a crude logging middleware to find out in more detail what is needed for this use-case. Although I'd like to get further with the auth middleware first, by creating the client part. Maybe we can do this in multiple steps? Should I create a separate issue for this?

Sure, please go ahead with the authentication use-case :) Would it be possible to work on it outside of endpoints4s first? I think it would be simpler and safer to first experiment outside of endpoints4s until you find a design that you are happy with, and then we can consider whether we want to include it or not.

Yes, I think that's a sensible approach. I think experimenting with multiple use-cases will help get the general middleware implementation right, but the use-cases themselves don't necessarily have to be included in endpoints4s imho. Although it might help to have some examples in the same project to keep track of regressions, but that's a problem for later (or for unit tests).


Update README.md - semicolonAfterLastProperty to format

See #983 and #1023
README.md change only
Moved semicolonAfterLastProperty from level 1 to format.

Good catch :+1:


Move Spec Out Of Glossier V2 Into Gem.

The #required_part_count is an instance method defined in the gem. Move
the test from GV2 into the gem, where the code is defined. Tests pass in both cases now, due to how we build variant/part relationships now.

@eutopian a CR here would be amazing if you have some time today.
Context:
At one time or another, this test didn't quite work in the gem so it was moved/driven into Gv2. This is actually a little confusing and will likely confuse many people coming after us about the location whereabouts of the method. Since we are no on Solidus, this test passes in the Gem so we can move the test here.


sprint#44/chart_legend_label_colors

Pullrequest

Issues

[ ] fixes https://github.com/demokratie-live/democracy-client/issues/566

Checklist

[ ] Env-Variables adjustment needed
[ ] Breaking/critical change
[X] None

Repositories Affected

[ ] Client
[ ] Server
[ ] Bundestag.io
[ ] Search
[ ] Website
[ ] Docu
[X] None

How2Test

[X] None

Todo

[X] None


replace implicit data-reflex-permanent with skipMorph flag

Enhancement
Morph current focused input without mutating text value
Important note: this PR is dependent on the acceptance of this PR on the morphdom project as there is no skipMorph checking in today's morphdom.
morphdom is a miracle of software engineering, but it takes an all-or-nothing approach when it comes to updating an element; there's no facility to tweak or whitelist/blacklist what properties/attributes get updated during an operation.
StimulusReflex and LiveView both take pains to make sure that the client is a single source of truth; the server should not accidentally update the value of a text input that you're currently typing into. We created the data-reflex-permanent attribute to protect hierarchies of elements from all morph updates, but what if you just want to protect the value of the element you're typing into? When something is made permanent, you can no longer do any updates to it, even if they are desirable. Live feedback via CSS updates beome impossible, for example. You cannot dynamically disable or reenable an element.
Instead of setting the currently focused input to permanent, let's instead set a boolean value called skipMorph on the element which can be checked by morphdom. If skipMorph is true, allow morph updates unless they attempt to change the text value.
Why should this be added

With this PR, developers will be able to change the CSS and other non-text attributes of the currently focused input element with a morph without overwriting the current text value. The client remains the single source of truth.
Checklist

[x] My code follows the style guidelines of this project
[x] Checks (StandardRB & Prettier-Standard) are passing

Happy to say that this issue was closed #176.
Also posted a summary on the morphdom issue tracker.


Example for Generate Resources is not working

http://www.scala-sbt.org/0.13.0/docs/Howto/generatefiles.html
The example for Generate Resources is not working. It gives a compile error on loading the build definition
error: type mismatch;
 found   : Seq[java.io.File]
 required: sbt.Def.Initialize[?]
    Seq(file)
       ^

Correct code must be
resourceGenerators in Compile <+= Def.task {
    val file = (resourceManaged in Compile).value / "demo" / "myapp.properties"
    val contents = "name=%s\nversion=%s".format(name.value,version.value)
    IO.write(file, contents)
    Seq(file)
}

I seem to get the same with sbt 0.13.5. I'm using the same code from above:
resourceGenerators in Compile <+= {
    val file = (resourceManaged in Compile).value / "demo" / "myapp.properties"
    val contents = "name=%s\nversion=%s".format(name.value,version.value)
    IO.write(file, contents)
    Seq(file)
}

Can you advise?


Win Support

Seeing nothing that prevents this from getting merged.
Post-Merge

Tracking issue for fopen64 implementation!

@steffengy I've just got an email from this thread asking if I've reviewed this PR and cznic/cc#96 but I cannot see the message here. Anyway, yes, this PR is already merged and I've reviewed cznic/cc#96 18 hours ago, according to Github. Since then it's ready to be merged.

Okay I'll merge it to then. The mail is over from https://github.com/cznic/ccir/pull/2 .
Just asking because I did get comments but no LGTM from you :)

Just asking because I did get comments but no LGTM from you :)

Right, sorry. Will try to do better next time ;-)


Firebase database improvements

Removed stub code and replaced it with support for more event types, paths, auth
Improved example

In my testing this seems to read from the database more reliably.
This PR is one half of flutter/plugins#62, the other half (FirebaseAnimatedList sorting support) needs to be coordinated with the codelab to avoid breaking anyone. I'll land tests as part of flutter/plugins#62 (we don't have any yet).


Added saveScreenshot command

Future work: perhaps read a path from the WDSession structure and use that instead of a raw FilePath?

Looks good. I don't see a particular need to add a new WDSession field.


name 'VideoStreamTrack' is not defined

I am trying to use WebGear on Ubuntu 18.04. I installed vidgear[asyncio] from pip3. I am now running the following example:
import uvicorn
from vidgear.gears.asyncio import WebGear

#various performance tweaks
options = {"frame_size_reduction": 40, "frame_jpeg_quality": 80, "frame_jpeg_optimize": True, "frame_jpeg_progressive": False}

#initialize WebGear app with suitable video file (for e.g `foo.mp4`)
web = WebGear(source = "foo.mp4", logging = True, **options)

#run this app on Uvicorn server at address http://<IP_ADDRESS>:8000/
uvicorn.run(web(), host='<IP_ADDRESS>', port=8000)

#close app safely
web.shutdown()

And it throws the following error:
in .../webgear_rtc.py" line 77 in module
NameError: name 'VideoStreamTrack' is not defined
corrupted size vs. prev-size
Aborted (core dumped)

What causes this? and How can I fix this?

in .../webgear_rtc.py" line 77 in module
NameError: name 'VideoStreamTrack' is not defined
corrupted size vs. prev-size
Aborted (core dumped)

@zlg9folira This is half error, i need complete log from your terminal to debug anything at all. Are you running old version of vidgear? What's output of python3 -c "import vidgear; print(vidgear.__version__)"

I am now running the following example:

import uvicorn
from vidgear.gears.asyncio import WebGear
#various performance tweaks
options = {"frame_size_reduction": 40, "frame_jpeg_quality": 80, "frame_jpeg_optimize": True, "frame_jpeg_progressive": False}
#initialize WebGear app with suitable video file (for e.g foo.mp4)
web = WebGear(source = "foo.mp4", logging = True, **options)
#run this app on Uvicorn server at address http://<IP_ADDRESS>:8000/
uvicorn.run(web(), host='<IP_ADDRESS>', port=8000)
#close app safely
web.shutdown()

I don't think so, Webgear errors don't propgate like this. Where's error handler values in your log? Did you modified code by yourself?


Split Cosmos SDK (0.38) and CosmWasm functionality

Right now those are combined in the SDK package. The goal here is to make CosmWasm fully optional.

Good idea


Use .mjs for ESM files and add types condition to exports

This is kinda a follow-up to https://github.com/partykit/partykit/pull/133
cc @mellson @threepointone

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

Incredible, blessed with an @Andarist PR. Thank you so much!

Incredible, blessed with an @Andarist PR.

For more to come in the future 🍻


Issue #6 - use mp metrics to count calls

Signed-off-by: Tom Evans<EMAIL_ADDRESS>fixes #6 and #7

@pilhuhn and @jonhawkes ... this PR should resolve #6 and #7


SystemChrome setSystemUIOverlayStyle failed

SystemChrome.setSystemUIOverlayStyle(
       SystemUiOverlayStyle(statusBarBrightness: Brightness.light)
);

Execute this code, and add print(_pendingStyle); in setSystemUIOverlayStyle function
alway print twice
flutter: {systemNavigationBarColor: null, systemNavigationBarDividerColor: null, statusBarColor: null, statusBarBrightness: Brightness.light, statusBarIconBrightness: null, systemNavigationBarIconBrightness: null}
flutter: {systemNavigationBarColor: null, systemNavigationBarDividerColor: null, statusBarColor: null, statusBarBrightness: Brightness.dark, statusBarIconBrightness: Brightness.light, systemNavigationBarIconBrightness: null}

Hi @iapicca
run flutter ceate example，add this code
SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle.dark); in _incrementCounter method at main.dart file

➜  example flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, v1.17.3, on Mac OS X 10.15.5 19F101, locale zh-Hans-CN)
[!] Android toolchain - develop for Android devices (Android SDK version 29.0.3)
    ✗ Android licenses not accepted.  To resolve this, run: flutter doctor --android-licenses
[✓] Xcode - develop for iOS and macOS (Xcode 11.4.1)
[!] Android Studio (version 3.6)
    ✗ Flutter plugin not installed; this adds Flutter specific functionality.
    ✗ Dart plugin not installed; this adds Dart specific functionality.
[✓] VS Code (version 1.45.1)

[✓] Connected device (2 available)

! Doctor found issues in 2 categories.

Code Sample
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
void main() {
  SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle.dark);
  runApp(MyApp());
}
class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Material App',
      // theme: ThemeData.dark(),
      home: Home(),
    );
  }
}
class Home extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Material App Bar'),
      ),
      body: Center(
        child: Container(
          child: Text('Hello World'),
        ),
      ),
      floatingActionButton: FloatingActionButton(
        child: Icon(Icons.add),
        onPressed: () {
          SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle.dark);
        },
      ),
    );
  }
}

flutter doctor -v
[✓] Flutter (Channel dev, 1.19.0-5.0.pre, on Mac OS X 10.15.5 19F101, locale
    en-GB)
    • Flutter version 1.19.0-5.0.pre at /Users/tahatesser/Code/flutter_dev
    • Framework revision c264b70ec3 (3 days ago), 2020-06-08 09:27:34 -0700
    • Engine revision c7f9725521
    • Dart version 2.9.0 (build 2.9.0-13.0.dev 87c5e3612b)

[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.3)
    • Android SDK at /Users/tahatesser/Code/sdk
    • Platform android-29, build-tools 29.0.3
    • ANDROID_HOME = /Users/tahatesser/Code/sdk
    • Java binary at: /Applications/Android
      Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build
      1.8.0_242-release-1644-b3-6222593)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 11.5)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 11.5, Build version 11E608c
    • CocoaPods version 1.9.3

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 4.0)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 46.0.2
    • Dart plugin version 193.7361
    • Java version OpenJDK Runtime Environment (build
      1.8.0_242-release-1644-b3-6222593)

[✓] VS Code (version 1.46.0)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.11.0

[✓] Connected device (4 available)
    • SM M305F   • 32003c30dc19668f • android-arm64  • Android 10 (API 29)
    • macOS      • macOS            • darwin-x64     • Mac OS X 10.15.5 19F101
    • Web Server • web-server       • web-javascript • Flutter Tools
    • Chrome     • chrome           • web-javascript • Google Chrome
      83.0.4103.97

• No issues found!

Hi I am who mentioned small bug #60050.
here is my code:
import 'package:flutter/material.dart';
import 'package:coolme121/screen/LogIn_screen.dart';
import 'package:flutter/services.dart';

class MyApp extends StatelessWidget
{
  @override
  Widget build(BuildContext context)
  {
    SystemChrome.setSystemUIOverlayStyle(
      SystemUiOverlayStyle(
        statusBarColor: Colors.green,
        statusBarIconBrightness: Brightness.dark,
        systemNavigationBarColor: Colors.green,
        systemNavigationBarIconBrightness: Brightness.dark,
      ),
    );

    return MaterialApp(
      debugShowCheckedModeBanner: false,

      themeMode: ThemeMode.dark,
      darkTheme: ThemeData(
        brightness: Brightness.dark,
      ),

      title: 'CoolME',
      initialRoute: LogIn.route,
      routes:
      {
        LogIn.route: (context) => LogIn(),
      },
    );
  }
}

and here is my flutter run --verbose:
Microsoft Windows [Version 10.0.18363.900]
(c) 2019 Microsoft Corporation. All rights reserved.

D:\code\flutter\coolme121>flutter run --verbose
[  +21 ms] executing: [C:\src\flutter/] git -c log.showSignature=false log -n 1 --pretty=format:%H
[  +86 ms] Exit code 0 from: git -c log.showSignature=false log -n 1 --pretty=format:%H
[        ] 1ad9baa8b99a2897c20f9e6e54d3b9b359ade314
[        ] executing: [C:\src\flutter/] git tag --contains HEAD
[ +237 ms] Exit code 0 from: git tag --contains HEAD
[   +1 ms] 1.17.4
[  +12 ms] executing: [C:\src\flutter/] git rev-parse --abbrev-ref --symbolic @{u}
[  +62 ms] Exit code 0 from: git rev-parse --abbrev-ref --symbolic @{u}
[        ] origin/stable
[        ] executing: [C:\src\flutter/] git ls-remote --get-url origin
[  +56 ms] Exit code 0 from: git ls-remote --get-url origin
[        ] https://github.com/flutter/flutter.git
[ +134 ms] executing: [C:\src\flutter/] git rev-parse --abbrev-ref HEAD
[  +68 ms] Exit code 0 from: git rev-parse --abbrev-ref HEAD
[        ] stable
[  +47 ms] Artifact Instance of 'AndroidMavenArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'AndroidGenSnapshotArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'AndroidInternalBuildArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'IOSEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterWebSdk' is not required, skipping update.
[   +6 ms] Artifact Instance of 'WindowsEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'MacOSEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'LinuxEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'LinuxFuchsiaSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'MacOSFuchsiaSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterRunnerSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterRunnerDebugSymbols' is not required, skipping update.
[  +47 ms] executing: C:\Users\GL553VD\AppData\Local\Android\sdk\platform-tools\adb.exe devices -l
[  +51 ms] List of devices attached
[   +3 ms] Artifact Instance of 'MaterialFonts' is not required, skipping update.
[        ] Artifact Instance of 'GradleWrapper' is not required, skipping update.
[        ] Artifact Instance of 'AndroidMavenArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'AndroidGenSnapshotArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'AndroidInternalBuildArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'IOSEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterWebSdk' is not required, skipping update.
[        ] Artifact Instance of 'FlutterSdk' is not required, skipping update.
[        ] Artifact Instance of 'WindowsEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'MacOSEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'LinuxEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'LinuxFuchsiaSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'MacOSFuchsiaSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterRunnerSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterRunnerDebugSymbols' is not required, skipping update.
[        ] Artifact Instance of 'IosUsbArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'IosUsbArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'IosUsbArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'IosUsbArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'IosUsbArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FontSubsetArtifacts' is not required, skipping update.
[  +49 ms] No supported devices connected.
[   +9 ms] "flutter run" took 302ms.

#0      throwToolExit (package:flutter_tools/src/base/common.dart:14:3)
#1      RunCommand.validateCommand (package:flutter_tools/src/commands/run.dart:336:7)
<asynchronous suspension>
#2      FlutterCommand.verifyThenRunCommand (package:flutter_tools/src/runner/flutter_command.dart:703:11)
<asynchronous suspension>
#3      FlutterCommand.run.<anonymous closure> (package:flutter_tools/src/runner/flutter_command.dart:620:33)
<asynchronous suspension>
#4      FlutterCommand.run.<anonymous closure> (package:flutter_tools/src/runner/flutter_command.dart)
#5      AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:150:29)
#6      _rootRun (dart:async/zone.dart:1184:13)
#7      _CustomZone.run (dart:async/zone.dart:1077:19)
#8      _runZoned (dart:async/zone.dart:1619:10)
#9      runZoned (dart:async/zone.dart:1539:10)
#10     AppContext.run (package:flutter_tools/src/base/context.dart:149:18)
#11     FlutterCommand.run (package:flutter_tools/src/runner/flutter_command.dart:610:20)
#12     CommandRunner.runCommand (package:args/command_runner.dart:197:27)
#13     FlutterCommandRunner.runCommand.<anonymous closure> (package:flutter_tools/src/runner/flutter_command_runner.dart:339:21)
<asynchronous suspension>
#14     FlutterCommandRunner.runCommand.<anonymous closure> (package:flutter_tools/src/runner/flutter_command_runner.dart)
#15     AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:150:29)
#16     _rootRun (dart:async/zone.dart:1184:13)
#17     _CustomZone.run (dart:async/zone.dart:1077:19)
#18     _runZoned (dart:async/zone.dart:1619:10)
#19     runZoned (dart:async/zone.dart:1539:10)
#20     AppContext.run (package:flutter_tools/src/base/context.dart:149:18)
#21     FlutterCommandRunner.runCommand (package:flutter_tools/src/runner/flutter_command_runner.dart:288:19)
#22     CommandRunner.run.<anonymous closure> (package:args/command_runner.dart:112:25)
#23     new Future.sync (dart:async/future.dart:224:31)
#24     CommandRunner.run (package:args/command_runner.dart:112:14)
#25     FlutterCommandRunner.run (package:flutter_tools/src/runner/flutter_command_runner.dart:231:18)
#26     run.<anonymous closure>.<anonymous closure> (package:flutter_tools/runner.dart:63:22)
#27     _rootRun (dart:async/zone.dart:1184:13)
#28     _CustomZone.run (dart:async/zone.dart:1077:19)
#29     _runZoned (dart:async/zone.dart:1619:10)
#30     runZonedGuarded (dart:async/zone.dart:1608:12)
#31     runZoned (dart:async/zone.dart:1536:12)
#32     run.<anonymous closure> (package:flutter_tools/runner.dart:61:18)
<asynchronous suspension>
#33     run.<anonymous closure> (package:flutter_tools/runner.dart)
#34     runInContext.runnerWrapper (package:flutter_tools/src/context_runner.dart:64:18)
<asynchronous suspension>
#35     runInContext.runnerWrapper (package:flutter_tools/src/context_runner.dart)
#36     AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:150:29)
#37     _rootRun (dart:async/zone.dart:1184:13)
#38     _CustomZone.run (dart:async/zone.dart:1077:19)
#39     _runZoned (dart:async/zone.dart:1619:10)
#40     runZoned (dart:async/zone.dart:1539:10)
#41     AppContext.run (package:flutter_tools/src/base/context.dart:149:18)
#42     runInContext (package:flutter_tools/src/context_runner.dart:67:24)
#43     run (package:flutter_tools/runner.dart:48:10)
#44     main (package:flutter_tools/executable.dart:69:9)
#45     main (file:///C:/src/flutter/packages/flutter_tools/bin/flutter_tools.dart:8:3)
#46     _startIsolate.<anonymous closure> (dart:isolate-patch/isolate_patch.dart:299:32)
#47     _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:168:12)

and here is my flutter doctor -v
D:\code\flutter\coolme121>flutter doctor -v
[√] Flutter (Channel stable, v1.17.4, on Microsoft Windows [Version 10.0.18363.900], locale en-US)
    • Flutter version 1.17.4 at C:\src\flutter
    • Framework revision 1ad9baa8b9 (6 days ago), 2020-06-17 14:41:16 -0700
    • Engine revision ee76268252
    • Dart version 2.8.4

[√] Android toolchain - develop for Android devices (Android SDK version 29.0.3)
    • Android SDK at C:\Users\GL553VD\AppData\Local\Android\sdk
    • Platform android-29, build-tools 29.0.3
    • Java binary at: C:\Program Files\Android\Android Studio1\jre\bin\java
    • Java version OpenJDK Runtime Environment (build 1.8.0_212-release-1586-b04)
    • All Android licenses accepted.

[√] Android Studio (version 3.6)
    • Android Studio at C:\Program Files\Android\Android Studio1
    • Flutter plugin version 46.0.1
    • Dart plugin version 192.8052
    • Java version OpenJDK Runtime Environment (build 1.8.0_212-release-1586-b04)

[√] VS Code (version 1.46.1)
    • VS Code at C:\Users\GL553VD\AppData\Local\Programs\Microsoft VS Code
    • Flutter extension version 3.11.0

[√] Connected device (1 available)
    • AOSP on IA Emulator • emulator-5554 • android-x86 • Android 9 (API 28) (emulator)

• No issues found!

I was able to reproduce on latest master, dev and stable channel.
flutter doctor
[✓] Flutter (Channel stable, 1.22.5, on Mac OS X 10.15.7 19H2 darwin-x64, locale en)
    • Flutter version 1.22.5 at /Users/pedromassango/dev/SDKs/flutter_stable
    • Framework revision<PHONE_NUMBER> (3 weeks ago), 2020-12-10 11:54:40 -0800
    • Engine revision ae90085a84
    • Dart version 2.10.4

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.2)
    • Android SDK at /Users/pedromassango/Library/Android/sdk
    • Platform android-30, build-tools 30.0.2
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6915495)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 12.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 12.1, Build version 12A7403
    • CocoaPods version 1.9.3

[!] Android Studio (version 4.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    ✗ Flutter plugin not installed; this adds Flutter specific functionality.
    ✗ Dart plugin not installed; this adds Dart specific functionality.
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6915495)

[✓] IntelliJ IDEA Community Edition (version 2020.3)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    • Flutter plugin installed
    • Dart plugin version 203.5981.152

[✓] VS Code (version 1.51.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.16.0

[✓] Connected device (2 available)
    • Redmi 5 Plus (mobile)              • 0258ff700005  • android-arm64 • Android 8.1.0 (API 27)
    • Android SDK built for x86 (mobile) • emulator-5554 • android-x86   • Android 10 (API 29) (emulator)

! Doctor found issues in 1 category.
Process finished with exit code 0

@Piinks

Hi there, this looks like it is working as expected. The AppBar initiates its own SystemChrome with an AnnotatedRegion in order to implement proper contrast. AppBar.systemOverlayStyle allows you to access this built in overlay styling.


Test Logic Pro Project

Should the repository contain a test logic pro project?

I've decided to not include a test logic pro project because it seems futile. Closing this issue.


Ensure that compass can run off of the gulpw-config.* compass configuration alone.

Feature now enabled.


[BUG] Auto-deploy to Netlify fails "merge not defined"

Describe the bug
I noted the docs say you can automatically deploy to Netlify, which is great. Every time I try, I get the error in the screenshot below "merge not defined."
Expected behavior
A successful build to Netlify :) I plan to configure directly on GitHub to tweak things here and there but I don't have much in mind to update the taxonomy, schema, or theme itself.
Screenshots

Build Environment

OS: Netlify so Linux??
Theme version/commit: [e.g. 1.0.0, 64a8b8a2d]
Hugo version: [e.g. 0.84.0] presumably 0.84.0 extended, since I did not update theme.toml

Preview Environment
N/A
Additional Information
I love this theme!

This is not bug related, you may calling the theme in a wrong way.
I assume you were using this repo to deploy it on the netlify, i saw you were mixing web-content with the theme folder in this commit.
You can do this instead:
1st Method

/YourWebContent
/YourWebContent/themes/FeelIt

2nd Method

/FeelIt
/FeelIt/YourWebContent

Don't forget to define both theme and themesDir in your config.toml


SECURITY.md

For my secured project.

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

I don't think this makes much sense


chore(deps): bump https://github.com/jenkins-x/jx-cli to 3.0.100

Update jenkins-x/jx-cli to 3.0.100
Command run was ./promote/main

/test gke


mPOPUP needs to support adding scrollbars if necessary

Massive menus like this render with a vertical scrollbar on the Series 5

With #287:

This is also true for mCARD and mCASC AFAIK.

There are some redraw issues with menus that have both scrollbars and dividing lines in them

These issues should be addressed in #288.


Documentation - give gradle examples using Kotlin DSL

I'd be nice to see the Gradle usage examples written in the Kotlin DSL.  :)

Have you taken a look at this page ?
What do you find missing there?

@schalkms Fantastic -- I missed that when going through the docs.  Thank you.

Please close this issue.  :)

I do note, though, the doc page link above has an issue for me.  I'm using Gradle 5.0 (if relevant).  To get the jcommander dep to pull down, I needed to add jcenter() to the top-level dependencies block; the one in buildscript was not sufficient.

Nothing to worry about. Please create a new issue with a detailed description, so that it's easier to help you.


fix(language-selector): use select component features for mobile

Related Ticket(s)
Web component: Footer - Language only - On mobile and tab, native default selector is not enabled #4864
Description
Create a language-selector-mobile version that extends the Select component so that the native mobile select is displayed on mobile breakpoints
Changelog
New

breakdown <dds-language-selector>  into <dds-language-selector-mobile> and <dds-language-selector-desktop>
<dds-language-selector-mobile> utilizes the Select component while <dds-language-selector-desktop> utilizes the ComboBox component

There's an issue with the option values not appearing on the native select, have a PR up on carbon-web-components to resolve that: https://github.com/carbon-design-system/carbon-web-components/pull/573

There's an issue with the option values not appearing on the native select, have a PR up on carbon-web-components to resolve that: https://github.com/carbon-design-system/carbon-web-components/pull/573


Migrate Room from kapt to KSP

https://developer.android.com/build/migrate-to-ksp

Hello can you @waseefakhtar assign this to me?

Hello can you @waseefakhtar assign this to me?

Sure! :)


R op not documented

Or maybe it is? I cannot find it.
say 5 R- 8       # 3

R is documented here https://docs.perl6.org/language/operators#Reversed_Operators
However it is not searchable with "R".

fixed with d9a6d8ebc3


Snake demo issue

Process starts well but then fails post ##Anything UNCLEAR
## Anything UNCLEAR The requirement is clear to me. Warning: gpt-4 may update over time. Returning num tokens assuming gpt-4-0613. 2023-08-29 15:02:29.974 | INFO     | metagpt.provider.openai_api:update_cost:81 - Total running cost: $0.124 | Max budget: $3.000 | Current cost: $0.059, prompt_tokens: 1198, completion_tokens: 379 2023-08-29 15:02:29.980 | INFO     | metagpt.utils.mermaid:mermaid_to_file:37 - Generating /home/parallels/metagpt/workspace/cli_snake_game/resources/competitive_analysis.pdf.. Traceback (most recent call last):   File "/home/parallels/metagpt/startup.py", line 42, in <module>     fire.Fire(main)   File "/usr/local/lib/python3.10/dist-packages/fire-0.4.0-py3.10.egg/fire/core.py", line 141, in Fire     component_trace = _Fire(component, args, parsed_flag_args, context, name)   File "/usr/local/lib/python3.10/dist-packages/fire-0.4.0-py3.10.egg/fire/core.py", line 466, in _Fire     component, remaining_args = _CallAndUpdateTrace(   File "/usr/local/lib/python3.10/dist-packages/fire-0.4.0-py3.10.egg/fire/core.py", line 681, in _CallAndUpdateTrace     component = fn(*varargs, **kwargs)   File "/home/parallels/metagpt/startup.py", line 38, in main     asyncio.run(startup(idea, investment, n_round, code_review, run_tests))   File "/usr/lib/python3.10/asyncio/runners.py", line 44, in run     return loop.run_until_complete(main)   File "/usr/lib/python3.10/asyncio/base_events.py", line 649, in run_until_complete     return future.result()   File "/home/parallels/metagpt/startup.py", line 24, in startup     await company.run(n_round=n_round)   File "/home/parallels/metagpt/metagpt/software_company.py", line 60, in run     await self.environment.run()   File "/home/parallels/metagpt/metagpt/environment.py", line 67, in run     await asyncio.gather(*futures)   File "/home/parallels/metagpt/metagpt/roles/role.py", line 240, in run     rsp = await self._react()   File "/home/parallels/metagpt/metagpt/roles/role.py", line 209, in _react     return await self._act()   File "/home/parallels/metagpt/metagpt/roles/role.py", line 168, in _act     response = await self._rc.todo.run(self._rc.important_memory)   File "/home/parallels/metagpt/metagpt/actions/design_api.py", line 142, in run     self._save(context, system_design)   File "/home/parallels/metagpt/metagpt/actions/design_api.py", line 135, in _save     self._save_prd(docs_path, resources_path, context[-1].content)   File "/home/parallels/metagpt/metagpt/actions/design_api.py", line 109, in _save_prd     mermaid_to_file(quadrant_chart, resources_path / 'competitive_analysis')   File "/home/parallels/metagpt/metagpt/utils/mermaid.py", line 40, in mermaid_to_file     subprocess.run(   File "/usr/lib/python3.10/subprocess.py", line 503, in run     with Popen(*popenargs, **kwargs) as process:   File "/usr/lib/python3.10/subprocess.py", line 971, in __init__     self._execute_child(args, executable, preexec_fn, close_fds,   File "/usr/lib/python3.10/subprocess.py", line 1863, in _execute_child     raise child_exception_type(errno_num, err_msg, err_filename) FileNotFoundError: [Errno 2] No such file or directory: './node_modules/.bin/mmdc'

Please follow README.md to install mermaid first.

this is post mermaid install

@mick-spc , this is only if you installed it locally. Install it locally and it should be able to find it